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
>
next prev 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).