抓取 X11 中的任何按键

Grabbing any keypress in X11

我正在尝试在 C 中实现一个简单的 X11 键抓取器,用于 window 使用 Alt-Tab 等进行切换。我可以使用函数 XSelectInput 来处理键盘特定 window 的事件:

XSelectInput(display, window, KeyPressMask | KeyReleaseMask);

如何接收 "global" 键盘事件,而不管哪个 window 处于焦点?

您需要 XGrabKey。这个函数是专门为实现热键而设计的。

当按下所需的组合键时,无论如何您都会收到事件,而其他 window 不会收到事件。