The sddm package contains a lightweight display manager based upon Qt and QML.
Development versions of BLFS may not build or run some packages properly if LFS or dependencies have been updated since the most recent stable versions of the books.
Download (HTTP): https://github.com/sddm/sddm/archive/v0.20.0/sddm-0.20.0.tar.gz
Download MD5 sum: 7af67d5fb767639861d35c80eb4e1191
Download size: 3.4 MB
Estimated disk space required: 22 MB
Estimated build time: 0.3 SBU (Using parallelism=4)
CMake-3.27.8, extra-cmake-modules-5.109.0, and (Qt-5.15.11 or qt-alternate-5.15.11)
docutils-0.20.1 (for the man pages), Linux-PAM-1.5.3, and UPower-1.90.2
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
Install sddm by running the following commands:
mkdir build && cd build && cmake -DCMAKE_INSTALL_PREFIX=/usr \ -DCMAKE_BUILD_TYPE=Release \ -DRUNTIME_DIR=/run/sddm \ -DBUILD_MAN_PAGES=ON \ -DDATA_INSTALL_DIR=/usr/share/sddm \ -DDBUS_CONFIG_FILENAME=sddm_org.freedesktop.DisplayManager.conf \ .. && make
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 /usr/bin/sddm --example-config > /etc/sddm.conf
-DCMAKE_BUILD_TYPE=Release
: This switch is used to
apply additional compiler optimizations.
-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 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
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/sddm
EOF 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-autologin
EOF 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-greeter
EOF
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=<new theme>”, e.g.
“Current=maldives”.
In order to see the theme without leaving the session, issue:
sddm-greeter --test-mode --theme <theme path>