Ich verwende Ubuntu, daher kann der Speicherort der Desktop-Datei unterschiedlich sein, aber ich denke, der Inhalt sollte ähnlich sein.
$ 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
Der wichtige Teil ist:
Exec=/usr/bin/emacsclient -c -a "" %F
Zur Verdeutlichung sollte das wohl sein:
Exec=/usr/bin/emacsclient --create-frame --alternate-editor "" %F
In der Dokumentation zu emacsclient gehen diese Schalter folgendermaßen vor:
-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
Also macht es einen neuen Frame mit -c
und startet einen neuen Emacs-Daemon mit, wenn Emacs noch nicht daemonisiert ist -a ""
. Schließlich wird es %F
behoben, so dass Sie eine Textdatei auf das Symbol ziehen können, und es wird geöffnet.
Nebenbei könnten Sie sich auch mit dem Einbeziehen -F "((fullscreen . maximized))"
befassen, um zu erzwingen, dass der Frame beim Start maximiert wird. Leider kann ich mich nicht erinnern, welche Emacs-Version dafür benötigt wird.