mirror of
https://github.com/wez/wezterm.git
synced 2024-11-24 16:08:34 +03:00
A GPU-accelerated cross-platform terminal emulator and multiplexer written by @wez and implemented in Rust
7caaf136e4
It's not the first time that I've solved a problem by slowing things down... in this situation, a couple of very inefficient TUI programs had flickering outputs in wezterm because they were filling a buffer with a bunch of spaces to erase a screen before sending the main body of their updates in a subsequent buffer chunk. wezterm would render the intervening partially blank frame and appear to flicker. The resolution is to add a small delay (3ms by default) before sending data to the terminal model. If the output is readable in that time we'll accumulate it with the pending set of actions so that the whole batch can be applied "more atomically". Take care: `time cat bigfile` is sensitive to this, so we want to keep the latency as small as possible, and we also want to avoid accumulating actions and only flushing them at the end of the file. We use the existing buffer size (~1MB) as a threshold: we bump a count of the number of input bytes that resulted in the current set of actions, and if that exceeds that buffer size we flush it. refs: https://github.com/wez/wezterm/issues/2443 |
||
---|---|---|
.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!