1
1
mirror of https://github.com/wez/wezterm.git synced 2024-07-14 17:40:26 +03:00
Commit Graph

8056 Commits

Author SHA1 Message Date
Wez Furlong
44b61d7e82
wezterm-uds: impl AsRawSocket 2024-05-13 18:40:50 -07:00
Wez Furlong
0fcd4a847c
move uds stuff into new wezterm-uds crate
This centralizes the conditional imports and makes a home
for the IoSafe trait annotation for smol/async-io compat.
2024-05-13 17:56:57 -07:00
Wez Furlong
a597803c13
windows: fixup for newer libloading 2024-05-13 15:54:14 -07:00
Wez Furlong
6b493ecd18
windows: another run at fixing up the build 2024-05-13 15:09:48 -07:00
Wez Furlong
dd80aca72a
filedescriptor: fix windows build 2024-05-13 14:14:47 -07:00
Wez Furlong
a1db8a2f46
deps: missed a cocoa 2024-05-13 14:12:48 -07:00
Wez Furlong
ee78f86293
deps: update macos specific packages 2024-05-13 14:10:09 -07:00
mirror-kt
b1af9e873b nix: allowBuiltinFetchGit = true 2024-05-13 14:01:11 -07:00
Wez Furlong
ccc32faaba
speculative windows build fix 2024-05-13 13:58:26 -07:00
Wez Furlong
eb6fc75a17
termwiz: remove semver dep
The newer version is much more strict about its inputs
and we're dealing with all sorts of weirdness as input
from the environment, so let's just roll our own simple
solution.
2024-05-13 13:03:44 -07:00
Wez Furlong
1f33b35932
add Makefile
This enables `make fmt` which is how I usually run fmt in other
repos and works better with my ctrl-R and muscle memory.
2024-05-13 12:46:23 -07:00
Wez Furlong
2a068cacb7
deps: update terminfo 2024-05-13 12:29:19 -07:00
Wez Furlong
b07ebd4f09
termwiz: nix requires fs + mman for shm_open 2024-05-13 12:28:07 -07:00
Wez Furlong
de10834b6d
add X11 Qtile to tiling_desktop_environments
closes: https://github.com/wez/wezterm/issues/5415
2024-05-13 12:22:47 -07:00
Wez Furlong
723f062d0d
deps: update strsim 2024-05-13 12:20:09 -07:00
Wez Furlong
26cd8bebca
termwiz deps: update semver 2024-05-13 12:19:56 -07:00
Wez Furlong
7af8290231
deps: update/dedup num, num-derive 2024-05-13 11:58:52 -07:00
Wez Furlong
0f03117776
deps: update miniz-oxide 2024-05-13 11:55:58 -07:00
Wez Furlong
84bb2fdc46
deps: dedup some nix versions 2024-05-13 11:53:27 -07:00
Wez Furlong
90822d64a3
deps: remove duplicate memmap2 2024-05-13 11:45:47 -07:00
Wez Furlong
6ad0da98d8
deps: remove smol-potat, update futures-lite
smol-potat hasn't had updates in 4 years and was bifurcating some
big deps.  It wasn't necessary; it was trivially easy to replace
with smol::block_on with no meaningful increase in boilerplate,
and the result is much more understandable in purpose and effect.
2024-05-13 11:43:10 -07:00
Wez Furlong
944e0b29b6
deps: update to new filenamegen 2024-05-13 11:19:33 -07:00
Wez Furlong
70c4e03750
deps: update flume 2024-05-13 10:29:12 -07:00
Wez Furlong
1ca5e6cc90
deps: upgrade smol to 2.0 2024-05-13 10:26:29 -07:00
Wez Furlong
421ce4f0e1
deps: update zbus 2024-05-13 09:56:11 -07:00
Wez Furlong
c6ffe92853
deps: remove a duplicate version of libloading 2024-05-13 09:45:45 -07:00
Wez Furlong
6c890c3995
update metrics to latest version (0.22) 2024-05-13 09:41:12 -07:00
Wez Furlong
281b6e2740
deps: update metrics to a more recent version
This isn't the latest version of metrics; it's just a more recent
version that allows us to remove a duplicate ahash dependency from the
build graph.
2024-05-13 09:41:11 -07:00
Wez Furlong
14d426fea8
add cargo deny config, update lru 2024-05-13 08:29:36 -07:00
Wez Furlong
c4c6b723c0
cargo update 2024-05-13 07:19:47 -07:00
Wez Furlong
f0e62d26f3
update libssh-rs 2024-05-13 07:19:17 -07:00
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