SDDM currently only supports loading themes from a single directory and the default is /usr/share/sddm/themes/, which is read only on Fedora Kinoite.
/usr/share/sddm/themes/
See:
There are currently multiple workarounds:
Metadata Update from @siosm: - Issue tagged with: experience, kinoite, need-work
Metadata Update from @siosm: - Issue marked as blocking: #112
a simpler workaround
https://pagure.io/fedora-kde/SIG/issue/534
We can not do this workaround: https://github.com/sddm/sddm/issues/1561#issuecomment-2187014632
So, why can't we do https://pagure.io/fedora-kde/SIG/issue/534 ?
If we change the default config to point to /var/lib/sddm/themes, then we need all the defaults themes to be there as well.
/var/lib/sddm/themes
Say we copy them there on first boot, then appart from the fact that this duplicate files, this will create issues on updates. If the user modifies any of the config / files that are part of the theme, then those modifications are lost on updates as we re-copy files again.
If we don't update the themes on updates then users will likely face subtle bugs as their theme go outdated and mis-match the version of other packages.
We can not install the themes files directly on /var either as this is local state, that is not available at compose time for Atomic variants and overall in conflict with the policy that all distribution content should live in /usr.
/var
/usr
Moreover, we want the defaults themes to be read-only and automatically updated with the rest of the system to make sure that there is always a working fallback if something goes wrong.
(Continuing here, sorry for not searching for duplicate issues first).
The discussion is continuing on the SDDM Github. But a few possibly problematic things that come to my mind:
1.
sddm-kcm seems to use the config file. My original workaround, (while not possible to use by default due to update issues) made the KCM download themes into /var/usrlocal/share/sddm/themes. If there are multiple directories it reads from, an additional config may be needed to set what the KCM writes to, as this may not be default on non-atomic desktops.
2.
The specific process of changing a preinstalled theme. For example changing the background, would require to copy the theme to the mutable dir and then apply the changes.
If this works how I think it does, by changing the theme. If it already works by copying it first, this would be easier to do.
The instructions there nearly work, with some tweaks:
[Theme]
$ cat /etc/sddm.conf.d/local-themes.conf [Theme] ThemeDir=/var/lib/sddm/themes/
$ ls /var/lib/sddm/themes/ 02-breeze-fedora breeze
I'm now able to edit theme.conf and override the background, e.g. here is how my theme ended up looking like:
cat /var/lib/sddm/themes/02-breeze-fedora/theme.conf [General] showlogo=shown showClock=true logo=/usr/share/pixmaps/fedora_whitelogo.svg type=image color=#1d99f3 fontSize=10 background=/usr/share/wallpapers/Elarun/contents/images/2560x1600.png needsFullUserModel=false
Then sudo systemctl restart sddm.
sudo systemctl restart sddm
I hope the above will be useful as a workaround for others looking to change the theme in Kinoite until a proper solution is implemented in the package itself.
This will be obsolete with the move to Plasma Login Manager in Fedora 44: https://fedoraproject.org/wiki/Changes/PlasmaLoginManager
Metadata Update from @siosm: - Issue set to the milestone: Fedora Linux 44
Metadata Update from @siosm: - Issue assigned to siosm