guix: add (sudo-less) light
[~bandali/configs] / .config / guix / system / chaman.scm
index beddfa6..6a60e11 100644 (file)
@@ -1,63 +1,90 @@
-(use-modules (gnu))
-(use-service-modules desktop mail networking ssh xorg)
+(use-modules (gnu)
+             (gnu packages certs)       ; for nss-certs
+             (gnu packages emacs-xyz)   ; for exwm
+             (gnu packages linux))      ; for powertop
+(use-service-modules admin desktop mail networking pm ssh xorg)
 
 (operating-system
 
 (operating-system
-  (host-name "chaman")
-  (locale "en_CA.utf8")
-  (timezone "America/Toronto")
-  (keyboard-layout
-   (keyboard-layout "us" "basic"))
-  (bootloader
-   (bootloader-configuration
-    (bootloader grub-bootloader)
-    (target "/dev/sda")
-    (keyboard-layout keyboard-layout)))
-  (mapped-devices
-   (list (mapped-device
-          (source
-           (uuid "3d9d579d-3626-4fb2-9c16-beae804f1cf9"))
-          (target "groot")
-          (type luks-device-mapping))))
-  (file-systems
-   (cons* (file-system
-            (mount-point "/")
-            (device "/dev/mapper/groot")
-            (type "ext4")
-            (dependencies mapped-devices))
-          %base-file-systems))
-  (users (cons* (user-account
-                 (name "bandali")
-                 (group "users")
-                 (home-directory "/home/bandali")
-                 (supplementary-groups
-                  '("wheel" "netdev" "audio" "video")))
-                %base-user-accounts))
-  (packages
-   (append
-    (list (specification->package "nss-certs"))
-    %base-packages))
-  (services
-   (append
-    (list (service xfce-desktop-service-type)
-          (service openssh-service-type)
-          (set-xorg-configuration
-           (xorg-configuration
-            (keyboard-layout keyboard-layout)))
-          (dovecot-service #:config
-                           (dovecot-configuration
-                            ;; (log-path "/dev/stderr")
-                            (protocols (list (protocol-configuration
-                                              (name "imap"))))
-                            (ssl? "no")
-                            (listen '("127.0.0.1"))
-                            (disable-plaintext-auth? #f)
-                            (auth-mechanisms '("plain"))
-                            (postmaster-address "bandali@gnu.local")
-                            (mail-location "maildir:/home/bandali/mail/%d/%n/mail")
-                            (userdbs (list (userdb-configuration
-                                            (driver "static")
-                                            (args (list "uid=bandali" "gid=users" "home=/home/bandali/mail/%d/%n")))))
-                            (passdbs (list (passdb-configuration
-                                            (driver "passwd-file")
-                                            (args (list "/home/bandali/.config/dovecot/passwd"))))))))
-    %desktop-services)))
+ (host-name "chaman")
+ (locale "en_CA.utf8")
+ (timezone "Canada/Eastern")
+ (keyboard-layout
+  (keyboard-layout "us" "basic"))
+ (bootloader
+  (bootloader-configuration
+   (bootloader grub-bootloader)
+   (target "/dev/sda")
+   (keyboard-layout keyboard-layout)))
+ (mapped-devices
+  (list (mapped-device
+         (source
+          (uuid "283da85e-2c84-47e6-a8ca-20f4e8efb806"))
+         (target "groot")
+         (type luks-device-mapping))
+        (mapped-device
+         (source
+          (uuid "017ddebc-c2c3-4a0a-bda4-d47ec0bc67f0"))
+         (target "data")
+         (type luks-device-mapping))))
+ (file-systems
+  (cons* (file-system
+          (mount-point "/")
+          (device "/dev/mapper/groot")
+          (type "ext4")
+          (dependencies mapped-devices))
+         (file-system
+          (mount-point "/data")
+          (device "/dev/mapper/data")
+          (type "ext4")
+          (dependencies mapped-devices))
+         %base-file-systems))
+ (users
+  (cons* (user-account
+          (name "mab")
+          (group "users")
+          (home-directory "/home/mab")
+          (supplementary-groups
+           '("wheel" "netdev" "audio" "video")))
+         %base-user-accounts))
+ (packages
+  (cons* nss-certs
+         emacs-exwm
+         %base-packages))
+ (services
+  (cons*
+   (service xfce-desktop-service-type)
+   (set-xorg-configuration
+    (xorg-configuration
+     (keyboard-layout keyboard-layout)))
+   (dovecot-service
+    #:config
+    (dovecot-configuration
+     ;; (log-path "/dev/stderr")
+     (protocols (list (protocol-configuration
+                       (name "imap"))))
+     (ssl? "no")
+     (listen '("127.0.0.1"))
+     (disable-plaintext-auth? #f)
+     (auth-mechanisms '("plain"))
+     (postmaster-address "mab@gnu.local")
+     (mail-location "maildir:/home/mab/mail/%d/%n/mail")
+     (userdbs (list (userdb-configuration
+                     (driver "static")
+                     (args (list "uid=mab" "gid=users" "home=/home/mab/mail/%d/%n")))))
+     (passdbs (list (passdb-configuration
+                     (driver "passwd-file")
+                     (args (list "/data/dovecot-passwd")))))))
+   (service rottlog-service-type)
+   (service thermald-service-type)
+   (service tlp-service-type
+            (tlp-configuration
+             (cpu-boost-on-ac? #t)
+             (sound-power-save-on-bat 0)
+             (sound-power-save-controller? #f)
+             ;; (usb-blacklist "0e8f:00a8") ;for some reason doesn't seem to work
+             (usb-autosuspend? #f)))
+   (simple-service 'my-powertop-auto-tune activation-service-type
+                   #~(zero? (system* #$(file-append powertop "/sbin/powertop")
+                                     "--auto-tune")))
+   (simple-service 'light-udev-rules udev-service-type (list light))
+   %desktop-services)))