37 lines
799 B
Nix
37 lines
799 B
Nix
{
|
|
config,
|
|
lib,
|
|
...
|
|
}: let
|
|
cfg = config.hive.displayManager;
|
|
in {
|
|
options.hive.displayManager = with lib; {
|
|
name = mkOption {
|
|
type = types.enum ["sddm" "gdm" "cosmic"];
|
|
default = "sddm";
|
|
description = "The display manager to use.";
|
|
};
|
|
autologin = mkOption {
|
|
type = types.nullOr types.str;
|
|
default = null;
|
|
description = "The autologin username or null for no autologin.";
|
|
};
|
|
};
|
|
|
|
imports = [
|
|
./gdm.nix
|
|
./sddm.nix
|
|
];
|
|
|
|
config = {
|
|
services.xserver.enable = true;
|
|
services.xserver = {
|
|
xkb.layout = "de";
|
|
xkb.variant = "";
|
|
xkb.options = "caps:ctrl_modifier";
|
|
};
|
|
services.displayManager.autoLogin.enable = cfg.autologin != null;
|
|
services.displayManager.autoLogin.user = cfg.autologin;
|
|
};
|
|
}
|