I'm setting up the Emacs daemon following a thread on the mailing list: https://lists.gnu.org/archive/html/help-guix/2019-11/msg00148.html. I have services.scm and init.scm defined. I can call `shepherd -c ~/.config/shepherd/init.scm` and the service starts. I can kill the terminal and connect a client with `emacsclient -c`. Trouble is, I can't figure out how to start the service on boot.
The config files I'm using are: ;; services.scm (define emacsd (make <service> #:provides '(emacsd) #:start (make-system-constructor "emacs --daemon") #:stop (make-system-destructor "emacsclient --eval \"(kill-emacs)\""))) ;; init.scm ;;; Shepherd User Services (load "/home/ahab/.config/shepherd/services.scm") (register-services emacsd) ;; Send shepherd into the background. (action 'shepherd 'daemonize) ;; Services to start when shepherd starts: (for-each start '(emacsd)) Based on what (shepherd) Jump Start paragraph 3 says, I'm confused about why Shepard doesn't find the config files. Is it because Shepherd starts as superuser on boot? Meanwhile, I was advised to define a service in my config. I'm in the process of reading the documentation (really, figuring out how to set Geiser up to read the documentation) so that I can understand the relevant parts. Is the config the generally recommended approach for Guix SD versus the $HOME/.config/shepherd directory? Surely someone else has set up an Emacs daemon service? The linked thread mentioned this being a good idea for a cookbook recipe. I'd be happy to contribute to that as I'm confident I'm not alone in wanting an Emacs daemon service defined.