Festival: hablame ubuntu (3)

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.