WSL2でGUIの表示を行う時には、
Vcxsrvを使う方法があった。
それとは別に、xrdpを使う方法もあるようだ。
qiita.com
このままでほぼ完成しているが、リモートデスクトップを放置すると黒い画面になって復帰できない。
WSL2上で
pkill xfce4-session
とすれば、治るが、面倒くさいので画面ロックを解除する。
しかし、GUI表示をしたいときというのはWindows側から、
VScodeなどでpythonをいじってmatplotlibで表示したりしたかったので、
リモートデスクトップに表示されているディスプレイにWSL2から表示できるようにする。
ps -ef | egrep Xorg
で見ると、
124 122 1 19:22 pts/0 00:00:20 /usr/lib/xorg/Xorg :16 -auth .Xauthority -config xrdp/xorg.conf -noreset -nolisten tcp -logfile .xorgxrdp.%s.log
nolistenとなっている。
PIDをたどると
とxrdp-sesmanというのが起動しているらしいので、
設定ファイルは
/etc/xrdp/sesman.ini
にあって、Xorgのパラメータをlisten tcpにする。
[Xorg] ... param=-listen param=tcp ....
ディスプレイナンバーは16なので
export DISPLAY=localhost:16.0
とすれば、Windows上のWSL2ターミナルから起動したGUIがリモートデスクトップ接続されたところに表示される。