Windows Subsystem for Linuxの搭載で
必要になったコンソールの進化
しかし時は流れて、マイクロソフトはWindows XPではMS-DOSを捨て、64bit版Windowsは16bitモードを捨てた。このため、もはやIBM PCのテキストディスプレイとはなんの関係もないはずにも関わらず、コンソールAPIの仕様はそのまま残っているのである。
WSLが搭載されたことで、VT100互換のエスケープシーケンスを受け付けるようになった。そもそも、MS-DOS時代の「コンソール」は、VT互換のエスケープシーケンス(当時はANSIエスケープシーケンスと呼んだ)機能を持っていた。それが、NTカーネルと統合された段階で廃止となり、以来ずっと、コンソールAPIを使ってアプリケーションが開発されてきた。
このVT互換の端末装置(ターミナル)にもカラー表示が可能なものがあり、やはり文字、背景それぞれに16色を指定することができる。ただし、VT互換のエスケープシーケンスは、デフォルトカラーという概念を持つ。これは、黒地に白文字などのデフォルトの文字色、背景色に色指定を戻すもので、文字色/背景色指定のエスケープシーケンスでデフォルトカラーに戻すことができるようになっている。
これに対して、コンソールAPIでは、いつでも好きな色で文字と背景を表示できるため、デフォルトカラーという概念がなく、カラーパレットにより、16色のカラーコードにそれぞれ独立して24bitのRGBを設定できる。つまり、文字色も背景色も1677万7216色の任意の色に設定できる。
Windowsでは、1つのコンソールでWin32アプリを起動し、そこからWSL側のコマンドを起動することもできる。このため、WSLのコマンドが動作しているとき、すでにWin32アプリにより文字色や背景色が設定されていたり、カラーパレットが変更されている可能性がある。WSL側が文字色や背景色を16個のカラーコードから指定しても、望み通りの色になることは保証できない。そればかりか、カラーパレットの状態によっては黒地に黒文字などユーザーには見えない表示になってしまう可能性さえある。
このために作られたのが、19H1にある「前景分離」「背景分離」の機能だ。この設定をオンにすると、設定した色が文字と背景のデフォルトカラーになる。初期状態がこの色になるのと、エクスケープシーケンスでデフォルトカラーを選択したときにカラーパレットの状態にかかわらず、指定した色が使われる。
色の問題は解決したが、Windowsコンソールが対応しなければならない問題はいくつもある。そのうちの1つが文字コードの問題だ。
簡単に言えば、現時点では8bitまたは16bitにエンコードされた文字コードしか扱うことができない。たとえばUTF-8では1文字を表すのに1~4バイトが必要になる。さらに、絵文字などの表示では、指定されたフォントセットにない文字を他のフォントセットから切り替えて使う「Font-fallback」といった仕組みが必要になる。
さらに細かく見ていくと、絵文字では、男女や肌の色などを切り替えるために文字の合成機能を使う。そこで複数の文字を組みあわせて1つの文字として表示する機能などが必要になる。コンソールは、このあたりが今のところまったく対応できていない。マイクロソフトのブログなどによれば、「October 2018 Update」(RS5、Windows 10 Ver.1809)には、UTF-8を扱うための基本的な仕組みは組み込まれたものの、完全なかたちでUTF-8をサポートするところまでは到達していないという。コンソール改良の道はまだ半ばというところか。
この連載の記事
-
第428回
PC
Google/Bingで使える検索オプション -
第427回
PC
WindowsのPowerShellのプロファイルを設定する -
第426回
PC
WindowsでAndroidスマホをWebカメラにする機能を試した -
第425回
PC
無料で使えるExcelにWord、Microsoft 365のウェブ版を調べた -
第424回
PC
Windowsの基本機能であるクリップボードについてあらためて整理 -
第423回
PC
PowerShellの今を見る 2つあるPowerShellはどっち使えばいい? -
第422回
PC
Windows 11の目玉機能が早くも終了、Windows Subsystem for Android(WSA)を振り返る -
第421回
PC
進化しているPowerToys LANで接続したマシンでキーボード/マウス共有機能などが追加 -
第420回
PC
Windowsプレビュー版に搭載されたsudoを試す -
第419回
PC
Windows Insider Previewが変わって、今秋登場のWindows 11 Ver.24H2の新機能が見えてきた? -
第418回
PC
Windows 11のスマートフォン連携は新機能が追加されるなど、いまだ進化している - この連載の一覧へ