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.pantheon; 15 16in 17{ 18 meta = with lib; { 19 maintainers = with maintainers; [ ] ++ teams.pantheon.members; 20 }; 21 22 options = { 23 24 services.xserver.displayManager.lightdm.greeters.pantheon = { 25 26 enable = mkOption { 27 type = types.bool; 28 default = false; 29 description = '' 30 Whether to enable elementary-greeter as the lightdm greeter. 31 ''; 32 }; 33 34 }; 35 36 }; 37 38 config = mkIf (ldmcfg.enable && cfg.enable) { 39 40 services.xserver.displayManager.lightdm.greeters.gtk.enable = false; 41 42 services.xserver.displayManager.lightdm.greeter = mkDefault { 43 package = pkgs.pantheon.elementary-greeter.xgreeters; 44 name = "io.elementary.greeter"; 45 }; 46 47 # Show manual login card. 48 services.xserver.displayManager.lightdm.extraSeatDefaults = "greeter-show-manual-login=true"; 49 50 environment.etc."lightdm/io.elementary.greeter.conf".source = 51 "${pkgs.pantheon.elementary-greeter}/etc/lightdm/io.elementary.greeter.conf"; 52 environment.etc."wingpanel.d/io.elementary.greeter.allowed".source = 53 "${pkgs.pantheon.elementary-default-settings}/etc/wingpanel.d/io.elementary.greeter.allowed"; 54 55 }; 56}