blob: 2a86298841053889ec1ad94e3040bd094279e47b (
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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
|
;; TODO: Use this as a base module and seperate each system/machine
(use-modules (gnu)
(gnu services)
(gnu services dbus)
(gnu services desktop)
(gnu system)
(gnu system setuid)
(gnu system nss)
(nongnu packages linux)
(nongnu system linux-initrd))
(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" "password-store"
"isync" "python" "font-jetbrains-mono" "docker"
"docker-cli" "icecat" "git" "avahi"))
%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"))))))
(service gnome-desktop-service-type)
(service openssh-service-type
(openssh-configuration
(permit-root-login 'prohibit-password)))
;; (service static-networking-service-type
;; (list %loopback-static-networking))
;; 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))))
(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)))
|