1
1
mirror of https://github.com/wez/wezterm.git synced 2024-11-10 06:34:17 +03:00
A GPU-accelerated cross-platform terminal emulator and multiplexer written by @wez and implemented in Rust
Go to file
Wez Furlong b908e2dd8c mux: fix update issue
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
2022-04-08 10:15:18 -07:00
.cargo build static on windows for static openssl linkage 2020-02-02 13:03:07 -08:00
.github docs: adopt mermaid-js for flowchart 2022-04-03 22:09:17 -07:00
assets sync color schemes 2022-03-30 20:46:34 -07:00
async_ossl Raise minimum Rust version to 1.51, de-vendor openssl on unix 2021-03-25 09:43:50 -07:00
base91 dyn everywhere 2019-06-08 21:28:11 -07:00
bidi deps: remove pretty_env_loggger 2022-04-07 08:24:07 -07:00
bintree bintree: clippy lint 2021-03-26 09:01:54 -07:00
ci logging: use our own custom logger 2022-04-07 09:51:00 -07:00
codec palette now stores alpha for all color values 2022-04-08 07:08:33 -07:00
color-types palette now stores alpha for all color values 2022-04-08 07:08:33 -07:00
config palette now stores alpha for all color values 2022-04-08 07:08:33 -07:00
deps deps: harfbuzz -> 4.2.0 2022-04-03 18:37:25 -07:00
docs docs: changelog for https://github.com/wez/wezterm/pull/1840 2022-04-08 07:51:57 -07:00
env-bootstrap ignore errors when writing to logs 2022-04-08 07:32:03 -07:00
filedescriptor filedescriptor: bump version for package publish 2022-01-21 17:08:23 -07:00
licenses macOS: bundle and use MetalANGLE to enable Metal rendering 2020-10-17 09:34:01 -07:00
luahelper more robust cycle detection when debug printing lua values 2022-03-17 09:41:29 -07:00
mux Improve exit_behavior messaging some more 2022-04-06 17:53:46 -07:00
procinfo windows: procinfo: extra defensive coding around reading proc info 2022-04-05 08:54:05 -07:00
promise wezterm-gui start now prefers to run via existing gui instance 2022-01-07 17:12:35 -07:00
pty and this time with feeling! 2022-04-06 19:58:45 -07:00
rangeset Speedup font loading with fontconfig and freetype. 2021-09-06 10:53:01 -07:00
ratelim move ratelim to its own crate 2020-10-03 11:15:57 -07:00
strip-ansi-escapes Fix typo in strip-ansi-escapes --help output 2022-01-18 06:18:15 -08:00
tabout termwiz: prep for crates.io 2022-04-07 07:27:54 -07:00
term palette now stores alpha for all color values 2022-04-08 07:08:33 -07:00
termwiz palette now stores alpha for all color values 2022-04-08 07:08:33 -07:00
test-data x11: window icon had red/blue channels swapped 2022-03-23 07:01:26 -07:00
umask Take care to restore the original umask 2021-01-07 09:20:13 -08:00
vtparse vtparse: bump version for UB fix 2022-04-07 07:28:21 -07:00
wezterm record: add more metadata, change filename suffix to .txt 2022-03-25 09:46:24 -07:00
wezterm-client mux: fix update issue 2022-04-08 10:15:18 -07:00
wezterm-font deps: remove pretty_env_loggger 2022-04-07 08:24:07 -07:00
wezterm-gui mux: fix update issue 2022-04-08 10:15:18 -07:00
wezterm-gui-subcommands flesh out % based and named display for positioning on Windows 2022-04-02 11:11:28 -07:00
wezterm-input-types input: normalize_ctrl shouldn't turn CTRL-Tab into Ctrl-i 2022-04-07 06:47:15 -07:00
wezterm-mux-server thread original umask through when spawning mux server 2022-02-11 10:00:09 -07:00
wezterm-mux-server-impl mux: suppress error messages when client disconnects 2022-04-06 22:23:42 -07:00
wezterm-ssh deps: remove pretty_env_loggger 2022-04-07 08:24:07 -07:00
wezterm-toast-notification fix hang with open crate when spawning the browser 2022-03-15 07:50:08 -07:00
window wayland: improve touchpad scroll precision 2022-04-08 07:50:47 -07:00
.cirrus.yml Ensure /run/sshd exists, explicitly set username in sshd fixture, add back use_privilege_mode no 2021-10-10 14:54:45 -07:00
.gitignore docs: adopt mermaid-js for flowchart 2022-04-03 22:09:17 -07:00
.gitmodules repoint to my freetype mirror 2021-02-03 21:56:30 -08:00
.rustfmt.toml encoding my preferred import grouping in the rustfmt config 2022-01-17 13:50:51 -07:00
Cargo.lock logging: use our own custom logger 2022-04-07 09:51:00 -07:00
Cargo.toml Add wezterm-bidi crate 2022-01-24 19:29:03 -07:00
CONTRIBUTING.md Add get-deps script for installing dependencies 2018-02-25 09:24:56 -08:00
get-deps debian needs randr package 2022-04-02 23:09:39 -07:00
LICENSE.md Bundle Symbols Nerd Font Mono 2022-01-16 16:04:35 -07:00
README.md Update wording in README.md 2021-05-19 19:08:57 -07:00
wt-record fixup wt-record on darwin 2021-03-20 20:14:17 -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:

  • 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.