gmusicbrowser en conky

Como no, si con amarok lo hacía, al usar gmusicbrowser también deseaba añadir información sobre la canción actual para que conky la mostrara.

Para ello uso un script que devuelve la información, gmusicbrowser.sh


#!/bin/bash
# gmusicbrowser info display script by jjgomera
#
# requirements: gmusicbrowser with NowPlaying plugin on (!)


file=~/.config/gmusicbrowser/nowplaying
#must be configure in plugin, for example, i use the command "tee ~/.config/gmusicbrowser/nowplaying"

tiempo=`cat $file | grep "Length" | cut -d"=" -f2`
puntuacion=`cat $file | grep "Rating: " | cut -d" " -f2`
estado=`dbus-send --print-reply --dest=org.gmusicbrowser /org/gmusicbrowser org.gmusicbrowser.GetPosition | grep "double" | cut -d" " -f5`

case "$1" in

minutostotales)
expr $tiempo / 60
;;

segundostotales)
minutos=`~/configuracion/gmusicbrowser.sh minutostotales`
expr $tiempo - $minutos \* 60
;;
minutosestado)
expr $estado / 60
;;
segundosestado)
minutos=`~/configuracion/gmusicbrowser.sh minutosestado`
expr $estado - $minutos \* 60
;;
progreso)
expr $estado \* 100 / $tiempo
;;
esac


y en el conkyrc añado las lineas:
>
${if_existing /home/jjgomera/.config/gmusicbrowser/gmusicbrowser.fifo}${voffset 10}${font Musicelements:regular:size=21}${color #5da5d3}s${voffset -7}${font Anklepants:regular:size=11}${color #5da5d3} gmusicbrowser$font$color$alignr${color #888888}Last.fm: ${color}${execi 3600 sh ~/configuracion/last.fm uno}${execi 3600 sh ~/configuracion/last.fm dos}${execi 600 sh ~/configuracion/last.fm tres}${execi 600 sh ~/configuracion/last.fm cuatro}${execi 600 sh ~/configuracion/last.fm cinco}
${voffset -7}${color #ffd700}${hr 1}$color
$alignc${color #CC6600}${execi 10 cat /home/jjgomera/.config/gmusicbrowser/nowplaying | grep "Artist" | cut -d"=" -f2}
$alignc${execi 10 cat /home/jjgomera/.config/gmusicbrowser/nowplaying | grep "Title" | cut -d"=" -f2}
${execi 2 ~/configuracion/gmusicbrowser.sh minutosestado}:${execi 2 ~/configuracion/gmusicbrowser.sh segundosestado}/${execi 10 ~/configuracion/gmusicbrowser.sh minutostotales}:${execi 10 ~/configuracion/gmusicbrowser.sh segundostotales} ${execibar 2 ~/configuracion/gmusicbrowser.sh progreso}
${color #CC6600}${execi 10 cat /home/jjgomera/.config/gmusicbrowser/nowplaying | grep "Album" | cut -d"=" -f2}$alignr${execi 10 cat /home/jjgomera/.config/gmusicbrowser/nowplaying | grep "Year" | cut -d"=" -f2}$color
${voffset -5}${color #ffd700}${hr 1}$color$else${voffset -10}$endif


De esta manera, conky solo monstrará está información cuando sea útil, gmusicbrowser esté ejecutandose. Como veis el script de arrriba lo tengo guardado en el directorio ~/configuracion/, esto queda a gusto del usuario, no olvidando de cambiarlo también en todas las entradas del conkyrc.
Para embellecer el título uso un símbolo musical usando la fuente Music Elements

Para rematar la faena uso otro script para mostrar en pantalla la caratula, si la hay, del disco actualmente en escucha, caratula.sh

#!/bin/bash
#
# script para mostrar por pantalla la caratula del disco actualmente en escucha por gmusicbrowser
# dependencias: tener instalado el paquete feh de manipulación de imagenes
sleep 10
feh -x -R 20 -g "150x150+250+850" /tmp/caratula.jpg &
while [ -e "/home/jjgomera/.config/gmusicbrowser/gmusicbrowser.fifo" ]
do
longitud=`cat /home/jjgomera/.config/gmusicbrowser/nowplaying | grep "Length" | cut -d"=" -f2`
estado=`dbus-send --print-reply --dest=org.gmusicbrowser /org/gmusicbrowser org.gmusicbrowser.GetPosition | grep "double" | cut -d" " -f5`
time=$(($longitud-$estado))
album=`cat /home/jjgomera/.config/gmusicbrowser/nowplaying | grep "Album" | cut -d"=" -f2`
caratula=`dbus-send --print-reply --dest=org.gmusicbrowser /org/gmusicbrowser org.gmusicbrowser.GetAlbumCover string:"$album" | grep "string" | cut -d" " -f5- | cut --delimiter='"' -f2`
cp "$caratula" /tmp/caratula.jpg
sleep $time
done


Y este es el resultado:


3 comentarios:

Max Rotten Power (a.k.a. Lone Rocker) dijo...

se ve bien, pero no me está funcionando...
-de dónde saco ese escript last.fm?
-el archivo ~/.config/gmusicbrowser/nowplaying no existe
-cómo tiene que estar configurado el plugin "reproduciendo" del GMusicBrowser?

volante dijo...

Hola, bueno, el script de last.fm es una tontería para tener el número de canciones scrobeadas en last.fm, es bastante mejorable la verdad, pero si te interesa aquí lo tienes.

Evidentemente tendrás que cambiar tu usuario.

El plugin de reproduciendo yo lo tengo con el comando:
tee /home/jjgomera/.config/gmusicbrowser/nowplaying siendo ese archivo el que se usa en el script gmusicbrowser.sh
y con la casilla "Enviar info en formato estándar" marcada

Anónimo dijo...

Hola me podrias echar una mano para configurar un conky con las descargas de transmission, e buscado mucho en google pero no me funciona ninguna forma, solo una y no me gusta el resultado. Gracias