このリポジトリには、次のソース コードが含まれています。
Windowsターミナル
Windows ターミナルのプレビュー
Windows コンソール ホスト ( conhost.exe
)
2 つのプロジェクト間で共有されるコンポーネント
カラーツール
Windows コンソール API の使用方法を示すサンプル プロジェクト
関連するリポジトリには次のものがあります。
Windows ターミナルのドキュメント (リポジトリ: ドキュメントに貢献)
コンソール API ドキュメント
Cascadiaコードフォント
注記
Windows ターミナルには Windows 10 2004 (ビルド 19041) 以降が必要です
Microsoft Store から Windows ターミナルをインストールします。これにより、自動アップグレードを使用して新しいビルドをリリースするときに、常に最新バージョンを使用できるようになります。
これが私たちの推奨する方法です。
Microsoft Store から Windows Terminal をインストールできないユーザーは、このリポジトリのリリース ページからリリースされたビルドを手動でダウンロードできます。
「資産」セクションからMicrosoft.WindowsTerminal_
ファイルをダウンロードします。アプリをインストールするには、 .msixbundle
ファイルをダブルクリックするだけで、アプリ インストーラーが自動的に実行されます。何らかの理由で失敗した場合は、PowerShell プロンプトで次のコマンドを試行できます。
# 注: PowerShell 7 以降を使用している場合は、Add-AppxPackage.Add-AppxPackage Microsoft.Windows Terminal_.msixbundle を使用する前に、# Import-Module Appx -UseWindowsPowerShell# を実行してください。
注記
ターミナルを手動でインストールする場合:
VC++ v14 デスクトップ フレームワーク パッケージのインストールが必要になる場合があります。これは、Windows 10 の古いビルドで、フレームワーク パッケージの欠落に関するエラーが発生した場合にのみ必要です。
新しいビルドがリリースされてもターミナルは自動更新されないため、最新の修正と改善をすべて受け取るには、最新のターミナル リリースを定期的にインストールする必要があります。
winget ユーザーは、 Microsoft.WindowsTerminal
Terminal パッケージをインストールすることで、最新のターミナル リリースをダウンロードしてインストールできます。
winget install --id Microsoft.Windowsターミナル -e
注記
依存関係のサポートは、WinGet バージョン 1.6.2631 以降で利用できます。ターミナル安定版リリース 1.18 以降をインストールするには、WinGet クライアントの更新バージョンがあることを確認してください。
Chocolatey ユーザーは、 microsoft-windows-terminal
パッケージをインストールすることで、最新のターミナル リリースをダウンロードしてインストールできます。
チョコインストールmicrosoft-windows-terminal
Chocolatey を使用して Windows Terminal をアップグレードするには、次のコマンドを実行します。
チョコアップグレードmicrosoft-windows-terminal
パッケージのインストール/アップグレード時に問題が発生した場合は、Windows ターミナル パッケージのページに移動し、Chocolatey トリアージ プロセスに従ってください。
Scoop ユーザーは、 windows-terminal
パッケージをインストールすることで、最新のターミナル リリースをダウンロードしてインストールできます。
スクープバケツにエクストラを追加 スクープインストールWindowsターミナル
Scoop を使用して Windows ターミナルを更新するには、次のコマンドを実行します。
スクープアップデートWindowsターミナル
パッケージのインストール/更新時に問題が発生した場合は、Scoop Extras バケット リポジトリの問題ページで同じ問題を検索するか報告してください。
Windows Terminal Canary は、Windows Terminal のナイトリー ビルドです。このビルドにはmain
ブランチからの最新コードが含まれており、Windows ターミナル プレビューに移行する前に機能を試す機会が与えられます。
Windows Terminal Canary は最も安定性の低い製品であるため、私たちが発見する前にバグが発見される可能性があります。
Windows Terminal Canary は、アプリ インストーラー ディストリビューションおよびポータブル ZIP ディストリビューションとして利用できます。
アプリ インストーラーのディストリビューションは自動更新をサポートしています。プラットフォームの制限により、このインストーラーは Windows 11 でのみ動作します。
Portable ZIP ディストリビューションはポータブル アプリケーションです。自動的に更新されず、更新の有無も自動的に確認されません。このポータブル ZIP ディストリビューションは、Windows 10 (19041 以降) および Windows 11 で動作します。
分布 | 建築 | リンク |
---|---|---|
アプリインストーラー | x64、アーム64、x86 | ダウンロード |
ポータブルZIP | x64 | ダウンロード |
ポータブルZIP | ARM64 | ダウンロード |
ポータブルZIP | x86 | ダウンロード |
Windows Terminal ディストリビューションの種類について詳しくは、こちらをご覧ください。
Windows ターミナルの計画についてはここで説明されており、プロジェクトの進行に応じて更新されます。
コードに入る前に、数分かけて以下の概要を確認してください。
Windows ターミナルは、コマンド ライン ユーザー向けの、機能が豊富で生産性の高い、新しい最新のターミナル アプリケーションです。これには、タブ、リッチ テキスト、グローバリゼーション、構成可能性、テーマとスタイルなどのサポートなど、Windows コマンド ライン コミュニティから最も頻繁に要求される機能の多くが含まれています。
また、ターミナルは、高速性と効率性を維持し、大量のメモリや電力を消費しないようにするための目標と対策を達成する必要があります。
Windows コンソール ホストconhost.exe
、Windows 本来のコマンド ライン ユーザー エクスペリエンスです。また、Windows のコマンド ライン インフラストラクチャと Windows コンソール API サーバー、入力エンジン、レンダリング エンジン、ユーザー設定などもホストします。このリポジトリ内のコンソール ホスト コードは、Windows 自体のconhost.exe
が構築される実際のソースです。
2014 年に Windows コマンド ラインの所有権を取得して以来、チームは、背景の透明性、行ベースの選択、ANSI / 仮想ターミナル シーケンスのサポート、24 ビット カラー、疑似コンソール (「ConPTY」) など、いくつかの新機能をコンソールに追加しました。 )など。
ただし、Windows コンソールの主な目的は下位互換性を維持することであるため、タブ、Unicode テキスト、絵文字など、ここ数年間コミュニティ (およびチーム) が望んでいた機能の多くを追加できませんでした。
これらの制限により、新しい Windows ターミナルを作成することになりました。
コマンド ライン全般の進化、特に Windows コマンド ラインの進化については、コマンド ライン チームのブログにある一連のブログ投稿で詳しく読むことができます。
Windows コンソールのオーバーホール中に、私たちはそのコードベースを大幅に最新化し、論理エンティティをモジュールとクラスに明確に分離し、いくつかの重要な拡張ポイントを導入し、いくつかの古い独自のコレクションとコンテナをより安全で効率的な STL コンテナに置き換え、コードをよりシンプルにし、 Microsoft の Windows 実装ライブラリ - WIL を使用することで、より安全になります。
このオーバーホールにより、コンソールの主要コンポーネントのいくつかが Windows 上のあらゆるターミナル実装で再利用できるようになりました。これらのコンポーネントには、新しい DirectWrite ベースのテキスト レイアウトおよびレンダリング エンジン、UTF-16 と UTF-8 の両方を格納できるテキスト バッファー、VT パーサー/エミッターなどが含まれます。
新しい Windows ターミナル アプリケーションの計画を開始したとき、いくつかのアプローチとテクノロジ スタックを調査し、評価しました。私たちは最終的に、C++ コードベースへの投資を継続することで目標を達成するのが最善であると判断しました。これにより、前述の最新化されたコンポーネントのいくつかを既存のコンソールと新しいターミナルの両方で再利用できるようになります。さらに、これにより、ターミナルのコア自体の大部分を、他のユーザーが独自のアプリケーションに組み込むことができる再利用可能な UI コントロールとして構築できることに気づきました。
この作業の結果はこのリポジトリ内に含まれており、Microsoft Store から、またはこのリポジトリのリリースから直接ダウンロードできる Windows ターミナル アプリケーションとして配布されます。
Windows ターミナルの詳細については、次の便利で興味深いリソースを参照してください。
コマンドラインのブログ
コマンドライン バックグラウンダー ブログ シリーズ
Windows ターミナルの起動: ターミナル「Sizzle Video」
Windows ターミナルの起動: ビルド 2019 セッション
Run As Radio: Show 645 - リチャード ターナーによる Windows ターミナル
Azure Devops ポッドキャスト: エピソード 54 - Windows ターミナルでの DevOps に関するケイラ シナモンとリッチ ターナー
Microsoft Ignite 2019 セッション: 最新の Windows コマンド ライン: Windows ターミナル - BRK3321
原因: Visual Studio で間違ったソリューションを起動しています。
解決策: Visual Studio でCascadiaPackage
プロジェクトをビルドしてデプロイしていることを確認してください。
注記
OpenConsole.exe
はローカルに構築されたconhost.exe
であり、Windows のコマンド ライン インフラストラクチャをホストする古典的な Windows コンソールです。 OpenConsole は、(ConPty 経由で) コマンド ライン アプリケーションに接続し、通信するために Windows ターミナルによって使用されます。
すべてのプロジェクトのドキュメントは aka.ms/terminal-docs にあります。ドキュメントに貢献したい場合は、Windows ターミナル ドキュメント リポジトリでプル リクエストを送信してください。
私たちは、すばらしいコミュニティである皆さんと一緒に Windows Terminal の構築と強化に取り組んでいくことに興奮しています。
機能/修正の作業を開始する前に、無駄な作業や重複した作業を避けるために、貢献者ガイドを読んで従ってください。
チームと通信する最も簡単な方法は、GitHub の問題を使用することです。
新しい問題、機能リクエスト、提案を提出してください。ただし、新しい問題を作成する前に、同様の未解決/終了済みの既存の問題を検索してください。
(まだ) 問題が正当化されないと思われる質問がある場合は、Twitter 経由でご連絡ください。
Christopher Nguyen、プロダクト マネージャー: @nguyen_dows
Dustin Howett、エンジニアリング リード: @dhowett
マイク・グリース、シニア開発者: @[email protected]
カルロス・サモラ、開発者: @cazamor_msft
Pankaj Bhojwani、開発者
レナード・ヘッカー、開発者: @LeonardHecker
Windows ターミナルを実行するには、Windows 10 2004 (ビルド >= 10.0.19041.0) 以降を実行している必要があります。
Windows ターミナルをローカルにインストールして実行するには、Windows 設定アプリで開発者モードを有効にする必要があります
PowerShell 7 以降がインストールされている必要があります
Windows 11 (10.0.22621.0) SDK がインストールされている必要があります
少なくとも VS 2022 がインストールされている必要があります
次のワークロードは、VS インストーラーを介してインストールする必要があります。注: VS 2022 でソリューションを開くと、不足しているコンポーネントを自動的にインストールするように求められます。
C++ (v143) ユニバーサル Windows プラットフォーム ツール
C++ によるデスクトップ開発
ユニバーサル Windows プラットフォームの開発
以下の個々のコンポーネント
テスト プロジェクトを構築するには、.NET Framework Targeting Pack をインストールする必要があります
このリポジトリは、依存関係の一部に git サブモジュールを使用します。サブモジュールが復元または更新されていることを確認するには、ビルドする前に必ず次のコマンドを実行してください。
git サブモジュール update --init --recursive
OpenConsole.sln は、Visual Studio 内から、または/toolsディレクトリ内の便利なスクリプトとツールのセットを使用してコマンド ラインからビルドできます。
Import-Module .toolsOpenConsole.psm1Set-MsBuildDevEnvironmentInvoke-OpenConsoleBuild
.toolsrazzle.cmd BCZ
VS で Windows ターミナルをデバッグするには、(ソリューション エクスプローラーで) CascadiaPackage
を右クリックし、プロパティに移動します。 「デバッグ」メニューで「アプリケーションプロセス」と「バックグラウンドタスクプロセス」を「ネイティブのみ」に変更します。
F5を押すと、ターミナル プロジェクトをビルドしてデバッグできるようになります。必ず「x64」または「x86」プラットフォームを選択してください。ターミナルは「任意の CPU」用に構築されません (ターミナルは C# アプリケーションではなく C++ アプリケーションであるため)。
? Windows Terminal.exe を実行してターミナルを直接起動することはできません。理由の詳細については、#926、#4043 を参照してください。
コーディングの実践については、以下の簡単なドキュメントを参照してください。
?これらのドキュメントに不足しているものを見つけた場合は、リポジトリ内の任意の場所にあるドキュメント ファイルに自由に貢献してください (または、新しいドキュメント ファイルを作成してください)。
これは、プロジェクトに効果的に貢献するために人々に何を提供する必要があるのかを学ぶための進行中の作業です。
コーディングスタイル
コード構成
従来のコードベースの例外
WIL で Windows とインターフェイスするための便利なスマート ポインターとマクロ
このプロジェクトはマイクロソフトのオープンソース行動規範を採用しています。詳細については、「行動規範に関するよくある質問」を参照するか、追加の質問やコメントがあれば [email protected] までお問い合わせください。