summaryrefslogtreecommitdiff
path: root/.config/guix/garm.scm
blob: 31d662557069d26fba7efb0b44eb399835c28b3d (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
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; This configuration adapts the base-level 'ymir' ;;
;; OS declaration for 'garm', a laptop.            ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(define-module (garm)
  #:use-module (gnu)
  #:use-module (gnu home)
  #:use-module (gnu home services)
  #:use-module (gnu home services syncthing)
  #:use-module (gnu packages)
  #:use-module (gnu packages linux)
  #:use-module (gnu packages gnome)
  #:use-module (gnu packages networking)
  #:use-module (gnu services)
  #:use-module (gnu services guix)
  #:use-module (gnu services pm)

  ;; sem 24.2
  #:use-module (gnu packages virtualization)
  #:use-module (gnu services virtualization)

  #:use-module (guix gexp)
  #:use-module (modules base)
  #:use-module (modules dwm)
  #:use-module (modules mail)
  #:use-module (modules utils)
  #:use-module (modules xorg)
  #:use-module (modules ymir)
  #:use-module (modules pdf))


(define home
  (home-environment
   (services
    `(,@bd-base-home-services
      ,@bd-mail-home-services
      ,@bd-desktop-home-services
      ,@bd-pdf-services
      ,@bd-dwm-home-services
      ,(service home-syncthing-service-type)))))


(operating-system
  (inherit ymir)
  (host-name "garm")

  ;; (all packages are system wide)
  (packages
   `(,@bd-base-system-packages
     ,@bd-desktop-system-packages
     ,@bd-dwm-system-packages
     ,@bd-mpd-package
     ,@bd-games-packages

     ;; machine-specific packages
     ,@(list
        brightnessctl
        macchanger
        tlp

        ;; sem 24.2
        qemu
        virt-manager
        )))

  (services
   `(,@bd-base-system-services
     ,@bd-desktop-system-services
     ,@bd-mpd-service
     ,(service guix-home-service-type
               `((,username ,home)))
     ,(service tlp-service-type
               (tlp-configuration
                (cpu-scaling-governor-on-ac (list "powersave"))
                (cpu-scaling-governor-on-bat (list "powersave"))
                (energy-perf-policy-on-ac "powersave")
                (energy-perf-policy-on-bat "powersave")
                (pcie-aspm-on-ac "powersave")
                (pcie-aspm-on-bat "powersave")
                (sched-powersave-on-bat? #t)
                (sched-powersave-on-ac? #t)
                (sata-linkpwr-on-ac "min_power")
                (sata-linkpwr-on-bat "min_power")
                (start-charge-thresh-bat0 60)
                (stop-charge-thresh-bat0 80)))
     ,(service thermald-service-type)
     ,(simple-service 'network-manager-applet
                      profile-service-type
                      (list network-manager-applet))

     ;; sem 24.2
     ,(service libvirt-service-type)))

  (mapped-devices (list (mapped-device
                         (source (uuid "671c8094-c8cd-47f9-8332-25513f16917b"))
                         (target "hidden")
                         (type luks-device-mapping))))

  (file-systems (cons* (file-system
                         (mount-point "/boot/efi")
                         (device (uuid
                                  "1A7A-026F"
                                  'fat32))
                         (type "vfat"))
                       (file-system
                         (mount-point "/home")
                         (device "/dev/mapper/hidden")
                         (type "ext4")
                         (dependencies mapped-devices))
                       (file-system
                         (mount-point "/")
                         (device (uuid
                                  "0a0b9520-308f-4072-a62b-b91ffacdc5b0"
                                  'ext4))
                         (type "ext4")) %base-file-systems)))