2009-11-09 01:57:27 +03:00
|
|
|
vty is a terminal interface library.
|
2009-09-04 21:29:28 +04:00
|
|
|
|
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
|
2009-09-04 21:29:28 +04:00
|
|
|
|
|
|
|
* Automatic handling of window resizes.
|
|
|
|
|
|
|
|
* Supports Unicode characters on output, automatically setting and
|
2009-11-09 01:57:27 +03:00
|
|
|
resetting UTF-8 mode for xterm. Other terminals are assumed to support
|
2009-09-04 21:29:28 +04:00
|
|
|
|
2009-11-09 01:57:27 +03:00
|
|
|
* Efficient output.
|
2009-09-04 21:29:28 +04:00
|
|
|
|
|
|
|
* 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
|
2009-11-09 01:57:27 +03:00
|
|
|
a type-safe interface.
|
2009-09-04 21:29:28 +04:00
|
|
|
|
2013-12-23 12:06:10 +04:00
|
|
|
* Properly handles cleanup, but not due to signals.
|
2009-09-04 21:29:28 +04:00
|
|
|
|
2013-03-22 11:11:13 +04:00
|
|
|
# Known Issues
|
2009-09-04 21:29:28 +04:00
|
|
|
|
2013-12-23 12:06:10 +04:00
|
|
|
* Signal handling of STOP, TERM and INT are non existent.
|
2009-09-04 21:29:28 +04:00
|
|
|
|
2013-12-23 12:06:10 +04:00
|
|
|
* The character encoding of the terminal is assumed to be UTF-8.
|
|
|
|
|
|
|
|
* Terminfo is assumed to be correct unless the terminal (as declared by TERM) starts with xterm or
|
|
|
|
ansi. This means that some terminals will not have correct special key support (shifted F10 etc)
|
2009-09-04 21:29:28 +04:00
|
|
|
|
|
|
|
* 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
|
2011-05-25 05:07:33 +04:00
|
|
|
|
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.
|
2009-09-04 21:29:28 +04:00
|
|
|
|
2013-03-22 11:11:13 +04:00
|
|
|
## Windows
|
2009-09-04 21:29:28 +04:00
|
|
|
|
2013-03-22 11:11:13 +04:00
|
|
|
None!
|
2013-07-02 20:42:42 +04:00
|
|
|
|
|
|
|
# Development Notes
|
|
|
|
|
|
|
|
## Coverage
|
|
|
|
|
2013-07-08 00:55:23 +04:00
|
|
|
Profiling appears to cause issues with coverage when enabled. To evaluate coverage configure as
|
|
|
|
follows:
|
|
|
|
|
|
|
|
~~~
|
2013-07-27 12:00:25 +04:00
|
|
|
rm -rf dist ; cabal configure --enable-tests --enable-library-coverage \
|
2013-07-08 00:55:23 +04:00
|
|
|
--disable-library-profiling \
|
|
|
|
--disable-executable-profiling
|
|
|
|
~~~
|
2013-07-28 01:29:46 +04:00
|
|
|
|
|
|
|
## Profiling
|
|
|
|
|
|
|
|
|
|
|
|
~~~
|
|
|
|
rm -rf dist ; cabal configure --enable-tests --disable-library-coverage \
|
|
|
|
--enable-library-profiling \
|
|
|
|
--enable-executable-profiling
|
|
|
|
~~~
|