mirror of
https://github.com/wez/wezterm.git
synced 2024-12-24 22:01:47 +03:00
A GPU-accelerated cross-platform terminal emulator and multiplexer written by @wez and implemented in Rust
b908e2dd8c
The heart of the issue here was due to the window-reuse logic that tries to reuse a GUI window that is no longer associated with a mux window. Each GUI window subscribes to the mux for mux events, but it filters according to is understanding of the mux_window_id that it is associated with. The GUI frontend maintains an mapping of GUI and mux window so that it knows when to reuse a GUI window and when to close it. When connecting to a remote mux, wezterm spawns a temporary connection progress window. Once connected, workspace reconiliation is triggered and decides that this window can be used for something else. As part of workspace reconciliation, this mapping can be adjusted and the frontend will notify a GUI window that its mux window has changed. However, that updated mux window was not visible to the mux notification subscription so the effect was that a variety of notifications were effectively ignored, including updates from a remote mux when the output was changed. To make matters worse, the workspace reconciliation could "double-tap" window creation and create excess windows only to later realize they weren't needed and close them out again. This commit addresses both of these concerns. refs: #1841 refs: #1814 |
||
---|---|---|
.cargo | ||
.github | ||
assets | ||
async_ossl | ||
base91 | ||
bidi | ||
bintree | ||
ci | ||
codec | ||
color-types | ||
config | ||
deps | ||
docs | ||
env-bootstrap | ||
filedescriptor | ||
licenses | ||
luahelper | ||
mux | ||
procinfo | ||
promise | ||
pty | ||
rangeset | ||
ratelim | ||
strip-ansi-escapes | ||
tabout | ||
term | ||
termwiz | ||
test-data | ||
umask | ||
vtparse | ||
wezterm | ||
wezterm-client | ||
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.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.