summaryrefslogtreecommitdiff
path: root/docs/fs.md
diff options
context:
space:
mode:
authorGabriel Schneider <[email protected]>2026-09-29 00:50:45 -0300
committerGabriel Schneider <[email protected]>2026-10-01 00:12:15 -0300
commit7aa057e29b729ad6d9ac53e3a06f99858fc449e4 (patch)
treea0010efb342018f32f98d9e805680306feb88836 /docs/fs.md
parente563be42a5b3e9243e2c01d34cf8e94d2047b753 (diff)
downloadpardes-7aa057e29b729ad6d9ac53e3a06f99858fc449e4.tar.gz
pardes-7aa057e29b729ad6d9ac53e3a06f99858fc449e4.zip
A column has a ctl, an exec and an rmdir over 9P, and Restore maps its serial
A script could read and write a column's tag but not act on the column. col/<serial>/ctl takes Delcol, Joincol, New and Tty, each acting on that column as from its tag; col/<serial>/exec runs a word as a middle click in the tag; rmdir col/<serial> closes an empty column and refuses one with panes (ENOTEMPTY, an err record saying why). The root ctl's refusal of Delcol and Joincol points at col/<serial>/ctl. A dump keeps each column's serial and Restore logs restoredcol <old> <new>; the dump golden gains them. Documented: Joincol's survivor, the column on the right, keeps its serial and tag. Co-Authored-By: Claude Opus 5.5 <[email protected]>
Diffstat (limited to 'docs/fs.md')
-rw-r--r--docs/fs.md13
1 files changed, 11 insertions, 2 deletions
diff --git a/docs/fs.md b/docs/fs.md
index a4fec333..46fe9f86 100644
--- a/docs/fs.md
+++ b/docs/fs.md
@@ -111,6 +111,9 @@ Existing Plan9port/v9fs clients need a userspace bridge for QUIC.
pane/new and a look place a pane next (- when there is none)
/tag the workspace tag; > replaces it, >> appends, one line
/col/<n>/tag the tag of the column with serial n, the same way
+/col/<n>/ctl write Delcol, Joincol, New or Tty: each acts on that column, as from its tag
+/col/<n>/exec write a word: a middle click on it in that column's tag; rmdir col/<n> closes
+ an empty column (a column with panes is refused, ENOTEMPTY)
/pane/new open it to make a pane; the read answers that pane's serial. A session holds
64 panes (16 on the board); at that, every route that would open one -- this
open, look, exec, New, Tty -- fails with `no pane slots: 64 max` and an err
@@ -130,7 +133,12 @@ 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 <serial>` and `delcol <serial>` as columns come and go.
+`newcol <serial>` and `delcol <serial>` as columns come and go, and after a
+Restore `restoredcol <old> <new>` for each column as `restored` does for
+panes. Joincol folds a column into the one on its right, which keeps its own
+serial and tag; the joined one's serial is gone (`delcol`). The root ctl
+takes no column word: its `Delcol` is refused, pointing at
+`col/<serial>/ctl`.
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.
@@ -563,7 +571,8 @@ the `del` of a terminal whose shell exited by itself, `ask <serial> <what>
and `save <serial> <name>`,
`dump <path>` when a Dump is written and `restore <path>` in a Restore's
new log after its panes' `new`s, then `restored <old> <new>` for each pane,
-mapping the serial it had to the one it has now, and `msg <serial|-> <text>`
+mapping the serial it had to the one it has now, and `restoredcol <old>
+<new>` for each column, and `msg <serial|-> <text>`
for every line the editor says, repeats included (with `verbose` on, that
includes each builtin announcing itself as it runs, on purpose: the log says
which ran; its serial is the pane it ran at, `-` when the keyboard was on a