summary refs log tree commit diff
path: root/steel.scm
diff options
context:
space:
mode:
authorArun Isaac2024-05-31 15:48:51 +0100
committerArun Isaac2024-05-31 15:48:51 +0100
commit6da8c3e42df341478edaed1f81dee1f232703110 (patch)
tree37b374c990d2dd2ab2736c043ed526033c198b82 /steel.scm
downloadmachines-6da8c3e42df341478edaed1f81dee1f232703110.tar.gz
machines-6da8c3e42df341478edaed1f81dee1f232703110.tar.lz
machines-6da8c3e42df341478edaed1f81dee1f232703110.zip
Add steel system configuration.
* steel.scm: New file.
Diffstat (limited to 'steel.scm')
-rw-r--r--steel.scm127
1 files changed, 127 insertions, 0 deletions
diff --git a/steel.scm b/steel.scm
new file mode 100644
index 0000000..c4754cc
--- /dev/null
+++ b/steel.scm
@@ -0,0 +1,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))