~ruther/guix-local

8144c587f89641d5976d5b3832297d391d489fbd — Tomas Volf 1 year, 8 months ago e51a930
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>
2 files changed, 25 insertions(+), 4 deletions(-)

M doc/guix.texi
M gnu/home/services/desktop.scm
M doc/guix.texi => doc/guix.texi +12 -3
@@ 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


M gnu/home/services/desktop.scm => gnu/home/services/desktop.scm +13 -1
@@ 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)