Saya menggunakan Linux Mint 13 MATE, dan saya mencoba mengatur notifikasi ketika saya mencolokkan / mencabut perangkat.
Pertama-tama, saya menemukan paket udev-notify , tetapi sayangnya itu hampir tidak berfungsi untuk saya: ia bekerja untuk waktu yang sangat sedikit (1-2 menit), dan kemudian, jika saya menghubungkan / memutuskan perangkat apa pun, itu macet:
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
Saya belum menemukan solusi, jadi saya harus menghapusnya. ( laporkan bugreport juga)
Yang mengherankan, tidak ada utilitas serupa yang saya temukan sejauh ini. Lalu saya mencoba menulis aturan udev yang harus cocok dengan semua perangkat. Saya telah menambahkan file baru /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"
Dan dua skrip:
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 &
Itu bekerja, tetapi itu bekerja sangat bodoh. Pertanyaan saya adalah:
- Bagaimana cara mendapatkan judul perangkat yang sebenarnya terpasang, sama seperti yang saya lihat di
lsusb
output? Saat ini, saya baru saja mendapat pemberitahuan seperti "dicolokkan" dan "tidak dicabut", dan saya tidak dapat menemukan bagaimana saya dapat mengambil nama perangkat dalam aturan udev saya (Jika saya bisa, maka saya akan meneruskannya ke skrip saya sebagai parameter) - Saat ini, terlalu banyak pemberitahuan yang diaktifkan. Katakanlah, ketika saya memasang USB stick, saya mendapat sekitar 15 notifikasi! Tetapi, jika saya jalankan
lsusb
, stik USB yang terpasang ditampilkan sebagai hanya satu perangkat. Jadi, sepertinya saya harus menambahkan beberapa argumen lagi ke aturan filter, tetapi saya tidak dapat menemukannya. - Mungkin ada beberapa solusi yang lebih baik untuk pemberitahuan plug-in / cabut perangkat? Tolong sarankan jika Anda tahu sesuatu.
sumber
pyudev
untuk mendapatkan pemberitahuan, dan tidak memerlukan skrip tambahan di/etc/udev
.Tambahkan baris berikut sebelum baris pemberitahuan visual Anda, untuk memberi skrip gambaran tentang tampilan X mana yang harus dijalankan
notify-send
(atau aplikasi X lainnya):Tentu saja, Anda harus mengubah baris kedua sesuai dengan lingkungan desktop Anda (atau manajer tampilan). Baris ini berfungsi dengan baik untuk Ubuntu 16.04 yang menggunakan unity sebagai desktop dan lightdm sebagai display manager.
(dari pos ini )
sumber