f1441c35
docs: Ctrl-\ is documented as a prefix, and the old decision says so
a73x 2026-08-19 17:17
Commit message
README.md
| Old | New | ||
|---|---|---|---|
| @@ -35,7 +35,8 @@ Inside a session: | |||
| 35 | 35 | ||
| 36 | | Key | Effect | | 36 | | Key | Effect | |
| 37 | |---|---| | 37 | |---|---| |
| 38 | | `Ctrl-\` | detach (session keeps running) | | 38 | | `Ctrl-\` | command prefix — press it, then a command key | |
| 39 | | `Ctrl-\` `d` (or `Ctrl-\` `Ctrl-\`) | detach (session keeps running) | | ||
| 39 | | `Shift+PageUp` / `Shift+PageDown` | scrollback (any other key returns to live) | | 40 | | `Shift+PageUp` / `Shift+PageDown` | scrollback (any other key returns to live) | |
| 40 | 41 | ||
| 41 | `mux` again reattaches — full TUI screens included. Kill the client with | 42 | `mux` again reattaches — full TUI screens included. Kill the client with |
| @@ -47,7 +48,7 @@ Works anywhere ssh works. On the remote host: put `muxd` on PATH, then: | |||
| 47 | 48 | ||
| 48 | ```sh | 49 | ```sh |
| 49 | ssh HOST 'muxd start' | 50 | ssh HOST 'muxd start' |
| 50 | mux HOST # attach; Ctrl-\ detaches, running it again reattaches | 51 | mux HOST # attach; Ctrl-\ d detaches, running it again reattaches |
| 51 | ``` | 52 | ``` |
| 52 | 53 | ||
| 53 | `muxd start` spawns the daemon detached and waits until it answers, so it | 54 | `muxd start` spawns the daemon detached and waits until it answers, so it |
| @@ -68,8 +69,9 @@ cloud API is handing that source a shell. `--via` accepts any command that | |||
| 68 | exposes the daemon's socket on stdio, for custom socket paths or | 69 | exposes the daemon's socket on stdio, for custom socket paths or |
| 69 | transports. | 70 | transports. |
| 70 | 71 | ||
| 71 | If the link drops, the client reconnects and resumes by itself; `Ctrl-\` | 72 | If the link drops, the client reconnects and resumes by itself; a bare |
| 72 | gives up waiting. | 73 | `Ctrl-\` gives up waiting — while reconnecting there is no session to |
| 74 | command, so it is not a prefix there. | ||
| 73 | 75 | ||
| 74 | ## Quick start, remote over QUIC | 76 | ## Quick start, remote over QUIC |
| 75 | 77 | ||
docs/decisions.md
| Old | New | ||
|---|---|---|---|
| @@ -67,6 +67,12 @@ | |||
| 67 | cap); reads stay blocking and POLLIN-gated, deliberately — see the M6 | 67 | cap); reads stay blocking and POLLIN-gated, deliberately — see the M6 |
| 68 | section. | 68 | section. |
| 69 | - **Detach chord: Ctrl-\ (0x1c).** No keybinding layer in the prototype. | 69 | - **Detach chord: Ctrl-\ (0x1c).** No keybinding layer in the prototype. |
| 70 | **Superseded** once session commands needed room: in a live session | ||
| 71 | Ctrl-\ is a prefix and the key after it selects the command (`d` or a | ||
| 72 | second Ctrl-\ detach; anything else is dropped with the prefix, which | ||
| 73 | costs nothing — a literal 0x1c never reached the pty). A bare press | ||
| 74 | still aborts a dial or a reconnect, where there is no session to | ||
| 75 | command. | ||
| 70 | - **Render: home + ED(2) full repaint under CSI ?2026 sync.** Wasteful by | 76 | - **Render: home + ED(2) full repaint under CSI ?2026 sync.** Wasteful by |
| 71 | design (deltas are M4); sync-output makes it artifact-free on modern | 77 | design (deltas are M4); sync-output makes it artifact-free on modern |
| 72 | terminals. | 78 | terminals. |