Features
Shipped Features
Section titled “Shipped Features”These features are implemented and available when the kwin-tiling module is composed onto a host (currently lea).
The shipped list below is included at build time from the reusable fragment src/fragments/shipped.md (single source for GH #124 sync).
- MasterStack + Stacked layouts, per-output layout + cycle
- Gaps (between + margins, per-output overrides)
- Floating rules (class / utility / dialog / transient)
- Focus left/right/up/down, toggle-float, promote-to-master, move next/prev, move-to-output
- Drag-to-swap, tiling KCM in System Settings
- Patch split into vendored src + small hooks.patch (#123)
- Desktop/monitor-move autotile + focus-follow; UniqueConnection fix (#126)
- Master ratio + master count: keyboard (Meta+Ctrl+L/H, Meta+Ctrl+./,), persisted, KCM (#117, #115)
- Interactive resize: drag the master/stack divider to set the ratio; other edges snap back (#119)
Core layouts and engine
Section titled “Core layouts and engine”The implementation introduces an abstract LayoutEngine with concrete MasterStack and Stacked engines attached to KWin’s per-desktop TileManager roots.
Gaps and geometry
Section titled “Gaps and geometry”Gap support was generalized from uniform padding to explicit between-tile gaps and per-edge margins, propagated through the tile tree and applied at geometry calculation time.
Window management rules
Section titled “Window management rules”TilingRules (class/title ignores and float rules for utilities, dialogs, transients) are loaded from kwinrc and consulted on window add to decide tiled vs. floating placement.
User interaction implementation
Section titled “User interaction implementation”The TilingController integrates with KWin’s interactive move and resize paths to support leaf swaps on drag and master-split ratio changes on divider drag. Other resizes snap back to layout.
Config and UI
Section titled “Config and UI”Settings (enabled layouts, default, master ratio/count, gaps, per-output overrides) are exposed in a dedicated KCM and persisted in the [Tiling] kwinrc group. Live changes (keys or drag) write back.
Autotile and stability
Section titled “Autotile and stability”Desktop and output changes trigger the controller to place new or moved windows according to the active engine for that (output, desktop). Focus follows the moved window.
Key behaviors implemented
Section titled “Key behaviors implemented”- Controller singleton on Workspace reacts to window add/remove, desktop/output changes, and reconfigure.
- Engines own leaf creation and relative geometry; KWin’s Tile machinery applies final placement and gaps.
- State (ratio, count, layout kind) is per the current engine but written to kwinrc for persistence across restarts.
See Roadmap for the full open items and tracking (open list also comes from the reusable fragments).