feat: make dwindle new-pane split the recursive tail directly #108

Closed
opened 2026-04-28 01:57:51 +00:00 by barrettruth · 0 comments
barrettruth commented 2026-04-28 01:57:51 +00:00

Problem

dwindle is a recursively tail-refining layout. When the intended target leaf is large enough, explicit managed new-pane should be able to split that recursive tail directly instead of accepting avoidable full-layout churn.

Blocked by: #101, #102

Proposed solution

Implement a layout-aware explicit new-pane path for dwindle that targets the current recursive tail leaf directly. Accept later ratio correction from relayout, but not cross-subtree birth when the target leaf is splittable.

Keep min-size fallback policy out of scope for this issue.

Context

In the current topology matrix, dwindle is one of the cleanest algorithmic cases: when the tail leaf can still be split, the next pane is just a refinement of that leaf. The strongest surveyed external analog (tmux-tiling-revamped) still chooses full BSP reprojection after split instead.

Acceptance notes

  • When the intended tail leaf is splittable, the first frame should already be in the correct recursive branch.
  • Keep append-order semantics intact.
  • Leave degenerate/min-size behavior to a later dedicated issue.

Alternatives considered

  • Keep full reprojection after every split.
  • Fold min-size behavior into the same issue and make the scope much harder to land.
## Problem `dwindle` is a recursively tail-refining layout. When the intended target leaf is large enough, explicit managed `new-pane` should be able to split that recursive tail directly instead of accepting avoidable full-layout churn. Blocked by: #101, #102 ## Proposed solution Implement a layout-aware explicit `new-pane` path for `dwindle` that targets the current recursive tail leaf directly. Accept later ratio correction from relayout, but not cross-subtree birth when the target leaf is splittable. Keep min-size fallback policy out of scope for this issue. ## Context In the current topology matrix, `dwindle` is one of the cleanest algorithmic cases: when the tail leaf can still be split, the next pane is just a refinement of that leaf. The strongest surveyed external analog (`tmux-tiling-revamped`) still chooses full BSP reprojection after split instead. ## Acceptance notes - When the intended tail leaf is splittable, the first frame should already be in the correct recursive branch. - Keep append-order semantics intact. - Leave degenerate/min-size behavior to a later dedicated issue. ## Alternatives considered - Keep full reprojection after every split. - Fold min-size behavior into the same issue and make the scope much harder to land.
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#108
No description provided.