diff options
Diffstat (limited to 'system.scm')
| -rw-r--r-- | system.scm | 169 |
1 files changed, 169 insertions, 0 deletions
diff --git a/system.scm b/system.scm new file mode 100644 index 0000000..637f04a --- /dev/null +++ b/system.scm @@ -0,0 +1,169 @@ +;; This is an operating system configuration generated +;; by the graphical installer. +;; +;; Once installation is complete, you can learn and modify +;; this file to tweak the system configuration, and pass it +;; to the 'guix system reconfigure' command to effect your +;; changes. + + +;; Indicate which modules to import to access the variables +;; used in this configuration. +(use-modules (gnu) + (nongnu packages linux) + (nongnu system linux-initrd) + (mitch packages tailscale) + (mitch services tailscale)) +(use-service-modules cups desktop networking ssh xorg pm avahi dbus mcron) +(use-package-modules fonts wm) + +(operating-system + (locale "en_CA.utf8") + (timezone "America/Halifax") + (keyboard-layout (keyboard-layout "us" "dvorak" + #:options '("ctrl:nocaps"))) + (host-name "claver") + + (kernel linux) + + (firmware (list linux-firmware + radeon-firmware)) + + ;; The list of user accounts ('root' is implicit). + (users (cons* (user-account + (name "mitch") + (comment "Mitch Taylor") + (group "users") + (home-directory "/home/mitch") + (supplementary-groups '("wheel" "netdev" "audio" "video"))) + %base-user-accounts)) + + ;; Packages installed system-wide. Users can also install packages + ;; under their own account: use 'guix search KEYWORD' to search + ;; for packages and 'guix install PACKAGE' to install a package. + (packages + (append + (map specification->package + '("zile" + "git" + "gvfs" + "brightnessctl" + "sway" + "wmenu" + "foot" + "tailscale" + "bluez" + "blueman")) + %base-packages)) + + ;; Below is the list of system services. To search for available + ;; services, run 'guix system search KEYWORD' in a terminal. + (services + (append + (modify-services %base-services + (delete console-font-service-type) + (guix-service-type config => + (guix-configuration + (inherit config) + (extra-options '("--max-jobs=4" "--cores=4")))) + (mingetty-service-type config => + (mingetty-configuration + (inherit config) + ;; Automatically log in as "guest". + (auto-login "mitch")))) + (list + (service elogind-service-type) + + (service console-font-service-type + (map (lambda (tty) + ;; Use a larger font for HIDPI screens + (cons tty (file-append + font-terminus + "/share/consolefonts/ter-132n"))) + '("tty1" "tty2" "tty3"))) + + (service screen-locker-service-type + (screen-locker-configuration + (name "swaylock") + (program (file-append swaylock "/bin/swaylock")) + (using-pam? #t) + (using-setuid? #f))) + + polkit-wheel-service + + (service network-manager-service-type) + (service wpa-supplicant-service-type) ;; Needed by NetworkManager + (service bluetooth-service-type + (bluetooth-configuration + (auto-enable? #t))) + (service usb-modeswitch-service-type) + + (service power-profiles-daemon-service-type) + (service thermald-service-type) + + (service x11-socket-directory-service-type) + + (service avahi-service-type) + (service udisks-service-type) + (service upower-service-type) + (service cups-pk-helper-service-type) + (service geoclue-service-type) + (service polkit-service-type) + (service dbus-root-service-type) + fontconfig-file-system-service ;; Manage the fontconfig cache + + (service ntp-service-type) + + ;; To configure OpenSSH, pass an 'openssh-configuration' + ;; record as a second argument to 'service' below. + (service openssh-service-type) + (set-xorg-configuration + (xorg-configuration (keyboard-layout keyboard-layout))) + + (service tailscaled-service-type) + + (simple-service 'system-cron-jobs + mcron-service-type + (list + ;; Run `guix gc' 5 minutes after midnight every day. + ;; Clean up generations older than 2 months and free + ;; at least 10G of space. + #~(job "5 0 * * *" "guix gc -d 2m -F 10G"))) + + + (simple-service 'add-nonguix-substitutes + guix-service-type + (guix-extension + (substitute-urls + (cons* "https://nonguix-proxy.ditigal.xyz" + %default-substitute-urls)) + (authorized-keys + (append (list (plain-file "nonguix.pub" + "(public-key (ecc (curve Ed25519) (q #C1FD53E5D4CE971933EC50C9F307AE2171A2D3B52C804642A7A35F84F3A4EA98#)))")) + %default-authorized-guix-keys))))))) + + (bootloader (bootloader-configuration + (bootloader grub-efi-bootloader) + (targets + (list "/boot/efi")) + (keyboard-layout keyboard-layout))) + + (mapped-devices (list (mapped-device + (source (uuid + "bc3f2c7f-d158-40ed-9734-5512d8b146ca")) + (target "cryptroot") + (type luks-device-mapping)))) + + ;; The list of file systems that get "mounted". The unique + ;; file system identifiers there ("UUIDs") can be obtained + ;; by running 'blkid' in a terminal. + (file-systems (cons* (file-system + (mount-point "/") + (device "/dev/mapper/cryptroot") + (type "btrfs") + (dependencies mapped-devices)) + (file-system + (mount-point "/boot/efi") + (device (uuid "B22C-45CF" + 'fat32)) + (type "vfat")) %base-file-systems))) |
