1
1
mirror of https://github.com/wez/wezterm.git synced 2025-01-08 23:17:36 +03:00
A GPU-accelerated cross-platform terminal emulator and multiplexer written by @wez and implemented in Rust
Go to file
Wez Furlong 225e7a1243 introduce unicode_version config
This is a fairly far-reaching commit. The idea is:

* Introduce a unicode_version config that specifies the default level
  of unicode conformance for each newly created Terminal (each Pane)
* The unicode_version is passed down to the `grapheme_column_width`
  function which interprets the width based on the version
* `Cell` records the width so that later calculations don't need to
  know the unicode version

In a subsequent diff, I will introduce an escape sequence that allows
setting/pushing/popping the unicode version so that it can be overridden
via eg: a shell alias prior to launching an application that uses a
different version of unicode from the default.

This approach allows output from multiple applications with differing
understanding of unicode to coexist on the same screen a little more
sanely.

Note that the default `unicode_version` is set to 9, which means that
emoji presentation selectors are now by-default ignored.  This was
selected to better match the level of support in widely deployed
applications.

I expect to raise that default version in the future.

Also worth noting: there are a number of callers of
`unicode_column_width` in things like overlays and lua helper functions
that pass `None` for the unicode version: these will assume the latest
known-to-wezterm/termwiz version of unicode to be desired. If those
overlays do things with emoji presentation selectors, then there may be
some alignment artifacts. That can be tackled in a follow up commit.

refs: #1231
refs: #997
2021-11-25 09:00:45 -07:00
.cargo build static on windows for static openssl linkage 2020-02-02 13:03:07 -08:00
.github ci: windows -> windows-latest 2021-11-23 06:57:48 -07:00
assets ci: maybe enable codesigning on macos 2021-11-22 11:27:14 -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
bintree bintree: clippy lint 2021-03-26 09:01:54 -07:00
ci ci: windows -> windows-latest 2021-11-23 06:57:48 -07:00
codec model: replace LineBits::DIRTY with a sequence number 2021-08-08 12:45:08 -07:00
color-types reduce to a single draw call 2021-07-31 00:23:16 -07:00
config introduce unicode_version config 2021-11-25 09:00:45 -07:00
deps freetype: expose some more constants 2021-10-10 10:18:47 -07:00
docs remove our incomplete allsorts shaper implementation 2021-11-23 05:43:13 -07:00
env-bootstrap windows: workaround Rust 1.56 bug 88576 2021-10-24 11:50:16 -07:00
filedescriptor filedescriptor: 0.8.1 release 2021-08-23 08:59:44 -07:00
licenses macOS: bundle and use MetalANGLE to enable Metal rendering 2020-10-17 09:34:01 -07:00
luahelper add lua repl to the debug overlay 2021-05-03 09:19:44 -07:00
mux introduce unicode_version config 2021-11-25 09:00:45 -07:00
promise deps: misc updates 2020-12-29 09:24:34 -08:00
pty pty: bump version 2021-11-23 05:22:32 -07:00
rangeset Speedup font loading with fontconfig and freetype. 2021-09-06 10:53:01 -07: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 introduce unicode_version config 2021-11-25 09:00:45 -07:00
term introduce unicode_version config 2021-11-25 09:00:45 -07:00
termwiz introduce unicode_version config 2021-11-25 09:00:45 -07:00
test-data introduce unicode_version config 2021-11-25 09:00:45 -07:00
tmux-cc tmux-cc: fix suspicious-looking decimal literals 2021-10-27 12:56:48 -07:00
umask Take care to restore the original umask 2021-01-07 09:20:13 -08:00
vtparse vtparse: parse APC sequences 2021-07-28 09:04:28 -07:00
wezterm windows: gui: only attach parent console when spawned by wezterm 2021-11-21 09:21:44 -07:00
wezterm-client introduce unicode_version config 2021-11-25 09:00:45 -07:00
wezterm-font introduce unicode_version config 2021-11-25 09:00:45 -07:00
wezterm-gui introduce unicode_version config 2021-11-25 09:00:45 -07:00
wezterm-gui-subcommands ssh: allow wezterm ssh -v to log verbose diagnostics to stderr 2021-10-25 15:56:36 -07:00
wezterm-input-types deps: update bitflags -> 1.3 2021-08-15 18:21:17 -07:00
wezterm-mux-server mux: mux_env_remove config to control which env var are removed 2021-10-17 12:46:16 -07:00
wezterm-mux-server-impl unpin rcgen, update to 0.8.13 2021-08-23 09:07:53 -07:00
wezterm-ssh introduce unicode_version config 2021-11-25 09:00:45 -07:00
wezterm-toast-notification fonts: ls-fonts now handles system fallback lists, adds Menlo on macos 2021-11-08 22:49:52 -07:00
window remove wgpu from window test deps 2021-11-23 05:39:07 -07:00
.cirrus.yml Ensure /run/sshd exists, explicitly set username in sshd fixture, add back use_privilege_mode no 2021-10-10 14:54:45 -07:00
.gitignore Add .idea/ to .gitignore 2021-09-12 09:52:11 -07:00
.gitmodules repoint to my freetype mirror 2021-02-03 21:56:30 -08:00
.rustfmt.toml Make rustfmt happy about "async move" 2020-01-20 13:58:21 -08:00
Cargo.lock introduce unicode_version config 2021-11-25 09:00:45 -07:00
Cargo.toml remove patched openssl-sys crate 2021-11-03 06:38:20 -07:00
CONTRIBUTING.md Add get-deps script for installing dependencies 2018-02-25 09:24:56 -08:00
get-deps Apply suggestions from code review 2021-11-09 07:47:57 -08:00
LICENSE.md wezterm: bundle JetBrains Mono and Noto Color Emoji fonts 2020-09-29 22:05:18 -07:00
README.md Update wording in README.md 2021-05-19 19:08:57 -07:00
wt-record fixup wt-record on darwin 2021-03-20 20:14:17 -07:00
wt-replay update record/play scripts for macos 2019-03-22 20:41:50 -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.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.