Python: Xlib -- 如何提升窗口到最前面?

9 投票
3 回答
6181 浏览
提问于 2025-04-15 15:20

我试过使用:

   win.configure(stack_mode=X.TopIf)
   win.set_input_focus(X.RevertToParent, X.CurrentTime)

但是即使我的窗口管理器没有任何防止失去焦点的设置,这个方法还是不行。有没有人知道其他的办法可以做到这一点?不管是用Xlib还是其他的。

3 个回答

1

也许这个是解决办法:
[Xlib] 强制提升/显示/聚焦一个窗口

在这个讨论中提到的一个解决方案是使用wnck,这在Python中是Gtk+库的一部分。

3

试试这个:

window=Display().screen().root.query_pointer().child
window.set_input_focus(X.RevertToParent, X.CurrentTime)
window.configure(stack_mode=X.Above)
3

有一个命令行工具叫做 wmctrl,它可以让你与支持EWMH/NetWM的X窗口管理器进行互动。

比如说,

wmctrl -l

这个命令可以列出所有由窗口管理器管理的窗口,而

wmctrl -a Mozilla 

这个命令可以让列表中第一个标题包含“Mozilla”的窗口变为活动窗口。选择窗口还有其他方法,上面的只是一个例子。

wmctrl 还可以让你移动和调整窗口的大小。

撰写回答