diff options
Diffstat (limited to 'docs/design.typ')
| -rw-r--r-- | docs/design.typ | 19 |
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, |
