相关疑难解决方法(0)

从 udev 规则调用通知发送

我使用 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)

它有效,但它的工作非常愚蠢。我的问题是:

  1. 如何获取附加设备的实际标题,与我在lsusb输出中看到的相同?目前,我只收到诸如“已插入”和“未插入”之类的通知,但我找不到如何在我的 udev 规则中检索设备名称(如果可以,我会将它作为范围)
  2. 目前,激活的通知太多。比如说,当我连接 U 盘时,我收到了大约 15 …

udev notifications devices notify-send

13
推荐指数
1
解决办法
1万
查看次数

标签 统计

devices ×1

notifications ×1

notify-send ×1

udev ×1