mirror of
https://github.com/wez/wezterm.git
synced 2024-12-24 22:01:47 +03:00
b7771feef6
Neither of these understand image protocols, and both are an additional processing layer between the application and wezterm. This commit detects and wraps OSC sequences in tmux's passthru sequence so that the data is passed on to wezterm rather than elided from the data stream. For image protocols in both tmux and conpty, work a little smarter and explicitly move the cursor position to the same location that wezterm would move it to. That prevents the display from being as mangled by tmux/conpty due to a diverging understanding of the cursor position. The logic isn't perfect, and can result in the x-coordinate being incorrect, and this won't work with the new --position argument either in its current state, without adding a lot of complexity to deal with scrolling and relative and absolute positioning handling. To facilitate that, a new termwiz Terminal trait method has been added to probe the terminal name, version, cell and pixel dimensions. It's not pretty. refs: https://github.com/wez/wezterm/issues/3624 refs: https://github.com/wez/wezterm/issues/3716 |
||
---|---|---|
.. | ||
src | ||
Cargo.toml | ||
LICENSE.md | ||
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