ハンズオンMicrosoft の新しいターミナル アプリが Windows ストアで入手可能になりました。当然、ハゲタカどもはそれを試してみることにしたのです。
新しいWindowsターミナルのポイントは何でしょうか?いくつかあります。まず分かりやすいのは、マルチタブのサポートです。「+」をクリックするとタブを追加できます。また、ドロップダウンメニューでは、cmd、PowerShell、Windows Subsystem for Linuxディストリビューションなど、使用するコマンドラインアプリケーションを選択できます。
profiles.json
これらのドロップダウンはそれぞれ「プロファイル」であり、フォルダー内にあるファイルを編集することで、プロファイルを構成したり、新しいプロファイルを追加したりできますAppData\Local
。
Microsoft Store の新しいターミナル
新しいWindows TerminalはUWP(ユニバーサルWindowsプラットフォーム)アプリケーションです。タブバーの見苦しさと大きすぎるプラス記号がその証拠です。GitHubから新たにオープンソース化されたTerminalコードをダウンロードすると、複数のセクション(それぞれに複数のプロジェクトが含まれています)が含まれています。Windows Terminalはコードネーム「Cascadia」のストアアプリですが、現在OpenConsole.Exe
Win32 / Win64(またはARM64)アプリケーションとしてビルドされているConhostも存在します。
Windows Terminal にはタブのサポートと背景画像オプションがありますが、現在 cmd を実行した場合と比べて変更点がありますOpenConsole.exe
。現在、Windows Terminal は独自の OpenConsole.exe をインストールし、従来の .exe に名前を変更していますconhost.exe
。
WindowsターミナルがMicrosoftストアに登場
続きを読む
MicrosoftのWindowsコマンドラインへの取り組みは、一部はユーザビリティ向上のためであり、一部はUnix系オペレーティングシステム、特にLinuxとの互換性確保のためでもあります。歴史的に、WindowsコマンドラインアプリケーションはConHost APIを介して動作してきました。CmdやPowerShellなどのアプリケーションが起動すると、ConHostのインスタンスに接続されます。
これにより、OpenSSH(Secure Shell)などのサードパーティ製コンソールアプリケーションや、Microsoft独自のWindows Subsystem for Linuxに多くの問題が発生しました。一部のアプリケーションでは、動作するために画面外でコマンドプロンプトを開き、その内容を取得する必要がありました。
Unix系オペレーティングシステムは、テキストの送受信に擬似端末(PTY)を使用します。これは、ローカルおよびリモートのターミナルアプリケーションの両方で問題なく動作します。WindowsはUnix/Linuxモデルへの移行を進めており、従来のAPIに代わるテキストの送受信機能を持つConPTYと呼ばれるWindows擬似コンソールを導入しました。これはWindows 10の1809(2018年10月のアップデート)で導入されました。
関連する機能として、VT(ビデオターミナル)エスケープシーケンスのサポートが段階的に導入されています。これは、文字を先頭に付けたコードでテキストをフォーマットする古くからのシステムに基づいていますEsc
。これもまた、WindowsコンソールAPIではなく、Unixライクな方法です。Microsoftはこれを採用しており、プログラムマネージャーのリチャード・ターナー氏は2018年12月に、「コンソール出力を制御/フォーマットするためにWin32コンソールAPIを呼び出すのではなく、VTで強化されたテキストを出力するコマンドラインアプリの作成(または既存のアップデート)を開始してください」と呼びかけました。
VTアプローチは、24ビットカラーのサポートや適切な前景と背景の概念など、優れた機能を備えています。そのため、Windows 10の最新のInsider Buildでは、コマンドプロンプトのプロパティに「ターミナル」タブが追加されています。
新しいコマンド ライン インフラストラクチャでは、Microsoft は ConHost の ConPTY を Windows Terminal などの新しいコンソール アプリケーションと古い Windows Console API の間に配置して、両方のアプローチが機能するようにしています。
Windows 10の新しいコマンドラインインフラストラクチャ
これらの変更は、ほとんどのユーザーには目立たないものの、新しい Windows ターミナル アプリケーションよりも重要です。
Ctrl キーを押しながらスクロールしてフォント サイズを拡大または縮小するなどの機能を利用するために Windows ターミナルを実行する必要はありません。これは cmd でも機能します。
ハゲタカの視点
では、Windows Terminal のプロトタイプは現在 Microsoft Store でどのように入手できるのでしょうか? これは「早期プレビュー」とされており、特に支援技術のサポート領域でいくつかの機能が欠けていますが、これは次のアップデートで提供される予定です。
一番の利点はプロファイルのサポートです。メニューの「設定」をクリックすると、profiles.jsonがVisual Studio Codeで開きます。Windows GUIに慣れている人にとっては少々乱暴な方法ですが、効果的です。おそらくこのままでしょう。変更を加えて保存すると、Windows Terminalが即座に更新されます。これはうまくいきます。ただし、カンマを省略したり、JSONを破損したりすると、「設定の再読み込みに失敗しました」というメッセージが表示されます。
プロファイルを使用すると、特定のコマンドラインを定義できます。例えば、Visual Studio開発者コマンドプロンプトを設定したり、特定のバージョンのJava用に設定されたバッチファイルを実行したりできます。また、「新しいタブ」、「プロファイルnで新しいタブ」、「タブnに切り替える」などのコマンドのショートカットキーを設定したり、テキストナビゲーションにカスタムキーの組み合わせを使用したりすることもできます。
Windows ターミナルでは GPU ベースのテキスト レンダリング (DirectWrite および DirectX) が使用されるようになりました。つまり、高品質のフォントや絵文字なども必要に応じて使用できるようになります。
最大の懸念は、UWPで構築されたWindows Terminalよりも、デスクトップ版の方がおそらく優れているだろうということです。Linuxのサポートにはあらゆる手段を講じるつもりだが、UWPが直面する困難をまだ認めようとしないMicrosoftにとって、それは行き過ぎかもしれません。®