1
1
mirror of https://github.com/wez/wezterm.git synced 2024-12-24 22:01:47 +03:00
A GPU-accelerated cross-platform terminal emulator and multiplexer written by @wez and implemented in Rust
Go to file
Wez Furlong e090eb9eae
Image decoding is now done in a bg thread
Continuing from the previous commit, this shifts:

* In-memory data -> temporary file
* Image decoding -> background thread

The background thread asynchronously decodes frames and
sends them to the render thread via a bounded channel.

While decoding frames, it writes them, uncompressed, to
a scratch file so that when the animation loops, it is
a very cheap operation to rewind and pull that data
from the file, without having to burn CPU to re-decode
the data from the start.

Memory usage is bounded to 4 uncompressed frames while
decoding, then 3 uncompressed frames (triple buffered)
while looping over the rest.

However, disk usage is N uncompressed frames.

refs: https://github.com/wez/wezterm/issues/3263
2023-03-17 11:41:20 -07:00
.cargo build static on windows for static openssl linkage 2020-02-02 13:03:07 -08:00
.github pages: run only one at a time, allow them to queue up 2023-03-16 21:23:16 -07:00
assets fonts: update Symbols Nerd Font Mono 2023-02-06 06:29:32 -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 env_logger -> 0.10 2022-11-27 21:37:25 -07:00
bintree Add SplitPane assignment 2022-05-21 21:09:11 -07:00
ci fix trigger paths! 2023-03-16 00:05:00 -07:00
codec add wezterm cli get-text command 2023-02-05 09:05:48 -07:00
color-types make Vertex conform to Pod 2022-11-18 10:03:49 -07:00
config improve default hyperlink_rules. add default_hyperlink_rules() 2023-03-16 20:44:15 -07:00
deps deps: harfbuzz -> 6.0.0 2022-12-19 17:33:00 -07:00
docs Image decoding is now done in a bg thread 2023-03-17 11:41:20 -07:00
env-bootstrap Improve XDG configuration searching 2023-03-15 23:11:02 -07:00
filedescriptor Image decoding is now done in a bg thread 2023-03-17 11:41:20 -07:00
frecency refactor: replace the deprecated usage of chrono::TimeZone::ymd 2022-11-20 09:39:10 -08: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 fix(clippy): Remove unnecessary clone/to_string calls 2023-03-16 07:40:12 -07:00
luahelper fix(clippy): Remove unnecessary clone/to_string calls 2023-03-16 07:40:12 -07:00
mux add log_unknown_escape_sequences config option 2023-03-15 22:47:32 -07:00
procinfo deps: update ntapi to 0.4 2022-12-30 08:37:53 -07:00
promise deps: remove async-std dep 2022-11-01 07:05:33 -07:00
pty build(pty): don't use std::os::fd::RawFd symbol directly 2023-03-12 20:48:01 -07:00
rangeset rangeset: fix accidentally quadratic complexity 2022-07-24 12:48:02 -07:00
ratelim deps: migrate from ratelimit_meter -> governor 2022-06-07 22:55:01 -07:00
strip-ansi-escapes deps: update to clap 4 2022-10-04 08:55:31 -07:00
sync-color-schemes fix(clippy): Remove unnecessary clone/to_string calls 2023-03-16 07:40:12 -07:00
tabout Image decoding is now done in a bg thread 2023-03-17 11:41:20 -07:00
term Image decoding is now done in a bg thread 2023-03-17 11:41:20 -07:00
termwiz Image decoding is now done in a bg thread 2023-03-17 11:41:20 -07:00
test-data add tty-test.txt for showing most attributes 2022-09-08 08:14:29 -07:00
umask fix(clippy): Remove unnecessary clone/to_string calls 2023-03-16 07:40:12 -07:00
vtparse Add missing license files 2022-08-17 07:19:12 -07:00
wezterm fix(clippy): Remove unnecessary clone/to_string calls 2023-03-16 07:40:12 -07:00
wezterm-client mux: pass gui window position through from new mux window 2023-02-05 21:43:37 -07:00
wezterm-dynamic fix(clippy): Derive Default where possible 2023-03-15 10:21:11 -07:00
wezterm-font fix(clippy): Remove unnecessary clone/to_string calls 2023-03-16 07:40:12 -07:00
wezterm-gui Image decoding is now done in a bg thread 2023-03-17 11:41:20 -07:00
wezterm-gui-subcommands mux: pass gui window position through from new mux window 2023-02-05 21:43:37 -07:00
wezterm-input-types fix(clippy): Remove unnecessary clone/to_string calls 2023-03-16 07:40:12 -07:00
wezterm-mux-server mux: pass gui window position through from new mux window 2023-02-05 21:43:37 -07:00
wezterm-mux-server-impl mux: pass gui window position through from new mux window 2023-02-05 21:43:37 -07:00
wezterm-ssh Image decoding is now done in a bg thread 2023-03-17 11:41:20 -07:00
wezterm-toast-notification deps: open -> 4.0 2023-03-12 20:37:58 -07:00
window fix(clippy): Remove unnecessary clone/to_string calls 2023-03-16 07:40:12 -07:00
.cirrus.yml ci: use freebsd 13 2023-02-01 08:05:08 -07:00
.gitignore docs: switch doc build to Material for MkDocs 2023-03-15 19:22:51 -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 Image decoding is now done in a bg thread 2023-03-17 11:41:20 -07:00
Cargo.toml x11: potential fix for hanging IME 2022-12-19 12:23:04 -07:00
CONTRIBUTING.md Update rust by example url 2022-07-29 13:18:53 -07:00
get-deps Add Solus build dependencies 2023-02-09 07:08:38 -08:00
LICENSE.md Bundle Symbols Nerd Font Mono 2022-01-16 16:04:35 -07:00
README-DISTRO-MAINTAINER.md fonts: remove last resort font 2022-09-15 08:23:58 -07:00
README.md docs: Correct to new URL 2023-03-16 08:00:28 -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!

Sponsor WezTerm