系统托盘
GNOME 把系统托盘功能删掉了,需要使用三方插件支持托盘功能。
前置条件
需要先安装浏览器插件 GNOME Shell
Google 应用商店 GNOME Shell 集成
FireFox 应用商店 GNOME Shell integration
安装三方托盘插件
- 前往 GNOME插件官网
- 搜索
AppIndicator and KStatusNotifierItem Support,点击进入第一条搜索结果 - 点击 Install 安装
常见问题
- 现象:开关是灰色的OFF,无法打开。
原因:org.gnome.shell 的 disable-user-extensions被关闭了。
解决方案:
执行以下命令允许 GNOME Shell 加载用户安装的扩展
$ gsettings set org.gnome.shell disable-user-extensions false
参考链接:
Gnome Shell Extensions not working
图标
Papirus
这里推荐一套我个人比较喜欢的图标库 Papirus
Papirus GitHub
# Papirus主题图标文件存放位置
/usr/share/icons/Papirus
.desktop
# .desktop文件存放位置
/usr/share/applications
# .desktop文件配置规则
[Desktop Entry]
# 应用程序的特定名称
Name=Visual Studio Code
# 条目的工具提示,例如“查看 Internet 上的站点”。该值不应与 和 的值 Name重复GenericName
Comment=Code Editing. Refined.
# 应用程序的通用名称,例如“Web Browser”。
GenericName=Text Editor
# 要执行的程序,可能带有参数
Exec=/usr/bin/code --unity-launch %F
# 在文件管理器、菜单等中显示的图标
# 如果名称是绝对路径,将使用给定的文件
# 如果名称不是绝对路径,将使用[图标主题规范]中描述的算法来定位图标。
Icon=visual-studio-code
# 该规范定义了 3 种类型的桌面条目:
# Application
# Link
# Directory
Type=Application
# 如果为 true,则已知应用程序将在设置了 DESKTOP_STARTUP_ID 环境变量时发送“删除”消息
# 如果为 false,则知道应用程序根本无法使用启动通知(不显示任何窗口,甚至在使用 StartupWMClass 时也会中断等)
# 如果不存在,合理的处理取决于实现(假设为 false,使用 StartupWMClass 等)
StartupNotify=false
# 如果指定,则已知应用程序将使用给定字符串映射至少一个窗口作为其 WM 类或 WM 名称提示
StartupWMClass=Code
# 条目应显示在菜单中的类别
# Categories 字段的值由多个类别组成,这些类别是预定义的字符串,用分号(;)分隔。以下是一些常见的类别:
# AudioVideo: 多媒体应用程序
# Development: 开发工具
# Education: 教育类应用程序
# Game: 游戏
# Graphics: 图像处理软件
# Network: 网络工具
# Office: 办公软件
# Utility: 实用工具
Categories=TextEditor;Development;IDE;
# 此应用程序支持的 MIME 类型
MimeType=text/plain;inode/directory;application/x-code-workspace;
# 应用程序操作的标识符。这可用于告诉应用程序执行不同于默认行为的特定操作
Actions=new-empty-window;
# 除了其他元数据之外,还可以使用字符串列表来描述此条目
# 这可能很有用,例如有助于通过条目进行搜索
# 这些值不用于显示,不应与 Nameor的值重复GenericName
Keywords=vscode;
一些常用软件的例子
CLion
[Desktop Entry]
Name=CLion
Comment=C++ IDE
Exec=/opt/clion-2025.2.1/bin/clion
Icon=clion
Terminal=false
Type=Application
Categories=Development;IDE;
StartupWMClass=jetbrains-clion
WebStorm
[Desktop Entry]
Name=WebStorm
Comment=JavaScript IDE
Exec=/opt/WebStorm/bin/webstorm
Icon=webstorm
Terminal=false
Type=Application
Categories=Development;IDE;
StartupWMClass=jetbrains-webstorm
Typora
[Desktop Entry]
Name=Typora
Comment=Edit text files
Exec=/opt/Typora-linux-x64/Typora
Icon=typora
Terminal=false
Type=Application
Categories=Office
StartupWMClass=Typora
Postman
[Desktop Entry]
Name=Postman
Comment=Development IDE
Exec=/opt/Postman/Postman
Icon=postman
Terminal=false
Type=Application
Categories=Development;IDE;
StartupWMClass=Postman
WeChat Devtools
[Desktop Entry]
Name=Wechat Dev Tools
Comment=Development IDE
Exec=/opt/WebChatDevTools/bin/wechat-devtools
Icon=/opt/WebChatDevTools/package.nw/static/image/logo@2x.png
Terminal=false
Type=Application
Categories=Development;IDE;
StartupWMClass=wechat-devtools
常见问题
- 现象:点击软件图标(例如IDEA、腾讯文档),该软件没有在原图标上面启动,而是在另一个“齿轮”图标上面启动。
原因:这是由于该软件.desktop中的StartupWMClass配置项的值,不等于该软件的Instance值导致的。
解决方案:
# 运行以下命令,鼠标会变成“十字”形状,然后鼠标点击软件窗口
xprop WM_CLASS
# 命令行会输出两个值,例如:
WM_CLASS(STRING) = "tdappdesktop", "TDAppDesktop"
# 第一个值是软件Class名称,第二个值是软件Instance名称
# 把第二个值配置到.desktop中的StartupWMClass配置项,例如:
[Desktop Entry]
StartupWMClass=TDAppDesktop
# 关闭软件窗口,取消并重新固定Dock栏上的桌面图标,可看到效果
- 现象:微信图标不如原版好看。
原因:可能是版权原因。
解决方案:
# 删除Papirus下所有wechat.svg文件,让操作系统读取Flatpak自带的微信图标。
$ sudo rm -f /usr/share/icons/Papirus/16x16/apps/wechat.svg
$ sudo rm -f /usr/share/icons/Papirus/22x22/apps/wechat.svg
$ sudo rm -f /usr/share/icons/Papirus/24x24/apps/wechat.svg
$ sudo rm -f /usr/share/icons/Papirus/32x32/apps/wechat.svg
$ sudo rm -f /usr/share/icons/Papirus/48x48/apps/wechat.svg
$ sudo rm -f /usr/share/icons/Papirus/64x64/apps/wechat.svg
# 刷新Papirus缓存
$ sudo gtk-update-icon-cache /usr/share/icons/Papirus/
其它图标方案
前往以下链接,选择喜欢的图标并安装
Full Icon Themes
壁纸
前往以下链接,选择喜欢的壁纸并安装。
Wallpapers Gnome
推荐排名第一的 Linux Dynamic Wallpapers,实现了 macOS 所有日出日落动态壁纸。