如何将键按键事件发送到X以获取键盘上没有的键?

时间:2012-02-15 19:58:18

标签: keyboard key x11

我想向X发送合成按键事件。对于使用XSendEvent发送KeyPress事件的大多数密钥,这似乎都能正常工作。不幸的是,我无法让它工作在键盘上实际上不在键盘上 - 在这种情况下是英镑符号£(我有一个美国键盘)。

问题似乎是XKeyEvent结构需要keycode而我只有KeySym这个标志。 XKeysymToKeycode返回0,因为没有密钥。

有谁知道我怎么能做到这一点?可能我需要一些相当不同的方法 - 任何建议都值得赞赏!

2 个答案:

答案 0 :(得分:2)

查看xdotool

答案 1 :(得分:1)

@Peter你正在寻找正确的方向。部分挑战是KeySyms的集合远大于keycode的大小。您可以在合成事件之前修改键映射来解决此问题。

查看libfakekeyhttp://git.yoctoproject.org/cgit/cgit.cgi/libfakekey/tree/src/libfakekey.c

特别是:fakekey_press_keysym函数需要KeySym发送而不仅仅是代码。