mirror of
https://github.com/wez/wezterm.git
synced 2024-08-16 17:50:28 +03:00
A GPU-accelerated cross-platform terminal emulator and multiplexer written by @wez and implemented in Rust
This commit expands the set of data that we track for each client to include the SSH_AUTH_SOCK. This defaults to the value of that env var on the machine where the ClientId is constructed, which may be remote from the mux server. For the proxy scenario, a remote SSH_AUTH_SOCK path is not addressable, and what we really want is the local SSH_AUTH_SOCK path from that SSH session, so we introduce awareness of whether the current session is a proxy session. Proxy sessions register the mux-local-proxy-id during the setup of the proxy, but we don't apply the identity to the mux. Instead, we wait for the remote client to send their identity and that is annotate to show that it has been routed via a proxy and, crucially, has the SSH_AUTH_SOCK replaced with the mux-local-proxy-id SSH_AUTH_SOCK. ``` ; wezterm cli list-clients USER HOST PID CONNECTED IDLE WORKSPACE FOCUS SSH_AUTH_SOCK wez foo 336500 86.944834352s 944.834352ms default 3 /home/wez/.1password/agent.sock wez foo (via proxy pid 337457) 337314 1.944834352s 944.834352ms 4 /tmp/ssh-XXXXTfGSp7/agent.337456 ``` For the SSH_AUTH_SOCK to be populated, ssh agent forwarding also needs to be enabled for SSH exec() calls; previously it was enabled only for pty channels. Since this commit changes the ABI of the mux protocol, the codec version has been bumped. |
||
---|---|---|
.cargo | ||
.copr | ||
.github | ||
assets | ||
async_ossl | ||
base91 | ||
bidi | ||
bintree | ||
ci | ||
codec | ||
color-types | ||
config | ||
deps | ||
docs | ||
env-bootstrap | ||
filedescriptor | ||
frecency | ||
lfucache | ||
licenses | ||
lua-api-crates | ||
luahelper | ||
mux | ||
nix | ||
procinfo | ||
promise | ||
pty | ||
rangeset | ||
ratelim | ||
strip-ansi-escapes | ||
sync-color-schemes | ||
tabout | ||
term | ||
termwiz | ||
test-data | ||
umask | ||
vtparse | ||
wezterm | ||
wezterm-blob-leases | ||
wezterm-client | ||
wezterm-dynamic | ||
wezterm-font | ||
wezterm-gui | ||
wezterm-gui-subcommands | ||
wezterm-input-types | ||
wezterm-mux-server | ||
wezterm-mux-server-impl | ||
wezterm-open-url | ||
wezterm-ssh | ||
wezterm-toast-notification | ||
wezterm-version | ||
window | ||
.cirrus.yml | ||
.dockerignore | ||
.gitignore | ||
.gitmodules | ||
.mailmap | ||
.rustfmt.toml | ||
Cargo.lock | ||
Cargo.toml | ||
CONTRIBUTING.md | ||
get-deps | ||
LICENSE.md | ||
mkdocs_macros.py | ||
PRIVACY.md | ||
README-DISTRO-MAINTAINER.md | ||
README.md |
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
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!