Re: [Qemu-devel] [PATCH 2/2] kbd: add brazil kbd keys to x11 evdev map



On Mi, 2015-05-27 at 13:19 +0200, Markus Armbruster wrote:
Gerd Hoffmann <kraxel redhat com> writes:

This patch adds the two extra brazilian keys to the evdev keymap for
X11.  This patch gets the two keys going with the gtk and sdl1 UIs.

With vnc (remote-viewer) only one of the two works correctly.
Probably a client-side issue.  Not investigated in detail though.

The SDL2 library complains it doesn't know these keys, so the SDL2
library must be fixed before we can update ui/sdl2-keymap.h

Signed-off-by: Gerd Hoffmann <kraxel redhat com>
---
 ui/x_keymap.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/ui/x_keymap.c b/ui/x_keymap.c
index b9b0944..4e899b4 100644
--- a/ui/x_keymap.c
+++ b/ui/x_keymap.c
@@ -94,7 +94,7 @@ static const uint8_t x_keycode_to_pc_keycode[115] = {
  */
 
 static const uint8_t evdev_keycode_to_pc_keycode[61] = {
-    0,         /*  97 EVDEV - RO   ("Internet" Keyboards) */
+    0x73,      /*  97 EVDEV - RO   ("Internet" Keyboards) */
     0,         /*  98 EVDEV - KATA (Katakana) */
     0,         /*  99 EVDEV - HIRA (Hiragana) */
     0x79,      /* 100 EVDEV - HENK (Henkan) */
@@ -126,7 +126,7 @@ static const uint8_t evdev_keycode_to_pc_keycode[61] = {
     0,         /* 126 EVDEV - I126 ("Internet" Keyboards) */
     0,         /* 127 EVDEV - PAUS */
     0,         /* 128 EVDEV - ???? */
-    0,         /* 129 EVDEV - I129 ("Internet" Keyboards) */
+    0xf0,      /* 129 EVDEV - I129 ("Internet" Keyboards) */
     0xf1,      /* 130 EVDEV - HNGL (Korean Hangul Latin toggle) */
     0xf2,      /* 131 EVDEV - HJCV (Korean Hangul Hanja toggle) */
     0x7d,      /* 132 AE13 (Yen)*/

The two patches together associate

    name        number      evdev
    ro          0x73        97
    kp_comma    0xf0        129

If I understand things correctly, we can freely choose number (we choose
it to match PS/2 scancodes, however), but evdev is externally defined.
Correct?

Almost.  The ps/2 keyboard implementation (and probably others too)
assumes "number" are actually ps/2 scancodes.  But, yes, in theory we
could change this.


My /usr/share/X11/xkb/keycodes/evdev has

      // Keys that are generated on Japanese keyboards
      <AB11> = 97;    // backslash/underscore
      //<RO>   =  97; // Romaji

and

      // Extended keys that may be generated on "Internet" keyboards.
      // evdev has standardize names for these.
      <I129> = 129;   // #define KEY_KPCOMMA             121

I guess this is where you got the name 'ro'.  Okay.

/usr/include/linux/input.h names this "KEY_RO' too.

2. Should the comment in your second hunk be changed from

        EVDEV - I129 ("Internet" Keyboards)

   to something mentioning KPCOMMA?

Makes sense indeed.

cheers,
  Gerd





[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]