Introduction to SDDM

The SDDM package contains a lightweight display manager based upon Qt and QML.

This package is known to build and work properly using an LFS-8.1 platform.

Package Information

SDDM Dependencies


CMake-3.9.4, extra-cmake-modules-5.37.0 and Qt-5.9.2



Docutils (for the man pages)

Runtime Dependency


User Notes:

Installation of SDDM

First, create a dedicated user and group to take control of the sddm daemon after it is started. Issue the following commands as the root user:

groupadd -g 64 sddm &&
useradd  -c "SDDM Daemon" \
         -d /var/lib/sddm \
         -u 64 -g sddm    \
         -s /bin/false sddm

Next, fix the application to start upowerd, if necessary, and after login, start the session with ck-launch-session:

sed -e '/UPOWER_SERVICE)/ s:^://:' \
    -i src/daemon/PowerManager.cpp &&

sed -e '/\$@$/s/exec/& ck-launch-session/' \
    -i data/scripts/Xsession

For sddm-0.16.0, ConsoleKit support has been added, but is broken. Remove it with:

sed -e '/available.*true/s/true/false/' \
    -i src/daemon/LogindDBusTypes.cpp

Install SDDM by running the following commands:

mkdir build &&
cd    build &&

      -DCMAKE_BUILD_TYPE=Release  \
      -DDBUS_CONFIG_FILENAME=sddm_org.freedesktop.DisplayManager.conf \
      -Wno-dev .. &&

This package does not come with a test suite.

Now, as the root user:

make install &&
install -v -dm755 -o sddm -g sddm /var/lib/sddm

Command Explanations

-DCMAKE_BUILD_TYPE=Release: This switch is used to apply additional compiler optimizations.

-DENABLE_JOURNALD=OFF: This switch is used because this version of BLFS does not support systemd.

-DDBUS_CONFIG_FILENAME=sddm_org.freedesktop.DisplayManager.conf: This switch prevents the file /etc/dbus-1/system.d/org.freedesktop.DisplayManager.conf from being overwritten, as it may be used by other DM's.

-DBUILD_MAN_PAGES=ON: This switch may be used if you want the man pages to be installed. Notice that you need Docutils to build them.

Configuring SDDM

Config Files

/usr/lib/sddm/sddm.conf.d/*, /etc/sddm.conf.d/*, and /etc/sddm.conf

Only /etc/sddm.conf is installed, but the configuration files are read in the following order: all files in /usr/lib/sddm/sddm.conf.d in alphabetical order, then all files in /etc/sddm.conf.d in alphabetical order, and finally /etc/sddm.conf.

Normally, you want to edit this file. For example, if Xorg is installed in /opt, use your preferred editor as the root user to replace the default XauthPath value by /opt/xorg/bin/xauth. Or, as the root user, issue:

sed -e '/ServerPath/ s|usr|opt/xorg|' \
    -i.orig /etc/sddm.conf

This command will do the substitution and create a copy of the original file with name /etc/sddm.conf.orig.

From now on, we will describe how to modify configurations using sed. Of course, you may instead use your preferred editor as the root user.

For security reasons, you normally want the default ServerArguments=-nolisten tcp, unless a remote machine needs access to the local X server. In that case, as the root user, issue:

sed -e 's/-nolisten tcp//'\
    -i /etc/sddm.conf

Desktop (Notebook) users, normally wish the Num Lock key on (off). For that, as the root user, issue:

sed -e 's/\"none\"/\"on\"/' \
    -i /etc/sddm.conf

for Desktop users. For Notebook users, replace \"on\" by \"off\", in the command above.

Boot Script

Install the /etc/rc.d/init.d/sddm init script from the blfs-bootscripts-20170731 package.

make install-sddm

Linux PAM Configuration

If you have built SDDM with Linux PAM support, create the necessary configuration files by running the following commands as the root user:

cat > /etc/pam.d/sddm << "EOF"
# Begin /etc/pam.d/sddm

auth     requisite
auth     required

auth     required uid >= 1000 quiet
auth     include        system-auth

account  include        system-account
password include        system-password

session  required
session  include        system-session

# End /etc/pam.d/sddm

cat > /etc/pam.d/sddm-autologin << "EOF"
# Begin /etc/pam.d/sddm-autologin

auth     requisite
auth     required

auth     required uid >= 1000 quiet
auth     required

account  include        system-account

password required

session  required
session  include        system-session

# End /etc/pam.d/sddm-autologin

cat > /etc/pam.d/sddm-greeter << "EOF"
# Begin /etc/pam.d/sddm-greeter

auth     required
auth     required

account  required
password required
session  required
-session optional

# End /etc/pam.d/sddm-greeter

Starting sddm

If the sddm bootscript has been installed, start sddm by running, as the root user:

/etc/rc.d/init.d/sddm start

By convention, X should be executed at runlevel 5, consequently, the same is true for sddm. However, LFS default runlevel is 3. Changing to runlevel 5, from a console terminal, as root user, starts the sddm bootscript, bringing up the greeter screen:

init 5

In order to permanently set the default to 5, starting the sddm greeter screen automatically, modify /etc/inittab. As the root user:

cp -v /etc/inittab{,-orig} &&
sed -i '/initdefault/ s/3/5/' /etc/inittab

Available Sessions

The greeter offers a list of available sessions, depending on the Window Managers and Desktop Environments installed. The list includes sessions which have a corresponding .desktop file installed under /usr/share/xsessions. Most of the Window Managers and Desktop Environments automatically provide those files, but if necessary, you may include a custom one.


Three themes are installed at /usr/share/sddm/themes: elarun, maldives, and maya. There is also a default theme, which is not present in that directory. You can install other themes in that directory. In order to change the theme, you need to edit /etc/sddm.conf, to change the default (empty) theme, replacing “Current=” with “Current=<new theme>”, e.g. “Current=maldives”.

In order to see the theme without leaving the session, issue:

sddm-greeter --test-mode --theme <theme path>

Known Issues

This application works well, but there are issues. You find the mainstream known issues at Issues. The BLFS development team have found some issues.



In the next couple of paragraphs, due to a problem with sddm-greeter, we mention how to define the keyboard used there. Notice that this is also the keyboard that will be used in the X session, unless there is a configuration in the Desktop Environment or in the Window Manager overriding it, afterwards.

Keyboard selection: the greeter shows a double question mark or the wrong keyboard. When you start to type the password or user name (depending on the theme, only password), the right keyboard selection magically appears. Optionally, a workaround is to include the keyboard list in /usr/share/sddm/scripts/Xsetup script, as the root user:

echo 'setxkbmap "<your keyboard comma separated list>"' >> \

E.g. echo 'setxkbmap "fr,gb,br,us"' >> /usr/share/sddm/scripts/Xsetup. A very accurate definition of the keyboard(s) is possible, for example: echo 'setxkbmap -model pc105 -layout br,us -variant abnt2,dvorak -keycodes evdev' >> /usr/share/sddm/scripts/Xsetup. See man setxkbmap.

Dircolors: the /etc/dircolors file is not honoured. Particularly, the compressed files are not displayed in red colour. If this happens, a workaround is to issue, as the root user:

echo "source /etc/profile.d/" >> /etc/bashrc

It has been reported that problems may happen with this package, if Xorg is installed with a prefix other than /usr. So far, BLFS development team has not hit any problem, in this case.


Installed Programs: sddm and sddm-greeter
Installed Libraries: None
Installed Directories: $QT5DIR/qml/SddmComponents, /usr/share/sddm, and /var/lib/sddm

Short Descriptions


is a display and login manager based on Qt libraries.


is an auxiliary process that displays the greeter, a graphical user interface that performs user authentication and initiates the selected window manager or display environment.

Last updated on 2017-10-15 15:42:19 -0500