52 lines
1.1 KiB
Nix
52 lines
1.1 KiB
Nix
{
|
|
lib,
|
|
pkgs,
|
|
config,
|
|
...
|
|
}: let
|
|
inherit (lib) mkOption mkIf getExe types mkMerge;
|
|
cfg = config.module.desktop;
|
|
in {
|
|
options = {
|
|
module.desktop.displayManager = mkOption {
|
|
default = "greetd";
|
|
type = types.enum [
|
|
"cosmic"
|
|
"gdm"
|
|
"greetd"
|
|
"sddm"
|
|
];
|
|
};
|
|
};
|
|
|
|
config = mkMerge [
|
|
(mkIf (cfg.displayManager == "cosmic") {
|
|
services.displayManager.cosmic-greeter.enable = true;
|
|
})
|
|
(mkIf (cfg.displayManager == "gdm") {
|
|
services.displayManager.gdm = {
|
|
enable = true;
|
|
wayland = true;
|
|
};
|
|
})
|
|
(mkIf (cfg.displayManager == "greetd") {
|
|
programs.regreet.enable = true;
|
|
services.greetd = {
|
|
enable = true;
|
|
vt = 1;
|
|
settings = {
|
|
default_session = {
|
|
command = "${getExe pkgs.cage} -s -m last -- ${getExe pkgs.greetd.regreet}";
|
|
};
|
|
};
|
|
};
|
|
})
|
|
(mkIf (cfg.displayManager == "sddm") {
|
|
services.displayManager.sddm = {
|
|
enable = true;
|
|
wayland.enable = true;
|
|
};
|
|
})
|
|
];
|
|
}
|