Uso Linux Mint 13 MATE, y estoy tratando de configurar notificaciones cuando conecto / desconecto dispositivos.
En primer lugar, encontré el paquete udev-notify , pero desafortunadamente casi no funciona para mí: funciona por muy poco tiempo (1-2 minutos), y luego, si conecto / desconecto algún dispositivo, se bloquea:
Traceback (most recent call last):
File "./udev-notify.py", line 319, in <module>
notification.show()
glib.GError: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name :1.1061 was not provided by any .service files
No he encontrado ninguna solución, así que tuve que eliminarla. ( informe de errores archivado también)
Sorprendentemente, no hay utilidades similares que he encontrado hasta ahora. Luego intenté escribir reglas de udev que deberían coincidir con todos los dispositivos. He agregado un nuevo archivo /etc/udev/rules.d/notify.rules
:
ACTION=="add", RUN+="/bin/bash /home/dimon/tmp/device_plug.sh"
ACTION=="remove", RUN+="/bin/bash /home/dimon/tmp/device_unplug.sh"
Y dos guiones:
device_plug.sh:
#!/bin/bash
export DISPLAY=":0"
notify-send "device plugged"
/usr/bin/play -q /path/to/plug_sound.wav &
device_unplug.sh:
#!/bin/bash
export DISPLAY=":0"
notify-send "device unplugged"
/usr/bin/play -q /path/to/unplug_sound.wav &
Funciona, pero funciona muy tonto. Mis preguntas son:
- ¿Cómo obtener el título real del dispositivo conectado, lo mismo que puedo ver en la
lsusb
salida? Actualmente, acabo de recibir notificaciones como "enchufado" y "desenchufado", y no puedo encontrar cómo puedo recuperar el nombre del dispositivo en mi regla udev (si puedo, lo pasaría a mi script como parámetro) - Actualmente, se activan demasiadas notificaciones. Digamos, cuando conecto mi memoria USB, ¡recibí unas 15 notificaciones! Pero, si ejecuto
lsusb
, la memoria USB conectada se muestra como un solo dispositivo. Entonces, parece que debería agregar más argumentos al filtro de reglas, pero no puedo descubrirlo. - ¿Probablemente haya alguna solución mejor para las notificaciones de enchufar / desconectar el dispositivo? Por favor sugiera si sabe algo.
pyudev
para recibir notificaciones y no requiere scripts adicionales/etc/udev
.