‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
On Friday, July 9th, 2021 at 12:28 AM, excalamus--- via <[email protected]> wrote: > 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. There's a blog post in Guix's blog about this configuration: https://guix.gnu.org/en/blog/2020/gnu-shepherd-user-services/ I remember to have followed that and I have it working. I had to activate the user-level Shepherd by hand in any file that is executed when the system is started. In my case I have it in my i3 config. You can put it in .xsession like the thread you shared suggests. Hope this helps. Ekaitz
