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
lsusbnell'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.

pyudevper ricevere notifiche e non richiede script aggiuntivi/etc/udev.