4月22日にWindows Terminal v0.11が公開された。今年になって、1月と2月にベータ版、3月にはv0.10としてRC(Release Candidate。製品候補)版となり、現在の予定では、5月にv1.0が登場する予定だ。v0.11は、その直前のバージョンにあたり、新機能は少ないが、これまでに追加されてきた機能の整理(特に設定ファイル関係)がなされ、多数のバグFixもある。
そろそろ完成も近く、仕様もこのまま固まりそうなので、今回は、Windows Terminalについての情報を整理してみる。
そもそもWindows Terminalとは?
すでに本連載では何回も紹介してきたが、初めて読む方のために、Windows Terminalをあらためて解説しておく。Windows Terminalとは、Windowsのコンソールウィンドウ(conhost.exe)に代わる、あたらしいコンソールウィンドウアプリケーションだ。
これまでのWindowsでは、MS-DOS環境を模したconhost.exeを、すべてのコマンドラインアプリケーション用に利用していた。というか、Windows向けにコンソールアプリケーションを作れば、デフォルトではconhost.exeの中で動作するようになる。これは、Windows標準のコマンドラインインタープリターであるcmd.exeやPowerShell.exeだけでなく、さまざまな言語システムでも同様だった。
しかし、conhost.exeは、MS-DOSの画面を手本とし、それに国際化などを追加してWindowsの進化に対応してきたため、問題も少なくない。たとえば表示文字セットは、もともとはASCIIコードのような1バイト文字セットを想定していて、ここに日本語などの複数バイトを使う文字コードを入れるために、16bit文字コードなどを扱うように改良されている。このために制限もある。わかりやすいものとしては絵文字を表示できないという点だ。さらにUTF-8が標準となるLinuxアプリケーションが動作するWSLの登場により、問題は複雑になってきた。
マイクロソフトはconhost.exeの改良を進めてきたが、ついにそれを断念したのか、Windows Terminalというconhost.exeを代用するオープンソースプロジェクトを開始した。ただし、conhost.exeは、互換性のため現状維持したままWindowsには残り続けるようだ。
Windows Terminalは、高性能なマルチタブ方式のコンソールウィンドウアプリケーションとして開発された。開発やシステム管理などで多数のコンソールウィンドウをタブというかたちで統合し、さらにタブ内をPaneで分割して利用することも可能だ。また、専用のCascadiaフォントは、開発者向けにプログラミング言語の記号をきれいに表示できる「プログラミングリガチャー」の機能を持つ。
Windows Terminal使いこなしのポイントは設定
Windows Terminalは、設定をJSONファイルでする。このあたりが、従来のWindowsアプリケーションと大きく違うところだ。JSONは、元々JavaScript用に作られたテキスト型式のオブジェクトデータ表現形式だ。複雑なオブジェクトデータを表現できるものの、ルールが簡単でXMLほど面倒ではないし、CSVのように同一構造のレコードの並びに縛られるわけでもない。
Windows Terminalでメニューから設定を選ぶと、JSON設定ファイルが出力される。もし、JSONファイル(拡張子が.json)に関連付けがあれば、該当のアプリケーションが起動するが、関連付けがない場合には、テキストファイルなのでメモ帳が開く。
JSONには、JSONスキーマと呼ばれる仕様があり、これを解釈できるJSONエディターがあれば、編集時に補完入力や簡易文法チェックなどが可能になる。手軽に入手できるJSONエディターとしては、マイクロソフトのVS Code(ソフトウェア開発向けのテキストエディタ)がある。このあたりについては以前に解説した(「さらに開発が進む新コンソール「Windows Terminal」」)。
JSONエディターやメモ帳でsettings.jsonファイルを編集したあと保存するとWindows Terminalはこれを自動的に読み込んで設定を完了させる。このときにエラーがあれば、ダイアログで通知される。
なお、Windows Terminalは、設定項目にデフォルト値がある。Windows Terminalのメニューにある「設定」をAltキーを押しながら選択すると、settings.json同様にdefault.jsonというファイルが出力される。基本的な表記方法はどちらも同じだが、default.jsonは編集してもWindows Terminalはこれを無視する。なので、設定は必ずsettings.json側で行う。
ただし、default.jsonにある記述と同じものをsettings.jsonで繰り返す必要はない。settings.jsonに記述するのは、default.jsonとの差分だけでよい。
Windows Terminalのjsonファイルは、下の図のような構造になっている。
Windows Terminalはjsonファイルでこのような構造をしている。基本的にはdefault.jsonとsettings.jsonは構造は同じだが、settings.jsonは、default.jsonに対しての変更分だけを記述し、記述しない設定項目はdefault.jsonの設定が有効になる
jsonファイル内は大きく4つのセクション「globals」「profiles」「schemes」「keybindings」に分かれている。このうち、「globals」「schemes」(カラー設定スキーム)と「keybindings」(キー割り当て)は、それぞれ専用の領域でその中で設定するものは限定されている。
しかし、profilesセクションに指定可能な設定項目は、profilesセクション中のdefault領域もしくは、profile領域で設定が可能で、さらに一部の設定項目は、コマンドラインの起動オプションやキー割り当てでも設定ができる。こうした複数の設定には、優先順位が付けられており、それに従って最終的に有効な設定が決定される。このあたりをまとめたのが下の表である。
profileは、Windows Terminalのタブで起動される「シェル」に関連する指定だ。cmd.exeやpowershell.exe、あるいはWSLのbashなどがタブ内で起動するプログラムとして指定でき、そのときのターミナル設定(たとえば、背景色や背景画像など)をprofile設定で指定できる。profileは複数設定が可能で、メニューやコマンドライン、あるいはキー割り当てでこれを指定してタブやペイン(タブ内を分割した表示領域)を開くことができる。
「schemes」は、色指定をグループ化したもの。Windows Terminalでは、最大16色を文字や背景の色として使い分けることができるが、こうした設定を個別に設定するのは面倒なので、schemeとしてまとめて設定しておき、profile側ではschemeを指定することで利用する色をまとめて設定する。schemeは、以下の表のような構造になっている。なお、標準のschemeは、すべてdefualt.jsonで定義されている。
これに対して「keybindings」は、キー割り当てをするもの。Windows Terminalのようなコンソールでは、テキストのコピーやペースト、画面スクロールなどはすべてキーで行う。また、タブを新規に開いたり、タブをペインに分割するといった操作もすべてキーで行う。keybindingsは、そのキー割り当てを行うものだ。ただし、このキー割り当てはすべてのprofileで共通である。キー割り当てに関しては、v0.11では、下の表のようになっている。
同じものをキー名で並べ直したのが、以下の表だ。基本的には、default.jsonでキー割り当てが定義されており、これを変更したい場合には、settings.jsonのkeybindingsセクションを使って割り当てを変更する。
この連載の記事
-
第473回
PC
Windowsは内部的にどうやってインターネットへの接続状態を確認している? -
第472回
PC
WindowsのエラーをMicrosoftに送信するテレメトリ機能を理解する -
第471回
PC
Windowsのコマンドラインでエイリアスを使う -
第470回
PC
Windows用のパッケージマネージャー「Winget」 プレビュー版で機能が充実してきた -
第469回
PC
Windows Updateの27年 悪役だった頃から改良が進んで、徐々に目立たない存在に -
第468回
PC
2025年のWindowsどうなる!? Windows Insider Programの状況をあらためて見る -
第467回
PC
Copilot+ PCのNPUでカメラを処理する「Windows Studio Effects」 その内容や効果は? -
第466回
PC
PowerToysの最近の新機能には、複数アプリを指定位置に起動する「ワークスペース」や新規作成のカスタマイズがある -
第465回
PC
WindowsのPowerShellからBluetoothデバイスを調べる -
第464回
PC
Windows 10のサポート切れまで1年を切った さてWindows 10マシンをどうする? -
第463回
PC
Windows Terminal Preview版でSixelグラフィックスを実際に表示させてみる - この連載の一覧へ