44 lines
1.1 KiB
Nix
44 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;
|
|
}
|
|
)
|
|
);
|
|
}
|