1
1
mirror of https://github.com/wez/wezterm.git synced 2024-11-25 21:07:39 +03:00
A GPU-accelerated cross-platform terminal emulator and multiplexer written by @wez and implemented in Rust
Go to file
Wez Furlong 4f123a461b
macos (mostly): try harder to get initial dpi
There are a number of open issues that relate to getting the dpi
wrong when spawning a window. In theory it shouldn't matter because
we will immediately realize the difference and synthesize the correct
information, but evidence shows this isn't quite true.

What this commit does is:

* Override Connection::default_dpi() on macOS to return the
  effective_dpi from the active screen instead of the default
  non-retina dpi
* Adjust the Config::initial_size() method to accept an optional
  cell pixel dimension
* Add a helper function to wezterm-gui to compute the cell pixel
  dimensions given the config and the (usually default) dpi, and
  feed that through to Config::initial_size
* in the macos window impl, scale the computed geometry based on
  the ratio of the Connection::default_dpi and the default non-retina
  dpi.

This helps to avoid needing to do a fixup in the
https://github.com/wez/wezterm/issues/4966 case, and may help with
the various other macos quirky issues.

refs: https://github.com/wez/wezterm/issues/2958
refs: https://github.com/wez/wezterm/issues/3575
refs: https://github.com/wez/wezterm/issues/3900
refs: https://github.com/wez/wezterm/issues/4250
refs: https://github.com/wez/wezterm/issues/4285
refs: https://github.com/wez/wezterm/issues/4447
refs: https://github.com/wez/wezterm/issues/4851
refs: https://github.com/wez/wezterm/issues/4966
2024-02-06 22:57:05 -07:00
.cargo build static on windows for static openssl linkage 2020-02-02 13:03:07 -08:00
.copr copr: more grubbing around 2023-10-02 16:35:42 -07:00
.github ci: publish amd64 builds to apt repo when releasing 2024-02-05 06:48:49 -07:00
assets docs and missing bit of #4535 #4523 2024-02-03 10:52:15 -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
bidi bidi: prep for crates.io update 2024-01-27 12:18:17 -07:00
bintree Add SplitPane assignment 2022-05-21 21:09:11 -07:00
ci ci: publish amd64 builds to apt repo when releasing 2024-02-05 06:48:49 -07:00
codec feat: resize pane from CLI (#3491) 2023-04-18 08:34:39 -07:00
color-types color-types: prep for crates.io publish 2024-01-27 12:16:47 -07:00
config macos (mostly): try harder to get initial dpi 2024-02-06 22:57:05 -07:00
deps deps: harfbuzz -> 8.3.0 2023-11-22 17:41:38 -07:00
docs docs: mention arch supplemental fonts 2024-02-06 10:44:09 -07:00
env-bootstrap deps: update env-logger 2024-01-20 16:01:10 -07:00
filedescriptor Image decoding is now done in a bg thread 2023-03-17 11:41:20 -07:00
frecency remove transitive dep on time 0.1 2023-04-18 13:53:59 -07:00
lfucache lfucache: improve LFU algorithm and structure 2022-11-14 10:00:49 -07:00
licenses macOS: bundle and use MetalANGLE to enable Metal rendering 2020-10-17 09:34:01 -07:00
lua-api-crates macos (mostly): try harder to get initial dpi 2024-02-06 22:57:05 -07:00
luahelper ValuePrinter: improve array style table detection 2023-12-02 08:05:47 -07:00
mux mux: allow specifying cache policy for process information 2024-02-02 18:02:18 -07:00
nix Add additional outputs for nix's flake package 2024-02-01 08:45:50 -07:00
procinfo fix(clippy): Remove closures where possible 2023-03-19 08:41:38 -07:00
promise fix(clippy): Remove closures where possible 2023-03-19 08:41:38 -07:00
pty pty: improve unix path searching 2024-02-02 06:41:53 -07:00
rangeset rangeset: fix accidentally quadratic complexity 2022-07-24 12:48:02 -07:00
ratelim ratelimit: remove indirect dep on quanta 2023-04-08 15:47:34 -07:00
strip-ansi-escapes deps: update to clap 4 2022-10-04 08:55:31 -07:00
sync-color-schemes deps: update env-logger 2024-01-20 16:01:10 -07:00
tabout fixup images with the multiplexer 2023-03-23 21:43:28 -07:00
term fix invalidation on palette change 2024-02-01 15:58:14 -07:00
termwiz color-types: prep for crates.io publish 2024-01-27 12:16:47 -07:00
test-data fix kitty image protocol display parameters 2024-01-28 07:59:13 -07:00
umask fix(clippy): Remove unnecessary clone/to_string calls 2023-03-16 07:40:12 -07:00
vtparse Ensure order of omitted parameters is retained 2024-01-08 18:22:30 -07:00
wezterm macos (mostly): try harder to get initial dpi 2024-02-06 22:57:05 -07:00
wezterm-blob-leases wezterm-blob-leases: prep for crates.io publish 2024-01-27 12:11:08 -07:00
wezterm-client add wezterm start --new-tab and wezterm connect --new-tab 2024-02-03 07:51:06 -07:00
wezterm-dynamic wezterm-dynamic: bump version of crates.io publish 2024-01-27 12:09:16 -07:00
wezterm-font be smarter about NO_HINTING 2024-01-31 07:55:10 -07:00
wezterm-gui macos (mostly): try harder to get initial dpi 2024-02-06 22:57:05 -07:00
wezterm-gui-subcommands Mention the -e aliases explicitly in the help 2024-02-03 10:36:07 -07:00
wezterm-input-types wezterm-input-types: prep for crates.io publish 2024-01-27 12:13:39 -07:00
wezterm-mux-server macos (mostly): try harder to get initial dpi 2024-02-06 22:57:05 -07:00
wezterm-mux-server-impl mux: allow specifying cache policy for process information 2024-02-02 18:02:18 -07:00
wezterm-open-url remove open dependency 2023-03-19 13:12:20 -07:00
wezterm-ssh deps: update env-logger 2024-01-20 16:01:10 -07:00
wezterm-toast-notification deps: update zbus 2024-01-23 17:14:47 -07:00
wezterm-version build: revise dep graph for version changes 2023-04-08 17:03:03 -07:00
window macos (mostly): try harder to get initial dpi 2024-02-06 22:57:05 -07:00
.cirrus.yml cirrus: upload arm debs as well 2024-01-10 16:05:52 -07:00
.dockerignore ci: switch mkdocs build to docker version 2024-02-03 08:06:55 -07:00
.gitignore Move flake to subdirectory 2024-01-21 08:32:31 -07:00
.gitmodules repoint to my freetype mirror 2021-02-03 21:56:30 -08:00
.mailmap add .mailmap 2022-12-07 12:09:06 -08:00
.rustfmt.toml encoding my preferred import grouping in the rustfmt config 2022-01-17 13:50:51 -07:00
Cargo.lock deps: update glium 2024-02-06 16:52:02 -07:00
Cargo.toml deps: update xcb 2024-01-23 17:12:16 -07:00
CONTRIBUTING.md Contribute docs update (#4326) 2023-09-21 17:52:26 -07:00
get-deps get-deps: support installing docs dependencies on debian 2023-11-20 16:41:50 -07:00
LICENSE.md Bundle Symbols Nerd Font Mono 2022-01-16 16:04:35 -07:00
mkdocs_macros.py make the default front_end=WebGpu 2023-04-17 18:00:51 -07:00
PRIVACY.md Add PRIVACY policy/statement 2023-08-17 08:59:53 -07:00
README-DISTRO-MAINTAINER.md fonts: remove last resort font 2022-09-15 08:23:58 -07:00
README.md Expand sponsor section of readme 2023-04-02 23:37:54 -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

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!

Read more about sponsoring.