为什么我的自定义启动器在单独的图标下打开?

为什么我的自定义启动器在单独的图标下打开?

我创建了一个自定义启动器文件:

[Desktop Entry]
Type=Application
Name=P4V
Comment=Perforce Visual Client
Icon=/usr/lib/p4v/P4VResources/icons/P4-V_128x128.png
Exec=/usr/bin/p4v
Terminal=false
Categories=Development;

并将此文件拖到我的启动器。但是,当我单击图标时,它会在第二个不同的图标下打开应用程序(我单击顶部图标,它会在底部图标下打开应用程序):

启动器图标

直到我使用手动添加的顶部 P4v 图标启动应用程序后,底部图标才出现。

答案1

在 ubuntu 上对我有用的解决方案18.04当我为如何将 AppImage 添加到我的收藏夹而苦恼时。此解决方案总结自 https://beamtic.com/duplicated-icons-in-launcher

  1. 使用重复图标启动应用程序

  2. 通过执行获取应用程序的窗口类

     xprop WM_CLASS
    
  3. 单击应用程序的主窗口。然后您应该收到表单的输出

     WM_CLASS(STRING) = "some-thing", "different-thing"
    

some-thing和都different-thing应该可以工作。

  1. 查找<application-name>.desktop文件(可能位于~/.local/share/applications

  2. 将以下行添加到桌面文件并替换Name_of_Window_Classsome-thingdifferent-thing

     StartupWMClass=Name_of_Window_Class
    
  3. 启动/重新启动应用程序

答案2

如果应用程序生成第二个图标,不是成为通用的

如果应用程序生成第二Unity 启动器中的图标其他而不是灰色的通用图标,必须已经有一个(其他)现有的启动器,p4v在其主命令中调用:

根据定义,应用程序.desktop文件的第一行有一个“主”命令,以 开头Exec=。这是在 ( ) 启动器中单击图标时运行的命令Unity。除此之外,.desktop文件有一个或多个快捷方式部分,当您右键单击Unity启动器中的代表图标时可用。

多个 .desktop 文件在其主命令中调用同一个应用程序

当或.desktop中的一个以上的文件具有相同的(“main-”)命令时,可能会发生您遇到的症状/usr/share/applications~/.local/share/applications第一的 Exec=行,但文件的名称不同。

P4v 默认应该安装(可能已经安装)一个名为.desktop的文件。p4vasp.desktop/usr/share/applications

怎么修
如果您删除自己的(可能是本地的).desktop文件,然后p4v从 Dash 运行并将其固定到启动器,那么您的问题就应该得到解决。

如果您想自定义现有的启动器该怎么办?

如果您想更改.desktop文件的行为或其图标:

  • 将文件从/usr/share/applications复制到~/.local/share/applications
  • 更改文件的名称
  • 打开文件gedit(将其拖到打开的gedit窗口中)并进行所需的更改
  • 注销并重新登录,.desktop文件的本地版本将取代全局版本。

要恢复,只需删除本地的,注销并重新登录。

相关这个帖子

相关内容