Gnome桌面图标创建

默认九宫格抽屉图标存储位置

/usr/share/applications  #系统包、snap、flatpak --system、官方 deb 放这里
/usr/local/share/applications  #手动 make install、第三方软件常放这里
$HOME/.local/share/applications  #用户自己建的启动器、AppImage 自注册、Steam 外部游戏、flatpak --user 都在这儿

GNOME Shell 启动时会一次性读入这些目录(含子目录),按 Name 排序后展示在“全部应用”视图;

桌面图标创建

cd $HOME
vim example.desktop

# 写入以下内容
[Desktop Entry]
Name=Example
Comment=Example ...
Exec=/opt/appimages/example.AppImage
Icon=/opt/appimages/example.png
Terminal=false
StartupNotify=true
StartupWMClass=example-WMClass
Type=Application
Categories=Network;

chmod +x example.desktop

解包拿图标过程

cd /opt/appimages
sudo ./example.AppImage --appimage-extract
sudo find squashfs-root -name "*icon*.png" -exec cp {} /opt/appimages/example.png \;
sudo rm -rf squashfs-root

StartupNotify StartupWMClass

此两个属性可以不添加

  1. StartupNotify
  • 是否向桌面环境发送“启动通知”信号。
  • true(默认)→ 点击图标后光标旁会出现旋转指示,告诉用户“程序正在启动”。
  • false → 不发送通知,适用于不弹窗口的脚本或后台进程,避免一直转圈 。

  1. StartupWMClass
  • 把后面真正跑出来的窗口“归到”哪一个 WM_CLASS 名下,实现
  • 窗口与启动器图标合一(防止重复图标);
  • 旋转指示正确消失(桌面环境收到匹配窗口后结束通知)。

获取StartupWMClass

xprop WM_CLASS          # 然后点击窗口,第一串引号内容即为值