aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/guix.texi15
-rw-r--r--gnu/home/services/desktop.scm14
2 files changed, 25 insertions, 4 deletions
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{<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 @@
#: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 @@
home-unclutter-service-type
home-xmodmap-configuration
- home-xmodmap-service-type))
+ home-xmodmap-service-type
+
+ home-startx-command-service-type))
;;;
@@ -429,3 +432,12 @@ defaults."))))
(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)