https://bugs.kde.org/show_bug.cgi?id=517898
Bug ID: 517898
Summary: Look-and-feel defaults file [KSplash] section is never
read — format mismatch with code
Classification: Plasma
Product: plasmashell
Version First master
Reported In:
Platform: Ubuntu
OS: Linux
Status: REPORTED
Severity: normal
Priority: NOR
Component: Global Theme packages
Assignee: [email protected]
Reporter: [email protected]
CC: [email protected]
Target Milestone: 1.0
The [KSplash] section in look-and-feel theme contents/defaults files uses a
flat group name, but the code in libklookandfeel/klookandfeelmanager.cpp reads
it as a nested [ksplashrc][KSplash] config group. This means the Theme entry
under [KSplash] is silently ignored.
Code reference (klookandfeelmanager.cpp, save() method):
```
if (itemsToApply.testFlag(SplashScreen)) {
group = KConfigGroup(conf, u"ksplashrc"_s);
group = KConfigGroup(&group, u"KSplash"_s);
QString splashScreen = (group.readEntry("Theme", QString()));
if (!splashScreen.isEmpty()) {
setSplashScreen(splashScreen);
} else {
setSplashScreen(packageId);
}
}
```
The code navigates ksplashrc → KSplash as nested groups, which expects the
defaults file format [ksplashrc][KSplash]. However, the upstream Breeze themes
all use the flat format [KSplash]:
```
[KSplash]
Theme=org.kde.Breeze
```
This entry is never actually read. Breeze still works because the else fallback
calls setSplashScreen(packageId), which sets the splash theme to the package's
own plugin ID.
Impact: Any look-and-feel theme that wants to reference a different theme's
splash screen (e.g., a dark variant pointing to the main theme's splash) cannot
do so via the defaults file. The [KSplash] Theme=... value is dead config.
Additionally, the SplashScreen content flag is only set when the theme has its
own splashmainscript (Splash.qml):
This means the entire [KSplash] block is gated behind the theme having its own
splash content, even though the intent is to reference another theme's splash.
Steps to reproduce:
- Create a look-and-feel theme without its own contents/splash/Splash.qml
- Add [KSplash]\nTheme=org.kde.Breeze to its contents/defaults
- Apply the theme via System Settings → Global Theme
- Check ~/.config/ksplashrc — the KSplash theme is not updated
- Expected: The splash theme from defaults is applied to ksplashrc.
Actual: The [KSplash] entry is ignored due to both the format mismatch and the
SplashScreen flag gating.
Suggested fix: Either:
- Change the defaults file format to [ksplashrc][KSplash] in Breeze (matching
what the code reads), or
- Change the code to read [KSplash] as a flat group (matching the current
defaults files)
- And decouple the SplashScreen content flag from requiring splashmainscript
when the defaults file specifies a Theme entry.
Affects: Plasma 6.x (verified against current master branch of
plasma-workspace)
--
You are receiving this mail because:
You are watching all bug changes.