Re: [PATCH] Input: hyperv-keyboard - implement Type Clipboard Text

From: Dmitry Torokhov
Date: Mon Aug 18 2014 - 14:52:08 EST


On Mon, Aug 18, 2014 at 03:54:51AM +0000, Dexuan Cui wrote:
> > -----Original Message-----
> > From: Dmitry Torokhov
> > Sent: Saturday, August 16, 2014 0:58 AM
> > To: Dexuan Cui
> > > For each char in the string, the host sends 2 events (key down/up with the
> > > char's UNICODE value) to the guest.
> > > The patch finds each char's scan codes of key down/up, and injects the
> > > scan codes to the serio keyboard module.
> > >
> > > Known issues:
> > > 1) Only printable ASCII chars are supported, and unsupported chars are
> > > ignored. It seems unlikely to support generic UNICODE chars because there
> > > is not a generic API to inject a UNICODE char to text mode console, KDE,
> > > gnome, etc.
> > >
> > > 2) When we use the feature, make sure the CapsLock state of the VM's
> > > (virtual) keyboard is OFF because this patch assumes it -- we'll try to
> > > fix this later, probably by tracking the state of virtual CapsLock, because
> > > it looks the keyboard module doesn't supply an API for us to query the
> > state
> > > of the keyboard.
> > >
> > No way. If you want to do this this way, do it in hypervisor code and keep
> > feeding AT scan codes to hyperv-keyboard, although I am pretty sure users
> Hi Dmitry,
> Yeah, I had the same wish, but later I found this seems unlikely because IMO
> the feature was firstly invented for Windows VM + generic UNICODE chars,
> and we know there is no "scan code" for generic UNICODE chars... :-(

Do you know what guest is running? You could potentially gate on that.

>
> > of
> > French, Czech and other keyboard layouts with numbers in upper register
> > and
> > symbols in lower will have a few choice words for you.
> Sorry, I can't understand what these are.
> Can you please give more details or a link to further info?

On French and many other European layouts to produce a number one needs to use
Shift key, instead of simply using lower register, as on US or UK layouts. I.e.
if you send scancode for KEY_3 through your proposed implementation it will
produce '#' and KEY_SHIFT + KEY_3 will result in '3'.

There are also issues with QWERTY/AZERTY and other layouts...

Thanks.

--
Dmitry
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/