Ubuntu 12.04,xfce4。我从命令行运行命令,而不是从启动器运行命令。(这应该没什么区别,但有些回复认为我想点击启动器,但这不是重点。)
我想要的是:当我运行程序 /usr/bin/zathura(PDF 查看器)时,我希望看到窗口菜单(由背景上的鼠标中键触发的菜单,或由 control-Tab 触发的菜单以循环浏览窗口)中的每个窗口都出现图标 zathura.png。
这不会发生!相反,我得到的是一个通用图标。
我做了什么:
将图标放置
zathura.png
在/usr/share/app-install/icons
(其中已经包含图标okular.png
,当我运行okular时可以正确显示)。Icon=zathura
向文件中 添加了该行/usr/share/applications/zathura.desktop
(再次模仿类似文件 okular.png)。注意:按照 Tim 的建议,我Icon=zathura
用完整路径名替换了模仿。完整文件如下:[Desktop Entry] Version=1.0 Type=Application Name=Zathura Comment=A minimalistic document viewer Exec=zathura %f Terminal=false Categories=Office;Viewer; Icon=/usr/share/app-install/icons/zathura.png Keywords=PDF;PS;PostScript;DjVU;document;presentation;
重新启动窗口管理器(注销并重新登录)。
沒有什麼差異!
然后我开始尝试破坏 okular 图标,看看能否找到图标与可执行文件关联的位置。我破坏不了它!例如,如果我复制到/usr/bin/okular
并/usr/bin/fooooo
调用该新可执行文件,这样创建的窗口仍然会获得 okular 图标,即使没有fooooo.png
或fooooo.desktop
,或者任何.desktop
带有Name=fooooo
或 的Exec=fooooo
。
可执行文件和图标之间的关联在哪里建立?
注意:重点不在于图标是否出现在桌面上。它是否出现在那里对我来说没有区别。
(我的桌面显示的是我的主目录的内容。)
答案1
这不会发生!相反,我得到的是一个通用图标。
我做了什么:
将图标放置
zathura.png
在/usr/share/app-install/icons
(其中已经包含图标okular.png
,当我运行okular时可以正确显示)。
这是正确的做法。
Icon=zathura
向文件中 添加了以下行/usr/share/applications/zathura.desktop
(再次模仿类似文件 okular.png)。完整文件如下:
[Desktop Entry]
Version=1.0
Type=Application
Name=Zathura
Comment=A minimalistic document viewer
Exec=zathura %f
Terminal=false
Categories=Office;Viewer;
Icon=zathura
Keywords=PDF;PS;PostScript;DjVU;document;presentation;
这就是问题所在。我认为它需要绝对路径 - 或者至少是文件扩展名。这是因为您不知道应用程序默认位于哪里。例如,cairo-dock
位于/usr/share/cairo-dock
。因此请像这样为其提供完整路径。
[Desktop Entry]
Version=1.0
Type=Application
Name=Zathura
Comment=A minimalistic document viewer
Exec=zathura %f
Terminal=false
Categories=Office;Viewer;
Icon=/usr/share/app-install/icons/zartha.png
Keywords=PDF;PS;PostScript;DjVU;document;presentation;
然后我开始尝试破坏 okular 图标,看看能否找到图标与可执行文件关联的位置。我破坏不了它!例如,如果我复制到
/usr/bin/okular
并/usr/bin/fooooo
调用该新可执行文件,这样创建的窗口仍然会获得 okular 图标,即使没有fooooo.png
或fooooo.desktop
,或者任何.desktop
带有Name=fooooo
或 的Exec=fooooo
。
这是因为链接不是在名称或可执行文件名称之间,而是在图标行之间。尝试删除它,它会中断。