[emacs,systemd] démarrage d'emacs daemon personnalisé
Publié : dim. 20 déc. 2015, 10:42
Bonjour,
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
Cette approce fonctionne mais pas en tout point, malgré mon scratch buffer est encore en mode elisp au lieu de tuareg.
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
Le problême c'est que les services echoues au démarrage mais je ne sais pas pourquoi... Mon bureau i3 mets du temps à démarré (+ de 4sec au lieu de 0sec), aucun démon ne tourne après démarrage.
Après cela dès que je souhaite accéder au service avec j'obtiens
de plus mes raccourcis i3 vers ne fonctionnent plus, je ne peux que les lancer via un terminal.
Voici par exemple le fichier service pour le demon ocaml :
Et dans mon fichier .emacs on peut trouver :
Je rappelle que mon but est de démarrer diffrents démons emacs possédant différentes configurations, ce qui me pose problème étant de changer le mode du par défaut du scratch de chaque démon.
Merci
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