Skip to content

Latest commit

 

History

History
62 lines (45 loc) · 3.07 KB

README.md

File metadata and controls

62 lines (45 loc) · 3.07 KB

tvterm

A terminal emulator that runs in your terminal. Powered by Turbo Vision.

htop, turbo and notcurses-demo running in tvterm

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.

Additionally, tvterm supports both Unix and Windows (Windows 10 1809 or later).

The original location of this project is https://github.com/magiblot/tvterm.

Building

First of all, you should clone this repository along its submodules with the --recursive option of git clone (or run git submodule init && git submodule update if you have already cloned it).

Then, make sure the following dependencies are installed:

  • CMake.
  • A compiler supporting C++14.
  • libvterm:
    • If you initialized the submodules, you can build libvterm as part of tvterm. Perl is needed for building libvterm.
    • Otherwise, a system-provided libvterm (e.g. libvterm-dev in Ubuntu) can be used if enabling the CMake option -DTVTERM_USE_SYSTEM_LIBVTERM=ON.
  • 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:
    • If you initialized the submodules, you can build Turbo Vision as part of tvterm.
    • Otherwise, 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 the tvision submodule). When building tvterm, enable the CMake option -DTVTERM_USE_SYSTEM_TVISION=ON.

tvterm can be built with the following commands:

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 .

Features

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.
  • Windows support.
  • Scrollback.
  • Text selection.
  • Find text.
  • Send signal to child process.
  • Text reflow on resize.
  • Having other terminal emulator implementations to choose from.
  • Better dependency management.