feat: huge update

This commit is contained in:
ange 2024-10-01 13:47:31 +07:00
parent 9c621760cf
commit 757b759b4a
Signed by: ange
GPG key ID: 9E0C4157BB7BEB1D
47 changed files with 221 additions and 286 deletions

View file

@ -1,34 +1,46 @@
#!/bin/bash -e
SINK='@DEFAULT_AUDIO_SINK@'
NOTIFY=(notify-send -t 1000 -u low)
case "$1" in
s)
DEV='@DEFAULT_AUDIO_SINK@'
SIG=35
;;
m)
DEV='@DEFAULT_AUDIO_SOURCE@'
SIG=36
;;
*)
exit 1
;;
esac
shift
function update_vol() {
if [[ "$1" =~ ^(-|\+)* ]]; then
CUR="$(($CUR + $1 - $CUR % $1 + $CUR % $1 * 10 / $1 / 5 * $1))"
[ "$CUR" -lt 0 ] && CUR=0
[ "$CUR" -gt 150 ] && CUR=150
else
CUR="$1"
fi
wpctl set-volume "$SINK" "$CUR%"
case "$1" in
+*|-*)
CUR="$(($CUR + $1 - $CUR % $1 + $CUR % $1 * 10 / $1 / 5 * $1))"
[ "$CUR" -lt 0 ] && CUR=0
[ "$CUR" -gt 200 ] && CUR=200
;;
*)
CUR="$1"
esac
wpctl set-volume "$DEV" "$CUR%"
}
read -r _ CUR MUTE < <(wpctl get-volume "$SINK")
read -r _ CUR MUTE < <(wpctl get-volume "$DEV")
CUR="$(("10#${CUR/./}"))"
if [ -z "$1" ]; then
echo "$CUR"
exit
elif [ "$1" == 'm' ] && [ -z "$MUTE" ]; then
wpctl set-mute "$SINK" 1
"${NOTIFY[@]}" -i audio-volume-muted-symbolic -h string:synchronous:vol "Mute"
wpctl set-mute "$DEV" 1
else
if [[ "$1" =~ [0-9] ]]; then
update_vol "$1"
fi
[ -n "$MUTE" ] && wpctl set-mute "$SINK" 0
"${NOTIFY[@]}" -i audio-volume-high-symbolic -h string:synchronous:vol -h int:value:"$CUR" "$CUR%"
[ -n "$MUTE" ] && wpctl set-mute "$DEV" 0
fi
kill -35 "$(cat "$HOME/.cache/pidofbar")"
kill "-$SIG" "$(cat "$HOME/.cache/pidofbar")"