Simple Desktop Display Manager (SDDM) is a display manager (a graphical login program and session manager) for the X11 and Wayland windowing systems. SDDM was written from scratch in C++11 and supports theming via QML.
Installation
yay -S sddm
Loading the display manager
To enable graphical login, enable the appropriate systemd service. For example, for SDDM, enable sddm.service
systemctl enable sddm.service
Failed to enable unit: File /etc/systemd/system/display-manager.service already exists and is a symlink to /usr/lib/systemd/system/lightdm.service.
You may need to use —force to override old symlinks.
[yanboyang713@boyang-mini-pc ~]$ systemctl --force enable sddm.service
Removed "/etc/systemd/system/display-manager.service".
Created symlink /etc/systemd/system/display-manager.service → /usr/lib/systemd/system/sddm.service.
[yanboyang713@boyang-mini-pc ~]$ file /etc/systemd/system/display-manager.service
/etc/systemd/system/display-manager.service: symbolic link to /usr/lib/systemd/system/sddm.service
Configuration
The default configuration file for SDDM can be found at /usr/lib/sddm/sddm.conf.d/default.conf.
For any changes, create configuration file(s) in etc/sddm.conf.d check details
Running under Wayland
SDDM can run rootless under Wayland, since sddm 0.20.0.
Create a new config file in the etc/sddm.conf.d directory, name it something like /etc/sddm.conf.d/10-wayland.conf.
Add the following to the new file: /etc/sddm.conf.d/10-wayland.conf
[General]
DisplayServer=wayland
SDDM theme
Anything under these folders is an installed SDDM theme
/usr/share/sddm/themes
See which one you’re using now
grep -R "^Current=" /etc/sddm.conf /etc/sddm.conf.d/*.conf 2>/dev/null
Theme Install
sddm-astronaut-theme
-
Install deps (Qt6 + SDDM + multimedia)
sudo pacman -S --needed sddm qt6-svg qt6-virtualkeyboard qt6-multimedia-ffmpeg
-
Install the theme into SDDM’s theme dir
sudo git clone -b master --depth 1 \ https://github.com/keyitdev/sddm-astronaut-theme.git \ /usr/share/sddm/themes/sddm-astronaut-theme
-
Install the bundled fonts (optional but looks better)
sudo cp -r /usr/share/sddm/themes/sddm-astronaut-theme/Fonts/* /usr/share/fonts/
-
Select the theme
sudo mkdir -p /etc/sddm.conf.d printf "[Theme]\nCurrent=sddm-astronaut-theme\n" | sudo tee /etc/sddm.conf.d/10-theme.conf
-
(Optional) enable on-screen keyboard on the greeter
printf "[General]\nInputMethod=qtvirtualkeyboard\n" | \ sudo tee /etc/sddm.conf.d/virtualkbd.conf
-
Pick a sub-theme (wallpaper/style)
Edit the line below in metadata.desktop to any config from the Themes/ folder, e.g. black_hole.conf
sudo sed -i 's|^ConfigFile=.*|ConfigFile=Themes/black_hole.conf|' \ /usr/share/sddm/themes/sddm-astronaut-theme/metadata.desktop
-
Preview, then apply
# Preview in a window (no logout) sddm-greeter-qt6 --test-mode --theme /usr/share/sddm/themes/sddm-astronaut-theme/ # If it looks good (this logs you out): sudo systemctl restart sddm
Customizing a theme
To override settings in the theme.conf configuration file, create a custom theme.conf.user file in the same directory. For example, to change the theme’s background:
/usr/share/sddm/themes/name/theme.conf.user
[General]
background=/path/to/background.png
Testing (previewing) a theme
You can preview an SDDM theme if needed. This is especially helpful if you are not sure how the theme would look if selected or just edited a theme and want to see how it would look without logging out. You can run something like this:
$ sddm-greeter-qt6 --test-mode --theme /usr/share/sddm/themes/breeze
This should open a new window for every monitor you have connected and show a preview of the theme.
Note: This is just a preview. In this mode, some actions like shutdown, suspend or login will have no effect.