使用 python 翻译键盘布局

Translate keyboard layout with python

我正在使用 digispark arduino 兼容设备来模拟具有美国布局的键盘(它使用 DigiKeyboard.h 作为库来执行此操作)。 现在,它只是将一个代表一个键的整数作为输入,并按照 USB 键盘标准将其发送到计算机,直到此时一切正常。

问题是我需要这个设备与每个键盘布局一起工作,我的问题是:有没有办法将代表一个字符的数值"translate"转换为代表相同字符的数值使用 python 的任何其他布局?显然我无法通过计算机上的软件更改布局。

示例:假设在美国布局中,字符 "x" 表示为数字 1。在 ES 布局中,字符 "x" 表示为数字 2。我需要一个假设给定数字 1 的函数将输出数字 2.

编辑:进行了一些研究,找不到合适的解决方案,但 hak5 团队已经为橡皮鸭开发了类似的东西,您可以在 github

上找到有用的文件

简而言之:不可能。

图书馆不支持,让我再详细说明一下:

我生成了一个 "lookup table"(使用问题中提到的 hak5 文件),它允许我检查使用哪个键 + 修饰符来表示给定布局中的给定字符(实际上是一个很好的软件);发现该库仅支持 "shift" 修饰符(而在其他布局中需要 alt-gr),这让我很失望。 "keystroke"的编码方式如下:7位用来表示字符的ASCII码(显然它只支持美式键盘的7位ASCII字符),而最高位表示是否是否使用修饰符。

长话短说;博士: DigiKeyboard 仅支持一种修饰符,使其仅适用于美式布局(或类似布局)。

一种快速而肮脏的解决方法,使用此处 tool 使用 hak5 团队编写的工具在 digispark 中翻译一个 rubbery ducky 脚本。