aboutsummaryrefslogtreecommitdiffstats
path: root/oni/home/services/xmodmap.scm
diff options
context:
space:
mode:
authorGravatar Tom Willemse2022-04-12 21:33:15 -0700
committerGravatar Tom Willemse2022-04-12 21:33:15 -0700
commit00f51af69d0164d0427f942a3df22c8f0f960ec1 (patch)
tree8f9f7eb7b03bc4574b896cf0657a57ba4e7e8fe2 /oni/home/services/xmodmap.scm
parent13baec4666f67140d6865292eb1d4efae37c1461 (diff)
downloadnew-dotfiles-00f51af69d0164d0427f942a3df22c8f0f960ec1.tar.gz
new-dotfiles-00f51af69d0164d0427f942a3df22c8f0f960ec1.zip
Use shepherd to start xmodmap rather than on first startup
Diffstat (limited to 'oni/home/services/xmodmap.scm')
-rw-r--r--oni/home/services/xmodmap.scm22
1 files changed, 14 insertions, 8 deletions
diff --git a/oni/home/services/xmodmap.scm b/oni/home/services/xmodmap.scm
index e6e5562..a4dacde 100644
--- a/oni/home/services/xmodmap.scm
+++ b/oni/home/services/xmodmap.scm
@@ -2,6 +2,7 @@
#:use-module (gnu services configuration)
#:use-module (gnu packages xorg)
#:use-module (gnu home services)
+ #:use-module (gnu home services shepherd)
#:use-module (gnu home services utils)
#:use-module (guix packages)
#:use-module (guix gexp)
@@ -39,12 +40,17 @@
(define (add-xmodmap-packages config)
(list (home-xmodmap-configuration-package config)))
-(define (launch-xmodmap-gexp config)
- (let ((xmodmap (home-xmodmap-configuration-package config)))
- (if (home-xmodmap-configuration-auto-start? config)
- #~(system* #$(file-append xmodmap "/bin/xmodmap")
- #$(xmodmap-home-config-file config))
- #~"")))
+(define (home-xmodmap-shepherd-service config)
+ (list
+ (shepherd-service
+ (documentation "Start Xmodmap")
+ (provision '(xmodmap))
+ (auto-start? (home-xmodmap-configuration-auto-start? config))
+ (one-shot? #t)
+ (start
+ #~(make-forkexec-constructor
+ '(#$(file-append xmodmap "/bin/xmodmap")
+ #$(xmodmap-home-config-file config)))))))
(define home-xmodmap-service-type
(service-type
@@ -54,8 +60,8 @@
home-profile-service-type
add-xmodmap-packages)
(service-extension
- home-run-on-first-login-service-type
- launch-xmodmap-gexp)))
+ home-shepherd-service-type
+ home-xmodmap-shepherd-service)))
(compose identity)
(default-value (home-xmodmap-configuration))
(description "Install and configure Xmodmap.")))