libnotify 可以用来执行脚本吗?

libnotify 可以用来执行脚本吗?

可以libnotify用来执行脚本吗?

我想使用脚本来播放声音,甚至通过notify-sendbash 文件和其他程序运行更复杂的程序。

那可能吗?似乎只使用弹出窗口?

答案1

您已经很接近了,您实际上不想运行脚本,libnotify而是创建一个针对触发导致通知的事件的监视器。您甚至可以触发 发送的实际消息notify-send,但我还没有直接尝试过,所以无法确认。

笔记: libnotify只能通过notify-send我在搜索中找到的内容生成消息。

监视您使用的事件dbus-monitor。示例脚本可以这样构建:

摘自如何使用 bash 持续监控节奏盒的曲目变化

#!/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 个问答,了解有关如何实现此目的的更多详细信息:

相关内容