![为什么我的自定义启动器在单独的图标下打开?](https://linux22.com/image/874143/%E4%B8%BA%E4%BB%80%E4%B9%88%E6%88%91%E7%9A%84%E8%87%AA%E5%AE%9A%E4%B9%89%E5%90%AF%E5%8A%A8%E5%99%A8%E5%9C%A8%E5%8D%95%E7%8B%AC%E7%9A%84%E5%9B%BE%E6%A0%87%E4%B8%8B%E6%89%93%E5%BC%80%EF%BC%9F.png)
我创建了一个自定义启动器文件:
[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
使用重复图标启动应用程序
通过执行获取应用程序的窗口类
xprop WM_CLASS
单击应用程序的主窗口。然后您应该收到表单的输出
WM_CLASS(STRING) = "some-thing", "different-thing"
some-thing
和都different-thing
应该可以工作。
查找
<application-name>.desktop
文件(可能位于~/.local/share/applications
)将以下行添加到桌面文件并替换
Name_of_Window_Class
为some-thing
:different-thing
StartupWMClass=Name_of_Window_Class
启动/重新启动应用程序
答案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
文件的本地版本将取代全局版本。
要恢复,只需删除本地的,注销并重新登录。
相关这个帖子