summaryrefslogtreecommitdiff
path: root/suweren/system.scm
blob: b7268d5a4741e3d98f7a0bd9bf68e24e64cc75d2 (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
(define-module (suweren system)
  #:use-module (gnu services)		; modify-services
  #:use-module (gnu services base)      ; guix-configuration
					; guix-service-type
					; login-configuration
					; login-service-type
  #:use-module (gnu services desktop)   ; %desktop-services
					; plasma-desktop-service-type
  #:use-module (gnu services sddm)      ; sddm-configuration
					; sddm-service-type
  #:use-module (gnu services xorg)      ; gdm-service-type
  #:use-module (gnu system)		; operating-system
  #:use-module (gnu system shadow)	; %base-user-accounts
  )

;; record guix-configuration ->
;; record guix-configuration
(define (guix configuration)
  (let ((extra-options* (list "--gc-keep-derivations=yes"
			      "--gc-keep-outputs=yes")))
    (guix-configuration (inherit configuration)
			(extra-options extra-options*))))

;; record login-configuration ->
;; record login-configuration
(define (login configuration)
  (login-configuration (inherit configuration)
		       (allow-empty-passwords? #f)))

;; record bootloader-configuration ->
;; string ->
;; (record file-system) ->
;; (record user-account) ->
;; record operating-system
(define-public (%suweren-operating-system bootloader-configuration*
					  host-name*
					  file-systems*
					  users*)
  (let* ((sddm-configuration* (sddm-configuration (theme "breeze")))

	 (plasma-desktop (service plasma-desktop-service-type))
	 (sddm (service sddm-service-type
			sddm-configuration*))

	 (%desktop-services* (modify-services %desktop-services
					      (delete gdm-service-type)
					      (guix-service-type configuration
								 =>
								 (guix configuration))
					      (login-service-type configuration
								  =>
								  (login configuration))))
	 (suweren-services (list plasma-desktop
				 sddm))

	 (services* (append %desktop-services*
			    suweren-services))
	 (users* (append %base-user-accounts
			 users*)))
    (operating-system (bootloader bootloader-configuration*)
		      (host-name host-name*)
		      (file-systems file-systems*)
		      (users users*)
		      (services services*))))