1
1
mirror of https://github.com/wez/wezterm.git synced 2024-12-03 11:38:15 +03:00
Commit Graph

5071 Commits

Author SHA1 Message Date
Wez Furlong
213507c923 client: unix version of gui socket discovery 2022-01-06 21:50:18 -07:00
Wez Furlong
bd952bcc2b input: fix key_is_down in RawKeyEvent on windows 2022-01-06 20:11:55 -07:00
Wez Furlong
91fc705e26 gui/client: add stubs for publishing a main gui instance sock path
This will help to route things through a main gui instance per desktop
session/class.

Currently has stubs for windows.
2022-01-06 20:07:46 -07:00
Wez Furlong
72595d99d1 input: add Backspace to win32-input-mode list
refs: #1515
2022-01-06 17:47:29 -07:00
Wez Furlong
6cf6084c6d docs: clarify timeout for toast notifications
cc: @plscks

refs: #1514
2022-01-06 12:31:58 -07:00
Wez Furlong
94a35c9d1e input: revert 8f8ee4e87e
this makes us consistent in behavior with xterm:

CTRL-H -> 0x08
Backspace -> 0x7f
CTRL-Backspace -> 0x08

refs: #1508
refs: #1495
2022-01-06 12:26:58 -07:00
Wez Furlong
ca8362ff08 input: fix modifier only win32-input-mode reporting
Normalize the left/right to the main VK.

Fixup the left/right control modifier flags: they were flipped!

refs: https://github.com/wez/wezterm/issues/318
refs: https://github.com/wez/wezterm/issues/1509
refs: https://github.com/wez/wezterm/issues/1510
2022-01-06 10:55:52 -07:00
Wez Furlong
ce23ee9eb8 input: generate win32-input-mode for a subset of keys
This commit causes the terminal to emit win32-input-mode encoded key up
and down events for a limited subset of keys When win32-input-mode is
enabled.

We limit them to keys where we know the VK key code equivalent,
and where those keys are either not representable (eg: modifier
only key events), or may generate ambiguous output (eg: CTRL-SPACE
in different keyboard layouts).

However, in my experiments, modifier only key presses confuse powershell
and cause it to emit `@`, so I've disabled that in the code for now.

refs: https://github.com/wez/wezterm/issues/318
refs: https://github.com/wez/wezterm/issues/1509
refs: https://github.com/wez/wezterm/issues/1510
2022-01-06 10:19:58 -07:00
Wez Furlong
27d452a20f input: route key up events to pane on win32
refs: https://github.com/wez/wezterm/issues/1509
2022-01-06 09:45:51 -07:00
Wez Furlong
763c4d7f7e term: reintroduce possibility of key_up events
Nothing generates them right now, and the mux client has no
way to represent them on the wire.

I'm considering constraining them to just win32 for now.

refs: https://github.com/wez/wezterm/issues/1509
2022-01-06 09:45:51 -07:00
Wez Furlong
e39b0b1b4a input: add VK_MENU -> LeftAlt mapping for windows
refs: https://github.com/wez/wezterm/issues/1509
refs: https://github.com/wez/wezterm/issues/1483
2022-01-06 08:10:14 -07:00
Wez Furlong
dc204c03d6 term: propagate wezterm debug_key_events config
Log the sequence being sent to the terminal when enabled.
2022-01-06 08:01:25 -07:00
Wez Furlong
51aec27ec2 termwiz/term: introduce KeyboardEncoding enum, existence of win32-input-mode
This is a baby step that formalizes the different encoding schemes into
an enum, and hooks up the decset sequence for win32-input-mode.

It doesn't change any of the actual encoding at this time.

refs: #1509
2022-01-06 07:50:49 -07:00
unknown
ca0e358262 Fix uninit UB in filedescriptor unix.rs 2022-01-06 06:17:54 -08:00
Wez Furlong
8437d787b8 ls-fonts --text used wrong per-glyph text
It was showing the whole text for the cluster for each shaped
glyph.

Fix it up to map back to the corresponding cell range and
extract the text from the line.

Include the x_advance metric in the output while we're in
there.

refs: https://github.com/wez/wezterm/issues/1333
2022-01-05 23:36:33 -07:00
Wez Furlong
91a423da96 docs: changelog for 2a0de16b7b
refs: https://github.com/Canop/broot/issues/473
2022-01-05 20:15:56 -07:00
Wez Furlong
1131f2dce6 docs: changelog for IME/dead key composition 2022-01-05 20:11:41 -07:00
Wez Furlong
9f6f901f5b launcher: unbreak filtered view
I refactored and accidentally used entries instead of filtered_entries
2022-01-05 19:56:14 -07:00
Wez Furlong
41ce7903a9 write -> write_all, h/t clippy via @CGMossa 2022-01-05 18:52:14 -07:00
Wez Furlong
2a0de16b7b term: respect row/column scaling for image attachments
This got lost along the way somewhere, but now it's back!

refs: https://github.com/Canop/broot/issues/473
2022-01-05 18:24:21 -07:00
Wez Furlong
1dc5af5e69 x11: ime: enable pre-edit callbacks to show compose status
This also adjusts the IME position so that it doesn't obscure
the composition status.

refs: https://github.com/fcitx/xcb-imdkit/issues/9
2022-01-05 15:36:20 -07:00
Wez Furlong
90e244d731 bump codec version for abi change around sgrpixels
Multiplexer would error out when mousing over the window!

refs: #1457
2022-01-05 11:44:03 -07:00
Wez Furlong
59f5b849c5 gui: treat IME composition region as a giant stretched cursor
That way we get consistent styling for the span of the composing text
2022-01-05 10:52:33 -07:00
Wez Furlong
e66b788759 windows: feed dead key composition state to gui layer 2022-01-05 10:34:18 -07:00
Wez Furlong
27d84e08de windows: route IME composition to render layer
This shows the pending composition in the same font as the terminal display,
rather than the anemic looking system default font!
2022-01-05 10:29:27 -07:00
Wez Furlong
612afca961 windows: restore recognizing the Insert key
refs: #1483
2022-01-05 09:49:33 -07:00
Wez Furlong
b05cb1241e force clusters to break around cursor boundary
When rendering the IME composing text, I noticed that for the Korean
input sequence: shift+'ㅅ' followed by 'ㅏ' we'd render the 'ㅆ' (the
shifted first character) in black and the composing 'ㅏ' in white
against the cursor color, and that was very difficult to read,
especially at the default font size.

To resolve this, this commit:

* Forces clustering to break around the cursor boundary, so that
  we treat the cursor position as its own separately styled cluster
* Adjusts cursor/bg rendering so that we always consider the start of
  the cluster for the colors of that run.  We are guaranteed that a
  ligatured sequence will fit in the background area anyway.

This has the effect of "breaking" programming ligatures such as '->'
when cursoring through them, and decomposing them into their individual
'-' and '>' glyphs, which is a reasonable price to pay for being able
to see things better on screen.

refs: https://github.com/wez/wezterm/issues/1504
refs: https://github.com/wez/wezterm/issues/478
2022-01-05 09:20:11 -07:00
Wez Furlong
2456eefaa6 cargo fmt 2022-01-05 08:49:50 -07:00
Wez Furlong
f11281a4fa window: downgrade fallback error to warning level
refs: #1505
2022-01-05 08:33:03 -07:00
Wez Furlong
cc9ceeef22 macos: feed dead key composition to IME composing status
Now we can show the in-progress dead key composition on macos
2022-01-05 08:29:54 -07:00
Wez Furlong
0d6fbc1aa2 macos: improve ime vs dead key composing
When we translate a dead key, send the composed event immediately
and don't try to route the current key press via the IME.

Improve rendering when in the composing state: overlay the composing
text at the cursor position to show what the composing text would
look like, even though it hasn't been committed to the input stream
yet.

refs: https://github.com/wez/wezterm/issues/1504
2022-01-05 07:50:12 -07:00
Wez Furlong
71dae34b75 macos: improve IME handling
For Korean text input, pressing SHIFT and then typing in certain
keys begins a composition sequence.  Our logic for when to route
via the IME got so distracted by ALT that it didn't consider SHIFT
and didn't send this sequence to the IME, so we'd fail to compose
those sequences.

While poking at this, I realized that we should treat this composition
similarly to dead keys, in that we can signal the term window to
highlight the cursor color and report that status.

There's some further work to do: the composing text should be rendered
by us.  So far our IME integration assumes that the IME itself will
render over the top of our window, but for this particular input
it doesn't do that.

refs: https://github.com/wez/wezterm/issues/1504
2022-01-04 22:51:49 -07:00
Wez Furlong
32c39fe5ae docs: changelog for #1457 2022-01-04 20:51:58 -07:00
Wez Furlong
6d72101879 launcher: restore j/k movement by default
You now press `/` to enter search mode
2022-01-04 20:49:21 -07:00
Wez Furlong
621dcd3b30 launcher: don't fall off bottom of launcher when filtered 2022-01-04 20:49:21 -07:00
Wez Furlong
6927faebfb launcher: refactor and simplify 2022-01-04 20:49:21 -07:00
Autumn Lamonte
c10ff1e41f fix nits 2022-01-04 19:49:06 -08:00
Autumn Lamonte
07a2acb840 #1457 refactor, ClickPosition 2022-01-04 19:49:06 -08:00
Autumn Lamonte
e28e09dfa8 #1457 Fix cell offsets 2022-01-04 19:49:06 -08:00
Autumn Lamonte
81f4bbd4aa #1457 Initial commit compiles but doesn't yet work 2022-01-04 19:49:06 -08:00
Jan Katins
c338eb12a0 Better upgrade instruction for nightly on mac
The old way would remove the icon form the dock. it needs greedy-latest because the cask is declared as `latest`.

See https://github.com/wez/wezterm/pull/1500 for the discussion
2022-01-04 16:10:29 -08:00
Wez Furlong
1f6e4497e0 launcher: simplify logic
Remove the local awareness of how to spawn into a window and replace
it with using a KeyAssignment to do that instead.

refs: #1485
2022-01-04 09:49:32 -07:00
Wez Furlong
541701d822 refactor tab navigator into launcher menu
The same core code is used to render both the tab navigator
and the launcher.  The context is specified using some flags
so that you don't get an unholy mess in both places.

The net result of this is that the tab navigator now supports
fuzzy matching.

refs: #664
refs: 1485
2022-01-04 09:35:07 -07:00
Wez Furlong
142f3c7d81 launcher now has fuzzy matching
Just start typing text to build up the fuzzy matching term.
The list of items updates to match the results.

refs: #664
refs: #1485
2022-01-04 08:45:15 -07:00
Wez Furlong
68fb416b34 launcher: fix subtraction overflow for tall windows 2022-01-04 08:05:31 -07:00
Wez Furlong
99f94f8425 launcher overlay: fix build on windows 2022-01-04 08:01:37 -07:00
Wez Furlong
9919745d4e launcher: tidy up key/mod display impl to make it look nicer
Make things a little more compact and display friendly

refs: #1485
2022-01-03 23:38:36 -07:00
Wez Furlong
05ec80d945 gui: dedup and sort key assignment launcher entries
refs: #1485
2022-01-03 23:28:37 -07:00
Wez Furlong
5ddb40c7c8 add Display + Debug impl for SpawnCommand
This makes it look tidier in the launcher menu
2022-01-03 23:19:11 -07:00
Wez Furlong
509122c152 Improve launcher menu
* Allow selecting the first few rows by number
* Allow scrolling through long lists of items
* Add actions from key assignments to list

refs: #1485
refs: #1413
2022-01-03 23:07:54 -07:00