* Add collection search matcher * Fix naming * fix naming * Move FileDialogCollectionNavigator to its own file (no longer private class) Add class diagram for collectionNavigation * Add ICollectionNavigator interface * Move to separate file IListCollectionNavigator * Update class diagram * update class diagram * Add tests for overriding ICollectionNavigatorMatcher * xmldoc and nullability warning fixes * Code Cleanup * Make requested changes to naming and terminology * Move to seperate namespace * Update class diagram and change TreeView to reference the interface not concrete class * Switch to implicit new * highlight that this class also works with tree view * Apply tig patch to ensure keybindings get priority over navigator See: https://github.com/gui-cs/Terminal.Gui/issues/4027#issuecomment-2810020893 * Apply 'keybinding has priority' fix to TreeView too * Apply 'keybindngs priority over navigation' fix to TableView * Remove entire branch for selectively returning false now that it is default when there is a keybinding collision * Make classes internal and remove 'custom' navigator that was configured in UICatlaogToplevel * Change logging in collection navigator from Trace to Debug * Switch to NewKeyDownEvent and directly setting HasFocus * Remove application top dependency * Remove references to application * Remove Application * Move new tests to parallel --------- Co-authored-by: Tig <tig@users.noreply.github.com>
- The current, stable, release of Terminal.Gui v1 is
.
- The current
prealpharelease of Terminal.Gui v2 can be found on Nuget. - Developers starting new TUI projects are encouraged to target
v2. The API is significantly changed, and significantly improved. There will be breaking changes in the API before Beta, but the core API is stable. v1is in maintenance mode and we will only accept PRs for issues impacting existing functionality.
Terminal.Gui: A toolkit for building rich console apps for Windows, the Mac, and Linux/Unix.
Quick Start
Paste these commands into your favorite terminal on Windows, Mac, or Linux. This will install the Terminal.Gui.Templates, create a new "Hello World" TUI app, and run it.
(Press CTRL-Q to exit the app)
dotnet new --install Terminal.Gui.templates
dotnet new tui -n myproj
cd myproj
dotnet run
To run the UICatalog demo app that shows all the controls and features of the toolkit, use the following command:
dotnet run --project Examples/UICatalog/UICatalog.csproj
There is also a visual designer (uses Terminal.Gui itself).
Documentation
The above documentation matches the most recent Nuget release from the v2_develop branch. Get the v1 documentation here.
See the Terminal.Gui/README for an overview of how the library is structured.
Showcase & Examples
-
The ./Examples/UICatalog project is a showcase of all the controls and features of the toolkit. There are more examples in the ./Examples folder.
-
Showcase is a place where you can find all kind of projects from simple examples to advanced real world apps that fully utilize capabilities of the toolkit. The team is looking forward to seeing new amazing projects made by the community to be added there!
Sample Usage in C#
The following example shows a basic Terminal.Gui application in C#:
Example (source)
When run the application looks as follows:
Sample usage in F#
An F# example is located here.
Installing
Use NuGet to install the Terminal.Gui NuGet package: https://www.nuget.org/packages/Terminal.Gui
Installation in .NET Core Projects
To install Terminal.Gui into a .NET Core project, use the dotnet CLI tool with this command.
dotnet add package Terminal.Gui
Or, you can use the Terminal.Gui.Templates.
Contributing
See CONTRIBUTING.md.
Debates on architecture and design can be found in Issues tagged with design.
History
See gui-cs for how this project came to be.


