Laika Window Manager
One click, uniform editor layouts. Arrange your editor groups into even grids, columns, or rows — without dragging a single splitter.
What it does
Open a few splits, click the layout icon in the editor toolbar (top right), pick an arrangement. Every editor group snaps to a uniform size.
- Auto Grid — computes a balanced grid for however many groups you already have, without adding or removing any
- Even Out Sizes — equalizes the current layout while keeping its structure
- 11 built-in presets — single, columns, rows, 2×2, 3×2, main + side stack, three columns + bottom, focus mode
- Custom presets — define your own in settings
- Auto-arrange — optionally re-arrange automatically whenever groups open or close
- Cycle — step through your favourite layouts with one keybinding
- Restore Sidebar & Panel — undo anything Focus Mode hid
Usage
| Action |
How |
| Open the picker |
Click the layout icon at the top right of the editor, or Cmd/Ctrl+Alt+L |
| Auto grid |
Cmd/Ctrl+Alt+G |
| Cycle layouts |
Cmd/Ctrl+Alt+; |
| Everything else |
Command Palette → Laika Windows: |
Built-in presets
| Id |
Layout |
auto-grid |
Balanced grid matching your current group count |
single |
One group |
two-columns |
Two equal columns |
three-columns |
Three equal columns |
two-rows |
Two equal rows |
three-rows |
Three equal rows |
grid-2x2 |
Four equal quadrants |
grid-3x2 |
Six equal cells |
main-plus-sidebar |
Wide primary group + two stacked references |
three-columns-bottom |
Three columns above a full-width strip |
focus |
One group, sidebar and panel hidden |
Settings
| Setting |
Default |
Description |
laikaWindows.statusBar.enabled |
false |
Also show a button in the status bar |
laikaWindows.statusBar.alignment |
right |
Which side the button sits on |
laikaWindows.statusBar.priority |
100 |
Ordering within the status bar |
laikaWindows.statusBar.showLabel |
true |
Show text label, or icon only |
laikaWindows.editorTitleButton |
true |
Show the button in the editor toolbar (top right) |
laikaWindows.defaultPreset |
auto-grid |
Preset used by Auto Grid and auto-arrange |
laikaWindows.autoArrange.enabled |
false |
Re-arrange automatically on group changes |
laikaWindows.autoArrange.debounceMs |
250 |
Delay before auto-arrange runs |
laikaWindows.cycleOrder |
["single","two-columns","three-columns","grid-2x2"] |
Presets the Cycle command steps through |
laikaWindows.showNotifications |
false |
Confirm each layout in the status bar |
laikaWindows.customPresets |
[] |
Your own layouts |
Custom presets
A layout is a tree. orientation is 0 for columns (left to right) or 1 for rows (top to bottom). Each entry in groups is either a leaf (an editor group) or a container with its own nested groups, which are laid out in the perpendicular direction.
Omit size and the workbench splits space evenly — that is what produces uniform panels. Supply size values that sum to 1 to weight them instead.
"laikaWindows.customPresets": [
{
"id": "code-review",
"label": "Code Review",
"description": "Diff left, notes right",
"icon": "git-compare",
"layout": {
"orientation": 0,
"groups": [
{ "size": 0.65 },
{ "size": 0.35, "groups": [{}, {}] }
]
},
"chrome": { "sidebar": false, "panel": true }
}
]
chrome is optional and controls the sidebar, bottom panel, and secondary sidebar. Omit a key to leave that part untouched.
A custom preset that reuses a built-in id replaces it, so you can retune the shipped layouts in place.
Compatibility
Built for VS Code 1.75+ and tested against forks that track it:
| Editor |
Install from |
| VS Code |
Visual Studio Marketplace |
| Cursor |
Open VSX |
| Antigravity |
Open VSX |
| Windsurf |
Open VSX |
| VSCodium |
Open VSX |
The extension uses no proposed APIs, and probes the command registry before calling any workbench command — so on a fork that lags upstream, unsupported features degrade quietly instead of erroring.
Scope
This manages editor groups and workbench panels inside the editor window. VS Code extensions cannot move or resize operating-system windows — no extension API exists for that in VS Code or any of its forks. If you want to tile the application windows themselves, use an OS window manager.
Development
npm install
npm run watch # rebuild on change
npm run verify # typecheck + lint + full test suite
npm run vsix # produce a .vsix
Press F5 in VS Code to launch an Extension Development Host.
Tests drive a real VS Code instance and assert against actual editor group counts. To run them against the oldest supported baseline:
VSCODE_TEST_VERSION=1.75.0 npm test
License
MIT