Я использую Ubuntu, поэтому расположение файла рабочего стола может отличаться, но я думаю, что содержимое должно быть похожим.
$ 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
Важной частью является:
Exec=/usr/bin/emacsclient -c -a "" %F
Чтобы уточнить это, вероятно, должно быть:
Exec=/usr/bin/emacsclient --create-frame --alternate-editor "" %F
Из документации по emacsclient эти переключатели делают следующее:
-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
Таким образом, он создает новый фрейм, -c
а затем, если emacs еще не демонизирован, он запускает новый демон emacs -a ""
. Наконец, это %F
исправляет, так что вы можете перетащить текстовый файл на значок, и он откроет его.
Кроме того, вы можете также включить, -F "((fullscreen . maximized))"
чтобы заставить кадр максимизировать при запуске. К сожалению, я не могу вспомнить, какая версия emacs требуется для этого.