;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016 David Craven ;;; Copyright © 2019 Ludovic Courtès ;;; Copyright © 2019 Jesse Gildersleve ;;; Copyright © 2020 Jakub Kądziołka ;;; Copyright © 2023, 2024 Zheng Junjie <873216071@qq.com> ;;; ;;; This file is part of GNU Guix. ;;; ;;; GNU Guix is free software; you can redistribute it and/or modify it ;;; under the terms of the GNU General Public License as published by ;;; the Free Software Foundation; either version 3 of the License, or (at ;;; your option) any later version. ;;; ;;; GNU Guix is distributed in the hope that it will be useful, but ;;; WITHOUT ANY WARRANTY; without even the implied warranty of ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;;; GNU General Public License for more details. ;;; ;;; You should have received a copy of the GNU General Public License ;;; along with GNU Guix. If not, see . (define-module (gnu services sddm) #:use-module (gnu packages admin) #:use-module (gnu packages display-managers) #:use-module (gnu packages freedesktop) #:use-module (gnu packages xorg) #:use-module (gnu services) #:use-module (gnu services shepherd) #:use-module (gnu services xorg) #:use-module (gnu system pam) #:use-module (gnu system shadow) #:use-module (guix gexp) #:use-module (guix records) #:use-module (guix deprecation) #:use-module (guix utils) #:use-module (guix packages) #:export (sddm-configuration sddm-configuration? sddm-service-type sddm-service)) (define-record-type* sddm-configuration make-sddm-configuration sddm-configuration? (sddm sddm-configuration-sddm (default sddm)) ;; [General] ;; valid values are x11 and wayland ;; currently doesn't do anything is enabled by wayland greeter PR (display-server sddm-configuration-display-server (default "x11")) ;; valid values are on, off or none (numlock sddm-configuration-numlock (default "on")) (halt-command sddm-configuration-halt-command (default (file-append shepherd "/sbin/halt"))) (reboot-command sddm-configuration-reboot-command (default (file-append shepherd "/sbin/reboot"))) ;; [Theme] ;; valid values are elarun, maldives or maya (theme sddm-configuration-theme (default "maldives")) (themes-directory sddm-configuration-themes-directory (default "/run/current-system/profile/share/sddm/themes")) (faces-directory sddm-configuration-faces-directory (default "/run/current-system/profile/share/sddm/faces")) ;; [Users] (default-path sddm-configuration-default-path (default "/run/current-system/profile/bin")) (minimum-uid sddm-configuration-minimum-uid (default 1000)) (maximum-uid sddm-configuration-maximum-uid (default 2000)) (remember-last-user? sddm-configuration-remember-last-user? (default #t)) (remember-last-session? sddm-configuration-remember-last-session? (default #t)) (hide-users sddm-configuration-hide-users (default "")) (hide-shells sddm-configuration-hide-shells (default (file-append shadow "/sbin/nologin"))) ;; [Wayland] (session-command sddm-configuration-session-command (default (file-append sddm "/share/sddm/scripts/wayland-session"))) (sessions-directory sddm-configuration-sessions-directory (default "/run/current-system/profile/share/wayland-sessions")) ;; [X11] (xorg-configuration sddm-configuration-xorg (default (xorg-configuration))) (xauth-path sddm-configuration-xauth-path (default (file-append xauth "/bin/xauth"))) (xephyr-path sddm-configuration-xephyr-path (default (file-append xor