Skip to content
Alexandru Ciobanu edited this page Dec 14, 2022 · 6 revisions

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!

Clone this wiki locally