如何防止X Window接收用户输入?

时间:2015-04-23 23:09:07

标签: linux x11 window-managers

我想在Linux桌面上创建一些窗口,以便进行简单的布局。我需要避免用户输入到这些窗口(我想避免窗口获得焦点应该足以让它发生)。

我认为我可以使用xprop命令通过设置WM_HINTS属性来执行此操作,但我没有找到有关如何执行此操作的具体文档。

顺便说一句,对于mplayer窗口,我可以使用选项-input nodefault-bindings:conf=/dev/null来完成此操作。我只需要一个通用的解决方案,我可以在任何应用程序窗口的低级别强制执行。

谢谢!

1 个答案:

答案 0 :(得分:2)

窗口通过在事件掩码中设置KeyPressKeyRelease位来指示是否要接收键盘输入。如果您不希望窗口接收键盘输入,只需不要在CreateWindow()的事件掩码中设置这些事件。有关详细信息,请参阅http://www.x.org/releases/X11R7.7/doc/xproto/x11protocol.html#requests:ChangeWindowAttributes

此外,您还应将窗口的输入焦点提示设置为“NoFocus”,如ICCCM的4.1.7部分所述:http://tronche.com/gui/x/icccm/sec-4.html#s-4.1.7

如果你想摆弄其他应用程序的窗口,你应该能够改变它们的属性和提示,尽管这可能会导致不良行为和/或副作用。