我想在Linux桌面上创建一些窗口,以便进行简单的布局。我需要避免用户输入到这些窗口(我想避免窗口获得焦点应该足以让它发生)。
我认为我可以使用xprop
命令通过设置WM_HINTS
属性来执行此操作,但我没有找到有关如何执行此操作的具体文档。
顺便说一句,对于mplayer窗口,我可以使用选项-input nodefault-bindings:conf=/dev/null
来完成此操作。我只需要一个通用的解决方案,我可以在任何应用程序窗口的低级别强制执行。
谢谢!
答案 0 :(得分:2)
窗口通过在事件掩码中设置KeyPress
和KeyRelease
位来指示是否要接收键盘输入。如果您不希望窗口接收键盘输入,只需不要在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
如果你想摆弄其他应用程序的窗口,你应该能够改变它们的属性和提示,尽管这可能会导致不良行为和/或副作用。