diff options
Diffstat (limited to 'sigils/home/services/hyprland.scm')
-rw-r--r-- | sigils/home/services/hyprland.scm | 67 |
1 files changed, 36 insertions, 31 deletions
diff --git a/sigils/home/services/hyprland.scm b/sigils/home/services/hyprland.scm index 01856fc..6bdcfe0 100644 --- a/sigils/home/services/hyprland.scm +++ b/sigils/home/services/hyprland.scm @@ -14,8 +14,12 @@ home-hyprland-configuration home-hyprland-service-type + home-hyprpaper-configuration - home-hyprpaper-service-type)) + home-hyprpaper-service-type + + home-hyprlock-configuration + home-hyprlock-service-type)) (define hypr-config? list?) @@ -34,34 +38,35 @@ (() "") (('rgba color) (format #f "rgba(~a)" (symbol->string color))) (('rgb color) (format #f "rgb(~a)" (symbol->string color))) + ;; I'd say it's not the most elegant way. + (('rgba r g b a) (format #f "rgba(~a, ~a, ~a, ~a)" r g b a)) + (('rgb r g b) (format #f "rgb(~a, ~a, ~a)" r g b)) ;; Turn a list into a series of comma-separated terms ((e lst ...) - (apply string-append - `(,(serialize-term e) - ,@(append-map - (lambda (n) - `(", " ,(serialize-term n))) lst)))) + `(,(serialize-term e) + ,@(append-map + (lambda (n) + `(", " ,(serialize-term n))) lst))) (e e))) (define* (serialize-config config #:optional (nestness 0)) (match config ((term ((expressions ...) ...)) - (apply string-append - `(,(align nestness) ,(serialize-term term) " {\n" - ,@(map (lambda (e) + `(,(align nestness) ,(serialize-term term) " {\n" + ,@(append-map (lambda (e) (serialize-config e (1+ nestness))) expressions) - ,(align nestness) "}\n"))) + ,(align nestness) "}\n")) ((term . rest) - (format #f "~a~a = ~a\n" - (align nestness) - term - (serialize-term rest))))) + `(,(align nestness) + ,(serialize-term term) + " = " + ,@(serialize-term rest) + "\n")))) - (apply string-append - (map serialize-config var))) + (append-map serialize-config var)) ;;; Hyprland @@ -190,13 +195,13 @@ (define (hyprland-configuration->file config) `(("hypr/hyprland.conf" ,(apply - mixed-text-file - "hyprland-config" - `(,@(append-map (lambda (plugin) - `("plugin = " ,plugin "/lib/lib" ,(package-name plugin) ".so\n")) - (home-hyprland-configuration-plugins config)) - ,(serialize-hypr-config - (home-hyprland-configuration-config config))))))) + mixed-text-file "hyprland-config" + `(,@(append-map + (lambda (plugin) + `("plugin = " ,plugin "/lib/lib" ,(package-name plugin) ".so\n")) + (home-hyprland-configuration-plugins config)) + ,@(serialize-hypr-config + (home-hyprland-configuration-config config))))))) (define hyprctl-reload-gexp #~(begin @@ -228,10 +233,10 @@ (define (hyprpaper-configuration->file config) `(("hypr/hyprpaper.conf" - ,(mixed-text-file - "hyprpaper-config" - (serialize-hypr-config - (home-hyprpaper-configuration-config config)))))) + ,(apply mixed-text-file + "hyprpaper-config" + (serialize-hypr-config + (home-hyprpaper-configuration-config config)))))) (define home-hyprpaper-service-type (service-type @@ -260,10 +265,10 @@ (define (hyprlock-configuration->file config) `(("hypr/hyprlock.conf" - ,(mixed-text-file - "hyprlock-config" - (serialize-hypr-config - (home-hyprlock-configuration-config config)))))) + ,(apply mixed-text-file + "hyprlock-config" + (serialize-hypr-config + (home-hyprlock-configuration-config config)))))) (define home-hyprlock-service-type (service-type |