From 0ee8d748c028ad5257f95e15db38646aecd2851b Mon Sep 17 00:00:00 2001 From: Gabriel Schneider Date: Mon, 28 Sep 2026 09:32:02 -0300 Subject: A root focus file names the pane with the keyboard and moves it; a pane's ctl says whether it is current Scripts had no way to ask which pane has the keyboard or to give it one. rio answers both through a window's wctl: its read ends with current or notcurrent, and a write of current takes the keyboard (rio(4)). A pane's ctl line now ends the same way, and since there is one keyboard for the whole tree, /focus reads the focused pane's serial and takes a serial to move the keyboard there, off any header that had it; a serial no pane has fails with "no such window". fs-bench's stale readdir check is fixed too. Co-Authored-By: Claude Opus 5.5 --- src/fs-help.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src/fs-help.txt') diff --git a/src/fs-help.txt b/src/fs-help.txt index efdecf46..235ce072 100644 --- a/src/fs-help.txt +++ b/src/fs-help.txt @@ -9,11 +9,11 @@ log recent events, one a line: new/del/rename/save , and msg , what the editor said; write follow to wait (tail -f won't) screen rendered screen as JSON, frozen from open to close listeners the session's dial addresses +focus the serial of the pane with the keyboard; write a serial to give it the keyboard 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, and pty/ for terminals; rmdir closes it -os/ the host filesystem -src/ the editor's own sources, only in a -Dembed-sources=true build +os/, src/ the host filesystem; the editor's own sources (-Dembed-sources=true builds only) Below, $m is the mount point (PARDES_MOUNT in a Tty9p shell; 9ns and 9p work too): @@ -42,4 +42,4 @@ Pitfalls, one each: tag reads path++text; writes append to the text (newlines too); truncating clears it, and dot or addr. A terminal's body is a history snapshot frozen per open; pty/data is the live stream. A failing command is reported in the editor and in log, not as a write error; a bad line fails the write. - pane//ctl: acme's status line; takes get (reload), lock/unlock on a held fd (exec 3>ctl; echo lock >&3). + pane//ctl: acme's status line, then current or notcurrent; takes get (reload), lock/unlock on a held fd. -- cgit v1.3