WSL2でX Serverを利用するための設定(DISPLAYの環境変数を自動設定する)


WSL2においてX Serverを利用する際の設定は、WSL1と微妙に異なります。

下記の記事に詳細がありますが、
WSL2におけるVcXsrvの設定
WSL上のディスプレイの設定の工程で、WSL2側のipアドレスを指定する必要があります。
この記事ではipconfigで確認して設定していますが、記事にもある通り再起動のたびにipアドレスが変わるという問題があります。
以下のようなコマンドでWSL2側からipアドレスを取得して、DISPLAYの環境変数に突っ込むことができます。これを設定ファイル(zshrcとか)に書いておけば、起動時に自動的に設定することが可能になります。

export DISPLAY=`grep -oP "(?<=nameserver ).+" /etc/resolv.conf`:0.0

2021.03.05 追記

X410(有償のX server)のページにも同内容の記載がありました。
https://x410.dev/cookbook/wsl/using-x410-with-wsl2/

2021.07.13 追記

export DISPLAY=`hostname`.mshome.net:0.0

でいけるようです。詳細は以下の記事を参考に。
参考: https://qiita.com/taichi-ishitani/items/b627e31a97fef24c6ee4

ついでですが、WSLgを使う場合は、そもそも設定ファイルにはDISPLAYの設定を何も書かないか、以下のようにしましょう。

export DISPLAY=:0

参考: https://zenn.dev/suisuiso/articles/eb6796f68324cd