summary refs log tree commit diff
path: root/steel.scm
blob: c4754cc19574287f61aa7787b2ac05eb39009594 (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
(use-modules (gnu)
             ((gnu packages emacs-xyz) #:select (emacs-exwm-no-x-toolkit))
             ((gnu packages suckless) #:select (slock))
             (gnu services dbus)
             (gnu services desktop)
             (gnu services dict)
             (gnu services networking)
             (gnu services sound)
             (gnu services virtualization)
             (gnu services vpn)
             (gnu services xorg))

(operating-system
  (host-name "steel")
  (timezone "Europe/London")
  (locale "ta_IN.utf8")
  (kernel-arguments (cons "zswap.enabled=1"
                          %default-kernel-arguments))
  (bootloader (bootloader-configuration
               (bootloader grub-bootloader)
               (targets (list "/dev/sda"))))
  (mapped-devices (list (mapped-device
                         ;; LUKS partition UUID
			 (source (uuid "8f9d63b5-2030-4c3c-8779-3ab711ad2a9f"))
			 (target "cryptlvm")
			 (type luks-device-mapping))
			(mapped-device
			 (source "VolumeGroup")
			 (targets (list "VolumeGroup-root"
					"VolumeGroup-home"
					"VolumeGroup-swap"))
			 (type lvm-device-mapping))))
  (file-systems
   (append (list (file-system
                   (device (file-system-label "root"))
                   (mount-point "/")
                   (type "btrfs")
                   (options "compress-force=zstd")
		   (dependencies mapped-devices))
                 (file-system
                   (device (file-system-label "home"))
                   (mount-point "/home")
                   (type "ext4")
		   (dependencies mapped-devices))
                 (file-system
                   (device "none")
                   (mount-point "/tmp")
                   (type "tmpfs")
                   (options "size=8G")))
           %base-file-systems))
  (swap-devices (list (swap-space
                        (target (file-system-label "swap"))
                        (dependencies mapped-devices)
                        (discard? #t))))
  (users (cons* (user-account
                 (name "arun")
                 (comment "Arun Isaac")
                 (group "users")
                 (supplementary-groups '("audio"
                                         "video"
                                         "wheel"
                                         "dialout"))
                 (home-directory "/home/arun"))
                (user-account
                 (name "nardhini")
                 (comment "Nardhini")
                 (group "users")
                 (supplementary-groups '("audio" "video"))
                 (home-directory "/home/nardhini"))
                (user-account
                 (name "guest")
                 (comment "Guest")
                 (group "users")
                 (supplementary-groups '("audio" "video"))
                 (home-directory "/home/guest"))
                %base-user-accounts))
  ;; This is where we specify system-wide packages.
  (packages (cons* emacs-exwm-no-x-toolkit
                   (make-glibc-utf8-locales glibc
                                            #:locales (list "en_GB" "en_US" "ta_IN")
                                            #:name "glibc-tamil-locales")
                   %base-packages))
  (services (cons* (service dbus-root-service-type)
                   (service elogind-service-type)
                   fontconfig-file-system-service
                   (service screen-locker-service-type
                            (screen-locker-configuration
                             (name "slock")
                             (program (file-append slock "/bin/slock"))))
                   (service alsa-service-type)
                   (service dhcp-client-service-type)
                   (service dicod-service-type)
                   (service ntp-service-type)
                   (service pulseaudio-service-type)
                   (service qemu-binfmt-service-type
                            (qemu-binfmt-configuration
                             (platforms (lookup-qemu-platforms "riscv64"))))
                   (service slim-service-type
                            (slim-configuration
                             (xorg-configuration
                              (xorg-configuration
                               (extra-config
                                ;; Enable tap on touchpad.
                                (list "Section \"InputClass\"
  Identifier \"SynPS/2 Synaptics TouchPad\"
  Driver \"libinput\"
  Option \"Tapping\" \"on\"
EndSection"))))))
                   (service udisks-service-type)
                   ;; TODO: Manage WiFi passwords as secrets that
                   ;; don't get into the store.
                   (service wpa-supplicant-service-type
                            (wpa-supplicant-configuration
                             (interface "wlp0s29u1u3")
                             (config-file (local-file "wpasupplicant.conf"))))
                   (service wireguard-service-type
                            (wireguard-configuration
                             (addresses (list "192.168.2.15/24"))
                             (peers (list (wireguard-peer
                                           (name "mugam")
                                           (endpoint "139.59.75.54:51820")
                                           (public-key "9JMD6qvC0n01R3Ky/4hk4Z2LraNQJtCCeYZi0UYEvAA=")
                                           (allowed-ips (list "192.168.2.0/24")))))))
                   (service block-facebook-hosts-service-type)
                   %base-services))
  ;; Allow resolution of '.local' host names with mDNS.
  (name-service-switch %mdns-host-lookup-nss))