70 lines
1.3 KiB
Bash
70 lines
1.3 KiB
Bash
|
#!/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
|