qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Anthony Liguori <anthony@codemonkey.ws>
To: Fabian Holler <fabian.holler@profitbricks.com>
Cc: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] Keysymbol interpretation missing in QEMU's VNC server?
Date: Thu, 08 Mar 2012 15:30:18 -0600	[thread overview]
Message-ID: <4F5924EA.7010604@codemonkey.ws> (raw)
In-Reply-To: <20120307105357.GA30632@fholler.de>

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".

The sticker that is on that key is unknown to the physical keyboard.  When you 
select a keyboard type in an OS, you're literally telling the OS what labels are 
on the physical keyboard.

Yes, it's almost mind blowing that in 2012, keyboards don't tell you what the 
labels on the keys are... but they don't.

When you tell QEMU to use '-k de', what you're telling it is to figure out what 
the right key is on a de keyboard for the label '/' which may be "the key at the 
second 8th column, second row" on a de keyboard, but on a US keyboard, it's a 7.

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.

Regards,

Anthony Liguori

  are send to the VM's emulated keyboard
> controller and the '/' appears in the VM.
>
> But what actually happens is that the '7' character shows up in the VM.
> It seems that QEMU misses to also generate the Shift Scancode.
>
> Is this a general problem in the VNC server implementation?
> So that an interpretation (http://tools.ietf.org/html/rfc6143#section-7.5.4)
> of the received keysymbols to add eg an additional shift keypress
> never happens?
>
> If yes would a QEMU patch that adds keysymbol interpretation have a
> chance to be merged in the upstream version?
> Or are there reasons that it isn't a good idea to interpret the
> keysymbols for the scancode conversion?
>
>
> regards
>
> Fabian
>

  parent reply	other threads:[~2012-03-08 21:30 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-03-07 10:53 [Qemu-devel] Keysymbol interpretation missing in QEMU's VNC server? Fabian Holler
2012-03-08 20:24 ` Philipp Hahn
2012-03-08 21:23   ` Fabian Holler
2012-03-08 21:30 ` Anthony Liguori [this message]
2012-03-08 22:01   ` Fabian Holler
2012-05-23  8:16     ` Erik Rull
2012-05-23  8:45       ` Erik Rull
  -- strict thread matches above, loose matches on Subject: below --
2012-03-07 12:22 Fabian Holler
2014-01-14  8:45 Gonglei (Arei)
2014-01-25  5:13 Gonglei (Arei)

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4F5924EA.7010604@codemonkey.ws \
    --to=anthony@codemonkey.ws \
    --cc=fabian.holler@profitbricks.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).