(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*))))