diff --git a/.abcde.conf b/.abcde.conf new file mode 100644 index 0000000..5273037 --- /dev/null +++ b/.abcde.conf @@ -0,0 +1,6 @@ +CDDBMETHOD=cdtext,musicbrainz +FLACENCODERSYNTAX=default +FLAC=flac +CDROM=/dev/sr0 +OUTPUTTYPE=flac +OUTPUTFORMAT='${ARTISTFILE}/${ALBUMFILE}/${TRACKNUM}_${TRACKFILE}' diff --git a/.bin/backup-and-update-system b/.bin/backup-and-update-system index 8b9e653..f949551 100755 --- a/.bin/backup-and-update-system +++ b/.bin/backup-and-update-system @@ -1,50 +1,26 @@ -#!/bin/sh +#!/bin/bash -set -euo pipefail -set -x +set -xeuo pipefail + +export GIT_TERMINAL_PROMPT=0 +export GIT_SSH_COMMAND='ssh -oBatchMode=yes' # Push some git repos pass git push + +git --git-dir=$HOME/.cfg/ --work-tree=$HOME commit -am "Auto-commit $(hostnamectl --static) $(date --iso-8601=seconds)" || true git --git-dir=$HOME/.cfg/ --work-tree=$HOME push # Fetch a fresh copy of all locally cloned git repos for dir in $(find /home/kunsi/git -mindepth 1 -maxdepth 1 -type d) do - git -C "$dir" fetch || true + git -C "$dir" fetch --all || true done # Do a backup. -( - rsync -zaAP --numeric-ids --delete --relative \ - --rsync-path="/usr/bin/rsync --fake-super" \ - -e "ssh" --delete-excluded \ - --exclude "/home/kunsi/.cache/" \ - --exclude "/home/kunsi/.config/Ferdi/" \ - --exclude "/home/kunsi/.config/Rambox/" \ - --exclude "/home/kunsi/.local/lib/python*/site-packages/" \ - --exclude "/home/kunsi/.local/share/TelegramDesktop/tdata/user_data/cache/" \ - --exclude "/home/kunsi/.local/share/sddm/" \ - --exclude "/home/kunsi/.mozilla/firefox/*/storage/*" \ - --exclude "/home/kunsi/.npm/" \ - --exclude "/home/kunsi/.nvm/" \ - --exclude "/home/kunsi/.platformio/" \ - --exclude "/home/kunsi/.ssh/cm-*" \ - --exclude "/home/kunsi/.vdirsyncer" \ - --exclude "/home/kunsi/Downloads/" \ - --exclude "/home/kunsi/Schreibtisch/" \ - --exclude "/home/kunsi/VirtualBox VMs/" \ - --exclude "/home/kunsi/qemu/Windows_10.qcow2" \ - --exclude "/home/kunsi/tmp.*/" \ - "/home/kunsi" "kunsi-t470@home.nas":backups/ - - # Exit code 24 means some files have vanished during rsync. - # I don't know why, but this is very common, apparently? - exitcode=$? - if [[ $exitcode != 0 ]] && [[ $exitcode != 24 ]] - then - exit 1 - fi -) +sudo /usr/local/bin/generate-backup-with-retries +printf '\a' # Do updates -sudo pacman -Syu --noconfirm +sudo pacman -Syu +sudo DIFFPROG='diff -u --color' pacdiff diff --git a/.bin/notify.sh b/.bin/notify.sh index 3e2d48c..b1be7c2 100755 --- a/.bin/notify.sh +++ b/.bin/notify.sh @@ -1,3 +1,3 @@ #!/bin/bash -echo 'meowww?' | osd_cat --pos middle --align center --delay 9 -O 15 -f '-*-dejavu sans-*-*-*-*-120-200-*-*-*-*-*-*' +notify-send --expire-time=9000 --app-name=i3lock "screen lock will activate shortly" diff --git a/.bin/pulseaudio-assert-volume b/.bin/pulseaudio-assert-volume index b8bdd6c..51a7671 100755 --- a/.bin/pulseaudio-assert-volume +++ b/.bin/pulseaudio-assert-volume @@ -30,7 +30,7 @@ try: if line.startswith('volume:'): for speaker, absolute, percent in findall('([a-z-]+):\W+([0-9]+)\W+\/\W+([0-9]+)%', line): - if int(percent) < 100: + if int(percent) > 3 and int(percent) < 100: print(f' sink {sink_id} speaker {speaker} at {percent} % volume', flush=True) needs_adjusting = True diff --git a/.bin/screenlock.sh b/.bin/screenlock.sh index 1699d56..0ac138f 100755 --- a/.bin/screenlock.sh +++ b/.bin/screenlock.sh @@ -5,8 +5,8 @@ tmpbg="/tmp/lock_$(whoami).png" xset s noblank xset s 90 10 -pactl set-sink-mute alsa_output.pci-0000_00_1f.3.analog-stereo 1 -pactl set-source-mute alsa_input.pci-0000_00_1f.3.analog-stereo 1 +pactl set-sink-mute alsa_output.pci-0000_07_00.6.HiFi__hw_Generic_1__sink 1 +pactl set-source-mute alsa_input.pci-0000_07_00.6.HiFi__hw_acp__source 1 i3lock -e -t -i /home/kunsi/Pictures/laptop_unbenutzbar.png diff --git a/.bin/trackpoint-settings.sh b/.bin/trackpoint-settings.sh new file mode 100755 index 0000000..9955b56 --- /dev/null +++ b/.bin/trackpoint-settings.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +xinput set-prop 'TPPS/2 Elan TrackPoint' 321 0.7 diff --git a/.bin/voc-ansible b/.bin/voc-ansible deleted file mode 100755 index 8f82b67..0000000 --- a/.bin/voc-ansible +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash - -cd ~/git/voc-cm/ansible/ - -export KEEPASS_PW=$(pass show voc/keepass) - -./ansible-playbook-keepass --become --become-method=sudo --user voc --inventory event $@ site.yml diff --git a/.bin/voc-mount b/.bin/voc-mount index 0c37e63..adad90c 100755 --- a/.bin/voc-mount +++ b/.bin/voc-mount @@ -20,5 +20,5 @@ then sudo mkdir -p "/video/fuse" fi -sudo mount -t cifs -o "uid=${uid},password=" "//${device}.lan.c3voc.de/video" "/video" -sudo mount -t cifs -o "uid=${uid},password=" "//${device}.lan.c3voc.de/fuse" "/video/fuse" +sudo mount -t cifs -o "uid=${uid},password=" "//${device}/video" "/video" +sudo mount -t cifs -o "uid=${uid},password=" "//${device}/fuse" "/video/fuse" diff --git a/.config/alacritty/alacritty.yml b/.config/alacritty/alacritty.yml new file mode 100644 index 0000000..139b482 --- /dev/null +++ b/.config/alacritty/alacritty.yml @@ -0,0 +1,34 @@ +bell: + duration: 100 + color: '#4d5b86' + +colors: + primary: + foreground: '#D9D4CF' + background: '#000000' + normal: + black: '#232323' + red: '#FF000F' + green: '#8CE10B' + yellow: '#FFB900' + blue: '#008DF8' + magenta: '#6D43A6' + cyan: '#00D8EB' + white: '#FFFFFF' + bright: + black: '#444444' + red: '#FF2740' + green: '#ABE15B' + yellow: '#FFD242' + blue: '#4FB4FF' + magenta: '#9A5FEB' + cyan: '#67FFF0' + white: '#FFFFFF' + cursor: + cursor: '#4d5b86' + text: '#000000' + +cursor: + blinking: true + +live_config_reload: true diff --git a/.config/dunst/dunstrc b/.config/dunst/dunstrc index dda5611..0f31d13 100644 --- a/.config/dunst/dunstrc +++ b/.config/dunst/dunstrc @@ -85,7 +85,7 @@ ### Text ### - font = Monospace 8 + font = pango:DB Office Regular 9 # The spacing between lines. If the height is smaller than the # font height, it will get raised to the font height. @@ -113,7 +113,7 @@ # # It's important to note that markup inside the format option will be parsed # regardless of what this is set to. - markup = full + markup = no # The format of the message. Possible variables are: # %a appname @@ -129,7 +129,7 @@ # Alignment of message text. # Possible values are "left", "center" and "right". - alignment = right + alignment = left # Show age of message if message is older than show_age_threshold # seconds. diff --git a/.config/fish/config.fish b/.config/fish/config.fish index 080caa5..a71edfe 100644 --- a/.config/fish/config.fish +++ b/.config/fish/config.fish @@ -3,22 +3,34 @@ set -U -x MPD_HOST 172.19.138.20 set -U fish_features stderr-nocaret qmark-noglob set PATH $PATH /home/kunsi/.local/bin /home/kunsi/.gem/ruby/2.6.0/bin/ /home/kunsi/.bin -alias weechat='mosh rx300 -- tmux attach-session -d -t weechat-tmux' -alias voc-ansible='/home/kunsi/.bin/voc-ansible' -alias share-via-ssh='/home/kunsi/git/share-via-ssh/share-via-ssh' - -alias tmp='cd (mktemp -d -p /home/kunsi)' +set -U -x SSH_AUTH_SOCK $(gpgconf --list-dirs agent-ssh-socket) alias bwr='cd ~/git/bundlewrap/' -alias v='vim -p' +alias cm='cd ~/git/cm/bundlewrap/' +alias cal='cal -v -m -3' +alias ipa='ip -brief --color=always addr show; echo; ip --color=always route show; ip -6 --color=always route show' alias l='ls -lAh' -alias please='sudo' +alias p='python' +alias rm='rm --one-file-system' +alias share-via-ssh='/home/kunsi/git/share-via-ssh/share-via-ssh' +alias tmp='cd (mktemp -d -p /home/kunsi --suffix=.(date +%F))' +alias v='vim -p' +alias voc-ansible='/home/kunsi/.bin/voc-ansible' +alias voc2gui='cd /home/kunsi/git/voctomix/ && voctogui/voctogui.py' +alias weechat='mosh carlene.kunbox.net -- tmux attach-session -d -t weechat-tmux' +alias wipa="watch -cn0.3 'ip --color=always -brief addr show; echo; ip --color=always route show; ip -6 --color=always route show; echo; echo; cat /etc/resolv.conf'" +alias youtube-dl='yt-dlp --compat-options youtube-dl' alias lumos='mosquitto_pub -h 172.19.138.20 -t /switch/wohnzimmer/stehlampe/cmnd/POWER -m "ON"' alias nox='mosquitto_pub -h 172.19.138.20 -t /switch/wohnzimmer/stehlampe/cmnd/POWER -m "OFF"' alias coffee='mosquitto_pub -h 172.19.138.20 -t /switch/kueche/kaffeemaschine/cmnd/POWER -m "ON"' alias nocoffee='mosquitto_pub -h 172.19.138.20 -t /switch/kueche/kaffeemaschine/cmnd/POWER -m "OFF"' +alias wg_up='sudo networkctl up wg_htz-cloud_wi' +alias wg_down='sudo networkctl down wg_htz-cloud_wi' +alias voc_up='sudo systemctl start openvpn-client@c3voc' +alias voc_down='sudo systemctl stop openvpn-client@c3voc' + alias ga.='git add .' alias ga='git add' alias gc='git commit' @@ -29,8 +41,16 @@ alias gp='git push' alias gpu='git push -u origin HEAD' alias gs='git status --short' +alias libreoffice_present='libreoffice --impress --invisible --show' + set -x BW_ITEM_WORKERS 16 set -x BW_NODE_WORKERS 16 +set -x BW_KEEPASS_FILE /home/kunsi/git/passwords/voc.kdbx + +set -x LESS "-iRS -# 2" + +# mollys mpd, see /etc/hosts +set -x MPD_HOST mpd.local function fish_greeting echo -n "" @@ -47,3 +67,11 @@ end function config --wraps=/usr/bin/git /usr/bin/git --git-dir=$HOME/.cfg/ --work-tree=$HOME $argv; end + +function cert + echo "" | openssl s_client -connect {$argv[1]}:443 +end + +function tomp3 + ffmpeg -i "$argv[1]" -vn -f mp3 -q:a 0 "$(basename "$argv[1]").mp3" +end diff --git a/.config/gitignore-global b/.config/gitignore-global new file mode 100644 index 0000000..3fafd07 --- /dev/null +++ b/.config/gitignore-global @@ -0,0 +1,2 @@ +__pycache__ +*.egg-info diff --git a/.config/grobi.conf b/.config/grobi.conf new file mode 100644 index 0000000..8fec3e5 --- /dev/null +++ b/.config/grobi.conf @@ -0,0 +1,60 @@ +# vim:ft=yaml + +execute_after: + - xset s 90 10 + - /home/kunsi/.fehbg + - sudo rfkill unblock wifi + +on_failure: + - xrandr --auto + +rules: + - name: 'home' + outputs_connected: + - HDMI-A-0 + - DisplayPort-0 + configure_row: + - DisplayPort-0 + - HDMI-A-0 + primary: eDP + execute_after: + - xset s off + - sudo rfkill block wifi + + - name: 'presentation' + outputs_connected: + - HDMI-A-0 + configure_row: + - HDMI-A-0 + - eDP + primary: eDP + execute_after: + - xset s off + - systemctl --user stop redshift.service + + - name: 'smedia' + outputs_connected: + - DisplayPort-0 + - DisplayPort-1 + configure_row: + - eDP + - DisplayPort-0 + - DisplayPort-1 + primary: DisplayPort-1 + execute_after: + - xset s off + - sudo light -S 100 + + - name: 'DP0' + outputs_connected: + - DisplayPort-0 + configure_row: + - DisplayPort-0 + - eDP + primary: eDP + execute_after: + - xset s off + + - name: 'internal only' + configure_single: eDP + primary: eDP diff --git a/.config/grobi/grobi.conf b/.config/grobi/grobi.conf deleted file mode 100644 index a7c7fdf..0000000 --- a/.config/grobi/grobi.conf +++ /dev/null @@ -1,42 +0,0 @@ -# vim:ft=yaml - -execute_after: - - xset s 90 10 - - /home/kunsi/.fehbg - - sudo rfkill unblock wifi - - xrandr --output eDP1 --set "Broadcast RGB" "Full" - -on_failure: - - xrandr --auto - -rules: - - name: 'presentation' - outputs_connected: - - HDMI2 - configure_row: - - HDMI2@1920x1080 - - eDP1 - primary: eDP1 - execute_after: - - xset s off - - systemctl --user stop redshift.service - - - name: 'docked with dock-connector' - outputs_connected: - - DP2-1 - - DP2-2 - configure_row: - - eDP1 - - DP2-2 - - DP2-1 - primary: DP2-1 - execute_after: - - xset s off - - sudo rfkill block wifi - - xbacklight =100 - - xrandr --output DP2-2 --set "Broadcast RGB" "Full" - - xrandr --output DP2-1 --set "Broadcast RGB" "Full" - - - name: 'internal only' - configure_single: eDP1 - primary: eDP1 diff --git a/.config/i3/config b/.config/i3/config index 2c8f466..01b5716 100644 --- a/.config/i3/config +++ b/.config/i3/config @@ -1,12 +1,12 @@ set $mod Mod4 -#font pango:B612 Regular 7 -font pango:DB Office Regular 9 +#font pango:B612 Regular 9 +font pango:DB Office Regular 8 floating_modifier $mod -bindsym $mod+Return exec xiate -bindsym $mod+Shift+Return exec xiate -class xiate-floating -e python +bindsym $mod+Return exec kitty +bindsym $mod+Shift+Return exec kitty --class terminal-floating -e python bindsym $mod+Shift+x kill @@ -50,7 +50,7 @@ set $ws4 "4" set $ws5 "5" set $ws6 "6" set $ws7 "7" -set $ws8 "9" +set $ws8 "8" set $ws9 "9:media" set $ws10 "10:mail" @@ -94,9 +94,11 @@ bindsym $mod+c mode "resize" default_border pixel 1 hide_edge_borders smart +force_display_urgency_hint 1000 ms +focus_on_window_activation smart bar { - status_command python ~/.config/i3pystatus/config.py + status_command /opt/i3pystatus/venv/bin/python ~/.config/i3pystatus/config.py position top tray_output primary workspace_buttons yes @@ -106,38 +108,32 @@ for_window [window_role="pop-up"] floating enable for_window [class="Pavucontrol"] floating enable for_window [class="Gnome-calculator"] floating enable for_window [class="realvnc-vncviewer"] floating enable -for_window [class="xiate-floating"] floating enable +for_window [class="terminal-floating"] floating enable -workspace $ws1 output DP2-2 -workspace $ws2 output DP2-1 -workspace $ws3 output DP2-2 -workspace $ws9 output eDP1 -workspace $ws10 output DP2-1 +workspace $ws1 output DisplayPort-0 +workspace $ws2 output DisplayPort-0 +workspace $ws3 output DisplayPort-0 +workspace $ws9 output HDMI-A-0 +workspace $ws10 output DisplayPort-0 exec_always setxkbmap -synch exec_always ~/.fehbg -exec_always xinput set-prop "TPPS/2 IBM TrackPoint" "libinput Accel Speed" 0.8 +exec_always sudo /home/kunsi/.bin/trackpoint-settings.sh exec xset s noblank && xset s 90 10 && xset -dpms exec xsetroot -solid "#000000" exec xss-lock -n /home/kunsi/.bin/notify.sh -- /home/kunsi/.bin/screenlock.sh -exec xinput disable 'SynPS/2 Synaptics TouchPad' -exec xinput disable 'ELAN Touchscreen' +#exec xinput disable 'SynPS/2 Synaptics TouchPad' -#bindsym Control+$mod+l exec /home/kunsi/.bin/screenlock.sh -bindsym XF86Tools exec /home/kunsi/.bin/screenlock.sh +bindsym XF86Favorites exec /home/kunsi/.bin/screenlock.sh -bindsym XF86Display exec arandr +bindsym XF86AudioRaiseVolume exec wpctl set-volume @DEFAULT_AUDIO_SINK@ 2%+; exec wpctl set-mute @DEFAULT_AUDIO_SINK@ 0 +bindsym XF86AudioLowerVolume exec wpctl set-volume @DEFAULT_AUDIO_SINK@ 2%-; exec wpctl set-mute @DEFAULT_AUDIO_SINK@ 0 +bindsym XF86AudioMute exec wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle +bindsym XF86AudioMicMute exec wpctl set-mute laptop-internal-microphone toggle -bindsym $mod+Prior exec pactl set-sink-volume @DEFAULT_SINK@ +2%; exec pactl set-sink-mute @DEFAULT_SINK@ 0 -bindsym $mod+Next exec pactl set-sink-volume @DEFAULT_SINK@ -2%; exec pactl set-sink-mute @DEFAULT_SINK@ 0 -bindsym XF86AudioRaiseVolume exec pactl set-sink-volume @DEFAULT_SINK@ +2%; exec pactl set-sink-mute @DEFAULT_SINK@ 0 -bindsym XF86AudioLowerVolume exec pactl set-sink-volume @DEFAULT_SINK@ -2%; exec pactl set-sink-mute @DEFAULT_SINK@ 0 -bindsym XF86AudioMute exec pactl set-sink-mute @DEFAULT_SINK@ toggle -bindsym XF86AudioMicMute exec pactl set-source-mute alsa_input.pci-0000_00_1f.3.analog-stereo toggle - -bindsym XF86MonBrightnessUp exec xbacklight +5 -bindsym XF86MonBrightnessDown exec xbacklight -5 +bindsym XF86MonBrightnessUp exec sudo light -A 5 +bindsym XF86MonBrightnessDown exec sudo light -U 5 bindsym $mod+Print exec maim ~/screenshot_$(date +%Y-%m-%d_%H%M%S).png bindsym $mod+Shift+Print exec maim -i $(xdotool getactivewindow) ~/screenshot_$(date +%Y-%m-%d_%H%M%S).png diff --git a/.config/i3pystatus/config.py b/.config/i3pystatus/config.py index ac02e9d..76e8155 100644 --- a/.config/i3pystatus/config.py +++ b/.config/i3pystatus/config.py @@ -1,25 +1,36 @@ from i3pystatus import Status status = Status( - logfile='/dev/null', + logfile='/dev/stderr', ) status.register("pulseaudio", format="♪I {volume}%", format_muted="♪I -∞dB", step="2", - sink="alsa_output.pci-0000_00_1f.3.analog-stereo") + sink="alsa_output.pci-0000_06_00.6.HiFi__hw_Generic_1__sink") status.register("pulseaudio", format="♪D {volume}%", format_muted="♪D -∞dB", step="2", sink="@DEFAULT_SINK@") +#status.register("shell", +# format="♪D {output}", +# command="wpctl get-volume @DEFAULT_AUDIO_SINK@ | cut -d: -f2", +# interval=1) +#status.register("shell", +# format="{output}", +# hints = {"markup": "pango"}, +# command="/home/kunsi/.config/i3pystatus/microphone-status.sh", +# on_rightclick="pactl set-source-mute alsa_input.pci-0000_07_00.6.HiFi__hw_acp__source toggle", +# interval=1) + status.register("backlight", format="{percentage}%", - backlight="intel_backlight", - on_leftclick="xbacklight =10", - on_rightclick="xbacklight =50", + backlight="amdgpu_bl1", + on_leftclick="sudo light -S 10", + on_rightclick="sudo light -S 50", interval=1) status.register("shell", @@ -30,7 +41,9 @@ status.register("shell", on_rightclick="xset s off") status.register("clock", - format="%a, %Y-%m-%d %H:%M:%S (W%V)",) + format="%a, %Y-%m-%d %H:%M:%S %z (W%V)") +status.register("clock", + format=("%Y-%m-%d %H:%M:%S UTC", "UTC")) status.register("battery", battery_ident="BAT0", @@ -42,24 +55,15 @@ status.register("battery", "CHR": "↑", "FULL": "", }) -status.register("battery", - battery_ident="BAT1", - format="B1: {status}{percentage:.2f}% {remaining:%E%h:%M}", - alert=True, - alert_percentage=5, - status={ - "DIS": "↓", - "CHR": "↑", - "FULL": "", - }) status.register("load", - format="{avg1}") - + format="L: {avg1}") +status.register("amdgpu", + format="G: {temp}°C {gpu_usage}%", + card=1) status.register("temp", - format="{temp:.0f}°C", + format="C: {temp:.0f}°C", hints={"markup": "pango"}, -# lm_sensors_enable=True, dynamic_color=True) status.register("shell", @@ -81,13 +85,6 @@ status.register("shell", on_leftclick='systemctl --user start redshift.service', on_rightclick='systemctl --user stop redshift.service', interval=1) -status.register("shell", - format="{output}", - hints = {"markup": "pango"}, - command="/home/kunsi/.config/i3pystatus/touchscreen.sh", - interval=1, - on_leftclick="xinput enable 'ELAN Touchscreen'", - on_rightclick="xinput disable 'ELAN Touchscreen'") status.register("shell", format="{output}", hints = {"markup": "pango"}, @@ -96,12 +93,24 @@ status.register("shell", on_leftclick="xinput enable 'SynPS/2 Synaptics TouchPad'", on_rightclick="xinput disable 'SynPS/2 Synaptics TouchPad'") -status.register("shell", - format="{output}", +#status.register("wifionice", wifi_adapters=['wlan0']) +status.register("wifionice", hints = {"markup": "pango"}, - command="/home/kunsi/.config/i3pystatus/ice-status.py", - ignore_empty_stdout=True, - interval=2) + url_on_click='https://travelynx.franzi.business/s/{last_station_no}?train={train_type}%20{train_no}', + wifi_adapters=['wlan0'], + format_offtrain='Wann wieder Zug?', + format_ontrain=r'{train_type} {train_no} [~ {speed}km/h ]> {next_station}[ ' + r'\[{next_platform}\] {arrival_time} ' + r'({arrival_in}[ | {delay}])][ ' + r'(Net: {net_current} > \[{net_duration}\] ' + r'{net_expected})]') +#status.register("shell", +# format="{output}", +# hints = {"markup": "pango"}, +# command="/home/kunsi/.config/i3pystatus/ice-status.py", +# on_leftclick="/home/kunsi/.config/i3pystatus/ice-status.py --link", +# ignore_empty_stdout=True, +# interval=2) status.register("network", interface="wlp4s0", @@ -110,7 +119,7 @@ status.register("network", detect_active=True, freq_divisor=1000000000, divisor=1024, - on_leftclick="xiate -class xiate-floating -e sudo wifi-menu", + on_leftclick="kitty --class terminal-floating -e sudo wifi-menu", hints={"markup":"pango"}) #status.register("mpd", @@ -129,7 +138,7 @@ status.register("network", # max_field_len=200) status.register("disk", - path="/home", + path="/home/kunsi", format="{used}/{total}G",) status.run() diff --git a/.config/i3pystatus/ice-status.py b/.config/i3pystatus/ice-status.py deleted file mode 100755 index 0102911..0000000 --- a/.config/i3pystatus/ice-status.py +++ /dev/null @@ -1,75 +0,0 @@ -#!/usr/bin/env python3 - -from datetime import datetime -from requests import get -from subprocess import check_output -from sys import exit - - -# bundlewrap.utils.text.format_duration, but trimmed down -def format_time(seconds): - components = [] - if seconds >= 3600: - hours = int(seconds / 3600) - seconds -= hours * 3600 - components.append('{}h'.format(hours)) - if seconds >= 60: - minutes = int(seconds / 60) - seconds -= minutes * 60 - components.append('{}m'.format(minutes)) - if not components: - components.append('now') - return " ".join(components) - - -try: - wifi_ssid = check_output("iw dev wlp4s0 link | awk '/SSID/ {print $2}'", shell=True).decode().strip().lower() - - if wifi_ssid not in ( - 'wifi@db', - 'wifionice' - ): - exit(0) - - now = datetime.now() - - trip_info_req = get('https://portal.imice.de/api1/rs/tripInfo/trip') - trip_info_req.raise_for_status() - trip_info = trip_info_req.json()['trip'] - - ice_status_req = get('https://portal.imice.de/api1/rs/status') - ice_status_req.raise_for_status() - ice_status = ice_status_req.json() - - next_stop_id = trip_info['stopInfo']['actualNext'] - for stop in trip_info['stops']: - if stop['station']['evaNr'] == next_stop_id: - if stop['timetable']['departureDelay']: - delay = ' | {}'.format(stop['timetable']['departureDelay']) - else: - delay = '' - - arrival = datetime.fromtimestamp(stop['timetable']['actualArrivalTime']/1000) - arrival_in = arrival - now - - next_stop = '{} [{}] {} ({}{})'.format( - stop['station']['name'], - stop['track']['actual'], - arrival.strftime('%H:%M'), - format_time(arrival_in.total_seconds()), - delay - ) - break - else: - next_stop = 'Endstation, bitte Aussteigen' - - print('{}km/h > {} (Net: {} > [{}] {})'.format( - ice_status['speed'], - next_stop, - ice_status['connectivity']['currentState'], - format_time(ice_status['connectivity']['remainingTimeSeconds']), - ice_status['connectivity']['nextState'], - )) -except Exception as e: - print(repr(e)) - exit(0) diff --git a/.config/i3pystatus/microphone-status.sh b/.config/i3pystatus/microphone-status.sh new file mode 100755 index 0000000..deae5ae --- /dev/null +++ b/.config/i3pystatus/microphone-status.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +OUT="$(pactl get-source-mute alsa_input.pci-0000_07_00.6.HiFi__hw_acp__source | cut -d' ' -f2)" + +if [ "$OUT" = "yes" ] +then + echo 'M' +else + echo 'Microphone unmuted' +fi diff --git a/.config/i3pystatus/rfkill-wifi.py b/.config/i3pystatus/rfkill-wifi.py index 29f9b63..b338d21 100755 --- a/.config/i3pystatus/rfkill-wifi.py +++ b/.config/i3pystatus/rfkill-wifi.py @@ -12,11 +12,20 @@ for line in check_output(['rfkill', '-rn']).decode('UTF-8').splitlines(): 'hard': True if hard == 'blocked' else False, } -if devices['phy0']['hard']: - wlan = '#FF0000' -elif devices['phy0']['soft']: - wlan = '#FF9900' -else: - wlan = '#00FF00' +wifi_dev = None +for device in devices: + if device.startswith('phy'): + wifi_dev = device + break -print(f'WLAN') +if not wifi_dev: + print('No WLAN?') +else: + if devices[wifi_dev]['hard']: + wlan = '#FF0000' + elif devices[wifi_dev]['soft']: + wlan = '#FF9900' + else: + wlan = '#00FF00' + + print(f'WLAN') diff --git a/.config/i3pystatus/screensaver-status.sh b/.config/i3pystatus/screensaver-status.sh index 9d4247a..bee0e4c 100755 --- a/.config/i3pystatus/screensaver-status.sh +++ b/.config/i3pystatus/screensaver-status.sh @@ -5,8 +5,6 @@ OUT="$(xset q | grep timeout | awk '{print $2}')" if [ "$OUT" = "0" ] then echo "OFF" - exit 1 else echo "${OUT}s" - exit 0 fi diff --git a/.config/kitty/kitty.conf b/.config/kitty/kitty.conf new file mode 100644 index 0000000..5c7c5da --- /dev/null +++ b/.config/kitty/kitty.conf @@ -0,0 +1,16 @@ +font_size 10.0 +cursor #4d5b86 +cursor_shape block +scrollback_lines -1 +sync_to_monitor yes +enable_audio_bell no +visual_bell_duration 0.1 +window_alert_on_bell yes + +remember_window_size no +initial_window_width 100c +initial_window_height 30c + +map ctrl+shift+0 change_font_size current 0 +map ctrl+shift+8 change_font_size current -2.0 +map ctrl+shift+9 change_font_size current +2.0 diff --git a/.config/mpv/mpv.conf b/.config/mpv/mpv.conf index 0aaf0f5..0fc3f93 100644 --- a/.config/mpv/mpv.conf +++ b/.config/mpv/mpv.conf @@ -8,11 +8,19 @@ cursor-autohide=1000 msg-color +no-audio-display + no-osc osd-on-seek=bar hls-bitrate=max +[downmix] +af=lavfi="pan=stereo|FL < 0.5*FC + 0.3*FLC + 0.3*FL + 0.3*BL + 0.3*SL + 0.5*LFE | FR < 0.5*FC + 0.3*FRC + 0.3*FR + 0.3*BR + 0.3*SR + 0.5*LFE",lavfi="acompressor=10" + +[mono] +af=lavfi=[pan=1c|c0=0.5*c0+0.5*c1] + [extension.gif] cache=no no-pause diff --git a/.config/rofi/config.rasi b/.config/rofi/config.rasi index a3fa4b3..b3ba019 100644 --- a/.config/rofi/config.rasi +++ b/.config/rofi/config.rasi @@ -1,9 +1,14 @@ configuration { - modi: "window,run,drun"; + modi: "drun"; show-icons: true; sidebar-mode: true; - theme: "sidetab"; display-window: "Window"; display-run: "Execute"; display-drun: "Activate"; } +//@theme "/usr/share/rofi/themes/sidebar.rasi" +//@theme "/usr/share/rofi/themes/paper-float.rasi" +//@theme "/usr/share/rofi/themes/dmenu.rasi" +//@theme "/usr/share/rofi/themes/android_notification.rasi" +//@theme "/usr/share/rofi/themes/Arc-Dark.rasi" +@theme "/usr/share/rofi/themes/sidebar.rasi" diff --git a/.config/systemd/user/default.target.wants/grobi.service b/.config/systemd/user/default.target.wants/grobi.service deleted file mode 120000 index aad545f..0000000 --- a/.config/systemd/user/default.target.wants/grobi.service +++ /dev/null @@ -1 +0,0 @@ -/home/kunsi/.config/systemd/user/grobi.service \ No newline at end of file diff --git a/.config/systemd/user/grobi.service b/.config/systemd/user/grobi.service deleted file mode 100644 index f51829e..0000000 --- a/.config/systemd/user/grobi.service +++ /dev/null @@ -1,11 +0,0 @@ -[Unit] -Description=Automatically configure monitors/outputs for Xorg via RANDR - -[Service] -ExecStart=/home/kunsi/git/grobi/grobi watch --verbose --config=/home/kunsi/.config/grobi/grobi.conf -Restart=always -RestartSec=10 -StartLimitInterval=0 - -[Install] -WantedBy=default.target diff --git a/.config/yt-dlp/config b/.config/yt-dlp/config new file mode 100644 index 0000000..f77646e --- /dev/null +++ b/.config/yt-dlp/config @@ -0,0 +1,33 @@ +# Have service and author in the file name. +--output '%(title)s [%(extractor)s %(id)s %(uploader_id)s].%(ext)s' + +# Try to download live streams from the start (use --no-live-from-start to disable). +--live-from-start +# Wait for scheduled streams to become available, retry after 10 seconds. +--wait-for-video 10 + +# Display progress in console title. +--console-title + +# Create SponsorBlock chapters. +--sponsorblock-mark all + +# embed some stuff +--embed-chapters +--embed-metadata +--embed-subs +--embed-thumbnail +--video-multistreams +--audio-multistreams +--merge-output-format mkv + +# The following options are basically presets for different use cases. + +# Create a new option `--archive` that will embed all video and audio streams +# and as much information as possible in the video as well as create a sidecar +# file with full metadata. +--alias archive '--write-info-json --no-clean-info-json' + +# Create a `--mp4` option that will optimize for getting an MP4 file, for +# sharing on the Fedi etc. `-S ext` does the heavy lifting here. +--alias mp4 '-S ext --merge-output-format mp4' diff --git a/.fehbg b/.fehbg index 9b3f00c..c7cdddf 100755 --- a/.fehbg +++ b/.fehbg @@ -1,2 +1,2 @@ #!/bin/sh -feh --no-fehbg --bg-scale '/home/kunsi/Pictures/2021-08-28_The-Treasure_by-David-Revoy.jpg' +feh --no-fehbg --bg-fill '/home/kunsi/Pictures/IMG_20231013_175516.jpg' diff --git a/.gitconfig b/.gitconfig index 71336c7..4a69370 100755 --- a/.gitconfig +++ b/.gitconfig @@ -23,3 +23,10 @@ [init] defaultBranch = main + +[core] + excludesFile = ~/.config/gitignore-global + +[push] + autoSetupRemote = true + default = current diff --git a/.gnupg/gpg-agent.conf b/.gnupg/gpg-agent.conf index 5f48733..0e9db9e 100644 --- a/.gnupg/gpg-agent.conf +++ b/.gnupg/gpg-agent.conf @@ -1,7 +1,8 @@ -default-cache-ttl 2 -default-cache-ttl-ssh 5 -max-cache-ttl 2 -max-cache-ttl-ssh 30 +default-cache-ttl 120 +default-cache-ttl-ssh 120 +max-cache-ttl 600 +max-cache-ttl-ssh 1800 no-allow-external-cache enable-ssh-support ignore-cache-for-signing +pinentry-program /usr/bin/pinentry diff --git a/.gtkrc-2.0 b/.gtkrc-2.0 index 171dc0e..7ab7af6 100644 --- a/.gtkrc-2.0 +++ b/.gtkrc-2.0 @@ -1,4 +1,4 @@ -gtk-theme-name="breeze-dark" +gtk-theme-name="Skeuos-Teal-Dark" gtk-enable-animations=1 diff --git a/.mutt/ACCOUNT_TEMPLATE b/.mutt/ACCOUNT_TEMPLATE index 67a2181..ea4beda 100644 --- a/.mutt/ACCOUNT_TEMPLATE +++ b/.mutt/ACCOUNT_TEMPLATE @@ -7,8 +7,8 @@ set imap_pass="PASSWORD" set from="" -set folder="imaps://USERNAME@mx0.kunbox.net/" -set smtp_url="smtp://USERNAME:PASSWORD@mx0.kunbox.net:587/" +set folder="imaps://USERNAME@rx300.kunbox.net/" +set smtp_url="smtp://USERNAME:PASSWORD@rx300.kunbox.net:587/" set spoolfile="+INBOX" set record="+Sent" diff --git a/.muttrc b/.muttrc index 42812cf..8ff2fbf 100644 --- a/.muttrc +++ b/.muttrc @@ -34,11 +34,11 @@ set mailcap_path=~/.mutt/mailcap alternative_order text/plain text/html auto_view text/html -set index_format="%4C %Z %{%b %d} %-25.25L (%?l?%4l&%4c?) %s" +set index_format="%4C %Z %{%F %T %z} %-25.25L (%?l?%4l&%4c?) %s" set editor="vim -c 'set spell spelllang=de,en'" -source ~/.mutt/gpg.rc +source /usr/share/doc/neomutt/samples/gpg.rc set pgp_use_gpg_agent=yes set pgp_timeout=60 diff --git a/.ssh/config b/.ssh/config index 2591b72..7d7584d 100755 --- a/.ssh/config +++ b/.ssh/config @@ -5,29 +5,50 @@ Host * Include ~/.ssh/bwnodes -Host luther-netcup - HostName 46.38.249.46 - User sub4632_80 +Host 172.19.138.10 + User root -Host shells - HostName shells.entropia.de - Port 22 - User kunsi +Host 172.19.138.95 + User of -Host voellerei - HostName voellerei.club.entropia.de - Port 22 - User entropia +Host 2a01:4f9:6b:2d99::c0ff:ee + User root -Host raeumlichkeit - HostName raeumlichkeit.club.entropia.de - Port 22 - User kunsi +#Host ch-jump +# Hostname jump.chaos-at-home.org +# Port 2342 +# User c3voc +# +#Host 10.73.7.* +# ProxyJump ch-jump -Host poc - HostName poc-gw.entropia.de - Port 22 - User kunsi +Host akamai.lan.c3voc.de + User root + +Host cloudflare.lan.c3voc.de + User root + +Host fastly.lan.c3voc.de + User root + +Host *.lan.c3voc.de 172.19.138.10 172.19.138.117 + SetEnv TERM=xterm-256color + # for info-beamer and openwrt + HostKeyAlgorithms +ssh-rsa + PubkeyAcceptedKeyTypes +ssh-rsa + #User voc + +Host voc-servercase-switch + HostName 10.73.200.200 + KexAlgorithms diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1 + HostKeyAlgorithms ssh-rsa + Ciphers aes128-cbc,3des-cbc + SetEnv TERM=xterm-256color + User admin + +Host proxmox-backupstorage + HostName 2a01:4f9:6b:2d99::c0ff:ee + User root Host router-remote HostName franzi-home.kunbox.net diff --git a/.vimrc b/.vimrc index 24cd979..10eaa3c 100644 --- a/.vimrc +++ b/.vimrc @@ -1,3 +1,4 @@ +set ttymouse=sgr set number set lbr set fdc=0