From a624a56e289e4a02a411f83741f0f2c9fc0f0b2e Mon Sep 17 00:00:00 2001 From: Gabriel Schneider Date: Mon, 14 Sep 2026 21:26:47 -0300 Subject: Add Linux Tty9p mounted terminals and forward raw TTY keys --- src/fs-help.txt | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 src/fs-help.txt (limited to 'src/fs-help.txt') diff --git a/src/fs-help.txt b/src/fs-help.txt new file mode 100644 index 00000000..eeb000cc --- /dev/null +++ b/src/fs-help.txt @@ -0,0 +1,65 @@ +Pardes control filesystem +========================= +The mount root contains self/ (this editor) and os/ (host files). +This guide is available as self/README and self/new/README. +Examples below run inside a Tty9p shell, where PARDES_MOUNT is set. + +Explore +------- + ls "$PARDES_MOUNT/self" + cat "$PARDES_MOUNT/self/index" + ls -l "$PARDES_MOUNT/self/new" + ls "$PARDES_MOUNT/self/pane" + +index lists panes: serial, tag length, body length, reserved zero, +modified flag, then tag text. Use the serial in self/pane//. +screen is rendered screen JSON; listeners lists the session addresses. +cons accepts text to display in the editor. + +Create a pane +------------- +new/ lists the same files as a scratch pane, plus this README. +Listing, walking and statting these paths do not create anything. +OPENING any file except README creates one scratch pane below the active pane. +Each open creates a separate pane, even if you open the same path again. + + cat "$PARDES_MOUNT/self/new/ctl" + +This creates a pane and prints its control information, beginning with its +serial. Use self/pane// for all subsequent operations on that pane. +To create a pane and write its initial text in one operation: + + printf 'Hello from the shell\n' > "$PARDES_MOUNT/self/new/body" + +Reading all files recursively would open factories and create panes. +Use ls or stat to inspect them; read README for this guide. + +Work with an existing pane +-------------------------- +Replace with a number from index or new/ctl: + + cat "$PARDES_MOUNT/self/pane//body" + printf 'Replacement text\n' > "$PARDES_MOUNT/self/pane//body" + printf 'More text\n' >> "$PARDES_MOUNT/self/pane//body" + printf 'name notes.txt\n' > "$PARDES_MOUNT/self/pane//ctl" + +body buffer text; for terminals, reads history and writes child input + tag editable pane tag + ctl control information on read; newline-separated commands on write + addr address range; write #0,#5 to select the first five bytes + data read from addr onward, or replace the range selected by addr + xdata read only the range selected by addr; writes replace that range + rdsel read the editor selection + wrsel replace the editor selection + errors write diagnostics + event pane interaction events; opening intercepts Look/Exec events + +Common ctl commands: name PATH, put (save), get (reload), dot=addr, +addr=dot, look PATH, del (close, refusing dirty text), delete (force close). +Reload and force close can discard unsaved changes. + +Terminal panes also expose pty/ctl, pty/status and pty/data. +Writing pty/data sends terminal input; use carriage return to submit a command. +Reading pty/data streams new output; read body for a history snapshot. + +Embedded source files under self/src/ document the complete interface. -- cgit v1.3