mirror of
https://github.com/wez/wezterm.git
synced 2024-09-20 11:17:15 +03:00
A GPU-accelerated cross-platform terminal emulator and multiplexer written by @wez and implemented in Rust
d5d161b510
Adds the option to use an alternative clusted line storage for the cells component of the line. This structure is not optimal for mutation, but is better structured for: * matching/extracting textual content * using less memory than the prior simple vector For some contrast: the line "hello" occupies 5 Cells in the cell based storage; that 5 discrete Cells each with their own tiny string and a copy of their attributes. The clustered version of the line stores one copy of the cell attributes, the string "hello" and some small (almost constant size) overhead for some metadata. For simple lines of ascii text, the clustered version is smaller as there are fewer copies of the cell attributes. Over the span of a large scrollback and typical terminal display composition, this saving is anticipated to be significant. The clustered version is also cheaper to search as it doesn't require building a copy of the search text for each line (provided the line is already in clustered form). This commit introduces the capability: none of the internals request the new form yet, and there are likely a few call sites that need to be tweaked to avoid coersion from clustered to vector form. |
||
---|---|---|
.cargo | ||
.github | ||
assets | ||
async_ossl | ||
base91 | ||
bidi | ||
bintree | ||
ci | ||
codec | ||
color-types | ||
config | ||
deps | ||
docs | ||
env-bootstrap | ||
filedescriptor | ||
licenses | ||
lua-api-crates | ||
luahelper | ||
mux | ||
procinfo | ||
promise | ||
pty | ||
rangeset | ||
ratelim | ||
strip-ansi-escapes | ||
sync-color-schemes | ||
tabout | ||
term | ||
termwiz | ||
test-data | ||
umask | ||
vtparse | ||
wezterm | ||
wezterm-client | ||
wezterm-dynamic | ||
wezterm-font | ||
wezterm-gui | ||
wezterm-gui-subcommands | ||
wezterm-input-types | ||
wezterm-mux-server | ||
wezterm-mux-server-impl | ||
wezterm-ssh | ||
wezterm-toast-notification | ||
window | ||
.cirrus.yml | ||
.gitignore | ||
.gitmodules | ||
.rustfmt.toml | ||
Cargo.lock | ||
Cargo.toml | ||
CONTRIBUTING.md | ||
get-deps | ||
LICENSE.md | ||
README-DISTRO-MAINTAINER.md | ||
README.md | ||
wt-record | ||
wt-replay |
Wez's Terminal
A GPU-accelerated cross-platform terminal emulator and multiplexer written by @wez and implemented in Rust
User facing docs and guide at: https://wezfurlong.org/wezterm/
Screenshot of wezterm on macOS, running vim
Installation
https://wezfurlong.org/wezterm/installation.html
Getting help
This is a spare time project, so please bear with me. There are a couple of channels for support:
- You can use the GitHub issue tracker to see if someone else has a similar issue, or to file a new one.
- Start or join a thread in our GitHub Discussions; if you have general questions or want to chat with other wezterm users, you're welcome here!
- There is a Matrix room via Element.io for (potentially!) real time discussions.
The GitHub Discussions and Element/Gitter rooms are better suited for questions than bug reports, but don't be afraid to use whichever you are most comfortable using and we'll work it out.
Supporting the Project
If you use and like WezTerm, please consider sponsoring it: your support helps to cover the fees required to maintain the project and to validate the time spent working on it!