Am Freitag, den 08.05.2009, 18:06 +0200 schrieb Guido Günther:
> On Sun, May 03, 2009 at 12:22:18AM +0200, Paul Menzel wrote:
> > So it seems to be a QEMU bug. I therefore reassign. I thought it might
> > be fixed with 0.10.3 because of this in changelog.gz
> > 
> >   - Fix keyboard mapping on newer Xords with non-default keymaps
> > (balrog)
> > 
> > but I can still reproduce this.
> While the VM is on the grub command line we certainly can't expect to
> have a german keyboard layout but what we *want* to have is an US
> layout.
> 
> On a german keyboard pressing the key next to backspace (which
> corresponds to the key that has the equal sign on an american keybard)
> gives these events:

Great idea to use the debug mode. With Vinagre it is activated with the
following command [3]. (Option also listed by vinagre --help-all.)

$ vinagre --gtk-vnc-debug

> (vm started with -k de):
> gtk-vnc-DEBUG: press keycode: 21  state: 0  group 0, keyval: 39
> gtk-vnc-DEBUG: Key event 39 21 1 1
> gtk-vnc-DEBUG: release keycode: 21  state: 0  group 0, keyval: 39
> gtk-vnc-DEBUG: Key event 39 21 0 1
> 
> While on an american keyboard you get:
> 
> (vm started with -k us):
> gtk-vnc-DEBUG: press keycode: 21  state: 0  group 0, keyval: 61
> 
> So same keycode but different keyval. 61 is the equal sign (=) while 39
> is the tick (') which is the correct keyval for a german keyboard (so
> the vnc part looks alright). *However* grub in the virtual machine
> prints a closing brace at this point while it should print an equal
> sign. 
> 
> Paul is that what you're seeing?

Yeah. That is almost correct. I have to add that I use a different
layout NEO 2 [1], which claims to be optimized for the German language.
The xmodmap file [2] gets loaded with the following command.

setxkbmap lv && xmodmap neo_de.xmodmap

The equal-sign is located at the 3rd level and is entered with caps lock
+ o. (The o is the key on the QWERTZ/Y keyboard and it would be the f
with Neo 2.)

I get the following output.

### Caps lock alone ###

gtk-vnc: press keycode: 66  state: 0  group 0, keyval: 65406
gtk-vnc: Key event 65406 66 1 1gtk-vnc: release keycode: 66  state: 8192  group 
1, keyval: 65036

### o/f alone ###

gtk-vnc: Key event 102 32 0 1gtk-vnc: press keycode: 32  state: 0  group
0, keyval: 102
gtk-vnc: Key event 102 32 1 1gtk-vnc: FramebufferUpdate(5, 32, 66, 32,
10)
gtk-vnc: FramebufferUpdate(5, 80, 66, 16, 10)
gtk-vnc: FramebufferUpdate(5, 112, 66, 96, 2)
gtk-vnc: FramebufferUpdate(5, 128, 68, 48, 8)
gtk-vnc: FramebufferUpdate(5, 192, 68, 16, 8)
gtk-vnc: FramebufferUpdate(5, 64, 69, 16, 7)
gtk-vnc: FramebufferUpdate(5, 96, 69, 32, 7)
gtk-vnc: FramebufferUpdate(5, 176, 69, 16, 7)
gtk-vnc: FramebufferUpdate(5, 32, 78, 32, 2)
gtk-vnc: Expose 192x66 @ 177,15
gtk-vnc: release keycode: 32  state: 0  group 0, keyval: 102

### caps lock + o/f ###

gtk-vnc: press keycode: 66  state: 0  group 0, keyval: 65406
gtk-vnc: Key event 65406 66 1 1gtk-vnc: press keycode: 32  state: 8192  group 
1, keyval: 61
gtk-vnc: Key event 61 32 1 1gtk-vnc: release keycode: 32  state: 8192  group 1, 
keyval: 61
gtk-vnc: Key event 61 32 0 1gtk-vnc: release keycode: 66  state: 8192  group 1, 
keyval: 65036

So following Guido’s analysis it looks like = (keyval: 61) is sent
correctly. But it is not shown in the virtual machine.


Thanks,

Paul


[1] https://www.neo-layout.org/
[2] http://wiki.neo-layout.org/browser/linux/xmodmap/neo_de.xmodmap
[3] https://bugs.launchpad.net/debian/+source/gtk-vnc/+bug/212013

Attachment: signature.asc
Description: Dies ist ein digital signierter Nachrichtenteil

Reply via email to