web-dev-qa-db-fra.com

Comment faire pour revenir icône Launcher pour emacs dans 16.04?

Après avoir installé 16.04, l’icône Emacs dans le Lanceur s’est transformée en un point d’interrogation:

enter image description here

En 15.10, l'icône ressemblait plus à ceci:

enter image description here

Je suppose que le problème est peut-être que j'ai installé Emacs à partir des sources (sans utiliser Sudo apt-get install emacs24). Le binaray est maintenant installé dans /opt/emacs-24.5/bin/emacs.

J'ai trouvé ce tutoriel nityLaunchersAndDesktopFiles pour savoir comment créer des fichiers .desktop.

Si je lance find /opt/emacs-24.5/ -name '*.desktop' je reçois

/opt/emacs-24.5/share/emacs/24.5/etc/emacs.desktop
/opt/emacs-24.5/share/applications/emacs.desktop

et en cours d'exécution find /opt/emacs-24.5/share/icons -name '*.png' donne

/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

Comment dois-je procéder maintenant pour créer un fichier de travail .desktop?

Mise à jour :

J'ai maintenant essayé ce qui suit:

  • Copiez le fichier desktop fourni avec emacs fourni dans un dossier local:

      cp /opt/emacs-24.5/share/applications/emacs.desktop ~/.local/share/applications/emacs.desktop
    
  • Puis changé le nom du fichier icône de ce fichier:

    [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;
    
  • Exécutez 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
    
  • Exécutez desktop-file-install:

     Sudo desktop-file-install --dir=/usr/share/applications/ ~/.local/share/applications/emacs.desktop
    

L'icône n'a toujours pas changé. Qu'est-ce que je rate?

1
Håkon Hægland

Il y a deux options:

  1. Le répertoire /opt ne se trouve pas dans $PATH, ce qui rend le fichier .desktop invalide, sauf si vous avez ajouté le répertoire manuellement. Habituellement, les applications de /opt ont un chemin absolu dans leur ligne Exec=. Changez-le en chemin absolu vers l'exécutable.
  2. Il peut y avoir un autre fichier .desktop dans ~/.local/share/applications, prenant la place de votre fichier personnalisé .desktop. Soit:

    • faites glisser votre fichier .desktop fait maison sur le lanceur et vérifiez s'il fonctionne (avec la bonne icône).
    • Sinon, ou alternativement, exécutez la commande:

      grep -rl emacs ~/.local/share/applications
      

    rechercher les fichiers .desktop obsolètes ou incorrects possibles en lançant emacs

1
Jacob Vlijm

On dirait que le problème n’utilisait pas un chemin absolu pour la touche Exec. Voici un fichier /usr/share/applications/emacs.desktop modifié:

[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

Cela semble bien fonctionner maintenant.

1
Håkon Hægland