guix/config/home-configuration.org
2024-02-07 18:24:32 +01:00

5.6 KiB

A semi-literate config for GUIX home

  • generate config with org-babel-tangle (bound to C-c C-v t)
  • rebuild with guix home reconfigure home-configuration.scm (or similar)

header

generate a header and timestamp if required

echo ";; -*- mode: scheme;  coding: utf-8; -*-
;;
;; tangled from home-configuration.org on `date --rfc-3339 seconds`)"
<<timestamp()>>

modules

(use-modules (gnu)
             (gnu home)
             (gnu packages)
             (gnu packages gnupg)
             (guix gexp)
             (gnu home services shells)
             (gnu home services gnupg))

getmail? → (use-service-modules mail)

Packages that will show up in your Home profile under ~/.guix-home/profile

(home-environment
 (packages (specifications->packages
            (list
             "nordic-theme"
             "firefox"
             "emacs-guix"
             "emacs-next"
             "rsync"
             "neofetch"
             "nyxt"
             "python"
             "git"
             "gnupg"
             "crda"
             "htop"
             "password-store"
             ;; terminal
             "alacritty"
             ;; mail
             "getmail6"
             "notmuch"
             ;; graphical
             "scribus"
             "inkscape"
             ;; sound
             "supercollider"
             "tidal"
             "ardour"
             "audacity"
             "qpwgraph"
             ;; hardware
             "lm-sensors"
             "dmidecode"
             "lshw"
             "hwinfo"
             "acpi"
             )))

The list of Home services. To search for available services, run 'guix home search KEYWORD' in a terminal.

(services
  (list

additional channels → nonguix & zzkt

(simple-service 'variant-packages-service
                home-channels-service-type
                (list
                 (channel
                  (name 'nonguix)
                  (url "https://gitlab.com/nonguix/nonguix")
                  (branch "master")
                  (commit
                   "fe2fcf125cfc5f7284b24cfac50f37feaf74f7b5")
                  (introduction
                   (make-channel-introduction
                    "897c1a470da759236cc11798f4e0a5f7d4d59fbc"
                    (openpgp-fingerprint
                     "2A39 3FFF 68F4 EF7A 3D29  12AF 6F51 20A0 22FB B2D5"))))
                 (channel
                  (name 'zzkt)
                  (url "https://gitlab.com/zzkt/guix")
                  (branch "endless")
                  (commit
                   "ef1868ed9bdcf1a49771442e405bd88207b3ab0c")
                  (introduction
                   (make-channel-introduction
                    "fc0ada85de1980e1fc9ee50672d827c0c17c3e7d"
                    (openpgp-fingerprint
                     "24A7 4604 91E6 A60F 5BB4  A00F 989F 5E6E DB47 8160"))))))

environment / variables

(simple-service 'some-useful-env-vars-service
                 home-environment-variables-service-type
                 `(("NOTMUCH_PROFILE" . "$HOME/.config/notmuch/notmuch.conf")
                   ("LD_LIBRARY_PATH" . "$HOME/.guix-profile/lib")
                   ("SHELL" . ,(file-append zsh "/bin/zsh"))))

zsh (and/or completions and/or help-guix) $fpath contains /run/current-system/profile/share/zsh/site-functions

(service home-zsh-service-type
              (home-zsh-configuration
               ;; configs in $XDG_CONFIG_HOME/zsh
               (xdg-flavor? #t)
               (environment-variables
                '(("HISTFILE" . "$HOME/.config/zsh/.history")
                  ("HISTSIZE" . "800000")
                  ("SAVEHIST" . "800000")))
               (zshenv
                (list (local-file ".zshenv" "zshenv")))
               (zshrc
                (list (local-file ".zshrc" "zshrc")))))

gnupg

(service home-gpg-agent-service-type
         (home-gpg-agent-configuration
          (pinentry-program
           (file-append pinentry-emacs "/bin/pinentry-emacs"))
          (ssh-support? #t)))

dotfiles (see guix docs)

(service home-dotfiles-service-type
         (home-dotfiles-configuration
          (directories (list "dotfiles"))))

ssh & sundry (see also guix manual)

sound via pipewire (see also guix manual)

(service home-pipewire-service-type
         (home-pipewire-configuration
         (pipewire "pipewire")
         (wireplumber "wireplumber")
         (enable-pulseaudio? #t)))

fonts

;; see -> https://guix.gnu.org/manual/devel/en/html_node/Fonts-Home-Services.html

FIN

))) ;; end home-environment