Bug 487735 - virt-manager/virtinst should not set a keymap unless one is explicitly requested
Summary: virt-manager/virtinst should not set a keymap unless one is explicitly requested
Alias: None
Product: Fedora
Classification: Fedora
Component: python-virtinst
Version: rawhide
Hardware: x86_64
OS: Linux
Target Milestone: ---
Assignee: Daniel Berrangé
QA Contact: Fedora Extras Quality Assurance
Depends On:
Blocks: F11VirtTarget
TreeView+ depends on / blocked
Reported: 2009-02-27 17:47 UTC by Klaus-Peter Schrage
Modified: 2009-04-09 15:22 UTC (History)
11 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Last Closed: 2009-04-09 15:22:38 UTC

Attachments (Terms of Use)

Description Klaus-Peter Schrage 2009-02-27 17:47:19 UTC
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):

How reproducible:

Steps to Reproduce:
1. Create virtual machine with virt-manager
2. Start guest from virt-manager
3. Enter text in guest
Actual results:
Unexpected keyboard layout of unknown type, unusable

Expected results:
German 'qwertzu' keyboard layout

Additional info:
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.

Comment 1 Klaus-Peter Schrage 2009-03-01 10:54:40 UTC
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.

Comment 2 Daniel Berrangé 2009-03-01 11:50:55 UTC
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

Comment 3 Klaus-Peter Schrage 2009-03-01 13:01:20 UTC
Thanks, Daniel,
that sounds good (as far as I can understand it), and I can wait until Fedora 11 comes up.

Comment 4 Cole Robinson 2009-03-04 16:54:54 UTC
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?

Comment 5 Daniel Berrangé 2009-03-04 19:49:32 UTC
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)

Comment 6 Klaus-Peter Schrage 2009-03-09 16:57:07 UTC
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.

Comment 7 Cole Robinson 2009-04-09 15:22:38 UTC
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.

Note You need to log in before you can comment on or make changes to this bug.