From b0e3121495f3b24e133c61b42cf40ffa9707cf55 Mon Sep 17 00:00:00 2001 From: Fabio Natali Date: Sun, 13 Oct 2024 12:45:29 +0100 Subject: home: services: unclutter: Inherit $DISPLAY. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/home/services/desktop.scm: Add DISPLAY to the list of environment variables passed to 'home-unclutter-service-type'. Change 'make-forkexec-construstor' to 'fork+exec-command' as the former did not seem to pick up the newly defined environment variable. Add 'x11-display' as a requirement. These changes are consistent to how things are done in 'home-redshift-service-type'. Change-Id: Ie8b88b30353e76139d354da27aef791036eaa5a0 Signed-off-by: Ludovic Courtès --- gnu/home/services/desktop.scm | 38 ++++++++++++++++++++++++-------------- 1 file changed, 24 insertions(+), 14 deletions(-) (limited to 'gnu') diff --git a/gnu/home/services/desktop.scm b/gnu/home/services/desktop.scm index 679ba31c0f..dc9de168b7 100644 --- a/gnu/home/services/desktop.scm +++ b/gnu/home/services/desktop.scm @@ -349,21 +349,31 @@ according to time of day."))) (list (shepherd-service (provision '(unclutter)) - (requirement '()) + ;; Depend on 'x11-display', which sets 'DISPLAY' if an X11 server is + ;; available, and fails to start otherwise. + (requirement '(x11-display)) + (modules '((srfi srfi-1) + (srfi srfi-26))) (one-shot? #t) - (start #~(make-forkexec-constructor - (list - #$(file-append - (home-unclutter-configuration-unclutter config) - "/bin/unclutter") - "-idle" - (number->string - #$(home-unclutter-configuration-idle-timeout config))) - #:log-file (string-append - (or (getenv "XDG_STATE_HOME") - (format #f "~a/.local/state" - (getenv "HOME"))) - "/log/unclutter.log")))))) + (start #~(lambda _ + (fork+exec-command + (list + #$(file-append + (home-unclutter-configuration-unclutter config) + "/bin/unclutter") + "-idle" + (number->string + #$(home-unclutter-configuration-idle-timeout config))) + ;; Inherit the 'DISPLAY' variable set by 'x11-display'. + #:environment-variables + (cons (string-append "DISPLAY=" (getenv "DISPLAY")) + (remove (cut string-prefix? "DISPLAY=" <>) + (default-environment-variables))) + #:log-file (string-append + (or (getenv "XDG_STATE_HOME") + (format #f "~a/.local/state" + (getenv "HOME"))) + "/log/unclutter.log"))))))) (define home-unclutter-service-type (service-type -- cgit v1.2.3