1{
2 config,
3 lib,
4 pkgs,
5 ...
6}:
7
8let
9
10 dmcfg = config.services.displayManager;
11 ldmcfg = config.services.xserver.displayManager.lightdm;
12 cfg = ldmcfg.greeters.lomiri;
13
14in
15{
16 meta.maintainers = lib.teams.lomiri.members;
17
18 options = {
19 services.xserver.displayManager.lightdm.greeters.lomiri = {
20 enable = lib.mkEnableOption "lomiri's greeter as the lightdm greeter";
21 };
22 };
23
24 config = lib.mkIf (ldmcfg.enable && cfg.enable) {
25 # Lomiri greeter == Lomiri shell in special mode, need some basics setup at least
26 services.desktopManager.lomiri.basics = true;
27
28 services.xserver.displayManager.lightdm.greeters.gtk.enable = false;
29
30 services.xserver.displayManager.lightdm.greeter = lib.mkDefault {
31 package = pkgs.lomiri.lomiri.greeter;
32 name = "lomiri-greeter";
33 };
34
35 # Greeter needs to be run through its wrapper
36 # Greeter doesn't work with our set-session.py script, need to set default user-session
37 services.xserver.displayManager.lightdm.extraSeatDefaults = ''
38 greeter-wrapper = ${lib.getExe' pkgs.lomiri.lomiri "lomiri-greeter-wrapper"}
39 user-session = ${dmcfg.defaultSession}
40 '';
41 };
42}