diff --git a/.abcde.conf b/.abcde.conf deleted file mode 100644 index 5273037..0000000 --- a/.abcde.conf +++ /dev/null @@ -1,6 +0,0 @@ -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 f949551..8b9e653 100755 --- a/.bin/backup-and-update-system +++ b/.bin/backup-and-update-system @@ -1,26 +1,50 @@ -#!/bin/bash +#!/bin/sh -set -xeuo pipefail - -export GIT_TERMINAL_PROMPT=0 -export GIT_SSH_COMMAND='ssh -oBatchMode=yes' +set -euo pipefail +set -x # 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 --all || true + git -C "$dir" fetch || true done # Do a backup. -sudo /usr/local/bin/generate-backup-with-retries -printf '\a' +( + 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 +) # Do updates -sudo pacman -Syu -sudo DIFFPROG='diff -u --color' pacdiff +sudo pacman -Syu --noconfirm diff --git a/.bin/notify.sh b/.bin/notify.sh index b1be7c2..3e2d48c 100755 --- a/.bin/notify.sh +++ b/.bin/notify.sh @@ -1,3 +1,3 @@ #!/bin/bash -notify-send --expire-time=9000 --app-name=i3lock "screen lock will activate shortly" +echo 'meowww?' | osd_cat --pos middle --align center --delay 9 -O 15 -f '-*-dejavu sans-*-*-*-*-120-200-*-*-*-*-*-*' diff --git a/.bin/pulseaudio-assert-volume b/.bin/pulseaudio-assert-volume index 51a7671..b8bdd6c 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) > 3 and int(percent) < 100: + if 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 0ac138f..1699d56 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_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 +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 i3lock -e -t -i /home/kunsi/Pictures/laptop_unbenutzbar.png diff --git a/.bin/trackpoint-settings.sh b/.bin/trackpoint-settings.sh deleted file mode 100755 index 9955b56..0000000 --- a/.bin/trackpoint-settings.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh - -xinput set-prop 'TPPS/2 Elan TrackPoint' 321 0.7 diff --git a/.bin/voc-ansible b/.bin/voc-ansible new file mode 100755 index 0000000..8f82b67 --- /dev/null +++ b/.bin/voc-ansible @@ -0,0 +1,7 @@ +#!/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 adad90c..0c37e63 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}/video" "/video" -sudo mount -t cifs -o "uid=${uid},password=" "//${device}/fuse" "/video/fuse" +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" diff --git a/.config/alacritty/alacritty.yml b/.config/alacritty/alacritty.yml deleted file mode 100644 index 139b482..0000000 --- a/.config/alacritty/alacritty.yml +++ /dev/null @@ -1,34 +0,0 @@ -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 0f31d13..dda5611 100644 --- a/.config/dunst/dunstrc +++ b/.config/dunst/dunstrc @@ -85,7 +85,7 @@ ### Text ### - font = pango:DB Office Regular 9 + font = Monospace 8 # 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 = no + markup = full # 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 = left + alignment = right # 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 a71edfe..080caa5 100644 --- a/.config/fish/config.fish +++ b/.config/fish/config.fish @@ -3,34 +3,22 @@ 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 -set -U -x SSH_AUTH_SOCK $(gpgconf --list-dirs agent-ssh-socket) +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)' alias bwr='cd ~/git/bundlewrap/' -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 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 l='ls -lAh' +alias please='sudo' 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' @@ -41,16 +29,8 @@ 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 "" @@ -67,11 +47,3 @@ 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 deleted file mode 100644 index 3fafd07..0000000 --- a/.config/gitignore-global +++ /dev/null @@ -1,2 +0,0 @@ -__pycache__ -*.egg-info diff --git a/.config/grobi.conf b/.config/grobi.conf deleted file mode 100644 index 8fec3e5..0000000 --- a/.config/grobi.conf +++ /dev/null @@ -1,60 +0,0 @@ -# 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 new file mode 100644 index 0000000..a7c7fdf --- /dev/null +++ b/.config/grobi/grobi.conf @@ -0,0 +1,42 @@ +# 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 01b5716..2c8f466 100644 --- a/.config/i3/config +++ b/.config/i3/config @@ -1,12 +1,12 @@ set $mod Mod4 -#font pango:B612 Regular 9 -font pango:DB Office Regular 8 +#font pango:B612 Regular 7 +font pango:DB Office Regular 9 floating_modifier $mod -bindsym $mod+Return exec kitty -bindsym $mod+Shift+Return exec kitty --class terminal-floating -e python +bindsym $mod+Return exec xiate +bindsym $mod+Shift+Return exec xiate -class xiate-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 "8" +set $ws8 "9" set $ws9 "9:media" set $ws10 "10:mail" @@ -94,11 +94,9 @@ 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 /opt/i3pystatus/venv/bin/python ~/.config/i3pystatus/config.py + status_command python ~/.config/i3pystatus/config.py position top tray_output primary workspace_buttons yes @@ -108,32 +106,38 @@ 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="terminal-floating"] floating enable +for_window [class="xiate-floating"] floating enable -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 +workspace $ws1 output DP2-2 +workspace $ws2 output DP2-1 +workspace $ws3 output DP2-2 +workspace $ws9 output eDP1 +workspace $ws10 output DP2-1 exec_always setxkbmap -synch exec_always ~/.fehbg -exec_always sudo /home/kunsi/.bin/trackpoint-settings.sh +exec_always xinput set-prop "TPPS/2 IBM TrackPoint" "libinput Accel Speed" 0.8 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 'SynPS/2 Synaptics TouchPad' +exec xinput disable 'ELAN Touchscreen' -bindsym XF86Favorites exec /home/kunsi/.bin/screenlock.sh +#bindsym Control+$mod+l exec /home/kunsi/.bin/screenlock.sh +bindsym XF86Tools exec /home/kunsi/.bin/screenlock.sh -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 XF86Display exec arandr -bindsym XF86MonBrightnessUp exec sudo light -A 5 -bindsym XF86MonBrightnessDown exec sudo light -U 5 +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 $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 76e8155..ac02e9d 100644 --- a/.config/i3pystatus/config.py +++ b/.config/i3pystatus/config.py @@ -1,36 +1,25 @@ from i3pystatus import Status status = Status( - logfile='/dev/stderr', + logfile='/dev/null', ) status.register("pulseaudio", format="♪I {volume}%", format_muted="♪I -∞dB", step="2", - sink="alsa_output.pci-0000_06_00.6.HiFi__hw_Generic_1__sink") + sink="alsa_output.pci-0000_00_1f.3.analog-stereo") 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="amdgpu_bl1", - on_leftclick="sudo light -S 10", - on_rightclick="sudo light -S 50", + backlight="intel_backlight", + on_leftclick="xbacklight =10", + on_rightclick="xbacklight =50", interval=1) status.register("shell", @@ -41,9 +30,7 @@ status.register("shell", on_rightclick="xset s off") status.register("clock", - format="%a, %Y-%m-%d %H:%M:%S %z (W%V)") -status.register("clock", - format=("%Y-%m-%d %H:%M:%S UTC", "UTC")) + format="%a, %Y-%m-%d %H:%M:%S (W%V)",) status.register("battery", battery_ident="BAT0", @@ -55,15 +42,24 @@ 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="L: {avg1}") -status.register("amdgpu", - format="G: {temp}°C {gpu_usage}%", - card=1) + format="{avg1}") + status.register("temp", - format="C: {temp:.0f}°C", + format="{temp:.0f}°C", hints={"markup": "pango"}, +# lm_sensors_enable=True, dynamic_color=True) status.register("shell", @@ -85,6 +81,13 @@ 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"}, @@ -93,24 +96,12 @@ status.register("shell", on_leftclick="xinput enable 'SynPS/2 Synaptics TouchPad'", on_rightclick="xinput disable 'SynPS/2 Synaptics TouchPad'") -#status.register("wifionice", wifi_adapters=['wlan0']) -status.register("wifionice", +status.register("shell", + format="{output}", hints = {"markup": "pango"}, - 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) + command="/home/kunsi/.config/i3pystatus/ice-status.py", + ignore_empty_stdout=True, + interval=2) status.register("network", interface="wlp4s0", @@ -119,7 +110,7 @@ status.register("network", detect_active=True, freq_divisor=1000000000, divisor=1024, - on_leftclick="kitty --class terminal-floating -e sudo wifi-menu", + on_leftclick="xiate -class xiate-floating -e sudo wifi-menu", hints={"markup":"pango"}) #status.register("mpd", @@ -138,7 +129,7 @@ status.register("network", # max_field_len=200) status.register("disk", - path="/home/kunsi", + path="/home", format="{used}/{total}G",) status.run() diff --git a/.config/i3pystatus/ice-status.py b/.config/i3pystatus/ice-status.py new file mode 100755 index 0000000..f9c9fb6 --- /dev/null +++ b/.config/i3pystatus/ice-status.py @@ -0,0 +1,77 @@ +#!/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): + if seconds is None: + return "?" + 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://iceportal.de/api1/rs/tripInfo/trip') + trip_info_req.raise_for_status() + trip_info = trip_info_req.json()['trip'] + + ice_status_req = get('https://iceportal.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 deleted file mode 100755 index deae5ae..0000000 --- a/.config/i3pystatus/microphone-status.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/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 b338d21..29f9b63 100755 --- a/.config/i3pystatus/rfkill-wifi.py +++ b/.config/i3pystatus/rfkill-wifi.py @@ -12,20 +12,11 @@ for line in check_output(['rfkill', '-rn']).decode('UTF-8').splitlines(): 'hard': True if hard == 'blocked' else False, } -wifi_dev = None -for device in devices: - if device.startswith('phy'): - wifi_dev = device - break - -if not wifi_dev: - print('No WLAN?') +if devices['phy0']['hard']: + wlan = '#FF0000' +elif devices['phy0']['soft']: + wlan = '#FF9900' else: - if devices[wifi_dev]['hard']: - wlan = '#FF0000' - elif devices[wifi_dev]['soft']: - wlan = '#FF9900' - else: - wlan = '#00FF00' + wlan = '#00FF00' - print(f'WLAN') +print(f'WLAN') diff --git a/.config/i3pystatus/screensaver-status.sh b/.config/i3pystatus/screensaver-status.sh index bee0e4c..9d4247a 100755 --- a/.config/i3pystatus/screensaver-status.sh +++ b/.config/i3pystatus/screensaver-status.sh @@ -5,6 +5,8 @@ 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 deleted file mode 100644 index 5c7c5da..0000000 --- a/.config/kitty/kitty.conf +++ /dev/null @@ -1,16 +0,0 @@ -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 0fc3f93..0aaf0f5 100644 --- a/.config/mpv/mpv.conf +++ b/.config/mpv/mpv.conf @@ -8,19 +8,11 @@ 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 b3ba019..a3fa4b3 100644 --- a/.config/rofi/config.rasi +++ b/.config/rofi/config.rasi @@ -1,14 +1,9 @@ configuration { - modi: "drun"; + modi: "window,run,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 new file mode 120000 index 0000000..aad545f --- /dev/null +++ b/.config/systemd/user/default.target.wants/grobi.service @@ -0,0 +1 @@ +/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 new file mode 100644 index 0000000..f51829e --- /dev/null +++ b/.config/systemd/user/grobi.service @@ -0,0 +1,11 @@ +[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 deleted file mode 100644 index f77646e..0000000 --- a/.config/yt-dlp/config +++ /dev/null @@ -1,33 +0,0 @@ -# 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 c7cdddf..9b3f00c 100755 --- a/.fehbg +++ b/.fehbg @@ -1,2 +1,2 @@ #!/bin/sh -feh --no-fehbg --bg-fill '/home/kunsi/Pictures/IMG_20231013_175516.jpg' +feh --no-fehbg --bg-scale '/home/kunsi/Pictures/2021-08-28_The-Treasure_by-David-Revoy.jpg' diff --git a/.gitconfig b/.gitconfig index 4a69370..71336c7 100755 --- a/.gitconfig +++ b/.gitconfig @@ -23,10 +23,3 @@ [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 0e9db9e..5f48733 100644 --- a/.gnupg/gpg-agent.conf +++ b/.gnupg/gpg-agent.conf @@ -1,8 +1,7 @@ -default-cache-ttl 120 -default-cache-ttl-ssh 120 -max-cache-ttl 600 -max-cache-ttl-ssh 1800 +default-cache-ttl 2 +default-cache-ttl-ssh 5 +max-cache-ttl 2 +max-cache-ttl-ssh 30 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 7ab7af6..171dc0e 100644 --- a/.gtkrc-2.0 +++ b/.gtkrc-2.0 @@ -1,4 +1,4 @@ -gtk-theme-name="Skeuos-Teal-Dark" +gtk-theme-name="breeze-dark" gtk-enable-animations=1 diff --git a/.mutt/ACCOUNT_TEMPLATE b/.mutt/ACCOUNT_TEMPLATE index ea4beda..67a2181 100644 --- a/.mutt/ACCOUNT_TEMPLATE +++ b/.mutt/ACCOUNT_TEMPLATE @@ -7,8 +7,8 @@ set imap_pass="PASSWORD" set from="" -set folder="imaps://USERNAME@rx300.kunbox.net/" -set smtp_url="smtp://USERNAME:PASSWORD@rx300.kunbox.net:587/" +set folder="imaps://USERNAME@mx0.kunbox.net/" +set smtp_url="smtp://USERNAME:PASSWORD@mx0.kunbox.net:587/" set spoolfile="+INBOX" set record="+Sent" diff --git a/.muttrc b/.muttrc index 8ff2fbf..42812cf 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 %{%F %T %z} %-25.25L (%?l?%4l&%4c?) %s" +set index_format="%4C %Z %{%b %d} %-25.25L (%?l?%4l&%4c?) %s" set editor="vim -c 'set spell spelllang=de,en'" -source /usr/share/doc/neomutt/samples/gpg.rc +source ~/.mutt/gpg.rc set pgp_use_gpg_agent=yes set pgp_timeout=60 diff --git a/.ssh/config b/.ssh/config index 7d7584d..2591b72 100755 --- a/.ssh/config +++ b/.ssh/config @@ -5,50 +5,29 @@ Host * Include ~/.ssh/bwnodes -Host 172.19.138.10 - User root +Host luther-netcup + HostName 46.38.249.46 + User sub4632_80 -Host 172.19.138.95 - User of +Host shells + HostName shells.entropia.de + Port 22 + User kunsi -Host 2a01:4f9:6b:2d99::c0ff:ee - User root +Host voellerei + HostName voellerei.club.entropia.de + Port 22 + User entropia -#Host ch-jump -# Hostname jump.chaos-at-home.org -# Port 2342 -# User c3voc -# -#Host 10.73.7.* -# ProxyJump ch-jump +Host raeumlichkeit + HostName raeumlichkeit.club.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 poc + HostName poc-gw.entropia.de + Port 22 + User kunsi Host router-remote HostName franzi-home.kunbox.net diff --git a/.vimrc b/.vimrc index 10eaa3c..24cd979 100644 --- a/.vimrc +++ b/.vimrc @@ -1,4 +1,3 @@ -set ttymouse=sgr set number set lbr set fdc=0