在 .desktop 和 dock 之间同步图标

在 .desktop 和 dock 之间同步图标

我在我的主目录中创建了一个自定义 .desktop 条目, ~/.local/share/applications/startMyApp.desktop 这样它就可以使用 xterm 而不是 gnome-terminal。我希望它在 dock 中的外观与我交互使用的 gnome-terminals 有所不同。

看起来startMyApp.desktop像:

[Desktop Entry]
Type=Application
Name=MyScript
Terminal=false
Exec=xterm -e myScript.sh
Icon=myIcon.png

我已经创建了一个图标文件~/.icons/myIcon.png

图标在默认文件浏览器中显示正确。从文件浏览器打开时,它会按预期在 xterm 中执行脚本,但是,停靠栏中的图标显示为其他通用 xterm 图标。该图标来自哪里?它嵌入在二进制文件中吗?

我该如何改变这种情况?我希望 Dock 中的图标与文件中指定的图标相同.desktop。Ubuntu 捆绑的应用程序在启动时在 Dock 中具有相同的图标(除了表示打开了多少个窗口的红点)。

答案1

您需要添加适当的StartupWMClass入口到您的.desktop文件。要执行此操作,请按照以下步骤操作。

  1. 启动相关应用程序。
  2. 启动单独的终端窗口并运行xprop WM_CLASS
  3. 将光标放在打开的应用程序窗口上。光标现在应该变成十字准线。单击。您应该WM_CLASS在终端窗口中获​​得该应用程序的字符串。
  4. .desktop文件中添加以下行

    StartupWMClass=OBTAINED-VALUE
    

    代替OBTAINED-VALUE放置您从步骤 3 中获得的值,不带任何引号。


OP 的更新:

另外我似乎需要为 xterm 实例提供一个名称。exec 行现在看起来像xterm -name myApp -e myScript.sh

相关内容