Files
lux/modules/features/sddm.nix
T

41 lines
1.2 KiB
Nix

{
flake.modules.nixos.sddm =
{
config,
lib,
pkgs,
...
}:
let
primaryDisplays = builtins.filter (display: display.primary or false) (builtins.attrValues config.meta.host.displays);
primaryDisplay = if primaryDisplays == [ ] then null else builtins.head primaryDisplays;
primaryScale =
if primaryDisplay == null then
null
else
primaryDisplay.scale;
greeterEnvironment =
lib.optional (primaryScale != null) "QT_SCALE_FACTOR=${toString primaryScale}";
in
{
services.displayManager.sddm = {
enable = true;
enableHidpi = primaryScale == null;
wayland.enable = true;
wayland.compositor = "kwin";
theme = "${pkgs.sddm-astronaut}/share/sddm/themes/sddm-astronaut-theme";
extraPackages = with pkgs; [
kdePackages.qtmultimedia
];
settings = lib.optionalAttrs (greeterEnvironment != [ ]) {
General.GreeterEnvironment = lib.concatStringsSep "," (
[
"QT_WAYLAND_SHELL_INTEGRATION=layer-shell"
]
++ greeterEnvironment
);
};
};
};
}