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}