La idea es que ubuntu nos notifique cuando se conecte un dispositivo a algún puerto usb. Esto ser hará usando:
- Festival.
- Python.
- La librería dbus.
Se usara dbus para monitorear los puertos usb y detectar cuando se conecte un nuevo dispositivo. Para esto nos creamos un nuevo archivo, supongamos que se llame festival_usb y lo creamos en /usr/bin (es importante hacerlo con privilegios de superusuario). En consola:
sudo gedit /usr/bin/festival_usb
Cuyo contenido será el siguiente (tomar muy en cuenta los espacios al inicio de cada línea de código):
import dbus import dbus.glib import gobject import os global bus def add_device(*args, **keywords): device_obj = bus.get_object('org.freedesktop.Hal', args[0]) device = dbus.Interface(device_obj, dbus_interface = "org.freedesktop.Hal.Device") signal = device.QueryCapability('block') if signal: comando = "echo nuevo dispositivo USB conectado | festival --tts&" os.system(comando) bus = dbus.SystemBus() bus.add_signal_receiver(add_device, 'DeviceAdded', 'org.freedesktop.Hal.Manager', 'org.freedesktop.Hal', '/org/freedesktop/Hal/Manager') loop = gobject.MainLoop() loop.run()
Para que se ejecute al inicio tenemos que añadirlo en Aplicaciones al inicio que se encuentra en Sistema->Preferencias, solamente en la casilla Orden ponemos el nombre del archivo, en este caso festival_usb, finalmente reiniciamos para que se cargue la nueva aplicación.