#| ▞▀▖ ▗ ▞▀▖ ▐ ▌▄▖▌ ▌▄ ▚▗▘ ▚▄ ▌ ▌▞▀▘▜▀ ▞▀▖▛▚▀▖ ▌ ▌▌ ▌▐ ▗▚ ▖ ▌▚▄▌▝▀▖▐ ▖▛▀ ▌▐ ▌ ▝▀ ▝▀▘▀▘▘ ▘ ▝▀ ▗▄▘▀▀ ▀ ▝▀▘▘▝ ▘ |# (define-module (.files os) #:use-module ((.files home) #:select (desktop-home-env)) #:use-module (.files composers) #:use-module (gnu) #:use-module ((gnu services guix) #:select (guix-home-service-type)) #:use-module (gnu system) #:use-module (nongnu packages linux) #:use-module (nongnu system linux-initrd) #:export (desktop-os)) (use-service-modules admin audio dbus dns linux guix networking pm sysctl) ;;; Components (define keeb (keyboard-layout "us" #:options (str. ctrl:nocaps ; capslock->ctrl compose:rctrl))) (define haugh (user-account (name "haugh") (group "users") (comment "AVE DEUS MORTIS") (supplementary-groups (str. wheel ; sudo netdev ; network devices kvm tty input ;lp ; control bluetooth devices audio ; control audio devices video)))) ; control video devices (define-syntax WD500 (syntax-rules (boot part1 part2 part3 mapped) "Western Digital 500GB SSD" ((_ boot) [redacted]) ((_ part1) [redacted]) ((_ part2) [redacted]) ((_ part3) [redacted]) ((_ part3 mapped) [redacted]))) ;;; Instantiation (define desktop-os (operating-system (host-name "desktop") (locale "en_US.utf8") (timezone "America/New_York") (users (cons haugh %base-user-accounts)) (kernel linux) (initrd microcode-initrd) (firmware (list linux-firmware)) ;; Allow resolution of '.local' host names with mDNS. (name-service-switch %mdns-host-lookup-nss) ;; I/O (keyboard-layout keeb) (bootloader (WD500 boot)) (mapped-devices (list (WD500 part3))) (swap-devices (list (WD500 part2))) (file-systems (cons* (WD500 part1) (WD500 part3 mapped) %base-file-systems)) (packages (append (pkg. bash bash-completion ;bluez ; bluetooth ;brightnessctl ; backlight/LED git ntfs-3g vim) %base-packages)) (services (cons* (simple-service 'add-nonguix-substitute-server guix-service-type (guix-extension (substitute-urls (cons "https://nonguix-proxy.ditigal.xyz" %default-substitute-urls)) (authorized-keys (cons (plain-file "nonguix.pub" "(public-key (ecc (curve Ed25519) (q #C1FD53E5D4CE971933EC50C9F307AE2171A2D3B52C804642A7A35F84F3A4EA98#)))") %default-authorized-guix-keys)))) (service dhcpcd-service-type (dhcpcd-configuration (option (str. rapid_commit interface_mtu)) (no-option (str. nd_rdnss dhcp6_name_servers domain_name_servers domain_name domain_search)) (static (str. domain_name_servers=192.168.1.1)))) (service guix-home-service-type `(("haugh" ,desktop-home-env))) %base-services)))) desktop-os