mirror of
https://github.com/wez/wezterm.git
synced 2024-11-10 15:04:32 +03:00
A GPU-accelerated cross-platform terminal emulator and multiplexer written by @wez and implemented in Rust
a063d20cf0
This is one of those massive time sinks that I almost regret... As part of recent changes to dust-off the allsorts shaper, I noticed that the harfbuzz shaper wasn't shaping as well as the allsorts one. This commit: * Adds emoji-test.txt, a text file you can `cat` to see how well the emoji are shaped and rendered. * Fixes (or at least, improves) the column width calculation for combining sequences such as "deaf man" which was previously calculated at 3 cells in width when it should have just been 2 cells wide, which resulted in a weird "prismatic" effect during rendering where the glyph would be rendered with an extra RHS portion of the glyph across 3 cells. * Improved/simplified the clustering logic used to compute fallbacks. Previously we could end up with some wonky/disjoint sequence of undefined glyphs which wouldn't be successfully resolved from a fallback font. We now make a better effort to consolidate runs of undefined glyphs for fallback. * For sequences such as "woman with veil: dark skin tone" that occupy a single cell, the shaper may return 3 clusters with 3 glyphs in the case that the font doesn't fully support this grapheme. At render time we'd just take the last glyph from that sequence and render it, resulting in eg: a female symbol in this particular case. It is generally a bit more useful to show the first glyph in the sequence (eg: person with veil) rather than the gender or skin tone, so the renderer now checks for this kind of overlapping sequence and renders only the first glyph from the sequence. |
||
---|---|---|
.cargo | ||
.github | ||
assets | ||
async_ossl | ||
base91 | ||
bintree | ||
ci | ||
codec | ||
config | ||
deps | ||
docs | ||
env-bootstrap | ||
filedescriptor | ||
licenses | ||
luahelper | ||
mux | ||
promise | ||
pty | ||
rangeset | ||
ratelim | ||
strip-ansi-escapes | ||
tabout | ||
term | ||
termwiz | ||
test-data | ||
tmux-cc | ||
umask | ||
vtparse | ||
wezterm | ||
wezterm-client | ||
wezterm-font | ||
wezterm-gui | ||
wezterm-gui-subcommands | ||
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.