Sto usando Ubuntu, quindi la posizione del file desktop potrebbe essere diversa ma penso che il contenuto dovrebbe essere simile.
$ 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 è:
Exec=/usr/bin/emacsclient -c -a "" %F
Per chiarire che probabilmente dovrebbe essere:
Exec=/usr/bin/emacsclient --create-frame --alternate-editor "" %F
Dalla documentazione su emacsclient tali switch effettuano le seguenti operazioni:
-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
Quindi crea un nuovo frame usando -c
e quindi se emacs non è già demonizzato, avvia un nuovo demone emacs con -a ""
. Infine, lo %F
risolve in modo da poter trascinare un file di testo sull'icona e lo aprirà.
Proprio come un lato si potrebbe anche considerare l'inclusione -F "((fullscreen . maximized))"
di forzare il frame per massimizzare al lancio. Sfortunatamente, non riesco a ricordare quale versione di Emacs è necessaria affinché funzioni.