如果按住抓取键的同时,其他键也是"grabbed"

If while press and holding grabbed key, other keys are also "grabbed"

我用 XGrabKey 抢到了一把钥匙:

int mods = 0;
bool ownerevents = true;
XGrabKey(display, MY_KEYCODE, mods, rootwin, ownerevents, GrabModeAsync, GrabModeAsync);

成功抢到钥匙。在我的示例中,MY_KEYCODE 用于键 b。所以现在我的事件循环只有在我按下 b 键时才会启动。但是,如果我按住 b 键,然后按其他键,这些键也会被报告到我的事件循环中,并且也会被阻止,所以 "grabbed" 暂时。我想在 KeyPressed 部分尝试 XAllowEvents,但它不起作用。

有没有人知道如何在我抓住的钥匙被抓住的情况下获得其他钥匙,以成功通过未抓住的?

不可能如你所愿。一旦按下抓取的键,整个键盘就会被抓取,直到松开该键。

如果您想以编程方式全局替换绑定到某个键的键符号,这通常通过键重新映射来完成。参见 XChangeKeyboardMappingXkbChangeMap

如果您只是想永久地重新映射一个密钥而不关心它是如何完成的,您可能想要 write/modify 一个配置文件而不用担心编程。参见 xmodmapxkbcomp