X Window と GNU Screen の相性がよくない

シナリオ

  1. X Window 立ち上げ
    • 普通にGDMで「ログイン」などすればよい
  2. mlterm (または uxterm あたり)立ち上げ
  3. その中で GNU screen 立ち上げ
  4. GNU screen から detach & mlterm 終了
    • ウィンドウ・マネージャの「X」ボタンとか,または GNU screen D (power detach) で
  5. X Window 終了
    • ウィンドウ・マネージャから「ログアウト」など
  6. 再び X Window 立ち上げ
  7. 再び mlterm 立ち上げ
  8. screen -xR で re-attach
  9. その中で OpenOffice.org でも xeyes でも何でもいいから X クライアントを起動
  10. 謎エラーに憤慨
$ xeyes
No protocol specified
Error: Can't open display: :0.0

GNU screen (の立ち上げたシェル?)が,「俺の生まれた頃と何もかも変わってしまった... 時代って奴は...」みたいに発狂するらしいね.私がいつも使う,とりあえずの解決策:

$ xhost +

(これは mlterm を立ち上げた後,古い GNU screen の起動前に実行する.)
Xサーバの認証機能を無効化するらしい.もう少し調べると xauth list で表示されるクッキーを云々という情報が見つかるが,食わせるところで "erroro in locking authority file" とか言われて失敗しかしたことない... これは su した後にXクライアントを起動させようとしてはまる人がいるらしく,そのためには(localhostssh -X が嫌な人向けに) sux とかあるらしいが,私の問題とは違うんだよな.
いつか xhost や xauth の正確な動作原理を知りたいものだが... X Window なんて DISPLAY=:0 しか知らないからなぁ.