1
1
mirror of https://github.com/wez/wezterm.git synced 2024-12-24 13:52:55 +03:00
A GPU-accelerated cross-platform terminal emulator and multiplexer written by @wez and implemented in Rust
Go to file
Wez Furlong 13cd24d9b5 Windows: improve ALT + dead key handling, part 2
This changes the ALT/dead key behavior a little bit more,
and in a way that is likely more useful to terminal users.

The default behavior is that system dead key processing is enabled.
For example, with DEU keyboard layout activated:

* `^` `<SPACE>` results in a single `^`
* `^` `e` result in those two characters combining into an e with a
  diacritic.

If the config sets `use_dead_keys = false` then the behavior changes;
wezterm probes the active keymap to determine which keys are marked
as dead keys and computes their single character expansion.  When
the dead key is pressed then that expansion is substituted instead.
So `^` is simply `^`.

In order to pull this off, the window layer needs to selectively
call `TranslateMessage` for the system dead key expansion case
instead of unconditionally in the global message loop.

As a result of *that*, it means that we don't perform the default ALT
key translation for every key press any more.  I looked to see how old
friend putty handles this and found that it only allows default system
processing for ALT-space and ALT-F4.  I was resistent to selectively
processing system shortcuts because the full set are effectively
unknowable to an application and I didn't want to try to replicate
a wide selection of varying keypresses.  I'm fine to only allow
these two, so this commit does that, and reverts the portion of
the prior commit that prevented passing general ALT key combinations
through.

refs: #275
refs: #296
2020-10-15 17:06:09 -07:00
.cargo build static on windows for static openssl linkage 2020-02-02 13:03:07 -08:00
.github ci: disable cache on macos 2020-10-10 12:00:18 -07:00
assets windows: Software frontend is now mesa llvmpipe 2020-10-01 18:31:57 -07:00
async_ossl fixup tls mux sessions 2020-10-04 21:47:12 -07:00
base91 dyn everywhere 2019-06-08 21:28:11 -07:00
bintree wezterm: improve pane resize logic 2020-09-27 16:07:08 -07:00
ci ci: move source archive to run only for appimage build 2020-10-10 17:14:06 -07:00
codec Change cell api to avoid direct access to hyperlink/image 2020-10-11 13:12:46 -07:00
config Windows: improve ALT + dead key handling, part 2 2020-10-15 17:06:09 -07:00
deps fixup win32 build 2020-08-29 10:03:07 -07:00
docs Windows: force Mesa/Software mode when started in an RDP session 2020-10-14 09:21:30 -07:00
filedescriptor fix filedescriptor::poll on macos 2020-09-10 13:58:14 -07:00
luahelper lua: add GuiWin and PaneObject proxies for use in script 2020-10-09 13:55:36 -07:00
mux wayland: fixup timing issue on startup 2020-10-10 16:09:04 -07:00
promise fix clipboard on x11 2020-10-09 11:07:18 -07:00
pty pty: update async example for more recent smol release 2020-10-03 11:15:57 -07:00
rangeset mux: reintroduce server side state to gate pushes 2020-01-10 08:56:27 -08:00
ratelim move ratelim to its own crate 2020-10-03 11:15:57 -07:00
strip-ansi-escapes move strip-ansi-escapes into its own crate 2020-10-03 11:15:57 -07:00
tabout Change cell api to avoid direct access to hyperlink/image 2020-10-11 13:12:46 -07:00
term termwiz: fixup tests after b3f51e8ee2 2020-10-11 17:21:16 -07:00
termwiz termwiz: fixup windows tests after b3f51e8ee2 2020-10-11 17:44:38 -07:00
umask Move server to its own wezterm-mux-server binary 2020-10-03 11:15:57 -07:00
vtparse vtparse: fix doc link 2020-06-13 08:00:43 -07:00
wezterm Windows: improve ALT + dead key handling, part 2 2020-10-15 17:06:09 -07:00
wezterm-mux-server fix a post-fork issue that broke the mux server 2020-10-09 18:53:54 -07:00
window Windows: improve ALT + dead key handling, part 2 2020-10-15 17:06:09 -07:00
.cirrus.yml ci: moar freebsd 2020-10-06 09:53:45 -07:00
.gitignore docs: split out the KeyAssignment enum variants 2020-10-10 08:45:13 -07:00
.gitmodules fix CI: savannah is down, use a github mirror for freetype 2019-11-24 13:28:02 -08:00
.rustfmt.toml Make rustfmt happy about "async move" 2020-01-20 13:58:21 -08:00
Cargo.lock window: update to latest glium version 2020-10-11 17:07:47 -07:00
Cargo.toml move strip-ansi-escapes into its own crate 2020-10-03 11:15:57 -07:00
CONTRIBUTING.md Add get-deps script for installing dependencies 2018-02-25 09:24:56 -08:00
get-deps ci: add freebsd CI 2020-09-09 00:18:26 -07:00
LICENSE.md wezterm: bundle JetBrains Mono and Noto Color Emoji fonts 2020-09-29 22:05:18 -07:00
README.md docs: add a bit about contributing 2020-06-16 22:16:56 -07:00
wt-record make it a bit easier to consume wt-record 2020-06-12 08:51:15 -07:00
wt-replay update record/play scripts for macos 2019-03-22 20:41:50 -07:00

Wez's Terminal

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

User facing home page at: https://wezfurlong.org/wezterm/

Screenshot

Screenshot of wezterm on macOS, running vim

Installation

https://wezfurlong.org/wezterm/installation.html

Getting help

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

The Matrix/Gitter room is probably better suited to questions than it is to bug reports, but don't be afraid to use whichever you are most comfortable using and we'll work it out.