1
1
mirror of https://github.com/wez/wezterm.git synced 2024-09-20 11:17:15 +03:00
wezterm/README.md
2018-02-06 21:55:52 -08:00

2.0 KiB

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; I built this incrementally so far so I don't have a complete list. Please open an issue if you work through and discover the full and proper list of packages for ubuntu:

  • xcb and xcb-util development packages
  • fontconfig
  • harfbuzz
  • freetype

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