blob: 536e67bd430592e3f7b468567bd4186bf8a73d98 (
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
|
;;; Copyright © 2022 David Thompson <davet@gnu.org>
;;;
;;; This program is free software; you can redistribute it and/or
;;; modify it under the terms of the GNU General Public License as
;;; published by the Free Software Foundation; either version 3 of the
;;; License, or (at your option) any later version.
;;;
;;; This program is distributed in the hope that it will be useful,
;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
;;; General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with this program. If not, see
;;; <http://www.gnu.org/licenses/>.
;;; Commentary:
;;
;; Laptop OS configuration.
;;
;; To update using this OS configuration, run:
;;
;; guix system reconfigure ikaruga.scm
(use-modules (gnu)
(gnu services desktop)
(gnu services games)
(gnu services pm)
(nongnu packages linux)
(nongnu system linux-initrd))
(operating-system
(locale "en_US.utf8")
(timezone "America/New_York")
(keyboard-layout (keyboard-layout "us"))
(host-name "ikaruga")
(bootloader (bootloader-configuration
(bootloader grub-efi-bootloader)
(targets (list "/boot/efi"))
(keyboard-layout keyboard-layout)))
;; Use regular Linux with the big bad proprietary firmware blobs.
(kernel linux)
(initrd microcode-initrd)
;; sof-firmware is required for sound to work, linux-firmware takes
;; care of everything else.
(firmware (list sof-firmware linux-firmware))
(users (cons* (user-account
(name "dave")
(comment "David Thompson")
(group "users")
(home-directory "/home/dave")
(supplementary-groups
'("audio"
"kvm" ; for running VMs
"lp" ; for bluetooth
"netdev"
"video"
"wheel"))) ; for sudo
%base-user-accounts))
(packages (append (list (specification->package "nss-certs"))
%base-packages))
(services (modify-services (cons* (service gnome-desktop-service-type)
(service bluetooth-service-type)
(service thermald-service-type)
(service joycond-service-type)
%desktop-services)
;; Get nonguix substitutes.
(guix-service-type config =>
(guix-configuration
(inherit config)
(substitute-urls
(append (list "https://substitutes.nonguix.org")
%default-substitute-urls))
(authorized-keys
(append (list (local-file "./nonguix-signing-key.pub"))
%default-authorized-guix-keys))))))
(mapped-devices (list (mapped-device
(source (uuid "02b1ffb4-d868-4e5f-ab9b-8be3092e3a3c"))
(target "cryptroot")
(type luks-device-mapping))))
(file-systems (cons* (file-system
(mount-point "/boot/efi")
(device (uuid "91D3-F76B" 'fat32))
(type "vfat"))
(file-system
(mount-point "/")
(device "/dev/mapper/cryptroot")
(type "ext4")
(dependencies mapped-devices))
%base-file-systems)))
|