J'utilise Ubuntu, donc l'emplacement du fichier de bureau peut être différent mais je pense que le contenu devrait être similaire.
$ 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 partie importante est:
Exec=/usr/bin/emacsclient -c -a "" %F
Pour clarifier cela devrait probablement être:
Exec=/usr/bin/emacsclient --create-frame --alternate-editor "" %F
À partir de la documentation sur emacsclient, ces commutateurs procèdent comme suit:
-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
Donc, il crée un nouveau cadre en utilisant -c
puis si emacs n'est pas déjà démonisé il démarre un nouveau démon emacs avec -a ""
. Enfin, le %F
corrige pour que vous puissiez faire glisser un fichier texte sur l'icône et il l'ouvrira.
Juste à côté, vous pouvez également envisager d'inclure -F "((fullscreen . maximized))"
pour forcer le cadre à maximiser au lancement. Malheureusement, je ne me souviens pas quelle version d'emacs est requise pour que cela fonctionne.
Je suis vraiment en train de peaufiner la réponse de dgtized pour répondre au commentaire d'Akaihola. C'est à dire ce que nous voulons c'est
Je trouve que la création d'un
emacs25.desktop
fichier plutôt queemacsclient.desktop
par magie a fonctionné (franchement, je ne sais pas pourquoi).J'ai donc fait:
cp /usr/share/applications/emacs25.desktop ~/.local/share/applications
(selon votre système, il se peut que ce ne soit pas le cas
emacs25
)Ensuite, dans mon
~/.local/share/applications/emacs25.desktop
j'ai changé la ligne Exec pour être:Exec=/bin/bash --login -c "emacsclient --alternate-editor= --create-frame %F"
Le shell de connexion bash s'assure que le démon dispose de mon environnement de connexion complet.
Et j'ai supprimé la
TryExec
ligne.Enfin, j'ai édité
Name
afin que je puisse le reconnaître dans le lanceur, appuyez sur Super et cliquez avec le bouton droit pour ajouter mon nouvel élément aux favoris. J'ai toujours Emacs le premier élément pour moi, alors Super + 1 l'invoque.Name=GNU Emacs client
Et tout semble aller bien.
la source