Windows 10でWSLg (WSL GUI) をセットアップする
Windows 10のInsider Previewに「WSLg(Windows Subsystem for Linux GUI)」のプレビュー版が配信されたようですので、早速試してみました。
以前はVcXsrvなどのソフトを使用しないとWSL2でGUIアプリが使えませんでしたが、将来的にはVcXsrv不要で、よりシームレスにLinux用のGUIアプリが利用可能になるようです。また、WSL2自体の初期設定も簡素化されるようです。
前書き
今回のテストは、Windows 10 Insider PreviewのDevチャンネルに参加しているパソコンで行っています。winverコマンドで確認したところ、ビルド番号は21390.1010でした。記事執筆時点(2021年6月13日時点)のリリース版「21H1」では利用できません。
また、公式の解説ではまっさら状態からのWSLg設定方法が紹介されていますが、今回は元々VcXsrvでのGUIアプリ利用が可能だったパソコンで試してます。
WSLgの解説、初期設定方法などはこちらを参考にしています。
ちなみに、本記事と同じ方法で、Windows 11 Insider PreviewでもWSLgが利用できます。Windows 11版の記事も用意していますので、良ければこちらもご覧ください。
WSLgのシステム要件
記事執筆時点(2021年6月13日時点)、WindowsのInsider Previewに参加する必要があって、それのビルド21362以降が必要です。コマンドプロンプトなどから「winver」コマンドを実行するとビルド番号が確認できます。
また、仮想GPU(vGPU)の有効化も推奨されています。有効にしたい場合は、WSLをサポートするGPUドライバーをインストールします。上記参考リンクから、GPUメーカー各社のドライバーのダウンロードページへたどれます。(私はインストールせずに試しました)
WSLgの初期設定
- 今までWSLをインストールしたことがないパソコンにインストールする場合
- WSLをインストール済みだが、はじめてGUIアプリを使いたい場合
- 従来からVcXsrvなどを利用してGUIアプリを使っていた場合
それぞれのパターンについて説明します。1つ目、2つ目は、前述の参考リンクを翻訳しただけの内容です。私が実際に行ったのは3つ目の方法になります。
まっさら状態からWSLgを利用するには
今までWSLを利用したことがないパソコンにWSL2を入れてWSLgを利用するには、次のコマンドを実行します。
従来「Windowsのオプション機能オン/オフ画面から"Linuxなんたら"を有効にして、再起動して、Ubuntuアプリをインストールして」というステップを踏んでいましたが、その代わりに次のコマンドを実行します。
wsl --install -d Ubuntu
再起動を促されたら、再起動します。
次にスタートメニューからUbuntuアプリを起動します。初回起動時は、Linux用のユーザー名とパスワードを設定します。これらはWindowsのユーザー名、パスワードとは違くて構いません。
これだけで環境構築は完了です。(めっちゃ簡単になってる・・・)
既存のWSLでWSLgを利用するには
まず、WSLを更新するためwsl --update
を実行します。
次に、LinuxディストリビューションがWSL2モードで動いているか確認するためwsl --list -v
を実行します。下記のように、WSLgを使いたいディストリビューションのVERSIONが「2」となっていればOKです。
PS C:\> wsl --list -v
NAME STATE VERSION
* Ubuntu-20.04 Stopped 2
Ubuntu Running 2
もしなっていない場合は、wsl --set-version Ubuntu 2
を実行します。「Ubuntu」の部分は、利用したいディストリビューション名に置き換えてください。また、変更の適用にはWSLの再起動が必要なため、管理者権限のコマンドプロンプトかPowerShellからwsl --shutdown
を実行します。
従来からVcXsrvなどでGUIアプリを利用していた場合は
当サイトでは従来、「WSL2のUbuntuでGUIアプリを利用するにはVcXsrvというソフトが必要だ」と説明していて、Ubuntu側にもVcXsrvへ表示を出力するよう設定していました。
この設定を行っているパソコンでWSLgを使うには、Ubuntu側の設定を一部削除する必要があります。nano ~/.profile
などで.profileファイルを開き、次の行を削除(またはコメントアウト)します。
↓ #をつけるとコメントアウトできます。# export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}'):0.0
私の環境では、特にwsl --update
を行ったりせず利用できました。
GUIアプリをインストールする
WSLgの設定が終わったら、GUIアプリをインストールしましょう。インストール方法はごく普通です。
スタートメニューからUbuntuアプリを起動します。まずはパッケージ情報を更新しておきましょう。
sudo apt update
GUIアプリのインストールは、通常通りapt installで行います。ここではx11-apps (xeyesやxcalcなど)やgeditをインストールする例を示します。
sudo apt install x11-apps -y
sudo apt install gedit -y
WSLgでGUIアプリを実行する
すべて整いましたので、早速GUIアプリを実行してみましょう。WSL2のUbuntuから起動する場合は、普通に実行したいコマンドを入力します。ここではxeyes、xcalc、Firefoxを起動してみました。多重起動したい場合は、コマンド末尾に&をつけます。
Windows側のコマンドプロンプトやPowerShellから実行する場合は、「wslgコマンド」を使用します。wslgコマンドでGUIアプリを実行する際の書式は次の通りです。ディストリビューション名を省略した場合は、デフォルトのディストリビューションで起動するようです。また、wslgコマンドで起動すると、制御がすぐに帰ってきますので、次々にソフトを起動できます。
wslg -d <ディストリビューション名> <起動したいコマンド>
スタートメニューにもWSLgでアプリを起動するショートカットが作成されますので、こちらから起動することもできます。このショートカットは、上記wslgコマンドを実行するショートカットです。
起動もめっちゃ簡単ですね。ちなみに、Ubuntu Desktopなどのデスクトップ環境の起動方法は分かりませんでした。
使ってみた印象
今まで、結構苦労してWSL2でGUIアプリ実行環境を構築していましたが、その苦労はほぼゼロになっています。それだけでなく、WSL自体の初回設定も不要になり、いきなりwsl --install -d Ubuntu
を実行するだけでWindowsの設定変更やUbuntuアプリのインストールまで行ってくれるなど、全体的に手順が簡素化されています。
どれくらい簡素化されたかというと、当サイトの3記事分がwsl --install -d Ubuntu
だけで済んでいます。
また、Ubuntu側での設定変更も不要で、スタートメニューにもGUIアプリのショートカットが作成されるなど、よりシームレスにLinux GUIアプリが使えるようになりました。音も出ますので、FirefoxでYouTubeを開けば即動画視聴できます。
ただ、現時点では次のような不具合も見られます。(当方の環境だけの話かもしれませんし、回避策があるかもしれません。今のところ充分な検証はできていません)
- ウィンドウタイトルの日本語が文字化けする
- Fcitx+Mozcを入れたが、日本語入力が不安定(半角/全角キーが効かないことがある。変換候補が変なところに表示される)
- Firefoxだと右クリックの挙動がおかしい(右クリックした瞬間に、コンテキストメニューの項目がクリックされる? Chromeだと問題ない)
- 動画を再生したりすると、結構負荷がかかる(仮想GPUドライバーを入れてないからかも)
- 「Ubuntu」アプリを削除しても、スタートメニューのWSLgアプリへのショートカットが削除されない
- ディスプレイのスケーリングに対応していない(HiDPI環境では小さく表示される)
- GUIアプリを落としてもVmmenプロセスが高負荷のままになることがある(
wsl --shutdown
すると改善される)
これらは、今後のバージョンアップでの改善に期待したいと思います。
ディスカッション
コメント一覧
まだ、コメントがありません