“通知区域”(systray)、“指标插件”(indicator)和“状态通知插件”(statusnotifier)有什么区别

dra*_*ock 15 xfce indicator xfce-panel

我对面板中出现重复的 wi-fi 和蓝牙图标感到有些恼火,并追踪到它们同时出现在插件systraystatusnotifier插件中的事实。有人能解释一下它们之间的区别indicator吗(还有)?

到目前为止,我已经读过它systray永远存在,它statusnotifier更新并且以某种方式受到 freedesktop (?) 的祝福,并且它indicator是为了“解决 Canonical 所面临的设计问题”(这里)。此外,有些东西似乎有自己的专用面板插件,例如“pulseaudio插件”和“电源管理器插件”,它们似乎应该作为systray或 中的元素正常工作statusnotifier。为什么 UI 如此简单的方面如此分散?是否正在努力将其统一为一个托盘?我缺少的这些之间是否存在一些语义差异,这解释了为什么拥有多个是有意义的?

Rus*_*lan 13

  • 通知区域是 X11 的经典系统托盘。它基于XEMBED 协议。由于特定于 X11,许多认为 Wayland 是未来的进步人士认为它已经过时了。

  • 状态通知程序实现了StatusNotifierItem 规范的 StatusNotifierHost 部分。该机制基于D-BUS,独立于窗口系统,兼容X11、Wayland等。

  • Indicator是一个插件,显示各种消息应用程序的状态。这不是系统托盘实现。它是一种特殊类型的信息显示和控制。在Ubuntu Wiki 页面上有关于此系统的一些文档。据我所知,它使用libindicate与应用程序通信,而该库又使用 D-BUS 进行消息传递。

在这三个中,前两个似乎是替代品,因此您可以使用其中之一。但根据我的经验,通知区域显示来自不同应用程序的更完整的图标集。特别是,如果您有一些使用基于 XEMBED 的托盘图标的程序,您就需要这个插件。另请参阅:“我的系统托盘图标在哪里?” KDE 开发人员的博客文章(从 2014 年开始,当这个烂摊子出现时)。

指标如果你想有一个地方接入消息应用程序如如洋泾浜或演进需要的插件。默认情况下,在 Ubuntu 中,像 Pidgin 这样的信使不显示他们真正的托盘图标,依赖于Indicator的存在。如果您从面板中删除指示器,请确保在您使用的每个信使的设置中启用这些托盘图标。

  • 我会坚持使用通知区域(系统托盘)一段时间,因为 NetworkManager Applet 不会显示在状态通知程序中。它也是最新的软件包(2019 年)。 (3认同)
  • 早些时候,我也曾经遇到过 @dmnc 报告的相同问题。但似乎在 xfce4.14 (Xubuntu 20.04) 中,此问题已得到纠正,并且托盘图标已正确显示在**状态通知程序**中。此外,这能够从选定的图标主题渲染图标(**通知区域**不是这种情况)。 (2认同)