1
1
mirror of https://github.com/wez/wezterm.git synced 2024-12-24 05:42:03 +03:00
A GPU-accelerated cross-platform terminal emulator and multiplexer written by @wez and implemented in Rust
Go to file
Wez Furlong 9e6abce963 mux: adjust pty output buffering/reading
I've had a few people comment that the screen repaints stutter
more since the most recent release.

One of the main changes in that area was to increase throughput
for timg case, where a lot of data was being pumped through.

I think that, ironically, the decreased latency results in more
frequent repaints where not all of the updated screen is visible
in a full screen redraw, so it appears more janky.

This commit introduces a small 1ms delay to see if additional
output is forthcoming when parsing the data.  It will keep
delaying and accumulating until there's at least one parsed
output action to process, so there is a small constant latency
overhead added to a single character output (thread context
switch + 1ms delay).

This small delay is counter-balanced with raising the priority
of dispatching the render actions; previously we'd spawn them
at lower-than-input priority.  With the batching potential,
I think spawning them at the same priority is OK; the main
reason for the lower priority was to ensure timely ctrl-c
processing when a lot of output is being dumped to the terminal.

It's hard for me to gauge whether this fixes the reported issue,
as I've been unable to reproduce it for myself.

refs: https://github.com/wez/wezterm/issues/559
refs: https://github.com/wez/wezterm/issues/546
2021-03-19 22:12:29 -07:00
.cargo build static on windows for static openssl linkage 2020-02-02 13:03:07 -08:00
.github issue template: mention collectin the keyboard layout too 2021-03-02 09:13:41 -08:00
assets Bundle PowerlineExtraSymbols as a fallback font 2021-03-06 19:12:35 -08:00
async_ossl fixup tls mux sessions 2020-10-04 21:47:12 -07:00
base91 dyn everywhere 2019-06-08 21:28:11 -07:00
bintree wezterm: improve pane resize logic 2020-09-27 16:07:08 -07:00
ci fixup build to not consider termwiz tags as wezterm tags 2021-03-17 21:02:03 -07:00
codec OSC 52: update it so that it we respect primary vs. clipboard selection 2021-02-08 08:56:06 -08:00
config fixup build to not consider termwiz tags as wezterm tags 2021-03-17 21:02:03 -07:00
deps bump freetype dep to VER-2-10-4 2021-01-25 21:35:47 -08:00
docs docs: changelog for #556 2021-03-19 09:29:58 -07:00
env-bootstrap use $WEZTERM_LOG to configure log levels ad-hoc 2020-12-23 12:19:19 -08:00
filedescriptor fix filedescriptor::poll on macos 2020-09-10 13:58:14 -07:00
licenses macOS: bundle and use MetalANGLE to enable Metal rendering 2020-10-17 09:34:01 -07:00
luahelper add window:set_config_overrides lua method 2021-02-27 14:53:19 -08:00
mux mux: adjust pty output buffering/reading 2021-03-19 22:12:29 -07:00
promise deps: misc updates 2020-12-29 09:24:34 -08:00
pty window: fix ToggleFullScreen on Windows 2021-02-26 19:39:35 -08:00
rangeset deps: misc updates 2020-12-29 09:24:34 -08:00
ratelim move ratelim to its own crate 2020-10-03 11:15:57 -07:00
strip-ansi-escapes move strip-ansi-escapes into its own crate 2020-10-03 11:15:57 -07:00
tabout avoid excess capacity when dealing with iterm2 image protocol 2021-03-13 08:10:48 -08:00
term more thorough ctrl key mapping 2021-03-19 09:18:19 -07:00
termwiz termwiz: shrink-to-fit Line::cells when clearing the line 2021-03-13 08:25:09 -08:00
test-data Render custom block glyphs 2021-02-28 09:43:26 -08:00
tmux-cc tmux: attach control mode parser to terminal 2020-11-20 09:24:50 -08:00
umask Take care to restore the original umask 2021-01-07 09:20:13 -08:00
vtparse Use const fn instead of recursive macro 2021-01-22 12:09:07 -08:00
wezterm improve output parsing performance and throughput 2021-03-13 19:19:05 -08:00
wezterm-client improve output parsing performance and throughput 2021-03-13 19:19:05 -08:00
wezterm-font deps: update ttf_parser 0.9 -> 0.12 2021-03-18 22:08:07 -07:00
wezterm-gui gui: avoid doing work when WM sends spurious resize events 2021-03-19 08:11:39 -07:00
wezterm-gui-subcommands remove --front-end CLI option 2021-02-27 23:59:04 -08:00
wezterm-input-types windows: implement decoration setting, change to bitfield 2021-03-04 09:40:38 -08:00
wezterm-mux-server add --config name=value CLI options 2021-02-27 10:53:45 -08:00
wezterm-mux-server-impl term: plumb Bell through toast notification channel 2021-02-18 22:34:05 -08:00
wezterm-toast-notification toast: hook up action/event handling on Windows 2021-03-14 15:23:42 -07:00
window x11: preserve SHIFT modifier for control characters 2021-03-16 18:32:49 -07:00
.cirrus.yml ci: refine cirrus skip condition 2021-02-07 09:51:55 -08:00
.gitignore docs: for the new status bar feature 2021-03-10 19:29:17 -08:00
.gitmodules repoint to my freetype mirror 2021-02-03 21:56:30 -08:00
.rustfmt.toml Make rustfmt happy about "async move" 2020-01-20 13:58:21 -08:00
Cargo.lock cargo update 2021-03-18 22:08:40 -07:00
Cargo.toml cargo update to pick up mlua 5.0.1 and the cross compilation fixes 2021-01-20 20:16:30 -08:00
CONTRIBUTING.md Add get-deps script for installing dependencies 2018-02-25 09:24:56 -08:00
get-deps openSUSE support (tested on Tumbleweed 20210317) 2021-03-19 08:00:08 -07:00
LICENSE.md wezterm: bundle JetBrains Mono and Noto Color Emoji fonts 2020-09-29 22:05:18 -07:00
README.md update for rename of master branch -> main 2021-02-03 21:34:12 -08:00
wt-record make it a bit easier to consume wt-record 2020-06-12 08:51:15 -07:00
wt-replay update record/play scripts for macos 2019-03-22 20:41:50 -07:00

Wez's Terminal

WezTerm Icon 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

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:

The GitHub Discussions and Element/Gitter rooms are better suited to questions than it is to bug reports, but don't be afraid to use whichever you are most comfortable using and we'll work it out.