wm-logs/home/local/bin/scripts/volume.sh

70 lines
1.3 KiB
Bash
Raw Normal View History

#!/bin/bash
ICONS=~/.local/share/dunst
if [[ ! -x $(which pulsemixer) ]]; then
echo -e "\e[1;31merror\e[m: pulsemixer is not installed."
exit 1
fi
notify() {
get_icon
if [[ $is_mute == 1 ]]; then
dunstify -a Volume -i $icon -u low "Volume mute!"
else
dunstify -a Volume -i $icon -u low -h int:value:$curr_volume "currtent volume: ${curr_volume}%"
fi
}
get_volume() {
echo $(pulsemixer --get-volume | cut -d' ' -f1)
}
get_icon() {
curr_volume=$(get_volume)
is_mute=$(pulsemixer --get-mute)
if [[ $is_mute == 1 || "$curr_volume" -eq "0" ]]; then
icon="${ICONS}/volume-mute.png"
curr_volume=0
elif [[ "$curr_volume" -le "35" ]]; then
icon="${ICONS}/volume-low.png"
elif [[ "$curr_volume" -le "70" ]]; then
icon="${ICONS}/volume-mid.png"
else
icon="${ICONS}/volume-high.png"
fi
}
volume_up() {
[[ $(pulsemixer --get-mute) == 1 ]] && pulsemixer --unmute
pulsemixer --max-volume 100 --change-volume +5
notify
}
volume_down() {
[[ $(pulsemixer --get-mute) == 1 ]] && pulsemixer --unmute
pulsemixer --max-volume 100 --change-volume -5
notify
}
toggle_mute() {
pulsemixer --toggle-mute
notify
}
case "$1" in
"up")
volume_up
;;
"down")
volume_down
;;
"mute")
toggle_mute
;;
*)
get_volume
esac