我用XGrabKey
抓住了一把钥匙:
int mods = 0;
bool ownerevents = true;
XGrabKey(display, MY_KEYCODE, mods, rootwin, ownerevents, GrabModeAsync, GrabModeAsync);
它成功抓住了关键。在我的示例MY_KEYCODE
中,关键字为b
。所以现在我的事件循环只有在我按下b
键时才会启动。但是,如果我按住b
键然后按其他键,那些也会被报告到我的事件循环并且也被阻止,因此暂时“抓住”。我想在XAllowEvents
部分尝试KeyPressed
,但它无效。
有没有人对如何获取其他密钥有任何想法,而我的抓取钥匙被保留,成功通过未编号?
答案 0 :(得分:1)
不可能做你想做的事。按下抓取的按键后,将抓住整个键盘直到释放按键。
如果您希望以编程方式全局替换绑定到键的键,则通常使用键重映射来完成。请参阅XChangeKeyboardMapping
和XkbChangeMap
。
如果你只是想永久地重新映射一个密钥并且不关心它是如何完成的,你可能想要编写/修改一个配置文件而不打扰编程。请参阅xmodmap
和xkbcomp
。