Delirios de un Informático

Delirando sobre informática, fotografía, programación, móviles y mucho más desde 2003

Silenciar Rhythmbox con Python mediante D-Bus

votar
Archivado en Gnome con fecha 24/Ago/2009 - 0 comentarios

Gnome Rhythmbox tiene algún pequeño problema al pausar y reanudar reproducciones de Last.fm, y teniendo en cuenta que a veces es necesario pararlo o silenciarlo para que no interfiera en otras cosas, me he hecho (porque no he encontrado el modo de silenciarlo de ninguna otra manera) este pequeño script en Python (requiere python-dbus) que permite silenciar Rhythmbox sin parar la reproducción:

#!/usr/bin/env python
import os
import dbus

session_bus = dbus.SessionBus()
proxy_obj = session_bus.get_object('org.gnome.Rhythmbox', '/org/gnome/Rhythmbox/Player')
player = dbus.Interface(proxy_obj, 'org.gnome.Rhythmbox.Player')

if player.getMute() < 1:
	player.setMute(True)
else:
	player.setMute(False)

Si se combina con xbindkeys para asignarse a una combinación de teclas como Control + Silencio la comodidad ya es total :D

Solución a los problemas de Bluetooth y DBus en Gnome

votar
Archivado en Gnome con fecha 6/Mar/2009 - 0 comentarios

Hacía un tiempo que por no-se-que-cambio la integración de Bluetooth con Gnome no iba del todo bien. Por algún motivo el applet (que viene en el paquete bluez-gnome) no me permitía enviar archivos ni explorar dispositivos, ni podía administrar los dispositivos emparejados. Al ejecutar en una consola bluetooth-applet obtenía:

Bluetooth OBEX server failed: Bluez DBus interface not available

Y al ejecutar sudo /usr/sbin/hcid -d -n el resultado era:

Unable to get on D-Bus

Tras curiosear un poco dí con la solución gracias al archivo /etc/dbus-1/system.d/bluetooth.conf, donde se puede ver:

<!-- allow users of netdev group to communicate with hcid -->
<policy group="netdev">
  <allow send_destination="org.bluez"/>
</policy>

Es decir, que basta con añadir el usuario al grupo netdev y tendrá permisos para conectarse al servidor DBus, con lo que Bluetooth volverá a ser operativo.

D-BUS en reproductor oficial de Last.fm

votar
Archivado en Linux con fecha 8/May/2008 - 0 comentarios

Algo que echo en falta en el reproductor oficial de Last.fm ( no uso amaroK porque el soporte para el nuevo protocolo no se implementa en la rama 1.4.x, lo que provoca que no puedas banear canciones o saltarte canciones, por ejemplo ) es el soporte para control externo. En Linux existen varias alternativas para comunicarse con las aplicaciónes, como DCOP ( usado por ejemplo por amaroK en KDE ) o D-BUS ( pretende ser el estándar para KDE/Gnome ).

Como el reproductor de Last.fm está programado con las librerías QT, se ha optado por la segunda opción, ya que estas librerías ofrecen un buen soporte para D-BUS. En los foros de Last.fm un usuario llamado tarsus4 ha colgado el código de una extensión que permite controlar el reproductor mediante D-BUS, estando soportadas las acciones más básicas: reproducir, parar, saltar, variar el volumen y obtener información de la pista en reproducción

Para compilar el módulo en Debian y derivados, el proceso es el siguiente:

sudo apt-get libqt4-dev
sudo ln -s /usr/lib/libLastFmTools.so.1 /usr/share/lastfm/libLastFmTools.so
wget http://cdn.last.fm/client/src/last.fm-1.4.0.56102.src.tar.bz2
wget http://glue.umd.edu/~rossatok/dbusextension-1.0.tar.bz2
tar xjvf last.fm-1.4.0.56102.src.tar.bz2
cd last.fm-1.4.0.56102/src/extensions/dbus
qmake dbusextension.pro
make
cd ../../../bin/extensions
sudo cp libext_dbusextension.so /usr/lib/lastfm

En caso de fallar la compilación, deberá editarse el archivo con extensión .pro y cambiar la ubicación de las librerías.

Esperemos que en futuras versiones, se integre en el código oficial o implementen un soporte completo…

Delirios de un Informático :: Gestionado con WordPress :: Alojado en Bitacoras.com :: Licenciado bajo Creative Commons