我使用 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
Run Code Online (Sandbox Code Playgroud)
我还没有找到任何解决方案,所以我不得不将其删除。(日提交错误报告也)
令人惊讶的是,到目前为止我还没有找到类似的实用程序。然后我尝试编写应该匹配所有设备的 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"
Run Code Online (Sandbox Code Playgroud)
和两个脚本:
device_plug.sh:
#!/bin/bash
export DISPLAY=":0"
notify-send "device plugged"
/usr/bin/play -q /path/to/plug_sound.wav &
Run Code Online (Sandbox Code Playgroud)
device_unplug.sh:
#!/bin/bash
export DISPLAY=":0"
notify-send "device unplugged"
/usr/bin/play -q /path/to/unplug_sound.wav &
Run Code Online (Sandbox Code Playgroud)
它有效,但它的工作非常愚蠢。我的问题是:
lsusb输出中看到的相同?目前,我只收到诸如“已插入”和“未插入”之类的通知,但我找不到如何在我的 udev 规则中检索设备名称(如果可以,我会将它作为范围)