{ lib, config, pkgs, ... }: with lib; let cfg = config.modules.desktop.sddm; in { options.modules.desktop.sddm = { enable = mkEnableOption "Enable SDDM, a display manager for X11 and Wayland windowing systems"; }; config = mkIf cfg.enable { environment.systemPackages = with pkgs; [ config.modules.desktop.themes.sddmTheme.package config.modules.desktop.themes.cursorTheme.package libsForQt5.qt5.qtsvg libsForQt5.qt5.qtgraphicaleffects libsForQt5.qt5.qtquickcontrols2 ]; # why do we need kwin for working hidpi # huh???? services.displayManager.sddm = { enable = true; wayland.enable = config.modules.desktop.envProto == "wayland"; wayland.compositor = "kwin"; theme = config.modules.desktop.themes.sddmTheme.name; settings = { Theme = { CursorTheme = config.modules.desktop.themes.cursorTheme.name; }; }; }; # unlock the keyring on login, only if its enabled ofc security.pam.services.sddm.enableGnomeKeyring = config.modules.desktop.gnome-keyring.enable; }; }