sddm
sddm copied to clipboard
Any suggestions for SDDM developer setup?
Hi, I am a KDE developer, and I am working on Breeze theme for SDDM.
Any advice on setting up a developer environment for working on SDDM themes and SDDM itself? Maybe there are some scripts available? How do I test an SDDM theme on real login screen — without overriding the one provided by my system's package manager?
I know I can run greeter in test mode with sddm-greeter --test-mode --theme ~/kde/usr/share/sddm/themes/breeze
command; but it doesn't let me test everything. For example, it neither accepts nor rejects a password — it just disables (as in enabled: false
) the whole interface and kinda hangs in that state. And that issue aside, there are other issues with non-global installation as well.
Currently all my stuff built from scratch is installed in ~/kde/usr
. For example, the Breeze theme for SDDM is located in /home/ratijas/kde/usr/share/sddm/themes/breeze/
. But the problem is, that's within my home directory, and thus is protected from read/write access for services not running as root. So, when I changed ThemeDir=/home/ratijas/kde/usr/share/sddm/themes
in /etc/sddm.conf.d/kde_settings.conf
file, next time I rebooted I got this cryptic error message on a default theme instead:
The current theme can not be loaded due to the errors below, please select another theme
file:///home/ratijas/kde/usr/share/sddm/themes/breeze/Main.qml: No such file or directory
I double checked, but the file actually exists. To the best of my understanding, this is actually caused by the underlying "permission denied" error from trying to open a file within protected directory. SDDM itself runs as root, but its greeter is actually launched under special sddm
user. I logged in as sudo -u sddm /bin/sh
on the terminal, and obviously wasn't able to list my /home/ratijas
directory due to permissions.
The whole "theme" is just a bunch of runtime-loaded QML files and artworks, so just copy-pasting it into some system-wide accessible directory like /opt/sddm
seemed to fix the permissions issue. But now that requires manual intervention every time.
How do you people develop this thing?
What I've been doing and what I can in no way recommend of doing is to install in /usr, as it's where it's designed to be placed so all files and such are found by the system at startup.
If you are working on themes you shouldn't need to rebuild sddm, although I see the need to gave all projects in development builds.
Sorry for my late reply and good luck!