summaryrefslogtreecommitdiff
path: root/guix/system.scm
diff options
context:
space:
mode:
authorThanos Apollo <[email protected]>2024-05-10 09:11:37 +0300
committerThanos Apollo <[email protected]>2024-05-10 09:11:37 +0300
commit25d09ddb7a3ddbdf49cb62168a8ab5514651fe5a (patch)
tree0a671abc846a0baa42a1f096f970c13ec99a915d /guix/system.scm
parent9d258331dc840e17f26a1d1fadc31563c5b763d6 (diff)
Add guix configuration
Diffstat (limited to 'guix/system.scm')
-rw-r--r--guix/system.scm91
1 files changed, 91 insertions, 0 deletions
diff --git a/guix/system.scm b/guix/system.scm
new file mode 100644
index 0000000..2d38409
--- /dev/null
+++ b/guix/system.scm
@@ -0,0 +1,91 @@
+;; TODO: Use this as a base module and seperate each system/machine
+(use-modules (gnu)
+ (gnu services)
+ (gnu home services desktop)
+ (gnu home services desktop)
+ (gnu home services gnupg)
+ (nongnu packages linux)
+ (nongnu system linux-initrd))
+
+(use-service-modules cups desktop networking ssh xorg docker guix admin pm docker)
+
+(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" "flatpak"
+ "waybar" "mu" "gnupg" "pinentry" "password-store" "isync" "python"
+ "sbcl" "font-jetbrains-mono" "docker" "docker-cli" "icecat" "git"))
+ %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 gnome-desktop-service-type)
+ (service docker-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)))
+
+ (service tor-service-type)
+ (service cups-service-type)
+ (set-xorg-configuration
+ (xorg-configuration (keyboard-layout keyboard-layout))))
+ %desktop-services))
+ (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)))