安装 16.04 后,启动器中的 Emacs 图标变成了问号:
在 15.10 中,图标看起来更像这样:
我猜问题可能是我从源代码安装了 Emacs(而不是使用sudo apt-get install emacs24
)。binaray 现在安装在了
/opt/emacs-24.5/bin/emacs
。
我找到了这个教程UnityLaunchersAndDesktopFiles有关如何创建.desktop
文件。
如果我跑,find /opt/emacs-24.5/ -name '*.desktop'
我会
/opt/emacs-24.5/share/emacs/24.5/etc/emacs.desktop
/opt/emacs-24.5/share/applications/emacs.desktop
并且find /opt/emacs-24.5/share/icons -name '*.png'
运行
/opt/emacs-24.5/share/icons/hicolor/48x48/apps/emacs.png
/opt/emacs-24.5/share/icons/hicolor/32x32/apps/emacs.png
/opt/emacs-24.5/share/icons/hicolor/24x24/apps/emacs.png
/opt/emacs-24.5/share/icons/hicolor/128x128/apps/emacs.png
/opt/emacs-24.5/share/icons/hicolor/16x16/apps/emacs.png
我现在应该如何继续来创建工作.desktop
文件?
更新:
我现在尝试了以下操作:
desktop
将随附的文件复制emacs
到本地文件夹:cp /opt/emacs-24.5/share/applications/emacs.desktop ~/.local/share/applications/emacs.desktop
然后改变该文件的图标文件名:
[Desktop Entry] Name=Emacs GenericName=Text Editor Comment=Edit text MimeType=text/english;text/plain;text/x-makefile;text/x-c++hdr;text/x-c++src;text/x-chdr;text/x-csrc;text/x-java;text/x-moc;text/x-pascal;text/x-tcl;text/x-tex;application/x-shellscript;text/x-c;text/x-c++; Exec=emacs %F Icon=/opt/emacs-24.5/share/icons/hicolor/48x48/apps/emacs.png Type=Application Terminal=false Categories=Development;TextEditor; StartupWMClass=Emacs Keywords=Text;Editor;
跑步
desktop-file-validate
:$ desktop-file-validate ~/.local/share/applications/emacs.desktop /home/hakon/.local/share/applications/emacs.desktop: hint: value item "TextEditor" in key "Categories" in group "Desktop Entry" can be extended with another category among the following categories: Utility
跑步
desktop-file-install
:sudo desktop-file-install --dir=/usr/share/applications/ ~/.local/share/applications/emacs.desktop
图标仍然没有变化。我错过了什么吗?
答案1
有两个选项:
- 该
/opt
目录不在 中$PATH
,这会使.desktop
文件无效,除非您手动添加目录。 通常 中的应用程序/opt
在其行中有一个绝对路径Exec=
。 将其更改为可执行文件的绝对路径。 中可能会有另一个
.desktop
文件~/.local/share/applications
取代您的自定义.desktop
文件。请执行以下操作之一:- 将您自制的
.desktop
文件拖到启动器上,看看它是否有效(带有正确的图标)。 如果没有,或者,运行以下命令:
grep -rl emacs ~/.local/share/applications
要查找可能过期或不正确的
.desktop
文件,请启动emacs
- 将您自制的
答案2
问题似乎在于没有使用绝对路径名作为密钥Exec
。以下是修改后的/usr/share/applications/emacs.desktop
文件:
[Desktop Entry]
Name=Emacs
GenericName=Text Editor
Comment=Edit text
MimeType=text/english;text/plain;text/x-makefile;text/x-c++hdr;text/x-c++src;text/x-chdr;text/x-csrc;text/x-java;text/x-moc;text/x-pascal;text/x-tcl;text/x-tex;application/x-shellscript;text/x-c;text/x-c++;
Exec=/opt/emacs-24.5/bin/emacs %F
Icon=/opt/emacs-24.5/share/icons/hicolor/scalable/apps/emacs.svg
Type=Application
Terminal=false
Categories=Development;TextEditor;
StartupWMClass=Emacs
Keywords=Text;Editor;
X-Desktop-File-Install-Version=0.22
现在看来运行良好。