可以libnotify
用来执行脚本吗?
我想使用脚本来播放声音,甚至通过notify-send
bash 文件和其他程序运行更复杂的程序。
那可能吗?似乎只使用弹出窗口?
答案1
您已经很接近了,您实际上不想运行脚本,libnotify
而是创建一个针对触发导致通知的事件的监视器。您甚至可以触发 发送的实际消息notify-send
,但我还没有直接尝试过,所以无法确认。
笔记: libnotify
只能通过notify-send
我在搜索中找到的内容生成消息。
监视您使用的事件dbus-monitor
。示例脚本可以这样构建:
#!/bin/bash
interface=org.gnome.Rhythmbox.Player
member=playingUriChanged
# listen for playingUriChanged DBus events,
# each time we enter the loop, we just got an event
# so handle the event, e.g. by printing the artist and title
# see rhythmbox-client --print-playing-format for more output options
dbus-monitor --profile "interface='$interface',member='$member'" |
while read -r line; do
printf "Now playing: "
rhythmbox-client --print-playing
done
上面的代码监视org.gnome.Rhythmbox.Player
接口以查找要调用的成员。当成员playingUriChanged
被调用时,命令会读取结果,read
并将内容存储到变量中line
。
的内容line
实际上并没有在内部使用,只是为了收集 的结果dbus-monitor
。循环内的结果while
将打印输出,如下所示:
Now playing: Daft Punk - Overture
Now playing: Daft Punk - The Grid
歌曲的名称是从 产生的rythmbox-client --print-playing
。
确定 DBUS 信号/事件
您可以查阅这 2 个问答,了解有关如何实现此目的的更多详细信息: