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

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.

As of now, tvterm can only be compiled for Unix systems.

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

Building

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 of git clone when cloning this repository (or run git submodule init && git submodule update if you have already cloned it). This way, Turbo Vision will be built along tvterm.
    • 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.

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 .

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.
  • 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.
Similar Resources

A little UNIX-inspired terminal application for the Numworks Calculator (not using escher).

A little UNIX-inspired terminal application for the Numworks Calculator (not using escher).

L.E. Terminal (let for short) is a little UNIX-inspired terminal for the Numworks Calculator.

Aug 31, 2022

Draw sequence diagram in text from terminal.

sequence-diagram-cli Draw seqence diagram from terminal.

Dec 20, 2022

Terminal calculator made for programmers working with multiple number representations, sizes, and overall close to the bits

Terminal calculator made for programmers working with multiple number representations, sizes, and overall close to the bits

Programmer calculator The programmer calculator is a simple terminal tool designed to give maximum efficiency and flexibility to the programmer workin

Dec 24, 2022

The new Windows Terminal and the original Windows console host, all in the same place!

The new Windows Terminal and the original Windows console host, all in the same place!

Dec 29, 2022

n³ The unorthodox terminal file manager

n³ The unorthodox terminal file manager

n³ The unorthodox terminal file manager

Jan 1, 2023

Graphs the activity of a chia harvester in a linux terminal.

Graphs the activity of a chia harvester in a linux terminal.

Chia Harvest Graph Monitor for Chia Harvesting Introduction The chiaharvestgraph tool will graph Chia Harvesting activity in a linux terminal. Use a 2

Dec 11, 2022

a simple to use linux terminal

a simple to use linux terminal

Feb 17, 2022

Collection of human friendly terminal interface for git.

Collection of human friendly terminal interface for git.

A collection of human friendly terminal user interface for git.

Dec 30, 2022

Simple benchmark for terminal output

TermBench This is a simple timing utility you can use to see how slow your terminal program is at parsing escape-sequence-coded color output. It can b

Dec 4, 2022
Comments
  • Not compile in ubuntu 20.04. You can made a release bin please?

    Not compile in ubuntu 20.04. You can made a release bin please?

    /home/linuxbrew/.linuxbrew/bin/ld: libtvterm-core.a(unity_0_cxx.cxx.o): warning: relocation against _ZN6tvterm16TerminalActivity13inputWaitStepE' in read-only section.text' /home/linuxbrew/.linuxbrew/bin/ld: libtvterm-core.a(unity_0_cxx.cxx.o): in function tvterm::TerminalActivity::advanceWaitState(int, bool)': unity_0_cxx.cxx:(.text+0x5d9d): undefined reference totvterm::TerminalActivity::maxReadTime' /home/linuxbrew/.linuxbrew/bin/ld: unity_0_cxx.cxx:(.text+0x5eb3): undefined reference to `tvterm::TerminalActivity::inputWaitStep' /home/linuxbrew/.linuxbrew/bin/ld: warning: creating DT_TEXTREL in a PIE collect2: error: ld returned 1 exit status make[2]: *** [CMakeFiles/tvterm.dir/build.make:108: tvterm] Error 1 make[1]: *** [CMakeFiles/Makefile2:155: CMakeFiles/tvterm.dir/all] Error 2

    imagen

    imagen

Related tags
BCJR-based decoder for CCSDS turbo codes (according to CCSDS 131.0-B-3)

ccsds-tc ccsds-tc is a small project that attempts to systematize the decoding of space packets as received by ground stations of the Amateur DSN. Thi

Feb 23, 2022
X terminal emulator rendering through OpenGL ES Compute Shaders

Zutty is a terminal emulator for the X Window System, functionally similar to several other X terminal emulators such as xterm, rxvt and countless others

Dec 24, 2022
Contour - A modern C++ Terminal Emulator
 Contour - A modern C++ Terminal Emulator

contour is a modern terminal emulator, for everyday use. It is aiming for power users with a modern feature mindset.

Dec 28, 2022
Spitfire is a basic terminal language that can exicute code via the terminal.

Spitfire is a basic terminal language that can exicute code via the terminal. It is easy to learn and runs fast, considering that its just a 300 line c++ file.

Nov 18, 2021
Broadsheet allows you to check world news anywhere, anytime - from the comfort of your own terminal.
Broadsheet allows you to check world news anywhere, anytime - from the comfort of your own terminal.

Broadsheet Broadsheet allows you to check world news anywhere, anytime - from the comfort of your own terminal. Table of Contents Broadsheet Table of

Apr 23, 2022
A (relatively) small node library to clone and pull git repositories in a standalone manner thanks to libgit2, powered by WebAssembly and Emscripten

simple-git-wasm A (relatively) small node library to clone and pull git repositories in a standalone manner thanks to libgit2, powered by WebAssembly

Oct 16, 2022
CLIp is a clipboard emulator for a command line interface written in 100% standard C only. Pipe to it to copy, pipe from it to paste.

CLIp v2 About CLIp is a powerful yet easy to use and minimal clipboard manager for a command line environment, with no dependencies or bloat. Usage Sy

Sep 18, 2021
kernalemu is a C reimplementation of the Commodore KERNAL API, combined with a 6502 emulator.

kernalemu - Commodore KERNAL emulator kernalemu is a C reimplementation of the Commodore KERNAL API, combined with a 6502 emulator. It allows runnung

Dec 26, 2022
Small header only C++ library for writing multiplatform terminal applications

Terminal Terminal is small header only library for writing terminal applications. It works on Linux, macOS and Windows (in the native cmd.exe console)

Jan 2, 2023
:computer: C++ Functional Terminal User Interface. :heart:
:computer: C++ Functional Terminal User Interface. :heart:

FTXUI Functional Terminal (X) User interface A simple C++ library for terminal based user interface. Demo: Feature Functional style. Inspired by [1] a

Jan 3, 2023