1{ 2 config, 3 lib, 4 pkgs, 5 ... 6}: 7 8with lib; 9 10let 11 12 dmcfg = config.services.xserver.displayManager; 13 ldmcfg = dmcfg.lightdm; 14 cfg = ldmcfg.greeters.mini; 15 16 miniGreeterConf = pkgs.writeText "lightdm-mini-greeter.conf" '' 17 [greeter] 18 user = ${cfg.user} 19 show-password-label = true 20 password-label-text = Password: 21 invalid-password-text = Invalid Password 22 show-input-cursor = true 23 password-alignment = right 24 25 [greeter-hotkeys] 26 mod-key = meta 27 shutdown-key = s 28 restart-key = r 29 hibernate-key = h 30 suspend-key = u 31 32 [greeter-theme] 33 font = Sans 34 font-size = 1em 35 font-weight = bold 36 font-style = normal 37 text-color = "#080800" 38 error-color = "#F8F8F0" 39 background-image = "${ldmcfg.background}" 40 background-color = "#1B1D1E" 41 window-color = "#F92672" 42 border-color = "#080800" 43 border-width = 2px 44 layout-space = 15 45 password-color = "#F8F8F0" 46 password-background-color = "#1B1D1E" 47 password-border-color = "#080800" 48 password-border-width = 2px 49 50 ${cfg.extraConfig} 51 ''; 52 53in 54{ 55 options = { 56 57 services.xserver.displayManager.lightdm.greeters.mini = { 58 59 enable = mkOption { 60 type = types.bool; 61 default = false; 62 description = '' 63 Whether to enable lightdm-mini-greeter as the lightdm greeter. 64 65 Note that this greeter starts only the default X session. 66 You can configure the default X session using 67 [](#opt-services.displayManager.defaultSession). 68 ''; 69 }; 70 71 user = mkOption { 72 type = types.str; 73 default = "root"; 74 description = '' 75 The user to login as. 76 ''; 77 }; 78 79 extraConfig = mkOption { 80 type = types.lines; 81 default = ""; 82 description = '' 83 Extra configuration that should be put in the lightdm-mini-greeter.conf 84 configuration file. 85 ''; 86 }; 87 88 }; 89 90 }; 91 92 config = mkIf (ldmcfg.enable && cfg.enable) { 93 94 services.xserver.displayManager.lightdm.greeters.gtk.enable = false; 95 96 services.xserver.displayManager.lightdm.greeter = mkDefault { 97 package = pkgs.lightdm-mini-greeter.xgreeters; 98 name = "lightdm-mini-greeter"; 99 }; 100 101 environment.etc."lightdm/lightdm-mini-greeter.conf".source = miniGreeterConf; 102 103 }; 104}