;;; SPDX-License-Identifier: GPL-3.0-or-later ;;; SPDX-FileCopyrightText: 2024-2025 Marek Paśnikowski (define-module (deployment systems akashi) #:use-module ((gnu packages linux) #:prefix gnu:packages:linux:) #:use-module ((gnu services) #:prefix gnu:services:) #:use-module ((gnu services base) #:prefix gnu:services:base:) #:use-module ((gnu services guix) #:prefix gnu:services:guix:) #:use-module ((gnu system) #:prefix gnu:system:) #:use-module ((machines thinkpad-x200) #:prefix machines:thinkpad-x200:) #:use-module ((sovereign channels) #:prefix sovereign:channels:) #:use-module ((sovereign systems) #:prefix sovereign:systems:) #: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 (guix-configuration record) (gnu:services:base:guix-configuration (inherit record) (channels (list sovereign:channels:default-guix-channel sovereign:channels:deployment-channel-staging sovereign:channels:distribution-channel sovereign:channels:nonguix-channel sovereign:channels:sovereign-channel)))) (define %sovereign-services* (gnu:services:modify-services sovereign:systems:%sovereign-services (gnu:services:base:guix-service-type record => (guix-configuration record)))) (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-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) (kernel-arguments (cons* "thinkpad_acpi.fan_control=1" "thinkpad_acpi.fan='level 5'" gnu:system:%default-kernel-arguments)) (bootloader (machines:thinkpad-x200:bootloader-configuration* keyboard-layout*)) (label (sovereign:systems:operating-system-label* host-name* (gnu:system:operating-system-default-label gnu:system:this-operating-system))) (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))))