lmemsm ([personal profile] lmemsm) wrote2024-06-24 11:58 am
Entry tags:

Text User Interfaces

I'm investigating ncurses/pdcurses and various other implementations of the curses library. Since there are several, I thought it would be useful to start a list to keep track of them all.

ncurses
https://invisible-island.net/ncurses/
ncurses is typically the mostly widely used variant of curses.

PDCurses
https://github.com/wmcbrine/PDCurses
PDCcurses has been used for a long time on DOS and Windows machines. ncurses did not originally have a Windows port and still does not include a DOS port. So PDCurses is used in that situation. PDCurses added a simple X11 backend which works with older versions of X and later SDL 1 and 2 backends so that it will work anywhere SDL does. That makes it useable with mobile devices or Webassembly.

PDCursesMod
https://www.projectpluto.com/win32a.htm
https://github.com/Bill-Gray/PDCursesMod
PDCursesMod is a fork of PDCurses that adds a Win32 backend. The original PDCurses only supported console mode in Windows.

NetBSD-libcurses
https://github.com/sabotage-linux/netbsd-curses
NetBSD had it's own version of curses. The version used by Sabotage Linux and some other lightweight Linux distributions is based on the NetBSD version but ported to work on Linux.

TinyCurses
https://github.com/tommyettinger/TinyCurses
TinyCurses is a subset of curses that uses SDL 1.2 for rendering.

incurses
https://github.com/infinnovation-dev/incurses
A minimal implementation of curses for embedded systems.

mcurses.h
https://github.com/yui0/slibs/blob/master/mcurses.h
An implementation of curses as a single header library. It uses termios.