shift-shell/kwin/scripts/shift-tiling/metadata.json
Marco Allegretti 730385d8c8 Add SHIFT dynamic tiling KWin script
Introduce a declarative KWin script that maintains a binary-space
partition layout per output for normal windows in convergence mode.
New windows are added to the active screen and the layout is
recomputed with 8 px outer and 8 px inner gaps; closed windows are
removed and neighbours expand to fill the freed area.

Windows that fail isTileable (panels, fixed-size dialogs, fullscreen,
xwaylandvideobridge, manually-floated) are left untouched.  A 200 ms
deferred-retile timer mirrors the convergentwindows pattern so the
dockSpaceReserver layer-shell exclusive zone is settled before
clientArea is queried.

Dragging a tile and dropping it onto another tile swaps the two slots
in the BSP layout; an outline is drawn on the hovered target as a
visual cue.  Drops elsewhere snap the tile back to its original slot
and leave KWin native quick-tile and electric borders untouched.

Keyboard bindings:
  Meta+H/J/K/L  focus left/down/up/right
  Meta+F        toggle float on the active window
  Meta+T        toggle tiling globally
2026-05-04 20:25:06 +02:00

20 lines
703 B
JSON

{
"KPackageStructure": "KWin/Script",
"KPlugin": {
"Authors": [
{
"Email": "marcoa@example.com",
"Name": "Marco Allegretti"
}
],
"Description": "Dynamic tiling for SHIFT convergence mode. Automatically tiles windows using a BSP layout, with snap zones on drag and keyboard navigation.",
"EnabledByDefault": false,
"Id": "shift-tiling",
"License": "EUPL-1.2",
"Name": "SHIFT Dynamic Tiling",
"Version": "1.0"
},
"X-KDE-ConfigModule": "kwin/effects/configs/kcm_kwin4_genericscripted",
"X-Plasma-API": "declarativescript",
"X-Plasma-MainScript": "ui/main.qml"
}