194 lines
5.7 KiB
Org Mode
194 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 services)
|
|
(gnu packages)
|
|
(gnu packages gnupg)
|
|
(gnu packages shells)
|
|
(gnu home)
|
|
(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)
|
|
(guix channels)
|
|
(guix gexp))
|
|
#+END_SRC
|
|
|
|
Packages that will show up in the 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 (aka “The GUIX Channel That Shall Not Be Named”) & zzkt (local particulars)
|
|
|
|
#+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
|
|
|
|
#+RESULTS:
|
|
|
|
environment / variables
|
|
|
|
#+BEGIN_SRC scheme
|
|
(simple-service 'variant-env-vars-service
|
|
home-environment-variables-service-type
|
|
`(("NOTMUCH_PROFILE" . "$XDG_CONFIG_HOME/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" . "$XDG_CONFIG_HOME/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
|
|
;; ssh config in 'dotfiles'
|
|
#+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
|