diff options
Diffstat (limited to 'sigils/home/services')
-rw-r--r-- | sigils/home/services/hyprland.scm | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/sigils/home/services/hyprland.scm b/sigils/home/services/hyprland.scm index aeb22b3..696a88e 100644 --- a/sigils/home/services/hyprland.scm +++ b/sigils/home/services/hyprland.scm @@ -1,5 +1,6 @@ (define-module (sigils home services hyprland) #:use-module (guix gexp) + #:use-module (guix packages) #:use-module (gnu home services) #:use-module (gnu services configuration) #:use-module (sigils packages hyprland) @@ -174,17 +175,24 @@ (windowrulev2 "suppressevent maximize" class:.*) (windowrulev2 nofocus class:^$ title:^$ xwayland:1 floating:1 fullscreen:0 pinned:0))) -(define-configuration home-hyprland-configuration +(define-configuration/no-serialization home-hyprland-configuration + (plugins + (list-of-packages '()) + "Additional plugins to load with Hyprland.") (config (hypr-config %default-hyprland-config) "Hyprland configuration")) -(define (add-hyprland-configuration config) +(define (hyprland-configuration->file config) `(("hypr/hyprland.conf" - ,(mixed-text-file + ,(apply + mixed-text-file "hyprland-config" - (serialize-hypr-config - (home-hyprland-configuration-config 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 @@ -196,7 +204,7 @@ (extensions (list (service-extension home-xdg-configuration-files-service-type - add-hyprland-configuration) + hyprland-configuration->file) (service-extension home-activation-service-type (const hyprctl-reload-gexp)))) |