1
1
mirror of https://github.com/wez/wezterm.git synced 2024-11-23 23:21:08 +03:00
A GPU-accelerated cross-platform terminal emulator and multiplexer written by @wez and implemented in Rust
Go to file
Wez Furlong 423b208780 font weight can now be specified as the underlying opentype weight
opentype allows a font to have a weight in the range 0-1000.
MacOS has its own concept of symbolic weight names and opentype
values that is a slightly different scale of boldness to Windows
and Linux.

That means that Medium could be a different range of opentype
weight values depending on the system.

To further complicate things, the font designer can name their
variant with any name they like and assign it an arbitrary
opentype weight value.

For the Operator Mono font, it has Book variant with opentype
weight 325 and a Light variant with an opentype weight of 300.

wezterm was considering these both to have `FontWeight::Light` because
that's how those values were bucketed, which results in amibiguity in
resolve the font and frustration in not being able to access one of the
variants.

This commit changes the `FontWeight` type to now hold the unambiguous
opentype weight value, and to define some symbolic aliases for
some specified weights.

When serializing, if the weight matches a symbolic alias, then that
name will be used in the canonical name (eg: as listed via ls-fonts).
Otherwise, the numeric value will be used.

When parsing the font configuration, wezterm will allow both symbolic
and numeric values.

This allows all of the Operator Mono variants to be referenced
unambiguously, although some variants have to be specified via the
numeric weight:

```
wezterm.font("Operator Mono", {weight=275, stretch="Normal", italic=false}) -- /Users/wez/.fonts/OperatorMono-XLight.otf, FontDirs
wezterm.font("Operator Mono", {weight="Light", stretch="Normal", italic=false}) -- /Users/wez/.fonts/OperatorMono-Light.otf, FontDirs
wezterm.font("Operator Mono", {weight=325, stretch="Normal", italic=false}) -- /Users/wez/.fonts/OperatorMono-Book.otf, FontDirs
wezterm.font("Operator Mono", {weight="DemiLight", stretch="Normal", italic=false}) -- /Users/wez/.fonts/OperatorMono-Medium.otf, FontDirs
wezterm.font("Operator Mono", {weight="Regular", stretch="Normal", italic=false}) -- /Users/wez/.fonts/OperatorMono-Bold.otf, FontDirs
```

https://github.com/wez/wezterm/issues/849#issuecomment-873454483
2021-07-04 08:55:08 -07:00
.cargo build static on windows for static openssl linkage 2020-02-02 13:03:07 -08:00
.github update actions/cache -> 2.1.6 2021-05-30 23:07:29 -07:00
assets Remove duplicate colorscheme file 2021-06-27 09:57:56 -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 update actions/cache -> 2.1.6 2021-05-30 23:07:29 -07:00
codec mux protocol sending alerts to client 2021-05-30 10:18:30 -07:00
color-types refactor deps so that window can depend on wezterm-font 2021-06-26 22:58:42 -07:00
config font weight can now be specified as the underlying opentype weight 2021-07-04 08:55:08 -07:00
deps fonts: synthesize bold when missing 2021-05-22 16:20:35 -07:00
docs ssh-config: allow multiple IdentityFile lines in ssh config 2021-06-30 12:08:28 -07:00
env-bootstrap tidy up log levels for wgpu 2021-05-09 10:59:48 -07:00
filedescriptor fixup build on macos 2021-05-23 14:42:41 -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 CloseCurrentPane on last pane in a tab results in window closing 2021-06-19 11:06:14 -07:00
promise deps: misc updates 2020-12-29 09:24:34 -08:00
pty windows: fix lingering cmd.exe panes 2021-05-28 15:11:29 -07:00
rangeset fix an issue where rangeset::difference with itself gave bad results 2021-04-11 14:34:15 -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 vtparse/termwiz: prep for release 2021-04-14 13:04:23 -07:00
term #891 VT100 character set support 2021-06-20 08:29:31 -07:00
termwiz #891 Fix tests 2021-06-20 08:29:31 -07:00
test-data add some test data files 2021-06-26 22:58:42 -07:00
tmux-cc tmux: attach control mode parser to terminal 2020-11-20 09:24:50 -08:00
umask Take care to restore the original umask 2021-01-07 09:20:13 -08:00
vtparse vtparse: recognize utf8 encoded c1 codes in more cases 2021-05-08 00:39:29 -07:00
wezterm add wezterm cli spawn --new-window flag 2021-06-18 22:12:25 -07:00
wezterm-client mux client: disable prediction for unix connections 2021-06-13 09:06:29 -07:00
wezterm-font font weight can now be specified as the underlying opentype weight 2021-07-04 08:55:08 -07:00
wezterm-gui ls-fonts: report config file errors 2021-07-04 08:55:08 -07:00
wezterm-gui-subcommands fonts: add wezterm ls-fonts --text "hello" to explain per-glyph font 2021-06-19 16:55:45 -07:00
wezterm-input-types Allow VoidSymbol keycode to be seen by wezterm (#759) 2021-05-07 07:54:24 -07:00
wezterm-mux-server wezterm-mux-server: keep running after all panes are gone 2021-04-03 15:00:08 -07:00
wezterm-mux-server-impl mux client: connect all mux panes in window to clipboard when attaching 2021-05-31 08:40:19 -07:00
wezterm-ssh ssh: expand %u token 2021-06-30 13:32:55 -07:00
wezterm-toast-notification deps: windows 0.9 -> 0.11 2021-06-16 08:29:09 -07:00
window wayland: disambiguate Event type 2021-06-27 16:23:03 -07:00
.cirrus.yml ci: workaround rustup hang on freebsd 2021-05-21 20:13:15 -07:00
.gitignore docs: for the new status bar feature 2021-03-10 19:29:17 -08: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 cargo update 2021-06-27 22:46:19 -07:00
Cargo.toml couple of build tweaks for git versioning and macos build perf 2021-04-23 23:29:43 -07:00
CONTRIBUTING.md Add get-deps script for installing dependencies 2018-02-25 09:24:56 -08:00
get-deps move sudo into script to not use sudo for rust checking 2021-04-02 22:36:27 -07: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.