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.
Ich optimiere gerade die Antwort von dgtized, um den Kommentar von akaihola anzusprechen. Dh was wir wollen, ist zu
Ich finde, dass das Erstellen einer
emacs25.desktop
Datei eher alsemacsclient.desktop
magisch funktioniert (ehrlich gesagt, ich weiß nicht warum).So tat ich:
cp /usr/share/applications/emacs25.desktop ~/.local/share/applications
(Abhängig von Ihrem System ist dies möglicherweise nicht der Fall.
emacs25
)Dann habe
~/.local/share/applications/emacs25.desktop
ich in meinem die Exec-Zeile geändert, um zu sein:Exec=/bin/bash --login -c "emacsclient --alternate-editor= --create-frame %F"
Die Bash-Login-Shell stellt sicher, dass der Daemon über meine vollständige Login-Umgebung verfügt.
Und ich habe die
TryExec
Linie entfernt.Schließlich bearbeitete
Name
ich, damit ich es im Launcher erkennen konnte, tippte auf Super und klickte mit der rechten Maustaste, um meinen neuen Artikel zu den Favoriten hinzuzufügen. Ich habe immer den ersten Emacs-Gegenstand für mich, also ruft Super + 1 ihn herbei.Name=GNU Emacs client
Und alles scheint gut zu sein.
quelle