
Windows 11のWSL2は、WSLgが搭載され、Linux GUIアプリが動作する。以前紹介したプレビュー版の頃よりもWindowsとの融合は進んでおり、Win32側のWordPadの書式付きのテキストをLinux GUIアプリ(LibreOffice。左側のウィンドウ)に貼り付けることができた
Windows 11のWSL(Windows Subsystem for Linux)では、Linux GUIアプリケーションを動作させるためのWSLgが用意されている。これは、Windows 10ではWindows Insider ProgramのDev Channelでプレビューされていたもの。すでに本連載でも何度か扱っているが、今回はあらためてWindows 11での実装状況などを見ていく。
●WSL2でのGUIアプリ対応がプレビュー版で開始 実際に動かしてみた
●WSL2でのGUIアプリケーションを動かす「WSLg」の仕組み
●LinuxのGUIアプリケーションに対応するWSL2
●WSL2ではRDPでLinux GUIアプリのウィンドウを表示する
日本語ロケールとWindowsフォントの追加
WSLのディストリビューションは、インストール直後にはCロケール(C.UTF-8)か、米国-英語(en_US.UTF-8)などになっている。文字コードがUTF-8なので、日本語を扱うことはできるが、GUIアプリケーションをインストールする前に日本語のロケールを設定しておく。必ずしも必要ではないが、アプリケーションがロケールを見て言語を切り替えている場合を想定してのことだ。現在のWSLでは、タイムゾーンは自動的にWindowsのものを使うので設定する必要はない(Build 14352から)。
まずはロケールの確認方法だ。「locale」コマンドで、現在のロケールを表示できる。また、「locale -a」で設定可能なロケールの一覧を表示する。「wsl.exe -l --online」で表示されるWSLディストリビューションで、最初から日本のロケールが設定されているか、選択されているものはなかった。このため、日本語のロケールを含むロケール情報を導入して切り替える。
ただし、ディストリビューションごとにパッケージ管理コマンドもそれぞれなので、ここでは、Ubuntu、Debianなどに共通したaptコマンドの場合を解説する。まずは、以下のコマンドを実行する。
sudo apt update
sudo apt -y install language-pack-ja
sudo update-locale LANG=ja_JP.UTF8
その後に起動中のWSLディストリビューションを停止して、再起動する。その際、別のコンソールなどで同じディストリビューションを動かしていないか注意する。実行中のディストリビューションを終了させるには、そのコンソールで
wsl.exe --terminate $WSL_DISTRO_NAME
とする(WSL外からなら環境変数を使わずにディストリビューション名を指定する)。残念ながら起動することはできないので、コンソールを閉じて、再度同じディストリビューションを起動する。起動したら、前述のlocaleコマンドでロケールが「ja_JP.UTF-8」になっていることを確認しておく。
ついでに日本語のmanpageを入れておくと便利だ。
sudo apt install manpage-ja manpage-ja-dev
次はフォントのインストールだ。まずは、利用可能なフォントの確認だが、これは「fc-list」コマンドで行う。Linuxというか、waylandやX Window Systemでは、フォントをfontconfigという仕組みで扱う。「fc-list」はそのコマンドである。インストール前のフォントを確認したら、Windowsのフォントをfontconfigで扱えるようにする。それには、/etc/fontsに「local.conf」というテキストファイルを作成する。viを使うなら、
sudo vi /etc/local.conf
fc-cache -fv
として開き、以下のリストの設定(XML)を入れて保存する。2行目は設定を反映させるコマンドだ。なお、残念ながらsudoコマンドで実行する関係で、メモ帳などWin32側のテキストエディターは使えない。
インストール後、「fc-list」コマンドで、パスが「/mnt/c/Windows/Fonts/」になっているフォントファイルが表示されれば設定は完了だ。
LinuxのGUIアプリケーションで動作を見てみることにする。Libreofficeは、aptコマンドなどでも導入可能だが、最新版を確実に入れたいのであれば、Libreofficeのサイトから実行中のWSLディストリビューションに合わせて、debパッケージまたはrpmパッケージをダウンロードして導入する。フォント設定の前には、日本語フォントは表示されていないが、インストール後には、日本語フォントがリストに入った。

Windows 11のWSL2では簡単な設定で、Windowsのフォントが利用可能になる。画面はWindowsフォントを導入する前のLibreOffice Writer。フォントも少なく、日本語に使えるフォントはほとんどなかった
プレビュー版では、Linux GUIアプリは高解像度対応していなかったが、Windows 11では対応しており、Windowsの表示倍率の影響受けない。
そのほか、Win32アプリとLinux GUIアプリ間のクリップボード貼り付けでリッチテキスト形式の変換にも対応している。ただし変換は、Win32からWSL側のみで、WSL側のLibreOffice Writer(ワープロ)からのWin32側への貼り付けは、テキストベースになるようだ。プレビュー版の頃に比べるとかなりWindows側での対応が進んだようである。
ちょっと使ってみたが、ウェブブラウザーやPDFビューアがWSLで直接動くのは便利だ。従来は、Win32側のブラウザーでダウンロードしてWSL側にコピーしたり、PDFファイルをWin32側で開く必要があった。なお、Linux GUIアプリケーションはスタートメニューの「すべてのアプリ」にWSLディストリビューション名と同名のフォルダーができ、その中に入る。
このため、複数のWSLディストリビューションを入れても、GUIアプリケーションがスタートメニューで混ざってしまうことはない。とはいえ、同じアプリを起動したらどのディストリビューションのものかは簡単には区別がつかない。
なお、Windows 11では、デフォルトのコンソールアプリケーションをWindows Terminalに切り替えることができるため、スタートメニューから直接WSLディストリビューションを起動できる。
Windows 11のWSLでは、このほかにもエミュレーターのQEMUでグラフィックスを使うことも可能になった。これについては、Windows 10のプレビュー版のとき以下の記事で紹介している。
●Windows 10の最新ビルドを用い、WSL2で仮想マシン環境を使う
Windows 11ではWSLgでGUI対応となったことで、QEMUからもグラフィックス表示が可能になり、たとえばDOS用ゲームアプリがWSL内で動作できるようになった。WSL2は「ほとんどLinux」と言ってもいいだろう。

この連載の記事
- 第364回 Windowsで仮想ハードディスクを作る&使う
- 第363回 Windowsのタスクスケジューラーをもっと使いこなす
- 第362回 WSL(Windows Subsystem for Linux)がMicrosoftストア版に一本化される
- 第361回 2023年のWindowsは大きな変化がある可能性 まさかのWindows 12が今年出る説!?
- 第360回 Windowsにおけるプログラム実行ルールをさらに詳しく掘り下げる
- 第359回 Windowsでプログラムを実行するルールをあらためて掘り下げる
- 第358回 Windowsにおける環境変数をあらためて整理する
- 第357回 Outlookの25年の歴史を整理する
- 第356回 フォルダーやファイルがリネームできない! ファイルを開いているプロセスを探す方法
- 第355回 Microsoftストア版WSLが正式版になり、Windows 10でも動作可能に
- 第354回 レジストリエディタ以外、reg.exeコマンドやPowerShellからレジストリを操作する
- この連載の一覧へ