Linux(少なくともGnomeとCompizを使用するUbuntu)のウィンドウ管理の観点から見ると、ウィンドウはスタックで構成されています。フォーカスされたウィンドウ以外のウィンドウに切り替えると、前者はスタックの上部、後者のすぐ上に配置されます。
もしそうなら、WMにそのスタックのウィンドウを上げ下げし、上に上げるか下に下げるように指示することは理論的に可能ですか?
それでは、Python XLibはこれを行うことができますか? WMにはすでにこの機能がありますか?
答え1
はい、ウィンドウは重なって配置されており、上下に移動したり上下に移動したりできます。一部のウィンドウマネージャでは、上部にあるか、すべてのウィンドウ(ワークスペースとも呼ばれる)に「固定」することができます。
見てsend_event()
方法詳細については、関連するX Window Systemのマニュアルを参照してください。しかし、そうです。これを行うことができる必要があります。xev
(実行中のXサーバーPOVで)変更する必要があるものに関する追加のヘルプについては、(1)の出力を確認することをお勧めします。
これが独自のウィンドウである場合(Tkinterなど)、WMの作業を見てください。 Tkinterクラスにはすでにlower()
メソッドとメソッドがあります。具体的な情報については、図書館のマニュアルを確認してください。raise()
TopLevel
答え2
はい、ウィンドウマネージャはウィンドウを上げ下げできます。実際、ウィンドウマネージャは、通常、ウィンドウを下げ、上げる、移動する、サイズ変更する、集中する、および通常はウィンドウ管理を担当する。
ウィンドウを下げて上げるXライブラリ機能は次のとおりです。XRaiseWindow
そしてXLowerWindow
。より多くの機能が利用可能積み上げ順序。 Python Xlibでは利用できないようですが、ctypesの助けを借りて簡単にアクセスできます。