mirror of
https://github.com/wez/wezterm.git
synced 2024-12-22 12:51:31 +03:00
A GPU-accelerated cross-platform terminal emulator and multiplexer written by @wez and implemented in Rust
c4d19afa75
This commit is a result of debugging a problem with a particular font where a VS2 variation of a glyph produced incorrect shaping. Further investigation showed that this was specific to using freetype font functions and that switching to opentype functions produces the correct shaping information in that case. Further-further investigation showed that this difference in behavior was really due to the font file being out of spec and freetype returning unexpected data as a result. This commit allows switching to using harfbuzz's own opentype font+face (rather than freetype) and/or switching the freetype-based font to using opentype font functions. These two options don't yield equivalent results in the wezterm integration: a couple of our shaping tests fail due to the x-advances not being the same. Those can be drastically different in some cases (eg: I seem to get 0 for certain bitmap strikes, and for Roboto the value is off by a factor of about 1.5). This is incomplete and not something I want to turn on by default at the moment, but I don't want to lose this work, hence this commit. refs: https://github.com/wez/wezterm/issues/2475 refs: https://github.com/harfbuzz/harfbuzz/issues/3806 |
||
---|---|---|
.cargo | ||
.github | ||
assets | ||
async_ossl | ||
base91 | ||
bidi | ||
bintree | ||
ci | ||
codec | ||
color-types | ||
config | ||
deps | ||
docs | ||
env-bootstrap | ||
filedescriptor | ||
frecency | ||
licenses | ||
lua-api-crates | ||
luahelper | ||
mux | ||
procinfo | ||
promise | ||
pty | ||
rangeset | ||
ratelim | ||
strip-ansi-escapes | ||
sync-color-schemes | ||
tabout | ||
term | ||
termwiz | ||
test-data | ||
umask | ||
vtparse | ||
wezterm | ||
wezterm-client | ||
wezterm-dynamic | ||
wezterm-font | ||
wezterm-gui | ||
wezterm-gui-subcommands | ||
wezterm-input-types | ||
wezterm-mux-server | ||
wezterm-mux-server-impl | ||
wezterm-ssh | ||
wezterm-toast-notification | ||
window | ||
.cirrus.yml | ||
.gitignore | ||
.gitmodules | ||
.rustfmt.toml | ||
Cargo.lock | ||
Cargo.toml | ||
CONTRIBUTING.md | ||
get-deps | ||
LICENSE.md | ||
README-DISTRO-MAINTAINER.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 docs and guide 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 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!