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
13cd24d9b5
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 |
||
---|---|---|
.cargo | ||
.github | ||
assets | ||
async_ossl | ||
base91 | ||
bintree | ||
ci | ||
codec | ||
config | ||
deps | ||
docs | ||
filedescriptor | ||
luahelper | ||
mux | ||
promise | ||
pty | ||
rangeset | ||
ratelim | ||
strip-ansi-escapes | ||
tabout | ||
term | ||
termwiz | ||
umask | ||
vtparse | ||
wezterm | ||
wezterm-mux-server | ||
window | ||
.cirrus.yml | ||
.gitignore | ||
.gitmodules | ||
.rustfmt.toml | ||
Cargo.lock | ||
Cargo.toml | ||
CONTRIBUTING.md | ||
get-deps | ||
LICENSE.md | ||
README.md | ||
wt-record | ||
wt-replay |
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 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:
- You can use the GitHub issue tracker to see if someone else has a similar issue, or to file a new one: https://github.com/wez/wezterm/issues
- There is a Matrix/Riot.im room for (potentially!) real time discussions; that is bridged from the original Gitter room.
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.