@ledsun blog

無味の味は佳境に入らざればすなわち知れず

Cannot open display ":0"

WSL起動時にCannot open display ":0"が表示される

どうもWSLgが上手く動いていないみたいです。 Xを使うアプリケーション起動すると同様のメッセージを表示して失敗します。

xeyesコマンドを実行するとCannot open display ":0"が表示される

試したけど直らなかったこと

  • wsl.exe --shutdownを実行してWSLを再起動
  • Windowsの再起動
  • DISPLAY=172.28.176.1:0 xeyes を実行
    • エラーは出なくなりますが、表示はされません

Diagnosing "cannot open display" type issues with WSLg · microsoft/wslg Wiki · GitHub によると

X servers create their socket under /tmp/.X11-Unix. This directory must exist and must be linked to /mnt/wslg/.X11-Unix where WSLg built-in X server create it's socket.

とあります。

/tmp/.X11-unixシンボリックリンクでない

/tmp/.X11-unixが削除出来ない

Disabling WSLg (or using it together with X410) - X410.devを参考にして、.wslconfigを編集してWSLgを無効化します。 WSLを再起動すると

WSLgを止めるとシンボリックリンクになる

その他の関係ありそうなissueです。