@hackage sneakyterm0.1

Tiny, declarative wrapper around ncurses

SneakyTerm gives you MonadTerminal which gives you two operations, tmRender to render a list of tiles, and tmCharEvent to wait for character input. A simple example:

main = do
  let viewport = rectFromOriginAndDim (V2 0 0) (V2 80 25)
  runTerminal viewport $ do
    tmRender [Tile (V2 10 10) '@' (ColorPair Red Blue)]
    _ <- tmCharEvent
    return ()

This will render a red @ at column 11, line 11, with blue background.