经过大量搜索后我发现了这个:
bool kbdActivity(Display* display) // checks for key presses
{
XQueryKeymap(display, keymap); // asks x server for current keymap
for (int i=0; i<32; i++) // for 0 to 32 (keymap size)
{
if (prevKeymap[i] != keymap[i]) // if previous keymap does not
{ // equal current keymap
XQueryKeymap(display, prevKeymap); // ask for new keymap
return true; // exit with true
}
}
return false; // no change == no activity
}
Run Code Online (Sandbox Code Playgroud)
当我每 100-300 毫秒调用它时,它会检测到 X 中任何位置的任何按下的键。