Using breeze as an SDDM theme without installing Plasma

Hello, I’m a semi-new NixOS user. I’m trying to use KDE Plasma’s Breeze theme for SDDM. I’ve found that this could be done by enabling the Plasma desktop: services.desktopManager.plasma6.enable = true;. However, I already use another desktop and would prefer not to install another one to use its SDDM theme. Is the theme and the desktop too tightly connected? If not, how could I achieve this?

I have tried adding these: with pkgs.kdePackages; [breeze breeze-icons breeze-gtk qqc2-breeze-style breeze.qt5] to both environment.systemPackages and services.displayManager.sddm.extraPackages (trying one of them at a time), neither of which adds breeze to /run/current-system/sw/share/sddm/themes, so the theme won’t be recognised via the name "breeze" as services.displayManager.sddm.theme.

I have also tried using the official theme from KDE’s GitLab and this fork of it, following the steps via this youtube video, resulting in the nixos/sddm/theme.nix file in my configuration. SDDM starts, but it fails to use the theme with multiple errors stating it’s missing some key components or libraries from Plasma itself (which doesn’t seem to be resolvable unless I install the desktop), and falls back to Maui (the default SDDM theme).

Other packaged SDDM themes in the nixpkgs repository (sddm-astronaut, sddm-sugar-dark, sddm-chili-theme, etc.) are all functional, so I don’t think this is a problem with my SDDM configuration file.

My full NixOS configuration is here. Below is a snippet of the file nixos/sddm/sddm.nix.

{pkgs, ...}: {
  services = {
    #desktopManager.plasma6.enable = true;
    displayManager.sddm = {
      enable = true;
      package = pkgs.kdePackages.sddm;
      wayland.enable = true;
      theme = "breeze";
      #theme = "${import ./theme.nix {inherit pkgs;}}";
      #extraPackages = with pkgs.kdePackages; [breeze breeze-icons breeze-gtk qqc2-breeze-style breeze.qt5];
    };
  };
}

Here’s the output of running nix-shell -p nix-info --run "nix-info -m":

 - system: `"x86_64-linux"`
 - host os: `Linux 6.12.0, NixOS, 25.05 (Warbler), 25.05.20241119.23e89b7`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.24.10`
 - nixpkgs: `/nix/store/c9wv7i0af6mysmy65x6nvyfw5izzxv4g-source`

Try the following configuration:

{
  services.displayManager.sddm = {
    extraPackages = with pkgs.kdePackages; [
      breeze-icons
      kirigami
      libplasma
      plasma5support
      qtsvg
      qtvirtualkeyboard
    ];
    theme = "breeze";
  };
}

It’s taken from an evaluation of my system which uses an unmodified Plasma 6 desktop, so it should contain all of the packages needed for SDDM to load the theme. I think you can remove qtvirtualkeyboard, but I’m not sure about the others.

Thank you for the response. Unfortunately, this doesn’t seem to work either. No errors were shown on the login screen, but SDDM was just loaded with the default Maui theme. No breeze folder was found in /run/current-system/sw/share/sddm/themes either (there were only elarun, maldives and maya, the three default themes besides Maui).

The kdePackages.plasma-desktop package contains the breeze theme for SDDM. Inserting it into your environment.sysstemPackages list should allow it to be used as a theme. Not sure if there is a way to install just the theme though.

1 Like