Red Hat Bugzilla – Bug 487735
virt-manager/virtinst should not set a keymap unless one is explicitly requested
Last modified: 2009-04-09 11:22:38 EDT
Description of problem:
I have created two virtual machines with virt-manager:
- Windows XP (32bit)
- Fedora 10 (64bit).
Both installed without problems, but when I try to make any text input in either of the guest OS, I get a strange, 'qwertyu' type keyboard layout.
On the host, I am using KDE 4.2, a German keyboard (evdev-managed) with DE layout. Changing keyboard model from edev-managed to Generic doesn't make any noticeable difference.
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. Create virtual machine with virt-manager
2. Start guest from virt-manager
3. Enter text in guest
Unexpected keyboard layout of unknown type, unusable
German 'qwertzu' keyboard layout
1. Whenever I switch the keyboard layout to "US" on the host, I immediately get a layout on the guest which is nearly ok (no symbols obtainable with the AltGr key); when I switch back to "DE", the borked layout is back.
2. When I run any of the guests with the qemu-kvm command, I get a guest layout which is nearly ok as well.
There is a workaround:
1. Change a line in the virtual machines's XML file in /etc/libvirt/qemu/ from
<graphics type='vnc' port='-1' autoport='yes' keymap='en_us'/> to
<graphics type='vnc' port='-1' autoport='yes' keymap='de'/>
2. Restart the libvirtd daemon.
But a bug in virt-manager remains. This tool seems to be made for virtualization newbies like me who usually don't poke around in xml configuration files hidden from ordinary users. It would be preferrable if virt-manager asked for the desired keymap.
I still have the AltGr problem mentioned above, but that is another story.
QEMU has had a VNC extension added so that the keymap is no longer required - it will use raw scancodes across the wire & into the guest, so the guest has complete control over keymap without needing this setting. This will be in Fedora 11
that sounds good (as far as I can understand it), and I can wait until Fedora 11 comes up.
Danpb, so how will this work? Does qemu just ignore a manually specified keymap, or should libvirt drop the keymap setting for a sufficiently new version?
No, if you set a keymap, QEMU will always use that keymap. The raw scancode VNC extension is only activated if no keymap is specified. So I'd recommend that virt-install never set a keymap, unless the user explicitly asks for one with "--keymap fr". For virt-manager we should probably have a globall preference available, which defaults to no keymap at all, but which lets the user override to an explicit one if desired (eg, so it works with VNC clients not supporting the extension)
FWIW: If there is no keymap specified in the xml file, i. e. if the above line reads
<graphics type='vnc' port='-1' autoport='yes'/>
then the host's keymap setting are respected, even the characters accessible by means of the AltGr key are reproduced. It seems as if the key codes are mapped directly to the guest.
But you can't set this in virt-manager, you have to make changes in the xml file manually.
Okay, fixed python-virtinst-0.400.3-5.fc11 (rawhide). Now the user has to explictly set a keymap via virt-install, or when adding a Graphical device via virt-manager.
Closing as RAWHIDE. Please reopen if you still see issues.