From 8b2a55f31169ede82e11a573ab655e72e7831fe7 Mon Sep 17 00:00:00 2001 From: Gabriel Schneider Date: Mon, 28 Sep 2026 23:11:08 -0300 Subject: A choice setting's refusal names what it takes, and /commands lists them Bare Placement and BootShell flip, which is pardes's convention for a word that chooses (Crt does too), but nothing said so, and "bad value in control message" never said what would do. A refused value now says `takes acme, pardes` (every switch and choice setting), /commands lists each such setting's values in a fourth field, and config.md and fs.md say that bare steps to the next. Motion and ShaderAnimation stepped nowhere bare and now step like the rest. Co-Authored-By: Claude Opus 5.5 --- docs/config.md | 8 +++++++- docs/fs.md | 11 ++++++++--- 2 files changed, 15 insertions(+), 4 deletions(-) (limited to 'docs') diff --git a/docs/config.md b/docs/config.md index 0332d854..434a1778 100644 --- a/docs/config.md +++ b/docs/config.md @@ -120,7 +120,13 @@ document in a column of its own. See [where new panes go](tags.md#where-new-pane into the left column beside it, whatever it holds; `BootShell replace` closes such a shell there when it is the column's only one and nobody has typed into it (no scrollback, cursor still on the first prompt line), the boot's -placeholder giving its rows to the document. Bare `BootShell` flips it. +placeholder giving its rows to the document. Bare `BootShell` flips it, as +bare `Placement` does: a setting that chooses among words (`on`/`off` +switches, `Placement`, `BootShell`, `Crt`, `Lift`, `Motion`, +`ShaderAnimation`) steps to its +next value when written bare, as its word clicked in a tag does, and a value +it does not take is refused with the values it takes, which `/commands` also +lists. `Verbose` toggles the message-row announcement every builtin makes of its own name before it runs; it is on by default, and the builtins that own the message row themselves (`Msg`) never announce. Turning it off leaves the row to the diff --git a/docs/fs.md b/docs/fs.md index 9052967e..1e09c412 100644 --- a/docs/fs.md +++ b/docs/fs.md @@ -104,7 +104,7 @@ Existing Plan9port/v9fs clients need a userspace bridge for QUIC. /listeners the session's dial addresses /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, and `root` or `pane`, the ctl that takes it +/commands every builtin: word, `arg` if it takes one, `root` or `pane` (the ctl that takes it), a setting's values /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 @@ -193,8 +193,13 @@ performed what it asked for (a save written, a shell started). A click on the same word, or the word written to `exec`, still opens its prompt. `/commands` lists every builtin the registry holds, in registry order, one -a line: its word, `arg` when it takes one, and `root` or `pane` for the ctl -that takes it, e.g. `Newcol root`, `Save arg pane`, `Verbose arg root`. It is +a line: its word, `arg` when it takes one, `root` or `pane` for the ctl +that takes it, and for a setting that chooses among words those words, +comma-joined, e.g. `Newcol root`, `Save arg pane`, `Verbose arg root on,off`, +`Placement arg root acme,pardes`. Such a setting written bare steps to its +next value, so a two-valued one flips (`Crt`, `Placement`, `BootShell`), as +its word clicked in a tag does; a value it does not take is refused with +`bad value in control message; takes ...` naming those it does. It is generated from the registry, so it is always this build's own list. `/focus` reads the serial of the pane with the keyboard, and a serial written -- cgit v1.3