Invariant OS

Changelog

Current release 0.3.63 · 2026-10-26

0.3.63

Fix — KDE Plasma splash (ksplash) never showing since before 0.3.41

**Root cause 1 — Missing Wayland drop-in:**

SDDM uses `DisplayServer=wayland` (kwin_wayland owns the DRM device). Depending on the session type, `plasma-kwin_wayland.service` may be used instead of `plasma-kwin_x11.service`. The existing `Wants=plasma-ksplash.service` drop-in was only in `plasma-kwin_x11.service.d/`. If kwin_wayland ran, ksplash was never pulled into the session startup.

**Fix:** Added `kiwi/root/etc/systemd/user/plasma-kwin_wayland.service.d/invariant-ksplash.conf` with `Wants=plasma-ksplash.service`, mirroring the X11 drop-in. Both config.sh files updated to chmod it 0644.

**Root cause 2 — `Splash.qml` instability:**

  • Root `Rectangle` used `width: Screen.width` / `height: Screen.height` from `import QtQuick.Window 2.15`. Before the KSplash window is fully set up, `Screen` may report 0, causing a 0×0 invisible rectangle. Also a potential source of QML engine errors on Qt 6.
  • `layer.enabled: true` on a `Text` element in software rendering mode (`QSG_RHI_BACKEND=software`) can cause an offscreen render context error, crashing ksplash immediately.
  • `XMLHttpRequest.send()` was not wrapped in try/catch — an exception in `Component.onCompleted` (e.g. if Qt 6 disallows file:// XHR) would abort QML initialization silently.

**Fixes in `Splash.qml` and `Splash_halloween.qml`:**

  • Removed `import QtQuick.Window 2.15`; replaced `width: Screen.width` / `height: Screen.height` with `anchors.fill: parent`
  • Wrapped XMLHttpRequest in nested try/catch so any exception is absorbed (fallback to standard splash)
  • Removed `layer.enabled: true` from `Splash_halloween.qml` Text element

---