Hi, I am pretty new to libvirt, but have succeeded in setting up two VM's, Windows 10 and ClearOS (a Centos derivative) and they both have the same issue. I have installed both of them with a UK English keyboard, but the host machine is remote and in the US with a US locale. When I access either through VNC (I've tried TightVNC and VNC-Viewer), a number of my keys don't map correctly. As an example the \ key comes up with a #, and the # key comes up with a 3 (as does the 3 key). Other keys are the standard US type of mapping, but the £ (above 3) comes up blank and the $ (above 4) comes up with $ which, I think is the UK setting and not the US setting. At this point I am thoroughly confused. Does anyone have any ideas? Thanks, Nick
Anyone? It looks I can get the "\" to work if I configure the VM Win10 instance to use a US keyboard and it does not matter if the local keyboard also on Win10 running the TightVNC client is UK or US. However I can never get the £ key to work in the VM. On 25/01/2019 16:35, Nick Howitt wrote:> Hi, > I am pretty new to libvirt, but have succeeded in setting up two VM's, > Windows 10 and ClearOS (a Centos derivative) and they both have the > same issue. I have installed both of them with a UK English keyboard, > but the host machine is remote and in the US with a US locale. When I > access either through VNC (I've tried TightVNC and VNC-Viewer), a > number of my keys don't map correctly. As an example the \ key comes > up with a #, and the # key comes up with a 3 (as does the 3 key). > Other keys are the standard US type of mapping, but the £ (above 3) > comes up blank and the $ (above 4) comes up with $ which, I think is > the UK setting and not the US setting. At this point I am thoroughly > confused. > Does anyone have any ideas? > Thanks, > Nick > > _______________________________________________ > libvirt-users mailing list > libvirt-users@redhat.com > https://www.redhat.com/mailman/listinfo/libvirt-users
Daniel P. Berrangé
2019-Jan-30 12:32 UTC
Re: [libvirt-users] Keyboard problems with VNC access
On Fri, Jan 25, 2019 at 04:35:12PM +0000, Nick Howitt wrote:> Hi, > I am pretty new to libvirt, but have succeeded in setting up two VM's, > Windows 10 and ClearOS (a Centos derivative) and they both have the same > issue. I have installed both of them with a UK English keyboard, but the > host machine is remote and in the US with a US locale. When I access either > through VNC (I've tried TightVNC and VNC-Viewer), a number of my keys don't > map correctly. As an example the \ key comes up with a #, and the # key > comes up with a 3 (as does the 3 key). Other keys are the standard US type > of mapping, but the £ (above 3) comes up blank and the $ (above 4) comes up > with $ which, I think is the UK setting and not the US setting. At this > point I am thoroughly confused. > Does anyone have any ideas?With the traditional VNC protocol, key presses are as key symbols which means your local client key map conversion has already been applied. When QEMU injects keys into the guest OS, it has to undo this key map conversion to get the scancodes again. This undo is a lossy procedure unless the keymap in your VNC client machine 100% matches the keymap used by QEMU. For sanity the guest OS keymap also has to match or it will convert the scancodes it gets from QEMU back into different key symbols. NB, QEMU does not use its host OS keyboard layout - it uses the layout given by the "-k" argument to QEMU, which defaults to "us" if not specified. This is likely the problem you are facing since you say the VMs have UK keyboard layout and your QEMU is probably using US layout and so is your client machine. QEMU defined a VNC protocol extension which allows the client to pass raw scancodes to QEMU. This avoids the need for QEMU todo any lossy conversion, as it can send them straight to the guest OS. This extension is supported by the GTK-VNC library used by virt-manager, virt-viewer, GNOME boxes, and Vinagre clients. I believe the extension is also supported by TigerVNC, and the HTML5 noVNC web client (though that has plenty of other pain with keyboards). If you have a client that supports this extension, then you must make sure that *no* -k arg is gievn to QEMU. Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
Reasonably Related Threads
- Keyboard repeat error - VNC Xen virtual framebuffer
- What is needed to allow Network Browsing of the file server in Windows
- Make nmbd bind to interfaces only
- Password change **apparently** failing in Windows 10 with 4.7.1
- Password change **apparently** failing in Windows 10 with 4.7.1