1
1
mirror of https://github.com/wez/wezterm.git synced 2024-11-29 21:44:24 +03:00
Commit Graph

8075 Commits

Author SHA1 Message Date
Wez Furlong
55de5b0e4e
update xcb-imdkit to pick up more from_raw_parts related fixes
refs: https://github.com/wez/xcb-imdkit-rs/pull/1
2024-05-11 07:12:06 -07:00
Jeffrey Knockel
79ce027d38 x11: fix exposures on child window
We should watch the child window for exposure events, not the parent
window (the parent window is just a background color and we never paint
to it).

This was a regression from commit 809bcc55.

Fixes #5405.
2024-05-10 13:39:48 -07:00
Wez Furlong
ca27f921e2
wezterm cli list-clients: add ssh_auth_sock to json, tidy up duration
Make longer durations a bit more intelligible.
Add the auth sock to the json format output from the command.
2024-05-10 08:27:05 -07:00
Wez Furlong
e19def7c9a
codec: improve error messaging when remote is misconfigured
Work a bit harder to surface that the remote might be outputting
stuff to stdout.

closes: https://github.com/wez/wezterm/issues/5380
2024-05-10 06:24:20 -07:00
Wez Furlong
107dd67bf2
docs: changelog for #5393 2024-05-10 05:50:45 -07:00
Daniel Berlin
5b0b657b30 Update wayland keymap handling for protocol 7+.
Newer wayland protocol expects us to mmap the keymap file
descriptor (and do so with certain mmap flags).

The current code tries to handle both normal files and pipes,
but neither will work in some cases.

This updates the code to use xkbcommon's new_from_fd,
which is what the toolkit uses, and mmap's the file.

This fixes #5393, which was caused by hanging when
trying to read the file as if it was a pipe.
2024-05-10 05:49:09 -07:00
Wez Furlong
91a16e5224
remove unused local
this should have happened in efbafbc229
2024-05-09 22:30:25 -07:00
Jeffrey Knockel
814857cd69 x11: fix positioning with --position arg
The child window should always have position 0,0.

This was a regression from commit 809bcc55.

Fixes #5395.
2024-05-09 16:48:06 -07:00
Benoit de Chezelles
23e7c14a98 Revert freetype2 to commit hash (was not actually at a tag 👀) 2024-05-09 14:39:28 -07:00
Benoit de Chezelles
b08d2e0173 chore(nix): Update refs to submodules & explain why this is needed 2024-05-09 14:39:28 -07:00
Wez Furlong
31ca8205b7
docs: changelog for #5396 #5283 2024-05-09 14:37:07 -07:00
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