summaryrefslogtreecommitdiff
path: root/systems/ayase/guix-ayase.org
blob: 9fd2acc8da4b963782babdf615d0d38c91fa8907 (about) (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
* System Configuration

[[https://guix.gnu.org/manual/devel/en/html_node/System-Configuration.html]]

** operating-system Reference

[[https://guix.gnu.org/manual/devel/en/html_node/operating_002dsystem-Reference.html]]

#+NAME: OPERATING-SYSTEM
#+BEGIN_SRC scheme :tangle system-configuration.scm
  (define-module (systems ayase system-configuration)
    #:use-module (gnu)
    #:use-module (gnu services cups)
    #:use-module (gnu services desktop)
    #:use-module (gnu services networking)
    #:use-module (gnu services ssh)
    #:use-module (gnu services xorg))

  ;; DATA

  ;; ABSTRACTION 2

  (define efi-partition
    (file-system (mount-point "/boot/efi")
                 (device (uuid "B4FB-CBD9" 'fat32))
                 (type "vfat")))

  (define marek-account
    (user-account (name "marek")
                  (comment "Marek Paśnikowski")
                  (group "users")
                  (home-directory "/home/marek")
                  (supplementary-groups (list "wheel"
                                              "netdev"
                                              "audio"
                                              "video"))))

  (define root-partition
    (file-system (mount-point "/")
                 (device (uuid "615a98cd-a632-4ee5-a6f4-e5ebcaa6fb8c" 'ext4))
                 (type "ext4")))

  (define xorg-configuration
    '(xorg-configuration (keyboard-layout keyboard-layout)))

  ;; ABSTRACTION 1

  (define ayase-file-systems
    (list root-partition
          efi-partition))

  (define ayase-user-accounts
    (list marek-account))

  (define bootloader
    (bootloader-configuration (bootloader grub-efi-bootloader)
                              (targets (list "/boot/efi"))
                              (keyboard-layout (keyboard-layout "pl"))))

  (define main-swap
    (swap-space (target (uuid "cc6bbf7c-e42a-4ac3-a9ae-3b14d3b4b841"))))

  (define system-packages
    (list (specification->package "emacs")
          (specification->package "emacs-exwm")
          (specification->package "emacs-desktop-environment")))

  (define system-services
    (list (service openssh-service-type)
          (service tor-service-type)
          (service cups-service-type)
          (set-xorg-configuration xorg-configuration)))

  ;; PUBLIC

  (operating-system (bootloader bootloader)
                    (keyboard-layout (keyboard-layout "pl"))
                    (host-name "ayase")
                    (file-systems (append %base-file-systems
                                          ;; %distribution-file-systems
                                          ayase-file-systems))
                    (swap-devices (list main-swap))
                    (users (append %base-user-accounts
                                   ayase-user-accounts))
                    (packages (append %base-packages
                                      ;; %distribution-packages
                                      system-packages))
                    (timezone "Europe/Warsaw")
                    (locale "pl_PL.utf8")
                    (services (append %desktop-services
                                      ;; %distribution-services
                                      system-services)))
#+END_SRC