piy*_*a25 5 command-line dbus notify-send
我安静地搜索了一下,但所有文章和答案都只告诉您如何创建自己的通知。我想要做的是跟踪所有应用程序发出的所有通知,并在每次发出特定通知时执行特定脚本。
我将编写我的程序来做到这一点。我需要的帮助是如何“拦截”通知。
如果我们稍微编辑一下这个非常好的答案中建议的片段,我们可以将调用的通知写入文件:
dbus-monitor "interface='org.freedesktop.Notifications'" | grep --line-buffered "string" | grep --line-buffered -e method -e ":" -e '""' -e urgency -e notify -v | grep --line-buffered '.*(?=string)|(?<=string).*' -oPi | grep --line-buffered -v '^\s*$' | xargs -I '{}' echo {} > file.txt
Run Code Online (Sandbox Code Playgroud)
或以其他方式使用它来触发后续操作。
如果我们编辑代码片段以在弹出通知时运行脚本:
dbus-monitor "interface='org.freedesktop.Notifications'" | grep --line-buffered "string" | grep --line-buffered -e method -e ":" -e '""' -e urgency -e notify -v | grep --line-buffered '.*(?=string)|(?<=string).*' -oPi | grep --line-buffered -v '^\s*$' | xargs -I '{}' /bin/bash /path/to/script.sh {}
Run Code Online (Sandbox Code Playgroud)
并且script.sh是:
dbus-monitor "interface='org.freedesktop.Notifications'" | grep --line-buffered "string" | grep --line-buffered -e method -e ":" -e '""' -e urgency -e notify -v | grep --line-buffered '.*(?=string)|(?<=string).*' -oPi | grep --line-buffered -v '^\s*$' | xargs -I '{}' echo {} > file.txt
Run Code Online (Sandbox Code Playgroud)
然后,每次,如果通知匹配“een aap op een fiets”:
gedit将打开:)
尽管代码可以完美地拦截通知以触发任何类型的操作,但我发现无法识别pid调用通知的方法。
| 归档时间: |
|
| 查看次数: |
2024 次 |
| 最近记录: |