# -*- mode: org; coding: utf-8; -*- #+title: a GUIX home config #+property: header-args :tangle home-configuration.scm 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 #+name: timestamp #+BEGIN_SRC sh :results output code :tangle no echo ";; -*- mode: scheme; coding: utf-8; -*- ;; ;; tangled from home-configuration.org on `date --rfc-3339 seconds`)" #+end_src #+begin_src scheme :noweb yes <> #+end_src * modules #+BEGIN_SRC scheme (use-modules (gnu) (gnu home) (gnu packages) (gnu packages gnupg) (guix gexp) (gnu home services shells) (gnu home services gnupg)) #+END_SRC getmail? → (use-service-modules mail) Packages that will show up in your Home profile under =~/.guix-home/profile= #+BEGIN_SRC scheme (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" ))) #+END_SRC The list of Home services. To search for available services, run 'guix home search KEYWORD' in a terminal. #+BEGIN_SRC scheme (services (list #+END_SRC additional channels → nonguix & zzkt #+BEGIN_SRC scheme (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")))))) #+END_SRC environment / variables #+BEGIN_SRC scheme (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")))) #+END_SRC zsh (and/or completions and/or [[https://lists.gnu.org/archive/html/help-guix/2020-06/msg00005.html][help-guix]]) =$fpath= contains =/run/current-system/profile/share/zsh/site-functions= #+BEGIN_SRC scheme (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"))))) #+END_SRC gnupg #+BEGIN_SRC scheme (service home-gpg-agent-service-type (home-gpg-agent-configuration (pinentry-program (file-append pinentry-emacs "/bin/pinentry-emacs")) (ssh-support? #t))) #+END_SRC dotfiles (see [[https://guix.gnu.org/manual/devel/en/html_node/Essential-Home-Services.html][guix docs]]) #+BEGIN_SRC scheme (service home-dotfiles-service-type (home-dotfiles-configuration (directories (list "dotfiles")))) #+END_SRC ssh & sundry (see also [[https://guix.gnu.org/manual/devel/en/html_node/Secure-Shell.html][guix manual]]) #+BEGIN_SRC scheme #+END_SRC sound via pipewire (see also [[https://guix.gnu.org/manual/devel/en/html_node/Sound-Home-Services.html][guix manual]]) #+BEGIN_SRC scheme (service home-pipewire-service-type (home-pipewire-configuration (pipewire "pipewire") (wireplumber "wireplumber") (enable-pulseaudio? #t))) #+END_SRC fonts #+BEGIN_SRC scheme ;; see -> https://guix.gnu.org/manual/devel/en/html_node/Fonts-Home-Services.html #+END_SRC FIN #+BEGIN_SRC scheme ))) ;; end home-environment #+END_SRC