回答:
これは、新しいssh接続が環境変数$DISPLAY
または$XAUTHORITY
環境変数、あるいはその両方に新しい値を使用しているのに、スクリーンセッションが元のssh接続の値を使用しているためです。
次の内容のスクリプトを作成し、それをスクリーンセッションに再アタッチする前に実行してから、スクリーンセッション内の各シェルで実行できます。 source ~/.Xsetup
#!/bin/sh
exec > $HOME/.Xsetup
echo DISPLAY=$DISPLAY
echo XAUTHORITY=$XAUTHORITY
これにより、生成されたスクリプトファイルのソースとなるシェルに新しい値がコピーされます。しかし、スクリーンセッション自体にはまだ古い値があり、新しいプログラムが開始された場合も同様に取得されます。これらの値は、.Xsetupファイルを読み込んだ後に次を実行することで修正できます。
screen -X setenv DISPLAY $DISPLAY
screen -X setenv XAUTHORITY $XAUTHORITY