Ce référentiel contient le code source de :
Terminal Windows
Aperçu du terminal Windows
L'hôte de la console Windows ( conhost.exe
)
Composants partagés entre les deux projets
Outil Couleur
Exemples de projets montrant comment utiliser les API de la console Windows
Les référentiels associés incluent :
Documentation du terminal Windows (Repo : contribuer à la documentation)
Documentation de l'API de la console
Police de code Cascadia
Note
Le terminal Windows nécessite Windows 10 2004 (build 19041) ou version ultérieure
Installez le terminal Windows à partir du Microsoft Store. Cela vous permet de toujours utiliser la dernière version lorsque nous publions de nouvelles versions avec des mises à niveau automatiques.
C'est notre méthode préférée.
Pour les utilisateurs qui ne peuvent pas installer Windows Terminal à partir du Microsoft Store, les versions publiées peuvent être téléchargées manuellement à partir de la page Versions de ce référentiel.
Téléchargez le fichier Microsoft.WindowsTerminal_
à partir de la section Actifs . Pour installer l'application, vous pouvez simplement double-cliquer sur le fichier .msixbundle
et le programme d'installation de l'application devrait s'exécuter automatiquement. Si cela échoue pour une raison quelconque, vous pouvez essayer la commande suivante à une invite PowerShell :
# REMARQUE : Si vous utilisez PowerShell 7+, veuillez exécuter# Import-Module Appx -UseWindowsPowerShell# avant d'utiliser Add-AppxPackage.Add-AppxPackage Microsoft.WindowsTerminal_.msixbundle
Note
Si vous installez Terminal manuellement :
Vous devrez peut-être installer le package Framework de bureau VC++ v14. Cela ne devrait être nécessaire que sur les anciennes versions de Windows 10 et uniquement si vous obtenez une erreur concernant les packages de framework manquants.
Terminal ne se mettra pas à jour automatiquement lorsque de nouvelles versions seront publiées, vous devrez donc régulièrement installer la dernière version de Terminal pour recevoir tous les derniers correctifs et améliorations !
Les utilisateurs de Winget peuvent télécharger et installer la dernière version du Terminal en installant le package Microsoft.WindowsTerminal
:
winget install --id Microsoft.WindowsTerminal -e
Note
La prise en charge des dépendances est disponible dans WinGet version 1.6.2631 ou ultérieure. Pour installer la version stable de Terminal 1.18 ou ultérieure, assurez-vous de disposer de la version mise à jour du client WinGet.
Les utilisateurs de Chocolatey peuvent télécharger et installer la dernière version de Terminal en installant le package microsoft-windows-terminal
:
choco installer le terminal Microsoft Windows
Pour mettre à niveau le terminal Windows à l'aide de Chocolatey, exécutez ce qui suit :
choco mise à niveau du terminal Microsoft Windows
Si vous rencontrez des problèmes lors de l'installation/mise à niveau du package, veuillez accéder à la page du package Windows Terminal et suivez le processus de tri Chocolatey.
Les utilisateurs de Scoop peuvent télécharger et installer la dernière version du Terminal en installant le package windows-terminal
:
seau à cuillère ajouter des extras scoop installer le terminal Windows
Pour mettre à jour le terminal Windows à l'aide de Scoop, exécutez ce qui suit :
mise à jour du terminal Windows
Si vous rencontrez des problèmes lors de l'installation/de la mise à jour du package, veuillez rechercher ou signaler le même problème sur la page des problèmes du référentiel de compartiments Scoop Extras.
Windows Terminal Canary est une version nocturne de Windows Terminal. Cette version contient le dernier code de notre branche main
, vous donnant la possibilité d'essayer les fonctionnalités avant qu'elles n'arrivent dans Windows Terminal Preview.
Windows Terminal Canary est notre offre la moins stable, vous risquez donc de découvrir des bogues avant que nous ayons eu la chance de les trouver.
Windows Terminal Canary est disponible sous forme de distribution App Installer et de distribution ZIP portable.
La distribution App Installer prend en charge les mises à jour automatiques. En raison des limitations de la plate-forme, ce programme d'installation ne fonctionne que sous Windows 11.
La distribution Portable ZIP est une application portable. Il ne se mettra pas à jour automatiquement et ne recherchera pas automatiquement les mises à jour. Cette distribution ZIP portable fonctionne sur Windows 10 (19041+) et Windows 11.
Distribution | Architecture | Lien |
---|---|---|
Installateur d'application | x64, bras64, x86 | télécharger |
ZIP portatif | x64 | télécharger |
ZIP portatif | ARM64 | télécharger |
ZIP portatif | x86 | télécharger |
Apprenez-en davantage sur les types de distributions Windows Terminal.
Le plan du terminal Windows est décrit ici et sera mis à jour au fur et à mesure de l'avancée du projet.
Veuillez prendre quelques minutes pour consulter l'aperçu ci-dessous avant de plonger dans le code :
Windows Terminal est une nouvelle application de terminal moderne, riche en fonctionnalités et productive pour les utilisateurs en ligne de commande. Il inclut de nombreuses fonctionnalités les plus fréquemment demandées par la communauté de ligne de commande Windows, notamment la prise en charge des onglets, du texte enrichi, de la globalisation, de la configurabilité, des thèmes et du style, etc.
Le terminal devra également répondre à nos objectifs et prendre nos mesures pour garantir qu'il reste rapide et efficace, et qu'il ne consomme pas de grandes quantités de mémoire ou d'énergie.
L'hôte de la console Windows, conhost.exe
, est l'expérience utilisateur de ligne de commande originale de Windows. Il héberge également l'infrastructure de ligne de commande de Windows et le serveur API de la console Windows, le moteur d'entrée, le moteur de rendu, les préférences utilisateur, etc. Le code hôte de la console dans ce référentiel est la source réelle à partir de laquelle le conhost.exe
dans Windows lui-même est construit.
Depuis qu'elle a pris possession de la ligne de commande Windows en 2014, l'équipe a ajouté plusieurs nouvelles fonctionnalités à la console, notamment la transparence de l'arrière-plan, la sélection par ligne, la prise en charge des séquences ANSI/Terminal virtuel, la couleur 24 bits, une pseudoconsole ("ConPTY" ), et bien plus encore.
Cependant, comme l'objectif principal de la console Windows est de maintenir la compatibilité ascendante, nous n'avons pas été en mesure d'ajouter de nombreuses fonctionnalités que la communauté (et l'équipe) souhaitaient depuis plusieurs années, notamment les onglets, le texte Unicode et les emoji.
Ces limitations nous ont amenés à créer le nouveau Terminal Windows.
Vous pouvez en savoir plus sur l'évolution de la ligne de commande en général, et de la ligne de commande Windows en particulier, dans cette série d'articles de blog sur le blog de l'équipe Command-Line.
Lors de la refonte de la console Windows, nous avons considérablement modernisé sa base de code, séparant clairement les entités logiques en modules et classes, introduit quelques points d'extensibilité clés, remplacé plusieurs anciennes collections et conteneurs développés en interne par des conteneurs STL plus sûrs et plus efficaces, et rendu le code plus simple et plus sûr en utilisant les bibliothèques d'implémentation Windows de Microsoft - WIL.
Cette refonte a permis de rendre plusieurs composants clés de la console disponibles pour être réutilisés dans n'importe quelle implémentation de terminal sous Windows. Ces composants incluent un nouveau moteur de mise en page et de rendu de texte basé sur DirectWrite, un tampon de texte capable de stocker à la fois UTF-16 et UTF-8, un analyseur/émetteur VT, et bien plus encore.
Lorsque nous avons commencé à planifier la nouvelle application Windows Terminal, nous avons exploré et évalué plusieurs approches et piles technologiques. Nous avons finalement décidé que la meilleure manière d'atteindre nos objectifs était de poursuivre notre investissement dans notre base de code C++, ce qui nous permettrait de réutiliser plusieurs des composants modernisés susmentionnés dans la console existante et dans le nouveau terminal. De plus, nous avons réalisé que cela nous permettrait de construire une grande partie du noyau du terminal lui-même en tant que contrôle d'interface utilisateur réutilisable que d'autres pourraient intégrer dans leurs propres applications.
Le résultat de ce travail est contenu dans ce dépôt et livré sous forme d'application Windows Terminal que vous pouvez télécharger depuis le Microsoft Store ou directement à partir des versions de ce dépôt.
Pour plus d'informations sur le terminal Windows, vous trouverez peut-être certaines de ces ressources utiles et intéressantes :
Blog en ligne de commande
Série de blogs d'information sur la ligne de commande
Lancement du terminal Windows : Terminal "Sizzle Video"
Lancement du terminal Windows : session de build 2019
Run As Radio : Show 645 – Terminal Windows avec Richard Turner
Podcast Azure Devops : Épisode 54 - Kayla Cinnamon et Rich Turner sur DevOps sur le terminal Windows
Session Microsoft Ignite 2019 : La ligne de commande Windows moderne : Terminal Windows - BRK3321
Cause : Vous lancez la solution incorrecte dans Visual Studio.
Solution : assurez-vous de créer et de déployer le projet CascadiaPackage
dans Visual Studio.
Note
OpenConsole.exe
n'est qu'un conhost.exe
construit localement, la console Windows classique qui héberge l'infrastructure de ligne de commande de Windows. OpenConsole est utilisé par Windows Terminal pour se connecter et communiquer avec des applications en ligne de commande (via ConPty).
Toute la documentation du projet se trouve sur aka.ms/terminal-docs. Si vous souhaitez contribuer à la documentation, veuillez soumettre une pull request sur le dépôt de documentation du terminal Windows.
Nous sommes ravis de travailler à vos côtés, notre incroyable communauté, pour créer et améliorer Windows Terminal !
AVANT de commencer à travailler sur une fonctionnalité/un correctif , veuillez lire et suivre notre Guide du contributeur pour éviter tout effort inutile ou en double.
Le moyen le plus simple de communiquer avec l'équipe est via les problèmes GitHub.
Veuillez déposer de nouveaux problèmes, des demandes de fonctionnalités et des suggestions, mais recherchez des problèmes préexistants ouverts/fermés similaires avant de créer un nouveau problème.
Si vous souhaitez poser une question qui, selon vous, ne justifie pas (encore) un problème, veuillez nous contacter via Twitter :
Christopher Nguyen, chef de produit : @nguyen_dows
Dustin Howett, responsable de l'ingénierie : @dhowett
Mike Griese, développeur principal : @[email protected]
Carlos Zamora, Développeur : @cazamor_msft
Pankaj Bhojwani, développeur
Leonard Hecker, développeur : @LeonardHecker
Vous devez exécuter Windows 10 2004 (build >= 10.0.19041.0) ou une version ultérieure pour exécuter Windows Terminal
Vous devez activer le mode développeur dans l'application Paramètres Windows pour installer et exécuter localement le terminal Windows.
Vous devez avoir installé PowerShell 7 ou version ultérieure
Vous devez avoir installé le SDK Windows 11 (10.0.22621.0)
Vous devez avoir au moins VS 2022 installé
Vous devez installer les charges de travail suivantes via le programme d'installation VS. Remarque : L'ouverture de la solution dans VS 2022 vous demandera d'installer automatiquement les composants manquants :
C++ (v143) Outils de plateforme Windows universels
Développement de bureau avec C++
Développement de plateforme Windows universelle
Les composants individuels suivants
Vous devez installer le .NET Framework Targeting Pack pour créer des projets de test
Ce référentiel utilise des sous-modules git pour certaines de ses dépendances. Pour vous assurer que les sous-modules sont restaurés ou mis à jour, assurez-vous d'exécuter ce qui suit avant la construction :
mise à jour du sous-module git --init --recursive
OpenConsole.sln peut être construit à partir de Visual Studio ou à partir de la ligne de commande à l'aide d'un ensemble de scripts et d'outils pratiques dans le répertoire /tools :
Import-Module .toolsOpenConsole.psm1Set-MsBuildDevEnvironmentInvoke-OpenConsoleBuild
.toolsrazzle.cmd bcz
Pour déboguer le terminal Windows dans VS, faites un clic droit sur CascadiaPackage
(dans l'Explorateur de solutions) et accédez aux propriétés. Dans le menu Débogage, remplacez « Processus d'application » et « Processus de tâche en arrière-plan » par « Natif uniquement ».
Vous devriez alors pouvoir créer et déboguer le projet Terminal en appuyant sur F5 . Assurez-vous de sélectionner la plate-forme "x64" ou "x86" - le terminal ne se construit pas pour "Any Cpu" (car le terminal est une application C++, pas C#).
? Vous ne pourrez pas lancer le Terminal directement en exécutant WindowsTerminal.exe. Pour plus de détails sur pourquoi, voir #926, #4043
Veuillez consulter ces brefs documents ci-dessous concernant nos pratiques de codage.
? Si vous trouvez quelque chose qui manque dans ces documents, n'hésitez pas à contribuer à l'un de nos fichiers de documentation n'importe où dans le référentiel (ou à en écrire de nouveaux !)
Il s'agit d'un travail en cours alors que nous apprenons ce que nous devrons fournir aux gens afin de contribuer efficacement à notre projet.
Style de codage
Organisation du code
Exceptions dans notre ancienne base de code
Pointeurs intelligents et macros utiles pour l'interface avec Windows dans WIL
Ce projet a adopté le code de conduite Microsoft Open Source. Pour plus d’informations, consultez la FAQ sur le code de conduite ou contactez [email protected] pour toute question ou commentaire supplémentaire.