From 59bb53823e6babb2d50e246d312879980c7988c9 Mon Sep 17 00:00:00 2001 From: Richard Sent Date: Thu, 21 Mar 2024 14:36:43 -0400 Subject: services: Add the Guix Home service. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This patch adds a Guix Home service, which allows for configuring/deploying an operating-system declaration with an associated home-environment. * gnu/services/guix.scm: Add guix-home-service and guix-home-shepherd-service * gnu/home/services/shepherd.scm: Don't attempt to launch user shepherd when the system shepherd runs guix-home- * doc/guix.texi: Add documentation for guix-home-service * gnu/tests/guix.scm: Add a test to verify guix-home-service-type is able to activate a home environment Change-Id: Ifbcc0878d934aa4abe34bb2123b5081fb432aa8e Signed-off-by: Ludovic Courtès --- doc/guix.texi | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) (limited to 'doc') diff --git a/doc/guix.texi b/doc/guix.texi index 964a262a7a..ec0edbbbf0 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -126,6 +126,7 @@ Copyright @copyright{} 2023 Graham James Addis@* Copyright @copyright{} 2023 Tomas Volf@* Copyright @copyright{} 2024 Herman Rimm@* Copyright @copyright{} 2024 Matthew Trzcinski@* +Copyright @copyright{} 2024 Richard Sent@* Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or @@ -39350,6 +39351,37 @@ Extra command line options for @code{guix-data-service-process-jobs}. @end table @end deftp +@subsubheading Guix Home Service +The Guix Home Service allows for associating Guix @ref{Declaring the +Home Environment, home-environment} declarations with a Guix +@ref{operating-system Reference, operating-system}. + +@defvar guix-home-service-type +Service type for the Guix Home Service. Its value must be a list of +lists containing user and home environment pairs. The key of each pair +is a string representing the user to deploy the configuration under and +the value is a home-environment configuration. + +@lisp +(define my-home + (home-environment + ...)) + +(operating-system + (services (list + (service guix-home-service-type + `(("alice" ,my-home)))))) +@end lisp + +This service can be extended by other services to add additional home +environments, as in this example: + +@lisp +(simple-service 'my-extra-home home-service-type + `(("bob" ,my-extra-home)))) +@end lisp +@end defvar + @subsubheading Nar Herder The @uref{https://git.cbaines.net/guix/nar-herder/about/,Nar Herder} is a utility for managing a collection of nars. -- cgit v1.2.3