Modernised bindings to GNU ncurses https://john-millikin.com/software/haskell-ncurses/
|Latest on Hackage:||0.2.16|
This package is not currently in any snapshots. If you're interested in using it, we recommend adding it to Stackage Nightly. Doing so will make builds more reliable, and allow stackage.org to host generated Haddocks.
GNU ncurses is a library for creating command-line application with pseudo-graphical interfaces. This package is a nice, modern binding to GNU ncurses.
The following example is a program that displays the message "Hello world!" until the user hits Q:
import UI.NCurses main :: IO () main = runCurses $ do setEcho False w <- defaultWindow updateWindow w $ do moveCursor 1 10 drawString "Hello world!" moveCursor 3 10 drawString "(press q to quit)" moveCursor 0 0 render waitFor w (\ev -> ev == EventCharacter 'q' || ev == EventCharacter 'Q') waitFor :: Window -> (Event -> Bool) -> Curses () waitFor w p = loop where loop = do ev <- getEvent w Nothing case ev of Nothing -> loop Just ev' -> if p ev' then return () else loop