PlasmaZones 2.4.0

23 changes, released March 25, 2026.

Added

  • KZones layout import (PR #244): Import zone layouts from KZones configuration files.
  • Aspect ratio layouts (PR #242): Auto-detect monitor aspect ratio, editor selector for ratio-specific layouts, and filter setting for the layout grid.
  • Portable Wayland build (PR #231): USE_KDE_FRAMEWORKS=ON/OFF CMake option. Pluggable backends for config (IConfigBackend), shortcuts (IShortcutBackend), wallpaper (IWallpaperProvider), and i18n (Qt Linguist). Runs on non-KDE Wayland compositors.
  • Standalone settings app (PR #238): plasmazones-settings with KCM-style sidebar drill-down, subpages, visual monitor selector, search, keyboard shortcuts overlay, unsaved-changes indicator, and DPI-aware animations. Meta+Shift+P shortcut to launch.
  • D-Bus API audit (PR #246): New CompositorBridge, Control, and Shader interfaces. Convenience methods and full API specification. Unit tests for all new methods.
  • Arch Drift branded shader: Terminal rain columns, isometric chevron grid, traveling data packets, and CRT scan lines. 95-vertex SDF polygon from the official Crystal SVG.
  • EndeavourOS Drift branded shader: Constellation network background with 24 dots on Lissajous orbits, warm gradient wash, and tri-sail SDF logo (58 vertices total).
  • Wind currents + sails shader: Replaced constellation network with flowing wind current effect.

Changed

  • KWin effect reduced to thin interface layer (PR #245): Effect code is now a minimal bridge between KWin and the daemon over D-Bus. All tiling/snapping logic lives in the daemon.
  • Removed unused LayoutType enum: Cleaned up Layout model. The type field was never used.
  • Dropped IConfigBackend interface indirection: QSettingsConfigBackend used directly after KConfig removal stabilized.
  • Removed KConfig dependency from test suite: Tests use the standalone config backend.
  • Removed daemon toggle from KCM: Moved DaemonController to src/common.

Fixed

  • Synchronous D-Bus calls freeze compositor: Eliminated blocking D-Bus calls in the KWin effect that caused compositor hangs.
  • Qt6 SIGSEGV in context menu: Moved context menu outside Loader to avoid crash.
  • Qt6 crash in aspect ratio submenu: Flattened submenu to avoid nested popup crash.
  • Tooltip flickering on layout cards in Flow layout (#235): Fixed hover handler conflicts.
  • Zone previews clamped for fixed-geometry layouts: Preview rendering no longer overflows card bounds.
  • Edge threshold max increased: From 100px to 500px.
  • Settings live lock sync and screenId resolution: OSD lock state now syncs immediately.
  • EndeavourOS Drift GLSL type errors: Fixed vec2/float mismatches and wired dead parameters.
  • Shader file watcher dropped after cmake install: Re-watches directories after inode replacement.
  • Layout card icon hover flicker (#235): Replaced HoverHandler with MouseArea to fix grab conflicts.