viernes, 1 de marzo de 2013

Linux - Banshee - Configurar botones multimedia. Script para play / pause

Banshee es un reproductor multimedia comparable a los conocidos rhythmbox o amarok, con complementos aplicables y muy completo. Para instalarlo:

  • sudo apt-get install banshee




Para configurar los botones multimedia debemos acceder a los accesos directos del teclado:

  • Xfce: Menu>Configuración>Administrador de configuración>Teclado>atajos de aplicación
  • Gnome Shell: Menu>Teclado>Combinación personalizada
  • KDE: System Settings>Atajos del teclado

y vamos añadiendo a cada tecla multimedia los comandos adecuados:
  • Canción siguiente: banshee --next
  • Canción anterior: banshee --previous
  • Stop: banshee --stop

Para el play he hecho un script (muy elaborado y probado) que controla si la música está sonando o no para ejecutar play o pause según el caso. Lo podéis descargar aquí. Lo pegaré al final de la entrada por si queréis echarle un vistazo o cojer ideas para generar vuestro propio script.
  • Play: /home/usuario/ruta/al/script/descargado.sh

Modificando /home/usuario/ruta/al/script/descargado.sh por el script que os habéis descargado.


Teniendo los atajos del teclado configurados ya podemos probar que funciona.

Nota: En el script, banshee se ejecuta minimizado. Para cambiar eso modificar la linea 20 del script cambiando "nohup banshee --no-present --hide > /dev/null 2> /dev/null &"por "nohup banshee > /dev/null 2> /dev/null &"

Nota2: El script necesita nohup. Para instalarlo
  • sudo apt-get install nohup


El Script para el botón de play/pause es el siguiente:

#!/bin/bash
#
#Program: Bplaypause.sh
#Author: Miguel Higuera Romero
#Web: http://tombe85.blogspot.com
#
echo
echo "......................BPlayPause......................"
echo
echo "...For more scripts and software visit http://tombe85.blogspot.com and ask about anything..."
echo
echo "Checking banshee's PID..."
CLOSED=`ps -e | grep banshee`

if [ "$CLOSED" = "" ]; then
echo
echo "---->Banshee's closed"
echo
echo "Opening banshee with nohup..."
nohup banshee --no-present --hide > /dev/null 2> /dev/null & 
echo "waiting for banshee..."
TRIES=0
sleep 1
CLOSED=`ps -e | grep banshee`
while [ "$CLOSED" = "" ]; do
let TRIES=$TRIES+1
echo "try $TRIES"
if [ $TRIES = 5 ]; then
zenity --info --title="Bplaypause - Error de ejecución" --text="Se han hecho 5 intentos de apertura de Banshee. Compruebe que tiene instalados los paquetes nohup y banshee. Para instalar los paquetes escriba en un terminal:\n\n\t$ sudo apt-get install nohup banshee\n\nSi el problema persiste contacte a traves de http://entremaquinas.blogspot.com y exponga su problema.\n\nAtentamente Miguel Higuera" 
echo
echo "Exiting with Errors. Probably you don't have nohup or banshee installed. Try to install them by apt-get install."
echo
exit 0
fi
sleep 1
CLOSED=`ps -e | grep banshee`
done | zenity --progress --text="Esperando a Banshee" --pulsate --auto-close
CLOSED=`ps -e | grep banshee`
if [ "$CLOSED" = "" ]; then
echo
echo "Exiting with Errors after 5 tries. Probably you don't have nohup or banshee installed. Try to install them by apt-get install."
echo
exit 0
fi
LOCATION=$0
NAME=${LOCATION##*/}
echo
echo "---->Executing $NAME again to start playing"
echo
bash $0

exit 0
fi
echo "PID: $CLOSED"
echo
echo "---->Banshee's opened."
echo
echo "Checking state..."

PLAYIN="current-state: playing"
IDLE="current-state: idle"
STATE=`banshee --query-current-state`
if [ "$STATE" = "$PLAYIN" ]; then
echo
echo "---->Current state: Play"
echo "---->New state: Pause"
echo
banshee --pause 

else
echo
if [ "$STATE" = "$IDLE" ]; then
echo "---->Current state: Stop"
else
echo "---->Current state: Pause"
fi
echo "---->New state: Play"
echo
banshee --play

fi
echo "Exiting"
exit 0

1 comentario:

  1. Gracias, necesitaba los comandos para el atajo del teclado (banshee --next). Muchas gracias

    ResponderEliminar