1{
2 config,
3 lib,
4 ...
5}: {
6 options.myNixOS.services.gdm = {
7 enable = lib.mkEnableOption "use the gnome display manager";
8
9 autoLogin = lib.mkOption {
10 description = "User to autologin.";
11 default = null;
12 type = lib.types.nullOr lib.types.str;
13 };
14 };
15
16 config = lib.mkIf config.myNixOS.services.gdm.enable {
17 programs.dconf.profiles.gdm.databases = [
18 {
19 settings = {
20 "org/gnome/desktop/peripherals/keyboard" = {
21 numlock-state = true;
22 remember-numlock-state = true;
23 };
24
25 "org/gnome/desktop/peripherals/touchpad" = {
26 tap-to-click = true;
27 };
28 };
29 }
30 ];
31
32 security.pam.services.gdm = {
33 enableGnomeKeyring = true;
34 gnupg.enable = true;
35 };
36
37 services = {
38 displayManager = {
39 autoLogin = lib.mkIf (config.myNixOS.services.gdm.autoLogin != null) {
40 enable = true;
41 user = config.myNixOS.services.gdm.autoLogin;
42 };
43
44 gdm.enable = true;
45 };
46 };
47 };
48}