Migrate to the modern SDDM configuration

Applies to:
Manjaro KDE Plasma edition


SDDM: sddm.conf

The traditional /etc/sddm.conf file contained settings for SDDM. Users with recent Manjaro installations may find sddm.conf is empty, or non-existent.

This is due to the contents of sddm.conf being recently split into several files under /etc/sddm.conf.d/. These files will contain SDDM settings rather than needing to access sddm.conf directly.

  • sddm.conf is removed in new Manjaro installs. :eyes:

Settings from /etc/sddm.conf (old defaults)

The legacy sddm.conf defaults are provided for reference only. Some settings are outdated or invalid for use in the modern SDDM configuration:

[Autologin]
Relogin=false
Session=
User=

[General]
DisplayServer=x11
GreeterEnvironment=
HaltCommand=/usr/bin/systemctl poweroff
InputMethod=
Namespaces=
Numlock=none
RebootCommand=/usr/bin/systemctl reboot

[Theme]
Current=
CursorSize=
CursorTheme=
DisableAvatarsThreshold=7
EnableAvatars=true
FacesDir=/usr/share/sddm/faces
Font=
ThemeDir=/usr/share/sddm/themes

[Users]
DefaultPath=/usr/local/sbin:/usr/local/bin:/usr/bin
HideShells=
HideUsers=
MaximumUid=60513
MinimumUid=1000
RememberLastSession=true
RememberLastUser=true
ReuseSession=true

[Wayland]
CompositorCommand=weston --shell=kiosk
EnableHiDPI=true
SessionCommand=/usr/share/sddm/scripts/wayland-session
SessionDir=/usr/local/share/wayland-sessions,/usr/share/wayland-sessions
SessionLogFile=.local/share/sddm/wayland-session.log

[X11]
DisplayCommand=/usr/share/sddm/scripts/Xsetup
DisplayStopCommand=/usr/share/sddm/scripts/Xstop
EnableHiDPI=true
ServerArguments=-nolisten tcp
ServerPath=/usr/bin/X
SessionCommand=/usr/share/sddm/scripts/Xsession
SessionDir=/usr/local/share/xsessions,/usr/share/xsessions
SessionLogFile=.local/share/sddm/xorg-session.log
XephyrPath=/usr/bin/Xephyr

The new “drop-in” files

With the “modern SDDM configuration” sddm.conf is removed and replaced by system managed “drop-in” files in the /etc/sddm.conf.d/ directory.

If these files already exist in your Manjaro KDE system, asking for a directory listing of /etc/sddm.conf.d should reveal the following three files:

ls /etc/sddm.conf.d/:

00_manjaro_settings.conf  kde_settings.conf  virtualkeyboard.conf

These files can be generated by installing manjaro-kde-settings – from that point forward, they will be managed by the system.

  • Manual editing is not advisable.

Changes made to SDDM via System Settings will be reflected in the respective drop-in file – for example, when a global theme changed, it will be reflected in kde_settings.conf.


The initial content of the three drop-in files are shown here:

/etc/sddm.conf.d/00_manjaro_settings.conf
[Theme]
Current=breath
CursorTheme=breeze_cursors
/etc/sddm.conf.d/kde_settings.conf
[Autologin]
Relogin=false
Session=plasma.desktop

[Theme]
Current=breath
CursorTheme=breeze_cursors
/etc/sddm.conf.d/virtualkeyboard.conf
InputMethod=qtvirtualkeyboard

Migrate to the modern SDDM configuration

Users of older established Manjaro installations may wish to migrate some existing settings from sddm.conf to a custom drop-in file located under /etc/sddm.conf.d/.

Naming of the drop-in file is arbitrary – it can be named anything you wish.

This author suggests a “snake case” naming convention using a 2-digit prefix, 99_custom_settings.conf, in the spirit of Unix principles.


1. Install the base modern SDDM configuration

Check that the modern SDDM configuration exists in your system:

ls /etc/sddm.conf.d/

If the drop-in files are not present, install manjaro-kde-settings:

sudo pacman -S manjaro-kde-settings

2. Add extra settings to a custom “drop-in” file

The following files might be kept open for a few minutes, so Kate is suggested for convenience – do not use sudo when launching Kate.


Create the new custom drop-in file:

kate /etc/sddm.conf.d/99_custom_settings.conf

Examine your existing sddm.conf in another tab:

kate /etc/sddm.conf

Relocated

Some settings are already relocated to the modern SDDM configuration drop-ins, and should not be added to your 99_custom_settings.conf drop-in file:


Settings relocated to drop-in files
Setting Section Notes
:+1: Relogin= [Autologin] Moved to kde_settings.conf
:+1: Session= [Autologin] Moved to kde_settings.conf
:+1: Current= [Theme] Moved to kde_settings.conf
:+1: CursorTheme= [Theme] Moved to kde_settings.conf
:+1: InputMethod= [General] Moved to virtualkeyboard.conf

Incompatible

The following settings are incompatible with the modern SDDM configuration, and should not be added to 99_custom_settings.conf:


Known incompatible settings
Setting Section Notes
:x: DisableAvatarsThreshold= [Theme] Removed: Avatars not shown.
:x: ReuseSession= [Users] KDE bug: ReuseSession=false
  • DisableAvatarsThreshold=7 (default)
    Setting designed to reduce time taken to load avatars with large numbers of users by disabling avatars when that threshold was exceeded. Reason(s) for removal of this setting are unclear.
  • ReuseSession=false (default)
    Setting should facilitate a new session - instead it causes Plasma to display a black screen. Two concurrent sessions are explicitly unsupported by KDE. The much anticipated Plasma Login Manager will not have this limitation and will always re-use the session.

Recommended

Some settings may be considered “best practice” or commonly used and can be added to your 99_custom_settings.conf file:


Include the [Wayland] section

Include the [Wayland] section as described in Arch Wiki SDDM:

[General]
GreeterEnvironment=QT_WAYLAND_SHELL_INTEGRATION=layer-shell

[Wayland]
CompositorCommand=kwin_wayland --drm --no-lockscreen --no-global-shortcuts --locale1

Enable Numlock while in SDDM

The Numlock= setting is optional; many laptops do not have a number pad. :eyes:

[General]
Numlock=on

Include the [X11] section (optional)

Users who opted to reinstall the plasma-x11-session may wish to add the [X11] section from sddm.conf minus the invalid settings listed below:

[X11]
DisplayCommand=/usr/share/sddm/scripts/Xsetup
DisplayStopCommand=/usr/share/sddm/scripts/Xstop
EnableHiDPI=false
ServerArguments=-nolisten tcp
ServerPath=/usr/bin/X
SessionCommand=/usr/share/sddm/scripts/Xsession
SessionDir=/usr/local/share/xsessions,/usr/share/xsessions
SessionLogFile=.local/share/sddm/xorg-session.log
XephyrPath=/usr/bin/Xephyr

Settings from sddm.conf invalid for the “modern SDDM configuration”:

  • :x: MinimumVT= Removed: Not available since SDDM v0.20.
  • :x: UserAuthFile= Removed: _/tmp/xauth_XXXXX_ is always created.
  • :x: XauthPath= Removed: Unnecessary, a libxau is used instead.

Login Screens for SDDM:

Using the [Wayland] section in the modern SDDM configuration unfortunately reveals some incompatibilities with SDDM Login Screens provided by Arch Linux.


Incompatible Qt5 Login Screens

In the SDDM (ArchWiki) page under the Wayland heading, it is suggested that layer-shell-qt5 (AUR) is required to support Qt5 based Login Screens for SDDM.

That package unfortunately appears to be broken. We are unable to recommend Qt5 based Login Screens while using the modern SDDM configuration.

  • The following Qt5 Login Screens are known to be incompatible. Enabling any of these will result in a black screen instead of displaying SDDM.

:warning: These Login Screens rely on Qt5 – do not use!

  • :x: Elarun by Reza Fatahilah Shah
  • :x: Maldives by Abdurrahman AVCI
  • :x: Maya by Sanjeev Premi

Login Screens provided as part of the default Global Themes work as expected. We presume that most Login Screens for SDDM in the wild also based on Qt6 will similarly have no issues; naturally, we cannot guarantee it.


Compatible Qt6 Login Screens

  • :+1: Breath by Manjaro Team
  • :+1: Breeze by KDE Visual Design Group


3. An example of 99_custom_settings.conf:

An example of a finished custom drop-in file including elements of the [General], [Wayland] and [X11] sections of the old sddm.conf, consolidated into a new 99_custom_settings.conf drop-in file:

[General]
GreeterEnvironment=QT_WAYLAND_SHELL_INTEGRATION=layer-shell
#Numlock=on

[Wayland]
CompositorCommand=kwin_wayland --drm --no-lockscreen --no-global-shortcuts --locale1

[X11]
DisplayCommand=/usr/share/sddm/scripts/Xsetup
DisplayStopCommand=/usr/share/sddm/scripts/Xstop
EnableHiDPI=false
ServerArguments=-nolisten tcp
ServerPath=/usr/bin/X
SessionCommand=/usr/share/sddm/scripts/Xsession
SessionDir=/usr/local/share/xsessions,/usr/share/xsessions
SessionLogFile=.local/share/sddm/xorg-session.log
XephyrPath=/usr/bin/Xephyr

4. Remove the old sddm.conf


Move sddm.conf to sddm.conf.bak:

sudo mv /etc/sddm.conf{,.bak}

  • Reboot to test the modern SDDM configuration. :point_left:

If there is a problem:

Move sddm.conf.bak back to sddm.conf:

sudo mv /etc/sddm.conf{.bak,}

If everything works as expected, sddm.conf.bak can be safely deleted:

sudo rm /etc/sddm.conf.bak

Enjoy!


Contributors:

Last Updated: 2026-01-18


3 Likes