summaryrefslogtreecommitdiff
path: root/docs/design.typ
diff options
context:
space:
mode:
Diffstat (limited to 'docs/design.typ')
-rw-r--r--docs/design.typ19
1 files changed, 13 insertions, 6 deletions
diff --git a/docs/design.typ b/docs/design.typ
index 38fa6fdb..2492329d 100644
--- a/docs/design.typ
+++ b/docs/design.typ
@@ -69,8 +69,11 @@ graphics when available.)
*Effect* (out, queued): `spawn{pane, cwd}`, `write{pane, bytes}`,
`resize_pty{pane, cols, rows}`, `open_link{url}`, `read_file{path}`,
-`new_file{pane, serial}`, `set_clipboard`, `bell`, `quit`. The core never
-performs IO; it asks. This is what makes the browser build honest instead of a
+`new_file{pane, serial}`, `set_clipboard`, `read_clipboard`, `bell`, `quit`.
+The core never performs IO; it asks — and `read_clipboard` is the one ask with
+an answer coming back, an ordinary `paste` event, or nothing at all when the
+shell cannot read the clipboard (most terminals refuse the OSC 52 read). This
+is what makes the browser build honest instead of a
fork: a wasm shell simply
answers `spawn` differently (or not at all) — the core does not know.
@@ -231,8 +234,11 @@ click-and-type; terminals get splice runs (shift right, never overwrite;
absolute-row anchored), files get real edits. tty: raw pty forwarding
(Ctrl-key toggle, default Ctrl-b, `--tty-toggle`), mouse still usable,
promptClickMove on entry, prompts visible (hidden in the other modes via
-OSC 133). `p` pastes the yank register; yank
-mirrors out via OSC 52.
+OSC 133). `y` fills the yank register and `p` pastes it; neither touches the
+system clipboard, which is helix's five words — `SPC y/Y/p/P/R`, out via
+`set_clipboard` and back via `read_clipboard` — and nothing else, so a delete
+cannot clobber what the desktop was holding. A paste from an outer terminal
+arrives bracketed, as one `paste` event.
*Tag.* Live prefix (mode indicator, cwd or path) + editable tail with the
full modal editor; defaults `New Del` / `Save New Del`; an image tag is
@@ -263,8 +269,9 @@ the tag bar, the gutter and the move box; the selection colors stay fixed
because they encode which button you pressed. `NextColor` browses the ring one
step at a time — at 228 it is no longer how you REACH one —
`Theme <name>` jumps to one and `ThemeSel` (`SPC t t`) lists them all into an
-output buffer whose rows are those very commands — so n/N EXECUTE each row
-instead of looking it and stepping the list wears the themes. Colors toggles
+output buffer whose rows are those very commands — execute a row (Tab, middle
+click) and the theme goes on; n/N select such a row WHOLE, since a command
+line holds no place to pick out of it. Colors toggles
all recolor passes; Debug stats overlay; Dump writes state ZON.
*Web (replay viewer parity).* Embedded dump; focus, border/move drags, wheel,