5.5 KiB
5.5 KiB
GUIX System Configuration
(org-babel-lob-ingest "./library.org")
Modules
- gnu
- gnu image
- gnu services authentication
- gnu services base
- gnu services dbus
- gnu services desktop
- gnu services linux
- gnu services networking
- gnu services pm
- gnu services virtualization
- gnu services xorg
- gnu system nss
Service Modules
- desktop
- xorg
Package Modules
- bootloaders
- certs
- emacs
- emacs-xyz
- fonts
- readline
- terminals
- version-control
- wm
- xorg
Configuration Definitions
File System
The variable %local-filesystem
extracts the file system definitions from the installer-provided
config.scm
file.
(define %local-filesystem
(call-with-input-file "/etc/config.scm"
(lambda (port)
(read port)
(read port)
(eval (cadar (last-pair (read port)))
(interaction-environment)))))
As a sibling to the former, the variable %local-swap
does the same with the swap partition.
(define %local-swap
(call-with-input-file "/etc/config.scm"
(lambda (port)
(read port)
(read port)
(let* ((os-list (read port))
(os-list-length (length os-list)))
(eval
(cdr
(list-ref os-list
(- os-list-length 2)))
(interaction-environment))))))
Packages
- emacs
- emacs-desktop-environment
- font-terminus
- git
- nss-certs
- readline
- swayfx
(packages
(append
<<org-to-scheme-sym-list(input=root-packages)>>
%base-packages))
Services
Simple Services
These services are unmodified, or have just few settings.
Service | Options |
---|---|
tlp | () |
thermald | ((adaptive? t)) |
bluetooth | () |
earlyoom | ((minimum-available-memory 5) (minimum-free-swap 5)) |
inputattach | () |
libvirt | ((unix-sock-group "libvirt")) |
fstrim | () |
fprintd | () |
Greeter Service
greetd
is a broken mess, yet here we are.
(service greetd-service-type
(greetd-configuration
(greeter-supplementary-groups
(list "video" "input"))
(terminals
(list
(greetd-terminal-configuration
(terminal-vt "7")
(terminal-switch #t)
(default-session-command
(greetd-wlgreet-session
(command
(file-append swayfx "/bin/sway")))))
(greetd-terminal-configuration
(terminal-vt "8"))))))
Screen Locker Service
For some reason, this service runs on root level for Guix.
(service screen-locker-service-type
(screen-locker-configuration
(name "swaylock")
(program
(file-append swaylock-effects "/bin/swaylock"))
(using-setuid? #f)))
Operating System
This is the full operating system specification.
(operating-system
(host-name "ziltis-machine")
(timezone "Europe/Berlin")
(locale "de_DE.utf8")
(keyboard-layout
(keyboard-layout "de" #:options '("caps:swapescape")))
(bootloader
(bootloader-configuration
(bootloader grup-efi-bootloader)
(targets
'("/boot/efi"))
(keyboard-layout keyboard-layout)))
(file-systems %local-filesystem)
(swap-devices %local-swap)
(users
(cons*
(user-account
(name "zilti")
(group "users")
(supplementary-groups
'("wheel" "netdev" "audio" "video" "libvirt")))
%base-user-accounts))
<<root-package-block>>
<<root-services-block>>
(name-service-switch %mdns-host-lookup-nss))