diff options
author | EuAndreh <eu@euandre.org> | 2022-10-30 19:11:19 -0300 |
---|---|---|
committer | EuAndreh <eu@euandre.org> | 2022-10-30 19:11:19 -0300 |
commit | fd3641e591a5ed98cd0f9e02cb4dc930541dce0f (patch) | |
tree | cd1da95713da001c70e70c6ed621046954074002 | |
parent | Move dunst to Guix Home from i3 exec on init (diff) | |
download | dotfiles-fd3641e591a5ed98cd0f9e02cb4dc930541dce0f.tar.gz dotfiles-fd3641e591a5ed98cd0f9e02cb4dc930541dce0f.tar.xz |
etc/guix/home.scm: Create (home-service ...) to remove duplication
-rw-r--r-- | etc/guix/home.scm | 97 |
1 files changed, 20 insertions, 77 deletions
diff --git a/etc/guix/home.scm b/etc/guix/home.scm index 05dd465..258ffb3 100644 --- a/etc/guix/home.scm +++ b/etc/guix/home.scm @@ -211,89 +211,32 @@ #~(job "30 0 * * *" "cronjob x update AND upgrade") #~(job "30 0 * * *" "cronjob backup -q cron"))) -(define (clipmenu-shepherd-services _config) - (list - (shepherd-service - (provision '(clipmenu)) - (documentation - #"- - Shepherd service that manages clipmenu."#) - (start - #~(make-forkexec-constructor - (list #$(file-append clipmenu "/bin/clipmenud")))) - (stop #~(make-kill-destructor))))) - -(define clipmenu-service-type +(define (home-service name package bin) (service-type - (name 'clipmenu) - (extensions - (list - (service-extension home-shepherd-service-type - clipmenu-shepherd-services) - (service-extension home-profile-service-type - (lambda _ (list clipmenu))))) - (default-value '()) - (description - #"- - Service that runs clipmenu as a daemon under Shepherd. - - It has no configuration."#))) - -(define (dunst-shepherd-services _config) - (list - (shepherd-service - (provision '(dunst)) - (documentation - #"- - Shepherd service that manages dunst."#) - (start - #~(make-forkexec-constructor - (list #$(file-append dunst "/bin/dunst")))) - (stop #~(make-kill-destructor))))) - -(define dunst-service-type - (service-type - (name 'dunst) + (name name) (extensions (list (service-extension home-shepherd-service-type - dunst-shepherd-services) + (lambda _ + (list + (shepherd-service + (provision (list name)) + (documentation + (format #f "Shepherd service that manages ~a." name)) + (start + #~(make-forkexec-constructor + (list #$(file-append package bin)))) + (stop #~(make-kill-destructor)))))) (service-extension home-profile-service-type - (lambda _ (list dunst))))) + (lambda _ (list package))))) (default-value '()) (description - #"- - Service that runs dunst as a daemon under Shepherd. - - It has no configuration."#))) - -(define (poweralertd-shepherd-services _config) - (list - (shepherd-service - (provision '(poweralertd)) - (documentation + (format #f #"- - Shepherd service that manages poweralertd."#) - (start - #~(make-forkexec-constructor - (list #$(file-append poweralertd "/bin/poweralertd")))) - (stop #~(make-kill-destructor))))) - -(define poweralertd-service-type - (service-type - (name 'poweralertd) - (extensions - (list - (service-extension home-shepherd-service-type - poweralertd-shepherd-services) - (service-extension home-profile-service-type - (lambda _ (list poweralertd))))) - (default-value '()) - (description - #"- - Service that runs poweralertd as a daemon under Shepherd. + Service that runs ~a as a daemon under Shepherd. - It has no configuration."#))) + It has no configuration."# + name)))) (home-environment (packages @@ -596,9 +539,9 @@ "/sh/cronjob.sh")))))) (services (list - (service clipmenu-service-type) - (service dunst-service-type) - (service poweralertd-service-type) + (service (home-service 'clipmenu clipmenu "/bin/clipmenud")) + (service (home-service 'dunst dunst "/bin/dunst")) + (service (home-service 'poweralertd poweralertd "/bin/poweralertd")) (simple-service 'my-shell-profile home-shell-profile-service-type (list (plain-file "my-profile" ". ~/.usr/etc/sh/rc"))) (service home-mcron-service-type |