非标准应用程序启动时 Unity Launcher 上出现两个图标

非标准应用程序启动时 Unity Launcher 上出现两个图标

我有一个应用程序,它不是来自任何 Ubuntu 仓库(既不是官方的,也不是 PPA),但可以作为 tgz 使用,应该可以解压并随时使用。准确地说,它是光桌

问题是应用程序启动时会在 Unity Launcher 中显示自己的图标。制作自定义.desktop文件并将快捷方式放到 Unity Launcher 上(通过从仪表板拖动)并启动它后,我看到两个图标 - 一个是我放置的,另一个是实际应用程序的图标。

以下是.desktop内容:

[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Exec=/opt/LightTable/LightTable
Name=Light Table
Icon=/opt/LightTable/core/img/lticon.png

还有一件事。这/opt/LightTable/LightTable是 bash 脚本文件,最终/opt/LightTable/ltbin正在启动。我认为这是问题所在,但不知道如何修复该问题。

答案1

您必须在 .desktop 文件中添加 StartupWMClass 字符串。此字符串定义应用程序在启动时在 Unity Launcher 中分组到哪个类中。

解决方案是添加StartupWMClass到您的桌面文件。首先,您需要找到适合您的应用程序的类。

解释如下这里(谢谢@混乱)。

打开你的 Light Table 窗口并在终端中输入:

xprop WM_CLASS

然后点击 LIght Table 窗口。

对于 gnome 终端,WM_CLASS 应该是这样的

WM_CLASS(STRING) = "gnome-terminal", "Gnome-terminal"

因此,所有带有 WM_CLASS“gnome-terminal”和“Gnome-terminal”的窗口都被分组在一起。对于 light table,您将看到不同的类。选择一个并记住它。

找到程序类后,将其添加到 .desktop 文件中:

StartupWMClass=CLASS

将 CLASS 替换为上一个命令中的类。

相关内容