(use-modules
(gnu) (gnu system))
(use-service-modules
dbus desktop networking sound ssh xorg)
(use-package-modules
admin certs glib pulseaudio screen ssh wm)
(operating-system
(host-name "t420")
(timezone "Europe/Rome")
(locale "en_US.utf8")
(keyboard-layout (keyboard-layout "us"))
(bootloader
(bootloader-configuration
(bootloader grub-bootloader)
(terminal-outputs '(console))
(targets '("/dev/sda"))
(keyboard-layout keyboard-layout)))
;; Specify a mapped device for the encrypted root partition.
;; The UUID is that returned by 'cryptsetup luksUUID'.
(mapped-devices
(list (mapped-device
(source (uuid "c8a8dbf9-9c67-4029-aa59-d5b46840c3f3"))
(targets (list "guix"))
(type luks-device-mapping))))
(file-systems
(append
(list (file-system
(device (file-system-label "guix"))
(mount-point "/")
(type "ext4")
(dependencies mapped-devices)))
%base-file-systems))
(swap-devices
(list
(swap-space (target "/swapfile"))))
(users
(cons (user-account
(name "oleander")
(comment "")
(group "users")
(home-directory "/home/oleander")
(supplementary-groups '("wheel" "netdev"
"audio" "video" "input")))
%base-user-accounts))
;; System-wide packages.
(packages
(append
(list
dbus
openssh-sans-x
pulseaudio
screen
swaylock-effects
wpa-supplicant)
%base-packages))
(services
(cons*
(service alsa-service-type
(alsa-configuration
(pulseaudio? #t)))
(service dbus-root-service-type)
(service elogind-service-type)
(service openssh-service-type
(openssh-configuration
(openssh openssh-sans-x)
(port-number 22)
(password-authentication? #f)
(permit-root-login 'prohibit-password)
(authorized-keys
`(("oleander" ,(local-file "/home/oleander/.ssh/authorized_keys"))))))
(service ntp-service-type
(ntp-configuration
(servers (map (lambda (server)
(ntp-server (address server)))
(service polkit-service-type)
(service screen-locker-service-type
(screen-locker-configuration
(name "swaylock")
(program (file-append swaylock-effects "/bin/swaylock"))
(using-pam? #t)
(using-setuid? #f)))
(service static-networking-service-type
(list (static-networking
(addresses
(list (network-address
(device "wlp1s0")
(value "192.168.1.37/24"))))
(routes
(list (network-route
(destination "default")
(gateway "192.168.1.1"))))
(name-servers '("1.1.1.1" "1.0.0.1"))))
(service wpa-supplicant-service-type
(wpa-supplicant-configuration
(config-file (local-file "/home/oleander/src/guix/wpa_supplicant.conf"))
(interface "wlp1s0")))
(modify-services %base-services
(mingetty-service-type config =>
(mingetty-configuration
(inherit config)
;; Automatically log in as "oleander".
(auto-login "oleander")
;; Work-around to fix "Error in service module"
(login-pause? #t))))))
;; Allow resolution of '.local' host names with mDNS.
(name-service-switch %mdns-host-lookup-nss))
Thank you!