我对面板中重复的 Wi-Fi 和蓝牙图标感到有点恼火,后来我查明原因,它们同时出现在systray
和statusnotifier
插件中。有人能解释一下它们(以及indicator
)之间的区别吗?
到目前为止,我读到的systray
已经存在很久了,这statusnotifier
是较新的,并以某种方式得到了 freedesktop (?) 的支持,并且是indicator
为了“解决 Canonical 所面临的设计问题”而编写的(这里)。此外,有几项似乎有自己专用的面板插件,如“pulseaudio 插件”和“电源管理器插件”,它们似乎应该可以作为 或 中的元素正常工作systray
。statusnotifier
为什么如此简单的 UI 方面会如此分散?是否有任何努力正在统一到单个托盘中?我是否遗漏了这些之间的一些语义区别,这解释了为什么拥有多个托盘是有意义的?
答案1
通知区域是 X11 的经典系统托盘。它基于XEMBED 协议。由于它是特定于 X11 的,许多进步人士认为它已经过时,而 Wayland 是未来的趋势。
状态通知器实现 StatusNotifierHost 部分StatusNotifier项目规范该机制基于D-BUS,独立于窗口系统,因此可以兼容X11、Wayland等。
指标是一个显示各种消息应用程序状态的插件。这不是系统托盘实现。它是一种特殊类型的信息显示和控制。关于此系统的一些文档Ubuntu Wiki 页面。据我所知,它使用自由指示与应用程序进行通信,而该库又使用 D-BUS 进行消息传递。
在这三个中,前两个似乎是可替代的,所以你可以使用其中之一。但根据我的经验,通知区域显示不同应用程序的更完整图标集。特别是,如果你有一些使用基于 XEMBED 的托盘图标的程序,你需要此插件。另请参阅:“我的系统托盘图标在哪里?”一位 KDE 开发人员的博客文章(来自 2014 年,当时出现了这个混乱的情况)。
这指标如果您希望在一个地方访问 Pidgin 或 Evolution 等消息应用程序,则需要此插件。默认情况下,Ubuntu 中的 Pidgin 等消息应用程序不会显示其真正的托盘图标,而是依赖于指标.如果您删除指标从面板中,请确保在您使用的每个信使的设置中启用这些托盘图标。
答案2
“通知区域”显示一些“状态通知器”和“指示器”中未显示的通知,例如网络连接。所以我必须启用它。
然后,比较“状态通知程序”和“指示器”:至少我的一个应用程序(Slack)只显示在指示器中。所有其他应用程序都显示在两者中。因此,出于这个原因,我必须使用“指示器插件”。
启用“状态通知程序”只会复制大多数(但不是全部)通知,因此我将其禁用。
有三个会让人感到困惑(就像除了桌面上的“窗口”之外,还有一些“门”甚至“洞”)。