当通知超过 3 条时,如何防止通知消失?

当通知超过 3 条时,如何防止通知消失?

通知最多只保留通知,这正常吗?有时我需要更多时间来回复较早的通知,但如果我收到第四条通知,最旧的通知消失。我已经安装了一些可以帮助解决其他通知问题的扩展。

这些是我安装的扩展;

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命令,它捕获了它。如果这对你来说很重要,你可以创建一个后台脚本/进程,将这些输出路由到文件或日志,以便稍后查看。你可以过滤并按你想要的方式格式化它,或者操纵当前的格式进行解析。

这不是一个确切的答案,但它可能会给你一些指导。(太多了,无法在评论中发表)

相关内容