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 12.4 platform.
Download (HTTP): https://github.com/sddm/sddm/archive/v0.21.0/sddm-0.21.0.tar.gz
Download SHA256 Sum: f895de2683627e969e4849dbfbbb2b500787481ca5ba0de6d6dfdae5f1549abf
Download MD5 sum: e32a35c282d9be3360737eefbe25b5fa
Download size: 3.4 MB
Estimated disk space required: 24 MB
Estimated build time: 0.3 SBU (Using parallelism=4)
CMake-4.1.3, extra-cmake-modules-6.20.0, and Qt-6.10.1
docutils-0.22.3 (for the man pages), Linux-PAM-1.7.1, and UPower-1.90.10
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 sddmPrepare sddm by running the following commands:
cmake -B build -D CMAKE_INSTALL_PREFIX=/usr \
-D CMAKE_BUILD_TYPE=Release \
-D CMAKE_POLICY_VERSION_MINIMUM=3.5 \
-D RUNTIME_DIR=/run/sddm \
-D BUILD_MAN_PAGES=ON \
-D BUILD_WITH_QT6=ON \
-D DATA_INSTALL_DIR=/usr/share/sddm \
-D DBUS_CONFIG_FILENAME=sddm_org.freedesktop.DisplayManager.confcmake --build build
This package does not come with a test suite.
Now Install the package, as the root user:
cmake --install build install -v -dm755 -o sddm -g sddm /var/lib/sddm /usr/bin/sddm --example-config > /etc/sddm.conf
-D CMAKE_BUILD_TYPE=Release: This switch is used to
apply additional compiler optimizations.
-D CMAKE_POLICY_VERSION_MINIMUM=3.5: This switch
allows building this package with cmake-4.0 or newer.
-D DBUS_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.
-D BUILD_MAN_PAGES=ON: This switch is used to build
and install man pages.
/etc/sddm.config
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 -i.orig '/ServerPath/ s|usr|opt/xorg|' /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 -i 's/-nolisten tcp//' /etc/sddm.conf
Desktop (Notebook) users, normally want the Num Lock key on (off). For
that, as root, issue:
sed -i '/Numlock/s/none/on/' /etc/sddm.conf
for Desktop users. For Notebook users, replace /on/ by /off/ in the command above.
By default, a virtual keyboard is presented for the user. If this is
not desired, run as root:
sed -i 's/qtvirtualkeyboard//' /etc/sddm.conf
Enable the pre-installed systemd unit by running the following command
as the root user:
systemctl enable sddm
![[Note]](../images/note.png)
The install procedure above installed a set of PAM configuration files. These procedures overwrite them and use versions compatible with a BLFS environment.
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 pam_nologin.so auth required pam_env.so auth required pam_succeed_if.so uid >= 1000 quiet auth include system-auth account include system-account password include system-password session required pam_limits.so session include system-session # End /etc/pam.d/sddmEOF cat > /etc/pam.d/sddm-autologin << "EOF"# Begin /etc/pam.d/sddm-autologin auth requisite pam_nologin.so auth required pam_env.so auth required pam_succeed_if.so uid >= 1000 quiet auth required pam_permit.so account include system-account password required pam_deny.so session required pam_limits.so session include system-session # End /etc/pam.d/sddm-autologinEOF cat > /etc/pam.d/sddm-greeter << "EOF"# Begin /etc/pam.d/sddm-greeter auth required pam_env.so auth required pam_permit.so account required pam_permit.so password required pam_deny.so session required pam_unix.so -session optional pam_systemd.so # End /etc/pam.d/sddm-greeterEOF
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 or
/usr/share/wayland-sessions.
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=,
e.g. <new theme>Current=maldives.
In order to see the theme without leaving the session, issue:
sddm-greeter --test-mode --theme <theme path>