C 如何读取X11/Xlib中根窗口上的按键和按键事件?

C 如何读取X11/Xlib中根窗口上的按键和按键事件?,c,x11,xlib,xserver,C,X11,Xlib,Xserver,我正在编写一个C程序,它将绘制到根窗口。(本部分有效) 我现在需要在根窗口上接受键盘和鼠标输入(在根窗口上单击并按键)。我试过这个: XSelectInput(display, rootWindow, KeyPressMask); XNextEvent(display, &event) 但按键永远不会出现。我也尝试过使用按钮pressTask,但这会产生一个错误: X Error of failed request: BadAccess 有没有可能在不必连接到所有输入的情况下执行此

我正在编写一个C程序,它将绘制到根窗口。(本部分有效)

我现在需要在根窗口上接受键盘和鼠标输入(在根窗口上单击并按键)。我试过这个:

XSelectInput(display, rootWindow, KeyPressMask);
XNextEvent(display, &event)
但按键永远不会出现。我也尝试过使用
按钮pressTask
,但这会产生一个错误:

X Error of failed request:  BadAccess
有没有可能在不必连接到所有输入的情况下执行此操作?我已经在堆栈溢出上看到了这个想法:但据我所知,它钩住了所有的输入

我使用的是i3wm,所以我没有默认的根窗口。(以防有帮助)