mirror of
				https://codeberg.org/hako/Rosenthal.git
				synced 2025-11-04 11:44:48 +00:00 
			
		
		
		
	services: Add home-theme-service-type.
* modules/rosenthal/services/desktop.scm (home-theme-service-type): New variable. (home-theme-configuration): New data type. * .dir-locals.el (scheme-mode): Add its indentation.
This commit is contained in:
		
							parent
							
								
									6a9c5289d0
								
							
						
					
					
						commit
						07e2be7791
					
				@ -61,6 +61,7 @@
 | 
				
			|||||||
   (eval . (put 'home-rofi-configuration 'scheme-indent-function 0))
 | 
					   (eval . (put 'home-rofi-configuration 'scheme-indent-function 0))
 | 
				
			||||||
   (eval . (put 'home-socks2http-configuration 'scheme-indent-function 0))
 | 
					   (eval . (put 'home-socks2http-configuration 'scheme-indent-function 0))
 | 
				
			||||||
   (eval . (put 'home-swaybg-configuration 'scheme-indent-function 0))
 | 
					   (eval . (put 'home-swaybg-configuration 'scheme-indent-function 0))
 | 
				
			||||||
 | 
					   (eval . (put 'home-theme-configuration 'scheme-indent-function 0))
 | 
				
			||||||
   (eval . (put 'home-wakapi-configuration 'scheme-indent-function 0))
 | 
					   (eval . (put 'home-wakapi-configuration 'scheme-indent-function 0))
 | 
				
			||||||
   (eval . (put 'home-waybar-configuration 'scheme-indent-function 0))
 | 
					   (eval . (put 'home-waybar-configuration 'scheme-indent-function 0))
 | 
				
			||||||
   (eval . (put 'iwd-configuration 'scheme-indent-function 0))
 | 
					   (eval . (put 'iwd-configuration 'scheme-indent-function 0))
 | 
				
			||||||
 | 
				
			|||||||
@ -51,6 +51,9 @@
 | 
				
			|||||||
            home-swaybg-configuration
 | 
					            home-swaybg-configuration
 | 
				
			||||||
            home-swaybg-service-type
 | 
					            home-swaybg-service-type
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            home-theme-configuration
 | 
				
			||||||
 | 
					            home-theme-service-type
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            home-waybar-configuration
 | 
					            home-waybar-configuration
 | 
				
			||||||
            home-waybar-service-type
 | 
					            home-waybar-service-type
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -409,6 +412,96 @@ configuration {
 | 
				
			|||||||
    (description
 | 
					    (description
 | 
				
			||||||
     "Run swaybg, a screen wallpaper utility for Wayland compositors.")))
 | 
					     "Run swaybg, a screen wallpaper utility for Wayland compositors.")))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					;;;
 | 
				
			||||||
 | 
					;;; theme
 | 
				
			||||||
 | 
					;;;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-record-type* <home-theme-configuration>
 | 
				
			||||||
 | 
					  home-theme-configuration
 | 
				
			||||||
 | 
					  make-home-theme-configuration
 | 
				
			||||||
 | 
					  home-theme-configuration?
 | 
				
			||||||
 | 
					  this-home-theme-configuration
 | 
				
			||||||
 | 
					  (packages     home-theme-configuration-packages
 | 
				
			||||||
 | 
					                (default '()))
 | 
				
			||||||
 | 
					  (icon-theme   home-theme-configuration-icon-theme
 | 
				
			||||||
 | 
					                (default "Adwaita"))
 | 
				
			||||||
 | 
					  (cursor-theme home-theme-configuration-cursor-theme
 | 
				
			||||||
 | 
					                (default "Adwaita"))
 | 
				
			||||||
 | 
					  (cursor-size  home-theme-configuration-cursor-size
 | 
				
			||||||
 | 
					                (default 24))
 | 
				
			||||||
 | 
					  (key-theme    home-theme-configuration-key-theme
 | 
				
			||||||
 | 
					                (default "Emacs"))
 | 
				
			||||||
 | 
					  ;; Extensions.
 | 
				
			||||||
 | 
					  (environment-variables home-theme-configuration-environment-variables
 | 
				
			||||||
 | 
					                         (default (%home-theme-environment-variables
 | 
				
			||||||
 | 
					                                   this-home-theme-configuration))
 | 
				
			||||||
 | 
					                         (thunked))
 | 
				
			||||||
 | 
					  (profile               home-theme-configuration-profile
 | 
				
			||||||
 | 
					                         (default (%home-theme-profile
 | 
				
			||||||
 | 
					                                   this-home-theme-configuration))
 | 
				
			||||||
 | 
					                         (thunked))
 | 
				
			||||||
 | 
					  (files                 home-theme-configuration-files
 | 
				
			||||||
 | 
					                         (default (%home-theme-files
 | 
				
			||||||
 | 
					                                   this-home-theme-configuration))
 | 
				
			||||||
 | 
					                         (thunked))
 | 
				
			||||||
 | 
					  (xdg-config            home-theme-configuration-xdg-config
 | 
				
			||||||
 | 
					                         (default (%home-theme-xdg-config
 | 
				
			||||||
 | 
					                                   this-home-theme-configuration))
 | 
				
			||||||
 | 
					                         (thunked)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define (%home-theme-environment-variables _)
 | 
				
			||||||
 | 
					  '(("QT_QPA_PLATFORMTHEME" . "gtk3")
 | 
				
			||||||
 | 
					    ("QT_WAYLAND_DECORATION" . "adwaita")))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define %home-theme-profile
 | 
				
			||||||
 | 
					  (match-record-lambda <home-theme-configuration>
 | 
				
			||||||
 | 
					      (packages)
 | 
				
			||||||
 | 
					    (append (specs->pkgs "adwaita-icon-theme"
 | 
				
			||||||
 | 
					                         "hicolor-icon-theme"
 | 
				
			||||||
 | 
					                         "qtwayland")
 | 
				
			||||||
 | 
					            packages)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define %home-theme-files
 | 
				
			||||||
 | 
					  (match-record-lambda <home-theme-configuration>
 | 
				
			||||||
 | 
					      (icon-theme)
 | 
				
			||||||
 | 
					    `((".icons/default/index.theme"
 | 
				
			||||||
 | 
					       ,(plain-file "index.theme"
 | 
				
			||||||
 | 
					          (format #f "~
 | 
				
			||||||
 | 
					[icon theme]
 | 
				
			||||||
 | 
					Inherits = ~a~%"
 | 
				
			||||||
 | 
					                  icon-theme))))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define %home-theme-xdg-config
 | 
				
			||||||
 | 
					  (match-record-lambda <home-theme-configuration>
 | 
				
			||||||
 | 
					      (icon-theme cursor-theme cursor-size key-theme)
 | 
				
			||||||
 | 
					    `(("gtk-3.0/settings.ini"
 | 
				
			||||||
 | 
					       ,(plain-file "settings.ini"
 | 
				
			||||||
 | 
					          (format #f "~
 | 
				
			||||||
 | 
					[Settings]
 | 
				
			||||||
 | 
					gtk-theme-name = Adwaita
 | 
				
			||||||
 | 
					gtk-icon-theme-name = ~a
 | 
				
			||||||
 | 
					gtk-font-name = Sans 11
 | 
				
			||||||
 | 
					gtk-cursor-theme-name = ~a
 | 
				
			||||||
 | 
					gtk-cursor-theme-size = ~a
 | 
				
			||||||
 | 
					gtk-key-theme-name = ~a~%"
 | 
				
			||||||
 | 
					                  icon-theme cursor-theme cursor-size key-theme))))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define home-theme-service-type
 | 
				
			||||||
 | 
					  (service-type
 | 
				
			||||||
 | 
					    (name 'theme)
 | 
				
			||||||
 | 
					    (extensions
 | 
				
			||||||
 | 
					     (list (service-extension home-environment-variables-service-type
 | 
				
			||||||
 | 
					                              home-theme-configuration-environment-variables)
 | 
				
			||||||
 | 
					           (service-extension home-profile-service-type
 | 
				
			||||||
 | 
					                              home-theme-configuration-profile)
 | 
				
			||||||
 | 
					           (service-extension home-files-service-type
 | 
				
			||||||
 | 
					                              home-theme-configuration-files)
 | 
				
			||||||
 | 
					           (service-extension home-xdg-configuration-files-service-type
 | 
				
			||||||
 | 
					                              home-theme-configuration-xdg-config)))
 | 
				
			||||||
 | 
					    (default-value (home-theme-configuration))
 | 
				
			||||||
 | 
					    (description "Set up desktop themes.")))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
;;;
 | 
					;;;
 | 
				
			||||||
;;; waybar
 | 
					;;; waybar
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user