![有没有什么办法可以“挂钩”消息菜单?](https://linux22.com/image/1035602/%E6%9C%89%E6%B2%A1%E6%9C%89%E4%BB%80%E4%B9%88%E5%8A%9E%E6%B3%95%E5%8F%AF%E4%BB%A5%E2%80%9C%E6%8C%82%E9%92%A9%E2%80%9D%E6%B6%88%E6%81%AF%E8%8F%9C%E5%8D%95%EF%BC%9F.png)
我想编写一个应用程序,每当消息菜单被激活(蓝色信封亮起)以及每当它被停用(蓝色信封恢复其默认颜色)时,都会收到通知。
有什么方法可以收到通知吗?在这种情况下,我并不真正关心编程语言 - 尽管我更喜欢 C、Python 或 PHP。
答案1
有趣的问题。没有官方 API 可以发现消息菜单是否已更改其状态。您可以通过查看 indicator-messages-service 的 DBus 接口来做到这一点。shell 脚本方式如下:
$ gdbus call --session --dest com.canonical.indicator.messages --object-path /com/canonical/indicator/messages/service --method com.canonical.indicator.messages.service.AttentionRequested
还有一个信号“ AttentionChanged
”。您可以跟踪该信号以确定其更新时的状态。
此外,如果您对消息菜单中的单个项目感兴趣,可以使用以下方式导出它们的所有信息自由指示。可以在 DBus 上有另一个 libindicate 监听器来获取所有信息并以不同的方式聚合它。