消える Window の謎.


ユーザインターフェースのバグというのも, なかなかストレスがたまるものですが, 人々がもっとも親しんでいる機能なので, わりとバグも少ないようです. しかし, まったくもって Window Manager のバグには困ります.

これは afterstep 1.0 のバグなのでしょうが, Pager から仮想デスクトップにアクセスしたあと "shade" し, 再び Pager から仮想デスクトップにアクセスすると その窓が消滅するという現象があります.

上の図では, xterm が消えています. 画面のどこにもありませんし, ページャからも消滅しています. (左下のアイコンは xconsole) 窓は見えなくなるだけで, Window List を使うとちゃんと存在しています. 上の図で画面真ん中付近の小さい widget は, 消えた xterm が出現している Window List です. それどころか, circulate up (あるいは down) を使うと, 例えば focus-follows mode なら, そこに窓があるはずの場所をマウスポインタが指します. しかし, マウスポインタが指した場所には何もありません. これは, Window List から消えた窓にアクセスした場合も同じです.

文字端末から ps してみれば判りますが, 消えた窓を持っているプロセスはちゃんと生きています. しかし, なぜか, まるでバーミューダトライアングルに吸い込まれたように窓が 消滅してしまったので, そのプロセスに対する通常の操作は一切出来なくなってしまうのです.

このトラブルに巻き込まれないためには, shade を使わないというのが確実な 手ですが, それも悲しいので先頃, 4次元(3次元か?)に消えた窓を取り戻す方 法を見出しました. とても簡単です. それは, afterstep から "restart" ファ ンクションを呼ぶ. すなわち afterstep を再起動すれば良いのです. logout してしまったら, 他に起動していたあなたのプロセスは, nohup とか してない限り, 終了してしまいます. だから, logout はしないように注意して下さい. restart すれば, 今起動しているプログラムと, それに関連した窓はそのままで, 消えていた窓は(何故か アイコン化されて)復活します.