This library is split into 3 parts:
Terminal
: Low-level utilities, such as:keys()
: to get keystrokescleartoeos
, and many other escapesKeyHandler
: an asynchronous key handlerraw()
, and other terminal status changers- ...
TermCanvas
: a layer of abstraction above the terminal, which contains:Terminal
: a terminal bufferChar
: representation of a terminal characterCanvasApp
: a wrapper for an application using the canvas- ...
TermUI
: An element-based UI library, built upon the other two layers, which has:Root
: the parent element that projects onto the terminalVStack
&HStack
: a dynamic space allocator for elementsText
: text that supports markdown-like fontsAligner
: a container that aligns elements- and many more elements for convenient and easy UI creation
TermIntr
: A library for interactive elements, for example:Button
: a buttonTextbox
: a textbox- ...
As this library is still constantly evolving, I have chosen not to write documentation untill a stable release is created.
For now, you can read the source code, and study applications made with this library, such as the demo script UIDemo.py
and the Befunge IDE Fungelet.