ASCII.jp WindowsでLinux GUIアプリを動かす「WSLg」のWindows 11での状況を見る

ASCII.jp WindowsでLinux GUIアプリを動かす「WSLg」のWindows 11での状況を見る

  • 沿って huawei
  • 01/09/2022

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 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

ASCII.jp WindowsでLinux GUIアプリを動かす「WSLg」のWindows 11での状況を見る

として開き、以下のリストの設定(XML)を入れて保存する。2行目は設定を反映させるコマンドだ。なお、残念ながらsudoコマンドで実行する関係で、メモ帳などWin32側のテキストエディターは使えない。

/mnt/c/Windows/Fonts

インストール後、「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 ⁄ スマホ