问题
当我们打开应用程序之后,在 GNOME 的 Dock 中,将显示应用图标。在应用图标上右键,将显示 Add to Favorites 选项,已将图标固定在 Dock 上,方便下次打开。
但是,有些应用程序却没有 Add to Favorites 选项(比如 Eclipse 应用)。或者在启动应用后,任务栏显示新的图标,而不是显示在已有图标之上。
原因
窗口的 WM_CLASS 属性,与在 .desktop 中的 StartupWMClass 属性不匹配。
补充说明
目前(05/31/2021),通过 StartupWMClass 字段并不能指定多个 WM_CLASS 属性,网上给出的解决方案是对窗口进行重命名(12.10 – Set Multiple values for StartupWMClass (to group under same launcher in Unity) – Ask Ubuntu),或者其他 Workaround 解决。
解决
我们这里以 Eclipse 窗口为例:
第一步,执行 xprop WM_CLASS 获取窗口的 WM_CLASS 属性:
# xprop WM_CLASS WM_CLASS(STRING) = "Eclipse", "Eclipse"
第二步、修改 Eclipse 的 .desktop 文件的 StartupWMClass 属性:
# eclipse.desktop ... StartupWMClass=Eclipse ...
至此,问题就得以解决(需要重启 Eclipse 之后才显示)。
参考
gnome shell – Cannot add custom launcher to Ubuntu Dock (‘Add to Favorites’ option does not show up) – Ask Ubuntu
Duplicate icons for manually created GNOME launcher items – Ask Ubuntu
针对 AppImage 应用
Wayland https://discourse.nixos.org/t/change-wmclass-for-appimages-launched-with-apprun-with-gnome/30766
通过 –name 选项,来定义 StartupWMClass 参数:
[Desktop Entry] ... Exec=/home/k4nzdroid/.local/opt/Navicat/navicat-16.1.7-premium-en-patched.AppImage --name OursNavicatPremium16 ... StartupWMClass=OursNavicatPremium16 ...
相关链接