Uso Linux Mint 13 MATE e sto cercando di impostare notifiche quando collego / scollego i dispositivi.
Prima di tutto, ho trovato il pacchetto udev-notification , ma sfortunatamente quasi non funziona per me: funziona per pochissimo tempo (1-2 minuti), quindi, se collego / disconnetto qualsiasi dispositivo, si arresta in modo anomalo:
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
Non ho trovato alcuna soluzione, quindi ho dovuto rimuoverlo. ( segnalato anche bugreport )
Sorprendentemente, non ci sono utilità simili che ho trovato finora. Quindi ho provato a scrivere regole udev che dovessero corrispondere a tutti i dispositivi. Ho aggiunto un nuovo file /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"
E due script:
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 &
Funziona, ma funziona molto stupido. Le mie domande sono:
- Come ottenere il titolo effettivo del dispositivo collegato, lo stesso che posso vedere
lsusb
nell'output? Al momento, ho appena ricevuto notifiche come "collegato" e "non collegato" e non riesco a trovare come posso recuperare il nome del dispositivo nella mia regola udev (se posso, lo passerei al mio script come un parametro) - Attualmente sono attivate troppe notifiche. Ad esempio, quando collego la mia chiavetta USB, ho ricevuto circa 15 notifiche! Ma, se corro
lsusb
, la chiavetta USB collegata viene visualizzata come un singolo dispositivo. Quindi, sembra che dovrei aggiungere qualche argomento in più al filtro delle regole, ma non riesco a scoprirlo. - Probabilmente esiste una soluzione migliore per le notifiche di connessione / disconnessione del dispositivo? Per favore, suggerisci se sai qualcosa.
pyudev
per ricevere notifiche e non richiede script aggiuntivi/etc/udev
.