Initial ThinkPad Hyprland dotfiles

This commit is contained in:
Pascal
2026-04-28 03:59:07 +02:00
commit 6eb922c417
56 changed files with 6587 additions and 0 deletions

View File

@@ -0,0 +1,74 @@
#!/usr/bin/env bash
set -euo pipefail
notify() {
notify-send "󰕾 Audio" "$1"
}
require_wpctl() {
if ! command -v wpctl >/dev/null 2>&1; then
notify "wpctl ist nicht installiert."
exit 1
fi
}
choose_sink() {
wpctl status |
awk '
/Sinks:/ {in_sinks=1; next}
/Sources:/ {in_sinks=0}
in_sinks && /\*/ {gsub(/^[[:space:]]*[│├└─* ]*/, ""); print "󰓃 " $0}
in_sinks && /^[[:space:]]*[│├└─ ]*[0-9]+\./ {gsub(/^[[:space:]]*[│├└─ ]*/, ""); print "󰓃 " $0}
' |
wofi --dmenu --prompt "󰕾 Audioausgabe" --insensitive
}
require_wpctl
choice="$(
printf '%s\n' \
"󰝝 Lauter" \
"󰝞 Leiser" \
"󰖁 Stumm schalten" \
"󰓃 Ausgabe wechseln" \
"󰍬 Mikrofon stumm" \
"󰎆 Play/Pause" \
"󰒮 Naechster Titel" \
"󰒭 Vorheriger Titel" \
"󰩟 Status" |
wofi --dmenu --prompt "󰕾 Audio" --insensitive
)"
case "$choice" in
*"Lauter"*)
wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+
;;
*"Leiser"*)
wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
;;
*"Stumm schalten"*)
wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
;;
*"Ausgabe wechseln"*)
selection="$(choose_sink)"
[ -n "$selection" ] || exit 0
sink_id="$(printf '%s\n' "$selection" | sed -n 's/.* \([0-9][0-9]*\)\..*/\1/p')"
[ -n "$sink_id" ] || exit 0
wpctl set-default "$sink_id" && notify "Audioausgabe gewechselt."
;;
*"Mikrofon stumm"*)
wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
;;
*"Play/Pause"*)
playerctl play-pause
;;
*"Naechster Titel"*)
playerctl next
;;
*"Vorheriger Titel"*)
playerctl previous
;;
*"Status"*)
wpctl status | wofi --dmenu --prompt "󰩟 Audiostatus"
;;
esac