main
 1{den, ...}: {
 2  den.aspects.desktop.env.sddm = {
 3    nixos = {config, ...}: {
 4      services.displayManager.sddm = {
 5        enable = true;
 6        wayland.enable = !config.services.xserver.enable;
 7      };
 8    };
 9  };
10
11  den.aspects.desktop.env.sddm.themes = {
12    catppuccin = {
13      includes = [den.aspects.desktop.style.fonts];
14
15      nixos = {
16        host,
17        pkgs,
18        config,
19        lib,
20        ...
21      }: let
22        cursorCfg = host.settings.desktop.style.cursor;
23        fontsCfg = host.settings.desktop.style.fonts;
24        slienSDDM = pkgs.fetchFromGitHub {
25          owner = "uiriansan";
26          repo = "SilentSDDM";
27          rev = "0155bbfa9be2ee6aa5fee1e2fa10e7107c57efe9";
28          hash = "sha256-RekdwajKfglwIS/uudP+N+AeqFKI5OooHD6HgjW/x8s=";
29        };
30        theme = pkgs.callPackage "${slienSDDM}/nix/package.nix" {
31          theme = "catppuccin-macchiato";
32          theme-overrides = {
33            General.scale = fontsCfg.sizes.applications / 12;
34          };
35        };
36      in {
37        environment.systemPackages = [
38          theme
39          (cursorCfg.package pkgs)
40        ];
41
42        services.displayManager.sddm = {
43          theme = theme.pname;
44          extraPackages = theme.propagatedBuildInputs;
45          settings = {
46            General = {
47              GreeterEnvironment = lib.join "," [
48                "QML2_IMPORT_PATH=${theme}/share/sddm/themes/${theme.pname}/components/"
49                "QT_IM_MODULE=qtvirtualkeyboard"
50                "QT_FONT_DPI=${toString config.services.xserver.dpi}"
51              ];
52              InputMethod = "qtvirtualkeyboard";
53            };
54            Theme = {
55              CursorTheme = cursorCfg.name;
56              CursorSize = cursorCfg.size;
57            };
58          };
59        };
60      };
61    };
62  };
63}