如何在 16.04 中恢复 emacs 的启动器图标?

如何在 16.04 中恢复 emacs 的启动器图标?

安装 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

有两个选项:

  1. /opt目录不在 中$PATH,这会使.desktop文件无效,除非您手动添加目录。 通常 中的应用程序/opt在其行中有一个绝对路径Exec=。 将其更改为可执行文件的绝对路径。
  2. 中可能会有另一个.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

现在看来运行良好。

相关内容