vty/README.md

79 lines
1.9 KiB
Markdown
Raw Normal View History

vty is a terminal interface library.
2013-03-22 11:11:13 +04:00
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.
2013-03-22 11:11:13 +04:00
# 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.
2013-03-22 11:11:13 +04:00
# Platform Support
2013-03-22 11:11:13 +04:00
## 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.
2013-03-22 11:11:13 +04:00
## Windows
2013-03-22 11:11:13 +04:00
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
~~~