A clean, modern, and minimal SDDM theme inspired by Google Pixel UI and Material Design 3. Supports both the latest Qt6 engine and legacy Qt5 systems.
- Pixel Aesthetic: Clean typography and a unique two-tone stacked clock.
- Material You Dynamic Colors: Intelligent color extraction that samples your wallpaper for UI accents.
- Next-Gen Blur: High-performance Gaussian blur (Qt6) and custom shader blur (Qt5).
- Universal Circle Avatar: A bulletproof, anti-aliased circular profile mask that works on all systems.
- Material Design 3: Dark card UI with smooth interactions and responsive dropdowns.
- Keyboard Navigation: Full support for navigating menus with arrows and
Enter.
Before installing, ensure you have the required modules for your system version to avoid a black screen:
Qt6 (Default / Modern Distros)
Recommended for Fedora 40+, Arch Linux, CachyOS, NixOS.# Arch:
sudo pacman -S qt6-declarative qt6-svg qt6-quickcontrols2
# Fedora:
sudo dnf install qt6-qtdeclarative qt6-qtsvg qt6-qtquickcontrols2
# Debian 13/Testing:
sudo apt install libqt6quick6 libqt6qml6 libqt6svg6 libqt6quickcontrols2-6Qt5 (Legacy / Stable Distros)
Required for Ubuntu 22.04/24.04, Debian 12, Linux Mint.# Ubuntu: sudo apt install qml-module-qtgraphicaleffects qml-module-qtquick-controls2
# Arch: sudo pacman -S qt5-graphicaleffects qt5-quickcontrols2Pixie SDDM automatically detects your system and installs the correct version.
| System Type | Engine | Recommended Branch |
|---|---|---|
| Bleeding Edge (Fedora, Arch, Nix) | Qt6 | main (Default) |
| Stable/LTS (Ubuntu, Debian) | Qt5 | qt5 |
This script intelligently detects your Qt version and handles everything:
git clone https://github.com/xCaptaiN09/pixie-sddm.git
cd pixie-sddm
sudo ./install.shThe AUR package automatically tracks the latest modern version:
yay -S pixie-sddm-gitThe most modern and flexible way to install.
- In your
flake.nix, add the input and pass it to your modules:
{
inputs.pixie-sddm.url = "github:xCaptaiN09/pixie-sddm";
outputs = { self, nixpkgs, pixie-sddm, ... }@inputs: {
nixosConfigurations.YOUR_HOSTNAME = nixpkgs.lib.nixosSystem {
specialArgs = { inherit inputs; }; # Passes inputs to all modules
modules = [ ./configuration.nix ];
};
};
}- In your
configuration.nix, configure SDDM and apply the theme:
{ pkgs, inputs, ... }: {
services.displayManager.sddm = {
enable = true;
theme = "pixie";
wayland.enable = true; # Optional: for Wayland sessions
# Crucial for Qt6: Use the KDE/Qt6 build of SDDM to fix missing
# cursors and module errors.
package = pkgs.kdePackages.sddm;
# Required dependencies for Qt6 themes
extraPackages = [
pkgs.kdePackages.qtsvg
pkgs.kdePackages.qtdeclarative
pkgs.kdePackages.qt5compat
];
};
environment.systemPackages = [
# Install and customize the theme. All fields are optional and will
# fall back to theme defaults if not set.
(inputs.pixie-sddm.packages.${pkgs.stdenv.hostPlatform.system}.pixie-sddm.override {
background = ./my-background.jpg; # Nix path or absolute path
avatar = ./my-avatar.jpg; # Nix path or absolute path
primaryColor = "#B3C8FF"; # Hex color code
accentColor = "#3F5F91"; # Hex color code
autoColor = true; # true/false
backgroundColor = "#1A1C1E"; # Hex color code
textColor = "#E2E2E6"; # Hex color code
fontFamily = "JetBrains Mono"; # Font family name
fontSize = 13; # Font size in px
})
];
}Add the following to your configuration.nix. (Change rev = "main" to
rev = "qt5" for legacy systems).
Note
For Qt6: If you are using the main (Qt6) branch, you must use
pkgs.kdePackages.sddm to ensure the Qt6 platform plugins load
correctly. Without this, your mouse cursor may not appear.
{ pkgs, ... }: {
services.displayManager.sddm = {
enable = true;
theme = "pixie";
# Crucial for Qt6: Use the KDE/Qt6 build of SDDM to fix missing cursors and module errors
package = pkgs.kdePackages.sddm;
# Fix for NixOS explicitly requiring a cursor theme
settings = {
Theme = {
CursorTheme = "breeze_cursors"; # Change this if you use a different cursor theme (e.g., Adwaita)
};
};
};
environment.systemPackages = [
(pkgs.stdenv.mkDerivation {
name = "pixie-sddm";
src = pkgs.fetchFromGitHub {
owner = "xCaptaiN09";
repo = "pixie-sddm";
rev = "main";
hash = pkgs.lib.fakeHash;
};
installPhase = "
mkdir -p $out/share/sddm/themes/pixie
cp -r * $out/share/sddm/themes/pixie/
";
})
# Correct Qt6 dependencies for NixOS
pkgs.kdePackages.qtdeclarative
pkgs.kdePackages.qtsvg
pkgs.kdePackages.qt5compat # Included for wider QML component compatibility
];
}- Copy the folder to SDDM themes directory:
sudo cp -r pixie-sddm /usr/share/sddm/themes/pixie - Set the theme in
/etc/sddm.conf:[Theme] Current=pixie
Run this command to preview the theme safely:
# For Qt6 (Modern):
sddm-greeter-qt6 --test-mode --theme /usr/share/sddm/themes/pixie
# For Qt5 (Legacy):
sddm-greeter --test-mode --theme /usr/share/sddm/themes/pixieEdit theme.conf or replace assets in assets/:
- Wallpaper: Replace
assets/background.jpg. - Avatar: Replace
assets/avatar.jpg. - Dynamic Colors:
autoColor=true(Default): Automatically extracts a Material You accent color from your wallpaper.autoColor=false: Disables extraction and strictly uses theaccentColoryou set intheme.conf.
- Background Colors: Change
backgroundColorintheme.conf. The login card, input fields, and borders will automatically generate lighter variants to match. - Clock Format: Set
use24HourClock=falseintheme.confto switch to a 12-hour clock, oruse24HourClock=truefor 24-hour.
- Author: xCaptaiN09
- Design: Inspired by Google Pixel and MD3.
- Font: Flex Rounded & Material Design Icons (included).
Made with ❤️ for the Linux community.









