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