Windows11 22h2 WSLgでCan’t open display: :0

Windows11 22h2のアップデートが降ってきたのでさっそくアップデートし、WSLもアップデートしてみました。

wsl --update

今までWSLでGUIが使えていたものが突然使えなくなってしまった。
xeyesで試してみるが…

$ xeyes
Error: Can't open display: :0

https://github.com/microsoft/wslg/wiki/Diagnosing-“cannot-open-display”-type-issues-with-WSLg

WSLgのWikiでそれっぽい記述があったので対応してみましたが、治らない。
X0 socketが無く、なぜか X3 というものが存在していた。

ls /tmp/.X11-unix
X3

環境変数 DISPLAY にはデフォルトで :0 が指定されているので、これを :3 にしてやることでGUIが起動できた。

export DISPLAY=:3

その後、 wsl --shutdown やら繰り返しているうちに X0 が生成されていたので、DISPLAYの指定を :0 に戻してあげました。