A high-level ncurses alternative written in Haskell
Go to file
Corey O'Connor e973a0de7f in progress
2013-05-16 13:44:04 -07:00
cbits prefixed all c functions to avoid Cabal bug #944 2012-04-22 15:49:25 +02:00
docs - 2009-11-07 00:34:29 -08:00
src in progress 2013-05-16 13:44:04 -07:00
test in progress 2013-05-16 13:44:04 -07:00
.gitignore add remaining benchmarks to simple benchmark runner 2013-01-27 23:08:08 -08:00
AUTHORS update AUTHORS 2010-08-06 14:16:26 -07:00
CHANGELOG Up version to 4.7.0.0. Tweak documentation. 2011-05-24 18:07:33 -07:00
DESIGN adding example of Graphics.Vty.Inline to test 2009-12-28 15:32:18 -08:00
LICENSE use alloca instead of mallocBytes for exception safety 2009-09-04 10:29:28 -07:00
README.md markdown README 2013-03-22 00:13:20 -07:00
Setup.lhs use alloca instead of mallocBytes for exception safety 2009-09-04 10:29:28 -07:00
TODO adding example of Graphics.Vty.Inline to test 2009-12-28 15:32:18 -08:00
vty.cabal in progress 2013-05-16 13:44:04 -07:00

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!