44 lines
1.1 KiB
Bash
Executable File
44 lines
1.1 KiB
Bash
Executable File
#!/bin/bash -e
|
|
|
|
NOTIFY='notify-send -t 1000 -a changeVolume -u low'
|
|
NOTIFYVOL="$NOTIFY -i audio-volume-high"
|
|
|
|
SINK='@DEFAULT_AUDIO_SINK@'
|
|
WPCUR="$(wpctl get-volume "$SINK")"
|
|
CUR="$((10#$(tr -dc '0-9' <<< "$WPCUR")))"
|
|
|
|
grep -q MUTED <<< "$WPCUR" && MUTE=1 || MUTE=0
|
|
|
|
if [ "$1" == 'm' ]; then
|
|
if [ "$MUTE" = 1 ]; then
|
|
wpctl set-mute "$SINK" 0
|
|
$NOTIFYVOL -h string:synchronous:vol -h int:value:"$CUR" "$CUR%"
|
|
else
|
|
wpctl set-mute "$SINK" 1
|
|
$NOTIFY -i audio-volume-muted -h string:synchronous:vol "Mute"
|
|
fi
|
|
else
|
|
case "${1:0:1}" in
|
|
'')
|
|
echo "$CUR"; exit
|
|
;;
|
|
'+'|'-')
|
|
CUR="$((CUR - CUR % $1 + $1))"
|
|
[ "$CUR" -lt 0 ] && CUR=0
|
|
[ "$CUR" -gt 150 ] && CUR=150
|
|
;;
|
|
*)
|
|
CUR="$1"
|
|
;;
|
|
esac
|
|
|
|
wpctl set-volume "$SINK" "$CUR%"
|
|
if [ "$MUTE" = 1 ]; then
|
|
wpctl set-mute "$SINK" 0
|
|
fi
|
|
$NOTIFYVOL -h string:synchronous:vol -h int:value:"$CUR" "$CUR%"
|
|
fi
|
|
|
|
# update sbar
|
|
kill -34 "$(cat "$HOME/.cache/pidofbar")"
|