Contents

随着ubuntu 17.10的发布,ubuntu终于告别了unity,全面启用gnome.
最头痛的莫过于系统托盘了,gnome的人不可理喻的认为系统托盘无用,官方去掉了对系统托盘的支持。幸好在gnome上有人开发KStatusNotifierItem/AppIndicator Support来恢复这个功能,然后为了为了习惯于在系统状态栏的右上角显示,再安装TopIcons插件。
Ubuntu 17.10据此做了一个完整的解决方案,即自己写了一个Ubuntu AppIndicators插件用来替代KStatusNotiifierItem和TopIcons。顺带提一下,它的Ubuntu Dock用来实现Unity传统的左侧Dock。
如果要确保Ubuntu 17.10的系统托盘能正常显示,则保证只需要安装官方的那个插件即可。
但是仅仅如此还不够,依然有很多应用无法显示系统托盘,原因在于,ubuntu将桌面环境变量声明为:

1
declare -x XDG_CURRENT_DESKTOP="ubuntu:GNOME"

而之前很多应用,在识别系统环境的时候,识别的是”Unity”,导致系统托盘显示失败。根本上当然要改变应用软件才行,不过一个苟且的解决方案就是,在当前的系统环境下,强行声明:

1
declare -x XDG_CURRENT_DESKTOP="Unity"

然后再启动应用,即可正常显示系统托盘。

再顺带附送一句,如果用户自己安装的gnome session插件,安装后的目录在:
~/.local/share/gnome-shell/extensions。

Contents