Skip to content

jpnp/vty

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

Project is hosted on github.com: https://github.com/coreyoconnor/vty

git clone git://github.com/coreyoconnor/vty.git

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

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

About

John's edits to the Haskell VTY library

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Haskell 94.3%
  • C 5.7%