aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/dot_config/sway/executable_vol-osd.sh
blob: 46f35b751f09b903ad4c1914ac750d30944b3640 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#!/bin/sh
# Print 0–100 to wob's fifo to flash a volume bar overlay.
# Usage: vol-osd.sh up|down|mute (mute toggles)
set -eu

fifo=${XDG_RUNTIME_DIR:-/tmp}/wob.sock
sink='@DEFAULT_SINK@'

case "${1:-}" in
    up)   pactl set-sink-volume "$sink" +5% ;;
    down) pactl set-sink-volume "$sink" -5% ;;
    mute) pactl set-sink-mute   "$sink" toggle ;;
    *)    echo "usage: $0 up|down|mute" >&2; exit 2 ;;
esac

muted=$(pactl get-sink-mute "$sink" | awk '{print $2}')
if [ "$muted" = "yes" ]; then
    printf '0\n' >"$fifo"
else
    pactl get-sink-volume "$sink" |
        awk '/Volume:/ { for (i=1;i<=NF;i++) if ($i ~ /%/) { gsub(/%/,"",$i); print $i; exit } }' \
        >"$fifo"
fi