aboutsummaryrefslogtreecommitdiffstats
path: root/oni/home/services/xinit.scm
diff options
context:
space:
mode:
authorGravatar Tom Willemse2022-06-13 21:30:23 -0700
committerGravatar Tom Willemse2022-06-13 21:30:23 -0700
commit72d65a09e2f4bd489b7d40b98855e52089e40ae0 (patch)
treea95e7da17b146053872ab294fcc8ccd34866fe65 /oni/home/services/xinit.scm
parent671659c7d2f3e893f79d337942dfc67d13303ab5 (diff)
downloadnew-dotfiles-72d65a09e2f4bd489b7d40b98855e52089e40ae0.tar.gz
new-dotfiles-72d65a09e2f4bd489b7d40b98855e52089e40ae0.zip
Add xinit setting
It's a huge hack, but it works for now.
Diffstat (limited to 'oni/home/services/xinit.scm')
-rw-r--r--oni/home/services/xinit.scm47
1 files changed, 47 insertions, 0 deletions
diff --git a/oni/home/services/xinit.scm b/oni/home/services/xinit.scm
new file mode 100644
index 0000000..c290ce1
--- /dev/null
+++ b/oni/home/services/xinit.scm
@@ -0,0 +1,47 @@
+(define-module (oni home services xinit)
+ #:use-module (srfi srfi-1)
+ #:use-module (gnu services configuration)
+ #:use-module (gnu home services)
+ #:use-module (gnu home services utils)
+ #:use-module (guix packages)
+ #:use-module (guix gexp)
+ #:use-module (oni gexp)
+
+ #:export (home-xinit-service-type
+ home-xinit-configuration
+ home-xinit-extension))
+
+(define-configuration home-xinit-configuration
+ (wm
+ (text-config '())
+ "The window manager to start"))
+
+(define-configuration/no-serialization home-xinit-extension
+ (wm
+ (text-config '())
+ "String"))
+
+(define (xinit-home-files config)
+ `((".xinit"
+ ,(mixed-executable-file
+ "xinit"
+ (serialize-text-config 'wm (home-xinit-configuration-wm config))))))
+
+(define (home-xinit-extensions original-config extension-configs)
+ (home-xinit-configuration
+ (wm
+ (if (> (length extension-configs) 0)
+ (home-xinit-extension-wm (last extension-configs))
+ (home-xinit-configuration-wm original-config)))))
+
+(define home-xinit-service-type
+ (service-type
+ (name 'home-xinit)
+ (extensions
+ (list (service-extension
+ home-files-service-type
+ xinit-home-files)))
+ (compose identity)
+ (extend home-xinit-extensions)
+ (default-value (home-xinit-configuration))
+ (description "Configure xinit.")))