先に結論
Microsoft公式ブログで、やり方が紹介されていました。それを参考にしたら簡単にできたよ、という話です。
自分の環境
Windows
Windows 10 Home
バージョン2004(OSビルド19041.508)
WSL2
WSL2はインストール済み。 WSL2のインストールガイドは こちら。
$ cat /etc/os-release NAME="Ubuntu" VERSION="20.04.1 LTS (Focal Fossa)" ID=ubuntu ID_LIKE=debian PRETTY_NAME="Ubuntu 20.04.1 LTS" VERSION_ID="20.04" HOME_URL="https://www.ubuntu.com/" SUPPORT_URL="https://help.ubuntu.com/" BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/" PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy" VERSION_CODENAME=focal UBUNTU_CODENAME=focal
手順
今回は、ディスプレイサーバーをWindowsにインストールすることで対応する。
ちなみに、WSLにデスクトップ環境(ディスプレイサーバー含む)を構築し、Windowsからリモートデスクトップ接続する、といった方法もある。こちらの手順も上述のMS公式ブログに書いてあります。
X Windows Serverの用意
VcXsrv Windows X ServerをWindowsにインストールする。ブラウザからインストーラーをダウンロードしてインストールした。 Installerはデフォルト設定のままインストール。
インストール後、XLaunchを起動。
アクセスコントロールをオフ(Disable access controlにチェックを入れる)、
Save configuration
を押して設定を保存する。
Windowsファイアウォールの警告が出るので許可する。
WSLの用意
DISPLAY環境変数を設定する。
export DISPLAY="`grep nameserver /etc/resolv.conf | sed 's/nameserver //'`:0"
動作確認
sudo apt install x11-apps xeyes
日本語対応
sudo ln -s /mnt/c/Windows/Fonts /usr/share/fonts/windows sudo fc-cache -fv
自動起動設定
動作確認が取れたら、設定を自動化する。
Windows
スタートアップフォルダに、 Save configuration
を押したときに作成されたconfig.xlaunch
ファイルを置いておく。VcXsrvが自動起動するようになる。
参考: https://www.atmarkit.co.jp/ait/articles/1812/06/news040.html
WSL
以下をシェルの設定ファイル(例: .bashrc
)に追記し、自動で設定されるようにする。
export DISPLAY="`grep nameserver /etc/resolv.conf | sed 's/nameserver //'`:0"
その他
自分の場合、使いたかったアプリを起動したら、以下のエラーが出た。
libGL error: No matching fbConfigs or visuals found libGL error: failed to load driver: swrast
-nowgl
を追記したら消えた。
参考: https://veresk.hatenablog.com/entry/2020/02/26/190000
-[no]wgl Enable the GLX extension to use the native Windows WGL interface for hardware-accelerated OpenGL
参考: https://gist.github.com/ctaggart/68ead4d0d942b240061086f4ba587f5f
GUIアプリのサポートはWSL公式でサポートする見通し
2020/05のMSの公式ブログで言及されている。 2020年末にさらなる報告があるかも、とのこと。