淡々

プログラミング関連を中心に、様々なことを適当に書きます

wsl2でfishを使用しているときにVcXsrvが機能しないときの対処法

症状

wsl2でfishをログインシェルにしている環境で、以下のサイトを参考にGUI環境を構築したところ、GUIアプリを起動しようとしたときに次のような出力がされ、起動できなかった。

Unable to init server: Could not connect: Connection refused
Cannot parse arguments: Cannot open display:

astherier.com

原因

~/.profile内に記述した

export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}'):0.0

この一文がfishでは動作しないことが原因

fishはposix互換ではない為、sh, bash向けに書かれたスクリプトが動かないことがある

解決策

  • ログインシェルをbash, zshなどのposix互換shellに戻す
  • 一時的にbashにログインしてsource ~/.profileをしてからGUIアプリを使う