spectre_nixcfg/sway/chvol.sh

35 lines
539 B
Bash
Raw Normal View History

2025-06-17 03:42:31 -04:00
max=100
if [ $1 = 'source' ]; then
object="@DEFAULT_AUDIO_SOURCE@"
elif [ $1 = 'sink' ]; then
object="@DEFAULT_AUDIO_SINK@"
else
exit 1
fi;
if [ $2 = 'mute' ]; then
wpctl set-mute $object toggle
exit 0
fi;
val=$(wpctl get-volume $object | awk '{print $2}')
val=$(( (100*${val%%.*}) + ${val#*.} ))
val=$(( $val + $2 ))
if [ $val -gt $max ]; then
val=$max
elif [ $val -lt 0 ]; then
val=0
fi;
dec=$(( val / 100 ))
frac=$(( val % 100 ))
if [ $frac -lt 10 ]; then
frac="0$frac"
fi
wpctl set-volume $object "$dec.$frac"