Chapter 06

(おまけ)WSL2のGUIで現時点で分かっている情報

SHIBUKAWA Yoshiki
SHIBUKAWA Yoshiki
2020.10.12に更新

WSL2の今後のアップデートでLinuxのGUIアプリケーションがWindows上で動作するようになる、とアナウンスされています。

すでにXサーバーを使ったLinuxアプリケーションの実行については紹介しました。このWSL2のGUI対応は、Waylandというプロトコルをベースに、リモートデスクトップに変換してWindows側に表示するものです。Windows側にすでにあるコンポーネントを最大限に活用しており、開発リソースをWayland周りに集中的に投下する作戦のようです。

WindowsでLinuxのGUIアプリが起動するということは、ATOKとか再び使えるようになるのではないか?と胸をときめかせているATOK Xユーザーもいるかもしれませんが、Xを使った方式と比べてものすごく使い勝手が改善されるかというと、あまり期待はできない気がしています。特に日本人が気になるIME周辺について紹介します。

まず、リモートデスクトップのプロトコルですが、IME周りはWindows Vista以前の、IMM32に毛の生えたような機能しか持っていません。次のドキュメントは、サーバーからクライアントに送信するイベントです。

現在のリモートデスクトップはIMEに関しては、接続先にあるものをそのまま利用し、ステータス表示だけをローカルで行う仕様になっています。ローカルで辞書に登録した言葉が接続先では再度登録しなおさないといけない、という制限はここから生まれています。接続先にIMEがいなければなりません。そして、その接続先はLinuxのために起動しているWaylandサーバーです。

最初に紹介したページによると、WSL2のさまざまなディストリビューションとは独立したウインドウサーバーとして、コンテナ化された状態でWaylandサーバーが提供されるとされています。IMEは本来はWaylandやX11のサーバーに登録され、キーボードのイベントに応答して変換を行ったりして結果をクライアントに返します。しかし、カプセル化された状態で提供となると、LinuxのIMEを登録することも難しいように思います。

ドリームプランとしては、Waylandで停滞していたモダンなIMEのプロトコルがアクティブに開発されて、RDPのプロトコルもText Services Framework相当のインタラクションができるようになって、WindowsのIMEがフルにLinuxアプリケーションに対して使えるようになる、という夢も可能性もゼロではないと思いますが、現時点ではかなり厳しいと思われます。