vty/README.md
2013-07-27 14:29:46 -07:00

79 lines
1.9 KiB
Markdown

vty is a terminal interface library.
Project is hosted on github.com: https://github.com/coreyoconnor/vty
git clone git://github.com/coreyoconnor/vty.git
# Features
* Automatic handling of window resizes.
* Supports Unicode characters on output, automatically setting and
resetting UTF-8 mode for xterm. Other terminals are assumed to support
* Efficient output.
* Minimizes repaint area, thus virtually eliminating the flicker
problem that plagues ncurses programs.
* A pure, compositional interface for efficiently constructing display
images.
* Automatically decodes keyboard keys into (key,[modifier]) tuples.
* Automatically supports refresh on Ctrl-L.
* Automatically supports timeout after 50ms for lone ESC (a barely
noticable delay)
* Interface is designed for relatively easy compatible extension.
* Supports all ANSI SGR-modes (defined in console_codes(4)) with
a type-safe interface.
* Properly handles cleanup.
# Known Issues
* The character encoding of the output terminal is assumed to be UTF-8.
* Minimal support for special keys on terminals other than the
linux-console. (F1-5 and arrow keys should work, but anything
shifted isn't likely to.)
* Uses the TIOCGWINSZ ioctl to find the current window size, which
appears to be limited to Linux and *BSD.
# Platform Support
## Posix Terminals
Uses terminfo to determine terminal protocol. Some special rules for Mac terminal applications. The
special rules might be invalid on newer Mac OS.
## Windows
None!
# Development Notes
## Coverage
Profiling appears to cause issues with coverage when enabled. To evaluate coverage configure as
follows:
~~~
rm -rf dist ; cabal configure --enable-tests --enable-library-coverage \
--disable-library-profiling \
--disable-executable-profiling
~~~
## Profiling
~~~
rm -rf dist ; cabal configure --enable-tests --disable-library-coverage \
--enable-library-profiling \
--enable-executable-profiling
~~~