diff options
Diffstat (limited to 'nixos/modules/services/x11/display-managers/gdm.nix')
-rw-r--r-- | nixos/modules/services/x11/display-managers/gdm.nix | 26 |
1 files changed, 19 insertions, 7 deletions
diff --git a/nixos/modules/services/x11/display-managers/gdm.nix b/nixos/modules/services/x11/display-managers/gdm.nix index 55af2ecbb764..887b6f88a741 100644 --- a/nixos/modules/services/x11/display-managers/gdm.nix +++ b/nixos/modules/services/x11/display-managers/gdm.nix @@ -23,6 +23,10 @@ in <emphasis>GDM is very experimental and may render system unusable.</emphasis> ''; + debug = mkEnableOption '' + debugging messages in GDM + ''; + autoLogin = mkOption { default = {}; description = '' @@ -69,8 +73,7 @@ in config = mkIf cfg.gdm.enable { assertions = [ - { assertion = let autoLogin = cfg.gdm.autoLogin; in - if autoLogin.enable then autoLogin.user != null else true; + { assertion = cfg.gdm.autoLogin.enable -> cfg.gdm.autoLogin.user != null; message = "GDM auto-login requires services.xserver.displayManager.gdm.autoLogin.user to be set"; } ]; @@ -109,13 +112,21 @@ in programs.dconf.profiles.gdm = "${gdm}/share/dconf/profile/gdm"; + # Use AutomaticLogin if delay is zero, because it's immediate. + # Otherwise with TimedLogin with zero seconds the prompt is still + # presented and there's a little delay. environment.etc."gdm/custom.conf".text = '' [daemon] - ${optionalString cfg.gdm.autoLogin.enable '' - TimedLoginEnable=true - TimedLogin=${cfg.gdm.autoLogin.user} - TimedLoginDelay=${toString cfg.gdm.autoLogin.delay} - ''} + ${optionalString cfg.gdm.autoLogin.enable ( + if cfg.gdm.autoLogin.delay > 0 then '' + TimedLoginEnable=true + TimedLogin=${cfg.gdm.autoLogin.user} + TimedLoginDelay=${toString cfg.gdm.autoLogin.delay} + '' else '' + AutomaticLoginEnable=true + AutomaticLogin=${cfg.gdm.autoLogin.user} + '') + } [security] @@ -126,6 +137,7 @@ in [chooser] [debug] + ${optionalString cfg.gdm.debug "Enable=true"} ''; # GDM LFS PAM modules, adapted somehow to NixOS |