Open-source project
uiriansan/SilentSDDM avatar
uiriansan/SilentSDDM

SilentSDDM: A customizable QML theme for SDDM

A very customizable SDDM theme.

1,718 stars99 forksQMLGPL-3.0

At a glance

What is it?
SilentSDDM is a QML-based SDDM login theme for Linux users who want configurable presets, visual assets, and virtual keyboard support. It requires SDDM 0.21 or newer and Qt 6.5 or newer, which makes its QML dependency footprint a central adoption tradeoff.
Who is it for?
SilentSDDM fits Linux users who already manage SDDM and want a configurable QML login screen, including users covered by its Arch, Gentoo, or NixOS installation paths. It is a poor fit for systems below SDDM 0.21 or Qt 6.5, or for users who do not want the documented SVG, multimedia, image-format, and virtual-keyboard dependencies.
Can I use it commercially?
Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
Is it still maintained?
Yes. The repository last received commits 10 days ago.
What is it written in?
Mainly QML, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.

Editorial analysis

What SilentSDDM changes at the SDDM login screen

SilentSDDM addresses the appearance and presentation of the Linux login screen managed by SDDM. It is aimed at users who are comfortable changing SDDM configuration, adding Qt components, and selecting a visual preset. The README calls it a very customizable SDDM theme, while the repository layout shows that its implementation is centered on Main.qml, components/, backgrounds/, fonts/, icons/, qmldir, and multiple files under configs/.

This project is not a desktop environment, shell, or authentication service. It is a theme for the SDDM greeter, while SDDM continues to manage the login interface and session environment. That boundary matters during evaluation. SilentSDDM can change the QML interface and the files presented before login, but the README does not claim that it changes how Linux authenticates users or starts desktop sessions.

The project targets Linux systems using SDDM and Qt 6. The README requires SDDM version 0.21.0 or newer, Qt version 6.5 or newer, qt6-svg, qt6-virtualkeyboard, qt6-multimedia, and qt6-imageformats. These requirements make SilentSDDM more involved than a theme that only needs the display manager and a small set of static image assets. The repository topics include animated-backgrounds, Catppuccin, Everforest, and Nord, while the README exposes presets named default, rei, ken, silvia, Everforest, four Catppuccin variants, and Nord.

QML components, presets, and theme assets

Based on the repository layout, Main.qml is the main QML entry point and reusable interface pieces are stored under components/. The directory structure separates interface code, assets, and configuration. Background files are under backgrounds/, fonts are under fonts/, icons are under icons/, and preset files are under configs/. The qmldir file provides QML module metadata for the theme.

The presets are the clearest customization surface documented by the README. `configs/default.conf` is presented as the default preset. Other named files include `configs/rei.conf`, `configs/ken.conf`, `configs/silvia.conf`, `configs/everforest.conf`, `configs/catppuccin-latte.conf`, `configs/catppuccin-frappe.conf`, `configs/catppuccin-macchiato.conf`, `configs/catppuccin-mocha.conf`, and `configs/nord.conf`.

The README links to a customization guide but does not enumerate every editable configuration key. It therefore does not establish whether a setting controls animation speed, background selection, user layout, clock format, or any other specific interface element. The exact preset files should be treated as the source of truth for available values. This is especially relevant when selecting a theme based on a screenshot, because the visible appearance may be assembled from QML components, fonts, icons, and background assets rather than from one configuration property.

The dependency list also clarifies why this theme is more than a static color preset. qt6-svg supports SVG content, qt6-imageformats expands image handling, qt6-multimedia supplies multimedia support, and qt6-virtualkeyboard provides the input method named in the SDDM configuration. The backgrounds/ directory and the animated-backgrounds topic indicate that background media is part of the intended design. The README does not document playback controls, accepted media formats, performance behavior, or fallback behavior when an animated background cannot load.

Installing SilentSDDM and testing the login screen

For a system with the required dependencies, the README gives a direct repository installation path. It tells users to clone the main branch, enter the repository directory, and run the included script. The repository contains install.sh, but the README does not show every filesystem operation performed by that script. A user who needs to audit installation changes should inspect the script before executing it.

The documented install command is:

bash
git clone -b main --depth=1 https://github.com/uiriansan/SilentSDDM && cd SilentSDDM && ./install.sh

After installation, the README recommends testing the theme before rebooting. The documented test command is:

bash
./test.sh

The README does not define exact expected output for this command. The concrete first check is whether the test completes without reporting a missing dependency, QML import, or interface error. It points users to the project wiki's snippets page for troubleshooting and to a new issue page if no solution is found.

This test-before-reboot requirement is not incidental. The README warns that an untested installation might otherwise leave the user with a broken login screen. It does not document an automatic rollback command or a recovery procedure for every failure state. Users who cannot access an alternate terminal after a reboot should preserve access to another terminal or another display-manager configuration before applying the theme to their normal login path.

Arch, Gentoo, and NixOS configuration paths

SilentSDDM provides distribution-specific installation routes instead of limiting users to `install.sh`. Arch users can choose between a stable AUR package and a Git package. The README documents these commands:

bash
yay -S sddm-silent-theme
bash
yay -S sddm-silent-theme-git

The first command selects the stable package, while the second selects the Git version. After installing either package, the README says to edit `/etc/sddm.conf` with the following settings:

ini
[General]
InputMethod=qtvirtualkeyboard
GreeterEnvironment=QML2_IMPORT_PATH=/usr/share/sddm/themes/silent/components/,QT_IM_MODULE=qtvirtualkeyboard

[Theme]
Current=silent

`Current=silent` selects the installed theme. `QML2_IMPORT_PATH` points to its components directory, and `QT_IM_MODULE` selects `qtvirtualkeyboard`. The documented post-configuration test is run from the installed theme directory:

bash
cd /usr/share/sddm/themes/silent/
./test.sh

Gentoo users are directed to the GURU repository. The README says to install and enable it with Portage:

bash
emerge -av eselect-repository
eselect repository enable guru
emaint sync -r guru

It then documents unmasking `x11-misc/silent-sddm-theme` in `packages.accept_keywords` and installing it:

bash
emerge -av x11-misc/silent-sddm-theme

The README uses the same `/etc/sddm.conf` settings shown for Arch. It does not describe how the GURU package follows upstream releases, so its update behavior should not be inferred from the presence of a package name.

NixOS configuration and local testing

The NixOS flake offers a declarative route through a default `nixosModule`. The README first shows how to add the flake as an input:

nix
inputs = {
   silentSDDM = {
      url = "github:uir/SilentSDDM";
      inputs.nixpkgs.follows = "nixpkgs";
   };
};

The module is then imported and enabled with a theme selection:

nix
{
  inputs,
  ...
}: {
  imports = [inputs.silentSDDM.nixosModules.default];
  programs.silentSDDM = {
      enable = true;
      theme = "rei";
      # settings = { ... }; see example in module
  };
}

The README says that SilentSDDM should then be installed and configured. It names `test-sddm-silent` as the executable for testing. The example uses `rei`, but the README does not provide a complete list of values accepted by the NixOS module, so the descriptions and examples in `nix/module.nix` are the appropriate source for exact options.

A separate development workflow is documented for working from a local clone. The clone commands are:

bash
git clone https://github.com/uiriansan/SilentSDDM.git
cd SilentSDDM/

After local changes, the README gives this test command:

bash
nix run .#test

The NixOS section warns that the module adds dependencies to SDDM and that a restart may be required for the theme to work correctly. That note ties the configuration layer to the wider system state: enabling the module is not the same as installing the QML files alone.

SilentSDDM limitations and upgrade boundaries

The first limitation is the minimum software baseline. SilentSDDM requires SDDM 0.21.0 or newer and Qt 6.5 or newer. A Linux installation with an older SDDM or Qt release does not satisfy the documented requirements. The theme also needs qt6-svg, qt6-virtualkeyboard, qt6-multimedia, and qt6-imageformats. Systems that deliberately avoid those Qt modules would have to expand their package set to use SilentSDDM.

The second limitation is possible login-screen failure. The README warns that users should run `./test.sh` before rebooting because an otherwise broken theme can leave them without a usable login screen. The README directs users to a snippets page for troubleshooting, but it does not document a formal rollback command. Users who depend on SDDM for every boot should retain access to another terminal and preserve a known-working configuration.

Customization documentation is also incomplete in the README. It links to a customization guide and demonstrates presets, but it does not list all configuration keys or define compatibility for each preset. The NixOS section refers readers to `nix/module.nix` for option descriptions. As a result, screenshots alone cannot answer whether a preset depends on optional fonts, images, animations, or particular QML components.

The repository is not archived, and the last push was on 2026-10-13. Listed releases include v1.5.1 on 2026-10-13, v1.5.0 on 2026-06-06, and v1.4.2 on 2026-01-31. This history shows recent repository activity, but the README does not promise long-term support, compatibility with every distribution, or an automatic migration path between releases. Upgrading can therefore require the same configuration and pre-reboot testing discipline as installation.

Choosing SilentSDDM instead of a basic SDDM theme

A basic SDDM theme can focus on replacing greeter visuals with a comparatively small set of QML files and static assets. SilentSDDM follows a more asset-oriented approach. Its repository includes component code, multiple presets, fonts, icons, backgrounds, configuration files, and a Nix module. It also requires Qt modules associated with SVG content, image formats, multimedia, and virtual-keyboard input.

The choice is therefore not simply between different color schemes. SilentSDDM is relevant when the user wants named presets such as Nord, Everforest, or Catppuccin and accepts the documented package requirements. Its installation coverage is also a concrete advantage for users on supported paths: Arch has stable and Git AUR packages, Gentoo has a GURU package, NixOS has a flake module, and other systems can use the repository script or a release archive.

It is less suitable for a stripped-down Linux installation that cannot add the required Qt packages. It is also a poor choice for someone who wants an SDDM-independent login design or expects the project to replace SDDM authentication. A user who only needs a small static interface may accept fewer dependencies in exchange for fewer moving parts, while SilentSDDM adds preset selection, asset dependencies, and documented testing steps.

The repository declares the GPL-3.0 license. That identifies the stated licensing terms for the project, but this review does not interpret them. Anyone redistributing a modified copy should inspect the LICENSE file and account for any changes made to the QML files, assets, or installed package.

Editorial conclusion

SilentSDDM fits Linux users who already manage SDDM and want a configurable QML login screen, including users covered by its Arch, Gentoo, or NixOS installation paths. It is a poor fit for systems below SDDM 0.21 or Qt 6.5, or for users who do not want the documented SVG, multimedia, image-format, and virtual-keyboard dependencies. Verify the required package versions, inspect the selected preset under configs/, and run ./test.sh before rebooting.

Frequently asked questions

What are SilentSDDM's minimum system requirements?

SilentSDDM requires SDDM 0.21.0 or newer and Qt 6.5 or newer. It also lists qt6-svg, qt6-virtualkeyboard, qt6-multimedia, and qt6-imageformats as dependencies.

How do I test SilentSDDM before restarting my computer?

After cloning the repository, run `./test.sh`. The README specifically recommends testing before rebooting because an untested theme can result in a broken login screen.

Which presets are included with SilentSDDM?

The README names default, rei, ken, silvia, Everforest, four Catppuccin variants, and Nord presets under `configs/`. Their exact settings are stored in the corresponding `.conf` files.

Official sources

  1. Issues
  2. License: GPL-3.0
  3. README
  4. Releases
  5. uiriansan/SilentSDDM on GitHub
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/uiriansan-silentsddm.svg)](https://hysenlabs.com/projects/uiriansan-silentsddm)

Was this useful?