WindowsTerminalは年内に正式版に
適した等幅フォントも開発しているようだ
マイクロソフトは、WindowsTerminalを年内に正式版とする予定だ。現時点の目標としては、CMD.EXEやPowerShell.exe、WSLのコンソールとしての利用が想定されている。一番の狙いは、文字コードの扱いや表示方法を変更することにある。
Windowsのコンソールは、文字コードを「コードページ」という形で扱っていた。また、表示にはWindows初期からあるGDI(Graphics Device Interface)を利用していた。
これに対して、WindowsTerminalでは、文字の描画にはDirectWriteを使い、高速で高品質の文字描画を可能にする。このため、UTF-8エンコード方式によるUnicodeの利用が可能になり、いわゆるフォントフォールバック機能も利用可能となるため、絵文字のように、指定フォントファイルにない文字でも、他のフォントファイルを使って表示できるようになる。
従来のコンソールでは、文字エンコードにコードページを使っており、一度に利用できる文字範囲に限界があった。このため、シフトJISのコードページ(932)が指定されているときには、他国語のフォントを表示することができなかった。
マイクロソフトでは、WindowsTerminalの開発に合わせてプログラミングなどに適した等幅フォントを開発している。これは、16進数を表記するのときの「0x」と通常文字の「x」を分けるなど俗に「Programing ligature」と呼ばれる表示が可能なものになるとされている。なお、従来のコンソールはそのまま、Windows付属のプログラムとして残ることになるという。
とりあえず、今年の夏には、プレビューが開始され、パッケージをMicrosoftストア経由で入手できるようになるとされる。また、最終配布は、今年の年末になるようだ。
コンソールホストとコンソールウィンドウが分離
過去を引きずらない、まともなコンソールがようやくWindowsに
もともと、Windowsでは、コンソールアプリケーションは、コンソールAPIを使ってコンソールを制御するものとされていた。
これに対して、Unix/Linuxでは、原則コンソールとは文字ベースでやりとりする。
WSLの導入により、標準入出力を使って文字のみをやり取りするLinuxの「シェル」が使われるようになった。このため、出力されるテキストからエスケープシーケンスを使って画面制御をおこなう必要が生じたわけだ。
こうした問題に対して、昨年8月には、コンソールAPIをつかさどるConHostと呼ばれるモジュールに仮想コンソール(ConPTY)が搭載され、コンソールウィンドウとは分離されることになった。これにより、従来型のコンソールAPIを使うアプリケーション(たとえば、CMD.EXEやPowerShell.exe)と、Unix/Linux型のシェルの両方に対応できるようになった。
なお、WindowsTermialでは、複数のConhostと接続可能で、それぞれを個別の「タブ」で表示する。
WindowsTerminalにより、WSLなど、CMDやPowerShell以外を利用する場合にようやく“まともな”コンソールが利用できるようになった。これなら、SSHなどを介して、Linuxマシンなどに接続して利用することも不可能ではないだろう。

この連載の記事
-
第508回
PC
Scalable Vector Graphics(SVG)そもそも何なのか? -
第507回
PC
Windows 11の「開発者モード」とは何か? -
第506回
PC
Windows 11は早くも来秋登場の26H2プレビューの準備が始まる -
第505回
PC
結構変化しているWindows 11のエクスプローラーの基本設定を見直す -
第504回
PC
新しいOutlookとOutlook Classic、そろそろ古いOutlookとExchangeの組み合わせは引退の頃合いか -
第503回
PC
機能が増えたこともあり、寄せ集めから統合化に進むWindowsの便利ツール「PowerToys」 -
第502回
PC
Windows 11でBluetoothのオーディオ新規格「Bluetooth LE Audio」を試す -
第501回
PC
Windows 11 Ver.25H2での変更点、新機能を整理する -
第500回
PC
Windows 11 Ver.25H2が完成した -
第499回
PC
Windowsでの致命的だが回復可能なエラーに備える手段を2つ紹介 -
第498回
PC
Windows Terminalの安定版V1.23が公開 設定UIが改良される - この連載の一覧へ











