🪟

WSL2(WSLg)+Windows11でLinux GUIアプリが使えない件

2024/09/25に公開

事象

Windows11のWSL2環境でGUIアプリをターミナルから起動した際、DISPLAY変数が不適切なためアプリが起動しない問題
ただ、Windows11のスタートメニューからはGUIアプリが起動できる・・謎

発端

ターミナルからemacsを起動しようとした際
' Display HOSTNAME.mshome.net:0.0 unavailable, simulating -nw '
とエラーメッセージが出力されGUIを起動できなくなった・・・
また、xeyesも起動せず、どうやらDISPLAY変数がおかしい模様

今まではどうだったのか

WSL1→WSL2になったときDISPLAY変数は以下ように設定
$ export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}'):0
※以下のGithubのWSLコミュニティに投稿されたissueを参考に設定実施
https://github.com/microsoft/WSL/issues/4106

この設定で従来はGUIアプリを使えていた

結局どうした

色々調べた結果、こちらのコミュニティに記載があった非常にシンプルな記述で解決
https://github.com/microsoft/WSL/issues/6430

$ export DISPLAY=:0

この設定、以前使えなかった設定だったので完全にスルーしていたが
まさかこれでGUIアプリが使えるようになるとは思わなかった
もしかしたら、おま環かもしれないので解決案の1つとして参考程度に

Discussion