1
1
mirror of https://github.com/wez/wezterm.git synced 2024-11-27 02:25:28 +03:00
A GPU-accelerated cross-platform terminal emulator and multiplexer written by @wez and implemented in Rust
Go to file
Wez Furlong 223ba32de2
x11: fix handling of high-speed key events
test scenario is:

```
bash -c "sleep 5; for((i=0;i<30;i++)); do xdotool keydown --delay 0 Shift_L keydown --delay 0 9 keyup --delay 0 Shift_L keyup --delay 0 9; done"
```

That should cause a series of `(` characters to be emitted, but prior to
this commit is was usually mostly `9`'s.

What's changing here is:
* We copy the pertinent fields from the last xcb StateNotify event.
  That ostensibly has the current modifier and layout state, but
  because it comes from the X server, it doesn't factor in knowledge
  from the IME.
* When processing an XCB key event, compute the current modifier
  mask and override the XKB state with it.
* Now XKB will produce correct information about the key syms
* Restore the modifier state from the saved StateNotify information.

refs: https://github.com/wez/wezterm/pull/4151
refs: https://github.com/wez/wezterm/issues/4615
refs: https://github.com/fcitx/fcitx5/issues/893
refs: https://github.com/ibus/ibus/issues/2600
refs: https://github.com/wez/wezterm/issues/3840
2024-01-24 08:04:39 -07:00
.cargo build static on windows for static openssl linkage 2020-02-02 13:03:07 -08:00
.copr copr: more grubbing around 2023-10-02 16:35:42 -07:00
.github build(deps): bump actions/cache from 2 to 4 2024-01-23 06:10:59 -07:00
assets shell-integration: update bash-preexec.sh 2024-01-23 06:19:39 -07:00
async_ossl Raise minimum Rust version to 1.51, de-vendor openssl on unix 2021-03-25 09:43:50 -07:00
base91 dyn everywhere 2019-06-08 21:28:11 -07:00
bidi deps: update env-logger 2024-01-20 16:01:10 -07:00
bintree Add SplitPane assignment 2022-05-21 21:09:11 -07:00
ci ci: remove centos 7 2024-01-18 06:11:40 -07:00
codec feat: resize pane from CLI (#3491) 2023-04-18 08:34:39 -07:00
color-types allow rgba for all window_frame colors 2024-01-20 10:06:02 -07:00
config Revert "x11: add experimental x11_use_passive_key_updates config option" 2024-01-23 14:09:44 -07:00
deps deps: harfbuzz -> 8.3.0 2023-11-22 17:41:38 -07:00
docs x11: fix handling of high-speed key events 2024-01-24 08:04:39 -07:00
env-bootstrap deps: update env-logger 2024-01-20 16:01:10 -07:00
filedescriptor Image decoding is now done in a bg thread 2023-03-17 11:41:20 -07:00
frecency remove transitive dep on time 0.1 2023-04-18 13:53:59 -07:00
lfucache lfucache: improve LFU algorithm and structure 2022-11-14 10:00:49 -07:00
licenses macOS: bundle and use MetalANGLE to enable Metal rendering 2020-10-17 09:34:01 -07:00
lua-api-crates fix: changed the criteria to calculate the sunset / sunrise progression 2024-01-19 08:52:17 -07:00
luahelper ValuePrinter: improve array style table detection 2023-12-02 08:05:47 -07:00
mux add notification_handling option to control suppression 2023-09-28 18:05:18 -07:00
nix Improve code style 2024-01-21 08:32:31 -07:00
procinfo fix(clippy): Remove closures where possible 2023-03-19 08:41:38 -07:00
promise fix(clippy): Remove closures where possible 2023-03-19 08:41:38 -07:00
pty SHELL cleanup 2023-08-20 10:42:38 -07:00
rangeset rangeset: fix accidentally quadratic complexity 2022-07-24 12:48:02 -07:00
ratelim ratelimit: remove indirect dep on quanta 2023-04-08 15:47:34 -07:00
strip-ansi-escapes deps: update to clap 4 2022-10-04 08:55:31 -07:00
sync-color-schemes deps: update env-logger 2024-01-20 16:01:10 -07:00
tabout fixup images with the multiplexer 2023-03-23 21:43:28 -07:00
term fixup tests for seqno increment on resize change 2024-01-23 18:31:59 -07:00
termwiz termwiz: surface: Fix cursor movement in DiffState 2024-01-23 06:42:13 -07:00
test-data fix strikethrough position for line_height != 1.0 2023-08-26 13:01:41 -07:00
umask fix(clippy): Remove unnecessary clone/to_string calls 2023-03-16 07:40:12 -07:00
vtparse Ensure order of omitted parameters is retained 2024-01-08 18:22:30 -07:00
wezterm build(deps): bump the all group with 6 updates 2024-01-03 10:29:24 -07:00
wezterm-blob-leases try scaling down images that don't fit in the texture atlas 2023-05-19 08:57:38 -07:00
wezterm-client remove openssl pinning, cargo update 2023-09-04 13:31:03 -07:00
wezterm-dynamic fix a couple of new redundant clone warnings in rust 1.73 2023-10-30 07:45:59 -07:00
wezterm-font impl FT_PIXEL_MODE_LCD_V 2024-01-23 06:26:28 -07:00
wezterm-gui x11: synthesize clearing dead key state when forgotten by system 2024-01-23 15:02:50 -07:00
wezterm-gui-subcommands Add serial_ports config 2023-03-29 19:05:13 -07:00
wezterm-input-types fix: Correct SUPER modifier key handling in kitty protocol (#4605) 2023-12-01 07:51:06 -07:00
wezterm-mux-server mlua 0.9 is now stable; update 2023-08-17 09:26:47 -07:00
wezterm-mux-server-impl check the zoom state before unzooming 2023-08-28 21:58:22 -07:00
wezterm-open-url remove open dependency 2023-03-19 13:12:20 -07:00
wezterm-ssh deps: update env-logger 2024-01-20 16:01:10 -07:00
wezterm-toast-notification deps: update zbus 2024-01-23 17:14:47 -07:00
wezterm-version build: revise dep graph for version changes 2023-04-08 17:03:03 -07:00
window x11: fix handling of high-speed key events 2024-01-24 08:04:39 -07:00
.cirrus.yml cirrus: upload arm debs as well 2024-01-10 16:05:52 -07:00
.gitignore Move flake to subdirectory 2024-01-21 08:32:31 -07:00
.gitmodules repoint to my freetype mirror 2021-02-03 21:56:30 -08:00
.mailmap add .mailmap 2022-12-07 12:09:06 -08:00
.rustfmt.toml encoding my preferred import grouping in the rustfmt config 2022-01-17 13:50:51 -07:00
Cargo.lock switch wholesale to my fork xcb-imdkit, as it is not actively maintained 2024-01-23 17:50:04 -07:00
Cargo.toml deps: update xcb 2024-01-23 17:12:16 -07:00
CONTRIBUTING.md Contribute docs update (#4326) 2023-09-21 17:52:26 -07:00
get-deps get-deps: support installing docs dependencies on debian 2023-11-20 16:41:50 -07:00
LICENSE.md Bundle Symbols Nerd Font Mono 2022-01-16 16:04:35 -07:00
mkdocs_macros.py make the default front_end=WebGpu 2023-04-17 18:00:51 -07:00
PRIVACY.md Add PRIVACY policy/statement 2023-08-17 08:59:53 -07:00
README-DISTRO-MAINTAINER.md fonts: remove last resort font 2022-09-15 08:23:58 -07:00
README.md Expand sponsor section of readme 2023-04-02 23:37:54 -07:00

Wez's Terminal

WezTerm Icon A GPU-accelerated cross-platform terminal emulator and multiplexer written by @wez and implemented in Rust

User facing docs and guide at: https://wezfurlong.org/wezterm/

Screenshot

Screenshot of wezterm on macOS, running vim

Installation

https://wezfurlong.org/wezterm/installation

Getting help

This is a spare time project, so please bear with me. There are a couple of channels for support:

  • You can use the GitHub issue tracker to see if someone else has a similar issue, or to file a new one.
  • Start or join a thread in our GitHub Discussions; if you have general questions or want to chat with other wezterm users, you're welcome here!
  • There is a Matrix room via Element.io for (potentially!) real time discussions.

The GitHub Discussions and Element/Gitter rooms are better suited for questions than bug reports, but don't be afraid to use whichever you are most comfortable using and we'll work it out.

Supporting the Project

If you use and like WezTerm, please consider sponsoring it: your support helps to cover the fees required to maintain the project and to validate the time spent working on it!

Read more about sponsoring.