From 6517fe1c325efa7b98734165baf07dd161b24120 Mon Sep 17 00:00:00 2001 From: Hilton Chain Date: Sun, 12 Apr 2026 15:40:15 +0800 Subject: [PATCH] home: services: gtk[234]: Set up environment variables and files only when needed. * modules/rosenthal/home/services/gtk.scm (home-gtk2-environment-variables) (home-gtk2-xdg-configuration-files, home-gtk3-xdg-configuration-files) (home-gtk4-xdg-configuration-files): Return empty list when there's no configuration. Fixes: #53 --- modules/rosenthal/home/services/gtk.scm | 46 +++++++++++++++---------- 1 file changed, 27 insertions(+), 19 deletions(-) diff --git a/modules/rosenthal/home/services/gtk.scm b/modules/rosenthal/home/services/gtk.scm index ade5e37..bb158ad 100644 --- a/modules/rosenthal/home/services/gtk.scm +++ b/modules/rosenthal/home/services/gtk.scm @@ -14,37 +14,45 @@ home-gtk3-service-type home-gtk4-service-type)) -(define home-gtk2-environment-variables - ;; https://wiki.archlinux.org/title/XDG_Base_Directory - '(("GTK2_RC_FILES" . "$XDG_CONFIG_HOME/gtk-2.0/gtkrc"))) +(define (home-gtk2-environment-variables config) + (if (null? config) + '() + ;; https://wiki.archlinux.org/title/XDG_Base_Directory + '(("GTK2_RC_FILES" . "$XDG_CONFIG_HOME/gtk-2.0/gtkrc")))) (define (home-gtk2-xdg-configuration-files config) - `(("gtk-2.0/gtkrc" - ,(computed-file "gtkrc" - #~(begin - (use-modules (ice-9 match)) - (call-with-output-file #$output - (lambda (port) - (for-each (match-lambda - ((key . val) - (format port "~a = ~a~%" key val))) - '#$config)))) - #:options '(#:substitutable? #f))))) + (if (null? config) + '() + `(("gtk-2.0/gtkrc" + ,(computed-file "gtkrc" + #~(begin + (use-modules (ice-9 match)) + (call-with-output-file #$output + (lambda (port) + (for-each (match-lambda + ((key . val) + (format port "~a = ~a~%" key val))) + '#$config)))) + #:options '(#:substitutable? #f)))))) (define (home-gtk3-xdg-configuration-files config) - `(("gtk-3.0/settings.ini" - ,(ini-file "settings.ini" #~'(("Settings" #$@config)))))) + (if (null? config) + '() + `(("gtk-3.0/settings.ini" + ,(ini-file "settings.ini" #~'(("Settings" #$@config))))))) (define (home-gtk4-xdg-configuration-files config) - `(("gtk-4.0/settings.ini" - ,(ini-file "settings.ini" #~'(("Settings" #$@config)))))) + (if (null? config) + '() + `(("gtk-4.0/settings.ini" + ,(ini-file "settings.ini" #~'(("Settings" #$@config))))))) (define home-gtk2-service-type (service-type (name 'home-gtk2) (extensions (list (service-extension home-environment-variables-service-type - (const home-gtk2-environment-variables)) + home-gtk2-environment-variables) (service-extension home-xdg-configuration-files-service-type home-gtk2-xdg-configuration-files))) (compose concatenate)