DashNix/modules/programs/sddm.nix

43 lines
1.1 KiB
Nix

{
lib,
options,
config,
...
}: {
options.mods.sddm = {
enable = lib.mkOption {
default = false;
example = true;
type = lib.types.bool;
description = "Enables the sddm displayManager";
};
useDefaultOptions = lib.mkOption {
default = true;
example = false;
type = lib.types.bool;
description = "Use default options provided by module. If disabled, will only apply extraOptions.";
};
extraOptions = lib.mkOption {
default = {};
example = {
wayland.enable = false;
};
type = with lib.types; attrsOf anything;
description = "Extra options to be applied to the sddm config";
};
};
config = lib.mkIf config.mods.sddm.enable (
lib.optionalAttrs (options ? services.displayManager.sddm) (
{
services.displayManager.sddm.enable = true;
}
// lib.mkIf config.mods.sddm.useDefaultOptions {
services.displayManager.sddm.wayland.enable = true;
}
// {
services.displayManager.sddm = config.mods.sddm.extraOptions;
}
)
);
}