Ich verwende Linux Mint 13 MATE und versuche, Benachrichtigungen einzurichten, wenn ich Geräte ein- / ausstecke.
Zuerst habe ich das Paket udev-notify gefunden , aber leider funktioniert es bei mir fast nicht: Es funktioniert nur für sehr kurze Zeit (1 bis 2 Minuten), und dann stürzt es ab, wenn ich ein Gerät verbinde / trenne:
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
Ich habe keine Lösung gefunden, also musste ich sie entfernen. (abgelegtes Bugreport auch)
Überraschenderweise gibt es keine ähnlichen Dienstprogramme, die ich bisher gefunden habe. Dann habe ich versucht, udev-Regeln zu schreiben, die mit allen Geräten übereinstimmen sollten. Ich habe eine neue Datei hinzugefügt /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"
Und zwei Skripte:
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 &
Es funktioniert, aber es funktioniert sehr dumm. Meine Fragen sind:
- Wie bekomme ich den aktuellen Titel des Geräts angehängt, den ich auch in der
lsusb
Ausgabe sehen kann? Derzeit habe ich nur Benachrichtigungen wie "plugged" und "unpugged" erhalten, und ich kann nicht finden, wie ich den Namen des Geräts in meiner udev - Regel abrufen kann Parameter) - Derzeit sind zu viele Benachrichtigungen aktiviert. Sprich, als ich meinen USB-Stick anschloss, bekam ich ungefähr 15 Benachrichtigungen! Wenn ich aber laufe
lsusb
, wird der angeschlossene USB-Stick nur als einzelnes Gerät angezeigt. Es scheint also, dass ich dem Regelfilter ein weiteres Argument hinzufügen sollte, aber ich kann es nicht herausfinden. - Möglicherweise gibt es eine bessere Lösung für Benachrichtigungen über das Ein- und Ausstecken von Geräten? Bitte schlagen Sie vor, wenn Sie etwas wissen.
quelle
pyudev
, um benachrichtigt zu werden, und erfordert keine zusätzlichen Skripte in/etc/udev
.Fügen Sie die folgenden Zeilen vor Ihre visuellen Benachrichtigungszeilen ein, um dem Skript eine Vorstellung davon zu geben, auf welcher X-Anzeige es die
notify-send
(oder eine andere X-Anwendung) ausführen soll :Natürlich müssen Sie die zweite Zeile entsprechend Ihrer Desktop-Umgebung (oder Ihrem Display-Manager) ändern. Diese Zeile funktioniert gut für Ubuntu 16.04, das Unity als Desktop und LightDM als Display Manager verwendet.
(aus diesem Beitrag )
quelle