A terminal emulator that runs in your terminal. Powered by Turbo Vision.
tvterm
is an experimental terminal emulator widget and application based on the Turbo Vision framework. It was created for the purpose of demonstrating new features in Turbo Vision such as 24-bit color support.
tvterm
relies on Paul Evan's libvterm terminal emulator, also used by Neovim and Emacs.
As of now, tvterm
can only be compiled for Unix systems.
The original location of this project is https://github.com/magiblot/tvterm.
In order to build tvterm
you must have the following things installed:
- CMake.
- A compiler supporting C 14.
tvterm
's dependencies:libvterm
(e.g.libvterm-dev
in Ubuntu).- Asio 1.12.0 or newer (e.g.
libasio-dev
in Ubuntu).
- Turbo Vision's dependencies:
libncursesw
(Unix only) (e.g.libncursesw5-dev
in Ubuntu).libgpm
(optional, Linux only) (e.g.libgpm-dev
in Ubuntu).
- Turbo Vision itself. You may do this in two different ways:
- Use the
--recursive
option ofgit clone
when cloning this repository (or rungit submodule init && git submodule update
if you have already cloned it). This way, Turbo Vision will be built alongtvterm
. - Clone Turbo Vision separately and follow its build and install instructions. Make sure you don't use a version of Turbo Vision older than the one required by
tvterm
(specified in thetvision
submodule). When buildingtvterm
, enable the CMake option-DTVTERM_USE_SYSTEM_TVISION=ON
.
- Use the
Then build tvterm
with CMake:
cmake . -B ./build -DCMAKE_BUILD_TYPE=Release && # Could also be 'Debug', 'MinSizeRel' or 'RelWithDebInfo'.
cmake --build ./build
CMake versions older than 3.13 may not support the -B
option. You can try the following instead:
mkdir -p build; cd build
cmake .. -DCMAKE_BUILD_TYPE=Release &&
cmake --build .
This project is still WIP. Some features it may achieve at some point are:
- UTF-8 support.
- fullwidth and zero-width character support.
- 24-bit color support.
- Scrollback.
- Text selection.
- Find text.
- Send signal to child process.
- Text reflow on resize.
- Having other terminal emulator implementations to choose from.
- Windows support.
- Better dependency management.