1
1
mirror of https://github.com/wez/wezterm.git synced 2024-12-23 05:12:40 +03:00

flesh out some details prior to pushing to github

This commit is contained in:
Wez Furlong 2018-02-06 21:32:40 -08:00
parent 532cf28782
commit 38bfd8bdc9
2 changed files with 68 additions and 3 deletions

21
LICENSE.md Normal file
View File

@ -0,0 +1,21 @@
MIT License
Copyright (c) 2018 Wez Furlong
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@ -1,15 +1,59 @@
# Wez's Term # Wez's Terminal
A terminal emulator implemented in Rust.
## Quickstart
* Install `rustup` to get the `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? ## What?
Here's what I'm shooting for: Here's what I'm shooting for:
* A terminal escape sequence parser * A terminal escape sequence parser
* A differential screen protocol * A model of a terminal screen + scrollback that is OS independent
* Textual and GUI rendering of the screen protocol * 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 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 terminal multiplexer and a gui terminal emulator, where the GUI part
could automatically provide a native UI around the remotely multiplexed could automatically provide a native UI around the remotely multiplexed
terminal session. terminal session.
## Status / Features
These are in the done/doing soon category:
- [x] Runs on Linux with XCB
- [x] Scrollback (use mouse wheel and Shift Page{Up|Down})
- [x] True Color support
- [x] Color Emoji and font fallback (Note: currently assumes you have the Operator font!)
- [x] 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