A high-level ncurses alternative written in Haskell
Go to file
coreyoconnor 9ade7f7101 adjust compiler optimization options
Ignore-this: c8f0131117c6c6b5b39892a3967eeceb

darcs-hash:20100114051647-f0a0d-bcd3148f3e59c7b321043a2539c0a21090f6b466.gz
2010-01-13 21:16:47 -08:00
cbits use alloca instead of mallocBytes for exception safety 2009-09-04 10:29:28 -07:00
docs - 2009-11-07 00:34:29 -08:00
src adjust compiler optimization options 2010-01-13 21:16:47 -08:00
test Optimize bytes_for_range - replace with direct ptr access when possible 2010-01-13 18:22:36 -08:00
CHANGELOG uping version to 4.3.0.0 for development 2009-12-28 15:33:00 -08: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 change Attr record accessors 2009-11-08 14:57:27 -08: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 adjust compiler optimization options 2010-01-13 21:16:47 -08:00

vty is a terminal interface library.

Vty currently provides:

* 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.

Current disadvantages:

* 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.

darcs get --tag=vty-4.0.0.1 http://code.haskell.org/vty/

To compile the demonstration program: ghc --make test/Test.hs gwinsz.c

The main documentation consists of the haddock-comments and the demonstration
program