A modern C++ library for creating terminal-based applications with text-based widgets, featuring a Qt-inspired class structure and full mouse support.
FINAL CUT is a modern C++ library for creating terminal-based applications with text-based widgets. It provides a complete windowing system for managing multiple text windows on screen, enabling developers to build user-friendly console applications without relying on external libraries like ncurses. The library offers full mouse support, Unicode compatibility, and a comprehensive set of UI controls.
C++ developers building terminal user interfaces (TUIs) who need a lightweight, dependency-free solution with comprehensive widget support and cross-platform compatibility.
Developers choose FINAL CUT for its self-contained architecture that eliminates external dependencies, its Qt-inspired class structure for familiar development patterns, and its complete feature set including full mouse support and Unicode compatibility in a single library.
A Modern C++ Text-Based Widget Toolkit (TUI)
FINAL CUT is self-contained and does not rely on external libraries like ncurses, simplifying deployment and cross-platform portability as emphasized in the README.
Includes a wide range of UI controls such as dialog boxes, buttons, list boxes, and status bars, demonstrated in the class diagram and screenshots.
Offers complete mouse interaction including clicks, drags, and wheel events, with dedicated documentation for mouse control actions.
Supports UTF-8 encoding, full-width characters, and combined Unicode characters, enabling international text display in terminal applications.
Uses a virtual terminal system with difference-based rendering to minimize terminal output, as illustrated in the architecture diagram.
Installation requires autotools and multi-step compilation (autoreconf, configure, make), which can be cumbersome compared to single-command package manager installations.
Being a standalone library, it lacks the extensive third-party extensions, tutorials, and large user base of established alternatives like ncurses.
While it supports several platforms, exotic or newer terminal environments may require manual contributions, as noted in the README's platform list.
The Qt-inspired architecture assumes familiarity with object-oriented patterns, which might be steep for developers not experienced with similar frameworks.
:computer: C++ Functional Terminal User Interface. :heart:
Lightweight C++ command line option parser
CLI11 is a command line parser for C++11 and beyond that provides a rich feature set with a simple and intuitive interface.
ImTui: Immediate Mode Text-based User Interface C++ Library
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.