| (define-module (config systems base)
|
| #:use-module (gnu)
|
| #:use-module (gnu packages)
|
| #:use-module (guix)
|
| #:use-module (guix channels)
|
| #:use-module (guix packages)
|
| #:export (system-base)
|
| #:export (+keyboard-layout))
|
| (use-service-modules
|
| networking
|
| ssh
|
| xorg)
|
|
|
| ;; Reference: https://codeberg.org/ieure/atomized-guix/src/branch/main/atomized/system/profiles.scm#L102
|
| (define (+keyboard-layout layout)
|
| (lambda (os)
|
| (operating-system
|
| (inherit os)
|
| (keyboard-layout layout)
|
| (services
|
| (cons
|
| (simple-service
|
| 'xorg-configuration-keyboard-layout
|
| (xorg-configuration-service-type (operating-system-services os))
|
| (xorg-configuration
|
| (keyboard-layout keyboard-layout)))
|
| (operating-system-user-services os)))
|
| (bootloader
|
| (bootloader-configuration
|
| (inherit (operating-system-bootloader os))
|
| (keyboard-layout layout))))))
|
|
|
| (define system-base
|
| (operating-system
|
| (locale "en_US.utf8")
|
| (timezone "Etc/UTC")
|
| (host-name "guixsd")
|
|
|
| (users %base-user-accounts)
|
|
|
| ;; The bootloader and filesystem configuration shall be replaced,
|
| ;; depending on each machine's configuration
|
| (bootloader (bootloader-configuration
|
| (bootloader grub-bootloader)
|
| (targets '("/boot/efi"))))
|
|
|
| (file-systems (cons (file-system
|
| (mount-point "/")
|
| (device "/dev/sda1")
|
| (type "btrfs"))
|
| %base-file-systems))
|
| (services
|
| (append (list
|
| (service openssh-service-type))
|
| %desktop-services))
|
|
|
| (packages
|
| (append
|
| (specifications->packages (list
|
| "curl"
|
| "git"
|
| "ncurses"
|
| "rsync"))
|
| %base-packages)))
|
| (+keyboard-layout "us"))
|