(define-module (suweren system) #:use-module (gnu packages kde-pim) ; kgpg #:use-module (gnu services) ; modify-services ; profile-service-type ; simple-service #: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 syncthing) ; syncthing-configuration ; syncthing-service-type #:use-module (gnu services xorg) ; gdm-service-type #:use-module (gnu system) ; operating-system #:use-module (gnu system file-systems) ; %base-file-systems #:use-module (gnu system shadow) ; %base-user-accounts #:use-module (guix channels) ; %default-channels #:use-module (guix gexp) ; plain-file #:use-module (suweren commons sudoers) ; %sudoers-specification* ) ;; (list record* package) (define packages (list kgpg)) ;; record* service (define profile (simple-service 'distribution-packages profile-service-type packages)) ;; record guix-configuration -> ;; record guix-configuration (define (guix configuration) (let* ((deployment-commit "c24ce7cb11e74da13d491f9de3c4b7040a069f43") (distribution-commit "7d17bded11ef1239592e6e5abd40ceee1e99cbb8") (marekpasnikowski-fingerprint (openpgp-fingerprint "590E 500F E39D 26B3 E60B 743B 6D81 B120 7711 899F")) (nonguix-commit "897c1a470da759236cc11798f4e0a5f7d4d59fbc") (nonguix-fingerprint (openpgp-fingerprint "2A39 3FFF 68F4 EF7A 3D29 12AF 6F51 20A0 22FB B2D5")) (deployment-introduction (make-channel-introduction deployment-commit marekpasnikowski-fingerprint)) (deployment-url "https://git.marekpasnikowski.pl/git/deployment.git") (distribution-introduction (make-channel-introduction distribution-commit marekpasnikowski-fingerprint)) (distribution-url "https://git.marekpasnikowski.pl/git/distribution.git") (nonguix-authorized-guix-key-content (string-append "(public-key \n" "(ecc \n" "(curve Ed25519) \n" "(q #C1FD53E5D4CE971933EC50C9F307AE2171A2D3B52C804642A7A35F84F3A4EA98#))) \n")) (nonguix-authorized-guix-key-name "nonguix-authorized-guix-key") (nonguix-introduction (make-channel-introduction nonguix-commit nonguix-fingerprint)) (nonguix-url "https://gitlab.com/nonguix/nonguix") (deployment (channel (name 'deployment) (url deployment-url) (introduction deployment-introduction))) (distribution (channel (name 'distribution) (url distribution-url) (introduction distribution-introduction))) (nonguix (channel (name 'nonguix) (url nonguix-url) (introduction nonguix-introduction))) (nonguix-key (plain-file nonguix-authorized-guix-key-name nonguix-authorized-guix-key-content)) (nonguix-authorized-guix-keys (list nonguix-key)) (nonguix-substitute-urls (list "https://substitutes.nonguix.org")) (suweren-channels (list deployment distribution nonguix)) (%default-authorized-guix-keys* (append %default-authorized-guix-keys nonguix-authorized-guix-keys)) (%default-channels* (append %default-channels suweren-channels)) (%default-substitute-urls* (append %default-substitute-urls nonguix-substitute-urls)) (extra-options* (list "--gc-keep-derivations=yes" "--gc-keep-outputs=yes"))) (guix-configuration (inherit configuration) (channels %default-channels*) (authorized-keys %default-authorized-guix-keys*) (substitute-urls %default-substitute-urls*) (extra-options extra-options*)))) ;; record login-configuration -> ;; record login-configuration (define (login configuration) (login-configuration (inherit configuration) (allow-empty-passwords? #f))) ;; record syncthing-configuration (define syncthing-configuration* (syncthing-configuration (user "marek"))) ;; record syncthing-service-type (define syncthing (service syncthing-service-type syncthing-configuration*)) ;; record package -> ;; record bootloader-configuration -> ;; bool | record keyboard-layout -> ;; record package -> ;; (record package) -> ;; string -> ;; (record file-system) -> ;; (record swap-space) -> ;; (record user-account) -> ;; string -> ;; string -> ;; (record service) -> ;; record operating-system (define-public (%suweren-operating-system kernel* bootloader-configuration* keyboard-layout* initrd* firmware* host-name* file-systems* swap-devices* users* timezone* ;; locale* services*) (let* ((sddm-configuration* (sddm-configuration (theme "breeze") (auto-login-user "lilia"))) (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 profile sddm syncthing)) (file-systems* (append %base-file-systems file-systems*)) (services* (append %desktop-services* suweren-services services*)) (users* (append %base-user-accounts users*))) (operating-system (kernel kernel*) (bootloader bootloader-configuration*) (keyboard-layout keyboard-layout*) (initrd initrd*) (firmware firmware*) (host-name host-name*) (file-systems file-systems*) (swap-devices swap-devices*) (users users*) (timezone timezone*) ;; (locale locale*) (services services*) (sudoers-file %sudoers-specification*))))