diff --git a/doc/guix.texi b/doc/guix.texi index 77521a3542..1224104038 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -23629,9 +23629,9 @@ etc. specified in @var{config} are available. The result should be used in place of @code{startx} and should be invoked by the user from a tty after login. Unlike @code{xorg-start-command}, this script calls xinit. Therefore it works well when executed from a tty. This script can be -set up as @code{startx} using @code{startx-command-service-type}. If -you are using a desktop environment, you are unlikely to need this -procedure. +set up as @code{startx} using @code{startx-command-service-type} or +@code{home-startx-command-service-type}. If you are using a desktop +environment, you are unlikely to need this procedure. @end deffn @@ -46264,6 +46264,15 @@ The list of expressions to be read by @code{xmodmap} on service startup. @end table @end deftp +@defvar home-startx-command-service-type +Add @command{startx} to the home profile putting it onto @env{PATH}. + +The value for this service is a @code{} 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)