Dieses Repository enthält den Quellcode für:
Windows-Terminal
Vorschau des Windows-Terminals
Der Windows-Konsolenhost ( conhost.exe
)
Von den beiden Projekten gemeinsam genutzte Komponenten
ColorTool
Beispielprojekte, die zeigen, wie die Windows-Konsolen-APIs genutzt werden
Zu den zugehörigen Repositories gehören:
Windows Terminal-Dokumentation (Repo: Zur Dokumentation beitragen)
Konsolen-API-Dokumentation
Cascadia-Code-Schriftart
Notiz
Windows Terminal erfordert Windows 10 2004 (Build 19041) oder höher
Installieren Sie das Windows-Terminal aus dem Microsoft Store. Dadurch können Sie immer auf der neuesten Version sein, wenn wir neue Builds mit automatischen Upgrades veröffentlichen.
Dies ist unsere bevorzugte Methode.
Für Benutzer, die Windows Terminal nicht aus dem Microsoft Store installieren können, können veröffentlichte Builds manuell von der Seite „Releases“ dieses Repositorys heruntergeladen werden.
Laden Sie die Datei Microsoft.WindowsTerminal_
aus dem Abschnitt „Assets“ herunter. Um die App zu installieren, können Sie einfach auf die .msixbundle
Datei doppelklicken und das App-Installationsprogramm sollte automatisch ausgeführt werden. Wenn dies aus irgendeinem Grund fehlschlägt, können Sie den folgenden Befehl an einer PowerShell-Eingabeaufforderung versuchen:
# HINWEIS: Wenn Sie PowerShell 7+ verwenden, führen Sie bitte # Import-Module Appx -UseWindowsPowerShell# aus, bevor Sie Add-AppxPackage.Add-AppxPackage Microsoft.WindowsTerminal_.msixbundle verwenden
Notiz
Wenn Sie Terminal manuell installieren:
Möglicherweise müssen Sie das VC++ v14 Desktop Framework-Paket installieren. Dies sollte nur bei älteren Builds von Windows 10 erforderlich sein und nur, wenn Sie eine Fehlermeldung über fehlende Framework-Pakete erhalten.
Terminal wird nicht automatisch aktualisiert, wenn neue Builds veröffentlicht werden. Sie müssen daher regelmäßig die neueste Terminal-Version installieren, um die neuesten Korrekturen und Verbesserungen zu erhalten!
Winget-Benutzer können die neueste Terminal-Version herunterladen und installieren, indem sie das Microsoft.WindowsTerminal
-Paket installieren:
Winget Install --id Microsoft.WindowsTerminal -e
Notiz
Abhängigkeitsunterstützung ist in WinGet Version 1.6.2631 oder höher verfügbar. Um die stabile Terminal-Version 1.18 oder höher zu installieren, stellen Sie bitte sicher, dass Sie über die aktualisierte Version des WinGet-Clients verfügen.
Chocolatey-Benutzer können die neueste Terminal-Version herunterladen und installieren, indem sie das microsoft-windows-terminal
Paket installieren:
choco installiert das Microsoft-Windows-Terminal
Führen Sie Folgendes aus, um das Windows-Terminal mit Chocolatey zu aktualisieren:
Choco-Upgrade für Microsoft-Windows-Terminal
Wenn bei der Installation/Aktualisierung des Pakets Probleme auftreten, gehen Sie bitte zur Windows-Terminal-Paketseite und folgen Sie dem Chocolatey-Triage-Prozess
Scoop-Benutzer können die neueste Terminal-Version herunterladen und installieren, indem sie das windows-terminal
Paket installieren:
Schaufeleimer Extras hinzufügen Scoop Windows-Terminal installieren
Führen Sie Folgendes aus, um Windows Terminal mit Scoop zu aktualisieren:
Scoop Update Windows-Terminal
Wenn bei der Installation/Aktualisierung des Pakets Probleme auftreten, suchen Sie diese bitte auf der Problemseite des Scoop Extras-Bucket-Repositorys oder melden Sie diese.
Windows Terminal Canary ist eine nächtliche Version von Windows Terminal. Dieser Build enthält den neuesten Code aus unserem main
und gibt Ihnen die Möglichkeit, Funktionen auszuprobieren, bevor sie in die Windows-Terminalvorschau gelangen.
Windows Terminal Canary ist unser am wenigsten stabiles Angebot, sodass Sie möglicherweise Fehler entdecken, bevor wir sie finden konnten.
Windows Terminal Canary ist als App Installer-Distribution und als Portable ZIP-Distribution verfügbar.
Die App Installer-Distribution unterstützt automatische Updates. Aufgrund von Plattformbeschränkungen funktioniert dieses Installationsprogramm nur unter Windows 11.
Die Portable ZIP-Distribution ist eine portable Anwendung. Es wird nicht automatisch aktualisiert und es wird nicht automatisch nach Updates gesucht. Diese tragbare ZIP-Distribution funktioniert unter Windows 10 (19041+) und Windows 11.
Verteilung | Architektur | Link |
---|---|---|
App-Installer | x64, arm64, x86 | herunterladen |
Tragbares ZIP | x64 | herunterladen |
Tragbares ZIP | ARM64 | herunterladen |
Tragbares ZIP | x86 | herunterladen |
Erfahren Sie mehr über die Arten von Windows-Terminal-Distributionen.
Der Plan für das Windows-Terminal wird hier beschrieben und im Laufe des Projekts aktualisiert.
Bitte nehmen Sie sich ein paar Minuten Zeit, um die folgende Übersicht durchzulesen, bevor Sie in den Code eintauchen:
Windows Terminal ist eine neue, moderne, funktionsreiche und produktive Terminalanwendung für Befehlszeilenbenutzer. Es umfasst viele der von der Windows-Befehlszeilen-Community am häufigsten nachgefragten Funktionen, darunter Unterstützung für Tabulatoren, Rich Text, Globalisierung, Konfigurierbarkeit, Design und Stil und mehr.
Das Terminal muss außerdem unsere Ziele und Maßnahmen erfüllen, um sicherzustellen, dass es schnell und effizient bleibt und keine großen Mengen an Speicher oder Strom verbraucht.
Der Windows-Konsolenhost conhost.exe
ist die ursprüngliche Befehlszeilen-Benutzererfahrung von Windows. Es hostet auch die Befehlszeileninfrastruktur von Windows und den Windows-Konsolen-API-Server, die Eingabe-Engine, die Rendering-Engine, Benutzereinstellungen usw. Der Konsolen-Hostcode in diesem Repository ist die eigentliche Quelle, aus der conhost.exe
in Windows selbst erstellt wird.
Seit der Übernahme der Windows-Befehlszeile im Jahr 2014 hat das Team der Konsole mehrere neue Funktionen hinzugefügt, darunter Hintergrundtransparenz, zeilenbasierte Auswahl, Unterstützung für ANSI-/Virtual-Terminal-Sequenzen, 24-Bit-Farbe und eine Pseudokonsole („ConPTY“). ) und mehr.
Da das Hauptziel der Windows-Konsole jedoch darin besteht, die Abwärtskompatibilität aufrechtzuerhalten, konnten wir viele der Funktionen, die sich die Community (und das Team) in den letzten Jahren gewünscht haben, einschließlich Tabulatoren, Unicode-Text und Emojis, nicht hinzufügen.
Diese Einschränkungen veranlassten uns, das neue Windows-Terminal zu entwickeln.
Weitere Informationen zur Entwicklung der Befehlszeile im Allgemeinen und der Windows-Befehlszeile im Besonderen finden Sie in dieser begleitenden Reihe von Blogbeiträgen im Blog des Befehlszeilenteams.
Bei der Überarbeitung der Windows-Konsole haben wir die Codebasis erheblich modernisiert, logische Einheiten sauber in Module und Klassen getrennt, einige wichtige Erweiterungspunkte eingeführt, mehrere alte, selbst entwickelte Sammlungen und Container durch sicherere, effizientere STL-Container ersetzt und den Code einfacher und einfacher gemacht sicherer durch die Verwendung der Windows-Implementierungsbibliotheken (WIL) von Microsoft.
Diese Überarbeitung führte dazu, dass mehrere der Schlüsselkomponenten der Konsole für die Wiederverwendung in jeder Terminalimplementierung unter Windows verfügbar sind. Zu diesen Komponenten gehören eine neue DirectWrite-basierte Textlayout- und Rendering-Engine, ein Textpuffer, der sowohl UTF-16 als auch UTF-8 speichern kann, ein VT-Parser/Emitter und mehr.
Als wir mit der Planung der neuen Windows-Terminalanwendung begannen, untersuchten und bewerteten wir verschiedene Ansätze und Technologie-Stacks. Letztendlich kamen wir zu dem Schluss, dass wir unsere Ziele am besten erreichen würden, wenn wir unsere Investitionen in unsere C++-Codebasis fortsetzten, die es uns ermöglichen würde, mehrere der oben genannten modernisierten Komponenten sowohl in der bestehenden Konsole als auch im neuen Terminal wiederzuverwenden. Darüber hinaus wurde uns klar, dass wir dadurch einen Großteil des Terminal-Kerns selbst als wiederverwendbares UI-Steuerelement erstellen könnten, das andere in ihre eigenen Anwendungen integrieren können.
Das Ergebnis dieser Arbeit ist in diesem Repo enthalten und wird als Windows-Terminalanwendung bereitgestellt, die Sie aus dem Microsoft Store oder direkt aus den Versionen dieses Repos herunterladen können.
Für weitere Informationen zum Windows-Terminal finden Sie möglicherweise einige dieser Ressourcen nützlich und interessant:
Befehlszeilen-Blog
Blogserie mit Hintergrundinformationen zur Befehlszeile
Windows-Terminalstart: Terminal „Sizzle Video“
Windows-Terminalstart: Build 2019-Sitzung
Run As Radio: Show 645 – Windows Terminal mit Richard Turner
Azure Devops Podcast: Folge 54 – Kayla Cinnamon und Rich Turner über DevOps auf dem Windows-Terminal
Microsoft Ignite 2019-Sitzung: Die moderne Windows-Befehlszeile: Windows-Terminal – BRK3321
Ursache: Sie starten die falsche Lösung in Visual Studio.
Lösung: Stellen Sie sicher, dass Sie das CascadiaPackage
-Projekt in Visual Studio erstellen und bereitstellen.
Notiz
OpenConsole.exe
ist lediglich eine lokal erstellte conhost.exe
, die klassische Windows-Konsole, die die Befehlszeileninfrastruktur von Windows hostet. OpenConsole wird vom Windows-Terminal verwendet, um eine Verbindung zu Befehlszeilenanwendungen herzustellen und mit diesen zu kommunizieren (über ConPty).
Die gesamte Projektdokumentation befindet sich unter aka.ms/terminal-docs. Wenn Sie zur Dokumentation beitragen möchten, senden Sie bitte eine Pull-Anfrage im Windows Terminal Documentation Repo.
Wir freuen uns, mit Ihnen, unserer großartigen Community, zusammenzuarbeiten, um Windows Terminal zu entwickeln und zu verbessern!
Bevor Sie mit der Arbeit an einer Funktion/Fix beginnen , lesen und befolgen Sie bitte unseren Leitfaden für Mitwirkende, um unnötigen oder doppelten Aufwand zu vermeiden.
Der einfachste Weg, mit dem Team zu kommunizieren, ist über GitHub-Issues.
Bitte reichen Sie neue Probleme, Funktionswünsche und Vorschläge ein, suchen Sie jedoch nach ähnlichen offenen/geschlossenen bereits bestehenden Problemen, bevor Sie ein neues Problem erstellen.
Wenn Sie eine Frage stellen möchten, die Ihrer Meinung nach (noch) kein Problem darstellt, wenden Sie sich bitte über Twitter an uns:
Christopher Nguyen, Produktmanager: @nguyen_dows
Dustin Howett, technischer Leiter: @dhowett
Mike Griese, leitender Entwickler: @[email protected]
Carlos Zamora, Entwickler: @cazamor_msft
Pankaj Bhojwani, Entwickler
Leonard Hecker, Entwickler: @LeonardHecker
Sie müssen Windows 10 2004 (Build >= 10.0.19041.0) oder höher ausführen, um Windows Terminal auszuführen
Sie müssen den Entwicklermodus in der Windows-Einstellungen-App aktivieren, um Windows Terminal lokal zu installieren und auszuführen
Sie müssen PowerShell 7 oder höher installiert haben
Sie müssen das Windows 11 (10.0.22621.0) SDK installiert haben
Sie müssen mindestens VS 2022 installiert haben
Sie müssen die folgenden Workloads über den VS Installer installieren. Hinweis: Wenn Sie die Lösung in VS 2022 öffnen, werden Sie aufgefordert, fehlende Komponenten automatisch zu installieren:
C++ (v143) Universelle Windows-Plattformtools
Desktop-Entwicklung mit C++
Universelle Windows-Plattformentwicklung
Die folgenden Einzelkomponenten
Sie müssen das .NET Framework Targeting Pack installieren, um Testprojekte zu erstellen
Dieses Repository verwendet Git-Submodule für einige seiner Abhängigkeiten. Um sicherzustellen, dass Submodule wiederhergestellt oder aktualisiert werden, führen Sie vor dem Erstellen unbedingt Folgendes aus:
Git-Submodul-Update --init --recursive
OpenConsole.sln kann in Visual Studio oder über die Befehlszeile mithilfe einer Reihe praktischer Skripts und Tools im Verzeichnis /tools erstellt werden:
Import-Module .toolsOpenConsole.psm1Set-MsBuildDevEnvironmentInvoke-OpenConsoleBuild
.toolsrazzle.cmd bcz
Um das Windows-Terminal in VS zu debuggen, klicken Sie mit der rechten Maustaste auf CascadiaPackage
(im Projektmappen-Explorer) und gehen Sie zu Eigenschaften. Ändern Sie im Debug-Menü „Anwendungsprozess“ und „Hintergrundaufgabenprozess“ in „Nur nativ“.
Sie sollten dann in der Lage sein, das Terminal-Projekt zu erstellen und zu debuggen, indem Sie F5 drücken. Stellen Sie sicher, dass Sie entweder die Plattform „x64“ oder „x86“ auswählen – das Terminal erstellt nicht für „Jede CPU“ (da das Terminal eine C++-Anwendung und keine C#-Anwendung ist).
? Sie können das Terminal nicht direkt starten, indem Sie WindowsTerminal.exe ausführen. Weitere Einzelheiten zum Grund finden Sie unter Nr. 926, Nr. 4043
Bitte lesen Sie die folgenden kurzen Dokumente zu unseren Codierungspraktiken.
? Wenn Sie feststellen, dass in diesen Dokumenten etwas fehlt, können Sie gerne irgendwo im Repository zu einer unserer Dokumentationsdateien beitragen (oder neue schreiben!).
Dies ist noch in Arbeit, da wir lernen, was wir den Menschen bieten müssen, um effektiv zu unserem Projekt beizutragen.
Codierungsstil
Code-Organisation
Ausnahmen in unserer alten Codebasis
Hilfreiche intelligente Zeiger und Makros für die Schnittstelle mit Windows in WIL
Dieses Projekt hat den Microsoft Open Source Verhaltenskodex übernommen. Weitere Informationen finden Sie in den FAQ zum Verhaltenskodex oder wenden Sie sich bei weiteren Fragen oder Kommentaren an [email protected].