python310Packages.pydeconz: 104 -> 105
[NixPkgs.git] / nixos / tests / common / auto.nix
blobf2ab82f88ff7649d8a20cdf4ccb2b07fd6b8e89f
1 { config, lib, ... }:
3 with lib;
5 let
7   dmcfg = config.services.xserver.displayManager;
8   cfg = config.test-support.displayManager.auto;
14   ###### interface
16   options = {
18     test-support.displayManager.auto = {
20       enable = mkOption {
21         default = false;
22         description = lib.mdDoc ''
23           Whether to enable the fake "auto" display manager, which
24           automatically logs in the user specified in the
25           {option}`user` option.  This is mostly useful for
26           automated tests.
27         '';
28       };
30       user = mkOption {
31         default = "root";
32         description = lib.mdDoc "The user account to login automatically.";
33       };
35     };
37   };
40   ###### implementation
42   config = mkIf cfg.enable {
44     services.xserver.displayManager = {
45       lightdm.enable = true;
46       autoLogin = {
47         enable = true;
48         user = cfg.user;
49       };
50     };
52     # lightdm by default doesn't allow auto login for root, which is
53     # required by some nixos tests. Override it here.
54     security.pam.services.lightdm-autologin.text = lib.mkForce ''
55         auth     requisite pam_nologin.so
56         auth     required  pam_succeed_if.so quiet
57         auth     required  pam_permit.so
59         account  include   lightdm
61         password include   lightdm
63         session  include   lightdm
64     '';
66   };