summaryrefslogtreecommitdiff
path: root/guix/system-base.scm
diff options
context:
space:
mode:
Diffstat (limited to 'guix/system-base.scm')
-rw-r--r--guix/system-base.scm163
1 files changed, 163 insertions, 0 deletions
diff --git a/guix/system-base.scm b/guix/system-base.scm
new file mode 100644
index 0000000..0f0e877
--- /dev/null
+++ b/guix/system-base.scm
@@ -0,0 +1,163 @@
+;; TODO: Use this as a base module and seperate each system/machine
+
+(define-module (system-base)
+ #:use-module (gnu)
+ #:use-module (gnu services)
+ #:use-module (gnu services dbus)
+ #:use-module (gnu system)
+ #:use-module (gnu system setuid)
+ #:use-module (gnu system nss)
+ #:use-module (nongnu packages linux)
+ #:use-module (nongnu system linux-initrd)
+ #:use-module (rosenthal services networking)
+ #:export (system-base))
+
+(use-service-modules cups desktop networking ssh xorg docker guix
+ admin pm docker)
+
+(use-package-modules nfs certs shells ssh linux bash emacs networking
+ wm fonts libusb cups freedesktop file-systems version-control
+ package-management)
+
+
+(operating-system
+ (locale "en_US.utf8")
+ (timezone "Europe/Athens")
+ (keyboard-layout (keyboard-layout "us"))
+ (host-name "zeus")
+
+ ;; TODO: Use the full linux kernel only on the desktop
+ (kernel linux)
+ (initrd microcode-initrd)
+ (firmware (list linux-firmware))
+
+ ;; The list of user accounts ('root' is implicit).
+ (users (cons* (user-account
+ (name "thanos")
+ (comment "Thanos Apollo")
+ (group "users")
+ (home-directory "/home/thanos")
+ (supplementary-groups '("wheel" "netdev" "audio" "video" "docker")))
+ %base-user-accounts))
+
+ ;; Packages installed system-wide.
+ (packages
+ (append (map specification->package
+ '("sway" "swaylock" "swaylock-effects" "swaybg"
+ "waybar" "gnupg" "pinentry" "font-jetbrains-mono"
+ "docker" "docker-cli"))
+ %base-packages))
+
+ ;; Below is the list of system services. To search for available
+ ;; services, run 'guix system search KEYWORD' in a terminal.
+ (services
+ (append (list
+ (service docker-service-type)
+ ;; tty login
+ (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 greetd-service-type
+ (greetd-configuration
+ (greeter-supplementary-groups
+ (list "video" "input"))
+ (terminals
+ (list
+ (greetd-terminal-configuration
+ (terminal-vt "1")
+ (terminal-switch #t))
+ (greetd-terminal-configuration
+ (terminal-vt "2"))
+ (greetd-terminal-configuration
+ (terminal-vt "3"))
+ (greetd-terminal-configuration
+ (terminal-vt "4"))
+ (greetd-terminal-configuration
+ (terminal-vt "5"))))))
+
+
+ (service gnome-desktop-service-type)
+
+ (service openssh-service-type
+ (openssh-configuration
+ (permit-root-login 'prohibit-password)))
+
+ ;; TODO: Fix swaylock
+ (service screen-locker-service-type
+ (screen-locker-configuration
+ (name "swaylock")
+ (program (file-append swaylock "/bin/swaylock"))
+ (using-pam? #t)
+ (using-setuid? #f)))
+
+ ;; Networking services
+ (service network-manager-service-type)
+ (service wpa-supplicant-service-type) ;; Needed by NetworkManager
+ (service modem-manager-service-type) ;; For cellular modems
+
+ polkit-wheel-service
+
+ (service tor-service-type)
+ (service cups-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
+
+ ;; Power and thermal management services
+ (service thermald-service-type)
+ (service tlp-service-type
+ (tlp-configuration
+ (cpu-boost-on-ac? #t)
+ (wifi-pwr-on-bat? #t)))
+ (service tailscale-service-type))
+
+ (modify-services %base-services
+ (delete login-service-type)
+ (delete mingetty-service-type)
+ (delete console-font-service-type))))
+
+
+ (bootloader (bootloader-configuration
+ (bootloader grub-efi-bootloader)
+ (targets (list "/boot/efi"))
+ (keyboard-layout keyboard-layout)))
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+ (swap-devices (list (swap-space
+ (target (uuid
+ "10551e45-7810-4171-a4b2-87372ae5bdb4")))))
+
+ ;; run 'lsblk -f' to get UUIDs.
+ (file-systems (cons* (file-system
+ (mount-point "/hdd")
+ (device (uuid "b0fddf60-47ff-469f-b135-8f6b58812c99"
+ 'xfs))
+ (type "xfs"))
+ (file-system
+ (mount-point "/home")
+ (device (uuid "4efbc805-e89b-46b8-b895-b1ce807698c8"
+ 'ext4))
+ (type "ext4"))
+ (file-system
+ (mount-point "/")
+ (device (uuid
+ "e350994d-4c98-4d04-9867-29c9fc779026"
+ 'ext4))
+ (type "ext4"))
+ (file-system
+ (mount-point "/boot/efi")
+ (device (uuid "F2A9-FB50"
+ 'fat32))
+ (type "vfat")) %base-file-systems)))