mirror of
https://github.com/gui-cs/Terminal.Gui.git
synced 2026-02-10 04:03:41 +01:00
78b5623dec955f6786b046e8c9ae48a7f5dbc774
* menu deep dive * Fixes #4672. OptionSelector is not behaving properly. * Add NoStop to CheckBox and TextField. Replace commands for Down, Right, Up and Left * Using navigation based on orientation * Fixed ShowValue issue and code cleanup * Refactor selector navigation tests, remove arrow key tests Renamed the Tab/Shift+Tab navigation test for clarity and switched to using the ANSI driver. Removed cleanup code involving SessionToken. Deleted the test covering arrow key navigation within OptionSelector, so tests now only verify focus movement into and out of the selector using Tab and Shift+Tab. Arrow key navigation within the selector is no longer tested. --------- Co-authored-by: Tig <tig@users.noreply.github.com>
Fixes #4332 - Refactor test infrastructure to use modern ApplicationImpl.Coordinator instead of legacy MainLoop (#4335)
#4329—Major Terminal.Gui v2 Architecture Modernization: Application Decoupling, Terminology Improvements, and Nullable Migration (#4338)
Fixes #4471, #4474, #3714, #2588 - MASSIVE: Refactors Mouse, Adds ANSI driver, Enables Input Injection (#4472)
…
Terminal.Gui v2
Cross-platform UI toolkit for building sophisticated terminal UI (TUI) applications on Windows, macOS, and Linux/Unix.
Important:
- v1 is in maintenance mode - only critical bug fixes accepted
- v2 Alpha is recommended for new projects - API is stable with comprehensive features
- Breaking changes possible before Beta, but core architecture is solid
Quick Start
Install the Terminal.Gui.Templates, create a new TUI app, and run it:
dotnet new install Terminal.Gui.Templates@2.0.0-alpha.*
dotnet new tui-simple -n myproj
cd myproj
dotnet run
Run the comprehensive UI Catalog demo to explore all controls:
dotnet run --project Examples/UICatalog/UICatalog.csproj
Simple Example
using Terminal.Gui.App;
using Terminal.Gui.ViewBase;
using Terminal.Gui.Views;
using IApplication app = Application.Create ();
app.Init ();
using Window window = new () { Title = "Hello World (Esc to quit)" };
Label label = new ()
{
Text = "Hello, Terminal.Gui v2!",
X = Pos.Center (),
Y = Pos.Center ()
};
window.Add (label);
app.Run (window);
See the Examples directory for more.
Build Powerful Terminal Applications
Terminal.Gui enables building sophisticated console applications with modern UIs:
- Rich Forms and Dialogs - Text fields, buttons, checkboxes, radio buttons, and data validation
- Interactive Data Views - Tables, lists, and trees with sorting, filtering, and in-place editing
- Visualizations - Charts, graphs, progress indicators, and color pickers with TrueColor support
- Text Editors - Full-featured text editing with clipboard, undo/redo, and Unicode support
- File Management - File and directory browsers with search and filtering
- Wizards and Multi-Step Processes - Guided workflows with navigation and validation
- System Monitoring Tools - Real-time dashboards with scrollable, resizable views
- Configuration UIs - Settings editors with persistent themes and user preferences
- Cross-Platform CLI Tools - Consistent experience on Windows, macOS, and Linux
- Server Management Interfaces - SSH-compatible UIs for remote administration
See the Views Overview for available controls and What's New in v2 for architectural improvements.
Documentation
Comprehensive documentation is at gui-cs.github.io/Terminal.Gui.
Getting Started
- Getting Started Guide - First Terminal.Gui application
- API Reference - Complete API documentation
- What's New in v2 - New features and improvements
Migration & Deep Dives
- Migrating from v1 to v2 - Complete migration guide
- Application Architecture - Instance-based model and IRunnable pattern
- Layout System - Positioning, sizing, and adornments
- Keyboard Handling - Key bindings and commands
- View Documentation - View hierarchy and lifecycle
- Configuration - Themes and persistent settings
See the documentation index for all topics.
Installing
v2 Alpha (Recommended)
dotnet add package Terminal.Gui --version "2.0.0-alpha.*"
v2 Develop (Latest)
dotnet add package Terminal.Gui --version "2.0.0-develop.*"
Or use the Terminal.Gui.Templates:
dotnet new install Terminal.Gui.Templates@2.0.0-alpha.*
v1 Legacy
dotnet add package Terminal.Gui --version "1.*"
Contributing
Contributions welcome! See CONTRIBUTING.md.
History
See gui-cs for project history and origins.
Languages
C#
99.1%
PowerShell
0.9%

