如何使用 VNC 客户端将键盘布局设置为 KVM(libvirt)

如何使用 VNC 客户端将键盘布局设置为 KVM(libvirt)

我在一台 AMD 机器上安装了 Debian 9.9 和 kde 的 kvm 客户机和主机

qemu-kvm 1:2.8+dfsg-6+deb9u7 amd64

  • 当连接到虚拟查看器,我的键盘布局是在职的(fr-ch) 实际上,我不知道可用布局列表在哪里,以确认我的布局fr-ch是否可用
  • 当连接任何VNC 客户端,我的键盘布局是不工作布局难以理解....

我试过

  • 改变指令写入 xml使用sudo virsh edit myVmGuest=>keymap='fr-ch' 进入图形部分(不起作用)
  • 将键盘布局更改为 kde 客户机(均不起作用)
  • 更改我的 vnc 客户端

答案1

VNC 协议中的标准按键处理与虚拟化非常不匹配,因为它涉及将 X 键符号发送到服务器。VNC 客户端计算机上的硬件扫描代码被转换为键符号,然后发送到 QEMU,QEMU 随后将它们重新转换为硬件扫描代码,然后将其发送到客户机,客户机再将它们重新转换为键符号。要使此方法成功,本地笔记本电脑上的按键映射需要与 QEMU 中的按键映射设置相匹配,而 QEMU 中的按键映射设置需要与客户机中的按键映射设置相匹配。即便如此,它通常也不完美。

因此 QEMU 定义了 VNC 协议扩展,用于从 VNC 客户端发送硬件扫描代码。这避免了在 VNC 客户端机器或 QEMU 中进行任何类型的转换。硬件扫描代码从 VNC 客户端发送到 QEMU,然后 QEMU 将其发送给客户机。只有客户机需要进行转换。

virt-viewer 应用程序使用支持此协议扩展的 GTK-VNC 库,因此它对您来说很适用。

远程查看器应用程序与 virt-viewer 属于同一代码库,因此可以提供正确支持此协议扩展的普通 VNC 客户端。

尝试使用 QEMU 配置键盘映射确实不值得,因为结果总是比使用 VNC 协议扩展进行扫描码更糟糕。

大多数历史 VNC 客户端都不是支持扩展,但我认为 tigervnc 确实支持该扩展。因此,如果您不使用或无法使用 virt-viewer 或 remote-viewer,请尝试使用 tigervnc。

相关内容