J'utilise Ubuntu, donc l'emplacement du fichier de bureau peut être différent mais je pense que le contenu devrait être similaire.
$ cat ~/.local/share/applications/emacsclient.desktop
#!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0
Name=GNU Emacs 24
GenericName=Text Editor
Comment=View and edit files
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=/usr/bin/emacsclient -c -a "" %F
Icon=/usr/share/icons/hicolor/scalable/apps/emacs-snapshot.svg
Type=Application
Terminal=false
Categories=Utility;Development;TextEditor;
StartupWMClass=Emacs
Name[en_US]=GNU Emacs 24
La partie importante est:
Exec=/usr/bin/emacsclient -c -a "" %F
Pour clarifier cela devrait probablement être:
Exec=/usr/bin/emacsclient --create-frame --alternate-editor "" %F
À partir de la documentation sur emacsclient, ces commutateurs procèdent comme suit:
-c, --create-frame Create a new frame instead of trying to
use the current Emacs frame
-a EDITOR, --alternate-editor=EDITOR
Editor to fallback to if the server is not running
If EDITOR is the empty string, start Emacs in daemon
mode and try connecting again
Donc, il crée un nouveau cadre en utilisant -c
puis si emacs n'est pas déjà démonisé il démarre un nouveau démon emacs avec -a ""
. Enfin, le %F
corrige pour que vous puissiez faire glisser un fichier texte sur l'icône et il l'ouvrira.
Juste à côté, vous pouvez également envisager d'inclure -F "((fullscreen . maximized))"
pour forcer le cadre à maximiser au lancement. Malheureusement, je ne me souviens pas quelle version d'emacs est requise pour que cela fonctionne.