summaryrefslogtreecommitdiff
path: root/guix/system.scm
blob: 6dd0be7aeab641ed22e6c356eb58364e81b0fd59 (about) (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
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"
		 "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)))