有些信息只出现在我正在使用的应用程序的通知中(具体来说,是私人互联网访问应用程序中的开放端口号)。Super+V 将显示应用程序启动时的通知,因此这些信息一定存在于某个地方。有人知道提取通知文本以用于脚本的方法吗?我可以发送一些 dbus 消息来获取文本吗?桌面将通知存储在某个文件中吗?或者有一种方法可以将标准通知应用程序替换为可以在某个地方记录信息的应用程序?
答案1
是的,这是可行的,这是一个例子:
$ dbus-monitor destination=org.freedesktop.Notifications&
$ notify-send "This is a test...";
结果如下:
signal time=1668034888.497654 sender=org.freedesktop.DBus -> destination=:1.21703 serial=2 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameAcquired
string ":1.21703"
signal time=1668034888.497812 sender=org.freedesktop.DBus -> destination=:1.21703 serial=4 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameLost
string ":1.21703"
method call time=1668034915.205299 sender=:1.21705 -> destination=:1.56 serial=6 path=/org/freedesktop/Notifications; interface=org.freedesktop.Notifications; member=GetServerInformation
method call time=1668034915.207146 sender=:1.21705 -> destination=:1.56 serial=7 path=/org/freedesktop/Notifications; interface=org.freedesktop.Notifications; member=Notify
string "notify-send"
uint32 0
string ""
string "This is a test..."
string ""
array [
]
array [
dict entry(
string "urgency"
variant byte 1
)
]
int32 -1