anchor.diff:          type = types.bool;
         };
   
  +      settings = mkOption {
  +        type = settingsFormat.type;
  +        default = { };
  +        example = {
  +          debug.enable = true;
  +        };
  +        description = ''
  +          Options passed to the gdm daemon.
  +          See <link xlink:href="https://help.gnome.org/admin/gdm/stable/configuration.html.en#daemonconfig">here</link> for supported options.
  +        '';
  +      };
  +
       };
   
     };
  
positive.code:     # 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]
        WaylandEnable=${boolToString cfg.gdm.wayland}
        ${optionalString cfg.autoLogin.enable (
          if cfg.gdm.autoLogin.delay > 0 then ''
            TimedLoginEnable=true
            TimedLogin=${cfg.autoLogin.user}
            TimedLoginDelay=${toString cfg.gdm.autoLogin.delay}
          '' else ''
            AutomaticLoginEnable=true
            AutomaticLogin=${cfg.autoLogin.user}
          '')
        }
  
        [security]
  
        [xdmcp]
  
        [greeter]
  
        [chooser]
  
        [debug]
        ${optionalString cfg.gdm.debug "Enable=true"}
      '';
  
      environment.etc."gdm/Xsession".source = config.services.xserver.displayManager.sessionData.wrapper;
  
  
negative.code: 
    cfg = config.services.xserver.displayManager;
    gdm = pkgs.gnome.gdm;
    settingsFormat = pkgs.formats.ini { };
    configFile = settingsFormat.generate "custom.conf" cfg.gdm.settings;
  
    xSessionWrapper = if (cfg.setupCommands == "") then null else
      pkgs.writeScript "gdm-x-session-wrapper" ''
  