Linux Mint 13 MATEを使用していますが、デバイスのプラグを抜くときの通知を設定しようとしています。
まず、udev-notifyパッケージを見つけましたが、残念ながらほとんど機能しません。ごくわずかな時間(1〜2分)しか動作せず、デバイスを接続または切断するとクラッシュします。
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
解決策が見つからなかったため、削除する必要がありました。(バグレポートも提出)
驚いたことに、これまでに見つけた同様のユーティリティはありません。次に、すべてのデバイスに一致するudevルールを記述しようとしました。新しいファイルを追加しました/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"
そして2つのスクリプト:
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 &
動作しますが、非常に馬鹿げています。私の質問は:
lsusb
出力に表示されるのと同じように、接続されているデバイスの実際のタイトルを取得する方法は?現在、「plugged」や「unpugged」などの通知を受け取りましたが、udevルールでデバイスの名前を取得する方法を見つけることができません(可能な場合は、スクリプトにそれをパラメータ)- 現在、アクティブ化されている通知が多すぎます。USBスティックを接続すると、約15通の通知が届きました!しかし、実行すると
lsusb
、接続されたUSBスティックは単一のデバイスとして表示されます。そのため、ルールフィルターにさらに引数を追加する必要があるようですが、それを見つけることができません。 - おそらく、デバイスのプラグ/アンプラグ通知のためのいくつかのより良いソリューションがありますか?何か知っているなら提案してください。
pyudev
通知を取得するために使用され、で追加のスクリプトを必要としません/etc/udev
。