Używam Ubuntu, więc lokalizacja pliku pulpitu może być inna, ale myślę, że zawartość powinna być podobna.
$ 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
Ważną częścią jest:
Exec=/usr/bin/emacsclient -c -a "" %F
Aby to wyjaśnić, prawdopodobnie powinno to być:
Exec=/usr/bin/emacsclient --create-frame --alternate-editor "" %F
Z dokumentacji emacsclient te przełączniki wykonują następujące czynności:
-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
Tworzy więc nową ramkę, a jeśli emacs nie jest jeszcze demonizowany, uruchamia nowego demona emacs -a ""
. Na koniec %F
naprawia to, dzięki czemu można przeciągnąć plik tekstowy na ikonę i otworzy go.
Na marginesie możesz także rozważyć -F "((fullscreen . maximized))"
wymuszenie maksymalizacji ramki przy uruchomieniu. Niestety nie pamiętam, która wersja emacsa jest wymagana, aby to działało.