我试过使用:
win.configure(stack_mode=X.TopIf)
win.set_input_focus(X.RevertToParent, X.CurrentTime)
但是,即使在我的窗口管理器上没有任何焦点丢失预防措施,这也不起作用,有人知道另一种方法吗?Xlib 与否。
有一个名为wmctrl的命令行工具,它允许您与兼容 EWMH/NetWM 的 X 窗口管理器进行交互。
例如,
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] Force Raise/Map/Focus a given Window
给出的解决方案(按照线程)涉及使用 wnck,它在 Python 中是 Gtk+ 绑定的一部分。