summary refs log tree commit diff
path: root/nixos/modules/services/x11/display-managers
diff options
context:
space:
mode:
authorEelco Dolstra <edolstra@gmail.com>2016-11-16 23:34:51 +0100
committerEelco Dolstra <edolstra@gmail.com>2016-11-16 23:38:50 +0100
commit69bea26ea9a6ec97927f45bea78f2148325c2cd9 (patch)
tree830b92e9c0e4323385018452c92a24d488902922 /nixos/modules/services/x11/display-managers
parent9524aedfc8dfa0b9e51d4d827e3e199a154aefbb (diff)
downloadnixpkgs-69bea26ea9a6ec97927f45bea78f2148325c2cd9.tar
nixpkgs-69bea26ea9a6ec97927f45bea78f2148325c2cd9.tar.gz
nixpkgs-69bea26ea9a6ec97927f45bea78f2148325c2cd9.tar.bz2
nixpkgs-69bea26ea9a6ec97927f45bea78f2148325c2cd9.tar.lz
nixpkgs-69bea26ea9a6ec97927f45bea78f2148325c2cd9.tar.xz
nixpkgs-69bea26ea9a6ec97927f45bea78f2148325c2cd9.tar.zst
nixpkgs-69bea26ea9a6ec97927f45bea78f2148325c2cd9.zip
sddm: Enable user switching
It was lacking the dbus configuration to bind to
org.freedesktop.DisplayManager, and it was passing fixed TTY/display
numbers to the X server (see 9be012f0d4d9b6bca35416ec89d5a40be4556896).
Diffstat (limited to 'nixos/modules/services/x11/display-managers')
-rw-r--r--nixos/modules/services/x11/display-managers/sddm.nix8
1 files changed, 6 insertions, 2 deletions
diff --git a/nixos/modules/services/x11/display-managers/sddm.nix b/nixos/modules/services/x11/display-managers/sddm.nix
index 36daf55a36a..dda8d0f7629 100644
--- a/nixos/modules/services/x11/display-managers/sddm.nix
+++ b/nixos/modules/services/x11/display-managers/sddm.nix
@@ -27,7 +27,6 @@ let
     ${cfg.stopScript}
   '';
 
-
   cfgFile = pkgs.writeText "sddm.conf" ''
     [General]
     HaltCommand=${pkgs.systemd}/bin/systemctl poweroff
@@ -47,7 +46,7 @@ let
     HideShells=/run/current-system/sw/bin/nologin
 
     [X11]
-    MinimumVT=${toString xcfg.tty}
+    MinimumVT=${toString (if xcfg.tty != null then xcfg.tty else 7)}
     ServerPath=${xserverWrapper}
     XephyrPath=${pkgs.xorg.xorgserver.out}/bin/Xephyr
     SessionCommand=${dmcfg.session.script}
@@ -254,5 +253,10 @@ in
 
     users.extraGroups.sddm.gid = config.ids.gids.sddm;
 
+    services.dbus.packages = [ sddm.unwrapped ];
+
+    # To enable user switching, allow sddm to allocate TTYs/displays dynamically.
+    services.xserver.tty = null;
+    services.xserver.display = null;
   };
 }