Subject: [PATCH v4 2/2] home: services: Add home-startx-command-service-type.

From: Tomas Volf <[email-masked]>
Date: Thu, 30 May 2024 20:29:54 +0200

* gnu/home/services/desktop.scm (home-startx-command-service-type): New
variable.
(define-module): Export it.
(startx-command-service-type): New service-type mapping.
* doc/guix.texi (Guix Home Services): Document it.

Change-Id: Id38b5dc7b9235e04e3a9a1b70a35b02e8fae95f0
---
 doc/guix.texi                 |  9 +++++++++
 gnu/home/services/desktop.scm | 14 +++++++++++++-
 2 files changed, 22 insertions(+), 1 deletion(-)

diff --git a/doc/guix.texi b/doc/guix.texi
index 2cf1e58b5f..1f2e45f525 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -46376,6 +46376,15 @@ Desktop Home Services
 @end table
 @end deftp
 
+@defvar home-startx-command-service-type
+Add @command{startx} to the home profile putting it onto the @env{PATH}.
+
+The value for this service is a @code{<xorg-configuration>} object which
+is passed to the @code{xorg-start-command-xinit} procedure producing the
+@command{startx} used.  Default value is @code{(xorg-configuration)}.
+@end defvar
+
+
 @node Guix Home Services
 @subsection Guix Home Services
 
diff --git a/gnu/home/services/desktop.scm b/gnu/home/services/desktop.scm
index 91465bf168..679ba31c0f 100644
--- a/gnu/home/services/desktop.scm
+++ b/gnu/home/services/desktop.scm
@@ -23,6 +23,7 @@ (define-module (gnu home services desktop)
   #:use-module (gnu home services)
   #:use-module (gnu home services shepherd)
   #:use-module (gnu services configuration)
+  #:use-module (gnu services xorg)
   #:autoload   (gnu packages glib)    (dbus)
   #:autoload   (gnu packages xdisorg) (redshift unclutter)
   #:autoload   (gnu packages xorg) (setxkbmap xmodmap)
@@ -43,7 +44,9 @@ (define-module (gnu home services desktop)
             home-unclutter-service-type
 
             home-xmodmap-configuration
-            home-xmodmap-service-type))
+            home-xmodmap-service-type
+
+            home-startx-command-service-type))
 
 
 ;;;
@@ -429,3 +432,12 @@ (define home-xmodmap-service-type
    (default-value (home-xmodmap-configuration))
    (description "Run the @code{xmodmap} utility to modify keymaps and pointer
 buttons under the Xorg display server via user-defined expressions.")))
+
+
+(define home-startx-command-service-type
+  (service-type
+   (inherit (system->home-service-type startx-command-service-type))
+   (default-value (for-home (xorg-configuration)))))
+
+(define-service-type-mapping
+  startx-command-service-type => home-startx-command-service-type)
-- 
2.41.0