I modified qemu-kvm to show what keys it receives (patch attached). I am using the German NEO layout and I get one press and one release event. Here's the output, if I first press 'caps lock' and then '#':
sdl_process_key({type=0x2,which=0x0,state=0x1,keysym={scancode=0x42,sym=0x139,mod=0x0,unicode=0x0}}) keycode = 0x3a kbd_put_keycode(0x3a) kbd_put_keycode(0xba)
sdl_process_key({type=0x3,which=0x0,state=0x0,keysym={scancode=0x42,sym=0x139,mod=0x0,unicode=0x0}}) keycode = 0x3a kbd_put_keycode(0x3a) kbd_put_keycode(0xba)
sdl_process_key({type=0x2,which=0x0,state=0x1,keysym={scancode=0x33,sym=0x139,mod=0x0,unicode=0x0}}) keycode = 0x2b kbd_put_keycode(0x2b)
sdl_process_key({type=0x3,which=0x0,state=0x0,keysym={scancode=0x33,sym=0x139,mod=0x0,unicode=0x0}}) keycode = 0x2b kbd_put_keycode(0xab)
I modified qemu-kvm to show what keys it receives (patch attached). I am using the German NEO layout and I get one press and one release event. Here's the output, if I first press 'caps lock' and then '#':
sdl_process_ key({type= 0x2,which= 0x0,state= 0x1,keysym= {scancode= 0x42,sym= 0x139,mod= 0x0,unicode= 0x0}}) keycode( 0x3a) keycode( 0xba)
keycode = 0x3a
kbd_put_
kbd_put_
sdl_process_ key({type= 0x3,which= 0x0,state= 0x0,keysym= {scancode= 0x42,sym= 0x139,mod= 0x0,unicode= 0x0}}) keycode( 0x3a) keycode( 0xba)
keycode = 0x3a
kbd_put_
kbd_put_
sdl_process_ key({type= 0x2,which= 0x0,state= 0x1,keysym= {scancode= 0x33,sym= 0x139,mod= 0x0,unicode= 0x0}}) keycode( 0x2b)
keycode = 0x2b
kbd_put_
sdl_process_ key({type= 0x3,which= 0x0,state= 0x0,keysym= {scancode= 0x33,sym= 0x139,mod= 0x0,unicode= 0x0}}) keycode( 0xab)
keycode = 0x2b
kbd_put_