Hacking Guix Home Services in the REPL


Hacking Guix Home Services in the REPL

Today I want to spend some time learning how to hack on Guix Home services in the Guile REPL so that I can build up a service without running guix home container a bunch of times!

(use-modules (guix store))

(let* ((server (open-connection))
       (path (add-text-to-store server "hello.txt" "Hello Guix!")))
  (display "The store path is: ")
  (display path)
  (close-connection server))

(build-derivations store derivations [mode]): Builds a list of derivations against the given store

(define (sh-symlink)
  (gexp->derivation "sh"
                    #~(symlink (string-append #$bash "/bin/bash")

(run-with-store (open-connection) (sh-symlink))
;; guix home -L ~/.dotfiles container test-config.scm

(use-modules (gnu home)
              (gnu services)
              (daviwil home-services emacs))

  (services (list (service home-emacs-service-type
                            (modules (home-emacs-module-configuration
                                      (module-name "dw-core")
                                      ;; (variables '(("dw-core-use-something" . #t)))
                            (extra-init ";; Foo!"))))))


You can build a g-exp in the REPL by running the following command:

,build (scheme-file "test.scm" my-g-expr)
Subscribe to the System Crafters Newsletter!
Stay up to date with the latest System Crafters news and updates! Read the Newsletter page for more information.
Name (optional)
Email Address