dotfiles/bin/set-vol

40 lines
608 B
Bash
Executable File

#!/bin/bash
set -e
SINK='@DEFAULT_SINK@'
TMP_FILE='/tmp/set-vol'
for _ in 1 2 3; do
[ -f "$TMP_FILE" ] || break
sleep 0.03
done
touch "$TMP_FILE"
VOL="$(pactl get-sink-volume "$SINK")"
VOL="$(grep -Po '\d+(?=%)' <<< "$VOL" | head -n 1)"
VOL="$((VOL - VOL % "$1"))"
case "${1:0:1}" in
'')
exit 1
;;
'+'|'-')
VOL="$((VOL + "$1"))"
;;
*)
VOL="$1"
;;
esac
[ "$VOL" -lt 0 ] && VOL=0
[ "$VOL" -gt 100 ] && VOL=100
pactl set-sink-volume "$SINK" "$VOL%"
pactl set-sink-mute "$SINK" 0
rm "$TMP_FILE"
if [ -t 1 ]; then
echo "$VOL"
fi