Linux Mint 13 MATE kullanıyorum ve aygıtları takarken / çıkarırken bildirimler ayarlamaya çalışıyorum.
Her şeyden önce, udev-notify paketini buldum , ancak ne yazık ki neredeyse benim için çalışmıyor: çok az bir süre (1-2 dakika) çalışıyor ve daha sonra, herhangi bir cihazı bağlar / bağlantısını kesersem çöküyor:
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
Herhangi bir çözüm bulamadım, bu yüzden kaldırmak zorunda kaldım. (dosyalanmış hata raporu da)
Şaşırtıcı bir şekilde, şimdiye kadar bulduğum benzer yardımcı programlar yok. Sonra tüm cihazlarla eşleşmesi gereken udev kuralları yazmaya çalıştım. Yeni dosya ekledim /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"
Ve iki senaryo:
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 &
Çalışıyor, ama çok aptalca çalışıyor. Sorularım:
lsusb
Çıkışta görebildiğim gibi, cihazın gerçek başlığı nasıl eklenir ? Şu anda, sadece "takılı" ve "sıkıştırılmamış" gibi bildirimler aldım ve cihazın adını udev kuralımda nasıl alabileceğimi bulamıyorum (Yapabiliyorsam, komut dosyama bir parametre)- Şu anda çok fazla bildirim etkinleştirildi. Diyelim ki USB belleğimi taktığımda yaklaşık 15 bildirim aldım! Ancak, çalışırsam
lsusb
, takılı USB çubuğu sadece tek bir cihaz olarak görüntülenir. Yani, kural filtresine biraz daha argüman eklemem gerekiyor gibi görünüyor, ama bulamıyorum. - Muhtemelen cihaz tak / çıkar bildirimleri için daha iyi bir çözüm var mı? Bir şey biliyorsanız lütfen önerin.
pyudev
bildirim almak ve ekstra komut dosyalarını gerektirmez/etc/udev
.