(define-module (oni home services guile-xyz) #:use-module (gnu home services) #:use-module (gnu packages guile-xyz) #:use-module (gnu services configuration) #:use-module (guix packages) #:use-module (guix gexp) #:export (home-guile-swayer-service-type home-guile-swayer-configuration)) (define-configuration home-guile-swayer-configuration (package (package guile-swayer) "Package to use for setting Guile-Swayer") (extra-config (text-config '()) "Configuration for sway.")) (define (add-guile-swayer-packages config) (list (home-guile-swayer-configuration-package config))) (define (home-guile-swayer-config-files config) `(("sway/config" ,(mixed-text-file "config" "include /etc/sway/config.d/*\n" "\n" "exec_always \"guile ~/.config/sway/init.scm\"\n")) ("sway/init.scm" ,(mixed-text-file "init.scm" (serialize-text-config config (home-guile-swayer-configuration-extra-config config)))))) (define home-guile-swayer-service-type (service-type (name 'home-guile-swayer) (extensions (list (service-extension home-xdg-configuration-files-service-type home-guile-swayer-config-files) (service-extension home-profile-service-type add-guile-swayer-packages))) (default-value (home-guile-swayer-configuration)) (description "Configure guile-swayer")))