-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Welcome to Sharpie, the NCurses-based terminal manipulation library for modern .NET (6 and above).
Start by reading about Setting Up The Terminal, and feel free to report any issues and feature requests.
The library was born out of my need for a simple .NET library to use the terminal. What about the standard .NET Console
class you might ask? Console
is great if your needs are simple, like writing some text and reading input, but for more complicated scenarios it is woefully useless.
The only viable way to have full control over the terminal is either to write a complete xterm
/vt1000
emulation library from scratch or use an existing one such as ncurses
. This project chose the latter option because NCurses
is well-established, maintained, and available on most platforms.
The philosophy behind this library is simple -- provide a thin layer over NCurses and still hide away as many details and quirks as possible. Some of NCurses
functionality is deliberately not used or disabled as it doesn't add any value or creates too many complications. For example, things such as nl
, halfdelay
modes, and all mv*
functions and etc are deliberately not used.
On the flip side, color management is not totally abstracted away. Concepts like colorpair
are simply wrapped into ColorMixture
class to make it more .NET-ish but otherwise unchanged.
You can learn more by studying the source code.
Enjoy!