我有一个应用程序,它不是来自任何 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 替换为上一个命令中的类。