![プログラムを終了しても古いウィンドウの一部が残る](https://rvso.com/image/1114427/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%82%92%E7%B5%82%E4%BA%86%E3%81%97%E3%81%A6%E3%82%82%E5%8F%A4%E3%81%84%E3%82%A6%E3%82%A3%E3%83%B3%E3%83%89%E3%82%A6%E3%81%AE%E4%B8%80%E9%83%A8%E3%81%8C%E6%AE%8B%E3%82%8B.png)
プログラムを閉じた後、ウィンドウの一部が開いたままになります。画面の影響を受ける部分はウィンドウが開いていたときのままで、他のウィンドウの上に残ります。これは再描画の問題ではありません。それ自体--xrefresh
問題のあるウィンドウを再描画するため役に立ちません。
このファントム ウィンドウは、「タスク バー」や Alt+Tab スイッチャーには表示されませんが、単なる画面アーティファクトでもありません。マウスをその上に移動するとカーソルが変化するため、ある意味ではまだウィンドウのように扱われています (ただし、選択または変更することはできず、完全なタイトル バーもありません)。
これを変更する方法はありますか? 残念ながら、この問題は、私の場合、おそらく 1 週間おきくらいに、ある程度定期的に発生します。長時間の計算を行うためにコンピューターを長時間オンにしたままにしておくと、作業が完了して再起動できるようになるまで数週間、ディスプレイの一部がブロックされるため、これは小さな不便以上のものです。
答え1
答えを見つけたので、同じ問題を抱えている他の人のためにここに記録しておきます。
まず、xprop
どのウィンドウが問題を引き起こしているかを調べました。 (xkill
はここでは効果がありません)。 結局、 でしたgtk-window-decorator
。
次に、pid (または で指定xprop
)でそれを強制終了しましたps
。最後に、タイトル バーやその他の装飾を取得するために、(ターミナルにバインドされないように Alt + F2 を使用して) 再起動しました。
答え2
最も良い方法は、「ps -A」コマンドを実行して、実行中のプロセスを確認することです。重要なプログラムを実行していないことを確認し、できるだけ多くのプログラムを終了してください。そうすれば、「ps -A」コマンドで表示されるプロセスが少なくなります。
次に、ファントム ウィンドウが消えるまで、各プロセスを 1 つずつ強制終了します。強制終了する前に、プログラムをメモしておきます。これは、コンピューターを混乱させるプロセス (メモリ、いつでも再起動できます) を強制終了した場合に備えてのことです。つまり、次回ウィンドウが表示されたときに再起動してやり直すことになります。
これは反復的なプロセスですが、障害を見つけるのに役立ちます。
問題のあるプログラムを見つけたら、それを削除するか、実行できないように属性を設定します。
また、表示されるプロセスを Google で検索すると、正常なプロセスと、参照が見つからない原因となっているプロセスがわかります。