1
0
Fork 0
dotfiles/.config/sxhkd/mods/module_alsa.sh

79 lines
1.4 KiB
Bash
Executable File

#!/usr/bin/env bash
VOL="$(amixer -D pulse sget Master | tail -n 1 | cut -c 32-35)"
STAT0="$(amixer -D pulse sget Master | tail -n 1 | cut -c 38)"
STAT1="$(amixer -D pulse sget Master | tail -n 1 | cut -c 35)"
STAT2="$(amixer -D pulse sget Master | tail -n 1 | cut -c 40)"
UPORDOWN="$1"
if [ "$UPORDOWN" = "up" ]
then
if [ "$STAT0" = "f" ] || [ "$STAT1" = "f" ] || [ "$STAT2" = "f" ]
then
notify-send -u critical "Volume Manager" "Unmuted\!"
pactl set-sink-mute 1 0
fi
amixer -D pulse sset Master 10%+
fi
if [ "$UPORDOWN" = "down" ]
then
# the commented out part below should work
# but for some reason
# decreasing 10% volume shows 9% volume decrease in polybar widget
# but it is actually 10% volume decrease when checking with amixer
# so less efficient code; for the OCD;
#if [ "$VOL" = "100%" ]
#then
# amixer -D pulse sset Master 90%
#else
# amixer -D pulse sset Master 10%-
#fi
case "$VOL" in
"100%")
amixer -D pulse sset Master 90%
;;
"90%]")
amixer -D pulse sset Master 80%
;;
"80%]")
amixer -D pulse sset Master 70%
;;
"70%]")
amixer -D pulse sset Master 60%
;;
"60%]")
amixer -D pulse sset Master 50%
;;
"50%]")
amixer -D pulse sset Master 40%
;;
"40%]")
amixer -D pulse sset Master 30%
;;
"30%]")
amixer -D pulse sset Master 20%
;;
"20%]")
amixer -D pulse sset Master 10%
;;
"0%] ")
amixer -D pulse sset Master 10%-
;;
esac
fi