[Spice-devel] Keyboard layout change on Xspice

David Jaša djasa at redhat.com
Fri Apr 6 12:11:11 PDT 2012


Hi David,

David Mansfield píše v Pá 06. 04. 2012 v 14:17 -0400:
> 
> On 04/06/2012 03:05 AM, Alon Levy wrote:
> > On Thu, Apr 05, 2012 at 12:52:53PM -0400, David Mansfield wrote:
> >>
> >>
> >> On 04/05/2012 11:58 AM, Alon Levy wrote:
> >>> On Thu, Apr 05, 2012 at 01:24:54PM +0200, Michael Niehren wrote:
> >>>> Hi together,
> >>>>
> >>>> i successfully installed and connected to Xspice und FC16, great work, i was very pleased
> >>>> to see, what's possible with spice.
> >>>>
> >>>> 1 thing left to use it as an Server to connect from my thin client is the keyboard layout.
> >>>> As i live in Germany i want to have the german keyboard layout. If i connect with the
> >>>> spice-client i only got the english one. Is there a way to change that (i didn's find one)
> >>>> ?
> >>> (Continuing my previous reply). OK - tried a non english keyboard
> >>> (hebrew), and it works fine. The thing to understand is that changing
> >>> the keyboard mapping on the client doesn't affect the server - only
> >>> changes on the server side affect it. So to get a german keyboard, you'd
> >>> need to change the keyboard on the remote side, the server, for instance
> >>> I just used "setxkbmap il" to change the keymap to the hebrew one on the
> >>> remote side.
> >>>
> >>
> >> I've been troubled by this too, because I use DVORAK mapping.  Is
> >> there anything in the pipeline for the spice-agent to address this?
> >
> > I don't think there is anything to fix, unless I misunderstand - the way
> > it works is that the keyboard map is determined by the Xspice Xserver
> > entirely, and not by the spice client. That's the way spice keyboard
> > works, and it avoids having to encode anything about the keyboard map at
> > the spice level. The spice keyboard protocol is the same an AT keyboard
> > talks to the pc.
> >
> > A spice agent would help other things, like copy paste support, and
> > better mouse performance for latency laden networks, but has nothing to
> > offer for keyboard - I don't see what there is to fix here, maybe you
> > can explain.
> >
> 
> I didn't read that this discussion was specific to Xspice, which while 
> I've tried, I was referring to spice access to a VM.  Nevertheless, the 
> agent could perhaps be used to automatically set the server-side 
> keyboard mapping to that of the client, both in the Xspice and VM case, 
> I suppose.
> 
> In a perfect-world scenario, the keyboard mapping setting would be 
> magically adjusted the client side mapping upon connect.  

It's not that easy:
      * there must be exactly same keymaps in client & guest. This is a
        _big_ problem since even console & X keymaps of the same name in
        linux are not the same
      * you have to take layout switching into account:
              * when not focused, watch for layout state in client and
                change it in guest accordingly
              * find out what shortcut client desktop uses for layout
                switching, trap it, pass it always to the client
                regardless of keyboard grab and switch layout in the
                guest
              * watch for layout changes in guest (e.g. when linux
                client uses shift+capslock and windows guest L_alt
                +shift) and propagate them back to the client
      * you should not break magic like mutter's one for alt
        +key-above-tab:
        http://git.gnome.org/browse/mutter/tree/src/core/above-tab-keycode.c

I'd love to see it too but it seems so hard to get it right that it's
not worth it - unless you'll find somebody to step up and write the
actual code. :)

David

> I'm not saying 
> it's the highest priority problem in the world, but it is a bit 
> surprising at first when it doesn't work.
>
> Or maybe it's supposed to work in the VM setting and just isn't for me.
> 
> Anayway, don't worry about it.
> 
> Thanks,
> David
> _______________________________________________
> Spice-devel mailing list
> Spice-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/spice-devel

-- 

David Jaša, RHCE

SPICE QE based in Brno
GPG Key:     22C33E24 
Fingerprint: 513A 060B D1B4 2A72 7F0D 0278 B125 CD00 22C3 3E24





More information about the Spice-devel mailing list