je suis encore et toujours (pour ceux qui ont suivi mon post précédant) en train d'essayer d'intégrer au mieux emacs dans arch+i3.
Je démarre déja plusieurs daemon emacs différents en tant que services systemd utilisateurs, j'en suis actuellement à vouloir personnaliser chaque démon indépendemment.
J'ai fait une première tentative en créeant des fichiers elisp que je passe en argument aux démons avec l'option
Code : Tout sélectionner
--eval '(load-file "init-daemon_x.el")'
Code : Tout sélectionner
(setq initial-major-mode 'tuareg-mode)
Après une discussion sur stack overflow il m'a été suggéré que le buffer devait être ouvert avant l'évaluation du code passé en argument au démon, et qu'une solution serait de tester directement à l'initialisation d'emacs quel serveru est lancé. Pour cela il faudrait utiliser une variable d'environnement avec systemd et tester cette dans emacs via
Code : Tout sélectionner
getenv
Après cela dès que je souhaite accéder au service avec
Code : Tout sélectionner
systemctl --user
Code : Tout sélectionner
Failed to connect to bus: No such file or directory
Code : Tout sélectionner
systemctl poweroff
systemctl reboot
Voici par exemple le fichier service pour le demon ocaml :
Code : Tout sélectionner
[Unit]
Description=Emacs: the extensible, self-documenting text editor
[Service]
Type=forking
ExecStart=/usr/bin/emacs --daemon=ocaml
ExecStop=/usr/bin/emacsclient --server-file=ocaml --eval "(kill-emacs)"
Environment=SSH_AUTH_SOCK=%t/keyring/ssh
Environment=MY_EMACS_DAEMON=ocaml
Restart=always
[Install]
WantedBy=default.target
Code : Tout sélectionner
(when (string= (getenv "MY_EMACS_DAEMON") "ocaml")
(load-file "~/.emacs.d/elisp/daemon/daemon-ocaml.el"))
Merci