while getopts i:m:h o
do case "$o" in
i) increment=$OPTARG;;
m) mixer=$OPTARG;;
h) echo "$usage"; exit 0;;
?) echo "$usage"; exit 0;;
esac
done
shift $(($OPTIND - 1))
command=$1
if [ "$command" = "" ]; then
echo "usage: $0 {up|down|mute} [increment]"
exit 0;
fi
display_volume=0
if [ "$command" = "up" ]; then
display_volume=$(amixer set $mixer $increment+ unmute | grep -m 1 "%]" | cut -d "[" -f2|cut -d "%" -f1)
fi
if [ "$command" = "down" ]; then
display_volume=$(amixer set $mixer $increment- unmute | grep -m 1 "%]" | cut -d "[" -f2|cut -d "%" -f1)
fi
icon_name=""
if [ "$command" = "mute" ]; then
if amixer get Master | grep "\[on\]"; then display_volume=0 icon_name="notification-audio-volume-muted"
amixer set $mixer mute
else display_volume=$(amixer set $mixer unmute | grep -m 1 "%]" | cut -d "[" -f2|cut -d "%" -f1)
fi
fi
if [ "$icon_name" = "" ]; then
if [ "$display_volume" = "0" ]; then icon_name="notification-audio-volume-off"
else
if [ "$display_volume" -lt "33" ]; then icon_name="notification-audio-volume-low"
else
if [ "$display_volume" -lt "67" ]; then icon_name="notification-audio-volume-medium"
else icon_name="notification-audio-volume-high"
fi
fi
fi
fi
notify-send " " -i $icon_name -h int:value:$display_volume -h string:synchronous:volume
Thanks Axel for finding it!
But I want to see that nice OSD to know how high the volume is so my search continued but then I found this neat shellscript: http:// askubuntu. com/questions/ 12766/adjust- volume- via-commandline -so-that- volume- notify- pops-up
So I changed your ~/.xbindkeysrc so that it posts the volume with the nice notify-OSD also.
It's an ugly hack but hey, it works =)
/////// /////// /////// /////// ///////
gedit ~/.xbindkeysrc
/////
# Increase volume iseVolume
#"amixer set Master playback 1+"
"sh ~/.volumeHack.sh up -i 2% -m Master"
m:0x0 + c:123
XF86AudioRa
# Decrease volume werVolume
"sh ~/.volumeHack.sh down -i 2% -m Master"
m:0x0 + c:122
XF86AudioLo
# Toggle mute - this is not used here
#"amixer set Master toggle"
# m:0x0 + c:121
# XF86AudioMute
/////// /////// /////// /////// ///////
gedit ~/.volumeHack.sh
//////
#!/bin/sh
usage="usage: $0 -c {up|down|mute} [-i increment] [-m mixer]"
command=
increment=5%
mixer=Master
while getopts i:m:h o
do case "$o" in
i) increment=$OPTARG;;
m) mixer=$OPTARG;;
h) echo "$usage"; exit 0;;
?) echo "$usage"; exit 0;;
esac
done
shift $(($OPTIND - 1))
command=$1
if [ "$command" = "" ]; then
echo "usage: $0 {up|down|mute} [increment]"
exit 0;
fi
display_volume=0
if [ "$command" = "up" ]; then volume= $(amixer set $mixer $increment+ unmute | grep -m 1 "%]" | cut -d "[" -f2|cut -d "%" -f1)
display_
fi
if [ "$command" = "down" ]; then volume= $(amixer set $mixer $increment- unmute | grep -m 1 "%]" | cut -d "[" -f2|cut -d "%" -f1)
display_
fi
icon_name=""
if [ "$command" = "mute" ]; then
display_ volume= 0
icon_name= "notification- audio-volume- muted"
display_ volume= $(amixer set $mixer unmute | grep -m 1 "%]" | cut -d "[" -f2|cut -d "%" -f1)
if amixer get Master | grep "\[on\]"; then
amixer set $mixer mute
else
fi
fi
if [ "$icon_name" = "" ]; then
icon_name= "notification- audio-volume- off"
icon_ name="notificat ion-audio- volume- low"
icon_ name="notificat ion-audio- volume- medium"
icon_ name="notificat ion-audio- volume- high" $display_ volume -h string: synchronous: volume
if [ "$display_volume" = "0" ]; then
else
if [ "$display_volume" -lt "33" ]; then
else
if [ "$display_volume" -lt "67" ]; then
else
fi
fi
fi
fi
notify-send " " -i $icon_name -h int:value:
/////// /////// ///////