BDisp 00aaefb962 Fixes #3951. Adds View dependency to DimFunc and PosFunc (#4210)
* Fixes #4208. MainLoopSyncContext doesn't work with the v2 drivers

* Fixes #3951. Add DimFuncWithView with a View dependency

* Revert to iteration which will handle the necessary processes

* Revert "Revert to iteration which will handle the necessary processes"

This reverts commit 50015ac6da.

* Layout and draw before position cursor

* Add optional View parameter and property to the DimFunc and PosFunc

* Trying fix unit test error

* Revert layout changes

* Fixes #4216. Legacy drivers aren't refreshing the screen correctly on view drag

* Add assertion proving NeedsLayout is always false before call OnSubViewsLaidOut

* Fix unit test error

* Increasing time to abort

* Revert "Increasing time to abort"

This reverts commit d7306e72f3.

* Trying fix integration tests

* Still trying fix integrations unit tests

* Revert comment

* Layout is performed during the iteration

* Using Dim.Func with status bar view

* Still trying fix integrations tests by locking _subviews

* Still trying fix integrations tests by locking _subviews

* Add internal SnapshotSubviews method

* Remove lock from SnapshotSubviews method

* Using SnapshotSubviews method in the DrawSubViews method

* Remove lock from SnapshotSubviews method

* Using SnapshotSubviews method in the DrawSubViews method

* Using SnapshotSubviews

* Prevent new app if the previous wasn't yet finished

* Replace SnapshotSubviews method with ViewCollectionHelpers class

* Lock entire GuiTestContext constructor

* Using Snapshot in the ordered field

* Fixes #4221 Extra modifiers f1 to f4 in v2net (#4220)

* Assume we are running in a terminal that supports true color by default unless user explicitly forces 16

* Add support for extra modifiers for F1 to F4 keys

* Revert "Assume we are running in a terminal that supports true color by default unless user explicitly forces 16"

This reverts commit 4cc2530de0.

* Cleanup

* Update comments

* Code cleanup

---------

Co-authored-by: Tig <tig@users.noreply.github.com>

* Move ViewCollectionHelpers class to a separate file

* Remove Border.Layout call in the DoDrawAdornmentsSubViews method.

* Remove adornments layout call within the draw

---------

Co-authored-by: Tig <tig@users.noreply.github.com>
Co-authored-by: Thomas Nind <31306100+tznind@users.noreply.github.com>
2025-09-01 10:40:10 -06:00
2025-06-12 12:27:06 -06:00
2025-03-06 12:48:44 -07:00
2024-06-25 05:53:19 -07:00
2025-06-12 13:45:39 -06:00
2025-06-12 12:16:54 -06:00
2025-05-31 19:25:30 -06:00
2025-05-31 19:25:30 -06:00

.NET Core Version Code Coverage Downloads License Bugs

Terminal.Gui v2

The premier toolkit for building rich console apps for Windows, the Mac, and Linux/Unix.

logo

  • The current, stable, release of Terminal.Gui v1 is Version.

⚠️ Note:
v1 is in maintenance mode and we will only accept PRs for issues impacting existing functionality.

  • The current Alpha release of Terminal.Gui v2 is NuGet Version

⚠️ Note:
Developers starting new TUI projects are encouraged to target v2 Alpha. The API is significantly changed, and significantly improved. There will be breaking changes in the API before Beta, but the core API is stable.

Sample app

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 full developer documentation for Terminal.Gui is available at gui-cs.github.io/Terminal.Gui.

Getting Started

API Reference

For detailed API documentation, see the API Reference.

Installing

Use NuGet to install the Terminal.Gui NuGet package:

v2 Alpha

(Infrequently updated, but stable enough for production use)

dotnet add package Terminal.Gui --version "2.0.0-alpha.*"

v2 Develop

(Frequently updated, but may have breaking changes)

dotnet add package Terminal.Gui --version "2.0.0-develop.*"

Legacy v1

dotnet add package Terminal.Gui --version "1.*

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.

Languages
C# 99.4%
PowerShell 0.6%