Subject: [PATCH 7/9] system: Add default guix-home-config.

From: Efraim Flashner <[email-masked]>
Date: Sun, 31 Dec 2023 13:39:46 +0200

* gnu/system/shadow.scm (%deafult-skeleton-home-config): New variable.
(default-skeletons): Add it.

Change-Id: Ida4cca8b1b3674491a4f18d94bc1b12d426575ba
---
 gnu/system/shadow.scm | 35 ++++++++++++++++++++++++++++++++++-
 1 file changed, 34 insertions(+), 1 deletion(-)

diff --git a/gnu/system/shadow.scm b/gnu/system/shadow.scm
index ca9c65e6d4..6c8e02953a 100644
--- a/gnu/system/shadow.scm
+++ b/gnu/system/shadow.scm
@@ -70,6 +70,7 @@ (define-module (gnu system shadow)
             %default-gdbinit
             %default-nanorc
             %default-dotguile
+            %default-skeleton-home-config
             default-skeletons
             skeleton-directory
             %base-groups
@@ -239,6 +240,37 @@ (define %default-dotguile
                (display \"Consider installing the 'guile-colorized' package
 for a colorful Guile experience.\\n\\n\"))))\n"))
 
+(define %default-skeleton-home-config
+  (plain-file "default-home-config" "\
+;; This is a sample Guix Home configuration which can help setup your
+;; home directory in the same declarative manner as Guix System.
+;; For more information, see the Home Configuration section of the manual.
+(define-module (guix-home-config)
+  #:use-module (gnu home)
+  #:use-module (gnu home services)
+  #:use-module (gnu home services shells)
+  #:use-module (gnu services)
+  #:use-module (gnu system shadow))
+
+(define home-config
+  (home-environment
+    (services
+      (list
+        ;; Uncomment the shell you wish to use for your user:
+        ;(service home-bash-service-type)
+        ;(service home-fish-service-type)
+        ;(service home-zsh-service-type)
+
+        (service home-files-service-type
+         `((\".guile\" ,%default-dotguile)
+           (\".Xdefaults\" ,%default-xdefaults)))
+
+        (service home-xdg-configuration-files-service-type
+         `((\"gdb/gdbinit\" ,%default-gdbinit)
+           (\"nano/nanorc\" ,%default-nanorc)))))))
+
+home-config"))
+
 (define (default-skeletons)
   "Return the default skeleton files for /etc/skel.  These files are copied by
 'useradd' in the home directory of newly created user accounts."
@@ -257,7 +289,8 @@ (define (default-skeletons)
       (".nanorc" ,%default-nanorc)
       (".Xdefaults" ,xdefaults)
       (".guile" ,%default-dotguile)
-      (".gdbinit" ,gdbinit))))
+      (".gdbinit" ,gdbinit)
+      ("guix-home-config.scm" ,%default-skeleton-home-config))))
 
 (define (skeleton-directory skeletons)
   "Return a directory containing SKELETONS, a list of name/derivation tuples."
-- 
Efraim Flashner   <[email-masked]>   רנשלפ םירפא
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted