You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

62 lines
1.5 KiB

2 years ago
#!/bin/sh
### Usage
### -r or --raise to raise the voulmn by 5%
### -l or --lower to lower the voulmn by 5%
### -t or --toggle to toggle mute and unmute
# notify osd expire time delay in ms
expireTimeNotifyOSD=3000
currentId=1
tmpFile=/tmp/currentVolumnNotifyId
# gets the current notify id from our tmp file
if [ -s $tmpFile ]
then
currentId=$(cat $tmpFile)
fi
# execute amixer action based on param
if [ $1 == '--raise' ] || [ $1 == '-r' ]
then
amixer -D pulse sset Master 5%+
noToggle=true
elif [ $1 == '--lower' ] || [ $1 == '-l' ]
then
amixer -D pulse sset Master 5%-
noToggle=true
elif [ $1 == '--toggle' ] || [ $1 == '-t' ]
then
amixer -D pulse set Master 1+ toggle
fi
currentVolumn=$(amixer -D pulse get Master | egrep -o '[0-9]{1,3}' | tail -n 1)
volumnIsMuted=$(amixer -D pulse get Master | egrep -o 'off' | tail -n 1)
# get icon based on current volumn
if [ $volumnIsMuted ]
then
icon=audio-volume-muted
else
icon=audio-volume-low
if [ $currentVolumn -gt 60 ]
then
icon=audio-volume-high
elif [ $currentVolumn -gt 30 ]
then
icon=audio-volume-medium
fi
fi
# execute the notify-send command
if [ $noToggle ]
then
notify-send "Volume" -p -t $expireTimeNotifyOSD -r $currentId -i $icon -h int:value:$currentVolumn > $tmpFile
else
if [ $volumnIsMuted ]
then
notify-send "Volume muted" -p -t $expireTimeNotifyOSD -r $currentId -i $icon -h int:value:0 > $tmpFile
else
notify-send "Volume unmuted" -p -t $expireTimeNotifyOSD -r $currentId -i $icon -h int:value:$currentVolumn > $tmpFile
fi
fi