summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.agents/skills/pardes-9p/SKILL.md1
-rw-r--r--docs/fs.md14
-rw-r--r--docs/tags.md5
3 files changed, 15 insertions, 5 deletions
diff --git a/.agents/skills/pardes-9p/SKILL.md b/.agents/skills/pardes-9p/SKILL.md
index b328334c..b16039d2 100644
--- a/.agents/skills/pardes-9p/SKILL.md
+++ b/.agents/skills/pardes-9p/SKILL.md
@@ -24,6 +24,7 @@ directory either way, and `$PARDES_PANE` is the calling pane's serial:
```sh
[ -n "$NINE_MOUNT" ] || echo 'no 9P mount: use the Python client below'
s=${PARDES_9P##*/pardes-9p-}; m=$NINE_MOUNT/pardes/${s%.sock}
+# under `9ns --unix SOCKET -- cmd` the session is the mount itself: m=$NINE_MOUNT
cat "$m/index"
cat "$m/pane/$PARDES_PANE/body"
```
diff --git a/docs/fs.md b/docs/fs.md
index c8e337f8..89a513e8 100644
--- a/docs/fs.md
+++ b/docs/fs.md
@@ -161,7 +161,8 @@ takes (`Verbose on`, `WindowOpacity 70`, `PanelSlide off`, `DumpDir
back changes nothing; a setting the frontend cannot show (`Lift`,
`GripWidth` on a terminal) is refused as `Lift is GUI-only`; platform and startup facts are `/status`'s and the
Config window's, not settings. A pane's `ctl` takes the builtins that act on
-a pane (`Del`, `Save f`, `Collapse`, which folds that pane, `Undo` and
+a pane (`Del`, or `Del k`/`Del j` to give its rows to the pane above or
+below, `Save f`, `Collapse`, which folds that pane, `Undo` and
`Redo`, which step its body through its edits, `Find pat`)
beside acme's `get`, `lock` and `unlock`. The column words are pane words
too, acting on the column that pane is in: `Delcol`, `DelAbove`, `DelBelow`
@@ -529,7 +530,9 @@ entries carry no sizes, and neither does `/screen`, which has no length until
an open renders its frame; stat the entry.
`/log` is one ring (64 KiB) that records whether or not anyone reads it:
-`new`, `del`, `rename` (a terminal's too, as its shell changes directory,
+`new`, `del`, `rename` (a terminal's too, as its shell changes directory --
+a new terminal is `new N /` until its shell says where it is, then renamed;
+it runs `ls` once at its first prompt, a greeting that shows the directory --
since a terminal is named by its directory), `exit <serial> <N>` before
the `del` of a terminal whose shell exited by itself, `ask <serial> <what>
<choices>` when a pane asks a question (answered by `answer` on its ctl),
@@ -538,7 +541,9 @@ and `save <serial> <name>`,
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>`
for every line the editor says, repeats included (with `verbose` on, that
-includes each builtin announcing itself as it runs), and `err <serial|->
+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
+column or workspace tag), and `err <serial|->
<file>: <why>` for every write or truncation the tree refused or that
failed -- through a mount a shell sees only the errno its kernel mapped the
reply to, usually `Invalid argument`, and this is the reason (`err 3 addr:
@@ -561,7 +566,8 @@ Control characters in a record become spaces, so a record is one line.
(An `event` record is not: acme's `<origin><action><q0> <q1> <flag> <n>
<text>\n`, whose text may hold newlines. The origin is `E` (a 9P write to body or tag), `F` (other
files, the editor's own lines), `K` (the keyboard) or `M` (the mouse); the
-action's case says where: `x`/`l` a click executed or looked at in the tag,
+action's case says where: `x`/`l` a click executed or looked at in the tag
+(its offsets count the tag's whole text, path included, as `tag` reads),
`X`/`L` in the body, `I`/`D` text put in or taken out of the body, `i`/`d`
of the tag. Read `n` bytes of the text, not up to a newline -- bytes here, where acme counts runes. Every offset and
count pardes serves is in bytes, `#n` and `q0`/`q1` too; the event count
diff --git a/docs/tags.md b/docs/tags.md
index f622520f..885eb22f 100644
--- a/docs/tags.md
+++ b/docs/tags.md
@@ -190,7 +190,10 @@ the shared bold, underline, and strikethrough attributes, including diagnostic
underlines and the optional `SyntaxBold` keyword weight.
Unsaved text shows on the pane's grip button, as acme's modbutton does,
-not in the tag: the tag names the file and nothing more. The `dirty` file
+not in the tag: the tag names the file and nothing more. In a terminal the
+grip is two cells: the second is `*` while the pane holds unsaved text, and
+the first is the pane's mode: blank in normal mode, `^` in insert, `$` when
+the keyboard goes to a terminal's program (tty mode). The `dirty` file
and `index`'s flag say the same to a script.
## Empty columns