![当通知超过 3 条时,如何防止通知消失?](https://linux22.com/image/1207557/%E5%BD%93%E9%80%9A%E7%9F%A5%E8%B6%85%E8%BF%87%203%20%E6%9D%A1%E6%97%B6%EF%BC%8C%E5%A6%82%E4%BD%95%E9%98%B2%E6%AD%A2%E9%80%9A%E7%9F%A5%E6%B6%88%E5%A4%B1%EF%BC%9F.png)
通知最多只保留三通知,这正常吗?有时我需要更多时间来回复较早的通知,但如果我收到第四条通知,最旧的通知消失。我已经安装了一些可以帮助解决其他通知问题的扩展。
这些是我安装的扩展;
https://extensions.gnome.org/extension/41/permanent-notifications/ (防止鼠标悬停时通知消失)
https://extensions.gnome.org/extension/1335/grown-up-notifications/ (阻止应用程序删除自己的通知)
https://extensions.gnome.org/extension/1526/notification-centerselenium-h/ (自定义外观/定位)
答案1
我认为,如果不进行一些调整,通知功能不会按照您想象的方式工作。您甚至可能需要降低您的期望。
我明白了,即使在 MATE 中,我将其设置为显示 10,但它只显示 5。我仍然可以通过删除单个较新的通知来获取超过 5 个的旧通知。
我也在使用 MetaCity,我看到了不同的行为,我可以看到“无数”(嗯,现在实际上是 21 个)通知,但我看不到设置保存计数的地方。
您也有可能误解了所看到的内容。我看到 MATE 设置中某些通知(如 NetworkManager)默认会立即被删除。或者下面的设置,我相信这是您再次看到相同通知之前需要经过的分钟数。
org.gnome.settings-daemon.plugins.housekeeping 最短通知周期 10
话虽如此,该设置似乎对 vlc 或 rhythmbox 通知没有任何影响,所以再次强调,很难抱有期望。我认为该设置影响音乐应用程序根本说不通,因为超过 10 分钟的歌曲非常少。因此,相信每个应用程序都能够以自己的方式操纵通知是合理的。您可能应该开始研究特定应用程序的首选项及其通知设置。(我看到了 vlc 通知的可编辑设置。)
我正在 MATE 和 Metacity 桌面上使用 Rhythmbox、vlc 和 NetworkManager 进行测试。我只是停止和播放同一首歌曲、循环播放音乐库以及通过小程序启用和禁用网络连接。
还要搜索已安装的所有桌面的设置。
作为用户:
gsettings list-recursively | grep notif
我们很难知道您安装了什么,但这会为您提供与任何桌面的通知相关的可设置设置列表。您可能还想尝试 grepping 特定的应用程序名称。
我(个人)不愿意推荐来自外部存储库的应用程序,因为我真的不知道那个世界上谁是谁(合法安全),但有外部软件包可用。
如果其他方法都不管用,您可能需要研究一种向 sendmail 或 syslog 发送通知的方法...
我能够使用 dbus 监视器做的一件事是从 rhythmbox 中提取发出通知的歌曲的字符串。
作为用户:
dbus-monitor --session | grep "Stimulation.mp3"
导致:
variant string "Method Man - Stimulation.mp3"
但这是一个我确切知道我在寻找什么的情况。我不知道你是否能够预测你通常会收到的所有通知。
有一件事可能更加明智,并且取得了一些有希望的结果:
dbus-monitor --session interface=org.freedesktop.Notifications | grep -A20 "org.freedesktop.Notifications"
还有更多输出,但我将其限制为 20 行,结果是:
method call time=1645315302.262755 sender=:1.132 -> destination=org.freedesktop.Notifications serial=1116 path=/org/freedesktop/Notifications; interface=org.freedesktop.Notifications; member=Notify
string "Rhythmbox"
uint32 0
string "rhythmbox"
string "Glamorous Life"
string "by <i>Sheila E</i> from <i>Operation Funk</i>"
array [
string "media-skip-backward"
string "Previous"
string "media-playback-pause"
string "Pause"
string "media-skip-forward"
string "Next"
]
array [
dict entry(
string "action-icons"
variant boolean true
)
dict entry(
string "category"
--
signal time=1645315306.482778 sender=:1.263 -> destination=(null destination) serial=29 path=/org/freedesktop/Notifications; interface=org.freedesktop.Notifications; member=NotificationClosed
uint32 1
uint32 1
我还发送了一条notify-send
命令,它捕获了它。如果这对你来说很重要,你可以创建一个后台脚本/进程,将这些输出路由到文件或日志,以便稍后查看。你可以过滤并按你想要的方式格式化它,或者操纵当前的格式进行解析。
这不是一个确切的答案,但它可能会给你一些指导。(太多了,无法在评论中发表)