no-mistakes(document): document VT mode behavior
- commit
- 36d615cec18c789bbad5a0ae458de206884cf6f6
- author
- brice · · 2026-07-09 15:28 UTC
- parent
- 5852a41
- signature
- GPG Verified
CD88F9E564E0102646FB6077A1A07C7C7C3E349D· arch-gpg Verified for the committer email
3 files · +13 -3
M README.md +4 -0
| @@ -134,6 +134,10 @@ When the attaching client reports truecolor support, vev advertises newly spawne | |||
| 134 | 134 | ||
| 135 | 135 | Applications that use terminfo can detect direct color from `xterm-direct`; applications that use the common environment convention can use `COLORTERM=truecolor` when it is present. Panes restored from a saved snapshot start conservatively before any client attaches; after attach or resume, newly spawned panes use that client's reported capability. | |
| 136 | 136 | ||
| 137 | + | ## Terminal compatibility | |
| 138 | + | ||
| 139 | + | vev keeps a server-side VT screen for each pane. It tracks scroll regions with DECOM origin mode, ANSI insert mode, cursor-position and mode-query reports, alternate-screen state, bracketed paste, mouse tracking, synchronized updates, OSC 9/777 notifications, OSC 52 clipboard set requests, and double-width cells. Resize and edit operations repair double-width cells so CJK or emoji glyph halves are not left behind. | |
| 140 | + | ||
| 137 | 141 | ## Keys | |
| 138 | 142 | ||
| 139 | 143 | All bindings use Alt directly; there is no prefix key. | |
| @@ -134,6 +134,10 @@ When the attaching client reports truecolor support, vev advertises newly spawne | |||||
| 134 | 134 | ||||
| 135 | Applications that use terminfo can detect direct color from `xterm-direct`; applications that use the common environment convention can use `COLORTERM=truecolor` when it is present. Panes restored from a saved snapshot start conservatively before any client attaches; after attach or resume, newly spawned panes use that client's reported capability. | 135 | Applications that use terminfo can detect direct color from `xterm-direct`; applications that use the common environment convention can use `COLORTERM=truecolor` when it is present. Panes restored from a saved snapshot start conservatively before any client attaches; after attach or resume, newly spawned panes use that client's reported capability. | ||
| 136 | 136 | ||||
| 137 | + | ## Terminal compatibility | |||
| 138 | + | ||||
| 139 | + | vev keeps a server-side VT screen for each pane. It tracks scroll regions with DECOM origin mode, ANSI insert mode, cursor-position and mode-query reports, alternate-screen state, bracketed paste, mouse tracking, synchronized updates, OSC 9/777 notifications, OSC 52 clipboard set requests, and double-width cells. Resize and edit operations repair double-width cells so CJK or emoji glyph halves are not left behind. | |||
| 140 | + | ||||
| 137 | ## Keys | 141 | ## Keys | ||
| 138 | 142 | ||||
| 139 | All bindings use Alt directly; there is no prefix key. | 143 | All bindings use Alt directly; there is no prefix key. | ||
M pkg/vt/doc.go +7 -1
| @@ -1,2 +1,8 @@ | |||
| 1 | - | // Package vt implements a terminal emulator core. | |
| 1 | + | // Package vt implements the server-side terminal emulator core. | |
| 2 | + | // | |
| 3 | + | // It tracks the visible cell grid, damage rectangles, scroll regions, | |
| 4 | + | // alternate-screen state, cursor/reporting modes, and common xterm/VT control | |
| 5 | + | // sequences. Wide runes that fit are stored as a head cell plus a continuation | |
| 6 | + | // cell, and resize or edit operations repair row-boundary splits instead of | |
| 7 | + | // leaving orphaned halves. | |
| 2 | 8 | package vt | |
| @@ -1,2 +1,8 @@ | |||||
| 1 | - | // Package vt implements a terminal emulator core. | 1 | + | // Package vt implements the server-side terminal emulator core. |
| 2 | + | // | |||
| 3 | + | // It tracks the visible cell grid, damage rectangles, scroll regions, | |||
| 4 | + | // alternate-screen state, cursor/reporting modes, and common xterm/VT control | |||
| 5 | + | // sequences. Wide runes that fit are stored as a head cell plus a continuation | |||
| 6 | + | // cell, and resize or edit operations repair row-boundary splits instead of | |||
| 7 | + | // leaving orphaned halves. | |||
| 2 | package vt | 8 | package vt | ||
M pkg/vt/screen.go +2 -2
| @@ -59,8 +59,8 @@ type Screen struct { | |||
| 59 | 59 | // and blanks rows. The callback receives a stable copy of each evicted row. | |
| 60 | 60 | OnLineEvicted func([]renderer.Cell) | |
| 61 | 61 | // OnResponse is called synchronously from Write with reply bytes that the | |
| 62 | - | // emulator must send back to the child process (DA, DSR, DECRQM reports). | |
| 63 | - | // The host wires it to the PTY input. Nil disables responses. | |
| 62 | + | // emulator must send back to the child process (DA, DSR, and ANSI/DEC mode | |
| 63 | + | // query reports). The host wires it to the PTY input. Nil disables responses. | |
| 64 | 64 | OnResponse func([]byte) | |
| 65 | 65 | // OnBell is called synchronously from Write for each lone BEL (0x07) | |
| 66 | 66 | // outside escape sequences. BELs that terminate an OSC never fire it. | |
| @@ -59,8 +59,8 @@ type Screen struct { | |||||
| 59 | // and blanks rows. The callback receives a stable copy of each evicted row. | 59 | // and blanks rows. The callback receives a stable copy of each evicted row. | ||
| 60 | OnLineEvicted func([]renderer.Cell) | 60 | OnLineEvicted func([]renderer.Cell) | ||
| 61 | // OnResponse is called synchronously from Write with reply bytes that the | 61 | // OnResponse is called synchronously from Write with reply bytes that the | ||
| 62 | - | // emulator must send back to the child process (DA, DSR, DECRQM reports). | 62 | + | // emulator must send back to the child process (DA, DSR, and ANSI/DEC mode |
| 63 | - | // The host wires it to the PTY input. Nil disables responses. | 63 | + | // query reports). The host wires it to the PTY input. Nil disables responses. |
| 64 | OnResponse func([]byte) | 64 | OnResponse func([]byte) | ||
| 65 | // OnBell is called synchronously from Write for each lone BEL (0x07) | 65 | // OnBell is called synchronously from Write for each lone BEL (0x07) | ||
| 66 | // outside escape sequences. BELs that terminate an OSC never fire it. | 66 | // outside escape sequences. BELs that terminate an OSC never fire it. | ||