A deterministic customizable auto-tiler extension for GNOME Shell (GNOME 50+).
- Deterministic Escalation: Automatically tiles windows in a customizable geometric sequence.
- Multi-Monitor Support: Each monitor tiles independently.
- Workspace Isolation: Tiling states are unique to each GNOME workspace.
- Stability Focused: Uses WindowWrapper object modeling and compositor-native synchronization (Meta.LaterType) to prevent race conditions and Shell crashes.
Workflow Tiling does not natively draw an active window border. For visual indication of the focused window, it is highly recommended to use an extension like P7 Border
Layout transitions are configured via JSON string, supporting custom window counts and sizes.
Optional id (1-indexed) integer properties in the JSON structure define how windows transition between states. It is required for all elements:
{
"1": [
{"x": 0, "y": 0, "w": 100, "h": 100, "id": 1}
],
"2": [
{"x": 0, "y": 0, "w": 50, "h": 100, "id": 1},
{"x": 50, "y": 0, "w": 50, "h": 100, "id": 2}
],
"3": [
{"x": 0, "y": 0, "w": 33.33, "h": 100, "id": 1},
{"x": 33.33, "y": 0, "w": 33.33, "h": 100, "id": 3},
{"x": 66.66, "y": 0, "w": 33.34, "h": 100, "id": 2}
]
}Unit tests are written using Vitest.
npm install
make testTo deploy the extension to your local GNOME Shell directory:
make install