summaryrefslogtreecommitdiff
path: root/deployment/systems/akashi.scm
blob: 8dd0e800efd695b469eca770bf21e1c032759bd1 (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
;;; SPDX-License-Identifier: GPL-3.0-or-later
;;; SPDX-FileCopyrightText: 2024-2025 Marek Paśnikowski <marek@marekpasnikowski.pl>

(define-module (deployment systems akashi)
  #:use-module ((gnu packages linux)      #:prefix gnu:packages:linux:)
  #:use-module ((gnu services guix)       #:prefix gnu:services:guix:)
  #:use-module ((machines thinkpad-x200)  #:prefix machines:thinkpad-x200:)
  #:use-module ((sovereign systems)       #:prefix sovereign:systems:)
  #:use-module ((suweren commons sudoers) #:prefix suweren:commons:sudoers:)
  #:use-module (users id1000))

(define root-partition
  ((@ (gnu system file-systems) file-system)
   (mount-point "/")
   (device ((@ (gnu system file-systems) file-system-label) "akashi-root"))
   (type "ext4")))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(define host-name*
  "akashi")

(define (file-systems)
  (use-modules (suweren system))
  (append %suweren-file-systems
	  (list root-partition)))

(define keyboard-layout*
  ((@ (gnu system keyboard) keyboard-layout)
   "pl"))

(define (services)
  (use-modules (suweren system))
  (let* ((home-environments `((,uid1000-name ,uid1000-home-environment)))
	 (guix-home ((@ (gnu services) service)
		     gnu:services:guix:guix-home-service-type
		     home-environments)))
    (append sovereign:systems:%sovereign-services
            (list guix-home
		  ((@ (gnu services base) udev-rules-service)
		   'adb-udev
		   (@ (gnu packages android) android-udev-rules))))))

(define users
  (list uid1000-account))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(define-public operating-system*
  (let* ((patter-placeholder #f)
	 (timezone* "Europe/Warsaw"))
    ((@ (gnu system) operating-system)
     (kernel gnu:packages:linux:linux-libre)
     (bootloader (machines:thinkpad-x200:bootloader-configuration* keyboard-layout*))
     (keyboard-layout keyboard-layout*)
     (host-name host-name*)
     (file-systems (file-systems))
     (swap-devices (machines:thinkpad-x200:swap-devices* host-name*))
     (users users)
     (timezone timezone*)
     (locale polish-locale-string)
     (locale-definitions %suweren-locale-definitions)
     (services (services))
     (sudoers-file sovereign:systems:%sovereign-sudoers-specification))))