背景
WLS2上でのX Serverの設定について解説します。
何番煎じという感じですが、インターネット上の記事を参考に設定したところ、自分の環境では動かなかったので、自分なりのやり方を記しておきます。
必要なもの
X Serverの設定
VcXsrv設定は以下のページがとても丁寧に解説されているので、ご参照ください。VcXsrvの設定ですがXmingでもほとんど同様のはずです。
WSL2におけるVcXsrvの設定 #VcXsrvの自動起動設定
WSL2の設定
ここがインターネット上に載っているやり方では、自分の環境では動かなかった箇所になります。
インターネット上では、環境変数DISPLAYに
- ipconfig.exeの”イーサネット アダプター vEthernet (WSL)”のIPv4アドレス
- /etc/resolv.confのnameserver
などを設定すると良いとありますが、自分の環境ではX Serverへの出力時に
Error: Can't open display: [IPアドレス]
となってしまいました。
そこで、ipconfig.exeのWindows側(”イーサネット アダプター イーサネット”)のIPv4アドレスを記載したところ、正常に動作しました。
シェル起動時に自動で設定するコマンドは下記です。
export DISPLAY=`ipconfig.exe | awk '/IPv4.*192.168.[0-9]{,3}.[0-9]{,3}/ {sub("\r", "", $NF); printf("%s:0.0", $NF);}'`
まとめ
Windows上でX Serverを起動しているので、当たり前といえば当たり前かもしれませんが、Windows側のIPアドレスを環境変数DISPLAYに設定することで、X Serverが動作しました。
むしろ、ほかの方々はなぜWSL2のIPアドレスを設定してX Serverが動作しているのか分かりません。。。
ご存じの方がいらっしゃいましたら、教えていただけると幸いです。