dotfiles/oni/home/services/stumpwm.scm

68 lines
2.3 KiB
Scheme
Raw Normal View History

2023-03-17 00:35:06 +01:00
(define-module (oni home services stumpwm)
#:use-module ((gnu services configuration)
#:select (serialize-package
define-configuration))
#:use-module ((gnu packages lisp)
#:select (sbcl))
2023-03-17 00:35:06 +01:00
#:use-module ((gnu packages wm)
#:select (stumpwm
stumpish
sbcl-stumpwm-swm-gaps))
2023-03-17 00:35:06 +01:00
#:use-module ((gnu home services)
#:select (service-type
service-extension
home-profile-service-type
home-xdg-configuration-files-service-type
home-run-on-change-service-type))
2023-03-17 00:35:06 +01:00
#:use-module ((guix gexp)
#:select (local-file
gexp
file-append))
2023-03-17 00:35:06 +01:00
#:use-module ((guix packages)
#:select (package?))
#:export (home-stumpwm-service-type
home-stumpwm-configuration))
(define-configuration home-stumpwm-configuration
(package
(package stumpwm)
"Package to use for setting Stumpwm")
(gaps-package
(package sbcl-stumpwm-swm-gaps)
"Package to use for setting Stumpwm Gaps")
(stumpish-package
(package stumpish)
"Package to use for setting Stumpish"))
2023-03-17 00:35:06 +01:00
(define (add-stumpwm-packages config)
(list sbcl
(home-stumpwm-configuration-package config)
(list stumpwm "lib")
(home-stumpwm-configuration-stumpish-package config)
(home-stumpwm-configuration-gaps-package config)))
2023-03-17 00:35:06 +01:00
(define (home-stumpwm-config-files config)
`(("stumpwm/config" ,(local-file "stumpwm/config"))))
(define (reload-stumpwm-config-gexp _)
`(("files/.config/stumpwm/config"
,#~(system* #$(file-append stumpish "/bin/stumpish") "reload"))))
2023-03-17 00:35:06 +01:00
(define home-stumpwm-service-type
(service-type
(name 'home-stumpwm)
(extensions
(list (service-extension
home-profile-service-type
add-stumpwm-packages)
(service-extension
home-xdg-configuration-files-service-type
home-stumpwm-config-files)
(service-extension
home-run-on-change-service-type
reload-stumpwm-config-gexp)))
2023-03-17 00:35:06 +01:00
(compose identity)
(default-value (home-stumpwm-configuration))
(description "Install and configure stumpwm.")))