1
1
mirror of https://github.com/wez/wezterm.git synced 2024-12-18 02:42:05 +03:00
Commit Graph

7313 Commits

Author SHA1 Message Date
Wez Furlong
750f49f0ae
deps: upgrade mlua to 0.9.0-rc.1
refs: https://github.com/khvzak/mlua/issues/291
refs: #3849
2023-07-12 14:14:55 -07:00
Wez Furlong
af6134df4f
docs: fedora 35 is no longer supported 2023-07-12 12:59:37 -07:00
Wez Furlong
dfd1bb0ea4
docs: update for available linux builds
refs: https://github.com/wez/wezterm/issues/3973
2023-07-12 12:57:19 -07:00
Wez Furlong
719a513d0b
ci: add debian 12
refs: https://github.com/wez/wezterm/issues/3973
2023-07-12 12:02:47 -07:00
Wez Furlong
cc567ab464
ci: don't use release mode for tests
The original thinking was that it would be quicker to reuse
the existing release mode deps, but I'm not sure if that is
still true, so let's test it to see.

At the time of writing, the test phase takes 8-12 minutes depending
on the OS, with most of that being compilation.
2023-07-12 08:35:14 -07:00
Wez Furlong
5d1136d29b
Revert "front_end defaults to OpenGL again"
This reverts commit f4abf8fde7 so that
webgpu is the default again in nightly builds
2023-07-12 07:47:12 -07:00
Wez Furlong
35df521f76
docs: update for release 2023-07-12 07:46:13 -07:00
Wez Furlong
f4abf8fde7
front_end defaults to OpenGL again
Feels safest to do this until we can make a smoother fallback
experience for webgpu.

I will revert this after tagging the release so that nightly
runs webgpu by default.
2023-07-12 07:26:01 -07:00
Wez Furlong
28dcea0ab6
deps: harfbuzz -> 8.0.1 2023-07-12 06:37:34 -07:00
Wez Furlong
523660c192
lua: suppress userdata is not expected type error in repl
When printing built-in-to-lua userdata, avoid tripping over
an error message from mlua.

refs: https://github.com/khvzak/mlua/issues/291
refs: https://github.com/wez/wezterm/issues/3849
2023-07-11 10:27:30 -07:00
Wez Furlong
c7ff432581
mux server: register additional domains
Relocate the helper function to mux-server-impl and have both the GUI
and the mux server call it at the appropriate times.

Introduce default_mux_server_domain which is used instead of
default_domain in the mux server.  This is to avoid recursive
cycles when starting up the mux; we don't want the default
domain to be a unix client that connects to our selves because
we'll try to connect to ourselves, then in act of handling that
spawn in the default domain and try to connect to ourselves and
repeat.

refs: https://github.com/wez/wezterm/issues/3907
2023-07-11 09:34:34 -07:00
Wez Furlong
46e14461eb
mux: improve domain name is invalid error message
refs: #3907
2023-07-11 08:11:39 -07:00
Wez Furlong
51294e03c1
docs: link tab:set_title to PromptInputLine example 2023-07-11 06:56:13 -07:00
Wez Furlong
64c3759091
docs: fix see-also list
mkdocs is a bit particular about markdown list syntax
2023-07-10 22:54:06 -07:00
Wez Furlong
58434ef685
docs: faq: add note about macos and sparse default path 2023-07-10 22:48:22 -07:00
Wez Furlong
cbccbd3478
wayland: speculative fix for reading keymap from a pipe on chromebook
refs: #3958
2023-07-10 20:19:20 -07:00
Wez Furlong
d07ec3e8bb
docs: changelog for #3674 2023-07-10 17:17:39 -07:00
Magnus Groß
087e11ebbb Drop duplicate entries from CharSelect menu
Previously the same emoji was able to appear multiple times in the
CharSelect modal for emoji input, because one emoji might have multiple
aliases. In fact, often the aliases have similar names, making it
especially likely that a fuzzy match matches multiple aliases at the
same time.

The same Unicode char may even match multiple times both as
Character::Unicode as well as a Character::Emoji.

To make the deduplication easy, store the results in a hash map instead
of a vector. We use the glyph as the key of the map to get free
deduplication.

Only update the mapped value, if a duplicate entry would improve the
score.

Performance-wise this is pretty much identical to the previous state.
We do see minor performance regression for very large n - granted, this
is expected as we do more work - but the use of the HashMap covers up
for a large part of it.

If the user types more than 3 characters, the performance is absolutely
identical. For less than 3 characters, the performance was unacceptable
anyway (700 ms before this patch, 800 ms after this patch on my system).

Here is a side-by-side comparison for a user iteratively typing the
query "no-evil":

#  Before         After
1  718.361276ms   837.612275ms
2  719.532450ms   816.348394ms
3  349.625101ms   369.726458ms
4  356.349671ms   354.367768ms
5  363.862194ms   361.985546ms
6  372.339582ms   370.022932ms
7  381.123785ms   378.349672ms

In fact, for small n, the hash map seems to perform even slightly better
than the vector.
For large n we need to optimize the performance anyway, as both 700ms
and 800ms are unacceptable.
Thus, this is worth it for the benefit of Unicode symbol deduplication.
2023-07-10 17:16:23 -07:00
Wez Furlong
b9c23d19a1
new exit_behavior_messaging option
Controls the message that is shown when holding a pane open
after a process has completed.

refs: #3423
2023-07-10 17:14:48 -07:00
Wez Furlong
be6a350668
docs: changelog for #3856 2023-07-10 12:56:08 -07:00
Rémi Labeyrie
da2c035ad2 feat: handle horizontal mousewheel events 2023-07-10 12:55:13 -07:00
Wez Furlong
2035ad4de3
x11: remove diagnostic print of kbd layouts
It seems that the library is a bit wonky; see:
https://github.com/wez/wezterm/issues/3882#issuecomment-1628359441
for an example of a segv around this
2023-07-10 07:37:51 -07:00
Wez Furlong
046443c107
windows: fix build
"Something changed" somewhere in the deps that broke type inference for
these cases.  Just use explicit types for the `as` portions.
2023-07-10 07:07:50 -07:00
Wez Furlong
59dd1b0098
docs: changelog for #3908 2023-07-10 06:35:12 -07:00
Jacob Malloy
6154cf21c4 Fixed: Middle mouse drag MacOS
Added event selector to objc class for the otherMouseDragged event.
2023-07-10 06:34:20 -07:00
Wez Furlong
dbed5017f8
Add new color schemes: hardhacker and bamboo
refs: https://github.com/wez/wezterm/issues/3831
refs: https://github.com/ribru17/bamboo.nvim/issues/4
2023-07-09 21:26:18 -07:00
Wez Furlong
633e6e4481
color schemes: adjust sync aliasing
* Change aliasing to exact matches of the color data.
* Don't "GC" away schemes that are no longer reachable from aggregators;
  just because they are no longer listed elsewhere, doesn't mean that we
  should remove the name/scheme from wezterm if it was already made
  available in an earlier release.

refs: #3831
2023-07-09 21:20:48 -07:00
Wez Furlong
690878e1cb
remove old colors directory
This hasn't been used in some time
2023-07-09 20:29:47 -07:00
Wez Furlong
f901dfbf68
deps: tiny-skia -> 0.11 2023-07-09 18:28:48 -07:00
Wez Furlong
b98923174c
bump some deps, and cargo update 2023-07-09 18:26:46 -07:00
Wez Furlong
96f5c2b562
images: wait for first frame of decoded images
Avoid flickering with the interim black frame but waiting up to 125ms
for the first frame to be decoded.

refs: #3882
2023-07-09 16:29:59 -07:00
Wez Furlong
c399ee665a
hold pane open when spawn fails
Show the error message in the pane itself when a spawn attempt
fails, regardless of the exit_behavior setting.

refs: #3950
refs: #3928
2023-07-09 13:53:41 -07:00
Wez Furlong
c2f1be53ba
Fix divide by zero when resizing lots of tiny panes
refs: #3921
2023-07-09 13:10:18 -07:00
Wez Furlong
f09992f704
x11/wayland: fix ctrl-key for latin layouts
This is fixing a regression introduced by the fix for #2845.
The resolution for this is relatively straightforward, but took a bit
of effort to plumb.

Previously:
* CTRL/ALT/SUPER-modified keys with no explicit expansion would end
  up just taking the US layout version of the key.  That worked well
  for the intended problem with non-latin layouts, but for eg: German
  layouts it caused expansion to totally the wrong thing

Now:
* CTRL/ALT/SUPER-modified keys which effectively expand to non-ascii
  text (eg: cyrillic "Es") now take the equivalent key press from the
  US layout (which would be "c" in the "Es" case).  For European
  layouts this heuristic seems to avoid unexpected effects, but could
  do with some validation from native users.

To support this, the xkb code splits the `Keyboard` struct out from
some of the higher level logic and introduces a `KeyboardWithFallback`
struct that is built out of the user-selected keyboard layout, and
the fallback keyboard.  Now the fallback keyboard is fed the same
key inputs as the selected keyboard to correctly model the key
combinations.

refs: #3610
refs: #3933
2023-07-09 12:28:34 -07:00
Wez Furlong
1bfaf8522a
deps: harfbuzz -> 8.0.0 2023-07-09 07:38:36 -07:00
Wez Furlong
d5861f5e59
cargo update 2023-07-09 07:23:26 -07:00
Wez Furlong
18e4b9bad1
termwiz: windows: speculative build fix
01fe53f20a didn't consider this
case for windows
2023-07-06 14:07:33 -07:00
Wez Furlong
fd1d614f29
patch rust-xcb until a release is made with my alignment fix
refs: https://github.com/wez/wezterm/issues/3838
refs: https://github.com/rust-x-bindings/rust-xcb/pull/230
2023-07-06 13:03:47 -07:00
Wez Furlong
01fe53f20a
ssh: use double height text for host key failure case
That makes it really stand out

refs: #3941
2023-07-06 12:53:05 -07:00
Wez Furlong
25361e028b
ssh: fix typo
refs: #3941
2023-07-06 10:44:50 -07:00
Wez Furlong
9e36775acf
ssh: improve host key verification error messaging
See screenshots attached to #3941 to see how it renders
2023-07-06 10:42:58 -07:00
Wez Furlong
bc2601d8e9
docs: refine changelog for #3941 2023-07-06 09:34:55 -07:00
Wez Furlong
6be3f0e7ca
ssh: rewrite exit_behavior=Close -> CloseOnCleanExit during connection
ssh connection or host authentication errors would not be displayed
when the config was in its default exit_behavior=Close state.

This commit introduces some plumbing to allow a pane to override
the effective exit_behavior value, so that ssh sessions can now
rewrite it to CloseOnCleanExit while they are in the process
of connecting.

refs: #3941
2023-07-06 09:28:43 -07:00
Wez Furlong
69bb69b9ca
ci: disable termwiz fuzz job 2023-07-05 06:50:14 -07:00
Wez Furlong
2d6e200832
ci: another run at termwiz/fuzz stuff 2023-07-05 06:39:25 -07:00
Wez Furlong
9459f64cce
avoid nightly rust for cargo fuzz
An older version of proc-macro2 used by many crates doesn't compile
on nightly rust any more.  It doesn't look like we need nightly
rust for cargo-fuzz any more, so try using stable rust instead.
2023-07-03 13:23:44 -07:00
Chris Pick
35df422ec7 Remove typo in hyperlink URL
The trailing 'A' lead to a 404, remove it.
2023-07-03 13:06:20 -07:00
Wez Furlong
71dcb07b89
cargo update 2023-07-03 10:48:31 -07:00
Wez Furlong
609b61ec82
docs: changelog for #3929 2023-07-03 10:47:41 -07:00
Omar Sandoval
7373a4990b Fix copy mode on Wayland
On Wayland, copy mode often doesn't actually update the clipboard.
Specifically, it only works one time after a pointer enter or pointer
button event, then doesn't work again until the next event.

This is because the Wayland protocol serial number in
CopyAndPaste::last_serial is only updated by pointer enter and pointer
button events. So, subsequent copies using only the keyboard reuse the
same serial number and get ignored. last_serial used to be updated for
keyboard events, too, but that was (accidentally?) dropped in commit
0a00ffe98b.

Commit 0a00ffe98b also added another
last_serial to WaylandConnection which is updated for keyboard events
but isn't used anywhere as far as I can tell.

So, to fix this bug, let's get rid of CopyAndPaste::last_serial and
replace it with WaylandConnection::last_serial, which is now updated for
pointer and keyboard events.

closes: #3843
2023-07-03 10:45:47 -07:00