Revise README for clarity and focus on features
Updated README to clarify project focus and features, including performance and remote work capabilities. Removed mouse and development sections for brevity.
- commit
- d40cfdf3206505a4fb9a00bf269790ae5a889dc6
- author
- bnema · · 2026-07-04 16:39 UTC
- committer
- GitHub · · 2026-07-04 16:39 UTC
- parent
- fb90c2a
- signature
- GPG Unverified
B5690EEEBB952194The key is unknown
1 file · +4 -17
M README.md +4 -17
| @@ -1,6 +1,9 @@ | |||
| 1 | 1 | # vev | |
| 2 | 2 | ||
| 3 | - | A terminal multiplexer for Linux, written in Go with no runtime dependencies beyond `golang.org/x/sys` and `golang.org/x/term`. Sessions run in a per-user daemon; the client is a thin pipe. Rendering happens server-side with damage tracking, so only minimal diffs cross the socket (or the SSH link). | |
| 3 | + | There is many terminal multiplexers but this one is mine. Written in Go, with no runtime dependencies beyond `golang.org/x/sys` and `golang.org/x/term`. Purely focused on performance, rendering of high output of vertical text, agentic coding and remote work over ssh. | |
| 4 | + | ||
| 5 | + | > [!IMPORTANT] | |
| 6 | + | > This is totally in alpha | |
| 4 | 7 | ||
| 5 | 8 | ## Install | |
| 6 | 9 | ||
| @@ -81,19 +84,3 @@ Visual mode freezes a view over history while the program keeps running undernea | |||
| 81 | 84 | | v or Space | toggle line selection | | |
| 82 | 85 | | y or Enter | copy selection and exit | | |
| 83 | 86 | | q, Esc, Ctrl-C | exit without copying | | |
| 84 | - | ||
| 85 | - | Drag with the mouse to select lines in visual mode. Copying uses OSC 52, so the selection lands in your terminal's clipboard even across SSH. After a successful copy, the right side of the status bar reports `copied N chars to clipboard` until the next screen update. If the selection exceeds the OSC 52 copy limit, the status bar reports `selection too large to copy` instead. | |
| 86 | - | ||
| 87 | - | ## Mouse | |
| 88 | - | ||
| 89 | - | vev enables terminal mouse reporting while attached. Mouse input on the status row is reserved for vev and is not sent to the child. In visual mode, the wheel scrolls the frozen view and left-button drag selects lines. On the normal screen, left-button drag enters visual mode and selects the dragged lines; a simple click is left alone. When the child enables mouse reporting, SGR mouse events are forwarded to it. Otherwise, wheel events in the alternate screen are translated to Up/Down arrow keys (`ESC[A` / `ESC[B`). This translation intentionally does not honor DECCKM application-cursor mode (`ESC OA` / `ESC OB`). An extremely rare input read split exactly between `ESC[` and `<` in an SGR mouse sequence may leak the partial `ESC[` to the child. | |
| 90 | - | ||
| 91 | - | vev follows the child application's cursor visibility and style requests and appends a hardware cursor update after each paint. Visible cursors blink as requested by the terminal/application state. | |
| 92 | - | ||
| 93 | - | ## Development | |
| 94 | - | ||
| 95 | - | ```sh | |
| 96 | - | go test ./... -race | |
| 97 | - | ``` | |
| 98 | - | ||
| 99 | - | `pkg/` (VT emulator, renderer) never imports `internal/`; a boundary test enforces this. Format Go code with `goimports`. Benchmark notes live in `docs/performance.md`. | |
| @@ -1,6 +1,9 @@ | |||||
| 1 | # vev | 1 | # vev | ||
| 2 | 2 | ||||
| 3 | - | A terminal multiplexer for Linux, written in Go with no runtime dependencies beyond `golang.org/x/sys` and `golang.org/x/term`. Sessions run in a per-user daemon; the client is a thin pipe. Rendering happens server-side with damage tracking, so only minimal diffs cross the socket (or the SSH link). | 3 | + | There is many terminal multiplexers but this one is mine. Written in Go, with no runtime dependencies beyond `golang.org/x/sys` and `golang.org/x/term`. Purely focused on performance, rendering of high output of vertical text, agentic coding and remote work over ssh. |
| 4 | + | ||||
| 5 | + | > [!IMPORTANT] | |||
| 6 | + | > This is totally in alpha | |||
| 4 | 7 | ||||
| 5 | ## Install | 8 | ## Install | ||
| 6 | 9 | ||||
| @@ -81,19 +84,3 @@ Visual mode freezes a view over history while the program keeps running undernea | |||||
| 81 | | v or Space | toggle line selection | | 84 | | v or Space | toggle line selection | | ||
| 82 | | y or Enter | copy selection and exit | | 85 | | y or Enter | copy selection and exit | | ||
| 83 | | q, Esc, Ctrl-C | exit without copying | | 86 | | q, Esc, Ctrl-C | exit without copying | | ||
| 84 | - | ||||
| 85 | - | Drag with the mouse to select lines in visual mode. Copying uses OSC 52, so the selection lands in your terminal's clipboard even across SSH. After a successful copy, the right side of the status bar reports `copied N chars to clipboard` until the next screen update. If the selection exceeds the OSC 52 copy limit, the status bar reports `selection too large to copy` instead. | |||
| 86 | - | ||||
| 87 | - | ## Mouse | |||
| 88 | - | ||||
| 89 | - | vev enables terminal mouse reporting while attached. Mouse input on the status row is reserved for vev and is not sent to the child. In visual mode, the wheel scrolls the frozen view and left-button drag selects lines. On the normal screen, left-button drag enters visual mode and selects the dragged lines; a simple click is left alone. When the child enables mouse reporting, SGR mouse events are forwarded to it. Otherwise, wheel events in the alternate screen are translated to Up/Down arrow keys (`ESC[A` / `ESC[B`). This translation intentionally does not honor DECCKM application-cursor mode (`ESC OA` / `ESC OB`). An extremely rare input read split exactly between `ESC[` and `<` in an SGR mouse sequence may leak the partial `ESC[` to the child. | |||
| 90 | - | ||||
| 91 | - | vev follows the child application's cursor visibility and style requests and appends a hardware cursor update after each paint. Visible cursors blink as requested by the terminal/application state. | |||
| 92 | - | ||||
| 93 | - | ## Development | |||
| 94 | - | ||||
| 95 | - | ```sh | |||
| 96 | - | go test ./... -race | |||
| 97 | - | ``` | |||
| 98 | - | ||||
| 99 | - | `pkg/` (VT emulator, renderer) never imports `internal/`; a boundary test enforces this. Format Go code with `goimports`. Benchmark notes live in `docs/performance.md`. | |||