summaryrefslogtreecommitdiff
path: root/sigils/home/services/hyprland.scm
diff options
context:
space:
mode:
authorSisiutl <sisiutl@egregore.fun>2024-11-13 02:08:24 +0100
committerSisiutl <sisiutl@egregore.fun>2024-11-13 02:08:24 +0100
commitc2f49bc6d2545f3efbd011ca84c6b57b9f7bc5d2 (patch)
treee9f8a23e4b3e8995310709f7bb7a8c698f60f39c /sigils/home/services/hyprland.scm
parent0ed0fc6f39663fcf11b769ec94540dec26b7bd96 (diff)
big parser changes -- now with gexps! :)
Diffstat (limited to 'sigils/home/services/hyprland.scm')
-rw-r--r--sigils/home/services/hyprland.scm67
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