aboutsummaryrefslogtreecommitdiffstats
path: root/oni/home/services/sawfish.scm
diff options
context:
space:
mode:
authorGravatar Tom Willemse2024-11-18 21:41:47 -0800
committerGravatar Tom Willemse2024-11-18 21:41:47 -0800
commit21d8c958e83cab295a528fe141231149f3804077 (patch)
treef85e7e5b7473b1b98e0b8f2fa42beca3d376b894 /oni/home/services/sawfish.scm
parent869528b29580af68eebea64fe5911602053da7b9 (diff)
downloadnew-dotfiles-21d8c958e83cab295a528fe141231149f3804077.tar.gz
new-dotfiles-21d8c958e83cab295a528fe141231149f3804077.zip
Add sawfish service code
This should probably have been added earlier, but I seem to have missed it.
Diffstat (limited to 'oni/home/services/sawfish.scm')
-rw-r--r--oni/home/services/sawfish.scm49
1 files changed, 49 insertions, 0 deletions
diff --git a/oni/home/services/sawfish.scm b/oni/home/services/sawfish.scm
new file mode 100644
index 0000000..1b87a99
--- /dev/null
+++ b/oni/home/services/sawfish.scm
@@ -0,0 +1,49 @@
+(define-module (oni home services sawfish)
+ #:use-module ((gnu services configuration)
+ #:select (define-configuration/no-serialization))
+ #:use-module ((gnu home services)
+ #:select (service-type
+ service-extension
+ home-profile-service-type))
+ #:use-module ((gnu packages sawfish)
+ #:select (sawfish))
+ #:use-module ((guix gexp)
+ #:select (mixed-text-file))
+ #:use-module ((guix packages)
+ #:select (package?))
+ #:use-module ((oni home services xinit)
+ #:select (home-xinit-service-type
+ home-xinit-extension))
+
+ #:export (home-sawfish-service-type
+ home-sawfish-configuration))
+
+(define-configuration/no-serialization home-sawfish-configuration
+ (package
+ (package sawfish)
+ "Package use for setting sawfish"))
+
+(define (add-sawfish-packages config)
+ (list (home-sawfish-configuration-package config)))
+
+(define (add-sawfish-executable config)
+ (home-xinit-extension
+ (wm
+ (list
+ (mixed-text-file
+ "xinitrc"
+ "exec " (home-sawfish-configuration-package config) "/bin/sawfish")))))
+
+(define home-sawfish-service-type
+ (service-type
+ (name 'home-sawfish)
+ (extensions
+ (list (service-extension
+ home-profile-service-type
+ add-sawfish-packages)
+ (service-extension
+ home-xinit-service-type
+ add-sawfish-executable)))
+ (compose identity)
+ (default-value (home-sawfish-configuration))
+ (description "Install and configure sawfish.")))