这实际上是一个编码问题。
我知道 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服务器)
因此可以发送任何字符并且键盘布局可以保持不变。