On Wed, Jul 26, 2017 at 01:44:07PM +0200, Gerd Hoffmann wrote: > Hi, > > > qcodes as currently defined cover only a subset of the AT set1 > > scancodes, > > so we need to define countless more qcodes before we consider > > converting > > UIs to use qcodes. > > > > Aside from the pause/break bug, the changes to ps2 driver to round > > trip > > via qcodes have now made it impossible to send a large number of key > > sequences to the guest OS :-( Admittedly the missing key codes are > > not > > so commonly used, but it is still a notable regression in > > functionality > > today > > My keymap branch carries fixes for that now: > https://www.kraxel.org/cgit/qemu/log/?h=work/xkbcommon > > For your keycodemapdb patches I'd suggest to cherry-pick at least the > "ui: move qemu_input_linux_to_qcode()" patch.
FYI, after adding qcodes to the keycodemapdb, (but not having picked your branch), I see 131 keys where there is a known AT set 1 scancode, but no corresponding QKeyCode. I'll happily add the rest of them if you want (attaching the list) > Then have sdl + gtk generate linux evdev codes using keycodemapdb, map > that to qcodes using qemu_input_linux_to_qcode(), submit qcodes to the > qemu input layer. I was actually just going add an entry for QKeyCode names to the keycodemapdb, so we can convert straight to that, and also let us auto-generate the qemu_input_linux_to_qcode() table. Strangely there is no Linux key code defined for AltGr, so if we map via Linux key codes, we would loose ability to send AltGr Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
Linux Key Name AT Set 1 scancode 0x54 KEY_ZENKAKUHANKAKU 0x76 KEY_KATAKANA 0x78 KEY_KATAKANAHIRAGANA 0x70 KEY_MUHENKAN 0x7b KEY_KPJPCOMMA 0x5c KEY_LINEFEED 0x5b KEY_MACRO 0xe06f KEY_MUTE 0xe020 KEY_VOLUMEDOWN 0xe02e KEY_VOLUMEUP 0xe030 KEY_POWER 0xe05e KEY_KPEQUAL 0x59 KEY_KPPLUSMINUS 0xe04e KEY_PAUSE 0xe046 KEY_SCALE 0xe00b KEY_HANJA 0xe00d KEY_COMPOSE 0xe05d KEY_STOP 0xe068 KEY_AGAIN 0xe005 KEY_PROPS 0xe006 KEY_UNDO 0xe007 KEY_FRONT 0xe00c KEY_COPY 0xe078 KEY_OPEN 0x64 KEY_PASTE 0x65 KEY_FIND 0xe041 KEY_CUT 0xe03c KEY_HELP 0xe075 KEY_MENU 0xe01e KEY_CALC 0xe021 KEY_SETUP 0x66 KEY_SLEEP 0xe05f KEY_WAKEUP 0xe063 KEY_FILE 0x67 KEY_SENDFILE 0x68 KEY_DELETEFILE 0x69 KEY_XFER 0xe013 KEY_PROG1 0xe01f KEY_PROG2 0xe017 KEY_WWW 0xe002 KEY_MSDOS 0x6a KEY_SCREENLOCK 0xe012 KEY_DIRECTION 0x6b KEY_CYCLEWINDOWS 0xe026 KEY_MAIL 0xe06c KEY_BOOKMARKS 0xe066 KEY_COMPUTER 0xe06b KEY_BACK 0xe06a KEY_FORWARD 0xe069 KEY_CLOSECD 0xe023 KEY_EJECTCD 0x6c KEY_EJECTCLOSECD 0xe07d KEY_NEXTSONG 0xe019 KEY_PLAYPAUSE 0xe022 KEY_PREVIOUSSONG 0xe010 KEY_STOPCD 0xe024 KEY_RECORD 0xe031 KEY_REWIND 0xe018 KEY_PHONE 0x63 KEY_ISO 0x70 KEY_CONFIG 0xe001 KEY_HOMEPAGE 0xe032 KEY_REFRESH 0xe067 KEY_EXIT 0x71 KEY_MOVE 0x72 KEY_EDIT 0xe008 KEY_SCROLLUP 0x75 KEY_SCROLLDOWN 0xe00f KEY_KPLEFTPAREN 0xe076 KEY_KPRIGHTPAREN 0xe07b KEY_NEW 0xe009 KEY_REDO 0xe00a KEY_F13 0x5d KEY_F14 0x5e KEY_F15 0x5f KEY_F16 0x55 KEY_F17 0xe003 KEY_F18 0xe077 KEY_F19 0xe004 KEY_F20 0x5a KEY_F21 0x74 KEY_F22 0xe079 KEY_F23 0x6d KEY_F24 0x6f 0xe015 0xe016 0xe01a 0xe01b 0xe027 KEY_PLAYCD 0xe028 KEY_PAUSECD 0xe029 KEY_PROG3 0xe02b KEY_PROG4 0xe02c KEY_DASHBOARD 0xe02d KEY_SUSPEND 0xe025 KEY_CLOSE 0xe02f KEY_PLAY 0xe033 KEY_FASTFORWARD 0xe034 KEY_BASSBOOST 0xe036 KEY_PRINT 0xe039 KEY_HP 0xe03a KEY_CAMERA 0xe03b KEY_SOUND 0xe03d KEY_QUESTION 0xe03e KEY_EMAIL 0xe03f KEY_CHAT 0xe040 KEY_SEARCH 0xe065 KEY_CONNECT 0xe042 KEY_FINANCE 0xe043 KEY_SPORT 0xe044 KEY_SHOP 0xe045 KEY_ALTERASE 0xe014 KEY_CANCEL 0xe04a KEY_BRIGHTNESSDOWN 0xe04c KEY_BRIGHTNESSUP 0xe054 KEY_MEDIA 0xe06d KEY_SWITCHVIDEOMODE 0xe056 KEY_KBDILLUMTOGGLE 0xe057 KEY_KBDILLUMDOWN 0xe058 KEY_KBDILLUMUP 0xe059 KEY_SEND 0xe05a KEY_REPLY 0xe064 KEY_FORWARDMAIL 0xe00e KEY_SAVE 0xe055 KEY_DOCUMENTS 0xe070 KEY_BATTERY 0xe071 KEY_BLUETOOTH 0xe072 KEY_WLAN 0xe073 KEY_UWB 0xe074