Commit 9dc71b7

HPCesia <me@hpcesia.com>
2026-06-19 08:35:41
Add SDDM service for desktop
1 parent 64787f2
Changed files (2)
modules
desktop
roles
modules/desktop/env/sddm.nix
@@ -0,0 +1,63 @@
+{den, ...}: {
+  den.aspects.desktop.env.sddm = {
+    nixos = {config, ...}: {
+      services.displayManager.sddm = {
+        enable = true;
+        wayland.enable = !config.services.xserver.enable;
+      };
+    };
+  };
+
+  den.aspects.desktop.env.sddm.themes = {
+    catppuccin = {
+      includes = [den.aspects.desktop.style.fonts];
+
+      nixos = {
+        host,
+        pkgs,
+        config,
+        lib,
+        ...
+      }: let
+        cursorCfg = host.settings.desktop.style.cursor;
+        fontsCfg = host.settings.desktop.style.fonts;
+        slienSDDM = pkgs.fetchFromGitHub {
+          owner = "uiriansan";
+          repo = "SilentSDDM";
+          rev = "0155bbfa9be2ee6aa5fee1e2fa10e7107c57efe9";
+          hash = "sha256-RekdwajKfglwIS/uudP+N+AeqFKI5OooHD6HgjW/x8s=";
+        };
+        theme = pkgs.callPackage "${slienSDDM}/nix/package.nix" {
+          theme = "catppuccin-macchiato";
+          theme-overrides = {
+            General.scale = fontsCfg.sizes.applications / 12;
+          };
+        };
+      in {
+        environment.systemPackages = [
+          theme
+          (cursorCfg.package pkgs)
+        ];
+
+        services.displayManager.sddm = {
+          theme = theme.pname;
+          extraPackages = theme.propagatedBuildInputs;
+          settings = {
+            General = {
+              GreeterEnvironment = lib.join "," [
+                "QML2_IMPORT_PATH=${theme}/share/sddm/themes/${theme.pname}/components/"
+                "QT_IM_MODULE=qtvirtualkeyboard"
+                "QT_FONT_DPI=${toString config.services.xserver.dpi}"
+              ];
+              InputMethod = "qtvirtualkeyboard";
+            };
+            Theme = {
+              CursorTheme = cursorCfg.name;
+              CursorSize = cursorCfg.size;
+            };
+          };
+        };
+      };
+    };
+  };
+}
modules/roles/desktop.nix
@@ -12,6 +12,8 @@
       desktop.power-management
       desktop.xdg-user-dirs
       desktop.yubikey
+
+      desktop.env.sddm
     ];
   };
 }