我刚刚发现我的键盘不能添加超过 4 种布局。通过 Google 搜索发现这是一个通用限制(至少对于 GNU/Linux 而言),而绕过它的唯一方法是使用一些带有脚本的 hack 方式。这背后真的有技术原因吗?如果是,那是什么?
答案1
引用 Peter Hutterer 的话(在 X.Org 工作的 Red Hat 员工):
有关此功能的一些信息以及为什么尚未实现:协议线路格式强制限制 4 个组。只有通过向 XKB 添加其他请求和事件并重写客户端以切换到此新 XKB 版本,才能添加对 4 个以上组的支持。此外,必须确保与旧协议的兼容性,以便当前的 XKB 客户端仍能与新 XKB 版本一起正常运行。
这既复杂又耗时。当然,我们非常欢迎志愿者来解决这个问题。
[...]
它被编码在协议的某些位中,其他位用于其他信息。因此,对于超过 4 的任何内容,您需要在请求/事件中添加额外的字节,而添加额外的字节需要增加协议。然后,您必须处理那些只理解 4 个组的客户端,以及如果键盘位于第 5 组中,如何处理它们。
为什么我们没有在这个层之上进行破解——我不知道......这一定是有史以来最糟糕的限制。:D
答案2
我经常用英语、德语、瑞典语和中文写作。这是四种语言,但我也在学习俄语,希望通过 GUI 进行额外的切换。与此同时,脚本是一种可行的解决方案:
http://ubuntuforums.org/showthread.php?p=10333055#post10333055
有人可能会注意到,使用俄语时,可以选择“标准”俄语键盘布局,或者选择更方便(对于我们这些学习者来说)的与 QWERTY 配对的语音布局。
此外,我们许多人都使用某种形式的 Dvorak,它也会采取某种姿势。
因此,我的计算机看起来是这样的:
键盘布局:
美国 Dvorak (程序员) 瑞典语 德语 俄语 俄语注音
并且有一个额外的键盘图标,带有用于汉语拼音的 ibus 切换功能。
答案3
协议留出两位用于键盘切换。这比许多人需要的多。我见过的大多数切换键盘布局的用户都使用两种布局:本地布局和国际布局。国际布局通常处理所有需要的键的组合。这样就剩下一个多余的位。我见过有三种布局的用户,但通常其中一种从来不用。
我感兴趣的是您正在做什么,需要四种以上的布局,以及您如何处理不断变化的键盘映射。我发现很难让用户习惯两种布局,即使它解决了他们在国际化方面遇到的问题。