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.
61 lines
1.5 KiB
61 lines
1.5 KiB
#!/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
|
|
|