summaryrefslogtreecommitdiff
path: root/system.scm
diff options
context:
space:
mode:
Diffstat (limited to 'system.scm')
-rw-r--r--system.scm169
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)))