手动创建的GNOME启动器项目的重复图标


46

我已经下载了Aptana Studio 3,并创建了以下启动器项目以使用Alacarte:

文件: alacarte-made.desktop

[Desktop Entry]
Comment=
Terminal=false
Name=Aptana Studio 3
Exec=AptanaStudio3
Type=Application
Icon=/opt/Aptana-Studio-3/icon.xpm

然后,当我将图标添加到收藏夹并打开Aptana Studio 3时,按照以下屏幕截图,它会显示两个图标,一个用于启动新实例,一个用于当前正在运行的实例。

在此处输入图片说明

如何强制应用程序使用添加到收藏夹的相同图标?


您能指定安装Aptana的方式吗?在官方网站上,我看到的只是一个独立的zip文件。(类似于Windows中的便携式应用程序)。
hytromo

是的,就是这样。
malhobayyeb 2014年

那么,最终结果如何/opt?另外,它在您身上$PATH吗?通过仅AptanaStudio3在您的桌面文件中指定它可以运行的方式?
hytromo

1
我已经做到了,谢谢。我已经在/ usr / bin中创建了一个符号链接到/opt/.../aptana,这只是一个命名问题。我必须将.desktop和bin命名为相同的链接:)
malhobayyeb 2014年

3
请在下面详细回答您如何解决问题:)(我不知道,我只问了您一些问题)
hytromo 2014年

Answers:


67

要通过@earthmeLon提到的线程保存筛选,您需要执行以下操作:

  1. 启动应用程序
  2. 启动终端并运行xprop WM_CLASS。单击应用程序窗口。
  3. 您会得到类似的输出WM_CLASS(STRING) = "Navigator", "Firefox"。选择一个类,例如Firefox在本示例中
  4. 添加类的价值StartupWMClass.desktop的文件。例如,StartupWMClass=Firefox
  5. 保存.desktop文件,关闭应用程序,然后重新打开。现在启动器中应该只有1个图标

3
对于在GNOME上存在相同问题的用户,可以使用MenuLibre:编辑相应的条目时,您将在单击“高级”按钮后显示的列表中找到一个用于设置StatupWMClass的字段
conceptdeluxe

如果有人试图处理mendeley可执行文件的问题,请确保也进行编辑.../bin/install-mendeley-link-handler.sh,因为它会.desktop在每次运行时覆盖文件
-MInner

TLDR;* .desktop文件名= WM_CLASS(STRING)最后一项,但小写。详细信息:创建“ Firefox开发人员版”快捷方式时,我必须解决此问题。命名文件“ firefox.desktop”仅会遮盖标准的firefox图标。使用xprop WM_CLASS并单击窗口,返回WM_CLASS(STRING)=“ Navigator”,“ Firefox Developer Edition”。最后,我将.desktop文件重命名为:mv ffde.desktop“ firefox开发人员edition.desktop”。(不过,另一个问题是,我不能在gnome扩展坞上的图标上单击»addToFavorites)
Stphane

1
如果您不想/无法将原始.desktop文件修改到/ usr / share / applications文件夹中,则可以将该文件复制到本地文件夹〜/ .local / share / applications中,然后修改在这里归档。因此,您将拥有一个系统范围的原始文件(可能由开发人员/发行版提供)和一个自定义文件,该文件将覆盖gnome-shell应用程序面板中的原始文件。复制到本地文件夹是可取的,因为可以在下一个软件包更新中将文件复制到/ usr / share / applications中。
维尼修斯A.豪尔赫

多个应用没有WM_CLASS,或者至少xprop没有显示它。可以用其他财产吗?例如WM_NAME上的正则表达式?
jws

3

启动WM类

您可以使用StartupWMClass按类别对窗口进行分组。

有关其他信息,请参见此线程

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.