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



On Wed, May 27, 2015 at 01:19:06PM +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?

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>?

/usr/include/linux/input.h calls it KEY_RO - not sure why
X11 would use AB11 for that keycode instead, but I figure
it is better for use to use the Linux names here.


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

        EVDEV - I129 ("Internet" Keyboards)

   to something mentioning KPCOMMA?

Yeah, I think it would make sense.

Regards,
Daniel
-- 
|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org       -o-       http://live.gnome.org/gtk-vnc :|


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