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



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?

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.

I'm pretty ignorant about evdev, so please excuse if my questions are
stupid:

1. Can you explain why you picked <RO> over <AB11>?

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

        EVDEV - I129 ("Internet" Keyboards)

   to something mentioning KPCOMMA?


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