Accueil > Informatique > 20c tips > emacs & systemd

emacs & systemd

mercredi 28 octobre 2020, par Vincent

L’objectif

Lancer emacs comme un service via systemd et utiliser un client emacs pour se servir de l’éditeur. Cela permet d’obtenir une lancement en apparence plus rapide.

Pré-requis

Mise en place

Créer un fichier service

~/.config/systemd/user/emacs.service

[Unit]
Description=Emacs text editor
Documentation=info:emacs man:emacs(1) https://gnu.org/software/emacs/

[Service]
Type=simple
ExecStart=/usr/bin/emacs --fg-daemon
ExecStop=/usr/bin/emacsclient --eval "(kill-emacs)"
Environment=SSH_AUTH_SOCK=%t/keyring/ssh
Restart=on-failure

[Install]
WantedBy=default.target

Enregistrer le service

> systemctl --user enable emacs

Lancer le service

> systemctl --user start emacs

Écrire un fichier Desktop

Il suffit de prendre le fichier de votre distribution en général /usr/share/applications/emacs.desktop et de remplacer la ligne

Exec= ....

par

Exec=emacsclient -c

~/.local/share/applications/myemacs.desktop

[Desktop Entry]
Version=1.0
Name=Emacs (client)
GenericName=Text Editor
GenericName[fr]=Éditeur de texte
Comment=GNU Emacs is an extensible, customizable text editor - and more
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=emacsclient -c
Icon=emacs
Type=Application
Terminal=false
Categories=Utility;Development;TextEditor;
StartupWMClass=Emacs
Keywords=Text;Editor;

Enfin, il suffit de définir emacsclient pour ouvrir vos fichiers préférés !
gio mime application/x-tex myemacs.desktop
ou

gio mime plain/text myemacs.desktop

Remarques

  • L’option —fg-daemon n’est disponible qu’après la version 26.1
  • Lorsque l’on ferme la fenêtre le serveur reste ouvert et les buffers également. Si l’on relance un client on retrouve les buffers dans l’état où ils étaient

Voir en ligne : Emacs Wiki