Control de volumen mediante teclas con xfce y notify-osd en 9.04

+1
0
-1

Script para que funcionen las teclas de VOL+ VOL- y MUTE que suelen tener los portátiles con xfce y las nuevas notificaciones de ubuntu 9.04 , en mi acer travelmate 4100 no funcionaban de serie. Lo que hace es usar el amixer para subir el canal Master de la tarjeta, lo he basado en un script que encontré en http://foro.archlinux.cl/viewtopic.php?id=61

Este script depende de un binario que se instala con:

sudo apt-get install libnotify-bin

Para que funcione el script hay que asociar en la configuración de teclado de xfce las teclas al script mas el salto que queramos de volumen, por ejemplo:

Subir Volumen:

volnof.sh 3+

Bajar Volumen:

volnof.sh 3-

Para el mute se usa

volnof.sh mute

Código del script:

#!/bin/bash


function os_not {
 let vol=$2+0
 if [ $vol -gt 70 ]
 then
 notify-send " " -i notification-audio-volume-high -h int:value:$1 -h string:x-canonical-private-synchronous:volume &
 elif [ $vol -gt 30 ]
 then
 notify-send " " -i notification-audio-volume-medium -h int:value:$1 -h string:x-canonical-private-synchronous:volume &
 elif [ $vol -gt 0 ]
 then
 notify-send " " -i notification-audio-volume-low -h int:value:$1 -h string:x-canonical-private-synchronous:volume &
 elif [ $2 = "0" ]
 then
 notify-send " " -i notification-audio-volume-muted -h int:value:$1 -h string:x-canonical-private-synchronous:volume &
 fi
}


volume=`amixer get Master | grep "Front Left:" | awk '{print ""$4""}'`
limite=`amixer get Master | grep "Limits:" | awk '{print ""$5""}'`
volume_level=`expr $volume "*" 100 "/" $limite`
mute_state=`amixer get Master | grep "Front Left:" | awk '{print ""$7""}'`
if [ $1 = "mute" ]
then
 if [ $mute_state = '[on]' ]
 then
  amixer sset Master mute &
  notify-send " " -i notification-audio-volume-muted -h int:value:$volume_level -h string:x-canonical-private-synchronous:volume &
 else
  amixer sset Master unmute &
  os_not $volume_level $volume
 fi
else
 amixer sset Master $1 &
 os_not $volume_level $1
fi