From 03773fac517a2a26dc2f2813db9906d3bf7e91db Mon Sep 17 00:00:00 2001 From: Gabriel Schneider Date: Tue, 29 Sep 2026 07:15:20 -0300 Subject: `size` is refused only when the panes' own minima do not fit, so it is monotonic The check read how the weights shared the rows after the resize, not whether the rows could hold every pane's tag and two rows: a pane the proportional squeeze took short made `size` refuse, growing included, and refuse sizes it took a moment before. It now asks layout.minRows, the minimum placement asks, per column; a size they fit is taken, and a pane the resize took under its minimum gets its rows back. An out of range size says `invalid size`, which 9ns reads as EINVAL, as the doc had. Co-Authored-By: Claude Opus 5.5 --- docs/fs.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'docs/fs.md') diff --git a/docs/fs.md b/docs/fs.md index 2149fbcf..23c87216 100644 --- a/docs/fs.md +++ b/docs/fs.md @@ -109,8 +109,12 @@ Existing Plan9port/v9fs clients need a userspace bridge for QUIC. /ctl the settings, one a line as a write takes them; write a setting or a session builtin; `size ` sets the screen of a session no frontend is attached to (`--detach`, 80x24 until then; refused while a frontend owns the size), - from 20x6 to 4096x4096, and refused when the panes it has would not each - keep their tag and 2 rows; a terminal's pty follows its pane on every resize + from 20x6 to 4096x4096 (outside that, `invalid size`, EINVAL), and refused + when a column has not the rows for its panes' minima, each its tag and 2 + rows, the minimum placement keeps; so a size once taken is taken again, + and growing is never refused. A pane the resize took under its minimum + gets its rows back from its column's others; a terminal's pty follows its + pane on every resize /commands every builtin: word, `arg` if it takes one, `root`, `pane` or `both` (the ctl that takes it: Edit is both, at the active pane from the root; a pane's word such as Undo or Msg is refused at the root), a setting's values, then ` -- ` and what it does -- cgit v1.3