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アプリのウィンドウを表示する
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 updatesudo apt -y install language-pack-jasudo 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.conffc-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。フォントも少なく、日本語に使えるフォントはほとんどなかった
Windowsのフォントを導入したら、Linux GUIアプリであるLibreOffice WriterにもWindowsのフォントが表示されるようになった
プレビュー版では、Linux GUIアプリは高解像度対応していなかったが、Windows 11では対応しており、Windowsの表示倍率の影響受けない。
Windowsのディスプレイ倍率を125%と100%で設定してみたが、Linux GUIアプリの大きさは変わらない。設定やワードパッドのウィンドウサイズが変わっている点に注意
そのほか、Win32アプリとLinux GUIアプリ間のクリップボード貼り付けでリッチテキスト形式の変換にも対応している。ただし変換は、Win32からWSL側のみで、WSL側のLibreOffice Writer(ワープロ)からのWin32側への貼り付けは、テキストベースになるようだ。プレビュー版の頃に比べるとかなりWindows側での対応が進んだようである。
Win32側からWSL側に書式付きのテキスト(游明朝、MSゴシック)を貼り付けることができたが、WSL側の書式付きテキスト(WSL->Win32、メイリオ)は、テキストのみの貼り付けになった
ちょっと使ってみたが、ウェブブラウザーやPDFビューアがWSLで直接動くのは便利だ。従来は、Win32側のブラウザーでダウンロードしてWSL側にコピーしたり、PDFファイルをWin32側で開く必要があった。なお、Linux GUIアプリケーションはスタートメニューの「すべてのアプリ」にWSLディストリビューション名と同名のフォルダーができ、その中に入る。
スタートメニューの「すべてのアプリ」には、WSLディストリビューション名のフォルダ(Ubuntu-18.04)が作られ、その中にLinux GUIアプリケーションのアイコンが登録される
このため、複数の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」と言ってもいいだろう。
プレビュー版でWSL2のNested VMを評価したときには、WSLgが組み込まれていなかった。しかし、WSLgが有効になったことで、QEMUでグラフィックスを扱うエミュレーションも可能になった
ASCII倶楽部とは
表示形式: PC ⁄ スマホ