mirror of
https://github.com/wez/wezterm.git
synced 2024-11-24 07:46:59 +03:00
3d0107cb75
This commit allows the terminal to tag cells with their semantic type, as defined by OSC 133 escape sequences. The gist of it is that each cell is now semantically one of: * Output (eg: from the activity performed by the user. This is the default) * Input (eg: something that the user typed as input) * Prompt (eg: "uninteresting" chrome/UI from the shell) The semantic type is applied almost exactly like an SGR attribute, except that resetting SGR doesn't clear the semantic type. Tagging the cells in this way allows for smarter UX in the future; for example, selecting the entire input or output from the last command without fiddling around to avoid the prompt line(s), or "paging up" to a prior prompt rather than page. This doc covers those escapes as used in domterm, iterm2 and other terminals: https://gitlab.freedesktop.org/Per_Bothner/specifications/blob/master/proposals/semantic-prompts.md This is an example of how to configure the shell to emit these sequences; I'll add a proper little blob of shell specifically for wezterm in a later commit: https://github.com/PerBothner/DomTerm/blob/master/tools/shell-integration.zsh |
||
---|---|---|
.. | ||
src | ||
Cargo.toml | ||
README.md |
wezterm-term
This crate provides the core of the virtual terminal emulator implementation used by wezterm. The home for this crate is in the wezterm repo and development is tracked at https://github.com/wez/wezterm/.
It is full featured, providing terminal escape sequence parsing, keyboard and mouse input encoding, a model for the screen cells including scrollback, sixel and iTerm2 image support, OSC 8 Hyperlinks and a wide range of terminal cell attributes.
This crate does not provide any kind of gui, nor does it directly
manage a PTY; you provide a std::io::Write
implementation that
could connect to a PTY, and supply bytes to the model via the
advance_bytes
method.
The entrypoint to the crate is the Terminal struct.
License: MIT