-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathguix.scm
259 lines (247 loc) · 5.47 KB
/
guix.scm
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
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
;; This is an operating system configuration generated
;; by the graphical installer.
(use-modules
(srfi srfi-1)
(gnu)
(gnu system nss)
(nongnu packages linux)
(flat packages emacs)
(nongnu system linux-initrd)
(guix packages)
(guix download)
(guix utils)
(guix channels)
(guix inferior)
(ice-9 popen)
(rnrs io ports))
(use-service-modules
networking
sound
vpn
ssh
nix
xorg
desktop
pm)
(use-package-modules
certs
freedesktop
gl
gnome
pulseaudio
gcc
mono
vpn
virtualization
tls
sqlite
version-control
xorg
linux
compression
video
lxde
display-managers
guile
commencement
web-browsers
password-utils
fonts
syncthing
gnuzilla
ssh
package-management
curl
emacs
emacs-xyz
mail
terminals
xdisorg
gnupg
mate
readline
tex
maths
libffi
pdf
lisp
lisp-xyz
wm
package-management)
; setup custom sudo rules so some clearly specified commands can be
;; run without password, ALWAYS use absolute filenames here! To
;; continue working when I install a tool as user, I setup sudo-rules
;; for both the system-tools and my user-tools.
(define %sudoers-specification
(plain-file "sudoers" "\
root ALL=(ALL) ALL
%wheel ALL=(ALL) ALL
%wheel ALL=(ALL) NOPASSWD: /run/current-system/profile/sbin/shutdown,\
/run/current-system/profile/sbin/reboot,\
/run/current-system/profile/bin/light,\
/run/current-system/profile/bin/mount,\
/run/current-system/profile/bin/umount"))
(operating-system
(locale "en_US.utf8")
(timezone "Europe/Berlin")
(keyboard-layout
(keyboard-layout "de"
"nodeadkeys"
#:options
'("ctrl:nocaps")))
(host-name "klingenberg-laptop")
(users
(cons*
(user-account
(name "klingenberg")
(comment "Klingenberg")
(group "users")
(home-directory "/home/klingenberg")
(supplementary-groups
'("wheel" "netdev" "audio" "video" "lp" "dialout")))
%base-user-accounts))
(sudoers-file %sudoers-specification)
(packages
(append
(list
(specification->package "nss-certs")
;; xf86-video-intel
intel-vaapi-driver
mesa
mesa-opencl
mesa-utils
light
sbcl
sbcl-slynk
stumpwm
`(,stumpwm "lib")
stumpish
sbcl-stumpwm-ttf-fonts
font-dejavu
font-adobe-source-code-pro
font-fira-code
font-fira-mono
font-fira-sans
xdg-utils
sbcl-stumpwm-pass
sbcl-stumpwm-wifi
sbcl-stumpwm-stumptray
emacs-stumpwm-mode
;; emacs-native-comp
emacs
;; emacs-exwm
emacs-guix
;; emacs-pdf-tools
;; emacs-pulseaudio-control
emacs-vterm
guile-gcrypt
acpi
mu
isync
openssl
qemu
zip
unzip
nix
password-store
;; libffi
;; guile-3.0-latest
gcc
gcc-toolchain
arandr
xrandr
pinentry-emacs
;; pinentry
gnupg
openvpn
sqlite
mate-icon-theme-faenza
curl
gvfs
xinput
git)
%base-packages))
(services
(append
(list
;; (service xfce-desktop-service-type)
(service openssh-service-type)
(service slim-service-type
(slim-configuration
(display ":1")
(vt "vt7")
(auto-login? #t)
(default-user "klingenberg")
(xorg-configuration
(xorg-configuration
(keyboard-layout keyboard-layout)))))
(service nix-service-type)
(service thermald-service-type)
(service openvpn-client-service-type
(openvpn-client-configuration))
(bluetooth-service
#:auto-enable? #t))
(remove (lambda (service)
(eq? (service-kind service) gdm-service-type))
%desktop-services)
;; %desktop-services
))
(bootloader
(bootloader-configuration
(bootloader grub-efi-bootloader)
(target "/boot/efi")
(keyboard-layout keyboard-layout)))
(swap-devices
(list (uuid "1865ada0-a67d-47ac-b4fa-8403981404c9")))
(file-systems
(cons* (file-system
(mount-point "/boot/efi")
(device (uuid "F62F-24CC" 'fat32))
(type "vfat"))
(file-system
(mount-point "/")
(device
(uuid "1a912f56-30f5-4eeb-b275-456446dfd5af"
'ext4))
(type "ext4"))
%base-file-systems))
(setuid-programs
(append
(list
"/run/current-system/profile/sbin/shutdown"
"/run/current-sytem/profile/sbin/reboot")
%setuid-programs))
(kernel
(specification->package "linux")
;; (specification->package "linux-libre")
;; (let*
;; ((channels
;; (list
;; (channel
;; (name 'nonguix)
;; (url "https://gitlab.com/nonguix/nonguix")
;; (commit "0a5cd133a3097b192702c8b806f2a6f54182118d"))
;; (channel
;; (name 'flat)
;; (url "https://github.com/flatwhatson/guix-channel.git")
;; (commit "c93cbe457c23709350a6e432e0e196263eb4fc08"))
;; (channel
;; (name 'guix)
;; (url "https://git.savannah.gnu.org/git/guix.git")
;; (commit "37d8def701839200c44c76cb2fa2abfb27a7b88b"))))
;; (inferior
;; (inferior-for-channels channels)))
;; (first (lookup-inferior-packages inferior "linux" "5.11.10")))
)
;; (kernel-arguments
;; (append '(
;; "i915" "enable_dc=2"
;; "i915" "disable_power_well=0"
;; "i915" "enable_fbc=1"
;; "i915" "enable_guc=3"
;; "i915" "enable_dpcd_backlight=1"
;; )
;; %default-kernel-arguments))
(initrd microcode-initrd)
(firmware
(list linux-firmware)))