From 68f81c4e3e772cdf5dd3fea7db918066c3f07707 Mon Sep 17 00:00:00 2001 From: Hilton Chain Date: Fri, 20 Jun 2025 15:23:53 +0800 Subject: [PATCH] services: Add %rosenthal-desktop-services. * modules/rosenthal/services/desktop.scm: New file. --- modules/rosenthal/services/desktop.scm | 70 ++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 modules/rosenthal/services/desktop.scm diff --git a/modules/rosenthal/services/desktop.scm b/modules/rosenthal/services/desktop.scm new file mode 100644 index 0000000..d1ab2a3 --- /dev/null +++ b/modules/rosenthal/services/desktop.scm @@ -0,0 +1,70 @@ +;;; SPDX-FileCopyrightText: 2025 Hilton Chain +;;; +;;; SPDX-License-Identifier: GPL-3.0-or-later + +(define-module (rosenthal services desktop) + #:use-module (guix gexp) + #:use-module (guix utils) + #:use-module (rosenthal utils packages) + #:use-module (gnu services) + #:use-module (gnu services base) + #:use-module (gnu services desktop) + #:use-module (gnu services sddm) + #:use-module (gnu services xorg) + #:use-module (rosenthal services base) + #:export (%rosenthal-desktop-services)) + +(define* (rosenthal-desktop-services-for-system + #:optional (system (or (%current-target-system) + (%current-system)))) + (define %display-manager-service-type + (if (string-prefix? "x86_64" system) + gdm-service-type + sddm-service-type)) + + (define %font + (file-append (spec->pkg "font-terminus") "/share/consolefonts/ter-132n")) + + (cons* (service greetd-service-type + (greetd-configuration + (greeter-supplementary-groups '("video" "input")) + (terminals + (map (lambda (x) + (greetd-terminal-configuration + (terminal-vt (number->string x)) + (terminal-switch (eqv? 1 x)) + (default-session-command + (cond + ((eqv? 1 x) + (greetd-tuigreet-session)) + (else + (greetd-agreety-session + (command + (greetd-user-session + (command #~(getenv "SHELL")))))))))) + (iota 6 1))))) + + (service screen-locker-service-type + (screen-locker-configuration + (name "swaylock") + (program (plain-file "empty" "")) ;Not used. + (using-setuid? #f))) + (service screen-locker-service-type + (screen-locker-configuration + (name "waylock") + (program (plain-file "empty" "")) ;Not used. + (using-setuid? #f))) + + (modify-services %desktop-services + (delete mingetty-service-type) + (delete %display-manager-service-type) + (delete screen-locker-service-type) + + (console-font-service-type + _ => (map (lambda (num) + (cons (string-append "tty" (number->string num)) + %font)) + (iota 6 1)))))) + +(define-syntax %rosenthal-desktop-services + (identifier-syntax (rosenthal-desktop-services-for-system)))