;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016 David Craven <david@craven.ch>
+;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2019 Jesse Gildersleve <jessejohngildersleve@protonmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
#:use-module (guix gexp)
#:use-module (guix records)
#:export (sddm-configuration
- sddm-confiugration?
+ sddm-configuration?
sddm-service-type
sddm-service))
(sessions-directory sddm-configuration-sessions-directory
(default "/run/current-system/profile/share/wayland-sessions"))
;; [X11]
- (xorg-server-path sddm-configuration-xorg-server-path
- (default (xorg-start-command)))
+ (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 "/run/current-system/profile/share/xsessions"))
(minimum-vt sddm-configuration-minimum-vt
(default 7))
- (xserver-arguments sddm-configuration-xserver-arguments
- (default "-nolisten tcp"))
;; [Autologin]
(auto-login-user sddm-configuration-auto-login-user
SessionDir=" (sddm-configuration-sessions-directory config) "
[X11]
-ServerPath=" (sddm-configuration-xorg-server-path config) "
+ServerPath=" (xorg-start-command (sddm-configuration-xorg config)) "
XauthPath=" (sddm-configuration-xauth-path config) "
XephyrPath=" (sddm-configuration-xephyr-path config) "
DisplayCommand=" (sddm-configuration-xdisplay-start config) "
SessionCommand=" (sddm-configuration-xsession-command config) "
SessionDir=" (sddm-configuration-xsessions-directory config) "
MinimumVT=" (number->string (sddm-configuration-minimum-vt config)) "
-ServerArguments=" (sddm-configuration-xserver-arguments config) "
+ServerArguments=" (string-join
+ (xorg-configuration-server-arguments
+ (sddm-configuration-xorg config))) "
[Autologin]
User=" (sddm-configuration-auto-login-user config) "
(define (sddm-etc-service config)
(list `("sddm.conf" ,(sddm-configuration-file config))))
-(define (sddm-pam-service)
+(define (sddm-pam-service config)
"Return a PAM service for @command{sddm}."
(pam-service
(name "sddm")
(pam-entry
(control "required")
(module "pam_succeed_if.so")
- (arguments (list "uid >= 1000" "quiet")))
+ (arguments (list (string-append "uid >= "
+ (number->string (sddm-configuration-minimum-uid config)))
+ "quiet")))
;; should be factored out into system-auth
(pam-entry
(control "required")
(name "sddm-greeter")
(auth
(list
- ;; Load environment form /etc/environment and ~/.pam_environment
+ ;; Load environment from /etc/environment and ~/.pam_environment
(pam-entry
(control "required")
(module "pam_env.so"))
(control "required")
(module "pam_unix.so"))))))
-(define (sddm-autologin-pam-service)
+(define (sddm-autologin-pam-service config)
"Return a PAM service for @command{sddm-autologin}"
(pam-service
(name "sddm-autologin")
(pam-entry
(control "required")
(module "pam_succeed_if.so")
- (arguments (list "uid >= 1000" "quiet")))
+ (arguments (list (string-append "uid >= "
+ (number->string (sddm-configuration-minimum-uid config)))
+ "quiet")))
(pam-entry
(control "required")
(module "pam_permit.so"))))
(module "sddm"))))))
(define (sddm-pam-services config)
- (list (sddm-pam-service)
+ (list (sddm-pam-service config)
(sddm-greeter-pam-service)
- (sddm-autologin-pam-service)))
+ (sddm-autologin-pam-service config)))
(define %sddm-accounts
(list (user-group (name "sddm") (system? #t))