mirror of
https://github.com/ilyakooo0/vty.git
synced 2024-11-30 02:13:36 +03:00
79 lines
1.9 KiB
Markdown
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
|
|
~~~
|