来自Rdesktop的Xorg的俄语俄语是一件小事,但是很好

所有人都有使用Linux桌面的经验,但是对我个人而言,虚拟机中的Linux桌面+ rdesktop串联非常重要。 造成这种情况的原因是某些软件通常只能在Windows下运行,或者在Windows下可以更好地运行,以及需要测试各种Windows设备。

台式机的这种配置带来了一个麻烦的问题-在Windows中分别使用自己的语言,在Linux中-分别进行切换,您将不断地需要3-4次切换,直到它起作用为止。 此外,如果在Xorg中,语言不是通过Windows选择的,而是全局选择的。

我决定研究此问题,并以某种方式本机解决所有模式,以便在rdesktop窗口中键入俄语字母,就像在Xorg窗口中键入俄语字母一样。 我将尝试简要描述这种解决方案的本质和技术。

问题的实质在于,RDP技术涉及扫描码的传输,而不是任何特定的字符。 因此,在rdesktop中,会基于当前语言环境自动选择常规的键盘映射。

因此,有必要:

  1. 为Windows创建一个特殊的布局,其中某些修饰符同时选择英语和俄语字符。
  2. 制作一个键盘图,将带有修饰符的俄语字母作为扫描码发送。 制作常规的键盘映射“ ru”,以便将俄语字符作为AltGr +扫描代码发送。 它仅缺少符号“ No”。

存在这样的布局(例如Cyrilock),但是我没有找到一个可以正常工作的布局,因此使用Microsoft Keyboard Layout Creator v1.4我制作了自己的布局。 MKLC收集dll布局并使其成为安装程序。 在其中的按钮上,定义了英文字符,将俄语字符定义为AltGr +按钮(从仅需确定3号的数字即可确定,其余数字可以正确传输)。

要工作,您需要两个文件:

1.下载布局安装程序,将其安装在Windows上,然后将其保留。 如果您不是通过rdesktop而是通过控制台进行连接-可以使用英语,则可以通过Ctrl-Alt键入俄语字母。

在Linux中,必须将键盘映射放置在全局(/ usr / share / rdesktop / keymaps)或用户(〜/ .rdesktop / keymaps)目录中。

一些细微差别:

  1. 在键盘映射表中添加了ISO_Next_Group 0x0,以使按下语言切换按钮不会传递到另一侧以及上述符号No.。
  2. 供参考-我已通过Caps Lock进行了切换,指示器和并排窗口切换控制器中装有gxkb。
  3. 如果您修复了布局并通过MKLC对其进行编译-始终使用不同的名称命名并重新启动计算机,则它会始终坚持使用旧版本的布局库。 最好在重新启动之前将其卸载。
  4. 在Windows中,布局的实际位置并不总是与键盘设置相对应,有时会在此处出现多余的设置。 正确的状态仅由语言切换面板显示。
  5. MKLC通常无法更正布局的名称,为此必须从系统中安装的布局中下载布局并保存源文件。

参考文献:
  1. 准备好布局安装程序
  2. 键盘图rdesktop
  3. MKLC v1.4的布局源

Source: https://habr.com/ru/post/zh-CN421971/


All Articles