Skip to content
Jakub Sobon edited this page Mar 3, 2019 · 7 revisions

Termdash aims to enable developers to create command line applications. This is done by providing an infrastructure that allows the developer to set the layout of the terminal and a library of widgets that either display data to the end user or allow the end user to interact with the application.

Developers interact with the following Termdash layers:

  • The terminal implementations in the terminal/ directory.
  • The infrastructure in the termdash package.
  • The container in the container package.
  • The widgets in the widgets/ directory.

Additionally some data only types are defined in in the following packages:

  • The align package which defines forms of alignment.
  • The cell package which defines universal options for terminal cells.
  • The keyboard package which defines keyboard keys.
  • The mouse package which defines mouse buttons.

The terminal

The terminal directory contains terminal drivers, i.e. libraries that expose a cell view of the terminal. This is separately exposed so that multiple implementations are possible.

The infrastructure

The infrastructure allows the developer to start and stop the application, choose how often will the screen redraw, how to respond to runtime errors. It also enabled the developer to subscribe to keyboard and mouse events.

The container

The container is used to split the raw terminal into smaller portions (containers) and manage the layout of the screen. Individual containers can contain widgets, have borders and track keyboard focus.

The widgets

Termdash comes with a library of widgets, they can display data, show progress or accept input from the end-user.

More resources

Refer to the API Documentation or the Examples to learn more.

Clone this wiki locally