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マシンなどに接続して利用することも不可能ではないだろう。
この連載の記事
-
第434回
PC
AIの急速な導入がWindowsの予定を変えた!? Windows 12がすぐには出ない可能性 -
第433回
PC
Windows 11の2つのウィジェットを調べる -
第432回
PC
ウェブブラウザが切り開いたWindowsでのタブアプリケーション -
第431回
PC
Windows上でユニコードを「見る」方法 -
第430回
PC
WindowsからWordPadが廃止! RTF(Rich Text Format)はどうなる? -
第429回
PC
Windows Updateの「利用可能になったらすぐに最新の更新プログラムを入手する」はオンにした方がいいか? -
第428回
PC
Google/Bingで使える検索オプション -
第427回
PC
WindowsのPowerShellのプロファイルを設定する -
第426回
PC
WindowsでAndroidスマホをWebカメラにする機能を試した -
第425回
PC
無料で使えるExcelにWord、Microsoft 365のウェブ版を調べた -
第424回
PC
Windowsの基本機能であるクリップボードについてあらためて整理 - この連載の一覧へ