feat(algorithm): bottom-stack #46

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

Add a bottom-stack algorithm — master area on top, horizontal stack area below. This is the natural sibling to master-stack and is common in dwm (bstack / bstackhoriz).

Scope

  • New file scripts/algorithms/bottom-stack.sh
  • algo_relayout arranges one master region above a horizontal stack strip
  • promote and resize-master mirror current master-stack semantics
  • algo_sync_state syncs dragged master height back into @mosaic-mfact

Acceptance criteria

  • Setting @mosaic-algorithm bottom-stack applies top-master / bottom-stack layout
  • promote swaps the focused stack pane into master
  • resize-master ±N changes master height and persists in @mosaic-mfact
  • Split/kill hooks preserve the shape
  • Tests cover 3, 4, and 5+ pane cases
  • README documents behavior and supported operations

Open question

Do we also want a companion top-stack / horizontal-master variant, or is bottom-stack enough for the first pass?

Part of #42.

Add a `bottom-stack` algorithm — master area on top, horizontal stack area below. This is the natural sibling to `master-stack` and is common in dwm (`bstack` / `bstackhoriz`). ## Scope - New file `scripts/algorithms/bottom-stack.sh` - `algo_relayout` arranges one master region above a horizontal stack strip - `promote` and `resize-master` mirror current master-stack semantics - `algo_sync_state` syncs dragged master height back into `@mosaic-mfact` ## Acceptance criteria - [ ] Setting `@mosaic-algorithm bottom-stack` applies top-master / bottom-stack layout - [ ] `promote` swaps the focused stack pane into master - [ ] `resize-master ±N` changes master height and persists in `@mosaic-mfact` - [ ] Split/kill hooks preserve the shape - [ ] Tests cover 3, 4, and 5+ pane cases - [ ] README documents behavior and supported operations ## Open question Do we also want a companion `top-stack` / horizontal-master variant, or is `bottom-stack` enough for the first pass? 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#46
No description provided.