41 lines
1.2 KiB
Nix
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
|
|
);
|
|
};
|
|
};
|
|
};
|
|
}
|