From 4881c5d13c6a705a8c8bdb0181c33f9a500b5a74 Mon Sep 17 00:00:00 2001 From: Gabriel Schneider Date: Tue, 29 Sep 2026 00:23:55 -0300 Subject: Columns are named by stable serials over 9P, as panes are /col/ named a column by its index, which shifts when a column left of it closes: exactly what scripts trip on. A column is now /col/, its serial kept while it lives and never reused; /layout lines give serial and index (` ...`), active names the serial, /index's last field is the column's serial, and the log says newcol and delcol with serials. Docs, the skill and the tree's README say so. Co-Authored-By: Claude Opus 5.5 --- docs/fs.md | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) (limited to 'docs') diff --git a/docs/fs.md b/docs/fs.md index 5f382e7e..fd18d523 100644 --- a/docs/fs.md +++ b/docs/fs.md @@ -92,7 +92,7 @@ Existing Plan9port/v9fs clients need a userspace bridge for QUIC. ``` /README this guide, also src/fs-help.txt -/index one line per pane: serial, kind (text|term|pdf|image), dirty flag, name, column +/index one line per pane: serial, kind (text|term|pdf|image), dirty flag, name, column serial /status pid, version and pane count /look write a line: a right click on it at the active pane; read: the serials the last look, exec or ctl write touched (made, else acted at) @@ -105,10 +105,10 @@ Existing Plan9port/v9fs clients need a userspace bridge for QUIC. /focus the serial of the pane with the keyboard; write a serial to give it the keyboard /ctl the settings, one a line as a write takes them; write a setting or a session builtin /commands every builtin: word, `arg` if it takes one, `root` or `pane` (the ctl that takes it), a setting's values -/layout one line per column: index x width current|notcurrent empty|full serials...; - then active (- when no column has the keyboard) +/layout one line per column, left to right: serial index x width current|notcurrent + empty|full pane-serials...; then active (- when no column has the keyboard) /tag the workspace tag; > replaces it, >> appends, one line -/col//tag column n's tag, the same way; columns count from 0, left to right +/col//tag the tag of the column with serial n, the same way /pane/new open it to make a pane; the read answers that pane's serial /pane// name body tag ctl addr dot limit data xdata sel dirty mark scroll errors event look exec, plus pty/{ctl,status,data} on terminals @@ -118,13 +118,14 @@ Existing Plan9port/v9fs clients need a userspace bridge for QUIC. `/layout`, `/tag` and `/col` go past acme, which serves no column files -- its columns are only where a window sits. They are here so a script can see -where the panes are (`/index`'s last word is each one's column, the same -index) and edit the tags a person clicks in: a column tag is one line, a -newline written into it a space, and a truncating write (`echo Make > -col/0/tag`) clears it and drops the newline that ends it, as a pane tag's -does. A column is named by its index, so the columns right of one that -closes move down one; the log says `newcol ` and `delcol ` as they come -and go, with /layout to read again. +where the panes are (`/index`'s last word is each one's column serial) and +edit the tags a person clicks in: a column tag is one line, a newline +written into it a space, and a truncating write (`echo Make > col/3/tag`) +clears it and drops the newline that ends it, as a pane tag's does. A +column is named by its serial, as a pane is: it stays while the column +lives, whatever opens or closes beside it, and is never reused; /layout +gives each column's serial and its index left to right, and the log says +`newcol ` and `delcol ` as columns come and go. Control messages are split by what they act on, as acme keeps window verbs on a window's ctl and webfs and upas/fs keep session settings on a root ctl. -- cgit v1.3