Compare commits

23 Commits

Author SHA1 Message Date
fabian 8a26bd37d2 avoid ConcurrentModificationException-esque error by saving directory names beforehand 2026-02-01 17:10:43 +01:00
fabian 73f5fe2e45 fixed commandExists 2025-11-20 21:28:53 +01:00
fabian 96ced8ff18 script for editing audible audio books post decrypt 2025-11-19 21:02:35 +01:00
fabian edf7f1a1d1 - improved map, vbr flags 2025-11-19 21:02:03 +01:00
fabian 57644311b3 pass down arguments 2025-11-19 21:00:59 +01:00
fabian 85bae25c2f added escape replacement 2025-11-19 21:00:35 +01:00
fabian a120d54b30 updated backup scripts 2025-11-19 20:59:53 +01:00
fabian 916faa68fd dont quit the tty upon failure 2025-11-19 20:59:08 +01:00
fabian c2bd45267a Revert "- removed debug ouptut"
This reverts commit 4c09537776.
2025-11-19 20:57:16 +01:00
fabian 4c09537776 - removed debug ouptut
- only execute certain code when the accompanying command exists
2025-11-19 20:54:18 +01:00
fabian d5ff6f3332 Merge branch 'master' of ssh://git.szimnau.de:222/fabian/sync 2025-11-19 20:45:03 +01:00
fabian 1622b1bd52 removed redundant file 2025-11-19 20:44:12 +01:00
SZIMNAU c794518817 - added helper method to look up wether a command exists
- avoid calling flatpak or notify-send if not installed
2025-11-05 14:06:40 +01:00
fszimnau 48bda2be2d additions from msys64 2025-10-16 13:04:36 +02:00
fabianArbeit 17528d5f51 modified config to not be work specific 2025-08-14 11:48:41 +02:00
fabianArbeit 6f70a133cf updated preferences 2025-08-14 11:32:43 +02:00
fabianArbeit f33f448a42 - updated keymap settings for linux
- copy for windows
2025-08-14 11:32:02 +02:00
fabianArbeit 28fbe6a042 new config for wezterm to behave similar to kitty (and termintator) 2025-08-14 11:22:39 +02:00
fabian 4e9a8f94be make executable 2025-04-21 19:55:29 +02:00
fabianArbeit 8828111fba Merge branch 'master' of https://git.szimnau.de/fabian/sync 2025-04-17 11:39:00 +02:00
fabianArbeit 8771d1eb3b simple scripts to more easily deploy the newest files 2025-04-17 11:38:04 +02:00
fabian df65f35f0b enable rsync with autocomplete 2025-04-16 21:40:58 +02:00
fabian 6b07a1175f escape file/ folder names 2025-04-16 21:39:25 +02:00
20 changed files with 226 additions and 43 deletions
+4
View File
@@ -0,0 +1,4 @@
#!/usr/bin/env bash
shopt -s dotglob
cp -lrf ./home_external/* $HOME/
+4
View File
@@ -0,0 +1,4 @@
#!/usr/bin/env bash
shopt -s dotglob
sudo cp -lrf ./root_external/* /
+31 -10
View File
@@ -5,20 +5,25 @@ if [ "$TERM" == 'xterm-kitty' ]; then
alias diff='kitty +kitten diff'
fi
DEFAULT_RSYNC='--info=ALL --recursive --delay-updates --human-readable --links --hard-links --perms'
COMMON_RSYNC='--info=ALL --recursive --delay-updates --human-readable --links --hard-links --perms'
export RSDEF="$COMMON_RSYNC --checksum"
export RSBKP="$RSDEF --times --group --owner --delete"
export RSMOV="$RSDEF --remove-source-files"
export RSUPD="$COMMON_RSYNC --update --times"
export RSCPY="$COMMON_RSYNC --ignore-times"
alias l='ls -l -v --all --human-readable --classify --group-directories-first' # -lvahF --group-directories-first
alias lt=='l --time-style=long-iso'
alias r='reset'
alias ..='cd ..'
alias refresh_bashrc='. ~/.bashrc' # alternatively: 'source ~/.bashrc'
alias rsync_default="rsync $DEFAULT_RSYNC --checksum"
alias rsync_default="rsync $RSDEF"
# source /usr/share/bash-completion/completions/rsync
# complete -F _rsync rsync_default
alias rsync_backup="rsync $DEFAULT_RSYNC --checksum --times --group --owner --delete"
alias rsync_move="rsync $DEFAULT_RSYNC --checksum --remove-source-files"
alias rsync_update="rsync $DEFAULT_RSYNC --update --times"
alias rsync_copy="rsync $DEFAULT_RSYNC --ignore-times"
alias rsync_backup="rsync $RSBKP"
alias rsync_move="rsync $RSMOV"
alias rsync_update="rsync $RSUPD"
alias rsync_copy="rsync $RSCPY"
alias copy_link='cp --no-dereference --recursive --preserve=all --link' # not --force to make it optional
alias off='systemctl poweroff'
alias nnn='nnn -dHrR'
@@ -35,6 +40,11 @@ alias dirsizes='du -kh --apparent-size --max-depth=1 | sort -hr'
alias start_x11_vnc="x11vnc -many -display :0 -no6 -rfbport 5900 -auth /var/run/lightdm/root/:0 -rfbauth $HOME/.vnc/passwd"
commandExists() {
type $1 2>&1 > /dev/null
}
rsyncLink() {
source=$1;
linkSource="$(realpath $source)";
@@ -47,7 +57,7 @@ rsyncLink() {
updateSystem() {
executeAndNotify "doUpdateSystem $1" "system updated" "system update failed"
executeAndNotify "doUpdateSystem $1" "system updated" "system update failed"
}
@@ -58,6 +68,9 @@ doUpdateSystem() {
updateFlatpak() {
if ! $(commandExists flatpak); then
return 1;
fi
noconfirm=
if [[ $1 == "-y" ]]; then
noconfirm="--assumeyes";
@@ -75,7 +88,7 @@ doUpdateFlatpak() {
# executes command and notifies upon failure
execute() {
dir="$(pwd)";
dir=${dir##*/};
dir=${dir##*/}; # cut off previous path (/path/to/foo.txt -> foo.txt)
if [[ -n "$2" ]]; then
errLog=$2;
else
@@ -114,11 +127,19 @@ finds () {
# sends a desktop-notification with an icon signalling an error
notifyError () {
notify-send "$1" --icon=data-warning;
if ! $(commandExists notify-send); then
echo "ERROR: $1";
else
notify-send "$1" --icon=data-warning;
fi
}
# sends a desktop-notification with an icon signalling a simple information
notifyInfo () {
notify-send "$1" --icon=preferences-desktop-notification;
if ! $(commandExists notify-send); then
echo "INFO: $1";
else
notify-send "$1" --icon=preferences-desktop-notification;
fi
}
+1
View File
@@ -2,4 +2,5 @@
# ~/.bash_profile
#
[[ -f ~/.profile ]] && . ~/.profile
[[ -f ~/.bashrc ]] && . ~/.bashrc
+1 -1
View File
@@ -2,7 +2,7 @@
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples
set -o pipefail
# set -o pipefail
# set -u
# If not running interactively, don't do anything
+2
View File
@@ -0,0 +1,2 @@
.crlf off
.mode box
@@ -1,16 +1,15 @@
[
{ "keys": ["ctrl+alt+up"], "command": "select_lines", "args": {"forward": false} },
{ "keys": ["ctrl+alt+down"], "command": "select_lines", "args": {"forward": true} },
{ "keys": ["ctrl+tab"], "command": "next_view" },
{ "keys": ["ctrl+shift+tab"], "command": "prev_view" },
{ "keys": ["ctrl+shift+x"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Delete Line.sublime-macro"} },
{ "keys": ["alt+keypad_plus"], "command": "jump_forward" },
{ "keys": ["ctrl+b"], "command": "none" },
{ "keys": ["ctrl+keypad_enter"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Add Line.sublime-macro"} },
// { "keys": ["shift+tab"], "command": "insert", "args": {"characters": "\t"} },
// { "keys": ["tab"], "command": "insert_best_completion", "args": {"default": "\t", "exact": true} } // can't unset this. fuck you.
{ "keys": ["ctrl+alt+n"], "command": "new_snippet" },
{ "keys": ["ctrl+alt+f"], "command": "auto_indent" }
// { "keys": [""], "command": "lower_case" }
// { "keys": [""], "command": "upper_case" }
]
[
{ "keys": ["ctrl+alt+up"], "command": "select_lines", "args": {"forward": false} },
{ "keys": ["ctrl+alt+down"], "command": "select_lines", "args": {"forward": true} },
{ "keys": ["ctrl+tab"], "command": "next_view" },
{ "keys": ["ctrl+shift+tab"], "command": "prev_view" },
{ "keys": ["ctrl+shift+x"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Delete Line.sublime-macro"} },
{ "keys": ["alt+keypad_plus"], "command": "jump_forward" },
{ "keys": ["alt+="], "command": "jump_forward" },
// { "keys": ["ctrl+b"], "command": "none" },
{ "keys": ["ctrl+keypad_enter"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Add Line.sublime-macro"} },
// { "keys": ["shift+tab"], "command": "insert", "args": {"characters": "\t"} },
// { "keys": ["tab"], "command": "insert_best_completion", "args": {"default": "\t", "exact": true} } // can't unset this. fuck you.
{ "keys": ["ctrl+alt+n"], "command": "new_snippet" },
{ "keys": ["ctrl+alt+f"], "command": "auto_indent" },
]
@@ -0,0 +1,15 @@
[
{ "keys": ["ctrl+alt+up"], "command": "select_lines", "args": {"forward": false} },
{ "keys": ["ctrl+alt+down"], "command": "select_lines", "args": {"forward": true} },
{ "keys": ["ctrl+tab"], "command": "next_view" },
{ "keys": ["ctrl+shift+tab"], "command": "prev_view" },
{ "keys": ["ctrl+shift+x"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Delete Line.sublime-macro"} },
{ "keys": ["alt+keypad_plus"], "command": "jump_forward" },
{ "keys": ["alt+="], "command": "jump_forward" },
// { "keys": ["ctrl+b"], "command": "none" },
{ "keys": ["ctrl+keypad_enter"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Add Line.sublime-macro"} },
// { "keys": ["shift+tab"], "command": "insert", "args": {"characters": "\t"} },
// { "keys": ["tab"], "command": "insert_best_completion", "args": {"default": "\t", "exact": true} } // can't unset this. fuck you.
{ "keys": ["ctrl+alt+n"], "command": "new_snippet" },
{ "keys": ["ctrl+alt+f"], "command": "auto_indent" },
]
@@ -1,5 +1,3 @@
// Settings in here override those in "Default/Preferences.sublime-settings",
// and are overridden in turn by syntax-specific settings.
{
"always_show_minimap_viewport": true,
"auto_complete_commit_on_tab": true,
@@ -8,11 +6,13 @@
"bold_folder_labels": true,
"color_scheme": "Mariana.sublime-color-scheme",
"drag_text": false,
"draw_white_space": ["selection", "all_mixed"],
// "draw_white_space": ["selection", "all_mixed", "all_tabs", "trailing", "isolated"],
"draw_white_space": ["all"],
"enable_tab_scrolling": false,
"ensure_newline_at_eof_on_save": true,
"fade_fold_buttons": false,
"fallback_encoding": "UTF-8",
"find_in_files_side_by_side": false,
"font_size": 11,
"font_face": "JetBrains Mono Regular",
"highlight_line": true,
@@ -45,4 +45,5 @@
"word_wrap": true,
"wrap_width": 120,
"index_files": true,
"caret_style": "smooth",
}
+117
View File
@@ -0,0 +1,117 @@
-- Pull in the wezterm API
local wezterm = require 'wezterm'
local act = wezterm.action
local mux = wezterm.mux
-- This will hold the configuration.
local config = wezterm.config_builder()
-- This is where you actually apply your config choices
-- For example, changing the color scheme:
config.color_scheme = 'AdventureTime'
-- config.font = wezterm.font 'JetBrains Mono' -- also the default
config.font = wezterm.font 'Fira Code'
config.font_size = 12.0 -- also the default
-- Spawn a git bash shell
-- config.default_prog = { 'C:/Program Files/Git/bin/bash.exe' , '--cd-to-home' }
-- config.default_prog = { 'C:/theo_dev/bin/msys64/usr/bin/bash.exe' }
-- config.default_prog = { 'C:/theo_dev/bin/msys64/msys2_shell.cmd', '-defterm', '-where', 'G:\\', '-no-start', '-ucrt64', '-use-full-path' }
config.default_prog = { 'C:/theo_dev/bin/msys64/msys2_shell.cmd', '-defterm', '-no-start', '-ucrt64', '-use-full-path' }
-- cursor shape and behaviour
config.default_cursor_style = 'BlinkingBar'
config.animation_fps = 1
config.cursor_blink_ease_in = 'Constant'
config.cursor_blink_ease_out = 'Constant'
config.enable_kitty_keyboard = true
-- window appearance
config.enable_scroll_bar = true
config.window_padding = {
left = 0,
right = 0,
top = 0,
bottom = 0,
}
config.initial_rows = 50;
wezterm.on('gui-startup', function(cmd)
local tab, pane, window = mux.spawn_window(cmd or {})
-- Create a split occupying the right 1/3 of the screen
local loading_bar_pane = pane:split {
direction = 'Bottom',
size = 0.06,
}
-- prepare command (\n possible to send command)
loading_bar_pane:send_text '. /g/zeitlaeufer/runProject.sh de.szimnau.zeitlaeufer.WorkLoadingBar'
end)
config.keys = {
-- This will create a new horizontal split and run your default program inside it
{
key = 'E',
mods = 'CTRL|SHIFT',
action = act.SplitHorizontal { domain = 'CurrentPaneDomain' },
},
-- This will create a new vertical split and run your default program inside it
{
key = 'O',
mods = 'CTRL|SHIFT',
action = act.SplitVertical { domain = 'CurrentPaneDomain' },
},
-- resize the current split
{
key = 'UpArrow',
mods = 'CTRL|SHIFT',
action = act.AdjustPaneSize { 'Up', 1 },
},
{
key = 'DownArrow',
mods = 'CTRL|SHIFT',
action = act.AdjustPaneSize { 'Down', 1 },
},
{
key = 'LeftArrow',
mods = 'CTRL|SHIFT',
action = act.AdjustPaneSize { 'Left', 1 }
},
{
key = 'RightArrow',
mods = 'CTRL|SHIFT',
action = act.AdjustPaneSize { 'Right', 1 },
},
-- move around the splits
{
key = 'UpArrow',
mods = 'ALT',
action = act.ActivatePaneDirection 'Up',
},
{
key = 'DownArrow',
mods = 'ALT',
action = act.ActivatePaneDirection 'Down',
},
{
key = 'LeftArrow',
mods = 'ALT',
action = act.ActivatePaneDirection 'Left',
},
{
key = 'RightArrow',
mods = 'ALT',
action = act.ActivatePaneDirection 'Right',
},
-- makes pane take up all available space in the tab, hiding all other panes
{
key = 'X',
mods = 'CTRL|SHIFT',
action = wezterm.action.TogglePaneZoomState,
},
}
-- and finally, return the configuration to wezterm
return config
+2 -2
View File
@@ -1,5 +1,5 @@
#!/usr/bin/env bash
source=$1
destinationPart=${1%/}; # cut off trailing "/"
# tar cfv $destinationPart.tar $source && xz $destinationPart.tar;
tar c -I"xz -v" -vf $destinationPart.tar.xz $source
# tar cfv "$destinationPart.tar" "$source" && xz "$destinationPart.tar";
tar c -I"xz -v" -vf "$destinationPart.tar.xz" "$source"
+2 -2
View File
@@ -32,10 +32,10 @@ backupRootDirectory /etc/docker/daemon.json $BACKUP_DIR_ROOT/docker/
### upload backup ###
#####################
if [[ "$1" == "--noupload" ]]; then
if [[ $# > 0 && "$1" == "--noupload" ]]; then
exit 0;
fi
sd rsync_backup -e "ssh -i /home/edi/.ssh/id_ed25519" --filter="P /home/docker" /sync/backup/ fabian@garrus:/citadel/backup/edi/
sd rsync_backup -e "ssh -i /home/edi/.ssh/id_ed25519" /sync/backup/ fabian@garrus:/citadel/backup/edi/
sd rsync_backup -e "ssh -i /home/edi/.ssh/id_ed25519" /home/edi/docker/ fabian@garrus:/citadel/backup/edi/home/docker/
echo "Note: remember to keep /citadel in sync!"
+1 -1
View File
@@ -20,7 +20,7 @@ backupDirectory $HOME/.ssh/ $BACKUP_DIR_HOME/.ssh/
### upload backup ###
#####################
if [[ "$1" == "--noupload" ]]; then
if [[ $# > 0 && "$1" == "--noupload" ]]; then
exit 0;
fi
+2 -2
View File
@@ -1,5 +1,5 @@
#!/usr/bin/env bash
source=$1;
# archive=${source%.xz}; # cut off trailing ".xz"
# unxz $source && tar xfv $archive
tar x -I"unxz -v" -vf $source
# unxz "$source" && tar xfv "$archive"
tar x -I"unxz -v" -vf "$source"
+1 -1
View File
@@ -4,4 +4,4 @@ set -euo pipefail
source /sync/scripts/dockerContainerAction.sh
# FIXME!!! implement possibility to pass down directory
upDownContainers down
upDownContainers down $@
+1
View File
@@ -13,6 +13,7 @@ replacements['(']='_';
replacements[')']='_';
replacements['[']='_';
replacements[']']='_';
replacements[',']='_';
while [[ $# > 0 ]]; do
replacements["$1"]="$2";
shift 2;
+18
View File
@@ -0,0 +1,18 @@
#!/usr/bin/env bash
set -euo pipefail
/sync/scripts/escapeFilenames.sh . _
declare -a dirs=();
for d in *; do
dirs+=($d);
done
for d in "${dirs[@]}"; do
cd "$d";
/sync/scripts/escapeFilenames.sh Chapter Kapitel
/sync/scripts/reencode_m4a.sh -map;
rm *.m4a;
mv * "../${d}_reencode";
cd ..;
rmdir "$d"
mv "${d}_reencode" "$d";
done
+1 -1
View File
@@ -4,4 +4,4 @@ set -euo pipefail
source /sync/scripts/dockerContainerAction.sh
# FIXME!!! implement possibility to pass down directory
upDownContainers pull
upDownContainers pull $@
+3 -3
View File
@@ -6,15 +6,15 @@ map=
vbr=
while [[ $# > 0 ]]; do
case $1 in
-map) map='-map 0:0'; shift;;
-vbr) vbr='aac_at -profile:a aac_he -b:a 64k'; shift;;
-map) map='-map 0:a'; shift;;
-vbr) vbr='aac -profile:a aac_he -b:a 64k'; shift;;
* ) break ;; # Anything else stops command line processing.
esac
done
# if no variable bitrate, just copy audio
if [[ -z $vbr ]]; then
map="$map copy"
vbr="copy"
fi
# ensure existence of destination folder
+1 -1
View File
@@ -4,4 +4,4 @@ set -euo pipefail
source /sync/scripts/dockerContainerAction.sh
# FIXME!!! implement possibility to pass down directory
upDownContainers up -d
upDownContainers up -d $@