我想编写一个应用程序,每当消息菜单被激活(蓝色信封亮起)以及每当它被停用(蓝色信封恢复其默认颜色)时,都会收到通知。
有什么方法可以收到通知吗?在这种情况下,我并不真正关心编程语言 - 尽管我更喜欢 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 监听器来获取所有信息并以不同的方式聚合它。