Window.selectLayout
Apply a named or custom layout.
Source and package
-
Description#
Names accept unique abbreviations. Checksums and tree structure are checked before dispatch; tmux remains responsible for geometry and pruning. This API limits custom layouts to 8192 characters and 256 nested groups.
Applying any layout while a pane is zoomed unzooms the window first — tmux's own behavior, not this method's.
A
window_layoutsaved earlier and passed back here is not guaranteed to put every pane back where it was. Before tmux 3.8, the classic layout string restores the arrangement's shape but can rotate which pane lands in which position; a JSON layout (3.8+, and only for a reader that actually receives JSON — seeServer.connect()) restores exactly.Only a preset name, a layout string that parses here, or JSON on tmux 3.8+ is accepted: anything else is refused rather than sent, because two ranges of tmux exit on a layout they cannot read and take every session on the socket with them. tmux 3.3 and 3.3a die on a value with no readable checksum, and 3.7 through 3.7d on one whose checksum is correct and whose cells are not — so the checksum alone is not evidence, and the layout is parsed in full before dispatch.
Examples#
await window.selectLayout("even-horizontal");- Parameters
- Raises
-
-
Type
Error – when the layout name or serialized tree is invalid. -
Type
Error – whenlayoutis ambiguous, or is neither a preset nor a layout string this package can parse. -
Version
Too – whenLow Error layoutnames a mirrored preset or JSON layout the running tmux is too old to apply.
-
tmux command#
The tmux commands behind selectLayout.
tmux C API#
The C declarations in tmux that implement these commands.
In other ports#
Set a window's pane layout
| Language | Equivalent |
|---|---|
| Python | libtmux |
| Ruby | Lib |
| Lua | libtmux |
| Rust | window |
| Go | tmux |
| Java | io |
| C# | Lib |
| C++ | libtmux:: |
| Swift | Server |
No equivalent is recorded in PowerShell, Julia, Elixir, Kotlin, Scala or F#.