On March 8, 2012 at 11:01 PM Fabian Holler <fabian.hol...@profitbricks.com> wrote:
> Hello Anthony, > > > On Thu, Mar 08, 2012 at 03:30:18PM -0600, Anthony Liguori wrote: > > On 03/07/2012 04:53 AM, Fabian Holler wrote: > > >Hello, > > > > > >I'm not sure if I found a bug in QEMU's VNC keyboard layout mapping or > > >if it's a general problem in the implemented VNC server: > > > > > >Scenario: > > >QEMU started with: "-k de" > > >Keyboard layout in VM: de > > >Keyboard layout from Client OS: us > > > > > >What i expect: > > >I type the '/' character on the Client OS (key left from the right-shift-key) on US layout. > > >Keysymbol '/' is send over VNC to the QEMU. > > >QEMU lookup in the de keyboard mapping table for the character '/' and > > >should find the scancodes for the keys shift+'7'. > > >The Scancodes for shift and '7' > > > > This does not exist. There is no such thing as "Scancodes for shift and '7'". > > > > Instead, what's sent to the Client OS is literally, "the key at the > > fourth column, second row". > > Yes, I know. > What i actually meant was: with the knowledge of the used > keyboard layout and the key symbol QEMU could figure out that it has to > send scan codes for the keys that are labeled SHIFT & 7 on a keyboard > with DE layout. > Afaik QEMU does this already for the 7 labeled key. But it doesn't > remove/adds additional needed metakey presses like eg Shift. > Or I'm wrong? > > The idea was to add these interpretation to also add/remove additional > metakey scancodes for the VM if needed. > > > There's really nothing that can be done about this. The way gtk-vnc > > fixes this is by obtaining the actual scancode from the user's > > keyboard. But you can't get this in Java in an applet AFAIK. > > The same should work in a Java Applet but you also have to figure out > the used keyboard layout and handle metakeys. > > > regards > > Fabian > Hi all, I'm experiencing the same issues. When using the QEMU VNC server (which I would prefer to Remote Desktop or a VNC server installed on the guest) I get problems when pressing special character keys on the remote keyboard. QEMU reports on the console: Warning: no scancode found for keysym 180 or Warning: no scancode found for keysym 223 I just want to route all keypresses to the guest without interfering with the native QEMU key layout. Is that possible? When running QEMU via SDL and a real monitor and keyboard attached, I have no problems with the different keyboard language layouts (I tested US, DE, ES, FR). Well - there I switch the keyboard language layout in Windows for having all keypresses handled correctly (in most cases, Windows detects the correct keyboard layout automatically), but there is no change needed in the QEMU command line when having different hardware attached! Any ideas how to resolve that? How does the QEMU VNC server receive the key presses? In the same manner as the direct way does by getting scancodes or via "real" characters? My requirement for the VNC usage is, that all clients that connect via VNC can work independently of their client keyboard layout. The manual switch in Windows for getting the proper key translation is fine for the clients that use VNC. Best regards, Erik