Estoy usando Ubuntu, por lo que la ubicación del archivo de escritorio puede ser diferente, pero creo que el contenido debería ser similar.
$ 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 parte importante es:
Exec=/usr/bin/emacsclient -c -a "" %F
Para aclarar que probablemente debería ser:
Exec=/usr/bin/emacsclient --create-frame --alternate-editor "" %F
De la documentación en emacsclient, esos conmutadores hacen lo siguiente:
-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
Por lo tanto, -c
crea un nuevo marco utilizando y luego, si emacs aún no está demonizado, comienza un nuevo demonio con emacs -a ""
. Finalmente, lo %F
corrige para que pueda arrastrar un archivo de texto al icono y lo abrirá.
Solo como un lado, también puede considerar incluir -F "((fullscreen . maximized))"
para forzar que el marco se maximice en el lanzamiento. Desafortunadamente, no puedo recordar qué versión de emacs se requiere para que eso funcione.