dotlinux blog

How to Customize the SDDM Display Manager on Linux

The Simple Desktop Display Manager (SDDM) is a modern, lightweight, and highly customizable display manager used to handle user login screens on Linux systems. It is the default display manager for KDE Plasma, LXQt, and several other desktop environments, thanks to its sleek design, Qt5/Qt6 foundation, and support for both X11 and Wayland sessions.

While SDDM works out of the box with a clean, minimal interface, customizing it can transform your login screen into a personalized, visually striking gateway to your desktop. Whether you want to match your system’s theme, adjust fonts, set a custom background, or even tweak session options, SDDM offers extensive flexibility.

This guide will walk you through every aspect of SDDM customization, from basic tweaks like changing themes and backgrounds to advanced modifications like HiDPI scaling and autologin. By the end, you’ll have the tools to make your login screen as unique as your workflow.

Note: As of KDE Plasma 6.6 (released February 2026), the new Plasma Login Manager (PLM) is gradually replacing SDDM as the default display manager on KDE-focused distributions like Fedora 44. PLM is a fork of SDDM with deeper Plasma integration. However, SDDM remains widely used on non-KDE distributions, older installations, and systems where administrators prefer it. Everything in this guide applies to SDDM as installed today.

Last Updated: 2025-11

Table of Contents#

  1. Prerequisites
  2. Understanding SDDM Configuration Files
  3. Customizing SDDM Themes
    • 3.1 Finding SDDM Themes
    • 3.2 Installing Themes (System-Wide vs. User-Specific)
    • 3.3 Selecting a Theme
    • 3.4 Editing Themes (Advanced)
  4. Changing the Background/Wallpaper
  5. Adjusting Fonts and Colors
  6. Configuring Session Options
  7. Advanced Tweaks
    • 7.1 Enabling Autologin
    • 7.2 HiDPI Support
    • 7.3 User Avatars (Profile Pictures)
    • 7.4 Adding a Custom Welcome Message or Logo
    • 7.5 Rootless Mode (Security Hardening)
    • 7.6 Numlock on Startup
    • 7.7 Virtual Keyboard
  8. Troubleshooting Common Issues
  9. Conclusion
  10. References

Prerequisites#

Before diving into customization, ensure you have the following:

  • A Linux system with SDDM installed: SDDM is preinstalled on KDE Plasma, but you can install it on other DEs (e.g., sudo apt install sddm on Debian/Ubuntu, sudo pacman -S sddm on Arch, sudo dnf install sddm on Fedora).
  • Basic command-line familiarity: You’ll need to edit configuration files and run terminal commands.
  • A text editor: Use your preferred editor (e.g., nano, vim, kate, or gedit).
  • Backup your config files: Always back up /etc/sddm.conf (or /etc/sddm.conf.d/) before making changes to avoid breaking SDDM.

Understanding SDDM Configuration Files#

SDDM’s behavior is controlled by configuration files, which define themes, autologin, display settings, and more. The recommended approach is to create small, purpose-specific files in /etc/sddm.conf.d/ rather than editing a single monolithic config. Here’s where to find and how to edit them:

Key Configuration Paths#

PathPurpose
/etc/sddm.confMain SDDM configuration file. Avoid editing directly—use drop-in files instead.
/etc/sddm.conf.d/Preferred location. Directory for drop-in configuration files (e.g., 10-theme.conf, 20-autologin.conf). Files are read in alphabetical order.
/usr/lib/sddm/sddm.conf.d/System default configuration files (do not edit directly—override in /etc/sddm.conf.d/ instead).
/usr/share/sddm/themes/System-wide theme directory (themes here are available to all users).
~/.local/share/sddm/themes/User-specific theme directory (themes here only apply to your user).

Viewing and Generating Configuration#

The default configuration ships at /usr/lib/sddm/sddm.conf.d/default.conf. You can view it with:

cat /usr/lib/sddm/sddm.conf.d/default.conf  

To generate a full example config for reference:

sudo sddm --example-config > /etc/sddm.conf  

However, the preferred method is to create small override files in /etc/sddm.conf.d/. For example, to change the theme, create /etc/sddm.conf.d/10-theme.conf with only the relevant sections. This keeps your changes organized and avoids conflicts with distribution updates.

Configuration File Structure#

SDDM config files use an INI-style format with sections (e.g., [Theme], [Autologin]) and key-value pairs. For example:

[Theme]  
Current=breeze  # Name of the active theme  
CursorTheme=breeze_cursors  # Mouse cursor theme  
 
[X11]  
EnableHiDPI=true  # Enable HiDPI scaling  

Customizing SDDM Themes#

Themes are the cornerstone of SDDM customization. They control the login screen’s layout, widgets, colors, and animations.

3.1 Finding SDDM Themes#

SDDM themes are community-driven and widely available. Popular sources include:

3.2 Installing Themes#

Themes can be installed system-wide (for all users) or user-specifically (only for your account).

  1. Download the theme (usually a .tar.gz or .zip file).

  2. Extract it to /usr/share/sddm/themes/ (requires sudo):

    sudo tar -xzf your-theme.tar.gz -C /usr/share/sddm/themes/  
  3. Verify the theme folder exists:

    ls /usr/share/sddm/themes/  # Should show your theme’s folder name  

User-Specific Installation (Testing)#

For testing themes without affecting other users, install to ~/.local/share/sddm/themes/:

mkdir -p ~/.local/share/sddm/themes/  
tar -xzf your-theme.tar.gz -C ~/.local/share/sddm/themes/  

3.3 Selecting a Theme#

To activate a theme, edit the [Theme] section in your SDDM config.

  1. Open your config file (e.g., /etc/sddm.conf or a file in /etc/sddm.conf.d/):

    sudo nano /etc/sddm.conf.d/10-theme.conf  
  2. Add/modify the Current key to match your theme’s folder name:

    [Theme]  
    Current=Nordic  # Replace "Nordic" with your theme’s folder name  
  3. Save and exit. Restart SDDM to apply changes:

    sudo systemctl restart sddm  # Logs you out—save work first!  

3.4 Editing Themes (Advanced)#

For full control, edit the theme’s files directly. Most themes include:

  • metadata.desktop: Defines theme name, author, and compatibility.
  • theme.conf: Controls basic settings (background, fonts, cursor theme).
  • qml/: Directory with QML (Qt Meta Language) files, which define the visual layout (buttons, text, animations).

Overriding Theme Settings Without Editing Theme Files#

The cleanest way to customize a theme is to create a theme.conf.user file in the same directory as the theme’s theme.conf. SDDM reads this file as an override, so your changes survive theme updates:

sudo nano /usr/share/sddm/themes/Nordic/theme.conf.user  

Add only the settings you want to change:

[General]  
Background=/home/your-user/Pictures/custom-bg.jpg  

Example: Modifying a Theme’s Background#

  1. Open the theme’s theme.conf (e.g., for Nordic):

    sudo nano /usr/share/sddm/themes/Nordic/theme.conf  
  2. Look for a Background key. Replace the path with your image:

    [General]  
    Background=/home/your-user/Pictures/custom-bg.jpg  # Absolute path required  
  3. If the theme hardcodes the background in QML (common in complex themes), edit the QML file (e.g., qml/Main.qml):

    // Search for an Image element like this:  
    Image {  
        source: "/usr/share/sddm/themes/Nordic/background.jpg"  # Replace this path  
        fillMode: Image.Stretch  
    }  

Changing the Background/Wallpaper#

Even without editing themes, you can set a custom background via SDDM’s config.

  1. Edit your SDDM config:

    sudo nano /etc/sddm.conf.d/20-background.conf  
  2. Add a Background key under [Theme]:

    [Theme]  
    Background=/home/your-user/Pictures/login-bg.png  # Use an absolute path  
  3. Restart SDDM:

    sudo systemctl restart sddm  

Note: Some themes ignore the global Background setting and use their own. In that case, edit the theme’s theme.conf or QML files (see Section 3.4).

Adjusting Fonts and Colors#

Tweak fonts and colors to match your desktop theme.

Fonts#

Fonts are often defined in the theme’s theme.conf under a [Fonts] section:

[Fonts]  
Font=Noto Sans  # Font family  
Size=12         # Font size  
BoldFont=Noto Sans Bold  

If the theme uses QML, fonts may be set directly in QML files (e.g., Text { font.family: "Noto Sans"; font.pointSize: 12 }).

Colors#

Colors are typically controlled via QML. For example, to change the login button color:

  1. Open the theme’s QML file (e.g., qml/LoginButton.qml).

  2. Look for a color property:

    Button {  
        id: loginButton  
        text: "Log In"  
        color: "#5E81AC"  # Replace with your hex color (e.g., #FF5555 for red)  
    }  

Use tools like GIMP or ColorHexa to pick hex color codes.

Configuring Session Options#

SDDM lists available desktop environments (e.g., Plasma, GNOME, Xfce) and Wayland/X11 sessions. Customize which sessions appear and set defaults.

Hiding Unwanted Sessions#

Sessions are defined by .desktop files in /usr/share/xsessions/ (X11) and /usr/share/wayland-sessions/ (Wayland). To hide a session:

  1. Open the session’s .desktop file (e.g., gnome.desktop):

    sudo nano /usr/share/xsessions/gnome.desktop  
  2. Add Hidden=true to the [Desktop Entry] section:

    [Desktop Entry]  
    Name=GNOME  
    Exec=gnome-session  
    Hidden=true  # Add this line  

Setting a Default Session#

To auto-select a session (e.g., Plasma) when logging in, add a DefaultSession key to [Sessions] in your SDDM config:

[Sessions]  
DefaultSession=plasma.desktop  # Use the filename of your desired session  

Advanced Tweaks#

7.1 Enabling Autologin#

Bypass the login screen by auto-logging in as a specific user:

  1. Edit your SDDM config:

    sudo nano /etc/sddm.conf.d/30-autologin.conf  
  2. Add the [Autologin] section:

    [Autologin]  
    User=your-username       # Your Linux username  
    Session=plasma           # Session to launch (e.g., plasma, gnome, xfce)  
    Delay=0                  # Seconds to wait before autologin (0 = instant)  
  3. Restart SDDM:

    sudo systemctl restart sddm  

7.2 HiDPI Support#

For high-resolution displays, enable HiDPI scaling. Create a drop-in config file:

sudo nano /etc/sddm.conf.d/hidpi.conf  

Add the following:

[X11]  
EnableHiDPI=true  
 
[Wayland]  
EnableHiDPI=true  

For Wayland with a Qt-based greeter (such as Breeze), you may also need to set scaling factors explicitly:

[General]  
GreeterEnvironment=QT_SCREEN_SCALE_FACTORS=2,QT_FONT_DPI=192  

To set a custom DPI for X11, you can pass the -dpi argument to the X server:

[X11]  
ServerArguments=-nolisten tcp -dpi 192  

7.3 User Avatars (Profile Pictures)#

SDDM can display user profile pictures on the login screen. There are two ways to set them:

Per-user (simplest): Place a PNG image named .face.icon in each user’s home directory:

cp my-avatar.png ~/.face.icon  

Make sure the sddm system user can read the file:

setfacl -m u:sddm:x ~/  
setfacl -m u:sddm:r ~/.face.icon  

Global directory: Place PNG images named <username>.face.icon in /usr/share/sddm/faces/ (or another directory configured via FacesDir). You can change the location:

[Theme]  
FacesDir=/var/lib/AccountsService/icons/  

To disable avatars (useful on systems with many users or autofs home directories):

[Theme]  
EnableAvatars=false  

To add text or a logo, edit the theme’s QML files. For example, to add a welcome message:

  1. Open the theme’s main QML file (e.g., qml/Main.qml).

  2. Add a Text element:

    Text {  
        text: "Welcome Back!"  
        font.family: "Noto Sans"  
        font.pointSize: 16  
        color: "#FFFFFF"  # White text  
        anchors.centerX: parent.centerX  
        anchors.top: parent.top  
        anchors.topMargin: 50  # Distance from top  
    }  

To add a logo, use an Image element:

Image {  
   source: "/home/your-user/Pictures/logo.png"  # Path to your logo  
   width: 100  # Logo width  
   height: 100  # Logo height  
   anchors.centerX: parent.centerX  
   anchors.top: welcomeText.bottom  # Position below welcome text  
   anchors.topMargin: 20  
}  

7.5 Rootless Mode (Security Hardening)#

Starting with SDDM 0.20.0, you can run the display server without root privileges. Create a config file:

sudo nano /etc/sddm.conf.d/rootless.conf  

For rootless X11:

[General]  
DisplayServer=x11-user  

For Wayland with KWin (Plasma):

[General]  
DisplayServer=wayland  
GreeterEnvironment=QT_WAYLAND_SHELL_INTEGRATION=layer-shell  
 
[Wayland]  
CompositorCommand=kwin_wayland --drm --no-lockscreen --no-global-shortcuts --locale1  

7.6 Numlock on Startup#

To enable numlock by default on the login screen:

[General]  
Numlock=on  

Note: This setting does not work when SDDM runs under Wayland. You may need to configure KWin settings instead.

7.7 Virtual Keyboard#

For touchscreen devices, install a virtual keyboard (e.g., qt6-virtualkeyboard) and enable it:

[General]  
InputMethod=qtvirtualkeyboard  

SDDM will display a button in the lower-left corner of the login screen to open the virtual keyboard.

Troubleshooting Common Issues#

SDDM Fails to Start#

Check logs for errors:

journalctl -u sddm  # View SDDM service logs  

Common fixes:

  • Restore your backed-up config file.
  • Reinstall SDDM: sudo apt reinstall sddm (Debian/Ubuntu).

Theme Not Showing Up#

  • Ensure the theme folder name matches the Current value in [Theme].
  • Check permissions: System-wide themes need root:root ownership (fix with sudo chown -R root:root /usr/share/sddm/themes/your-theme).

Black Screen or Broken Layout#

  • Test the theme in preview mode without restarting SDDM:

    # Qt6 systems (Plasma 6 / modern distros)  
    sddm-greeter-qt6 --test-mode --theme /usr/share/sddm/themes/your-theme  
     
    # Qt5 systems (older distros)  
    sddm-greeter --test-mode --theme /usr/share/sddm/themes/your-theme  
  • Fix QML errors (shown in the preview window) by correcting typos in the QML files.

User Avatars Not Showing#

  • Ensure the sddm system user has read access to your home directory and .face.icon file.
  • Check that EnableAvatars is not set to false in your config.
  • If using symlinks for .face.icon, set proper permissions on the target file with setfacl.

Wrong Keyboard Layout#

SDDM reads the keyboard layout from /etc/X11/xorg.conf.d/00-keyboard.conf. Generate it with:

sudo localectl set-x11-keymap us  

Replace us with your layout code (e.g., de, fr, gb).

Black Screen After Logout (NVIDIA)#

This can happen because sddm.service starts before NVIDIA drivers are fully loaded. Enable early KMS by adding the NVIDIA module to your initramfs. See your distribution’s documentation for details.

Conclusion#

SDDM is more than just a login screen—it’s a canvas for personalization. With themes, background tweaks, QML edits, and advanced features like rootless mode and HiDPI scaling, you can align your login experience with your desktop’s aesthetic. Start with simple changes (e.g., switching themes or backgrounds), then dive into advanced QML modifications to make it truly unique.

If you are setting up a new KDE Plasma 6.6+ system, check whether your distribution has switched to the Plasma Login Manager (PLM). For existing SDDM installations, this guide covers everything you need to keep your login screen customized and up to date.

References#