From 72d65a09e2f4bd489b7d40b98855e52089e40ae0 Mon Sep 17 00:00:00 2001 From: Tom Willemse Date: Mon, 13 Jun 2022 21:30:23 -0700 Subject: Add xinit setting It's a huge hack, but it works for now. --- oni/home/services/xinit.scm | 47 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 oni/home/services/xinit.scm (limited to 'oni/home/services/xinit.scm') 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."))) -- cgit v1.2.3-54-g00ecf