WSLgで実現されるLinux GUIアプリ実行環境は、プレーンなLinuxの実行環境なので、そのままでは日本語入力が行えない。UTF-8による日本語の表示に関しては、日本語フォントを設定してやることにより、簡単に行うことが可能だ。

しかし、WSL2は、仮想マシン内で動作するため、Win32側のWindows IMEは利用できず、WSL2ディストリビューション側に日本語入力環境を構築する必要がある。ここでは、その方法を解説する。ただし、WSLgでの日本語入力は、不完全な動作しか行えず、たとえば、変換時のキー割り当てなどを正しく行うことができない。とはいえ、かな漢字変換して入力を行う最低限の動作は可能だ。

なお、この記事では、WSLディストリビューションとしてUbuntu、あるいはUbuntu-22.04 LTSを想定している。Ubuntu系の他のディストリビューションでもほぼ同じ手順が使えるが、他のディストリビューションでも、基本的な考え方は同じだが、パッケージ管理ツーが異なる場合があり、それぞれの環境に合わせてコマンドを指定する必要がある。

Linux GUI環境の日本語入力

X/Waylandを使ったLinuxのGUI環境では、日本語などの入力を行うための仕組みがある。これは、インプットメソッド・フレームワーク(Input Method Framework。以下IMFと略す)とインプットメソッド・エンジン(Input Method Engine。一般にIMEと表記される)から構成(図01)され、それぞれに複数の実装がある。なお、IMFとIMEを合わせてIM(Input Method)と呼ぶこともある。

図01: LinuxのIM(Input Method)は、UIツールキットやXlibがIMF(Input Method Framework)と連携して行う。IME(Input Method Engine)は、純粋に変換処理のみを行う

IMFは、日本語入力の表示とキー入力などを行うもの。テキストの表示にはウィンドウの作成などが必要で、IMFは、UIツールキットやXlibと連携して表示処理やキー入力処理などを行う。IMの起動、切り替えもIMFの担当範囲である。

LinuxのIMEは、純粋に変換機能だけを行う。IMFからキーを受け取り、未変換、変換、確定処理などを行う。ただし、IMEは変換処理とは別に設定や単語登録、辞書管理その他の機能が必要で、これらは別途GUIプログラムとして提供される。

LinuxのGUI環境で日本語入力を行うには、IMFとIMEをインストールする必要がある。ただし、IMFとIMEのインターフェースはIMFごとに異なるためIMFに対応したIMEパッケージとなっており、IMF、IMEの組合せでパッケージをインストールすれば、あとは、パッケージマネージャーが依存関係を解決して必要なパッケージをインストールする。

ここでは、IMFとしてfcitx5をIMEとしてmozcを使う。mozcは、Google日本語入力のオープンソース版で、プログラムとしてはほぼ同じものだが、配布されている辞書などに違いがある。

fcitx5は、もともとは中国語のIMとして開発されたものだが、その後IMFとなり広く使われるようになった。

○日本語入力設定の準備

必須ではないが、GUI環境で日本語入力環境を整える前に、WSLディストリビューション自体の日本語化(ロケール設定)を行っておく。これに関しては、「Windows Subsystem for Linuxガイド 第1回 基本編」に解説がある。なお、現在では、systemdが動作しているなら、localectlコマンドを使い、以下のコマンドでロケール設定が可能だ。

sudo apt -y install language-pack-ja

sudo localectl set-locale ja_JP.UTF-8

ロケールの設定後は、念のため、ディストリビューションを再起動しておく。

次に、Windows側のフォントをLinux GUIアプリケーションで利用できるように設定する。そのためには、/etc/fonts/local.confを作成し、Windowsのフォントパス(C:\Windows\Fonts)を指定する。そのためには、以下のコマンドを使う。

cat