PlasmaZones 2.0.0
28 changes, released March 10, 2026.
Added
Autotiling Engine
- Pluggable algorithm architecture with 10 tiling layouts: Master+Stack, Centered Master, BSP, Dwindle, Spiral, Columns, Rows, Grid, Wide, Three-Column, and Monocle
- Per-screen algorithm selection with independent settings per monitor
- Separate centered-master settings: Split ratio and master count are independent from master+stack (defaults: 0.5 vs 0.6)
- Per-screen maxWindows cap to limit tiled window count per monitor
- Per-side outer gaps (top/bottom/left/right) for independent screen edge spacing
- Overflow window management: Auto-float excess windows when maxWindows is reached, auto-recover when room opens
- Hide title bars on tiled windows with configurable active-window border rendering (color, width)
- Deterministic zone-ordered window transitions when switching between snapping and autotiling modes
- Float/unfloat toggle with geometry preservation and cross-screen fallback
- Smart gaps, insert position config, focus-follows-mouse, focus-new-windows
- Minimum window size respect with algorithm-level constraint solving
- D-Bus interface (
org.plasmazones.Autotile) for runtime control - Read-only preview mode for autotile layouts in the editor
- Pre-autotile geometry persistence across session restarts for accurate float restore
Animation System
- Translate-only slide animations that avoid Wayland buffer desync (no scale transforms)
- Staggered cascading window animations with configurable overlap
- Cubic bezier easing curve editor in KCM with live preview
- Elastic and bounce easing curve types with customizable parameters (amplitude, period, overshoot)
KCM Improvements
- Dual-view layout picker with separate Snapping/Tiling modes and default autotile algorithm selection
- Dual-mode per-screen assignments (snapping layouts + autotile algorithms per monitor)
- Snapping enable/disable toggle
- Auto-select default layout in Layout tab
- Live algorithm preview widget
- Per-monitor snapping gap/padding overrides
Changed
- Renamed Zones tab to Snapping in KCM for clarity alongside the new Tiling tab
- BSP algorithm made deterministic: Removed persistent tree state that caused non-reproducible layouts
- Major codebase refactoring: Split 20+ oversized files (>500 lines) into DRY translation units organized in subdirectories
- Extracted
OverflowManager,PerScreenConfigResolver,NavigationController,SettingsBridgefromAutotileEngine - Extracted
AssignmentManager,DaemonController,LayoutManagerfrom monolithic KCM - Extracted
AutotileHandler,ScreenChangeHandler,SnapAssistHandlerfrom KWin effect - Split
Settings,OverlayService,WindowTrackingService, D-Bus adaptors, and editor into subdirectories
- Extracted
- Comprehensive unit tests for all algorithms, engine, tiling state, overflow manager, geometry utils, and algorithm registry (11 test suites)