1
1
mirror of https://github.com/wez/wezterm.git synced 2024-12-23 13:21:38 +03:00
A GPU-accelerated cross-platform terminal emulator and multiplexer written by @wez and implemented in Rust
Go to file
2018-02-06 22:24:36 -08:00
src add support for setting the primary selection 2018-02-06 20:40:46 -08:00
term add support for setting the primary selection 2018-02-06 20:40:46 -08:00
.gitignore Add fontconfig support to locate fonts 2018-01-15 17:32:31 -08:00
.rustfmt.toml avoid .bk files when rustfmt'ing 2018-01-27 14:20:15 -08:00
.travis.yml Meh, TravisCI Ubuntu is too old. 2018-02-06 22:24:36 -08:00
Cargo.toml fix an issue with CR processing 2018-01-31 19:00:15 -08:00
LICENSE.md flesh out some details prior to pushing to github 2018-02-06 21:32:40 -08:00
README.md Meh, TravisCI Ubuntu is too old. 2018-02-06 22:24:36 -08:00

Wez's Terminal

A terminal emulator implemented in Rust.

Quickstart

  • Install rustup to get the nightly rust compiler installed on your system. https://www.rust-lang.org/en-US/install.html
  • Build in release mode: cargo build --release
  • Run it via either cargo run --release or target/release/wezterm

You will need a collection of support libraries; important to note is that your harfbuzz library must have support for hb_ft_font_create_referenced; older linux distributions don't have this!

$ sudo apt-get install -y libxcb-icccm4-dev libxcb-ewmh-dev \
    libxcb-image0-dev libxcb-keysyms1-dev libharfbuzz-dev \
    libfontconfig1-dev libfreetype6-dev

What?

Here's what I'm shooting for:

  • A terminal escape sequence parser
  • A model of a terminal screen + scrollback that is OS independent
  • Textual and GUI rendering of the model
  • A differential protocol for the model

This would manifest as a common core that could run as both a textual terminal multiplexer and a gui terminal emulator, where the GUI part could automatically provide a native UI around the remotely multiplexed terminal session.

Status / Features

These are in the done/doing soon category:

  • Runs on Linux with XCB
  • Scrollback (use mouse wheel and Shift Page{Up|Down})
  • True Color support
  • Color Emoji and font fallback (Note: currently assumes you have the Operator font!)
  • Paste selection via Shift-Insert
  • xterm style selection of text with mouse
  • Configuration file to specify fonts and colors
  • Render underline, italic, bold, strikethrough
  • Command line argument parsing / launching of user shell (currently runs only zsh!)

There's a good number of terminal escape sequences that are not yet implemented and that will get fleshed out as the applications I use uncover them. Similarly for key mappings.

Things that I'd like to see happen and that have no immediate priority (contributions to get closer to these are welcomed!)

  • Runs on macOS
  • Tabs
  • Textual renderer. Think tmux or screen.
  • Runs on Windows