(define mpd (make #:provides '(mpd) #:respawn? #t #:start (make-forkexec-constructor '("mpd" "--no-daemon")) #:stop (make-kill-destructor))) (define mpd-watcher (make #:provides '(mpd-watcher) #:respawn? #t #:start (make-forkexec-constructor '("mpd_watcher")) #:stop (make-kill-destructor) #:requires '(mpd))) (define mcron (make #:provides '(mcron) #:respawn? #t #:start (make-forkexec-constructor '("mcron")) #:stop (make-kill-destructor))) (define aw-server (make #:provides '(aw-server) #:respawn? #t #:start (make-forkexec-constructor '("aw-server")) #:stop (make-kill-destructor))) (define aw-watcher-afk (make #:provides '(aw-watcher-afk) #:requires '(aw-server) #:respawn? #t #:start (make-forkexec-constructor '("aw-watcher-afk")) #:stop (make-kill-destructor))) (define aw-watcher-window (make #:provides '(aw-watcher-window) #:requires '(aw-server) #:respawn? #t #:start (make-forkexec-constructor '("aw-watcher-window")) #:stop (make-kill-destructor))) (define pulseeffects (make #:provides '(pulseeffects) #:respawn? #t #:start (make-forkexec-constructor '("flatpak" "run" "com.github.wwmm.pulseeffects" "--gapplication-service")) #:stop (make-kill-destructor))) (define xsettingsd (make #:provides '(xsettingsd) #:respawn? #t #:start (make-forkexec-constructor '("xsettingsd")) #:stop (make-kill-destructor))) (define discord-rich-presence (make #:provides '(discord-rich-presence) #:one-shot? #t #:start (make-system-constructor "ln -sf {app/com.discordapp.Discord,$XDG_RUNTIME_DIR}/discord-ipc-0"))) (register-services mpd mpd-watcher mcron aw-server aw-watcher-afk aw-watcher-window pulseeffects xsettingsd discord-rich-presence) (action 'shepherd 'daemonize) (for-each start '(mpd mpd-watcher mcron aw-server aw-watcher-afk aw-watcher-window pulseeffects xsettingsd discord-rich-presence))