|
|
|
@ -18,14 +18,42 @@ in |
|
|
|
|
|
|
|
|
|
services.xserver.displayManager.gdm = { |
|
|
|
|
|
|
|
|
|
enable = mkOption { |
|
|
|
|
type = types.bool; |
|
|
|
|
default = false; |
|
|
|
|
example = true; |
|
|
|
|
description = '' |
|
|
|
|
Whether to enable GDM as the display manager. |
|
|
|
|
<emphasis>GDM is very experimental and may render system unusable.</emphasis> |
|
|
|
|
''; |
|
|
|
|
enable = mkEnableOption '' |
|
|
|
|
Whether to enable GDM as the display manager. |
|
|
|
|
<emphasis>GDM is very experimental and may render system unusable.</emphasis> |
|
|
|
|
''; |
|
|
|
|
|
|
|
|
|
autoLogin = mkOption { |
|
|
|
|
default = {}; |
|
|
|
|
|
|
|
|
|
type = types.submodule { |
|
|
|
|
options = { |
|
|
|
|
enable = mkOption { |
|
|
|
|
type = types.bool; |
|
|
|
|
default = false; |
|
|
|
|
description = '' |
|
|
|
|
Automatically log in as the sepecified <option>auto.user</option>. |
|
|
|
|
''; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
user = mkOption { |
|
|
|
|
type = types.nullOr types.str; |
|
|
|
|
default = null; |
|
|
|
|
description = '' |
|
|
|
|
User to be used for the autologin. |
|
|
|
|
''; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
delay = mkOption { |
|
|
|
|
type = types.int; |
|
|
|
|
default = 0; |
|
|
|
|
description = '' |
|
|
|
|
Seconds of inactivity after which the autologin will be performed. |
|
|
|
|
''; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
}; |
|
|
|
|
}; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
}; |
|
|
|
@ -71,6 +99,25 @@ in |
|
|
|
|
|
|
|
|
|
programs.dconf.profiles.gdm = "${gdm}/share/dconf/profile/gdm"; |
|
|
|
|
|
|
|
|
|
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} |
|
|
|
|
''} |
|
|
|
|
|
|
|
|
|
[security] |
|
|
|
|
|
|
|
|
|
[xdmcp] |
|
|
|
|
|
|
|
|
|
[greeter] |
|
|
|
|
|
|
|
|
|
[chooser] |
|
|
|
|
|
|
|
|
|
[debug] |
|
|
|
|
''; |
|
|
|
|
|
|
|
|
|
# GDM LFS PAM modules, adapted somehow to NixOS |
|
|
|
|
security.pam.services = { |
|
|
|
|
gdm-launch-environment.text = '' |
|
|
|
@ -89,7 +136,7 @@ in |
|
|
|
|
session optional pam_permit.so |
|
|
|
|
''; |
|
|
|
|
|
|
|
|
|
gdm.text = '' |
|
|
|
|
gdm.text = '' |
|
|
|
|
auth requisite pam_nologin.so |
|
|
|
|
auth required pam_env.so |
|
|
|
|
|
|
|
|
|