当按下键盘时,X 服务器如何发出一个字符?

当按下键盘时,X 服务器如何发出一个字符?

这实际上是一个编码问题。

我知道 X 服务器会检查活动键盘布局以确定要发出哪个字符(支持 unicode)。但我实际上不知道这是如何完成的,有人可以指出我可以在其中看到其实际效果的源代码吗?

我实际上想做的是创建一个“unicode 键盘驱动程序”,它可以做同样的事情(忽略活动布局),但是我需要知道 X 如何将 unicode 字符发送到 GUI。

即使我需要向 X 服务器添加新功能并重新编译它也没关系。我只是想指出将这些字符发送到 GUI 中的正确源代码。

编辑:

这些评论为我指明了在哪里寻找答案的正确方向。我想我现在已经弄清楚如何以编程方式将 unicode 文本输出到 Linux 上的 GUI 中。

提示:xdotool / libxdo、XTestFakeKeyEvent、xmodmap -e“键码 107 = U2196”

我将看看我最终是否可以用我自己的 C++ 库来回答这个问题。

答案1

我找出了以编程方式执行此操作所需的两个命令:

XChangeKeyboardMapping(将未使用的键码映射到 char/unicode)

XTestFakeKeyEvent(将其发送到X服务器)

因此可以发送任何字符并且键盘布局可以保持不变。

相关内容