私は使用してみました:
win.configure(stack_mode=X.TopIf)
win.set_input_focus(X.RevertToParent, X.CurrentTime)
ただし、ウィンドウマネージャーでフォーカス損失防止がなくても、これは機能しません。これを行う別の方法を知っている人はいますか? Xlib かどうか。
EWMH/NetWM 互換の X ウィンドウ マネージャと対話できるwmctrlというコマンド ライン ツールがあります。
例えば、
wmctrl -l
ウィンドウマネージャーによって管理されるすべてのウィンドウを一覧表示し、
wmctrl -a Mozilla
タイトルに文字列 "Mozilla" が含まれるリスト内の最初のウィンドウをアクティブにします。ウィンドウを選択する方法は他にもあります。上記はほんの一例です。
wmctrl を使用すると、ウィンドウを移動およびサイズ変更することもできます。
これを試して:
window=Display().screen().root.query_pointer().child
window.set_input_focus(X.RevertToParent, X.CurrentTime)
window.configure(stack_mode=X.Above)
おそらくこれが解決策です:
[Xlib] 指定されたウィンドウを強制的にレイズ/マップ/フォーカスする
与えられた解決策 (スレッドに従ってください) には、Python では Gtk+ バインディングの一部である wnck の使用が含まれます。