martes, 11 de junio de 2013

Udev rules: Convertir un pendrive en un botón play/pause


Es una tontería, pero tiene infinitas posibilidades. Se trata de indicar, con un par de líneas qué acciones queremos que lleve a cabo el sistema cuando detecte un evento concreto. En este caso, cuando conecto un pendrive específico se inicia la reproducción de música (que tengo en el pc, no en el pendrive) y cuando lo desenchufo se para.

La receta es sencilla, se crea un archivo en /etc/udev/rules.d llamado como quieras, por ejemlo mpd_usb_control.rules y se le añade lo siguiente:

ACTION=="add", ENV{ID_VENDOR_ID}=="códigoVendor", ENV{ID_MODEL_ID}=="códigoModelo", RUN+="/usr/bin/mpc -q play"
ACTION=="remove", ENV{ID_VENDOR_ID}=="códigoVendor", ENV{ID_MODEL_ID}=="códigoModelo", RUN+="/usr/bin/mpc -q stop"

Los códigoVendor y códigoModelo se puede obtener por ejemplo con la orden lsusb suele indicarse de forma ID códigoVendor:códigoModelo.

MPC es un cliente por consola del servidor de música MPD. Podría usar cualquier otra aplicación. Por ejemplo, podría apagar el pc, enviar un mail, iniciar un backup de archivos... sin necesitar ni pantalla ni teclado cerca, sólo una colección de "llaves usb".

El asunto funciona gracias a los eventos udev.