guix/config/home-configuration.org

253 lines
7 KiB
Org Mode
Raw Normal View History

2024-02-07 17:24:32 +00:00
# -*- 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
2024-02-09 13:01:22 +00:00
** use-modules
2024-02-07 17:24:32 +00:00
#+BEGIN_SRC scheme
(use-modules (gnu)
2024-02-07 18:16:54 +00:00
(gnu services)
2024-02-08 10:13:13 +00:00
(gnu packages)
2024-02-07 17:24:32 +00:00
(gnu packages gnupg)
2024-02-07 18:16:54 +00:00
(gnu packages shells)
2024-02-08 10:13:13 +00:00
(gnu home)
2024-02-07 18:16:54 +00:00
(gnu home services)
(gnu home services guix)
2024-02-07 17:24:32 +00:00
(gnu home services shells)
2024-02-07 18:16:54 +00:00
(gnu home services dotfiles)
(gnu home services desktop)
(gnu home services sound)
2024-02-08 10:13:13 +00:00
(gnu home services gnupg)
(guix channels)
(guix gexp))
2024-02-07 17:24:32 +00:00
#+END_SRC
2024-02-09 13:01:22 +00:00
* home environment
** packages
2024-02-08 10:13:13 +00:00
Packages that will show up in the home profile under =~/.guix-home/profile=
2024-02-07 17:24:32 +00:00
#+BEGIN_SRC scheme
(home-environment
(packages (specifications->packages
(list
2024-02-09 13:01:22 +00:00
#+END_SRC
*** generally useful
#+BEGIN_SRC scheme
2024-02-07 17:24:32 +00:00
"nordic-theme"
"firefox"
"emacs-guix"
"emacs-next"
2024-03-04 21:54:13 +00:00
"libreoffice"
2024-02-07 17:24:32 +00:00
"rsync"
2024-03-04 21:54:13 +00:00
;; "nyxt"
2024-02-07 17:24:32 +00:00
"gnupg"
"crda"
"htop"
2024-03-04 21:54:13 +00:00
"tree"
2024-02-07 17:24:32 +00:00
"password-store"
2024-02-09 13:01:22 +00:00
#+END_SRC
*** KDE packages
#+BEGIN_SRC scheme
"kmail"
"krunner"
"akonadi"
#+END_SRC
*** terminal
kitty config is in =dotfiles/kitty/kitty.conf=
#+BEGIN_SRC scheme
2024-03-04 21:54:13 +00:00
;; "kitty-next"
"kitty"
2024-02-09 13:01:22 +00:00
#+END_SRC
*** Mail
#+BEGIN_SRC scheme
2024-03-04 21:54:13 +00:00
"getmail6"
"notmuch"
2024-02-09 13:01:22 +00:00
#+END_SRC
*** graphics
#+BEGIN_SRC scheme
2024-03-04 21:54:13 +00:00
"scribus"
"inkscape"
"gimp"
2024-02-09 13:01:22 +00:00
"imagemagick"
#+END_SRC
*** music, sound & noise
#+BEGIN_SRC scheme
2024-03-04 21:54:13 +00:00
"supercollider"
"tidal"
"ardour"
"audacity"
2024-02-07 17:24:32 +00:00
"qpwgraph"
2024-03-07 14:41:42 +00:00
"patchage"
2024-02-09 13:01:22 +00:00
#+END_SRC
2024-03-07 14:41:42 +00:00
*** programming, dev & ops
#+BEGIN_SRC scheme :session
"guile"
"sbcl"
"racket"
"python"
"gcc-toolchain"
"git" "git:send-email"
#+END_SRC
2024-03-04 21:54:13 +00:00
*** network & interconnect
#+BEGIN_SRC scheme
"nextcloud-client"
#+END_SRC
2024-03-07 14:41:42 +00:00
*** fonts & typography
#+BEGIN_SRC scheme :session
"font-monaspace"
"font-recursive"
"font-fira-sans"
"font-fira-mono"
"font-victor-mono"
#+END_SRC
2024-02-09 13:01:22 +00:00
*** Hardware
#+BEGIN_SRC scheme
2024-02-07 17:24:32 +00:00
"lm-sensors"
"dmidecode"
"lshw"
"hwinfo"
"acpi"
2024-02-09 13:01:22 +00:00
))) ;; end packages
2024-02-07 17:24:32 +00:00
#+END_SRC
2024-02-09 13:01:22 +00:00
** services
2024-02-08 10:13:13 +00:00
The list of home services. To search for available services run =guix home search KEYWORD= in a terminal.
2024-02-07 17:24:32 +00:00
#+BEGIN_SRC scheme
(services
(list
#+END_SRC
2024-02-09 13:01:22 +00:00
*** channels
2024-02-07 17:24:32 +00:00
2024-02-08 10:13:13 +00:00
Additional channels → nonguix (aka “The GUIX Channel That Shall Not Be Named”) & zzkt (local particulars)
2024-02-07 17:24:32 +00:00
#+BEGIN_SRC scheme
(simple-service 'variant-packages-service
home-channels-service-type
(list
(channel
(name 'nonguix)
(url "https://gitlab.com/nonguix/nonguix")
(branch "master")
(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
2024-02-09 13:01:22 +00:00
*** environment / variables
2024-02-07 17:24:32 +00:00
#+BEGIN_SRC scheme
2024-02-07 18:16:54 +00:00
(simple-service 'variant-env-vars-service
2024-02-07 17:24:32 +00:00
home-environment-variables-service-type
2024-03-04 21:54:13 +00:00
`(("GUIX_LOCPATH" . "$HOME/.guix-profile/lib/locale")
("NOTMUCH_PROFILE" . "$XDG_CONFIG_HOME/notmuch/notmuch.conf")
2024-02-07 17:24:32 +00:00
("LD_LIBRARY_PATH" . "$HOME/.guix-profile/lib")
2024-03-07 14:41:42 +00:00
("GPG_TTY" . "$TTY")
2024-02-07 17:24:32 +00:00
("SHELL" . ,(file-append zsh "/bin/zsh"))))
#+END_SRC
2024-02-09 13:01:22 +00:00
*** zsh shell
2024-02-07 17:24:32 +00:00
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
2024-02-07 18:16:54 +00:00
(service home-zsh-service-type
(home-zsh-configuration
;; configs in $XDG_CONFIG_HOME/zsh
(xdg-flavor? #t)
(environment-variables
2024-02-08 10:13:13 +00:00
'(("HISTFILE" . "$XDG_CONFIG_HOME/zsh/.history")
2024-02-07 18:16:54 +00:00
("HISTSIZE" . "800000")
("SAVEHIST" . "800000")))
(zshenv
(list (local-file ".zshenv" "zshenv")))
(zshrc
(list (local-file ".zshrc" "zshrc")))))
2024-02-07 17:24:32 +00:00
#+END_SRC
2024-02-09 13:01:22 +00:00
*** gnupg
2024-02-07 17:24:32 +00:00
#+BEGIN_SRC scheme
2024-02-07 18:16:54 +00:00
(service home-gpg-agent-service-type
(home-gpg-agent-configuration
(pinentry-program
2024-02-23 12:09:11 +00:00
(file-append pinentry-qt "/bin/pinentry-qt"))
2024-02-07 18:16:54 +00:00
(ssh-support? #t)))
2024-02-07 17:24:32 +00:00
#+END_SRC
2024-02-09 13:01:22 +00:00
*** dotfiles
(see [[https://guix.gnu.org/manual/devel/en/html_node/Essential-Home-Services.html][guix docs]])
2024-02-07 17:24:32 +00:00
#+BEGIN_SRC scheme
2024-02-07 18:16:54 +00:00
(service home-dotfiles-service-type
(home-dotfiles-configuration
(directories (list "dotfiles"))))
2024-02-07 17:24:32 +00:00
#+END_SRC
2024-02-09 13:01:22 +00:00
*** ssh & sundry
(see also [[https://guix.gnu.org/manual/devel/en/html_node/Secure-Shell.html][guix manual]])
2024-02-07 17:24:32 +00:00
#+BEGIN_SRC scheme
2024-02-08 10:13:13 +00:00
;; ssh config in 'dotfiles'
2024-02-07 17:24:32 +00:00
#+END_SRC
2024-02-09 13:01:22 +00:00
*** sound
via pipewire which requires dbus (see also [[https://guix.gnu.org/manual/devel/en/html_node/Sound-Home-Services.html][guix manual]])
2024-02-07 17:24:32 +00:00
#+BEGIN_SRC scheme
2024-02-07 18:16:54 +00:00
(service home-dbus-service-type)
(service home-pipewire-service-type
(home-pipewire-configuration
(enable-pulseaudio? #t)))
2024-02-07 17:24:32 +00:00
#+END_SRC
2024-02-09 13:01:22 +00:00
*** fonts
( see -> https://guix.gnu.org/manual/devel/en/html_node/Fonts-Home-Services.html)
2024-02-07 17:24:32 +00:00
#+BEGIN_SRC scheme
2024-02-09 13:01:22 +00:00
)) ;; end services
2024-02-07 17:24:32 +00:00
#+END_SRC
2024-02-09 13:01:22 +00:00
* FIN
2024-02-07 17:24:32 +00:00
#+BEGIN_SRC scheme
2024-02-09 13:01:22 +00:00
) ;; end home-environment
2024-02-07 17:24:32 +00:00
#+END_SRC