Назад | Перейти на главную страницу

Как установить раскладку клавиатуры с помощью клиента VNC на KVM (libvirt)

У меня есть как гости, так и хосты kvm, установленные на Debian 9.9 с kde на машине AMD

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

Я попытался

Стандартная обработка ключей в протоколе VNC очень плохо подходит для виртуализации, потому что она включает отправку X ключей ключей на сервер. Аппаратные скан-коды на клиентской машине VNC превращаются в ключевые символы, которые отправляются в QEMU, который затем превращает их обратно в аппаратные скан-коды, которые отправляют их гостю, что снова превращает их в ключевые символы. Чтобы это вообще имело хоть какие-то шансы на работу, раскладки клавиатуры на вашем локальном портативном компьютере должны соответствовать раскладке клавиатуры, установленной в QEMU, которая должна соответствовать раскладке клавиатуры, установленной внутри гостя. Но даже в этом случае это часто не идеально.

Таким образом, QEMU определил расширение протокола VNC для отправки аппаратных скан-кодов от клиента VNC. Это позволяет избежать любого перевода на клиентском компьютере VNC или в QEMU. Аппаратные сканкоды отправляются от клиента VNC в QEMU, который отправляет их гостю. Только гостю нужно сделать перевод.

Приложение virt-viewer использует библиотеку GTK-VNC, которая поддерживает это расширение протокола и, следовательно, поэтому оно хорошо работает для вас.

Приложение удаленного просмотра является частью той же кодовой базы, что и virt-viewer, и поэтому может предоставлять простой клиент VNC, который правильно поддерживает это расширение протокола.

На самом деле не стоит пытаться настраивать раскладки клавиатуры с помощью QEMU, поскольку результат всегда будет хуже, чем использование расширения протокола VNC для скан-кодов.

Самый исторический клиент VNC делает не поддерживает расширение, но я считаю, что он делает это правильно - tigervnc. Поэтому, если вы не используете / не можете использовать virt-viewer или remote-viewer, попробуйте использовать tigervnc.