1
1
mirror of https://github.com/wez/wezterm.git synced 2024-12-27 07:18:13 +03:00
Commit Graph

7964 Commits

Author SHA1 Message Date
Wanchang Ryu
efbafbc229 fix wrapped long line copy problem on tmux
wezterm ignores wrapped long line when alt screen is used and tmux uses
alt screen that makes copying wrapped long line into multiple lines.

After testing on sevaral tui apps like tmux, w3m, htop it seems to show
reasonable performance on resizing.

Fixes #5283
2024-05-09 14:35:26 -07:00
Wez Furlong
0711455135
add default_ssh_auth_sock option
This is useful (essential!) for fixing up the default auth sock
under gnome, as we do not have a way to do that via whatever
logic may be present in the shell startup files.
2024-05-09 14:27:03 -07:00
Wez Furlong
4af418fddd
mux: enable ssh agent forwarding
This is done with a wezterm twist: not only is the auth sock forwarded,
but the mux on the remote end will automatically maintain a symlink to
point to the auth sock of the most recently active mux client, and set
SSH_AUTH_SOCK to that symlink so that your remote panes should always be
referencing something sane.

refs: https://github.com/wez/wezterm/issues/1647
refs: https://github.com/wez/wezterm/discussions/988
2024-05-09 12:52:29 -07:00
Wez Furlong
6b93ee19e7
mux: record client ssh_auth_sock information
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.
2024-05-09 07:45:19 -07:00
Wez Furlong
f6fdfeb9fd
mux: ssh: add override_proxy_command to SshDomain
This enables users to override the normal invocation completely,
which is helpful for example when connecting into a gui from
a remote host.

I was wondering why prefer-mux was in here, and my commit message
from 7afc9e4d56 suggests that I
hit an issue where the gui wasn't running and where I didn't care
because I wanted to hit the mux.

I think that makes it a little awkward to blanket remove the
--prefer-mux flag, but for those that don't want it, they should now
be able to configure to allow connected to the gui

```
  ssh_domains = {
    {
      name = "shortname",
      remote_address = "hostname",
      override_proxy_command = "wezterm cli proxy",
    },
  },
```
2024-05-08 15:32:38 -07:00
Wez Furlong
6b66b6674a
mux: proxy: extract unix domain from connected client
This resolves an issue where `WEZTERM_UNIX_SOCKET=something wezterm cli
proxy` would use `something` for the unix domain path when checking that
an existing instance was up and running, but would then use the default
implicit socket path when dropping into the proxy passthrough stage.

What we do here is transform the connected client into its configuration
and use that instead of trying to re-derive the socket from incomplete
information.

The motivating example is using SSH to get into a workstation that
is running a GUI wezterm with no explicit unix domain mux.
2024-05-08 15:14:22 -07:00
Wez Furlong
d2fa4e9842
docs: changelog for https://github.com/wez/wezterm/pull/5345
refs: https://github.com/wez/wezterm/issues/1647
2024-05-08 08:14:13 -07:00
Riatre
9b811c7a16
Wire up agent forward for libssh backend (#5345)
* Wire up agent forward for libssh backend

TSIA.

There's a drive-by change in sftpwrap.rs for bumping to new libssh-rs.
2024-05-08 08:09:07 -07:00
Thayne McCombs
0b50725f67 Handle missing data device manager more gracefully 2024-05-06 14:52:55 -07:00
dependabot[bot]
8fa4ba9ace build(deps): bump base64 in the all group across 1 directory
Bumps the all group with 1 update in the / directory: [base64](https://github.com/marshallpierce/rust-base64).


Updates `base64` from 0.21.7 to 0.22.1
- [Changelog](https://github.com/marshallpierce/rust-base64/blob/master/RELEASE-NOTES.md)
- [Commits](https://github.com/marshallpierce/rust-base64/compare/v0.21.7...v0.22.1)

---
updated-dependencies:
- dependency-name: base64
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-05 17:59:15 -07:00
Wez Furlong
265b85be1d
update image to 0.25
This improves how non-conforming jpegs are decoded and displayed.

refs: https://github.com/wez/wezterm/issues/5365
2024-05-05 16:14:46 -07:00
Wez Furlong
ec438e714c
deps: update harfbuzz to 8.4.0 2024-05-05 14:26:46 -07:00
Jonathan Cammisuli
9d83458632 add PSUEDOCONSOLE_INHERIT_CURSOR as a flag 2024-05-05 14:17:24 -07:00
Jonathan Cammisuli
454ec0a7df windows: set PSEUDOCONSOLE_INHERIT_CURSOR 2024-05-05 14:17:24 -07:00
Wez Furlong
c02973b852
docs: changelog for #5033 2024-05-05 14:07:36 -07:00
Wez Furlong
962ba3af6e
ringlog: suppress tracing, zbus INFO logs
Something changed recently in those crates to make them log
a bunch of info logs fairly often; suppress them from our
default log filter.
2024-05-05 14:07:08 -07:00
Jeffrey Knockel
809bcc55a5 x11: fix window contents jumping on async resize
We can't hope to keep the renderer's idea of the window size consistent
with the actual window size when the user can asynchronously change its
size at any moment. Therefore, we create a child window which we render
to and which we synchronously resize in response to async resizes. Since
by default the contents of X11 windows are undefined on resize, we take
the additional steps of setting our windows' X11 background color and
bit gravity as appropriate.
2024-05-05 14:06:46 -07:00
Martin Nowak
d70624b169 fix #4985 - reimplement get_appearance for wayland
- was dropped with wayland reimplementation (#4777, 3eaba4e3d6)
- get appearance from xdg desktop portal
- advise all windows of appearance changes to reload config
2024-05-05 13:50:45 -07:00
Glenn Waters
888366a15d
Add missing docs, fix typo, bring to attention error. (#5150)
* Update swallow_mouse_click_on_window_focus.md

Fix typo.

* Update appearance.md

URL in docs is no longer value. As a placeholder I put in the file where color_schemes can be found. I'm thinking that's not the right fix, but there is now awareness of the broken URL.

* Update window_frame.md

Add font and font_size description for window_frame.

* Update window_frame.md

Fix typo
2024-05-05 13:47:14 -07:00
Wez Furlong
06139c11c0
docs: changelog for #4503 #5163
closes: https://github.com/wez/wezterm/issues/4503
2024-05-05 13:45:27 -07:00
emc2314
c2fb3cb760
Fix SSH config %h using Host (#5163)
* Fix SSH config %h using Host

* Fix test and use workaround for 2nd pass parsing

* Better implementation from @wheatdog
2024-05-05 13:43:52 -07:00
Wez Furlong
952af2e6e1
docs: changelog for #5051 #5169 2024-05-05 13:32:37 -07:00
Wez Furlong
25257c6b38
rustfmt 2024-05-05 13:30:42 -07:00
stribor14
1dd5d6deac
Refactoring custom glyph drawing 2024-05-05 13:26:57 -07:00
stribor14
5f55624468
Cell diagonals 2024-05-05 13:26:57 -07:00
stribor14
4b04752ee5
Fill characters 2024-05-05 13:26:57 -07:00
stribor14
536767dc23
Shade characters 2024-05-05 13:26:57 -07:00
stribor14
26ec91d4e6
Rename Edge to Block, add 'Block Elements' 2024-05-05 13:26:57 -07:00
stribor14
314cb75a77
Smooth mosaic terminal graphic characters (quarter triangles) 2024-05-05 13:26:57 -07:00
stribor14
a38793110c
Smooth mosaic terminal graphic characters 2024-05-05 13:26:57 -07:00
Wez Furlong
0130c9960b
docs: changelog for #5306 2024-05-05 13:17:52 -07:00
Quan Tong
ba25f7df78 make activate-pane CLI honor unzoom_on_switch_pane 2024-05-05 13:16:50 -07:00
Wez Furlong
18d643510f
docs: changelog for #5362 #5348 2024-05-05 13:10:36 -07:00
Kushagra Gupta
d9455a45fe fixed the issue #5348 and a typo
Fixed the issue #5348 for windows by setting margins check for window decoration instead and using value 0 margin for only the TITLE style
2024-05-05 13:09:14 -07:00
Wez Furlong
65a84ddd60
docs: update for x11 dnd
closes: https://github.com/wez/wezterm/pull/5316
closes: https://github.com/wez/wezterm/issues/640
2024-05-05 13:05:53 -07:00
Wez Furlong
1598579551
x11: refactor x11 dnd a little
Reduce some nesting and make it a little easier to follow.

refs: https://github.com/wez/wezterm/pull/5316
2024-05-05 13:02:40 -07:00
Stefan Siegel
3d511bbd67
Accept drag and drop of URLs from browsers and plain text on X11
For filenames and urls an additional space is inserted after the last
item to enable adding more files and urls with another drag-and-drop
operation without the need to manually enter the space in between.
2024-05-05 12:48:09 -07:00
Stefan Siegel
b888c547db
Implement drag and drop for X11
This is the last platform to resolve #640
2024-05-05 12:48:06 -07:00
Benoit de Chezelles
e1755f369c chore: Fix Nix build after recent dependencies updates
The issue comes from 8c9ab05fb4 which
changed where `sqlite-cache` is retrieved from:
```diff
diff --git a/sync-color-schemes/Cargo.toml b/sync-color-schemes/Cargo.toml
index b1cc34f8a..0fbf28059 100644
--- a/sync-color-schemes/Cargo.toml
+++ b/sync-color-schemes/Cargo.toml
-sqlite-cache = "0.1.3"
+sqlite-cache = {git="https://github.com/losfair/sqlite-cache", rev="0961b50385ff189bb12742716331c05ed0bf7805" }
```
When a dependency is retrieved from git, Nix needs the resulting hash in
Nix format (a combination of sha256 + Nix stuff), hence this change.
2024-05-05 07:04:47 -07:00
Pi-Cla
ee61e61e4f
[PATCH] Fix various cargo audit errors
closes: https://github.com/wez/wezterm/pull/5206
2024-05-04 22:47:57 -07:00
Wez Furlong
030596a2d4
rustfmt 2024-05-04 22:24:34 -07:00
Wez Furlong
7f35aac7a9
sync-color-schemes: fix mis-parse of color schemes
Double check that what we got looked enough like
our data when reading from a toml file
2024-05-04 22:01:00 -07:00
Wez Furlong
f01397ead3
sync color schemes
refs: https://github.com/wez/wezterm/pull/5232
2024-05-04 17:40:56 -07:00
jrreed
e3f1cf6f44 Eldritch theme
done
2024-05-04 17:36:22 -07:00
Wez Furlong
9070d4cb6d
windows: speculative compile fix for termwiz
refs: #5020
2024-05-04 17:15:35 -07:00
Wez Furlong
2eac806d8c
deps: rstest to 0.19 2024-05-04 17:12:55 -07:00
Wez Furlong
d22e97dcef
deps: update hostname to 0.4 2024-05-04 17:11:47 -07:00
Wez Furlong
9fe8daaaa8
deps: update reqwest to 0.12 2024-05-04 17:07:29 -07:00
Wez Furlong
c4021d2109
deps: remove yaml-rust in favor of serde-yaml 2024-05-04 17:05:12 -07:00
Wez Furlong
cab8523f85
deps: update starship battery 2024-05-04 17:01:24 -07:00