home: services: Add home-startx-command-service-type.

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

Change-Id: Id38b5dc7b9235e04e3a9a1b70a35b02e8fae95f0
Signed-off-by: Arun Isaac <arunisaac@systemreboot.net>
This commit is contained in:
Tomas Volf 2024-05-30 20:29:54 +02:00 committed by Arun Isaac
parent e51a930c5c
commit 8144c587f8
No known key found for this signature in database
GPG key ID: 2E25EE8B61802BB3
2 changed files with 25 additions and 4 deletions

View file

@ -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

View file

@ -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)