aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Tom Willemse2025-09-18 22:09:42 -0700
committerGravatar Tom Willemse2025-09-18 22:09:42 -0700
commit6506e3a04eb221d46f798fb1867b887337030790 (patch)
treee1639a5f806684708175fd6568c96eca91899e80
parent1b315a52d94319fd921b68193bae3d07ad460a50 (diff)
downloadnew-dotfiles-6506e3a04eb221d46f798fb1867b887337030790.tar.gz
new-dotfiles-6506e3a04eb221d46f798fb1867b887337030790.zip
(oni home services xdisorg): Add sxhkd service
-rw-r--r--oni/home/services/xdisorg.scm42
1 files changed, 40 insertions, 2 deletions
diff --git a/oni/home/services/xdisorg.scm b/oni/home/services/xdisorg.scm
index 51da034..f64be17 100644
--- a/oni/home/services/xdisorg.scm
+++ b/oni/home/services/xdisorg.scm
@@ -7,7 +7,8 @@
#:select (home-shepherd-service-type
shepherd-service))
#:use-module ((gnu packages xdisorg)
- #:select (xss-lock))
+ #:select (xss-lock
+ sxhkd))
#:use-module ((gnu services configuration)
#:select (define-configuration
serialize-package))
@@ -18,7 +19,10 @@
#:select (package?))
#:export (home-xss-lock-configuration
- home-xss-lock-service-type))
+ home-xss-lock-service-type
+
+ home-sxhkd-configuration
+ home-sxhkd-service-type))
(define-configuration home-xss-lock-configuration
(package
@@ -53,3 +57,37 @@
(compose identity)
(default-value (home-xss-lock-configuration))
(description "Install and configure xss-lock.")))
+
+(define-configuration home-sxhkd-configuration
+ (package
+ (package sxhkd)
+ "Package to use for setting sxhkd"))
+
+(define (add-sxhkd-packages config)
+ (list (home-sxhkd-configuration-package config)))
+
+(define (home-sxhkd-shepherd-service config)
+ (list
+ (shepherd-service
+ (documentation "Start sxhkd")
+ (provision '(sxhkd))
+ (auto-start? #t)
+ (start
+ #~(make-forkexec-constructor
+ (list #$(file-append (home-sxhkd-configuration-package config) "/bin/sxhkd"))
+ #:log-file (format #f "~a/.local/var/log/sxhkd.log" (getenv "HOME"))))
+ (stop #~(make-kill-destructor)))))
+
+(define home-sxhkd-service-type
+ (service-type
+ (name 'home-sxhkd)
+ (extensions
+ (list (service-extension
+ home-profile-service-type
+ add-sxhkd-packages)
+ (service-extension
+ home-shepherd-service-type
+ home-sxhkd-shepherd-service)))
+ (compose identity)
+ (default-value (home-sxhkd-configuration))
+ (description "Install and configure sxhkd.")))