feat(algorithm): three-column #44

Closed
opened 2026-04-26 00:36:55 +00:00 by barrettruth · 0 comments
barrettruth commented 2026-04-26 00:36:55 +00:00

Add a three-column algorithm — one main column plus two slave columns. This tracks the XMonad ThreeCol family and gives Mosaic a symmetrical multi-column layout that is more capable than today's single-stack master-stack.

Scope

  • New file scripts/algorithms/three-column.sh
  • algo_relayout divides panes across three columns
  • Reuse promote / resize-master semantics around the main column
  • Define pane distribution between the two slave columns
  • Decide whether the main column stays on the left by default or can be centered via an option/variant

Acceptance criteria

  • Setting @mosaic-algorithm three-column applies a stable 3-column layout
  • promote moves a focused non-main pane into the main column
  • resize-master ±N resizes the main column
  • Split/kill hooks preserve the three-column shape
  • Tests cover 3, 4, 5+ pane cases and uneven slave counts
  • README documents behavior and naming

Open question

Is this a separate algorithm from centered-master, or should the two share one implementation with a placement option?

Part of #42.

Add a `three-column` algorithm — one main column plus two slave columns. This tracks the XMonad `ThreeCol` family and gives Mosaic a symmetrical multi-column layout that is more capable than today's single-stack `master-stack`. ## Scope - New file `scripts/algorithms/three-column.sh` - `algo_relayout` divides panes across three columns - Reuse `promote` / `resize-master` semantics around the main column - Define pane distribution between the two slave columns - Decide whether the main column stays on the left by default or can be centered via an option/variant ## Acceptance criteria - [ ] Setting `@mosaic-algorithm three-column` applies a stable 3-column layout - [ ] `promote` moves a focused non-main pane into the main column - [ ] `resize-master ±N` resizes the main column - [ ] Split/kill hooks preserve the three-column shape - [ ] Tests cover 3, 4, 5+ pane cases and uneven slave counts - [ ] README documents behavior and naming ## Open question Is this a separate algorithm from `centered-master`, or should the two share one implementation with a placement option? Part of #42.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
barrettruth/tmux-mosaic#44
No description provided.