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

cto*_*ote 18 icons launcher

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

[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;
Run Code Online (Sandbox Code Playgroud)

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

启动器图标

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

Jac*_*ijm 12

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

如果应用程序产生一第二在Unity图标启动其他比AA灰色的,通用的图标,必须有一个已经其它现有发射器,呼叫p4v在其主命令:

根据.desktop定义,应用程序文件的第一行有一个“main”命令,以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文件的本地版本将否决全局版本。

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

此帖子相关


小智 6

当我努力将 AppImage 添加到我的收藏夹时,该解决方案在 ubuntu 18.04上对我有用。此解决方案总结自 https://beamtic.com/duplicated-icons-in-launcher

  1. 通过执行获取带有双图标的程序的窗口类

    xprop WM_CLASS
    
    Run Code Online (Sandbox Code Playgroud)
  2. 通过单击选择该程序的主窗口。我收到了两个字符串,只取了第一个(小写)。

  3. 将以下行添加到.desktop文件中(我的.desktop文件在 中~/.local/share/applications)并替换[Name_of_Window_Class]为 xprop 命令的输出:

    StartupWMClass=[Name_of_Window_Class]
    
    Run Code Online (Sandbox Code Playgroud)
  4. 启动/重新启动应用程序,完成!