Skip to content

Three columns

Main windows in the center column with stack windows distributed on both sides. Ideal for ultrawide monitors where you want the primary content centered.

Layout

1 window

┌───────────────────────────────────────────────────────────┐
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ 1 │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
└───────────────────────────────────────────────────────────┘

2 windows

┌───────────┬───────────────────────────────────┬───────────┐
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ 2 │ 1 │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
└───────────┴───────────────────────────────────┴───────────┘

With the default main_count = 1, the first window stays in the center column and the second goes to the left stack.

To keep both windows in the center column, raise main_count:

spoon.Shoji:configure({
main_count = 2,
})

3 windows

┌───────────┬───────────────────────────────────┬───────────┐
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ 2 │ 1 │ 3 │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
└───────────┴───────────────────────────────────┴───────────┘

The first window (main) is in the center. Stack windows alternate between left and right columns.

5 windows

┌───────────┬───────────────────────────────────┬───────────┐
│ │ │ │
│ │ │ │
│ │ │ 3 │
│ 2 │ │ │
│ │ │ │
│ │ ├───────────┤
│ │ │ │
├───────────┤ │ │
│ │ 1 │ │
│ │ │ │
│ │ │ │
│ │ │ 5 │
│ 4 │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
└───────────┴───────────────────────────────────┴───────────┘

Left stack: windows 2, 4. Right stack: windows 3, 5.

Capabilities

  • Adjustable ratio: Yes - resize the center column
  • Adjustable main count: Yes - put multiple windows in center
  • Stateful: No

Configuration

spoon.Shoji:configure({
default_layout = "three_columns",
main_ratio = 0.5, -- Center column gets 50% of screen width
main_count = 1, -- One window in center
})

Main ratio

The main ratio controls how much horizontal space the center column occupies. The remaining space is split equally between the left and right stacks.

spoon.Shoji:bindHotkeys({
increase_main_ratio = { { "ctrl", "alt" }, "=" },
decrease_main_ratio = { { "ctrl", "alt" }, "-" },
})

Multiple main windows

Increase main_count to put more windows in the center column:

spoon.Shoji:bindHotkeys({
increase_main_count = { { "ctrl", "alt" }, "," },
decrease_main_count = { { "ctrl", "alt" }, "." },
})

main_count = 2 (with 4 windows)

┌───────────┬───────────────────────────────────┬───────────┐
│ │ │ │
│ │ │ │
│ │ 1 │ │
│ │ │ │
│ │ │ │
│ ├───────────────────────────────────┤ │
│ │ │ │
│ │ │ │
│ 3 │ │ 4 │
│ │ │ │
│ │ │ │
│ │ 2 │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
└───────────┴───────────────────────────────────┴───────────┘

When to use

Three columns works best on ultrawide monitors (21:9 or wider):

  • Primary editor centered with reference docs on either side
  • Video editing with timeline in center, bins on sides
  • Dashboard with main content flanked by secondary panels

For standard 16:9 monitors, Tall or Wide may be more practical.