SDDM

Related articles

The Simple Desktop Display Manager (SDDM) is the preferred display manager for KDE Plasma desktop. From Wikipedia:

Simple Desktop Display Manager (SDDM) is a display manager (a graphical login program) for the windowing systems X11 and Wayland. SDDM was written from scratch in C++11 and supports theming via QML. It is the successor of the KDE Display Manager and is used in conjunction with KDE Frameworks 5, KDE Plasma 5 and KDE Applications 5.

Installation

Install the sddm package from the official repositories.

Then follow Display manager#Loading the display manager to start SDDM at boot. If you're migrating from KDM, the following should work for you:

# systemctl disable kdm && systemctl enable sddm 
Removed symlink /etc/systemd/system/display-manager.service.
Created symlink from /etc/systemd/system/display-manager.service to /usr/lib/systemd/sddm.service.

Configuration

The configuration file for SDDM can be found at /etc/sddm.conf. See man sddm.conf for all options.

On systems controlled by systemd, everything should work out of the box, since SDDM defaults to using systemd-logind for session management. The configuration file will therefore not be created at package installation time. SDDM offers a command for generating a sample configuration file with the default settings if you really want one:

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

Autologin

SDDM supports automatic login through its configuration file, for example:

/etc/sddm.conf
[Autologin]
User=john
Session=plasma.desktop

This configuration causes a KDE Plasma session to be started for user john when the system is booted. Available session types can be found in /usr/share/xsessions/ directory.

Warning: If wrongly configured, automatic login could cause an attacker that has physical access to your notebook to break into your desktop effortlessly. It should only be enabled when another authentication prompt secures the system, e. g. the passphrase for your encrypted root filesystem.

An option to autologin into KDE Plasma while simultaneously locking the session is not available as of the time of this writing.

You can add a little script that activates the screensaver of KDE to the autostart as a workaround:

#!/bin/bash                                                                                                                                                         
/usr/bin/qdbus-qt4 org.kde.screensaver /ScreenSaver SetActive true &
exit 0

Theme settings

Theme settings can be changed in the [Theme] section.

Main theme

Set the main theme through the Current value, e.g. Current=archlinux.

Mouse cursor

To set the mouse cursor theme, set CursorTheme to your preferred cursor theme.

Changing your avatar

You can simply put a png image named username.face.icon into the default directory /usr/share/sddm/faces/. Alternatively you can change the default directory to match your desires, e.g. FacesDir=/var/lib/AccountsService/users/.

Numlock

If you want to enforce Numlock to be enabled, set Numlock=on in the [General] section.

Configuration GUI

  • KDE Frameworks' System Settings contains an SDDM configuration module.
  • There is a Qt-based sddm-config-editor in the AUR.

Troubleshooting

No desktop effects in KDE Plasma

When I changed from KDM to SDDM and logged into KDE Plasma 4, desktop effects were disabled and could not be enabled. It turned out that SDDM wrongly started KDE Plasma in Failsafe mode. If you cannot enable desktop effects, log out and check the session selection in SDDM before logging back in.

SDDM starts on tty1 instead of tty7

SDDM follows the systemd convention of starting the first graphical session on tty1. If you prefer the old convention where tty1 through tty6 are reserved for text consoles, add the following to your sddm.conf:

/etc/sddm.conf
[XDisplay]
MinimumVT=7

One or more users don't show up on the greeter

SDDM only displays users with a UID in the range of 1000 to 65000 by default, if the UIDs of the desired users are below this value then you will have to modify this range. Modify your sddm.conf to (for a UID of 501, say):

/etc/sddm.conf
[Users]
HideShells=/sbin/nologin,/bin/false
# Hidden users, this is if any system users fall within your range, see /etc/passwd on your system.
HideUsers=git,sddm,systemd-journal-remote,systemd-journal-upload

# Maximum user id for displayed users
MaximumUid=65000

# Minimum user id for displayed users
MinimumUid=500 #My UID is 501