我有点恼火,重复的 wi-fi 和蓝牙图标出现在我的面板中,并追踪到它们同时出现在插件systray
和statusnotifier
插件中的事实。有人可以解释它们之间的区别(以及indicator
)吗?
- “通知区”(又名:系统托盘)
- “状态通知插件”(又名:statusnotifier)
- “指标插件”(又名:指标)
到目前为止,我已经读到它systray
一直存在,它statusnotifier
更新并且在某种程度上受到了 freedesktop 的祝福(?),它indicator
是为了“解决 Canonical 的设计问题”(这里)。此外,一些东西似乎有自己专用的面板插件,比如“pulseaudio 插件”和“电源管理器插件”,它们看起来应该可以作为systray
or中的元素正常工作statusnotifier
。为什么这么简单的 UI 方面会如此细分?是否正在努力将统一为一个托盘?这些之间是否有一些我遗漏的语义区别,这解释了为什么拥有多个是有意义的?
通知区域是 X11 的经典系统托盘。它基于XEMBED 协议。由于特定于 X11,它被许多认为 Wayland 是未来的进步人士认为已经过时。
状态通知器实现了StatusNotifierItem 规范的 StatusNotifierHost 部分。该机制基于D-BUS,独立于windowing系统,兼容X11、Wayland等。
Indicator是一个显示各种消息应用程序状态的插件。这不是系统托盘实现。它是一种特殊类型的信息显示和控制。在Ubuntu Wiki 页面上有一些关于这个系统的文档。据我所知,它使用libindicate与应用程序进行通信,而这个库又使用 D-BUS 进行消息传递。
在这三个中,前两个似乎是替代品,因此您可以使用其中一个。但根据我的经验,通知区域显示了来自不同应用程序的更完整的图标集。特别是,如果你有一些使用基于 XEMBED 的托盘图标的程序,你需要这个插件。另请参阅:“我的系统托盘图标在哪里?” 一位 KDE 开发人员的博客文章(从 2014 年开始,当这个混乱出现时)。
如果您想在一个地方访问诸如 Pidgin 或 Evolution 之类的消息应用程序,则需要Indicator插件。默认情况下,在 Ubuntu 中,像 Pidgin 这样的信使不会显示它们真正的托盘图标,这取决于Indicator的存在。如果您从面板中删除指示器,请务必在您使用的每个 Messenger 的设置中启用这些托盘图标。
“通知区”显示了一些未在“状态通知器”和“指示器”中显示的通知,例如网络连接。所以我必须启用它。
然后,比较“Status Notifier”和“Indicator”:我的至少一个应用程序(Slack)仅显示在 Indicator 中。所有其他应用程序都出现在它们中。因此,出于这个原因,我必须使用“指标插件”。
启用“状态通知程序”只会复制大部分(但不是全部)通知,所以我禁用了它。
拥有三个令人困惑(就像除了桌面上的“窗户”之外,您还有一些“门”甚至“洞”)。