4月22日にWindows Terminal v0.11が公開された。今年になって、1月と2月にベータ版、3月にはv0.10としてRC(Release Candidate。製品候補)版となり、現在の予定では、5月にv1.0が登場する予定だ。v0.11は、その直前のバージョンにあたり、新機能は少ないが、これまでに追加されてきた機能の整理(特に設定ファイル関係)がなされ、多数のバグFixもある。
そろそろ完成も近く、仕様もこのまま固まりそうなので、今回は、Windows Terminalについての情報を整理してみる。
v0.11では、国際化も進み、メニューなどに日本語が表示されるようになった。
そもそも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ファイルは、下の図のような構造になっている。
2020-04-25 19:43:09