J'utilise Linux Mint 13 MATE et j'essaie de configurer des notifications lorsque je branche / débranche des appareils.
Tout d'abord, j'ai trouvé le paquet udev-notify , mais malheureusement, cela ne fonctionne presque pas pour moi: cela fonctionne très peu de temps (1-2 minutes), puis, si je connecte / déconnecte un appareil, il se bloque:
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
Je n'ai trouvé aucune solution, j'ai donc dû la supprimer. ( rapport de bug déposé également)
Étonnamment, il n'y a aucun utilitaire similaire que j'ai trouvé jusqu'à présent. Ensuite, j'ai essayé d'écrire des règles udev qui devraient correspondre à tous les appareils. J'ai ajouté un nouveau fichier /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"
Et deux scripts:
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 &
Cela fonctionne, mais cela fonctionne très bêtement. Mes questions sont:
- Comment obtenir le titre réel de l'appareil attaché, le même que je peux voir en
lsusb
sortie? Actuellement, je viens de recevoir des notifications comme "branché" et "non branché", et je ne trouve pas comment puis-je récupérer le nom du périphérique dans ma règle udev (si je le peux, je le transmettrais à mon script en tant que paramètre) - Actuellement, trop de notifications sont activées. Dis, quand je connecte ma clé USB, j'ai reçu environ 15 notifications! Mais, si je lance
lsusb
, la clé USB connectée s'affiche comme un seul appareil. Il semble donc que je devrais ajouter un argument supplémentaire au filtre de règles, mais je ne peux pas le découvrir. - Il existe probablement une meilleure solution pour les notifications de connexion / déconnexion de l'appareil? Veuillez suggérer si vous savez quelque chose.
la source
pyudev
pour être notifié et ne nécessite pas de scripts supplémentaires/etc/udev
.Ajoutez les lignes suivantes avant vos lignes de notification visuelles, pour donner au script une idée sur quel affichage X il doit exécuter
notify-send
(ou toute autre application X):Bien sûr, vous devez modifier la deuxième ligne en fonction de votre environnement de bureau (ou gestionnaire d'affichage). Cette ligne fonctionne bien pour Ubuntu 16.04 qui utilise l'unité comme bureau et lightdm comme gestionnaire d'affichage.
(de ce post )
la source