about summary refs log tree commit diff
path: root/nixos/modules/services/x11/display-managers/sddm.nix
diff options
context:
space:
mode:
authorTor Hedin Brønner <torhedinbronner@gmail.com>2019-01-12 10:31:37 +0100
committerJan Tojnar <jtojnar@gmail.com>2019-12-15 04:16:20 +0100
commitd25365c3c13f2fcc4e5574f01106c061c493e63e (patch)
treedda982f84e63f48a3f46b71eb17747d77e6809a4 /nixos/modules/services/x11/display-managers/sddm.nix
parent58e5290fcee60178973f4cc21011fbbf03497410 (diff)
downloadnixlib-d25365c3c13f2fcc4e5574f01106c061c493e63e.tar
nixlib-d25365c3c13f2fcc4e5574f01106c061c493e63e.tar.gz
nixlib-d25365c3c13f2fcc4e5574f01106c061c493e63e.tar.bz2
nixlib-d25365c3c13f2fcc4e5574f01106c061c493e63e.tar.lz
nixlib-d25365c3c13f2fcc4e5574f01106c061c493e63e.tar.xz
nixlib-d25365c3c13f2fcc4e5574f01106c061c493e63e.tar.zst
nixlib-d25365c3c13f2fcc4e5574f01106c061c493e63e.zip
nixos/displayManager: introduce defaultSession
There's two ways of providing graphical sessions now:
- `displayManager.session` via. `desktopManager.session` and
  `windowManager.session`
- `displayManager.sessionPackages`

`sessionPackages` doesn't make a distinction between desktop and window
managers. This makes selecting a session provided by a package using
`desktopManager.default` nonsensical.

We therefor introduce `displayManager.defaultSession` which can select a session
from either `displayManager.session` or `displayManager.sessionPackages`.

It will default to `desktopManager.default + windowManager.default` as before.
If the dm default is "none" it will select the first provided session from
`sessionPackages`.
Diffstat (limited to 'nixos/modules/services/x11/display-managers/sddm.nix')
-rw-r--r--nixos/modules/services/x11/display-managers/sddm.nix8
1 files changed, 2 insertions, 6 deletions
diff --git a/nixos/modules/services/x11/display-managers/sddm.nix b/nixos/modules/services/x11/display-managers/sddm.nix
index 24e120c4f2cf..b51582d2ca5b 100644
--- a/nixos/modules/services/x11/display-managers/sddm.nix
+++ b/nixos/modules/services/x11/display-managers/sddm.nix
@@ -71,11 +71,7 @@ let
     ${cfg.extraConfig}
   '';
 
-  defaultSessionName =
-    let
-      dm = xcfg.desktopManager.default;
-      wm = xcfg.windowManager.default;
-    in dm + optionalString (wm != "none") ("+" + wm);
+  defaultSessionName = dmcfg.defaultSession;
 
 in
 {
@@ -210,7 +206,7 @@ in
           SDDM auto-login requires services.xserver.displayManager.sddm.autoLogin.user to be set
         '';
       }
-      { assertion = cfg.autoLogin.enable -> elem defaultSessionName dmcfg.session.names;
+      { assertion = cfg.autoLogin.enable -> defaultSessionName != "none";
         message = ''
           SDDM auto-login requires that services.xserver.desktopManager.default and
           services.xserver.windowManager.default are set to valid values. The current