guix/config/home-configuration.org
2024-02-07 19:16:54 +01:00

197 lines
5.7 KiB
Org Mode

# -*- 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
<<timestamp()>>
#+end_src
* modules
#+BEGIN_SRC scheme
(use-modules (gnu)
(gnu home)
(gnu packages)
(gnu services)
(gnu packages gnupg)
(gnu packages shells)
(guix channels)
(guix gexp)
(gnu home services)
(gnu home services guix)
(gnu home services shells)
(gnu home services dotfiles)
(gnu home services desktop)
(gnu home services sound)
(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 'variant-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 which requires dbus (see also [[https://guix.gnu.org/manual/devel/en/html_node/Sound-Home-Services.html][guix manual]])
#+BEGIN_SRC scheme
(service home-dbus-service-type)
(service home-pipewire-service-type
(home-pipewire-configuration
(enable-pulseaudio? #t)))
#+END_SRC
fonts ( see -> https://guix.gnu.org/manual/devel/en/html_node/Fonts-Home-Services.html)
#+BEGIN_SRC scheme
#+END_SRC
FIN
#+BEGIN_SRC scheme
))) ;; end home-environment
#+END_SRC