From fde6941d93f35b7cba4144a116df223fca0fe661 Mon Sep 17 00:00:00 2001 From: Tom Willemse Date: Wed, 6 Apr 2022 21:13:44 -0700 Subject: Automatically start xmodmap when I first log in --- oni/home/services/xmodmap.scm | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) (limited to 'oni/home') diff --git a/oni/home/services/xmodmap.scm b/oni/home/services/xmodmap.scm index ca6d80c..e6e5562 100644 --- a/oni/home/services/xmodmap.scm +++ b/oni/home/services/xmodmap.scm @@ -13,6 +13,9 @@ (package (package xmodmap) "Package to use for setting Xmodmap") + (auto-start? + (boolean #t) + "Should xmodmap be started automatically") (pointer (list '()) "List of numbers indicating the order of numbers") @@ -28,24 +31,31 @@ "") (string-join (home-xmodmap-configuration-extra config) "\n" 'suffix)))) -(define (xmodmap-home-files config) - `(("Xmodmap" ,(mixed-text-file - "Xmodmap" - (serialize-xmodmap-config config))))) +(define (xmodmap-home-config-file config) + (mixed-text-file + "Xmodmap" + (serialize-xmodmap-config config))) (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-service-type (service-type (name 'home-xmodmap) (extensions (list (service-extension - home-files-service-type - xmodmap-home-files) - (service-extension home-profile-service-type - add-xmodmap-packages))) + add-xmodmap-packages) + (service-extension + home-run-on-first-login-service-type + launch-xmodmap-gexp))) (compose identity) (default-value (home-xmodmap-configuration)) (description "Install and configure Xmodmap."))) -- cgit v1.2.3-54-g00ecf