Commit 3d11d0eb33f0474f8299c2373f3a91bb416b81c6

Authored by bellard
1 parent 7b91a172

keymaps support (initial patch by Johannes Schindelin)


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1173 c046a42c-6fe2-441c-8c8c-71466251a162
Changelog
... ... @@ -6,6 +6,7 @@ version 0.6.2:
6 6 - Cirrus VGA: support for 1280x1024x[8,15,16] modes
7 7 - 'pidfile' option
8 8 - .dmg disk image format support (Johannes Schindelin)
  9 + - keymaps support (initial patch by Johannes Schindelin)
9 10  
10 11 version 0.6.1:
11 12  
... ...
Makefile
... ... @@ -56,6 +56,8 @@ install: all
56 56 ifndef CONFIG_WIN32
57 57 mkdir -p "$(mandir)/man1"
58 58 install qemu.1 qemu-img.1 "$(mandir)/man1"
  59 + mkdir -p "$(datadir)/keymaps"
  60 + install -m 644 keymaps/* "$(datadir)"
59 61 endif
60 62 for d in $(TARGET_DIRS); do \
61 63 $(MAKE) -C $$d $@ || exit 1 ; \
... ...
Makefile.target
... ... @@ -333,7 +333,7 @@ endif
333 333 $(QEMU_SYSTEM): $(VL_OBJS) libqemu.a
334 334 $(CC) $(VL_LDFLAGS) -o $@ $^ $(LIBS) $(SDL_LIBS) $(VL_LIBS)
335 335  
336   -sdl.o: sdl.c
  336 +sdl.o: sdl.c keymaps.c sdl_keysym.h
337 337 $(CC) $(CFLAGS) $(DEFINES) $(SDL_CFLAGS) -c -o $@ $<
338 338  
339 339 sdlaudio.o: sdlaudio.c
... ...
keymaps.c 0 → 100644
  1 +/*
  2 + * QEMU keysym to keycode conversion using rdesktop keymaps
  3 + *
  4 + * Copyright (c) 2004 Johannes Schindelin
  5 + *
  6 + * Permission is hereby granted, free of charge, to any person obtaining a copy
  7 + * of this software and associated documentation files (the "Software"), to deal
  8 + * in the Software without restriction, including without limitation the rights
  9 + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  10 + * copies of the Software, and to permit persons to whom the Software is
  11 + * furnished to do so, subject to the following conditions:
  12 + *
  13 + * The above copyright notice and this permission notice shall be included in
  14 + * all copies or substantial portions of the Software.
  15 + *
  16 + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  17 + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  18 + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
  19 + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  20 + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  21 + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  22 + * THE SOFTWARE.
  23 + */
  24 +
  25 +static int get_keysym(const char *name)
  26 +{
  27 + name2keysym_t *p;
  28 + for(p = name2keysym; p->name != NULL; p++) {
  29 + if (!strcmp(p->name, name))
  30 + return p->keysym;
  31 + }
  32 + return 0;
  33 +}
  34 +
  35 +#define MAX_NORMAL_KEYCODE 512
  36 +#define MAX_EXTRA_COUNT 256
  37 +typedef struct {
  38 + uint16_t keysym2keycode[MAX_NORMAL_KEYCODE];
  39 + struct {
  40 + int keysym;
  41 + uint16_t keycode;
  42 + } keysym2keycode_extra[MAX_EXTRA_COUNT];
  43 + int extra_count;
  44 +} kbd_layout_t;
  45 +
  46 +static kbd_layout_t *parse_keyboard_layout(const char *language,
  47 + kbd_layout_t * k)
  48 +{
  49 + FILE *f;
  50 + char file_name[1024];
  51 + char line[1024];
  52 + int len;
  53 +
  54 + snprintf(file_name, sizeof(file_name),
  55 + "%s/keymaps/%s", bios_dir, language);
  56 +
  57 + if (!k)
  58 + k = qemu_mallocz(sizeof(kbd_layout_t));
  59 + if (!k)
  60 + return 0;
  61 + if (!(f = fopen(file_name, "r"))) {
  62 + fprintf(stderr,
  63 + "Could not read keymap file: '%s'\n", file_name);
  64 + return 0;
  65 + }
  66 + for(;;) {
  67 + if (fgets(line, 1024, f) == NULL)
  68 + break;
  69 + len = strlen(line);
  70 + if (len > 0 && line[len - 1] == '\n')
  71 + line[len - 1] = '\0';
  72 + if (line[0] == '#')
  73 + continue;
  74 + if (!strncmp(line, "map ", 4))
  75 + continue;
  76 + if (!strncmp(line, "include ", 8)) {
  77 + parse_keyboard_layout(line + 8, k);
  78 + } else {
  79 + char *end_of_keysym = line;
  80 + while (*end_of_keysym != 0 && *end_of_keysym != ' ')
  81 + end_of_keysym++;
  82 + if (*end_of_keysym) {
  83 + int keysym;
  84 + *end_of_keysym = 0;
  85 + keysym = get_keysym(line);
  86 + if (keysym == 0) {
  87 + // fprintf(stderr, "Warning: unknown keysym %s\n", line);
  88 + } else {
  89 + const char *rest = end_of_keysym + 1;
  90 + int keycode = strtol(rest, NULL, 0);
  91 + /* if(keycode&0x80)
  92 + keycode=(keycode<<8)^0x80e0; */
  93 + if (keysym < MAX_NORMAL_KEYCODE) {
  94 + //fprintf(stderr,"Setting keysym %s (%d) to %d\n",line,keysym,keycode);
  95 + k->keysym2keycode[keysym] = keycode;
  96 + } else {
  97 + if (k->extra_count >= MAX_EXTRA_COUNT) {
  98 + fprintf(stderr,
  99 + "Warning: Could not assign keysym %s (0x%x) because of memory constraints.\n",
  100 + line, keysym);
  101 + } else {
  102 + fprintf(stderr, "Setting %d: %d,%d\n",
  103 + k->extra_count, keysym, keycode);
  104 + k->keysym2keycode_extra[k->extra_count].
  105 + keysym = keysym;
  106 + k->keysym2keycode_extra[k->extra_count].
  107 + keycode = keycode;
  108 + k->extra_count++;
  109 + }
  110 + }
  111 + }
  112 + }
  113 + }
  114 + }
  115 + fclose(f);
  116 + return k;
  117 +}
  118 +
  119 +static void *init_keyboard_layout(const char *language)
  120 +{
  121 + return parse_keyboard_layout(language, 0);
  122 +}
  123 +
  124 +static int keysym2scancode(void *kbd_layout, int keysym)
  125 +{
  126 + kbd_layout_t *k = kbd_layout;
  127 + if (keysym < MAX_NORMAL_KEYCODE) {
  128 + if (k->keysym2keycode[keysym] == 0)
  129 + fprintf(stderr, "Warning: no scancode found for keysym %d\n",
  130 + keysym);
  131 + return k->keysym2keycode[keysym];
  132 + } else {
  133 + int i;
  134 +#ifdef XK_ISO_Left_Tab
  135 + if (keysym == XK_ISO_Left_Tab)
  136 + keysym = XK_Tab;
  137 +#endif
  138 + for (i = 0; i < k->extra_count; i++)
  139 + if (k->keysym2keycode_extra[i].keysym == keysym)
  140 + return k->keysym2keycode_extra[i].keycode;
  141 + }
  142 + return 0;
  143 +}
... ...
keymaps/ar 0 → 100644
  1 +# generated from XKB map ar
  2 +include common
  3 +map 0x401
  4 +exclam 0x02 shift
  5 +at 0x03 shift
  6 +numbersign 0x04 shift
  7 +dollar 0x05 shift
  8 +percent 0x06 shift
  9 +asciicircum 0x07 shift
  10 +ampersand 0x08 shift
  11 +asterisk 0x09 shift
  12 +parenleft 0x0a shift
  13 +parenright 0x0b shift
  14 +minus 0x0c
  15 +underscore 0x0c shift
  16 +equal 0x0d
  17 +plus 0x0d shift
  18 +Arabic_dad 0x10 altgr
  19 +Arabic_fatha 0x10 shift altgr
  20 +Arabic_sad 0x11 altgr
  21 +Arabic_fathatan 0x11 shift altgr
  22 +Arabic_theh 0x12 altgr
  23 +Arabic_damma 0x12 shift altgr
  24 +Arabic_qaf 0x13 altgr
  25 +Arabic_dammatan 0x13 shift altgr
  26 +Arabic_feh 0x14 altgr
  27 +UFEF9 0x14 shift altgr
  28 +Arabic_ghain 0x15 altgr
  29 +Arabic_hamzaunderalef 0x15 shift altgr
  30 +Arabic_ain 0x16 altgr
  31 +grave 0x16 shift altgr
  32 +Arabic_ha 0x17 altgr
  33 +division 0x17 shift altgr
  34 +Arabic_khah 0x18 altgr
  35 +multiply 0x18 shift altgr
  36 +Arabic_hah 0x19 altgr
  37 +Arabic_semicolon 0x19 shift altgr
  38 +bracketleft 0x1a
  39 +braceleft 0x1a shift
  40 +Arabic_jeem 0x1a altgr
  41 +bracketright 0x1b
  42 +braceright 0x1b shift
  43 +Arabic_dal 0x1b altgr
  44 +Arabic_sheen 0x1e altgr
  45 +backslash 0x1e shift altgr
  46 +Arabic_seen 0x1f altgr
  47 +Arabic_yeh 0x20 altgr
  48 +bracketleft 0x20 shift altgr
  49 +Arabic_beh 0x21 altgr
  50 +bracketright 0x21 shift altgr
  51 +Arabic_lam 0x22 altgr
  52 +UFEF7 0x22 shift altgr
  53 +Arabic_alef 0x23 altgr
  54 +Arabic_hamzaonalef 0x23 shift altgr
  55 +Arabic_teh 0x24 altgr
  56 +Arabic_tatweel 0x24 shift altgr
  57 +Arabic_noon 0x25 altgr
  58 +Arabic_comma 0x25 shift altgr
  59 +Arabic_meem 0x26 altgr
  60 +slash 0x26 shift altgr
  61 +semicolon 0x27
  62 +colon 0x27 shift
  63 +Arabic_kaf 0x27 altgr
  64 +apostrophe 0x28
  65 +quotedbl 0x28 shift
  66 +Arabic_tah 0x28 altgr
  67 +grave 0x29
  68 +asciitilde 0x29 shift
  69 +Arabic_thal 0x29 altgr
  70 +Arabic_shadda 0x29 shift altgr
  71 +backslash 0x2b
  72 +bar 0x2b shift
  73 +less 0x2b altgr
  74 +greater 0x2b shift altgr
  75 +Arabic_hamzaonyeh 0x2c altgr
  76 +asciitilde 0x2c shift altgr
  77 +Arabic_hamza 0x2d altgr
  78 +Arabic_sukun 0x2d shift altgr
  79 +Arabic_hamzaonwaw 0x2e altgr
  80 +Arabic_kasra 0x2e shift altgr
  81 +Arabic_ra 0x2f altgr
  82 +Arabic_kasratan 0x2f shift altgr
  83 +UFEFB 0x30 altgr
  84 +UFEF5 0x30 shift altgr
  85 +Arabic_alefmaksura 0x31 altgr
  86 +Arabic_maddaonalef 0x31 shift altgr
  87 +Arabic_tehmarbuta 0x32 altgr
  88 +apostrophe 0x32 shift altgr
  89 +comma 0x33
  90 +less 0x33 shift
  91 +Arabic_waw 0x33 altgr
  92 +period 0x34
  93 +greater 0x34 shift
  94 +Arabic_zain 0x34 altgr
  95 +slash 0x35
  96 +question 0x35 shift
  97 +Arabic_zah 0x35 altgr
  98 +Arabic_question_mark 0x35 shift altgr
... ...
keymaps/common 0 → 100644
  1 +include modifiers
  2 +
  3 +#
  4 +# Top row
  5 +#
  6 +1 0x2
  7 +2 0x3
  8 +3 0x4
  9 +4 0x5
  10 +5 0x6
  11 +6 0x7
  12 +7 0x8
  13 +8 0x9
  14 +9 0xa
  15 +0 0xb
  16 +BackSpace 0xe
  17 +
  18 +#
  19 +# QWERTY first row
  20 +#
  21 +Tab 0xf localstate
  22 +ISO_Left_Tab 0xf shift
  23 +q 0x10 addupper
  24 +w 0x11 addupper
  25 +e 0x12 addupper
  26 +r 0x13 addupper
  27 +t 0x14 addupper
  28 +y 0x15 addupper
  29 +u 0x16 addupper
  30 +i 0x17 addupper
  31 +o 0x18 addupper
  32 +p 0x19 addupper
  33 +
  34 +#
  35 +# QWERTY second row
  36 +#
  37 +a 0x1e addupper
  38 +s 0x1f addupper
  39 +d 0x20 addupper
  40 +f 0x21 addupper
  41 +g 0x22 addupper
  42 +h 0x23 addupper
  43 +j 0x24 addupper
  44 +k 0x25 addupper
  45 +l 0x26 addupper
  46 +Return 0x1c localstate
  47 +
  48 +#
  49 +# QWERTY third row
  50 +#
  51 +z 0x2c addupper
  52 +x 0x2d addupper
  53 +c 0x2e addupper
  54 +v 0x2f addupper
  55 +b 0x30 addupper
  56 +n 0x31 addupper
  57 +m 0x32 addupper
  58 +
  59 +space 0x39 localstate
  60 +
  61 +less 0x56
  62 +greater 0x56 shift
  63 +bar 0x56 altgr
  64 +brokenbar 0x56 shift altgr
  65 +
  66 +#
  67 +# Esc and Function keys
  68 +#
  69 +Escape 0x1 localstate
  70 +F1 0x3b localstate
  71 +F2 0x3c localstate
  72 +F3 0x3d localstate
  73 +F4 0x3e localstate
  74 +F5 0x3f localstate
  75 +F6 0x40 localstate
  76 +F7 0x41 localstate
  77 +F8 0x42 localstate
  78 +F9 0x43 localstate
  79 +F10 0x44 localstate
  80 +F11 0x57 localstate
  81 +F12 0x58 localstate
  82 +
  83 +# Printscreen, Scrollock and Pause
  84 +# Printscreen really requires four scancodes (0xe0, 0x2a, 0xe0, 0x37),
  85 +# but (0xe0, 0x37) seems to work.
  86 +Print 0xb7 localstate
  87 +Sys_Req 0xb7 localstate
  88 +Execute 0xb7 localstate
  89 +Scroll_Lock 0x46
  90 +
  91 +#
  92 +# Insert - PgDown
  93 +#
  94 +Insert 0xd2 localstate
  95 +Delete 0xd3 localstate
  96 +Home 0xc7 localstate
  97 +End 0xcf localstate
  98 +Page_Up 0xc9 localstate
  99 +Page_Down 0xd1 localstate
  100 +
  101 +#
  102 +# Arrow keys
  103 +#
  104 +Left 0xcb localstate
  105 +Up 0xc8 localstate
  106 +Down 0xd0 localstate
  107 +Right 0xcd localstate
  108 +
  109 +#
  110 +# Numpad
  111 +#
  112 +Num_Lock 0x45
  113 +KP_Divide 0xb5
  114 +KP_Multiply 0x37
  115 +KP_Subtract 0x4a
  116 +KP_Add 0x4e
  117 +KP_Enter 0x9c
  118 +
  119 +KP_Decimal 0x53 numlock
  120 +KP_Separator 0x53 numlock
  121 +KP_Delete 0x53
  122 +
  123 +KP_0 0x52 numlock
  124 +KP_Insert 0x52
  125 +
  126 +KP_1 0x4f numlock
  127 +KP_End 0x4f
  128 +
  129 +KP_2 0x50 numlock
  130 +KP_Down 0x50
  131 +
  132 +KP_3 0x51 numlock
  133 +KP_Next 0x51
  134 +
  135 +KP_4 0x4b numlock
  136 +KP_Left 0x4b
  137 +
  138 +KP_5 0x4c numlock
  139 +KP_Begin 0x4c
  140 +
  141 +KP_6 0x4d numlock
  142 +KP_Right 0x4d
  143 +
  144 +KP_7 0x47 numlock
  145 +KP_Home 0x47
  146 +
  147 +KP_8 0x48 numlock
  148 +KP_Up 0x48
  149 +
  150 +KP_9 0x49 numlock
  151 +KP_Prior 0x49
  152 +
  153 +Caps_Lock 0x3a
  154 +#
  155 +# Inhibited keys
  156 +#
  157 +Multi_key 0x0 inhibit
... ...
keymaps/da 0 → 100644
  1 +# generated from XKB map dk
  2 +include common
  3 +map 0x406
  4 +exclam 0x02 shift
  5 +exclamdown 0x02 altgr
  6 +onesuperior 0x02 shift altgr
  7 +quotedbl 0x03 shift
  8 +at 0x03 altgr
  9 +twosuperior 0x03 shift altgr
  10 +numbersign 0x04 shift
  11 +sterling 0x04 altgr
  12 +threesuperior 0x04 shift altgr
  13 +currency 0x05 shift
  14 +dollar 0x05 altgr
  15 +onequarter 0x05 shift altgr
  16 +percent 0x06 shift
  17 +onehalf 0x06 altgr
  18 +cent 0x06 shift altgr
  19 +ampersand 0x07 shift
  20 +yen 0x07 altgr
  21 +fiveeighths 0x07 shift altgr
  22 +slash 0x08 shift
  23 +braceleft 0x08 altgr
  24 +division 0x08 shift altgr
  25 +parenleft 0x09 shift
  26 +bracketleft 0x09 altgr
  27 +guillemotleft 0x09 shift altgr
  28 +parenright 0x0a shift
  29 +bracketright 0x0a altgr
  30 +guillemotright 0x0a shift altgr
  31 +equal 0x0b shift
  32 +braceright 0x0b altgr
  33 +degree 0x0b shift altgr
  34 +plus 0x0c
  35 +question 0x0c shift
  36 +plusminus 0x0c altgr
  37 +questiondown 0x0c shift altgr
  38 +dead_acute 0x0d
  39 +dead_grave 0x0d shift
  40 +bar 0x0d altgr
  41 +brokenbar 0x0d shift altgr
  42 +Greek_OMEGA 0x10 shift altgr
  43 +lstroke 0x11 altgr
  44 +Lstroke 0x11 shift altgr
  45 +EuroSign 0x12 altgr
  46 +cent 0x12 shift altgr
  47 +registered 0x13 altgr
  48 +thorn 0x14 altgr
  49 +THORN 0x14 shift altgr
  50 +leftarrow 0x15 altgr
  51 +yen 0x15 shift altgr
  52 +downarrow 0x16 altgr
  53 +uparrow 0x16 shift altgr
  54 +rightarrow 0x17 altgr
  55 +idotless 0x17 shift altgr
  56 +oe 0x18 altgr
  57 +OE 0x18 shift altgr
  58 +thorn 0x19 altgr
  59 +THORN 0x19 shift altgr
  60 +aring 0x1a
  61 +Aring 0x1a shift
  62 +dead_diaeresis 0x1a altgr
  63 +dead_abovering 0x1a shift altgr
  64 +dead_diaeresis 0x1b
  65 +dead_circumflex 0x1b shift
  66 +dead_tilde 0x1b altgr
  67 +dead_caron 0x1b shift altgr
  68 +ordfeminine 0x1e altgr
  69 +masculine 0x1e shift altgr
  70 +ssharp 0x1f altgr
  71 +section 0x1f shift altgr
  72 +eth 0x20 altgr
  73 +ETH 0x20 shift altgr
  74 +dstroke 0x21 altgr
  75 +ordfeminine 0x21 shift altgr
  76 +eng 0x22 altgr
  77 +ENG 0x22 shift altgr
  78 +hstroke 0x23 altgr
  79 +Hstroke 0x23 shift altgr
  80 +kra 0x25 altgr
  81 +lstroke 0x26 altgr
  82 +Lstroke 0x26 shift altgr
  83 +ae 0x27
  84 +AE 0x27 shift
  85 +oslash 0x28
  86 +Ooblique 0x28 shift
  87 +dead_caron 0x28 shift altgr
  88 +onehalf 0x29
  89 +section 0x29 shift
  90 +threequarters 0x29 altgr
  91 +paragraph 0x29 shift altgr
  92 +apostrophe 0x2b
  93 +asterisk 0x2b shift
  94 +dead_doubleacute 0x2b altgr
  95 +multiply 0x2b shift altgr
  96 +guillemotleft 0x2c altgr
  97 +guillemotright 0x2d altgr
  98 +copyright 0x2e altgr
  99 +leftdoublequotemark 0x2f altgr
  100 +grave 0x2f shift altgr
  101 +rightdoublequotemark 0x30 altgr
  102 +mu 0x32 altgr
  103 +masculine 0x32 shift altgr
  104 +comma 0x33
  105 +semicolon 0x33 shift
  106 +dead_cedilla 0x33 altgr
  107 +dead_ogonek 0x33 shift altgr
  108 +period 0x34
  109 +colon 0x34 shift
  110 +periodcentered 0x34 altgr
  111 +dead_abovedot 0x34 shift altgr
  112 +minus 0x35
  113 +underscore 0x35 shift
  114 +hyphen 0x35 altgr
  115 +macron 0x35 shift altgr
  116 +nobreakspace 0x39 altgr
  117 +less 0x56
  118 +greater 0x56 shift
  119 +backslash 0x56 altgr
  120 +notsign 0x56 shift altgr
... ...
keymaps/de 0 → 100644
  1 +# generated from XKB map de
  2 +include common
  3 +map 0x407
  4 +exclam 0x02 shift
  5 +onesuperior 0x02 altgr
  6 +exclamdown 0x02 shift altgr
  7 +quotedbl 0x03 shift
  8 +twosuperior 0x03 altgr
  9 +oneeighth 0x03 shift altgr
  10 +section 0x04 shift
  11 +threesuperior 0x04 altgr
  12 +sterling 0x04 shift altgr
  13 +dollar 0x05 shift
  14 +onequarter 0x05 altgr
  15 +currency 0x05 shift altgr
  16 +percent 0x06 shift
  17 +onehalf 0x06 altgr
  18 +threeeighths 0x06 shift altgr
  19 +ampersand 0x07 shift
  20 +threequarters 0x07 altgr
  21 +fiveeighths 0x07 shift altgr
  22 +slash 0x08 shift
  23 +braceleft 0x08 altgr
  24 +seveneighths 0x08 shift altgr
  25 +parenleft 0x09 shift
  26 +bracketleft 0x09 altgr
  27 +trademark 0x09 shift altgr
  28 +parenright 0x0a shift
  29 +bracketright 0x0a altgr
  30 +plusminus 0x0a shift altgr
  31 +equal 0x0b shift
  32 +braceright 0x0b altgr
  33 +ssharp 0x0c
  34 +question 0x0c shift
  35 +backslash 0x0c altgr
  36 +questiondown 0x0c shift altgr
  37 +acute 0x0d
  38 +dead_acute 0x0d
  39 +grave 0x0d shift
  40 +dead_grave 0x0d shift
  41 +dead_cedilla 0x0d altgr
  42 +dead_ogonek 0x0d shift altgr
  43 +at 0x10 altgr
  44 +Greek_OMEGA 0x10 shift altgr
  45 +EuroSign 0x12 altgr
  46 +paragraph 0x13 altgr
  47 +registered 0x13 shift altgr
  48 +tslash 0x14 altgr
  49 +Tslash 0x14 shift altgr
  50 +z 0x15 addupper
  51 +leftarrow 0x15 altgr
  52 +yen 0x15 shift altgr
  53 +downarrow 0x16 altgr
  54 +uparrow 0x16 shift altgr
  55 +rightarrow 0x17 altgr
  56 +idotless 0x17 shift altgr
  57 +oslash 0x18 altgr
  58 +Ooblique 0x18 shift altgr
  59 +thorn 0x19 altgr
  60 +THORN 0x19 shift altgr
  61 +udiaeresis 0x1a
  62 +Udiaeresis 0x1a shift
  63 +dead_diaeresis 0x1a altgr
  64 +dead_abovering 0x1a shift altgr
  65 +plus 0x1b
  66 +asterisk 0x1b shift
  67 +asciitilde 0x1b altgr
  68 +dead_tilde 0x1b altgr
  69 +dead_macron 0x1b shift altgr
  70 +ae 0x1e altgr
  71 +AE 0x1e shift altgr
  72 +eth 0x20 altgr
  73 +ETH 0x20 shift altgr
  74 +dstroke 0x21 altgr
  75 +ordfeminine 0x21 shift altgr
  76 +eng 0x22 altgr
  77 +ENG 0x22 shift altgr
  78 +hstroke 0x23 altgr
  79 +Hstroke 0x23 shift altgr
  80 +kra 0x25 altgr
  81 +odiaeresis 0x27
  82 +Odiaeresis 0x27 shift
  83 +dead_doubleacute 0x27 altgr
  84 +adiaeresis 0x28
  85 +Adiaeresis 0x28 shift
  86 +dead_caron 0x28 shift altgr
  87 +asciicircum 0x29
  88 +dead_circumflex 0x29
  89 +degree 0x29 shift
  90 +notsign 0x29 altgr
  91 +numbersign 0x2b
  92 +apostrophe 0x2b shift
  93 +dead_breve 0x2b shift altgr
  94 +y 0x2c addupper
  95 +guillemotleft 0x2c altgr
  96 +guillemotright 0x2d altgr
  97 +cent 0x2e altgr
  98 +copyright 0x2e shift altgr
  99 +leftdoublequotemark 0x2f altgr
  100 +rightdoublequotemark 0x30 altgr
  101 +mu 0x32 altgr
  102 +masculine 0x32 shift altgr
  103 +comma 0x33
  104 +semicolon 0x33 shift
  105 +horizconnector 0x33 altgr
  106 +multiply 0x33 shift altgr
  107 +period 0x34
  108 +colon 0x34 shift
  109 +periodcentered 0x34 altgr
  110 +division 0x34 shift altgr
  111 +minus 0x35
  112 +underscore 0x35 shift
  113 +dead_belowdot 0x35 altgr
  114 +dead_abovedot 0x35 shift altgr
... ...
keymaps/de-ch 0 → 100644
  1 +# rdesktop Swiss-German (de-ch) keymap file
  2 +# 2003-06-03 by noldi@tristar.ch
  3 +#
  4 +include common
  5 +map 0x00000807
  6 +#
  7 +# Scan Code 1
  8 +section 0x29
  9 +degree 0x29 shift
  10 +notsign 0x29 altgr inhibit
  11 +#
  12 +# Scan Code 2
  13 +plus 0x2 shift
  14 +brokenbar 0x02 altgr
  15 +#
  16 +# Scan Code 3
  17 +quotedbl 0x03 shift
  18 +at 0x03 altgr
  19 +#
  20 +# Scan Code 4
  21 +asterisk 0x04 shift
  22 +numbersign 0x04 altgr
  23 +#
  24 +# Scan Code 5
  25 +ccedilla 0x05 shift
  26 +onequarter 0x05 altgr inhibit
  27 +#
  28 +# Scan Code 6
  29 +percent 0x06 shift
  30 +onehalf 0x06 altgr inhibit
  31 +#
  32 +# Scan Code 7
  33 +ampersand 0x07 shift
  34 +notsign 0x07 altgr
  35 +#
  36 +# Scan Code 8
  37 +slash 0x08 shift
  38 +bar 0x08 altgr
  39 +#
  40 +# Scan Code 9
  41 +parenleft 0x09 shift
  42 +cent 0x09 altgr
  43 +#
  44 +# Scan Code 10
  45 +parenright 0x0a shift
  46 +#
  47 +# Scan Code 11
  48 +equal 0x0b shift
  49 +braceright 0x0b altgr inhibit
  50 +#
  51 +# Scan Code 12
  52 +apostrophe 0x0c
  53 +question 0x0c shift
  54 +dead_acute 0x0c altgr
  55 +#
  56 +# Scan Code 13
  57 +dead_circumflex 0x0d
  58 +dead_grave 0x0d shift
  59 +dead_tilde 0x0d altgr
  60 +#
  61 +# Scan Code 19
  62 +EuroSign 0x12 altgr
  63 +#
  64 +# Scan Code 22
  65 +z 0x15 addupper
  66 +#
  67 +# Scan Code 27
  68 +udiaeresis 0x1a
  69 +egrave 0x1a shift
  70 +bracketleft 0x1a altgr
  71 +#
  72 +# Scan Code 28
  73 +dead_diaeresis 0x1b
  74 +exclam 0x1b shift
  75 +bracketright 0x1b altgr
  76 +#
  77 +# Scan Code 40
  78 +odiaeresis 0x27
  79 +eacute 0x27 shift
  80 +#
  81 +# Scan Code 41
  82 +adiaeresis 0x28
  83 +agrave 0x28 shift
  84 +braceleft 0x28 altgr
  85 +#
  86 +# Scan Code 42 (only on international keyboards)
  87 +dollar 0x2b
  88 +sterling 0x2b shift
  89 +braceright 0x2b altgr
  90 +#
  91 +# Scan Code 45 (only on international keyboards)
  92 +backslash 0x56 altgr
  93 +#
  94 +# Scan Code 46
  95 +y 0x2c addupper
  96 +#
  97 +# Scan Code 53
  98 +comma 0x33
  99 +semicolon 0x33 shift
  100 +#
  101 +# Scan Code 54
  102 +period 0x34
  103 +colon 0x34 shift
  104 +#
  105 +# Scan Code 55
  106 +minus 0x35
  107 +underscore 0x35 shift
  108 +#
  109 +# Suppress Windows unsupported AltGr keys
  110 +#
  111 +# Scan Code 17
  112 +paragraph 0x10 altgr inhibit
  113 +#
  114 +# Scan Code 21
  115 +tslash 0x14 altgr inhibit
  116 +#
  117 +# Scan Code 22
  118 +leftarrow 0x15 altgr inhibit
  119 +#
  120 +# Scan Code 23
  121 +downarrow 0x16 altgr inhibit
  122 +#
  123 +# Scan Code 24
  124 +rightarrow 0x17 altgr inhibit
  125 +#
  126 +# Scan Code 25
  127 +oslash 0x18 altgr inhibit
  128 +#
  129 +# Scan Code 26
  130 +thorn 0x19 altgr inhibit
  131 +#
  132 +# Scan Code 31
  133 +ae 0x1e altgr inhibit
  134 +#
  135 +# Scan Code 32
  136 +ssharp 0x1f altgr inhibit
  137 +#
  138 +# Scan Code 33
  139 +eth 0x20 altgr inhibit
  140 +#
  141 +# Scan Code 34
  142 +dstroke 0x21 altgr inhibit
  143 +#
  144 +# Scan Code 35
  145 +eng 0x22 altgr inhibit
  146 +#
  147 +# Scan Code 36
  148 +hstroke 0x23 altgr inhibit
  149 +#
  150 +# Scan Code 38
  151 +kra 0x25 altgr inhibit
  152 +#
  153 +# Scan Code 39
  154 +lstroke 0x26 altgr inhibit
  155 +#
  156 +# Scan Code 46
  157 +guillemotleft 0x2c altgr inhibit
  158 +#
  159 +# Scan Code 47
  160 +guillemotright 0x2d altgr inhibit
  161 +#
  162 +# Scan Code 49
  163 +leftdoublequotemark 0x2f altgr inhibit
  164 +#
  165 +# Scan Code 50
  166 +rightdoublequotemark 0x30 altgr inhibit
  167 +#
  168 +# Scan Code 52
  169 +mu 0x32 altgr inhibit
... ...
keymaps/en-gb 0 → 100644
  1 +# generated from XKB map gb
  2 +include common
  3 +map 0x809
  4 +exclam 0x02 shift
  5 +onesuperior 0x02 altgr
  6 +exclamdown 0x02 shift altgr
  7 +quotedbl 0x03 shift
  8 +twosuperior 0x03 altgr
  9 +oneeighth 0x03 shift altgr
  10 +sterling 0x04 shift
  11 +threesuperior 0x04 altgr
  12 +dollar 0x05 shift
  13 +EuroSign 0x05 altgr
  14 +percent 0x06 shift
  15 +onehalf 0x06 altgr
  16 +threeeighths 0x06 shift altgr
  17 +asciicircum 0x07 shift
  18 +threequarters 0x07 altgr
  19 +fiveeighths 0x07 shift altgr
  20 +ampersand 0x08 shift
  21 +braceleft 0x08 altgr
  22 +seveneighths 0x08 shift altgr
  23 +asterisk 0x09 shift
  24 +bracketleft 0x09 altgr
  25 +trademark 0x09 shift altgr
  26 +parenleft 0x0a shift
  27 +bracketright 0x0a altgr
  28 +plusminus 0x0a shift altgr
  29 +parenright 0x0b shift
  30 +braceright 0x0b altgr
  31 +degree 0x0b shift altgr
  32 +minus 0x0c
  33 +underscore 0x0c shift
  34 +backslash 0x0c altgr
  35 +questiondown 0x0c shift altgr
  36 +equal 0x0d
  37 +plus 0x0d shift
  38 +dead_cedilla 0x0d altgr
  39 +dead_ogonek 0x0d shift altgr
  40 +at 0x10 altgr
  41 +Greek_OMEGA 0x10 shift altgr
  42 +lstroke 0x11 altgr
  43 +Lstroke 0x11 shift altgr
  44 +paragraph 0x13 altgr
  45 +registered 0x13 shift altgr
  46 +tslash 0x14 altgr
  47 +Tslash 0x14 shift altgr
  48 +leftarrow 0x15 altgr
  49 +yen 0x15 shift altgr
  50 +downarrow 0x16 altgr
  51 +uparrow 0x16 shift altgr
  52 +rightarrow 0x17 altgr
  53 +idotless 0x17 shift altgr
  54 +oslash 0x18 altgr
  55 +Ooblique 0x18 shift altgr
  56 +thorn 0x19 altgr
  57 +THORN 0x19 shift altgr
  58 +bracketleft 0x1a
  59 +braceleft 0x1a shift
  60 +dead_diaeresis 0x1a altgr
  61 +dead_abovering 0x1a shift altgr
  62 +bracketright 0x1b
  63 +braceright 0x1b shift
  64 +dead_tilde 0x1b altgr
  65 +dead_macron 0x1b shift altgr
  66 +ae 0x1e altgr
  67 +AE 0x1e shift altgr
  68 +ssharp 0x1f altgr
  69 +section 0x1f shift altgr
  70 +eth 0x20 altgr
  71 +ETH 0x20 shift altgr
  72 +dstroke 0x21 altgr
  73 +ordfeminine 0x21 shift altgr
  74 +eng 0x22 altgr
  75 +ENG 0x22 shift altgr
  76 +hstroke 0x23 altgr
  77 +Hstroke 0x23 shift altgr
  78 +kra 0x25 altgr
  79 +lstroke 0x26 altgr
  80 +Lstroke 0x26 shift altgr
  81 +semicolon 0x27
  82 +colon 0x27 shift
  83 +dead_acute 0x27 altgr
  84 +dead_doubleacute 0x27 shift altgr
  85 +apostrophe 0x28
  86 +at 0x28 shift
  87 +dead_circumflex 0x28 altgr
  88 +dead_caron 0x28 shift altgr
  89 +grave 0x29
  90 +notsign 0x29 shift
  91 +bar 0x29 altgr
  92 +numbersign 0x2b
  93 +asciitilde 0x2b shift
  94 +dead_grave 0x2b altgr
  95 +dead_breve 0x2b shift altgr
  96 +guillemotleft 0x2c altgr
  97 +less 0x2c shift altgr
  98 +guillemotright 0x2d altgr
  99 +greater 0x2d shift altgr
  100 +cent 0x2e altgr
  101 +copyright 0x2e shift altgr
  102 +leftdoublequotemark 0x2f altgr
  103 +rightdoublequotemark 0x30 altgr
  104 +mu 0x32 altgr
  105 +masculine 0x32 shift altgr
  106 +comma 0x33
  107 +less 0x33 shift
  108 +horizconnector 0x33 altgr
  109 +multiply 0x33 shift altgr
  110 +period 0x34
  111 +greater 0x34 shift
  112 +periodcentered 0x34 altgr
  113 +division 0x34 shift altgr
  114 +slash 0x35
  115 +question 0x35 shift
  116 +dead_belowdot 0x35 altgr
  117 +dead_abovedot 0x35 shift altgr
  118 +backslash 0x56
  119 +bar 0x56 shift
... ...
keymaps/en-us 0 → 100644
  1 +# generated from XKB map us
  2 +include common
  3 +map 0x409
  4 +exclam 0x02 shift
  5 +at 0x03 shift
  6 +numbersign 0x04 shift
  7 +dollar 0x05 shift
  8 +percent 0x06 shift
  9 +asciicircum 0x07 shift
  10 +ampersand 0x08 shift
  11 +asterisk 0x09 shift
  12 +parenleft 0x0a shift
  13 +parenright 0x0b shift
  14 +minus 0x0c
  15 +underscore 0x0c shift
  16 +equal 0x0d
  17 +plus 0x0d shift
  18 +bracketleft 0x1a
  19 +braceleft 0x1a shift
  20 +bracketright 0x1b
  21 +braceright 0x1b shift
  22 +semicolon 0x27
  23 +colon 0x27 shift
  24 +apostrophe 0x28
  25 +quotedbl 0x28 shift
  26 +grave 0x29
  27 +asciitilde 0x29 shift
  28 +backslash 0x2b
  29 +bar 0x2b shift
  30 +comma 0x33
  31 +less 0x33 shift
  32 +period 0x34
  33 +greater 0x34 shift
  34 +slash 0x35
  35 +question 0x35 shift
... ...
keymaps/es 0 → 100644
  1 +# generated from XKB map es
  2 +include common
  3 +map 0x40a
  4 +exclam 0x02 shift
  5 +bar 0x02 altgr
  6 +quotedbl 0x03 shift
  7 +at 0x03 altgr
  8 +oneeighth 0x03 shift altgr
  9 +periodcentered 0x04 shift
  10 +numbersign 0x04 altgr
  11 +sterling 0x04 shift altgr
  12 +dollar 0x05 shift
  13 +asciitilde 0x05 altgr
  14 +percent 0x06 shift
  15 +onehalf 0x06 altgr
  16 +threeeighths 0x06 shift altgr
  17 +ampersand 0x07 shift
  18 +notsign 0x07 altgr
  19 +fiveeighths 0x07 shift altgr
  20 +slash 0x08 shift
  21 +seveneighths 0x08 shift altgr
  22 +parenleft 0x09 shift
  23 +trademark 0x09 shift altgr
  24 +parenright 0x0a shift
  25 +plusminus 0x0a shift altgr
  26 +equal 0x0b shift
  27 +degree 0x0b shift altgr
  28 +apostrophe 0x0c
  29 +question 0x0c shift
  30 +exclamdown 0x0d
  31 +questiondown 0x0d shift
  32 +Greek_OMEGA 0x10 shift altgr
  33 +lstroke 0x11 altgr
  34 +Lstroke 0x11 shift altgr
  35 +EuroSign 0x12 altgr
  36 +paragraph 0x13 altgr
  37 +registered 0x13 shift altgr
  38 +tslash 0x14 altgr
  39 +Tslash 0x14 shift altgr
  40 +leftarrow 0x15 altgr
  41 +yen 0x15 shift altgr
  42 +downarrow 0x16 altgr
  43 +uparrow 0x16 shift altgr
  44 +rightarrow 0x17 altgr
  45 +idotless 0x17 shift altgr
  46 +oslash 0x18 altgr
  47 +Ooblique 0x18 shift altgr
  48 +thorn 0x19 altgr
  49 +THORN 0x19 shift altgr
  50 +dead_grave 0x1a
  51 +dead_circumflex 0x1a shift
  52 +bracketleft 0x1a altgr
  53 +dead_abovering 0x1a shift altgr
  54 +plus 0x1b
  55 +asterisk 0x1b shift
  56 +bracketright 0x1b altgr
  57 +dead_macron 0x1b shift altgr
  58 +ae 0x1e altgr
  59 +AE 0x1e shift altgr
  60 +ssharp 0x1f altgr
  61 +section 0x1f shift altgr
  62 +eth 0x20 altgr
  63 +ETH 0x20 shift altgr
  64 +dstroke 0x21 altgr
  65 +eng 0x22 altgr
  66 +ENG 0x22 shift altgr
  67 +hstroke 0x23 altgr
  68 +Hstroke 0x23 shift altgr
  69 +kra 0x25 altgr
  70 +lstroke 0x26 altgr
  71 +Lstroke 0x26 shift altgr
  72 +ntilde 0x27
  73 +Ntilde 0x27 shift
  74 +dead_doubleacute 0x27 shift altgr
  75 +dead_acute 0x28
  76 +dead_diaeresis 0x28 shift
  77 +braceleft 0x28 altgr
  78 +masculine 0x29
  79 +ordfeminine 0x29 shift
  80 +backslash 0x29 altgr
  81 +ccedilla 0x2b
  82 +Ccedilla 0x2b shift
  83 +braceright 0x2b altgr
  84 +dead_breve 0x2b shift altgr
  85 +guillemotleft 0x2c altgr
  86 +less 0x56
  87 +greater 0x56 shift
  88 +guillemotright 0x2d altgr
  89 +cent 0x2e altgr
  90 +copyright 0x2e shift altgr
  91 +leftdoublequotemark 0x2f altgr
  92 +grave 0x2f shift altgr
  93 +rightdoublequotemark 0x30 altgr
  94 +mu 0x32 altgr
  95 +comma 0x33
  96 +semicolon 0x33 shift
  97 +horizconnector 0x33 altgr
  98 +multiply 0x33 shift altgr
  99 +period 0x34
  100 +colon 0x34 shift
  101 +division 0x34 shift altgr
  102 +minus 0x35
  103 +underscore 0x35 shift
  104 +dead_belowdot 0x35 altgr
  105 +dead_abovedot 0x35 shift altgr
... ...
keymaps/et 0 → 100644
  1 +map 0x00000425
  2 +include common
  3 +
  4 +#
  5 +# Top row
  6 +#
  7 +dead_caron 0x29
  8 +dead_tilde 0x29 shift
  9 +
  10 +# 1
  11 +exclam 0x2 shift
  12 +
  13 +# 2
  14 +quotedbl 0x3 shift
  15 +at 0x3 altgr
  16 +
  17 +# 3
  18 +numbersign 0x4 shift
  19 +sterling 0x4 altgr
  20 +# 4
  21 +currency 0x5 shift
  22 +dollar 0x5 altgr
  23 +# 5
  24 +percent 0x6 shift
  25 +# 6
  26 +ampersand 0x7 shift
  27 +# 7
  28 +slash 0x8 shift
  29 +braceleft 0x8 altgr
  30 +# 8
  31 +parenleft 0x9 shift
  32 +bracketleft 0x9 altgr
  33 +# 9
  34 +parenright 0xa shift
  35 +bracketright 0xa altgr
  36 +# 0
  37 +equal 0xb shift
  38 +braceright 0xb altgr
  39 +
  40 +plus 0xc
  41 +question 0xc shift
  42 +backslash 0xc altgr
  43 +
  44 +acute 0xd
  45 +dead_acute 0xd
  46 +grave 0xd shift
  47 +dead_grave 0xd shift
  48 +
  49 +#
  50 +# QWERTY first row
  51 +#
  52 +EuroSign 0x12 altgr
  53 +udiaeresis 0x1a
  54 +Udiaeresis 0x1a shift
  55 +otilde 0x1b
  56 +Otilde 0x1b shift
  57 +section 0x1b altgr
  58 +
  59 +#
  60 +# QWERTY second row
  61 +#
  62 +scaron 0x1f altgr
  63 +Scaron 0x1f altgr shift
  64 +odiaeresis 0x27
  65 +Odiaeresis 0x27 shift
  66 +adiaeresis 0x28
  67 +Adiaeresis 0x28 shift
  68 +asciicircum 0x28 altgr
  69 +apostrophe 0x2b
  70 +asterisk 0x2b shift
  71 +onehalf 0x2b altgr
  72 +#
  73 +# QWERTY third row
  74 +#
  75 +less 0x56
  76 +greater 0x56 shift
  77 +bar 0x56 altgr
  78 +zcaron 0x2c altgr
  79 +Zcaron 0x2c altgr shift
  80 +comma 0x33
  81 +semicolon 0x33 shift
  82 +period 0x34
  83 +colon 0x34 shift
  84 +minus 0x35
  85 +underscore 0x35 shift
  86 +
... ...
keymaps/fi 0 → 100644
  1 +# generated from XKB map se_FI
  2 +include common
  3 +map 0x40b
  4 +exclam 0x02 shift
  5 +exclamdown 0x02 altgr
  6 +onesuperior 0x02 shift altgr
  7 +quotedbl 0x03 shift
  8 +at 0x03 altgr
  9 +twosuperior 0x03 shift altgr
  10 +numbersign 0x04 shift
  11 +sterling 0x04 altgr
  12 +threesuperior 0x04 shift altgr
  13 +currency 0x05 shift
  14 +dollar 0x05 altgr
  15 +onequarter 0x05 shift altgr
  16 +percent 0x06 shift
  17 +onehalf 0x06 altgr
  18 +cent 0x06 shift altgr
  19 +ampersand 0x07 shift
  20 +yen 0x07 altgr
  21 +fiveeighths 0x07 shift altgr
  22 +slash 0x08 shift
  23 +braceleft 0x08 altgr
  24 +division 0x08 shift altgr
  25 +parenleft 0x09 shift
  26 +bracketleft 0x09 altgr
  27 +guillemotleft 0x09 shift altgr
  28 +parenright 0x0a shift
  29 +bracketright 0x0a altgr
  30 +guillemotright 0x0a shift altgr
  31 +equal 0x0b shift
  32 +braceright 0x0b altgr
  33 +degree 0x0b shift altgr
  34 +plus 0x0c
  35 +question 0x0c shift
  36 +backslash 0x0c altgr
  37 +questiondown 0x0c shift altgr
  38 +dead_acute 0x0d
  39 +dead_grave 0x0d shift
  40 +plusminus 0x0d altgr
  41 +notsign 0x0d shift altgr
  42 +at 0x10 altgr
  43 +Greek_OMEGA 0x10 shift altgr
  44 +lstroke 0x11 altgr
  45 +Lstroke 0x11 shift altgr
  46 +EuroSign 0x12 altgr
  47 +cent 0x12 shift altgr
  48 +registered 0x13 altgr
  49 +thorn 0x14 altgr
  50 +THORN 0x14 shift altgr
  51 +leftarrow 0x15 altgr
  52 +yen 0x15 shift altgr
  53 +downarrow 0x16 altgr
  54 +uparrow 0x16 shift altgr
  55 +rightarrow 0x17 altgr
  56 +idotless 0x17 shift altgr
  57 +oe 0x18 altgr
  58 +OE 0x18 shift altgr
  59 +thorn 0x19 altgr
  60 +THORN 0x19 shift altgr
  61 +aring 0x1a
  62 +Aring 0x1a shift
  63 +dead_diaeresis 0x1a altgr
  64 +dead_abovering 0x1a shift altgr
  65 +dead_diaeresis 0x1b
  66 +dead_circumflex 0x1b shift
  67 +dead_tilde 0x1b altgr
  68 +dead_caron 0x1b shift altgr
  69 +ordfeminine 0x1e altgr
  70 +masculine 0x1e shift altgr
  71 +ssharp 0x1f altgr
  72 +section 0x1f shift altgr
  73 +eth 0x20 altgr
  74 +ETH 0x20 shift altgr
  75 +dstroke 0x21 altgr
  76 +ordfeminine 0x21 shift altgr
  77 +eng 0x22 altgr
  78 +ENG 0x22 shift altgr
  79 +hstroke 0x23 altgr
  80 +Hstroke 0x23 shift altgr
  81 +kra 0x25 altgr
  82 +ampersand 0x25 shift altgr
  83 +lstroke 0x26 altgr
  84 +Lstroke 0x26 shift altgr
  85 +odiaeresis 0x27
  86 +Odiaeresis 0x27 shift
  87 +oslash 0x27 altgr
  88 +Ooblique 0x27 shift altgr
  89 +adiaeresis 0x28
  90 +Adiaeresis 0x28 shift
  91 +ae 0x28 altgr
  92 +AE 0x28 shift altgr
  93 +section 0x29
  94 +onehalf 0x29 shift
  95 +paragraph 0x29 altgr
  96 +threequarters 0x29 shift altgr
  97 +apostrophe 0x2b
  98 +asterisk 0x2b shift
  99 +acute 0x2b altgr
  100 +multiply 0x2b shift altgr
  101 +guillemotleft 0x2c altgr
  102 +less 0x2c shift altgr
  103 +guillemotright 0x2d altgr
  104 +greater 0x2d shift altgr
  105 +copyright 0x2e altgr
  106 +leftdoublequotemark 0x2f altgr
  107 +grave 0x2f shift altgr
  108 +rightdoublequotemark 0x30 altgr
  109 +apostrophe 0x30 shift altgr
  110 +mu 0x32 altgr
  111 +masculine 0x32 shift altgr
  112 +comma 0x33
  113 +semicolon 0x33 shift
  114 +dead_cedilla 0x33 altgr
  115 +dead_ogonek 0x33 shift altgr
  116 +period 0x34
  117 +colon 0x34 shift
  118 +periodcentered 0x34 altgr
  119 +dead_abovedot 0x34 shift altgr
  120 +minus 0x35
  121 +underscore 0x35 shift
  122 +hyphen 0x35 altgr
  123 +macron 0x35 shift altgr
  124 +nobreakspace 0x39 altgr
... ...
keymaps/fo 0 → 100644
  1 +map 0x438
  2 +include common
  3 +
  4 +#
  5 +# Top row
  6 +#
  7 +onehalf 0x29
  8 +section 0x29 shift
  9 +
  10 +# 1
  11 +exclam 0x2 shift
  12 +
  13 +# 2
  14 +quotedbl 0x3 shift
  15 +at 0x3 altgr
  16 +
  17 +# 3
  18 +numbersign 0x4 shift
  19 +sterling 0x4 altgr
  20 +# 4
  21 +currency 0x5 shift
  22 +dollar 0x5 altgr
  23 +# 5
  24 +percent 0x6 shift
  25 +# 6
  26 +ampersand 0x7 shift
  27 +# 7
  28 +slash 0x8 shift
  29 +braceleft 0x8 altgr
  30 +# 8
  31 +parenleft 0x9 shift
  32 +bracketleft 0x9 altgr
  33 +# 9
  34 +parenright 0xa shift
  35 +bracketright 0xa altgr
  36 +# 0
  37 +equal 0xb shift
  38 +braceright 0xb altgr
  39 +
  40 +plus 0xc
  41 +question 0xc shift
  42 +plusminus 0xc altgr
  43 +
  44 +bar 0xd altgr
  45 +dead_acute 0xd
  46 +
  47 +#
  48 +# QWERTY first row
  49 +#
  50 +EuroSign 0x12 altgr
  51 +aring 0x1a
  52 +Aring 0x1a shift
  53 +eth 0x1b addupper
  54 +asciitilde 0x1b altgr
  55 +
  56 +#
  57 +# QWERTY second row
  58 +#
  59 +ae 0x27 addupper
  60 +oslash 0x28
  61 +Ooblique 0x28 shift
  62 +apostrophe 0x2b
  63 +asterisk 0x2b shift
  64 +
  65 +#
  66 +# QWERTY third row
  67 +#
  68 +less 0x56
  69 +greater 0x56 shift
  70 +backslash 0x56 altgr
  71 +comma 0x33
  72 +semicolon 0x33 shift
  73 +period 0x34
  74 +colon 0x34 shift
  75 +minus 0x35
  76 +underscore 0x35 shift
  77 +
... ...
keymaps/fr 0 → 100644
  1 +include common
  2 +map 0x40c
  3 +#
  4 +# Top row
  5 +#
  6 +twosuperior 0x29
  7 +notsign 0x29 altgr
  8 +
  9 +ampersand 0x02
  10 +1 0x02 shift
  11 +onesuperior 0x02 altgr
  12 +exclamdown 0x02 shift altgr
  13 +
  14 +eacute 0x03
  15 +2 0x03 shift
  16 +asciitilde 0x03 altgr
  17 +oneeighth 0x03 shift altgr
  18 +
  19 +quotedbl 0x04
  20 +3 0x04 shift
  21 +numbersign 0x04 altgr
  22 +
  23 +apostrophe 0x05
  24 +4 0x05 shift
  25 +braceleft 0x05 altgr
  26 +
  27 +parenleft 0x06
  28 +5 0x06 shift
  29 +bracketleft 0x06 altgr
  30 +threeeighths 0x06 shift altgr
  31 +
  32 +minus 0x07
  33 +6 0x07 shift
  34 +bar 0x07 altgr
  35 +fiveeighths 0x07 shift altgr
  36 +
  37 +egrave 0x08
  38 +7 0x08 shift
  39 +grave 0x08 altgr
  40 +seveneighths 0x08 shift altgr
  41 +
  42 +underscore 0x09
  43 +8 0x09 shift
  44 +backslash 0x09 altgr
  45 +trademark 0x09 shift altgr
  46 +
  47 +ccedilla 0x0a
  48 +9 0x0a shift
  49 +asciicircum 0x0a altgr
  50 +plusminus 0x0a shift altgr
  51 +
  52 +agrave 0x0b
  53 +0 0x0b shift
  54 +at 0x0b altgr
  55 +
  56 +parenright 0x0c
  57 +degree 0x0c shift
  58 +bracketright 0x0c altgr
  59 +questiondown 0x0c shift altgr
  60 +
  61 +equal 0x0d
  62 +plus 0x0d shift
  63 +braceright 0x0d altgr
  64 +dead_ogonek 0x0d shift altgr
  65 +
  66 +#
  67 +# AZERTY first row
  68 +#
  69 +
  70 +a 0x10 addupper
  71 +ae 0x10 altgr
  72 +AE 0x10 shift altgr
  73 +
  74 +z 0x11 addupper
  75 +guillemotleft 0x11 altgr
  76 +
  77 +EuroSign 0x12 altgr
  78 +
  79 +paragraph 0x13 altgr
  80 +registered 0x13 shift altgr
  81 +
  82 +tslash 0x14 altgr
  83 +Tslash 0x14 shift altgr
  84 +
  85 +leftarrow 0x15 altgr
  86 +yen 0x15 shift altgr
  87 +
  88 +downarrow 0x16 altgr
  89 +uparrow 0x16 shift altgr
  90 +
  91 +rightarrow 0x17 altgr
  92 +idotless 0x17 shift altgr
  93 +
  94 +oslash 0x18 altgr
  95 +Ooblique 0x18 shift altgr
  96 +
  97 +thorn 0x19 altgr
  98 +THORN 0x19 shift altgr
  99 +
  100 +dead_circumflex 0x1a
  101 +dead_diaeresis 0x1a shift
  102 +dead_abovering 0x1a shift altgr
  103 +
  104 +dollar 0x1b
  105 +sterling 0x1b shift
  106 +currency 0x1b altgr
  107 +dead_macron 0x1b shift altgr
  108 +
  109 +#
  110 +# AZERTY second row
  111 +#
  112 +q 0x1e addupper
  113 +Greek_OMEGA 0x1e shift altgr
  114 +
  115 +ssharp 0x1f altgr
  116 +
  117 +eth 0x20 altgr
  118 +ETH 0x20 shift altgr
  119 +
  120 +dstroke 0x21 altgr
  121 +ordfeminine 0x21 shift altgr
  122 +
  123 +eng 0x22 altgr
  124 +ENG 0x22 shift altgr
  125 +
  126 +hstroke 0x23 altgr
  127 +Hstroke 0x23 shift altgr
  128 +
  129 +kra 0x25 altgr
  130 +
  131 +lstroke 0x26 altgr
  132 +Lstroke 0x26 shift altgr
  133 +
  134 +m 0x27 addupper
  135 +masculine 0x27 shift altgr
  136 +
  137 +ugrave 0x28
  138 +percent 0x28 shift
  139 +dead_caron 0x28 shift altgr
  140 +
  141 +asterisk 0x2b
  142 +mu 0x2b shift
  143 +dead_grave 0x2b altgr
  144 +dead_breve 0x2b shift altgr
  145 +
  146 +#
  147 +# AZERTY third row
  148 +#
  149 +less 0x56
  150 +greater 0x56 shift
  151 +
  152 +w 0x2c addupper
  153 +
  154 +guillemotright 0x2d altgr
  155 +
  156 +cent 0x2e altgr
  157 +copyright 0x2e shift altgr
  158 +
  159 +leftdoublequotemark 0x2f altgr
  160 +
  161 +rightdoublequotemark 0x30 altgr
  162 +
  163 +comma 0x32
  164 +question 0x32 shift
  165 +dead_acute 0x32 altgr
  166 +dead_doubleacute 0x32 shift altgr
  167 +
  168 +semicolon 0x33
  169 +period 0x33 shift
  170 +horizconnector 0x33 altgr
  171 +multiply 0x33 shift altgr
  172 +
  173 +colon 0x34
  174 +slash 0x34 shift
  175 +periodcentered 0x34 altgr
  176 +division 0x34 shift altgr
  177 +
  178 +exclam 0x35
  179 +section 0x35 shift
  180 +dead_belowdot 0x35 altgr
  181 +dead_abovedot 0x35 shift altgr
... ...
keymaps/fr-be 0 → 100644
  1 +# generated from XKB map be
  2 +include common
  3 +map 0x80c
  4 +ampersand 0x02
  5 +1 0x02 shift
  6 +bar 0x02 altgr
  7 +exclamdown 0x02 shift altgr
  8 +eacute 0x03
  9 +2 0x03 shift
  10 +at 0x03 altgr
  11 +oneeighth 0x03 shift altgr
  12 +quotedbl 0x04
  13 +3 0x04 shift
  14 +numbersign 0x04 altgr
  15 +sterling 0x04 shift altgr
  16 +apostrophe 0x05
  17 +4 0x05 shift
  18 +onequarter 0x05 altgr
  19 +dollar 0x05 shift altgr
  20 +parenleft 0x06
  21 +5 0x06 shift
  22 +onehalf 0x06 altgr
  23 +threeeighths 0x06 shift altgr
  24 +section 0x07
  25 +6 0x07 shift
  26 +asciicircum 0x07 altgr
  27 +fiveeighths 0x07 shift altgr
  28 +egrave 0x08
  29 +7 0x08 shift
  30 +braceleft 0x08 altgr
  31 +seveneighths 0x08 shift altgr
  32 +exclam 0x09
  33 +8 0x09 shift
  34 +bracketleft 0x09 altgr
  35 +trademark 0x09 shift altgr
  36 +ccedilla 0x0a
  37 +9 0x0a shift
  38 +braceleft 0x0a altgr
  39 +plusminus 0x0a shift altgr
  40 +agrave 0x0b
  41 +0 0x0b shift
  42 +braceright 0x0b altgr
  43 +degree 0x0b shift altgr
  44 +parenright 0x0c
  45 +degree 0x0c shift
  46 +backslash 0x0c altgr
  47 +questiondown 0x0c shift altgr
  48 +minus 0x0d
  49 +underscore 0x0d shift
  50 +dead_cedilla 0x0d altgr
  51 +dead_ogonek 0x0d shift altgr
  52 +a 0x10 addupper
  53 +at 0x10 altgr
  54 +Greek_OMEGA 0x10 shift altgr
  55 +z 0x11 addupper
  56 +lstroke 0x11 altgr
  57 +Lstroke 0x11 shift altgr
  58 +EuroSign 0x12 altgr
  59 +cent 0x12 shift altgr
  60 +paragraph 0x13 altgr
  61 +registered 0x13 shift altgr
  62 +tslash 0x14 altgr
  63 +Tslash 0x14 shift altgr
  64 +leftarrow 0x15 altgr
  65 +yen 0x15 shift altgr
  66 +downarrow 0x16 altgr
  67 +uparrow 0x16 shift altgr
  68 +rightarrow 0x17 altgr
  69 +idotless 0x17 shift altgr
  70 +oslash 0x18 altgr
  71 +Ooblique 0x18 shift altgr
  72 +thorn 0x19 altgr
  73 +THORN 0x19 shift altgr
  74 +dead_circumflex 0x1a
  75 +dead_diaeresis 0x1a shift
  76 +bracketleft 0x1a altgr
  77 +dead_abovering 0x1a shift altgr
  78 +dollar 0x1b
  79 +asterisk 0x1b shift
  80 +bracketright 0x1b altgr
  81 +dead_macron 0x1b shift altgr
  82 +q 0x1e addupper
  83 +ae 0x1e altgr
  84 +AE 0x1e shift altgr
  85 +ssharp 0x1f altgr
  86 +section 0x1f shift altgr
  87 +eth 0x20 altgr
  88 +ETH 0x20 shift altgr
  89 +dstroke 0x21 altgr
  90 +ordfeminine 0x21 shift altgr
  91 +eng 0x22 altgr
  92 +ENG 0x22 shift altgr
  93 +hstroke 0x23 altgr
  94 +Hstroke 0x23 shift altgr
  95 +kra 0x25 altgr
  96 +ampersand 0x25 shift altgr
  97 +lstroke 0x26 altgr
  98 +Lstroke 0x26 shift altgr
  99 +m 0x27 addupper
  100 +dead_acute 0x27 altgr
  101 +dead_doubleacute 0x27 shift altgr
  102 +ugrave 0x28
  103 +percent 0x28 shift
  104 +dead_acute 0x28 altgr
  105 +dead_caron 0x28 shift altgr
  106 +twosuperior 0x29
  107 +threesuperior 0x29 shift
  108 +notsign 0x29 altgr
  109 +mu 0x2b
  110 +sterling 0x2b shift
  111 +dead_grave 0x2b altgr
  112 +dead_breve 0x2b shift altgr
  113 +w 0x2c addupper
  114 +guillemotleft 0x2c altgr
  115 +less 0x2c shift altgr
  116 +guillemotright 0x2d altgr
  117 +greater 0x2d shift altgr
  118 +cent 0x2e altgr
  119 +copyright 0x2e shift altgr
  120 +leftdoublequotemark 0x2f altgr
  121 +grave 0x2f shift altgr
  122 +rightdoublequotemark 0x30 altgr
  123 +apostrophe 0x30 shift altgr
  124 +comma 0x32
  125 +question 0x32 shift
  126 +dead_cedilla 0x32 altgr
  127 +masculine 0x32 shift altgr
  128 +semicolon 0x33
  129 +period 0x33 shift
  130 +horizconnector 0x33 altgr
  131 +multiply 0x33 shift altgr
  132 +colon 0x34
  133 +slash 0x34 shift
  134 +periodcentered 0x34 altgr
  135 +division 0x34 shift altgr
  136 +equal 0x35
  137 +plus 0x35 shift
  138 +dead_tilde 0x35 altgr
  139 +dead_abovedot 0x35 shift altgr
  140 +backslash 0x56 altgr
... ...
keymaps/fr-ca 0 → 100644
  1 +# Canadian French
  2 +# By Simon Germain
  3 +include common
  4 +map 0xc0c
  5 +
  6 +backslash 0x29 altgr
  7 +plusminus 0x2 altgr
  8 +at 0x3 altgr
  9 +sterling 0x4 altgr
  10 +cent 0x5 altgr
  11 +currency 0x6 altgr
  12 +notsign 0x7 altgr
  13 +bar 0x29 shift
  14 +twosuperior 0x9 altgr
  15 +threesuperior 0xa altgr
  16 +onequarter 0xb altgr
  17 +onehalf 0xc altgr
  18 +threequarters 0xd altgr
  19 +section 0x18 altgr
  20 +paragraph 0x19 altgr
  21 +bracketleft 0x1a altgr
  22 +bracketright 0x1b altgr
  23 +asciitilde 0x27 altgr
  24 +braceleft 0x28 altgr
  25 +braceright 0x2b altgr
  26 +less 0x2b
  27 +greater 0x2b shift
  28 +guillemotleft 0x56
  29 +guillemotright 0x56 shift
  30 +degree 0x56 altgr
  31 +mu 0x32 altgr
  32 +eacute 0x35
  33 +dead_acute 0x35 altgr
  34 +dead_grave 0x28
  35 +dead_circumflex 0x1a
  36 +dead_circumflex 0x1a shift
  37 +dead_cedilla 0x1b
  38 +dead_diaeresis 0x1b shift
  39 +exclam 0x2 shift
  40 +quotedbl 0x3 shift
  41 +slash 0x4 shift
  42 +dollar 0x5 shift
  43 +percent 0x6 shift
  44 +question 0x7 shift
  45 +ampersand 0x8 shift
  46 +asterisk 0x9 shift
  47 +parenleft 0xa shift
  48 +parenright 0xb shift
  49 +underscore 0xc shift
  50 +plus 0xd shift
... ...
keymaps/fr-ch 0 → 100644
  1 +# generated from XKB map fr_CH
  2 +include common
  3 +map 0x100c
  4 +exclam 0x02 shift
  5 +onesuperior 0x02 altgr
  6 +exclamdown 0x02 shift altgr
  7 +quotedbl 0x03 shift
  8 +twosuperior 0x03 altgr
  9 +oneeighth 0x03 shift altgr
  10 +section 0x04 shift
  11 +threesuperior 0x04 altgr
  12 +sterling 0x04 shift altgr
  13 +dollar 0x05 shift
  14 +onequarter 0x05 altgr
  15 +currency 0x05 shift altgr
  16 +percent 0x06 shift
  17 +onehalf 0x06 altgr
  18 +threeeighths 0x06 shift altgr
  19 +ampersand 0x07 shift
  20 +threequarters 0x07 altgr
  21 +fiveeighths 0x07 shift altgr
  22 +slash 0x08 shift
  23 +braceleft 0x08 altgr
  24 +seveneighths 0x08 shift altgr
  25 +parenleft 0x09 shift
  26 +bracketleft 0x09 altgr
  27 +trademark 0x09 shift altgr
  28 +parenright 0x0a shift
  29 +bracketright 0x0a altgr
  30 +plusminus 0x0a shift altgr
  31 +equal 0x0b shift
  32 +braceright 0x0b altgr
  33 +ssharp 0x0c
  34 +question 0x0c shift
  35 +backslash 0x0c altgr
  36 +questiondown 0x0c shift altgr
  37 +acute 0x0d
  38 +dead_acute 0x0d
  39 +grave 0x0d shift
  40 +dead_grave 0x0d shift
  41 +dead_cedilla 0x0d altgr
  42 +dead_ogonek 0x0d shift altgr
  43 +at 0x10 altgr
  44 +Greek_OMEGA 0x10 shift altgr
  45 +EuroSign 0x12 altgr
  46 +paragraph 0x13 altgr
  47 +registered 0x13 shift altgr
  48 +tslash 0x14 altgr
  49 +Tslash 0x14 shift altgr
  50 +z 0x15 addupper
  51 +leftarrow 0x15 altgr
  52 +yen 0x15 shift altgr
  53 +downarrow 0x16 altgr
  54 +uparrow 0x16 shift altgr
  55 +rightarrow 0x17 altgr
  56 +idotless 0x17 shift altgr
  57 +oslash 0x18 altgr
  58 +Ooblique 0x18 shift altgr
  59 +thorn 0x19 altgr
  60 +THORN 0x19 shift altgr
  61 +udiaeresis 0x1a
  62 +Udiaeresis 0x1a shift
  63 +dead_diaeresis 0x1a altgr
  64 +dead_abovering 0x1a shift altgr
  65 +plus 0x1b
  66 +asterisk 0x1b shift
  67 +asciitilde 0x1b altgr
  68 +dead_tilde 0x1b altgr
  69 +dead_macron 0x1b shift altgr
  70 +ae 0x1e altgr
  71 +AE 0x1e shift altgr
  72 +eth 0x20 altgr
  73 +ETH 0x20 shift altgr
  74 +dstroke 0x21 altgr
  75 +ordfeminine 0x21 shift altgr
  76 +eng 0x22 altgr
  77 +ENG 0x22 shift altgr
  78 +hstroke 0x23 altgr
  79 +Hstroke 0x23 shift altgr
  80 +kra 0x25 altgr
  81 +odiaeresis 0x27
  82 +Odiaeresis 0x27 shift
  83 +dead_doubleacute 0x27 altgr
  84 +adiaeresis 0x28
  85 +Adiaeresis 0x28 shift
  86 +dead_caron 0x28 shift altgr
  87 +asciicircum 0x29
  88 +dead_circumflex 0x29
  89 +degree 0x29 shift
  90 +notsign 0x29 altgr
  91 +numbersign 0x2b
  92 +apostrophe 0x2b shift
  93 +dead_breve 0x2b shift altgr
  94 +y 0x2c addupper
  95 +guillemotleft 0x2c altgr
  96 +guillemotright 0x2d altgr
  97 +cent 0x2e altgr
  98 +copyright 0x2e shift altgr
  99 +leftdoublequotemark 0x2f altgr
  100 +rightdoublequotemark 0x30 altgr
  101 +mu 0x32 altgr
  102 +masculine 0x32 shift altgr
  103 +comma 0x33
  104 +semicolon 0x33 shift
  105 +horizconnector 0x33 altgr
  106 +multiply 0x33 shift altgr
  107 +period 0x34
  108 +colon 0x34 shift
  109 +periodcentered 0x34 altgr
  110 +division 0x34 shift altgr
  111 +minus 0x35
  112 +underscore 0x35 shift
  113 +dead_belowdot 0x35 altgr
  114 +dead_abovedot 0x35 shift altgr
... ...
keymaps/hr 0 → 100644
  1 +# generated from XKB map hr
  2 +include common
  3 +map 0x41a
  4 +exclam 0x02 shift
  5 +asciitilde 0x02 altgr
  6 +dead_tilde 0x02 shift altgr
  7 +quotedbl 0x03 shift
  8 +dead_caron 0x03 altgr
  9 +caron 0x03 shift altgr
  10 +numbersign 0x04 shift
  11 +asciicircum 0x04 altgr
  12 +dead_circumflex 0x04 shift altgr
  13 +dollar 0x05 shift
  14 +dead_breve 0x05 altgr
  15 +breve 0x05 shift altgr
  16 +percent 0x06 shift
  17 +degree 0x06 altgr
  18 +dead_abovering 0x06 shift altgr
  19 +ampersand 0x07 shift
  20 +dead_ogonek 0x07 altgr
  21 +ogonek 0x07 shift altgr
  22 +slash 0x08 shift
  23 +grave 0x08 altgr
  24 +dead_grave 0x08 shift altgr
  25 +parenleft 0x09 shift
  26 +dead_abovedot 0x09 altgr
  27 +abovedot 0x09 shift altgr
  28 +parenright 0x0a shift
  29 +dead_acute 0x0a altgr
  30 +apostrophe 0x0a shift altgr
  31 +equal 0x0b shift
  32 +dead_doubleacute 0x0b altgr
  33 +doubleacute 0x0b shift altgr
  34 +apostrophe 0x0c
  35 +question 0x0c shift
  36 +dead_diaeresis 0x0c altgr
  37 +diaeresis 0x0c shift altgr
  38 +plus 0x0d
  39 +asterisk 0x0d shift
  40 +dead_cedilla 0x0d altgr
  41 +cedilla 0x0d shift altgr
  42 +backslash 0x10 altgr
  43 +Greek_OMEGA 0x10 shift altgr
  44 +bar 0x11 altgr
  45 +Lstroke 0x11 shift altgr
  46 +EuroSign 0x12 altgr
  47 +paragraph 0x13 altgr
  48 +registered 0x13 shift altgr
  49 +tslash 0x14 altgr
  50 +Tslash 0x14 shift altgr
  51 +z 0x15 addupper
  52 +leftarrow 0x15 altgr
  53 +yen 0x15 shift altgr
  54 +downarrow 0x16 altgr
  55 +uparrow 0x16 shift altgr
  56 +rightarrow 0x17 altgr
  57 +idotless 0x17 shift altgr
  58 +oslash 0x18 altgr
  59 +Ooblique 0x18 shift altgr
  60 +thorn 0x19 altgr
  61 +THORN 0x19 shift altgr
  62 +scaron 0x1a
  63 +Scaron 0x1a shift
  64 +division 0x1a altgr
  65 +dead_abovering 0x1a shift altgr
  66 +dstroke 0x1b
  67 +Dstroke 0x1b shift
  68 +multiply 0x1b altgr
  69 +dead_macron 0x1b shift altgr
  70 +ae 0x1e altgr
  71 +AE 0x1e shift altgr
  72 +ssharp 0x1f altgr
  73 +section 0x1f shift altgr
  74 +eth 0x20 altgr
  75 +ETH 0x20 shift altgr
  76 +bracketleft 0x21 altgr
  77 +ordfeminine 0x21 shift altgr
  78 +bracketright 0x22 altgr
  79 +ENG 0x22 shift altgr
  80 +hstroke 0x23 altgr
  81 +Hstroke 0x23 shift altgr
  82 +lstroke 0x25 altgr
  83 +ampersand 0x25 shift altgr
  84 +Lstroke 0x26 altgr
  85 +ccaron 0x27
  86 +Ccaron 0x27 shift
  87 +dead_acute 0x27 altgr
  88 +dead_doubleacute 0x27 shift altgr
  89 +cacute 0x28
  90 +Cacute 0x28 shift
  91 +ssharp 0x28 altgr
  92 +dead_caron 0x28 shift altgr
  93 +dead_cedilla 0x29
  94 +dead_diaeresis 0x29 shift
  95 +notsign 0x29 altgr
  96 +zcaron 0x2b
  97 +Zcaron 0x2b shift
  98 +currency 0x2b altgr
  99 +dead_breve 0x2b shift altgr
  100 +y 0x2c addupper
  101 +guillemotleft 0x2c altgr
  102 +less 0x2c shift altgr
  103 +guillemotright 0x2d altgr
  104 +greater 0x2d shift altgr
  105 +cent 0x2e altgr
  106 +copyright 0x2e shift altgr
  107 +at 0x2f altgr
  108 +grave 0x2f shift altgr
  109 +braceleft 0x30 altgr
  110 +apostrophe 0x30 shift altgr
  111 +braceright 0x31 altgr
  112 +section 0x32 altgr
  113 +masculine 0x32 shift altgr
  114 +comma 0x33
  115 +semicolon 0x33 shift
  116 +horizconnector 0x33 altgr
  117 +multiply 0x33 shift altgr
  118 +period 0x34
  119 +colon 0x34 shift
  120 +periodcentered 0x34 altgr
  121 +division 0x34 shift altgr
  122 +minus 0x35
  123 +underscore 0x35 shift
  124 +dead_belowdot 0x35 altgr
  125 +dead_abovedot 0x35 shift altgr
... ...
keymaps/hu 0 → 100644
  1 +# Hungarian keyboard layout (QWERTZ)
  2 +# Created by: The NeverGone <never@delfin.klte.hu>
  3 +
  4 +include common
  5 +map 0x40e
  6 +
  7 +
  8 +# AltGr keys:
  9 +notsign 0x29 altgr
  10 +asciitilde 0x02 altgr
  11 +caron 0x03 altgr
  12 +asciicircum 0x04 altgr
  13 +breve 0x05 altgr
  14 +degree 0x06 altgr
  15 +ogonek 0x07 altgr
  16 +grave 0x08 altgr
  17 +abovedot 0x09 altgr
  18 +acute 0x0a altgr
  19 +doubleacute 0x0b altgr
  20 +diaeresis 0x0c altgr
  21 +cedilla 0x0d altgr
  22 +backslash 0x10 altgr
  23 +bar 0x11 altgr
  24 +EuroSign 0x12 altgr
  25 +Iacute 0x17 altgr
  26 +division 0x1a altgr
  27 +multiply 0x1b altgr
  28 +dstroke 0x1f altgr
  29 +Dstroke 0x20 altgr
  30 +bracketleft 0x21 altgr
  31 +bracketright 0x22 altgr
  32 +iacute 0x24 altgr
  33 +lstroke 0x25 altgr
  34 +Lstroke 0x26 altgr
  35 +dollar 0x27 altgr
  36 +ssharp 0x28 altgr
  37 +currency 0x2b altgr
  38 +less 0x56 altgr
  39 +greater 0x2c altgr
  40 +numbersign 0x2d altgr
  41 +ampersand 0x2e altgr
  42 +at 0x2f altgr
  43 +braceleft 0x30 altgr
  44 +braceright 0x31 altgr
  45 +semicolon 0x33 altgr
  46 +asterisk 0x35 altgr
  47 +
  48 +
  49 +# Shift keys:
  50 +section 0x29 shift
  51 +apostrophe 0x02 shift
  52 +quotedbl 0x03 shift
  53 +plus 0x04 shift
  54 +exclam 0x05 shift
  55 +percent 0x06 shift
  56 +slash 0x07 shift
  57 +equal 0x08 shift
  58 +parenleft 0x09 shift
  59 +parenright 0x0a shift
  60 +Odiaeresis 0x0b shift
  61 +Udiaeresis 0x0c shift
  62 +Oacute 0x0d shift
  63 +Z 0x15 shift
  64 +Odoubleacute 0x1a shift
  65 +Uacute 0x1b shift
  66 +Eacute 0x27 shift
  67 +Aacute 0x28 shift
  68 +Udoubleacute 0x2b shift
  69 +Y 0x2c shift
  70 +question 0x33 shift
  71 +colon 0x34 shift
  72 +underscore 0x35 shift
  73 +F13 0x3b shift
  74 +F14 0x3c shift
  75 +F15 0x3d shift
  76 +F16 0x3e shift
  77 +F17 0x3f shift
  78 +F18 0x40 shift
  79 +F19 0x41 shift
  80 +F20 0x42 shift
  81 +F21 0x43 shift
  82 +F22 0x44 shift
  83 +F23 0x57 shift
  84 +F24 0x58 shift
  85 +
  86 +
  87 +# Ctrl keys:
  88 +F25 0x3b ctrl
  89 +F26 0x3c ctrl
  90 +F27 0x3d ctrl
  91 +F28 0x3e ctrl
  92 +F29 0x3f ctrl
  93 +F30 0x40 ctrl
  94 +F31 0x41 ctrl
  95 +F32 0x42 ctrl
  96 +F33 0x43 ctrl
  97 +F34 0x44 ctrl
  98 +F35 0x57 ctrl
  99 +#NoSymbol 0x58 ctrl
  100 +
  101 +
  102 +0 0x29
  103 +odiaeresis 0x0b
  104 +udiaeresis 0x0c
  105 +oacute 0x0d
  106 +z 0x15
  107 +odoubleacute 0x1a
  108 +uacute 0x1b
  109 +eacute 0x27
  110 +aacute 0x28
  111 +udoubleacute 0x2b
  112 +y 0x2c
  113 +comma 0x33
  114 +period 0x34
  115 +minus 0x35
... ...
keymaps/is 0 → 100644
  1 +# 2004-03-16 Halldór Guðmundsson and Morten Lange
  2 +# Keyboard definition file for the Icelandic keyboard
  3 +# to be used in rdesktop 1.3.x ( See rdesktop.org)
  4 +# generated from XKB map de, and changed manually
  5 +# Location for example /usr/local/share/rdesktop/keymaps/is
  6 +include common
  7 +map 0x40f
  8 +exclam 0x02 shift
  9 +onesuperior 0x02 altgr
  10 +exclamdown 0x02 shift altgr
  11 +quotedbl 0x03 shift
  12 +twosuperior 0x03 altgr
  13 +oneeighth 0x03 shift altgr
  14 +#section 0x04 shift
  15 +numbersign 0x04 shift
  16 +threesuperior 0x04 altgr
  17 +sterling 0x04 shift altgr
  18 +dollar 0x05 shift
  19 +onequarter 0x05 altgr
  20 +currency 0x05 shift altgr
  21 +percent 0x06 shift
  22 +onehalf 0x06 altgr
  23 +threeeighths 0x06 shift altgr
  24 +ampersand 0x07 shift
  25 +threequarters 0x07 altgr
  26 +fiveeighths 0x07 shift altgr
  27 +slash 0x08 shift
  28 +braceleft 0x08 altgr
  29 +seveneighths 0x08 shift altgr
  30 +parenleft 0x09 shift
  31 +bracketleft 0x09 altgr
  32 +trademark 0x09 shift altgr
  33 +parenright 0x0a shift
  34 +bracketright 0x0a altgr
  35 +plusminus 0x0a shift altgr
  36 +equal 0x0b shift
  37 +braceright 0x0b altgr
  38 +#ssharp 0x0c
  39 +odiaeresis 0x0c
  40 +#question 0x0c shift
  41 +Odiaeresis 0x0c shift
  42 +backslash 0x0c altgr
  43 +questiondown 0x0c shift altgr
  44 +#acute 0x0d
  45 +minus 0x0d
  46 +#dead_acute 0x0d
  47 +#grave 0x0d shift
  48 +#dead_grave 0x0d shift
  49 +underscore 0x0d shift
  50 +dead_cedilla 0x0d altgr
  51 +dead_ogonek 0x0d shift altgr
  52 +at 0x10 altgr
  53 +Greek_OMEGA 0x10 shift altgr
  54 +EuroSign 0x12 altgr
  55 +paragraph 0x13 altgr
  56 +registered 0x13 shift altgr
  57 +tslash 0x14 altgr
  58 +Tslash 0x14 shift altgr
  59 +#z 0x15 addupper
  60 +leftarrow 0x15 altgr
  61 +yen 0x15 shift altgr
  62 +downarrow 0x16 altgr
  63 +uparrow 0x16 shift altgr
  64 +rightarrow 0x17 altgr
  65 +idotless 0x17 shift altgr
  66 +oslash 0x18 altgr
  67 +Ooblique 0x18 shift altgr
  68 +#thorn 0x19 altgr
  69 +#THORN 0x19 shift altgr
  70 +#udiaeresis 0x1a
  71 +#Udiaeresis 0x1a shift
  72 +#dead_diaeresis 0x1a altgr
  73 +#dead_abovering 0x1a shift altgr
  74 +eth 0x1a
  75 +ETH 0x1a shift
  76 +apostrophe 0x1b
  77 +question 0x1b shift
  78 +#plus 0x1b
  79 +#asterisk 0x1b shift
  80 +asciitilde 0x1b altgr
  81 +#grave 0x1b altgr
  82 +#dead_tilde 0x1b altgr
  83 +#dead_macron 0x1b shift altgr
  84 +#ae 0x1e altgr
  85 +#AE 0x1e shift altgr
  86 +#eth 0x20 altgr
  87 +#eth 0x20
  88 +#ETH 0x20 shift altgr
  89 +#ETH 0x20 shift
  90 +dstroke 0x21 altgr
  91 +ordfeminine 0x21 shift altgr
  92 +eng 0x22 altgr
  93 +ENG 0x22 shift altgr
  94 +hstroke 0x23 altgr
  95 +Hstroke 0x23 shift altgr
  96 +kra 0x25 altgr
  97 +#adiaeresis 0x27
  98 +#Adiaeresis 0x27 shift
  99 +ae 0x27
  100 +AE 0x27 shift
  101 +dead_doubleacute 0x27 altgr
  102 +#adiaeresis 0x28
  103 +#Adiaeresis 0x28 shift
  104 +#dead_caron 0x28 shift altgr
  105 +#asciicircum 0x29
  106 +acute 0x28
  107 +dead_acute 0x28
  108 +#dead_circumflex 0x29
  109 +#degree 0x29 shift
  110 +#notsign 0x29 altgr
  111 +plus 0x2b
  112 +asterisk 0x2b shift
  113 +grave 0x2b altgr
  114 +#numbersign 0x2b
  115 +#apostrophe 0x2b shift
  116 +#dead_breve 0x2b shift altgr
  117 +#y 0x2c addupper
  118 +guillemotleft 0x2c altgr
  119 +guillemotright 0x2d altgr
  120 +cent 0x2e altgr
  121 +copyright 0x2e shift altgr
  122 +leftdoublequotemark 0x2f altgr
  123 +rightdoublequotemark 0x30 altgr
  124 +mu 0x32 altgr
  125 +masculine 0x32 shift altgr
  126 +comma 0x33
  127 +semicolon 0x33 shift
  128 +horizconnector 0x33 altgr
  129 +multiply 0x33 shift altgr
  130 +period 0x34
  131 +colon 0x34 shift
  132 +periodcentered 0x34 altgr
  133 +division 0x34 shift altgr
  134 +#minus 0x35
  135 +#underscore 0x35 shift
  136 +thorn 0x35
  137 +THORN 0x35 shift
  138 +dead_belowdot 0x35 altgr
  139 +dead_abovedot 0x35 shift altgr
  140 +
... ...
keymaps/it 0 → 100644
  1 +# generated from XKB map it
  2 +include common
  3 +map 0x410
  4 +exclam 0x02 shift
  5 +onesuperior 0x02 altgr
  6 +exclamdown 0x02 shift altgr
  7 +quotedbl 0x03 shift
  8 +twosuperior 0x03 altgr
  9 +oneeighth 0x03 shift altgr
  10 +sterling 0x04 shift
  11 +threesuperior 0x04 altgr
  12 +dollar 0x05 shift
  13 +onequarter 0x05 altgr
  14 +percent 0x06 shift
  15 +onehalf 0x06 altgr
  16 +threeeighths 0x06 shift altgr
  17 +ampersand 0x07 shift
  18 +threequarters 0x07 altgr
  19 +fiveeighths 0x07 shift altgr
  20 +slash 0x08 shift
  21 +braceleft 0x08 altgr
  22 +seveneighths 0x08 shift altgr
  23 +parenleft 0x09 shift
  24 +trademark 0x09 shift altgr
  25 +parenright 0x0a shift
  26 +plusminus 0x0a shift altgr
  27 +equal 0x0b shift
  28 +braceright 0x0b altgr
  29 +degree 0x0b shift altgr
  30 +apostrophe 0x0c
  31 +question 0x0c shift
  32 +grave 0x0c altgr
  33 +questiondown 0x0c shift altgr
  34 +igrave 0x0d
  35 +asciicircum 0x0d shift
  36 +asciitilde 0x0d altgr
  37 +dead_ogonek 0x0d shift altgr
  38 +at 0x10 altgr
  39 +Greek_OMEGA 0x10 shift altgr
  40 +lstroke 0x11 altgr
  41 +Lstroke 0x11 shift altgr
  42 +EuroSign 0x12 altgr
  43 +cent 0x12 shift altgr
  44 +paragraph 0x13 altgr
  45 +registered 0x13 shift altgr
  46 +tslash 0x14 altgr
  47 +Tslash 0x14 shift altgr
  48 +leftarrow 0x15 altgr
  49 +yen 0x15 shift altgr
  50 +downarrow 0x16 altgr
  51 +uparrow 0x16 shift altgr
  52 +rightarrow 0x17 altgr
  53 +idotless 0x17 shift altgr
  54 +oslash 0x18 altgr
  55 +Ooblique 0x18 shift altgr
  56 +thorn 0x19 altgr
  57 +THORN 0x19 shift altgr
  58 +egrave 0x1a
  59 +eacute 0x1a shift
  60 +bracketleft 0x1a altgr
  61 +dead_abovering 0x1a shift altgr
  62 +plus 0x1b
  63 +asterisk 0x1b shift
  64 +bracketright 0x1b altgr
  65 +dead_macron 0x1b shift altgr
  66 +ae 0x1e altgr
  67 +AE 0x1e shift altgr
  68 +ssharp 0x1f altgr
  69 +section 0x1f shift altgr
  70 +eth 0x20 altgr
  71 +ETH 0x20 shift altgr
  72 +dstroke 0x21 altgr
  73 +ordfeminine 0x21 shift altgr
  74 +eng 0x22 altgr
  75 +ENG 0x22 shift altgr
  76 +hstroke 0x23 altgr
  77 +Hstroke 0x23 shift altgr
  78 +kra 0x25 altgr
  79 +lstroke 0x26 altgr
  80 +Lstroke 0x26 shift altgr
  81 +ograve 0x27
  82 +ccedilla 0x27 shift
  83 +at 0x27 altgr
  84 +dead_doubleacute 0x27 shift altgr
  85 +agrave 0x28
  86 +degree 0x28 shift
  87 +numbersign 0x28 altgr
  88 +backslash 0x29
  89 +bar 0x29 shift
  90 +notsign 0x29 altgr
  91 +ugrave 0x2b
  92 +section 0x2b shift
  93 +dead_grave 0x2b altgr
  94 +dead_breve 0x2b shift altgr
  95 +guillemotleft 0x2c altgr
  96 +guillemotright 0x2d altgr
  97 +cent 0x2e altgr
  98 +copyright 0x2e shift altgr
  99 +leftdoublequotemark 0x2f altgr
  100 +grave 0x2f shift altgr
  101 +rightdoublequotemark 0x30 altgr
  102 +mu 0x32 altgr
  103 +masculine 0x32 shift altgr
  104 +comma 0x33
  105 +semicolon 0x33 shift
  106 +horizconnector 0x33 altgr
  107 +multiply 0x33 shift altgr
  108 +period 0x34
  109 +colon 0x34 shift
  110 +periodcentered 0x34 altgr
  111 +division 0x34 shift altgr
  112 +minus 0x35
  113 +underscore 0x35 shift
  114 +dead_belowdot 0x35 altgr
  115 +dead_abovedot 0x35 shift altgr
... ...
keymaps/ja 0 → 100644
  1 +# generated from XKB map jp106
  2 +include common
  3 +map 0x411
  4 +exclam 0x02 shift
  5 +kana_NU 0x02 altgr
  6 +quotedbl 0x03 shift
  7 +kana_FU 0x03 altgr
  8 +numbersign 0x04 shift
  9 +kana_A 0x04 altgr
  10 +kana_a 0x04 shift altgr
  11 +dollar 0x05 shift
  12 +kana_U 0x05 altgr
  13 +kana_u 0x05 shift altgr
  14 +percent 0x06 shift
  15 +kana_E 0x06 altgr
  16 +kana_e 0x06 shift altgr
  17 +ampersand 0x07 shift
  18 +kana_O 0x07 altgr
  19 +kana_o 0x07 shift altgr
  20 +apostrophe 0x08 shift
  21 +kana_YA 0x08 altgr
  22 +kana_ya 0x08 shift altgr
  23 +parenleft 0x09 shift
  24 +kana_YU 0x09 altgr
  25 +kana_yu 0x09 shift altgr
  26 +parenright 0x0a shift
  27 +kana_YO 0x0a altgr
  28 +kana_yo 0x0a shift altgr
  29 +asciitilde 0x0b shift
  30 +kana_WA 0x0b altgr
  31 +kana_WO 0x0b shift altgr
  32 +minus 0x0c
  33 +equal 0x0c shift
  34 +kana_HO 0x0c altgr
  35 +asciicircum 0x0d
  36 +asciitilde 0x0d shift
  37 +kana_HE 0x0d altgr
  38 +kana_TA 0x10 altgr
  39 +kana_TE 0x11 altgr
  40 +kana_I 0x12 altgr
  41 +kana_i 0x12 shift altgr
  42 +kana_SU 0x13 altgr
  43 +kana_KA 0x14 altgr
  44 +kana_N 0x15 altgr
  45 +kana_NA 0x16 altgr
  46 +kana_NI 0x17 altgr
  47 +kana_RA 0x18 altgr
  48 +kana_SE 0x19 altgr
  49 +at 0x1a
  50 +grave 0x1a shift
  51 +voicedsound 0x1a altgr
  52 +bracketleft 0x1b
  53 +braceleft 0x1b shift
  54 +semivoicedsound 0x1b altgr
  55 +kana_openingbracket 0x1b shift altgr
  56 +kana_CHI 0x1e altgr
  57 +kana_TO 0x1f altgr
  58 +kana_SHI 0x20 altgr
  59 +kana_HA 0x21 altgr
  60 +kana_KI 0x22 altgr
  61 +kana_KU 0x23 altgr
  62 +kana_MA 0x24 altgr
  63 +kana_NO 0x25 altgr
  64 +kana_RI 0x26 altgr
  65 +semicolon 0x27
  66 +plus 0x27 shift
  67 +kana_RE 0x27 altgr
  68 +colon 0x28
  69 +asterisk 0x28 shift
  70 +kana_KE 0x28 altgr
  71 +Zenkaku_Hankaku 0x29
  72 +bracketright 0x2b
  73 +braceright 0x2b shift
  74 +kana_MU 0x2b altgr
  75 +kana_closingbracket 0x2b shift altgr
  76 +kana_TSU 0x2c altgr
  77 +kana_tsu 0x2c shift altgr
  78 +kana_SA 0x2d altgr
  79 +kana_SO 0x2e altgr
  80 +kana_HI 0x2f altgr
  81 +kana_KO 0x30 altgr
  82 +kana_MI 0x31 altgr
  83 +kana_MO 0x32 altgr
  84 +comma 0x33
  85 +less 0x33 shift
  86 +kana_NE 0x33 altgr
  87 +kana_comma 0x33 shift altgr
  88 +period 0x34
  89 +greater 0x34 shift
  90 +kana_RU 0x34 altgr
  91 +kana_fullstop 0x34 shift altgr
  92 +slash 0x35
  93 +question 0x35 shift
  94 +kana_ME 0x35 altgr
  95 +kana_conjunctive 0x35 shift altgr
  96 +Eisu_toggle 0x3a shift
  97 +Execute 0x54 shift
  98 +Kanji 0x70
  99 +backslash 0x73
  100 +bar 0x7d shift
  101 +underscore 0x73 shift
  102 +Henkan_Mode 0x79
  103 +Katakana 0x70
  104 +Muhenkan 0x7b
... ...
keymaps/lt 0 → 100644
  1 +# generated from XKB map lt
  2 +include common
  3 +map 0x427
  4 +exclam 0x02 shift
  5 +aogonek 0x02 altgr
  6 +Aogonek 0x02 shift altgr
  7 +at 0x03 shift
  8 +ccaron 0x03 altgr
  9 +Ccaron 0x03 shift altgr
  10 +numbersign 0x04 shift
  11 +eogonek 0x04 altgr
  12 +Eogonek 0x04 shift altgr
  13 +dollar 0x05 shift
  14 +eabovedot 0x05 altgr
  15 +Eabovedot 0x05 shift altgr
  16 +percent 0x06 shift
  17 +iogonek 0x06 altgr
  18 +Iogonek 0x06 shift altgr
  19 +asciicircum 0x07 shift
  20 +scaron 0x07 altgr
  21 +Scaron 0x07 shift altgr
  22 +ampersand 0x08 shift
  23 +uogonek 0x08 altgr
  24 +Uogonek 0x08 shift altgr
  25 +asterisk 0x09 shift
  26 +umacron 0x09 altgr
  27 +Umacron 0x09 shift altgr
  28 +parenleft 0x0a shift
  29 +doublelowquotemark 0x0a altgr
  30 +parenright 0x0b shift
  31 +leftdoublequotemark 0x0b altgr
  32 +minus 0x0c
  33 +underscore 0x0c shift
  34 +equal 0x0d
  35 +plus 0x0d shift
  36 +zcaron 0x0d altgr
  37 +Zcaron 0x0d shift altgr
  38 +bracketleft 0x1a
  39 +braceleft 0x1a shift
  40 +bracketright 0x1b
  41 +braceright 0x1b shift
  42 +semicolon 0x27
  43 +colon 0x27 shift
  44 +apostrophe 0x28
  45 +quotedbl 0x28 shift
  46 +grave 0x29
  47 +asciitilde 0x29 shift
  48 +backslash 0x2b
  49 +bar 0x2b shift
  50 +comma 0x33
  51 +less 0x33 shift
  52 +period 0x34
  53 +greater 0x34 shift
  54 +slash 0x35
  55 +question 0x35 shift
  56 +endash 0x56
  57 +EuroSign 0x56 shift
... ...
keymaps/lv 0 → 100644
  1 +# generated from XKB map lv
  2 +include common
  3 +map 0x426
  4 +exclam 0x02 shift
  5 +onesuperior 0x02 altgr
  6 +exclamdown 0x02 shift altgr
  7 +at 0x03 shift
  8 +twosuperior 0x03 altgr
  9 +oneeighth 0x03 shift altgr
  10 +numbersign 0x04 shift
  11 +threesuperior 0x04 altgr
  12 +sterling 0x04 shift altgr
  13 +dollar 0x05 shift
  14 +EuroSign 0x05 altgr
  15 +cent 0x05 shift altgr
  16 +percent 0x06 shift
  17 +onehalf 0x06 altgr
  18 +threeeighths 0x06 shift altgr
  19 +asciicircum 0x07 shift
  20 +threequarters 0x07 altgr
  21 +fiveeighths 0x07 shift altgr
  22 +ampersand 0x08 shift
  23 +braceleft 0x08 altgr
  24 +seveneighths 0x08 shift altgr
  25 +asterisk 0x09 shift
  26 +bracketleft 0x09 altgr
  27 +trademark 0x09 shift altgr
  28 +parenleft 0x0a shift
  29 +bracketright 0x0a altgr
  30 +plusminus 0x0a shift altgr
  31 +parenright 0x0b shift
  32 +braceright 0x0b altgr
  33 +degree 0x0b shift altgr
  34 +minus 0x0c
  35 +underscore 0x0c shift
  36 +backslash 0x0c altgr
  37 +questiondown 0x0c shift altgr
  38 +equal 0x0d
  39 +plus 0x0d shift
  40 +dead_cedilla 0x0d altgr
  41 +dead_ogonek 0x0d shift altgr
  42 +at 0x10 altgr
  43 +Greek_OMEGA 0x10 shift altgr
  44 +lstroke 0x11 altgr
  45 +Lstroke 0x11 shift altgr
  46 +emacron 0x12 altgr
  47 +Emacron 0x12 shift altgr
  48 +rcedilla 0x13 altgr
  49 +Rcedilla 0x13 shift altgr
  50 +tslash 0x14 altgr
  51 +Tslash 0x14 shift altgr
  52 +leftarrow 0x15 altgr
  53 +yen 0x15 shift altgr
  54 +umacron 0x16 altgr
  55 +Umacron 0x16 shift altgr
  56 +imacron 0x17 altgr
  57 +Imacron 0x17 shift altgr
  58 +omacron 0x18 altgr
  59 +Omacron 0x18 shift altgr
  60 +thorn 0x19 altgr
  61 +THORN 0x19 shift altgr
  62 +bracketleft 0x1a
  63 +braceleft 0x1a shift
  64 +dead_diaeresis 0x1a altgr
  65 +dead_abovering 0x1a shift altgr
  66 +bracketright 0x1b
  67 +braceright 0x1b shift
  68 +dead_tilde 0x1b altgr
  69 +dead_macron 0x1b shift altgr
  70 +ISO_Next_Group 0x1c shift
  71 +amacron 0x1e altgr
  72 +Amacron 0x1e shift altgr
  73 +scaron 0x1f altgr
  74 +Scaron 0x1f shift altgr
  75 +eth 0x20 altgr
  76 +ETH 0x20 shift altgr
  77 +dstroke 0x21 altgr
  78 +ordfeminine 0x21 shift altgr
  79 +gcedilla 0x22 altgr
  80 +Gcedilla 0x22 shift altgr
  81 +hstroke 0x23 altgr
  82 +Hstroke 0x23 shift altgr
  83 +kcedilla 0x25 altgr
  84 +Kcedilla 0x25 shift altgr
  85 +lcedilla 0x26 altgr
  86 +Lcedilla 0x26 shift altgr
  87 +semicolon 0x27
  88 +colon 0x27 shift
  89 +dead_acute 0x27 altgr
  90 +dead_doubleacute 0x27 shift altgr
  91 +apostrophe 0x28
  92 +quotedbl 0x28 shift
  93 +leftdoublequotemark 0x28 altgr
  94 +doublelowquotemark 0x28 shift altgr
  95 +grave 0x29
  96 +asciitilde 0x29 shift
  97 +notsign 0x29 altgr
  98 +backslash 0x2b
  99 +bar 0x2b shift
  100 +dead_grave 0x2b altgr
  101 +dead_breve 0x2b shift altgr
  102 +zcaron 0x2c altgr
  103 +Zcaron 0x2c shift altgr
  104 +guillemotright 0x2d altgr
  105 +greater 0x2d shift altgr
  106 +ccaron 0x2e altgr
  107 +Ccaron 0x2e shift altgr
  108 +leftdoublequotemark 0x2f altgr
  109 +grave 0x2f shift altgr
  110 +rightdoublequotemark 0x30 altgr
  111 +apostrophe 0x30 shift altgr
  112 +ncedilla 0x31 altgr
  113 +Ncedilla 0x31 shift altgr
  114 +mu 0x32 altgr
  115 +masculine 0x32 shift altgr
  116 +comma 0x33
  117 +less 0x33 shift
  118 +horizconnector 0x33 altgr
  119 +multiply 0x33 shift altgr
  120 +period 0x34
  121 +greater 0x34 shift
  122 +periodcentered 0x34 altgr
  123 +division 0x34 shift altgr
  124 +slash 0x35
  125 +question 0x35 shift
  126 +dead_belowdot 0x35 altgr
  127 +dead_abovedot 0x35 shift altgr
  128 +nobreakspace 0x39 altgr
... ...
keymaps/mk 0 → 100644
  1 +# generated from XKB map mk
  2 +include common
  3 +map 0x42f
  4 +exclam 0x02 shift
  5 +at 0x03 shift
  6 +doublelowquotemark 0x03 shift altgr
  7 +numbersign 0x04 shift
  8 +leftdoublequotemark 0x04 shift altgr
  9 +dollar 0x05 shift
  10 +percent 0x06 shift
  11 +asciicircum 0x07 shift
  12 +ampersand 0x08 shift
  13 +asterisk 0x09 shift
  14 +parenleft 0x0a shift
  15 +parenright 0x0b shift
  16 +minus 0x0c
  17 +underscore 0x0c shift
  18 +equal 0x0d
  19 +plus 0x0d shift
  20 +Cyrillic_lje 0x10 altgr
  21 +Cyrillic_LJE 0x10 shift altgr
  22 +Cyrillic_nje 0x11 altgr
  23 +Cyrillic_NJE 0x11 shift altgr
  24 +Cyrillic_ie 0x12 altgr
  25 +Cyrillic_IE 0x12 shift altgr
  26 +Cyrillic_er 0x13 altgr
  27 +Cyrillic_ER 0x13 shift altgr
  28 +Cyrillic_te 0x14 altgr
  29 +Cyrillic_TE 0x14 shift altgr
  30 +Macedonia_dse 0x15 altgr
  31 +Macedonia_DSE 0x15 shift altgr
  32 +Cyrillic_u 0x16 altgr
  33 +Cyrillic_U 0x16 shift altgr
  34 +Cyrillic_i 0x17 altgr
  35 +Cyrillic_I 0x17 shift altgr
  36 +Cyrillic_o 0x18 altgr
  37 +Cyrillic_O 0x18 shift altgr
  38 +Cyrillic_pe 0x19 altgr
  39 +Cyrillic_PE 0x19 shift altgr
  40 +bracketleft 0x1a
  41 +braceleft 0x1a shift
  42 +Cyrillic_sha 0x1a altgr
  43 +Cyrillic_SHA 0x1a shift altgr
  44 +bracketright 0x1b
  45 +braceright 0x1b shift
  46 +Macedonia_gje 0x1b altgr
  47 +Macedonia_GJE 0x1b shift altgr
  48 +Cyrillic_a 0x1e altgr
  49 +Cyrillic_A 0x1e shift altgr
  50 +Cyrillic_es 0x1f altgr
  51 +Cyrillic_ES 0x1f shift altgr
  52 +Cyrillic_de 0x20 altgr
  53 +Cyrillic_DE 0x20 shift altgr
  54 +Cyrillic_ef 0x21 altgr
  55 +Cyrillic_EF 0x21 shift altgr
  56 +Cyrillic_ghe 0x22 altgr
  57 +Cyrillic_GHE 0x22 shift altgr
  58 +Cyrillic_ha 0x23 altgr
  59 +Cyrillic_HA 0x23 shift altgr
  60 +Cyrillic_je 0x24 altgr
  61 +Cyrillic_JE 0x24 shift altgr
  62 +Cyrillic_ka 0x25 altgr
  63 +Cyrillic_KA 0x25 shift altgr
  64 +Cyrillic_el 0x26 altgr
  65 +Cyrillic_EL 0x26 shift altgr
  66 +semicolon 0x27
  67 +colon 0x27 shift
  68 +Cyrillic_che 0x27 altgr
  69 +Cyrillic_CHE 0x27 shift altgr
  70 +apostrophe 0x28
  71 +quotedbl 0x28 shift
  72 +Macedonia_kje 0x28 altgr
  73 +Macedonia_KJE 0x28 shift altgr
  74 +grave 0x29
  75 +asciitilde 0x29 shift
  76 +backslash 0x2b
  77 +bar 0x2b shift
  78 +Cyrillic_zhe 0x2b altgr
  79 +Cyrillic_ZHE 0x2b shift altgr
  80 +Cyrillic_ze 0x2c altgr
  81 +Cyrillic_ZE 0x2c shift altgr
  82 +Cyrillic_dzhe 0x2d altgr
  83 +Cyrillic_DZHE 0x2d shift altgr
  84 +Cyrillic_tse 0x2e altgr
  85 +Cyrillic_TSE 0x2e shift altgr
  86 +Cyrillic_ve 0x2f altgr
  87 +Cyrillic_VE 0x2f shift altgr
  88 +Cyrillic_be 0x30 altgr
  89 +Cyrillic_BE 0x30 shift altgr
  90 +Cyrillic_en 0x31 altgr
  91 +Cyrillic_EN 0x31 shift altgr
  92 +Cyrillic_em 0x32 altgr
  93 +Cyrillic_EM 0x32 shift altgr
  94 +comma 0x33
  95 +less 0x33 shift
  96 +semicolon 0x33 shift altgr
  97 +period 0x34
  98 +greater 0x34 shift
  99 +colon 0x34 shift altgr
  100 +slash 0x35
  101 +question 0x35 shift
... ...
keymaps/modifiers 0 → 100644
  1 +Shift_R 0x36
  2 +Shift_L 0x2a
  3 +
  4 +Alt_R 0xb8
  5 +Mode_switch 0xb8
  6 +Alt_L 0x38
  7 +
  8 +Control_R 0x9d
  9 +Control_L 0x1d
  10 +
  11 +# Translate Meta, Super and Hyper to Windows keys.
  12 +# This is hardcoded. See documentation for details.
  13 +
  14 +# Translate Menu to the Windows Application key.
  15 +# This one does not work either.
  16 +Menu 0xdd
... ...
keymaps/nl 0 → 100644
  1 +# Dutch (Netherlands)
  2 +include common
  3 +map 0x413
  4 +
  5 +exclam 0x02 shift
  6 +onesuperior 0x02 altgr
  7 +quotebl 0x03 shift
  8 +twosuperior 0x03 altgr
  9 +numbersign 0x04 shift
  10 +threesuperior 0x04 altgr
  11 +dollar 0x05 shift
  12 +onequarter 0x05 altgr
  13 +percent 0x06 shift
  14 +onehalf 0x06 altgr
  15 +ampersand 0x07 shift
  16 +threequarters 0x07 altgr
  17 +underscore 0x08 shift
  18 +sterling 0x08 altgr
  19 +parenleft 0x09 shift
  20 +braceleft 0x09 altgr
  21 +parenright 0x0a shift
  22 +braceright 0x0a altgr
  23 +apostrophe 0x0b shift
  24 +slash 0x0c
  25 +question 0x0c shift
  26 +backslash 0x0c altgr
  27 +degree 0x0d
  28 +dead_tilde 0x0d shift
  29 +dead_cedilla 0x0d altgr
  30 +EuroSign 0x12 altgr
  31 +paragraph 0x13 altgr
  32 +dead_diaeresis 0x1a
  33 +dead_circumflex 0x1a shift
  34 +asterisk 0x1b
  35 +bar 0x1b shift
  36 +ssharp 0x1f altgr
  37 +plus 0x27
  38 +plusminus 0x27 shift
  39 +dead_acute 0x28
  40 +dead_grave 0x28 shift
  41 +at 0x29
  42 +section 0x29 shift
  43 +notsign 0x29 altgr
  44 +less 0x2b
  45 +greater 0x2b shift
  46 +guillemotleft 0x2c altgr
  47 +guillemotright 0x2d altgr
  48 +copyright 0x2e altgr
  49 +mu 0x32 altgr
  50 +comma 0x33
  51 +semicolon 0x33 shift
  52 +period 0x34
  53 +colon 0x34 shift
  54 +periodcentered 0x34 altgr
  55 +hyphen 0x35
  56 +equal 0x35 shift
  57 +bracketright 0x56
  58 +bracketleft 0x56 shift
  59 +brokenbar 0x56 altgr
  60 +
... ...
keymaps/nl-be 0 → 100644
  1 +# Dutch (Belgium)
  2 +map 0x813
  3 +include common
... ...
keymaps/no 0 → 100644
  1 +# generated from XKB map no
  2 +include common
  3 +map 0x414
  4 +exclam 0x02 shift
  5 +exclamdown 0x02 altgr
  6 +onesuperior 0x02 shift altgr
  7 +quotedbl 0x03 shift
  8 +at 0x03 altgr
  9 +twosuperior 0x03 shift altgr
  10 +numbersign 0x04 shift
  11 +sterling 0x04 altgr
  12 +threesuperior 0x04 shift altgr
  13 +currency 0x05 shift
  14 +dollar 0x05 altgr
  15 +onequarter 0x05 shift altgr
  16 +percent 0x06 shift
  17 +onehalf 0x06 altgr
  18 +cent 0x06 shift altgr
  19 +ampersand 0x07 shift
  20 +yen 0x07 altgr
  21 +fiveeighths 0x07 shift altgr
  22 +slash 0x08 shift
  23 +braceleft 0x08 altgr
  24 +division 0x08 shift altgr
  25 +parenleft 0x09 shift
  26 +bracketleft 0x09 altgr
  27 +guillemotleft 0x09 shift altgr
  28 +parenright 0x0a shift
  29 +bracketright 0x0a altgr
  30 +guillemotright 0x0a shift altgr
  31 +equal 0x0b shift
  32 +braceright 0x0b altgr
  33 +degree 0x0b shift altgr
  34 +plus 0x0c
  35 +question 0x0c shift
  36 +plusminus 0x0c altgr
  37 +questiondown 0x0c shift altgr
  38 +backslash 0x0d
  39 +dead_grave 0x0d shift
  40 +dead_acute 0x0d altgr
  41 +notsign 0x0d shift altgr
  42 +Greek_OMEGA 0x10 shift altgr
  43 +lstroke 0x11 altgr
  44 +Lstroke 0x11 shift altgr
  45 +EuroSign 0x12 altgr
  46 +cent 0x12 shift altgr
  47 +registered 0x13 altgr
  48 +thorn 0x14 altgr
  49 +THORN 0x14 shift altgr
  50 +leftarrow 0x15 altgr
  51 +yen 0x15 shift altgr
  52 +downarrow 0x16 altgr
  53 +uparrow 0x16 shift altgr
  54 +rightarrow 0x17 altgr
  55 +idotless 0x17 shift altgr
  56 +oe 0x18 altgr
  57 +OE 0x18 shift altgr
  58 +thorn 0x19 altgr
  59 +THORN 0x19 shift altgr
  60 +aring 0x1a
  61 +Aring 0x1a shift
  62 +dead_diaeresis 0x1a altgr
  63 +dead_abovering 0x1a shift altgr
  64 +dead_diaeresis 0x1b
  65 +dead_circumflex 0x1b shift
  66 +asciicircum 0x01b shift
  67 +dead_tilde 0x1b altgr
  68 +asciitilde 0x1b altgr
  69 +dead_caron 0x1b shift altgr
  70 +ordfeminine 0x1e altgr
  71 +masculine 0x1e shift altgr
  72 +ssharp 0x1f altgr
  73 +section 0x1f shift altgr
  74 +eth 0x20 altgr
  75 +ETH 0x20 shift altgr
  76 +dstroke 0x21 altgr
  77 +ordfeminine 0x21 shift altgr
  78 +eng 0x22 altgr
  79 +ENG 0x22 shift altgr
  80 +hstroke 0x23 altgr
  81 +Hstroke 0x23 shift altgr
  82 +kra 0x25 altgr
  83 +lstroke 0x26 altgr
  84 +Lstroke 0x26 shift altgr
  85 +oslash 0x27
  86 +Ooblique 0x27 shift
  87 +dead_doubleacute 0x27 shift altgr
  88 +ae 0x28
  89 +AE 0x28 shift
  90 +dead_caron 0x28 shift altgr
  91 +bar 0x29
  92 +section 0x29 shift
  93 +brokenbar 0x29 altgr
  94 +paragraph 0x29 shift altgr
  95 +apostrophe 0x2b
  96 +asterisk 0x2b shift
  97 +multiply 0x2b shift altgr
  98 +guillemotleft 0x2c altgr
  99 +guillemotright 0x2d altgr
  100 +copyright 0x2e altgr
  101 +leftdoublequotemark 0x2f altgr
  102 +rightdoublequotemark 0x30 altgr
  103 +mu 0x32 altgr
  104 +masculine 0x32 shift altgr
  105 +comma 0x33
  106 +semicolon 0x33 shift
  107 +dead_cedilla 0x33 altgr
  108 +dead_ogonek 0x33 shift altgr
  109 +period 0x34
  110 +colon 0x34 shift
  111 +periodcentered 0x34 altgr
  112 +dead_abovedot 0x34 shift altgr
  113 +minus 0x35
  114 +underscore 0x35 shift
  115 +hyphen 0x35 altgr
  116 +macron 0x35 shift altgr
  117 +nobreakspace 0x39 altgr
  118 +onehalf 0x56 altgr
  119 +threequarters 0x56 shift altgr
... ...
keymaps/pl 0 → 100644
  1 +# generated from XKB map pl
  2 +include common
  3 +map 0x415
  4 +exclam 0x02 shift
  5 +onesuperior 0x02 altgr
  6 +exclamdown 0x02 shift altgr
  7 +at 0x03 shift
  8 +twosuperior 0x03 altgr
  9 +oneeighth 0x03 shift altgr
  10 +numbersign 0x04 shift
  11 +threesuperior 0x04 altgr
  12 +sterling 0x04 shift altgr
  13 +dollar 0x05 shift
  14 +onequarter 0x05 altgr
  15 +percent 0x06 shift
  16 +onehalf 0x06 altgr
  17 +threeeighths 0x06 shift altgr
  18 +asciicircum 0x07 shift
  19 +threequarters 0x07 altgr
  20 +fiveeighths 0x07 shift altgr
  21 +ampersand 0x08 shift
  22 +braceleft 0x08 altgr
  23 +seveneighths 0x08 shift altgr
  24 +asterisk 0x09 shift
  25 +bracketleft 0x09 altgr
  26 +trademark 0x09 shift altgr
  27 +parenleft 0x0a shift
  28 +bracketright 0x0a altgr
  29 +plusminus 0x0a shift altgr
  30 +parenright 0x0b shift
  31 +braceright 0x0b altgr
  32 +degree 0x0b shift altgr
  33 +minus 0x0c
  34 +underscore 0x0c shift
  35 +backslash 0x0c altgr
  36 +questiondown 0x0c shift altgr
  37 +equal 0x0d
  38 +plus 0x0d shift
  39 +dead_cedilla 0x0d altgr
  40 +dead_ogonek 0x0d shift altgr
  41 +Greek_OMEGA 0x10 shift altgr
  42 +lstroke 0x11 altgr
  43 +Lstroke 0x11 shift altgr
  44 +eogonek 0x12 altgr
  45 +Eogonek 0x12 shift altgr
  46 +paragraph 0x13 altgr
  47 +registered 0x13 shift altgr
  48 +tslash 0x14 altgr
  49 +Tslash 0x14 shift altgr
  50 +leftarrow 0x15 altgr
  51 +yen 0x15 shift altgr
  52 +EuroSign 0x16 altgr
  53 +uparrow 0x16 shift altgr
  54 +rightarrow 0x17 altgr
  55 +idotless 0x17 shift altgr
  56 +oacute 0x18 altgr
  57 +Oacute 0x18 shift altgr
  58 +thorn 0x19 altgr
  59 +THORN 0x19 shift altgr
  60 +bracketleft 0x1a
  61 +braceleft 0x1a shift
  62 +dead_diaeresis 0x1a altgr
  63 +dead_abovering 0x1a shift altgr
  64 +bracketright 0x1b
  65 +braceright 0x1b shift
  66 +dead_tilde 0x1b altgr
  67 +dead_macron 0x1b shift altgr
  68 +aogonek 0x1e altgr
  69 +Aogonek 0x1e shift altgr
  70 +sacute 0x1f altgr
  71 +Sacute 0x1f shift altgr
  72 +eth 0x20 altgr
  73 +ETH 0x20 shift altgr
  74 +dstroke 0x21 altgr
  75 +ordfeminine 0x21 shift altgr
  76 +eng 0x22 altgr
  77 +ENG 0x22 shift altgr
  78 +hstroke 0x23 altgr
  79 +Hstroke 0x23 shift altgr
  80 +kra 0x25 altgr
  81 +lstroke 0x26 altgr
  82 +Lstroke 0x26 shift altgr
  83 +semicolon 0x27
  84 +colon 0x27 shift
  85 +dead_acute 0x27 altgr
  86 +dead_doubleacute 0x27 shift altgr
  87 +apostrophe 0x28
  88 +quotedbl 0x28 shift
  89 +dead_circumflex 0x28 altgr
  90 +dead_caron 0x28 shift altgr
  91 +grave 0x29
  92 +asciitilde 0x29 shift
  93 +notsign 0x29 altgr
  94 +backslash 0x2b
  95 +bar 0x2b shift
  96 +dead_grave 0x2b altgr
  97 +dead_breve 0x2b shift altgr
  98 +zabovedot 0x2c altgr
  99 +Zabovedot 0x2c shift altgr
  100 +zacute 0x2d altgr
  101 +Zacute 0x2d shift altgr
  102 +cacute 0x2e altgr
  103 +Cacute 0x2e shift altgr
  104 +leftdoublequotemark 0x2f altgr
  105 +grave 0x2f shift altgr
  106 +rightdoublequotemark 0x30 altgr
  107 +nacute 0x31 altgr
  108 +Nacute 0x31 shift altgr
  109 +mu 0x32 altgr
  110 +masculine 0x32 shift altgr
  111 +comma 0x33
  112 +less 0x33 shift
  113 +horizconnector 0x33 altgr
  114 +multiply 0x33 shift altgr
  115 +period 0x34
  116 +greater 0x34 shift
  117 +periodcentered 0x34 altgr
  118 +division 0x34 shift altgr
  119 +slash 0x35
  120 +question 0x35 shift
  121 +dead_belowdot 0x35 altgr
  122 +dead_abovedot 0x35 shift altgr
... ...
keymaps/pt 0 → 100644
  1 +# generated from XKB map pt
  2 +include common
  3 +map 0x816
  4 +exclam 0x02 shift
  5 +onesuperior 0x02 altgr
  6 +exclamdown 0x02 shift altgr
  7 +quotedbl 0x03 shift
  8 +at 0x03 altgr
  9 +oneeighth 0x03 shift altgr
  10 +numbersign 0x04 shift
  11 +sterling 0x04 altgr
  12 +dollar 0x05 shift
  13 +section 0x05 altgr
  14 +percent 0x06 shift
  15 +onehalf 0x06 altgr
  16 +threeeighths 0x06 shift altgr
  17 +ampersand 0x07 shift
  18 +threequarters 0x07 altgr
  19 +fiveeighths 0x07 shift altgr
  20 +slash 0x08 shift
  21 +braceleft 0x08 altgr
  22 +seveneighths 0x08 shift altgr
  23 +parenleft 0x09 shift
  24 +bracketleft 0x09 altgr
  25 +trademark 0x09 shift altgr
  26 +parenright 0x0a shift
  27 +bracketright 0x0a altgr
  28 +plusminus 0x0a shift altgr
  29 +equal 0x0b shift
  30 +braceright 0x0b altgr
  31 +degree 0x0b shift altgr
  32 +apostrophe 0x0c
  33 +question 0x0c shift
  34 +backslash 0x0c altgr
  35 +questiondown 0x0c shift altgr
  36 +guillemotleft 0x0d
  37 +guillemotright 0x0d shift
  38 +dead_cedilla 0x0d altgr
  39 +dead_ogonek 0x0d shift altgr
  40 +Greek_OMEGA 0x10 shift altgr
  41 +lstroke 0x11 altgr
  42 +Lstroke 0x11 shift altgr
  43 +EuroSign 0x12 altgr
  44 +cent 0x12 shift altgr
  45 +paragraph 0x13 altgr
  46 +registered 0x13 shift altgr
  47 +tslash 0x14 altgr
  48 +Tslash 0x14 shift altgr
  49 +leftarrow 0x15 altgr
  50 +yen 0x15 shift altgr
  51 +downarrow 0x16 altgr
  52 +uparrow 0x16 shift altgr
  53 +rightarrow 0x17 altgr
  54 +idotless 0x17 shift altgr
  55 +oslash 0x18 altgr
  56 +Ooblique 0x18 shift altgr
  57 +thorn 0x19 altgr
  58 +THORN 0x19 shift altgr
  59 +plus 0x1a
  60 +asterisk 0x1a shift
  61 +dead_diaeresis 0x1a altgr
  62 +dead_abovering 0x1a shift altgr
  63 +dead_acute 0x1b
  64 +dead_grave 0x1b shift
  65 +dead_tilde 0x1b altgr
  66 +dead_macron 0x1b shift altgr
  67 +ae 0x1e altgr
  68 +AE 0x1e shift altgr
  69 +ssharp 0x1f altgr
  70 +eth 0x20 altgr
  71 +ETH 0x20 shift altgr
  72 +dstroke 0x21 altgr
  73 +ordfeminine 0x21 shift altgr
  74 +eng 0x22 altgr
  75 +ENG 0x22 shift altgr
  76 +hstroke 0x23 altgr
  77 +Hstroke 0x23 shift altgr
  78 +kra 0x25 altgr
  79 +lstroke 0x26 altgr
  80 +Lstroke 0x26 shift altgr
  81 +ccedilla 0x27
  82 +Ccedilla 0x27 shift
  83 +dead_doubleacute 0x27 shift altgr
  84 +masculine 0x28
  85 +ordfeminine 0x28 shift
  86 +dead_circumflex 0x28 altgr
  87 +dead_caron 0x28 shift altgr
  88 +backslash 0x29
  89 +bar 0x29 shift
  90 +notsign 0x29 altgr
  91 +dead_tilde 0x2b
  92 +dead_circumflex 0x2b shift
  93 +dead_breve 0x2b shift altgr
  94 +less 0x56
  95 +greater 0x56 shift
  96 +cent 0x2e altgr
  97 +copyright 0x2e shift altgr
  98 +leftdoublequotemark 0x2f altgr
  99 +grave 0x2f shift altgr
  100 +rightdoublequotemark 0x30 altgr
  101 +mu 0x32 altgr
  102 +comma 0x33
  103 +semicolon 0x33 shift
  104 +horizconnector 0x33 altgr
  105 +multiply 0x33 shift altgr
  106 +period 0x34
  107 +colon 0x34 shift
  108 +periodcentered 0x34 altgr
  109 +division 0x34 shift altgr
  110 +minus 0x35
  111 +underscore 0x35 shift
  112 +dead_belowdot 0x35 altgr
  113 +dead_abovedot 0x35 shift altgr
... ...
keymaps/pt-br 0 → 100644
  1 +# generated from XKB map br
  2 +include common
  3 +map 0x416
  4 +exclam 0x02 shift
  5 +onesuperior 0x02 altgr
  6 +exclamdown 0x02 shift altgr
  7 +at 0x03 shift
  8 +twosuperior 0x03 altgr
  9 +onehalf 0x03 shift altgr
  10 +numbersign 0x04 shift
  11 +threesuperior 0x04 altgr
  12 +threequarters 0x04 shift altgr
  13 +dollar 0x05 shift
  14 +sterling 0x05 altgr
  15 +onequarter 0x05 shift altgr
  16 +percent 0x06 shift
  17 +cent 0x06 altgr
  18 +dead_diaeresis 0x07 shift
  19 +notsign 0x07 altgr
  20 +diaeresis 0x07 shift altgr
  21 +ampersand 0x08 shift
  22 +braceleft 0x08 altgr
  23 +asterisk 0x09 shift
  24 +bracketleft 0x09 altgr
  25 +parenleft 0x0a shift
  26 +bracketright 0x0a altgr
  27 +parenright 0x0b shift
  28 +braceright 0x0b altgr
  29 +minus 0x0c
  30 +underscore 0x0c shift
  31 +backslash 0x0c altgr
  32 +equal 0x0d
  33 +plus 0x0d shift
  34 +section 0x0d altgr
  35 +EuroSign 0x12 altgr
  36 +registered 0x13 altgr
  37 +dead_acute 0x1a
  38 +dead_grave 0x1a shift
  39 +acute 0x1a altgr
  40 +grave 0x1a shift altgr
  41 +bracketleft 0x1b
  42 +braceleft 0x1b shift
  43 +ordfeminine 0x1b altgr
  44 +ccedilla 0x27
  45 +Ccedilla 0x27 shift
  46 +dead_tilde 0x28
  47 +dead_circumflex 0x28 shift
  48 +asciitilde 0x28 altgr
  49 +asciicircum 0x28 shift altgr
  50 +apostrophe 0x29
  51 +quotedbl 0x29 shift
  52 +bracketright 0x2b
  53 +braceright 0x2b shift
  54 +masculine 0x2b altgr
  55 +copyright 0x2e altgr
  56 +mu 0x32 altgr
  57 +comma 0x33
  58 +less 0x33 shift
  59 +period 0x34
  60 +greater 0x34 shift
  61 +semicolon 0x35
  62 +colon 0x35 shift
  63 +comma 0x53 numlock
  64 +backslash 0x56
  65 +bar 0x56 shift
  66 +slash 0x73
  67 +question 0x73 shift
  68 +degree 0x73 altgr
  69 +KP_Decimal 0x34
... ...
keymaps/ru 0 → 100644
  1 +# generated from XKB map ru
  2 +include common
  3 +map 0x419
  4 +exclam 0x02 shift
  5 +at 0x03 shift
  6 +quotedbl 0x03 shift altgr
  7 +numbersign 0x04 shift
  8 +dollar 0x05 shift
  9 +asterisk 0x05 shift altgr
  10 +percent 0x06 shift
  11 +colon 0x06 shift altgr
  12 +asciicircum 0x07 shift
  13 +comma 0x07 shift altgr
  14 +ampersand 0x08 shift
  15 +period 0x08 shift altgr
  16 +asterisk 0x09 shift
  17 +semicolon 0x09 shift altgr
  18 +parenleft 0x0a shift
  19 +parenright 0x0b shift
  20 +minus 0x0c
  21 +underscore 0x0c shift
  22 +equal 0x0d
  23 +plus 0x0d shift
  24 +Cyrillic_shorti 0x10 altgr
  25 +Cyrillic_SHORTI 0x10 shift altgr
  26 +Cyrillic_tse 0x11 altgr
  27 +Cyrillic_TSE 0x11 shift altgr
  28 +Cyrillic_u 0x12 altgr
  29 +Cyrillic_U 0x12 shift altgr
  30 +Cyrillic_ka 0x13 altgr
  31 +Cyrillic_KA 0x13 shift altgr
  32 +Cyrillic_ie 0x14 altgr
  33 +Cyrillic_IE 0x14 shift altgr
  34 +Cyrillic_en 0x15 altgr
  35 +Cyrillic_EN 0x15 shift altgr
  36 +Cyrillic_ghe 0x16 altgr
  37 +Cyrillic_GHE 0x16 shift altgr
  38 +Cyrillic_sha 0x17 altgr
  39 +Cyrillic_SHA 0x17 shift altgr
  40 +Cyrillic_shcha 0x18 altgr
  41 +Cyrillic_SHCHA 0x18 shift altgr
  42 +Cyrillic_ze 0x19 altgr
  43 +Cyrillic_ZE 0x19 shift altgr
  44 +bracketleft 0x1a
  45 +braceleft 0x1a shift
  46 +Cyrillic_ha 0x1a altgr
  47 +Cyrillic_HA 0x1a shift altgr
  48 +bracketright 0x1b
  49 +braceright 0x1b shift
  50 +Cyrillic_hardsign 0x1b altgr
  51 +Cyrillic_HARDSIGN 0x1b shift altgr
  52 +Cyrillic_ef 0x1e altgr
  53 +Cyrillic_EF 0x1e shift altgr
  54 +Cyrillic_yeru 0x1f altgr
  55 +Cyrillic_YERU 0x1f shift altgr
  56 +Cyrillic_ve 0x20 altgr
  57 +Cyrillic_VE 0x20 shift altgr
  58 +Cyrillic_a 0x21 altgr
  59 +Cyrillic_A 0x21 shift altgr
  60 +Cyrillic_pe 0x22 altgr
  61 +Cyrillic_PE 0x22 shift altgr
  62 +Cyrillic_er 0x23 altgr
  63 +Cyrillic_ER 0x23 shift altgr
  64 +Cyrillic_o 0x24 altgr
  65 +Cyrillic_O 0x24 shift altgr
  66 +Cyrillic_el 0x25 altgr
  67 +Cyrillic_EL 0x25 shift altgr
  68 +Cyrillic_de 0x26 altgr
  69 +Cyrillic_DE 0x26 shift altgr
  70 +semicolon 0x27
  71 +colon 0x27 shift
  72 +Cyrillic_zhe 0x27 altgr
  73 +Cyrillic_ZHE 0x27 shift altgr
  74 +apostrophe 0x28
  75 +quotedbl 0x28 shift
  76 +Cyrillic_e 0x28 altgr
  77 +Cyrillic_E 0x28 shift altgr
  78 +grave 0x29
  79 +asciitilde 0x29 shift
  80 +Cyrillic_io 0x29 altgr
  81 +Cyrillic_IO 0x29 shift altgr
  82 +backslash 0x2b
  83 +bar 0x2b shift
  84 +Cyrillic_ya 0x2c altgr
  85 +Cyrillic_YA 0x2c shift altgr
  86 +Cyrillic_che 0x2d altgr
  87 +Cyrillic_CHE 0x2d shift altgr
  88 +Cyrillic_es 0x2e altgr
  89 +Cyrillic_ES 0x2e shift altgr
  90 +Cyrillic_em 0x2f altgr
  91 +Cyrillic_EM 0x2f shift altgr
  92 +Cyrillic_i 0x30 altgr
  93 +Cyrillic_I 0x30 shift altgr
  94 +Cyrillic_te 0x31 altgr
  95 +Cyrillic_TE 0x31 shift altgr
  96 +Cyrillic_softsign 0x32 altgr
  97 +Cyrillic_SOFTSIGN 0x32 shift altgr
  98 +comma 0x33
  99 +less 0x33 shift
  100 +Cyrillic_be 0x33 altgr
  101 +Cyrillic_BE 0x33 shift altgr
  102 +period 0x34
  103 +greater 0x34 shift
  104 +Cyrillic_yu 0x34 altgr
  105 +Cyrillic_YU 0x34 shift altgr
  106 +slash 0x35
  107 +question 0x35 shift
  108 +slash 0x56 altgr
  109 +bar 0x56 shift altgr
... ...
keymaps/sl 0 → 100644
  1 +# generated from XKB map sl
  2 +include common
  3 +map 0x424
  4 +exclam 0x02 shift
  5 +asciitilde 0x02 altgr
  6 +dead_tilde 0x02 shift altgr
  7 +quotedbl 0x03 shift
  8 +dead_caron 0x03 altgr
  9 +caron 0x03 shift altgr
  10 +numbersign 0x04 shift
  11 +asciicircum 0x04 altgr
  12 +dead_circumflex 0x04 shift altgr
  13 +dollar 0x05 shift
  14 +dead_breve 0x05 altgr
  15 +breve 0x05 shift altgr
  16 +percent 0x06 shift
  17 +degree 0x06 altgr
  18 +dead_abovering 0x06 shift altgr
  19 +ampersand 0x07 shift
  20 +dead_ogonek 0x07 altgr
  21 +ogonek 0x07 shift altgr
  22 +slash 0x08 shift
  23 +grave 0x08 altgr
  24 +dead_grave 0x08 shift altgr
  25 +parenleft 0x09 shift
  26 +dead_abovedot 0x09 altgr
  27 +abovedot 0x09 shift altgr
  28 +parenright 0x0a shift
  29 +dead_acute 0x0a altgr
  30 +equal 0x0b shift
  31 +dead_doubleacute 0x0b altgr
  32 +doubleacute 0x0b shift altgr
  33 +apostrophe 0x0c
  34 +question 0x0c shift
  35 +dead_diaeresis 0x0c altgr
  36 +diaeresis 0x0c shift altgr
  37 +plus 0x0d
  38 +asterisk 0x0d shift
  39 +dead_cedilla 0x0d altgr
  40 +cedilla 0x0d shift altgr
  41 +backslash 0x10 altgr
  42 +Greek_OMEGA 0x10 shift altgr
  43 +bar 0x11 altgr
  44 +Lstroke 0x11 shift altgr
  45 +EuroSign 0x12 altgr
  46 +paragraph 0x13 altgr
  47 +registered 0x13 shift altgr
  48 +tslash 0x14 altgr
  49 +Tslash 0x14 shift altgr
  50 +z 0x15 addupper
  51 +leftarrow 0x15 altgr
  52 +yen 0x15 shift altgr
  53 +downarrow 0x16 altgr
  54 +uparrow 0x16 shift altgr
  55 +rightarrow 0x17 altgr
  56 +idotless 0x17 shift altgr
  57 +oslash 0x18 altgr
  58 +Ooblique 0x18 shift altgr
  59 +thorn 0x19 altgr
  60 +THORN 0x19 shift altgr
  61 +scaron 0x1a
  62 +Scaron 0x1a shift
  63 +division 0x1a altgr
  64 +dstroke 0x1b
  65 +Dstroke 0x1b shift
  66 +multiply 0x1b altgr
  67 +dead_macron 0x1b shift altgr
  68 +ae 0x1e altgr
  69 +AE 0x1e shift altgr
  70 +ssharp 0x1f altgr
  71 +section 0x1f shift altgr
  72 +eth 0x20 altgr
  73 +ETH 0x20 shift altgr
  74 +bracketleft 0x21 altgr
  75 +ordfeminine 0x21 shift altgr
  76 +bracketright 0x22 altgr
  77 +ENG 0x22 shift altgr
  78 +hstroke 0x23 altgr
  79 +Hstroke 0x23 shift altgr
  80 +lstroke 0x25 altgr
  81 +Lstroke 0x26 altgr
  82 +ccaron 0x27
  83 +Ccaron 0x27 shift
  84 +cacute 0x28
  85 +Cacute 0x28 shift
  86 +ssharp 0x28 altgr
  87 +dead_cedilla 0x29
  88 +notsign 0x29 altgr
  89 +zcaron 0x2b
  90 +Zcaron 0x2b shift
  91 +currency 0x2b altgr
  92 +y 0x2c addupper
  93 +guillemotleft 0x2c altgr
  94 +guillemotright 0x2d altgr
  95 +cent 0x2e altgr
  96 +copyright 0x2e shift altgr
  97 +at 0x2f altgr
  98 +braceleft 0x30 altgr
  99 +braceright 0x31 altgr
  100 +section 0x32 altgr
  101 +masculine 0x32 shift altgr
  102 +comma 0x33
  103 +semicolon 0x33 shift
  104 +horizconnector 0x33 altgr
  105 +period 0x34
  106 +colon 0x34 shift
  107 +periodcentered 0x34 altgr
  108 +minus 0x35
  109 +underscore 0x35 shift
  110 +dead_belowdot 0x35 altgr
... ...
keymaps/sv 0 → 100644
  1 +map 0x0000041d
  2 +include common
  3 +
  4 +#
  5 +# Top row
  6 +#
  7 +section 0x29
  8 +onehalf 0x29 shift
  9 +
  10 +# 1
  11 +exclam 0x2 shift
  12 +
  13 +# 2
  14 +quotedbl 0x3 shift
  15 +at 0x3 altgr
  16 +
  17 +# 3
  18 +numbersign 0x4 shift
  19 +sterling 0x4 altgr
  20 +# 4
  21 +currency 0x5 shift
  22 +dollar 0x5 altgr
  23 +# 5
  24 +percent 0x6 shift
  25 +# 6
  26 +ampersand 0x7 shift
  27 +# 7
  28 +slash 0x8 shift
  29 +braceleft 0x8 altgr
  30 +# 8
  31 +parenleft 0x9 shift
  32 +bracketleft 0x9 altgr
  33 +# 9
  34 +parenright 0xa shift
  35 +bracketright 0xa altgr
  36 +# 0
  37 +equal 0xb shift
  38 +braceright 0xb altgr
  39 +
  40 +plus 0xc
  41 +question 0xc shift
  42 +backslash 0xc altgr
  43 +
  44 +acute 0xd
  45 +dead_acute 0xd
  46 +grave 0xd shift
  47 +dead_grave 0xd shift
  48 +
  49 +#
  50 +# QWERTY first row
  51 +#
  52 +EuroSign 0x12 altgr
  53 +aring 0x1a
  54 +Aring 0x1a shift
  55 +dead_diaeresis 0x1b
  56 +dead_circumflex 0x1b shift
  57 +dead_tilde 0x1b altgr
  58 +
  59 +#
  60 +# QWERTY second row
  61 +#
  62 +odiaeresis 0x27
  63 +Odiaeresis 0x27 shift
  64 +adiaeresis 0x28
  65 +Adiaeresis 0x28 shift
  66 +apostrophe 0x2b
  67 +asterisk 0x2b shift
  68 +
  69 +#
  70 +# QWERTY third row
  71 +#
  72 +less 0x56
  73 +greater 0x56 shift
  74 +bar 0x56 altgr
  75 +mu 0x32 altgr
  76 +comma 0x33
  77 +semicolon 0x33 shift
  78 +period 0x34
  79 +colon 0x34 shift
  80 +minus 0x35
  81 +underscore 0x35 shift
  82 +
... ...
keymaps/th 0 → 100644
  1 +# generated from XKB map th
  2 +include common
  3 +map 0x41e
  4 +exclam 0x02 shift
  5 +Thai_lakkhangyao 0x02 altgr
  6 +plus 0x02 shift altgr
  7 +at 0x03 shift
  8 +slash 0x03 altgr
  9 +Thai_leknung 0x03 shift altgr
  10 +numbersign 0x04 shift
  11 +minus 0x04 altgr
  12 +Thai_leksong 0x04 shift altgr
  13 +dollar 0x05 shift
  14 +Thai_phosamphao 0x05 altgr
  15 +Thai_leksam 0x05 shift altgr
  16 +percent 0x06 shift
  17 +Thai_thothung 0x06 altgr
  18 +Thai_leksi 0x06 shift altgr
  19 +asciicircum 0x07 shift
  20 +Thai_sarau 0x07 altgr
  21 +Thai_sarauu 0x07 shift altgr
  22 +ampersand 0x08 shift
  23 +Thai_saraue 0x08 altgr
  24 +Thai_baht 0x08 shift altgr
  25 +asterisk 0x09 shift
  26 +Thai_khokhwai 0x09 altgr
  27 +Thai_lekha 0x09 shift altgr
  28 +parenleft 0x0a shift
  29 +Thai_totao 0x0a altgr
  30 +Thai_lekhok 0x0a shift altgr
  31 +parenright 0x0b shift
  32 +Thai_chochan 0x0b altgr
  33 +Thai_lekchet 0x0b shift altgr
  34 +minus 0x0c
  35 +underscore 0x0c shift
  36 +Thai_khokhai 0x0c altgr
  37 +Thai_lekpaet 0x0c shift altgr
  38 +equal 0x0d
  39 +plus 0x0d shift
  40 +Thai_chochang 0x0d altgr
  41 +Thai_lekkao 0x0d shift altgr
  42 +Thai_maiyamok 0x10 altgr
  43 +Thai_leksun 0x10 shift altgr
  44 +Thai_saraaimaimalai 0x11 altgr
  45 +quotedbl 0x11 shift altgr
  46 +Thai_saraam 0x12 altgr
  47 +Thai_dochada 0x12 shift altgr
  48 +Thai_phophan 0x13 altgr
  49 +Thai_thonangmontho 0x13 shift altgr
  50 +Thai_saraa 0x14 altgr
  51 +Thai_thothong 0x14 shift altgr
  52 +Thai_maihanakat 0x15 altgr
  53 +Thai_nikhahit 0x15 shift altgr
  54 +Thai_saraii 0x16 altgr
  55 +Thai_maitri 0x16 shift altgr
  56 +Thai_rorua 0x17 altgr
  57 +Thai_nonen 0x17 shift altgr
  58 +Thai_nonu 0x18 altgr
  59 +Thai_paiyannoi 0x18 shift altgr
  60 +Thai_yoyak 0x19 altgr
  61 +Thai_yoying 0x19 shift altgr
  62 +bracketleft 0x1a
  63 +braceleft 0x1a shift
  64 +Thai_bobaimai 0x1a altgr
  65 +Thai_thothan 0x1a shift altgr
  66 +bracketright 0x1b
  67 +braceright 0x1b shift
  68 +Thai_loling 0x1b altgr
  69 +comma 0x1b shift altgr
  70 +Thai_fofan 0x1e altgr
  71 +Thai_ru 0x1e shift altgr
  72 +Thai_hohip 0x1f altgr
  73 +Thai_khorakhang 0x1f shift altgr
  74 +Thai_kokai 0x20 altgr
  75 +Thai_topatak 0x20 shift altgr
  76 +Thai_dodek 0x21 altgr
  77 +Thai_sarao 0x21 shift altgr
  78 +Thai_sarae 0x22 altgr
  79 +Thai_chochoe 0x22 shift altgr
  80 +Thai_maitho 0x23 altgr
  81 +Thai_maitaikhu 0x23 shift altgr
  82 +Thai_maiek 0x24 altgr
  83 +Thai_maichattawa 0x24 shift altgr
  84 +Thai_saraaa 0x25 altgr
  85 +Thai_sorusi 0x25 shift altgr
  86 +Thai_sosua 0x26 altgr
  87 +Thai_sosala 0x26 shift altgr
  88 +semicolon 0x27
  89 +colon 0x27 shift
  90 +Thai_wowaen 0x27 altgr
  91 +Thai_soso 0x27 shift altgr
  92 +apostrophe 0x28
  93 +quotedbl 0x28 shift
  94 +Thai_ngongu 0x28 altgr
  95 +period 0x28 shift altgr
  96 +grave 0x29
  97 +asciitilde 0x29 shift
  98 +underscore 0x29 altgr
  99 +percent 0x29 shift altgr
  100 +ISO_First_Group 0x2a shift
  101 +backslash 0x2b
  102 +bar 0x2b shift
  103 +Thai_khokhuat 0x2b altgr
  104 +Thai_khokhon 0x2b shift altgr
  105 +Thai_phophung 0x2c altgr
  106 +parenleft 0x2c shift altgr
  107 +Thai_popla 0x2d altgr
  108 +parenright 0x2d shift altgr
  109 +Thai_saraae 0x2e altgr
  110 +Thai_choching 0x2e shift altgr
  111 +Thai_oang 0x2f altgr
  112 +Thai_honokhuk 0x2f shift altgr
  113 +Thai_sarai 0x30 altgr
  114 +Thai_phinthu 0x30 shift altgr
  115 +Thai_sarauee 0x31 altgr
  116 +Thai_thanthakhat 0x31 shift altgr
  117 +Thai_thothahan 0x32 altgr
  118 +question 0x32 shift altgr
  119 +comma 0x33
  120 +less 0x33 shift
  121 +Thai_moma 0x33 altgr
  122 +Thai_thophuthao 0x33 shift altgr
  123 +period 0x34
  124 +greater 0x34 shift
  125 +Thai_saraaimaimuan 0x34 altgr
  126 +Thai_lochula 0x34 shift altgr
  127 +slash 0x35
  128 +question 0x35 shift
  129 +Thai_fofa 0x35 altgr
  130 +Thai_lu 0x35 shift altgr
  131 +ISO_Last_Group 0x36 shift
... ...
keymaps/tr 0 → 100644
  1 +# generated from XKB map tr
  2 +include common
  3 +map 0x41f
  4 +exclam 0x02 shift
  5 +onesuperior 0x02 altgr
  6 +exclamdown 0x02 shift altgr
  7 +apostrophe 0x03 shift
  8 +at 0x03 altgr
  9 +oneeighth 0x03 shift altgr
  10 +dead_circumflex 0x04 shift
  11 +numbersign 0x04 altgr
  12 +sterling 0x04 shift altgr
  13 +plus 0x05 shift
  14 +dollar 0x05 altgr
  15 +percent 0x06 shift
  16 +onehalf 0x06 altgr
  17 +threeeighths 0x06 shift altgr
  18 +ampersand 0x07 shift
  19 +asciicircum 0x07 altgr
  20 +fiveeighths 0x07 shift altgr
  21 +slash 0x08 shift
  22 +braceleft 0x08 altgr
  23 +seveneighths 0x08 shift altgr
  24 +parenleft 0x09 shift
  25 +bracketleft 0x09 altgr
  26 +trademark 0x09 shift altgr
  27 +parenright 0x0a shift
  28 +bracketright 0x0a altgr
  29 +plusminus 0x0a shift altgr
  30 +equal 0x0b shift
  31 +braceright 0x0b altgr
  32 +degree 0x0b shift altgr
  33 +asterisk 0x0c
  34 +question 0x0c shift
  35 +backslash 0x0c altgr
  36 +questiondown 0x0c shift altgr
  37 +minus 0x0d
  38 +underscore 0x0d shift
  39 +dead_cedilla 0x0d altgr
  40 +dead_ogonek 0x0d shift altgr
  41 +at 0x10 altgr
  42 +Greek_OMEGA 0x10 shift altgr
  43 +lstroke 0x11 altgr
  44 +Lstroke 0x11 shift altgr
  45 +EuroSign 0x12 altgr
  46 +paragraph 0x13 altgr
  47 +registered 0x13 shift altgr
  48 +tslash 0x14 altgr
  49 +Tslash 0x14 shift altgr
  50 +leftarrow 0x15 altgr
  51 +yen 0x15 shift altgr
  52 +downarrow 0x16 altgr
  53 +uparrow 0x16 shift altgr
  54 +idotless 0x17
  55 +I 0x17 shift
  56 +rightarrow 0x17 altgr
  57 +oslash 0x18 altgr
  58 +Ooblique 0x18 shift altgr
  59 +thorn 0x19 altgr
  60 +THORN 0x19 shift altgr
  61 +gbreve 0x1a
  62 +Gbreve 0x1a shift
  63 +dead_diaeresis 0x1a altgr
  64 +dead_abovering 0x1a shift altgr
  65 +udiaeresis 0x1b
  66 +Udiaeresis 0x1b shift
  67 +asciitilde 0x1b altgr
  68 +dead_macron 0x1b shift altgr
  69 +ae 0x1e altgr
  70 +AE 0x1e shift altgr
  71 +ssharp 0x1f altgr
  72 +section 0x1f shift altgr
  73 +eth 0x20 altgr
  74 +ETH 0x20 shift altgr
  75 +dstroke 0x21 altgr
  76 +ordfeminine 0x21 shift altgr
  77 +eng 0x22 altgr
  78 +ENG 0x22 shift altgr
  79 +hstroke 0x23 altgr
  80 +Hstroke 0x23 shift altgr
  81 +kra 0x25 altgr
  82 +ampersand 0x25 shift altgr
  83 +lstroke 0x26 altgr
  84 +Lstroke 0x26 shift altgr
  85 +scedilla 0x27
  86 +Scedilla 0x27 shift
  87 +dead_acute 0x27 altgr
  88 +dead_doubleacute 0x27 shift altgr
  89 +i 0x28
  90 +Iabovedot 0x28 shift
  91 +dead_circumflex 0x28 altgr
  92 +dead_caron 0x28 shift altgr
  93 +backslash 0x29
  94 +quotedbl 0x29 shift
  95 +asciitilde 0x29 altgr
  96 +comma 0x2b
  97 +semicolon 0x2b shift
  98 +bar 0x2b altgr
  99 +dead_breve 0x2b shift altgr
  100 +guillemotleft 0x2c altgr
  101 +less 0x2c shift altgr
  102 +guillemotright 0x2d altgr
  103 +greater 0x2d shift altgr
  104 +cent 0x2e altgr
  105 +copyright 0x2e shift altgr
  106 +leftdoublequotemark 0x2f altgr
  107 +grave 0x2f shift altgr
  108 +rightdoublequotemark 0x30 altgr
  109 +apostrophe 0x30 shift altgr
  110 +mu 0x32 altgr
  111 +masculine 0x32 shift altgr
  112 +odiaeresis 0x33
  113 +Odiaeresis 0x33 shift
  114 +less 0x33 altgr
  115 +multiply 0x33 shift altgr
  116 +ccedilla 0x34
  117 +Ccedilla 0x34 shift
  118 +greater 0x34 altgr
  119 +division 0x34 shift altgr
  120 +period 0x35
  121 +colon 0x35 shift
  122 +dead_belowdot 0x35 altgr
  123 +dead_abovedot 0x35 shift altgr
... ...
qemu-doc.texi
... ... @@ -189,6 +189,22 @@ command line application. The emulated serial port is redirected on
189 189 the console. Therefore, you can still use QEMU to debug a Linux kernel
190 190 with a serial console.
191 191  
  192 +@item -k language
  193 +
  194 +Use keyboard layout @var{language} (for example @code{fr} for
  195 +French). This option is only needed where it is not easy to get raw PC
  196 +keycodes (e.g. on Macs or with some X11 servers). You don't need to
  197 +use it on PC/Linux or PC/Windows hosts.
  198 +
  199 +The available layouts are:
  200 +@example
  201 +ar de-ch es fo fr-ca hu ja mk no pt-br sv
  202 +da en-gb et fr fr-ch is lt nl pl ru th
  203 +de en-us fi fr-be hr it lv nl-be pt sl tr
  204 +@end example
  205 +
  206 +The default is @code{en-us}.
  207 +
192 208 @item -enable-audio
193 209  
194 210 The SB16 emulation is disabled by default as it may give problems with
... ...
... ... @@ -29,10 +29,6 @@
29 29 #include <signal.h>
30 30 #endif
31 31  
32   -#if defined(__APPLE__)
33   -#define CONFIG_SDL_GENERIC_KBD
34   -#endif
35   -
36 32 static SDL_Surface *screen;
37 33 static int gui_grab; /* if true, all keyboard/mouse events are grabbed */
38 34 static int last_vm_running;
... ... @@ -72,118 +68,26 @@ static void sdl_resize(DisplayState *ds, int w, int h)
72 68 ds->height = h;
73 69 }
74 70  
75   -#ifdef CONFIG_SDL_GENERIC_KBD
76   -
77   -/* XXX: use keymap tables defined in the VNC patch because the
78   - following code suppose you have a US keyboard. */
79   -
80   -static const uint8_t scancodes[SDLK_LAST] = {
81   - [SDLK_ESCAPE] = 0x01,
82   - [SDLK_1] = 0x02,
83   - [SDLK_2] = 0x03,
84   - [SDLK_3] = 0x04,
85   - [SDLK_4] = 0x05,
86   - [SDLK_5] = 0x06,
87   - [SDLK_6] = 0x07,
88   - [SDLK_7] = 0x08,
89   - [SDLK_8] = 0x09,
90   - [SDLK_9] = 0x0a,
91   - [SDLK_0] = 0x0b,
92   - [SDLK_MINUS] = 0x0c,
93   - [SDLK_EQUALS] = 0x0d,
94   - [SDLK_BACKSPACE] = 0x0e,
95   - [SDLK_TAB] = 0x0f,
96   - [SDLK_q] = 0x10,
97   - [SDLK_w] = 0x11,
98   - [SDLK_e] = 0x12,
99   - [SDLK_r] = 0x13,
100   - [SDLK_t] = 0x14,
101   - [SDLK_y] = 0x15,
102   - [SDLK_u] = 0x16,
103   - [SDLK_i] = 0x17,
104   - [SDLK_o] = 0x18,
105   - [SDLK_p] = 0x19,
106   - [SDLK_LEFTBRACKET] = 0x1a,
107   - [SDLK_RIGHTBRACKET] = 0x1b,
108   - [SDLK_RETURN] = 0x1c,
109   - [SDLK_LCTRL] = 0x1d,
110   - [SDLK_a] = 0x1e,
111   - [SDLK_s] = 0x1f,
112   - [SDLK_d] = 0x20,
113   - [SDLK_f] = 0x21,
114   - [SDLK_g] = 0x22,
115   - [SDLK_h] = 0x23,
116   - [SDLK_j] = 0x24,
117   - [SDLK_k] = 0x25,
118   - [SDLK_l] = 0x26,
119   - [SDLK_SEMICOLON] = 0x27,
120   - [SDLK_QUOTE] = 0x28,
121   - [SDLK_BACKQUOTE] = 0x29,
122   - [SDLK_LSHIFT] = 0x2a,
123   - [SDLK_BACKSLASH] = 0x2b,
124   - [SDLK_z] = 0x2c,
125   - [SDLK_x] = 0x2d,
126   - [SDLK_c] = 0x2e,
127   - [SDLK_v] = 0x2f,
128   - [SDLK_b] = 0x30,
129   - [SDLK_n] = 0x31,
130   - [SDLK_m] = 0x32,
131   - [SDLK_COMMA] = 0x33,
132   - [SDLK_PERIOD] = 0x34,
133   - [SDLK_SLASH] = 0x35,
134   - [SDLK_KP_MULTIPLY] = 0x37,
135   - [SDLK_LALT] = 0x38,
136   - [SDLK_SPACE] = 0x39,
137   - [SDLK_CAPSLOCK] = 0x3a,
138   - [SDLK_F1] = 0x3b,
139   - [SDLK_F2] = 0x3c,
140   - [SDLK_F3] = 0x3d,
141   - [SDLK_F4] = 0x3e,
142   - [SDLK_F5] = 0x3f,
143   - [SDLK_F6] = 0x40,
144   - [SDLK_F7] = 0x41,
145   - [SDLK_F8] = 0x42,
146   - [SDLK_F9] = 0x43,
147   - [SDLK_F10] = 0x44,
148   - [SDLK_NUMLOCK] = 0x45,
149   - [SDLK_SCROLLOCK] = 0x46,
150   - [SDLK_KP7] = 0x47,
151   - [SDLK_KP8] = 0x48,
152   - [SDLK_KP9] = 0x49,
153   - [SDLK_KP_MINUS] = 0x4a,
154   - [SDLK_KP4] = 0x4b,
155   - [SDLK_KP5] = 0x4c,
156   - [SDLK_KP6] = 0x4d,
157   - [SDLK_KP_PLUS] = 0x4e,
158   - [SDLK_KP1] = 0x4f,
159   - [SDLK_KP2] = 0x50,
160   - [SDLK_KP3] = 0x51,
161   - [SDLK_KP0] = 0x52,
162   - [SDLK_KP_PERIOD] = 0x53,
163   - [SDLK_PRINT] = 0x54,
164   - [SDLK_LMETA] = 0x56,
165   -
166   - [SDLK_KP_ENTER] = 0x9c,
167   - [SDLK_KP_DIVIDE] = 0xb5,
168   -
169   - [SDLK_UP] = 0xc8,
170   - [SDLK_DOWN] = 0xd0,
171   - [SDLK_RIGHT] = 0xcd,
172   - [SDLK_LEFT] = 0xcb,
173   - [SDLK_INSERT] = 0xd2,
174   - [SDLK_HOME] = 0xc7,
175   - [SDLK_END] = 0xcf,
176   - [SDLK_PAGEUP] = 0xc9,
177   - [SDLK_PAGEDOWN] = 0xd1,
178   - [SDLK_DELETE] = 0xd3,
179   -};
  71 +/* generic keyboard conversion */
180 72  
181   -static uint8_t sdl_keyevent_to_keycode(const SDL_KeyboardEvent *ev)
  73 +#include "sdl_keysym.h"
  74 +#include "keymaps.c"
  75 +
  76 +static kbd_layout_t *kbd_layout = NULL;
  77 +
  78 +static uint8_t sdl_keyevent_to_keycode_generic(const SDL_KeyboardEvent *ev)
182 79 {
183   - return scancodes[ev->keysym.sym];
  80 + int keysym;
  81 + /* workaround for X11+SDL bug with AltGR */
  82 + keysym = ev->keysym.sym;
  83 + if (keysym == 0 && ev->keysym.scancode == 113)
  84 + keysym = SDLK_MODE;
  85 + return keysym2scancode(kbd_layout, keysym);
184 86 }
185 87  
186   -#elif defined(_WIN32)
  88 +/* specific keyboard conversions from scan codes */
  89 +
  90 +#if defined(_WIN32)
187 91  
188 92 static uint8_t sdl_keyevent_to_keycode(const SDL_KeyboardEvent *ev)
189 93 {
... ... @@ -305,8 +209,11 @@ static void sdl_process_key(SDL_KeyboardEvent *ev)
305 209 return;
306 210 }
307 211  
308   - /* XXX: not portable, but avoids complicated mappings */
309   - keycode = sdl_keyevent_to_keycode(ev);
  212 + if (kbd_layout) {
  213 + keycode = sdl_keyevent_to_keycode_generic(ev);
  214 + } else {
  215 + keycode = sdl_keyevent_to_keycode(ev);
  216 + }
310 217  
311 218 switch(keycode) {
312 219 case 0x00:
... ... @@ -558,6 +465,17 @@ void sdl_display_init(DisplayState *ds, int full_screen)
558 465 {
559 466 int flags;
560 467  
  468 +#if defined(__APPLE__)
  469 + /* always use generic keymaps */
  470 + if (!keyboard_layout)
  471 + keyboard_layout = "en-us";
  472 +#endif
  473 + if(keyboard_layout) {
  474 + kbd_layout = init_keyboard_layout(keyboard_layout);
  475 + if (!kbd_layout)
  476 + exit(1);
  477 + }
  478 +
561 479 flags = SDL_INIT_VIDEO | SDL_INIT_NOPARACHUTE;
562 480 if (SDL_Init (flags)) {
563 481 fprintf(stderr, "Could not initialize SDL - exiting\n");
... ...
sdl_keysym.h 0 → 100644
  1 +typedef struct {
  2 + const char* name;
  3 + int keysym;
  4 +} name2keysym_t;
  5 +static name2keysym_t name2keysym[]={
  6 +/* ascii */
  7 + { "space", 0x020},
  8 + { "exclam", 0x021},
  9 + { "quotedbl", 0x022},
  10 + { "numbersign", 0x023},
  11 + { "dollar", 0x024},
  12 + { "percent", 0x025},
  13 + { "ampersand", 0x026},
  14 + { "apostrophe", 0x027},
  15 + { "parenleft", 0x028},
  16 + { "parenright", 0x029},
  17 + { "asterisk", 0x02a},
  18 + { "plus", 0x02b},
  19 + { "comma", 0x02c},
  20 + { "minus", 0x02d},
  21 + { "period", 0x02e},
  22 + { "slash", 0x02f},
  23 + { "0", 0x030},
  24 + { "1", 0x031},
  25 + { "2", 0x032},
  26 + { "3", 0x033},
  27 + { "4", 0x034},
  28 + { "5", 0x035},
  29 + { "6", 0x036},
  30 + { "7", 0x037},
  31 + { "8", 0x038},
  32 + { "9", 0x039},
  33 + { "colon", 0x03a},
  34 + { "semicolon", 0x03b},
  35 + { "less", 0x03c},
  36 + { "equal", 0x03d},
  37 + { "greater", 0x03e},
  38 + { "question", 0x03f},
  39 + { "at", 0x040},
  40 + { "A", 0x041},
  41 + { "B", 0x042},
  42 + { "C", 0x043},
  43 + { "D", 0x044},
  44 + { "E", 0x045},
  45 + { "F", 0x046},
  46 + { "G", 0x047},
  47 + { "H", 0x048},
  48 + { "I", 0x049},
  49 + { "J", 0x04a},
  50 + { "K", 0x04b},
  51 + { "L", 0x04c},
  52 + { "M", 0x04d},
  53 + { "N", 0x04e},
  54 + { "O", 0x04f},
  55 + { "P", 0x050},
  56 + { "Q", 0x051},
  57 + { "R", 0x052},
  58 + { "S", 0x053},
  59 + { "T", 0x054},
  60 + { "U", 0x055},
  61 + { "V", 0x056},
  62 + { "W", 0x057},
  63 + { "X", 0x058},
  64 + { "Y", 0x059},
  65 + { "Z", 0x05a},
  66 + { "bracketleft", 0x05b},
  67 + { "backslash", 0x05c},
  68 + { "bracketright", 0x05d},
  69 + { "asciicircum", 0x05e},
  70 + { "underscore", 0x05f},
  71 + { "grave", 0x060},
  72 + { "a", 0x061},
  73 + { "b", 0x062},
  74 + { "c", 0x063},
  75 + { "d", 0x064},
  76 + { "e", 0x065},
  77 + { "f", 0x066},
  78 + { "g", 0x067},
  79 + { "h", 0x068},
  80 + { "i", 0x069},
  81 + { "j", 0x06a},
  82 + { "k", 0x06b},
  83 + { "l", 0x06c},
  84 + { "m", 0x06d},
  85 + { "n", 0x06e},
  86 + { "o", 0x06f},
  87 + { "p", 0x070},
  88 + { "q", 0x071},
  89 + { "r", 0x072},
  90 + { "s", 0x073},
  91 + { "t", 0x074},
  92 + { "u", 0x075},
  93 + { "v", 0x076},
  94 + { "w", 0x077},
  95 + { "x", 0x078},
  96 + { "y", 0x079},
  97 + { "z", 0x07a},
  98 + { "braceleft", 0x07b},
  99 + { "bar", 0x07c},
  100 + { "braceright", 0x07d},
  101 + { "asciitilde", 0x07e},
  102 +
  103 +/* latin 1 extensions */
  104 +{ "nobreakspace", 0x0a0},
  105 +{ "exclamdown", 0x0a1},
  106 +{ "cent", 0x0a2},
  107 +{ "sterling", 0x0a3},
  108 +{ "currency", 0x0a4},
  109 +{ "yen", 0x0a5},
  110 +{ "brokenbar", 0x0a6},
  111 +{ "section", 0x0a7},
  112 +{ "diaeresis", 0x0a8},
  113 +{ "copyright", 0x0a9},
  114 +{ "ordfeminine", 0x0aa},
  115 +{ "guillemotleft", 0x0ab},
  116 +{ "notsign", 0x0ac},
  117 +{ "hyphen", 0x0ad},
  118 +{ "registered", 0x0ae},
  119 +{ "macron", 0x0af},
  120 +{ "degree", 0x0b0},
  121 +{ "plusminus", 0x0b1},
  122 +{ "twosuperior", 0x0b2},
  123 +{ "threesuperior", 0x0b3},
  124 +{ "acute", 0x0b4},
  125 +{ "mu", 0x0b5},
  126 +{ "paragraph", 0x0b6},
  127 +{ "periodcentered", 0x0b7},
  128 +{ "cedilla", 0x0b8},
  129 +{ "onesuperior", 0x0b9},
  130 +{ "masculine", 0x0ba},
  131 +{ "guillemotright", 0x0bb},
  132 +{ "onequarter", 0x0bc},
  133 +{ "onehalf", 0x0bd},
  134 +{ "threequarters", 0x0be},
  135 +{ "questiondown", 0x0bf},
  136 +{ "Agrave", 0x0c0},
  137 +{ "Aacute", 0x0c1},
  138 +{ "Acircumflex", 0x0c2},
  139 +{ "Atilde", 0x0c3},
  140 +{ "Adiaeresis", 0x0c4},
  141 +{ "Aring", 0x0c5},
  142 +{ "AE", 0x0c6},
  143 +{ "Ccedilla", 0x0c7},
  144 +{ "Egrave", 0x0c8},
  145 +{ "Eacute", 0x0c9},
  146 +{ "Ecircumflex", 0x0ca},
  147 +{ "Ediaeresis", 0x0cb},
  148 +{ "Igrave", 0x0cc},
  149 +{ "Iacute", 0x0cd},
  150 +{ "Icircumflex", 0x0ce},
  151 +{ "Idiaeresis", 0x0cf},
  152 +{ "ETH", 0x0d0},
  153 +{ "Eth", 0x0d0},
  154 +{ "Ntilde", 0x0d1},
  155 +{ "Ograve", 0x0d2},
  156 +{ "Oacute", 0x0d3},
  157 +{ "Ocircumflex", 0x0d4},
  158 +{ "Otilde", 0x0d5},
  159 +{ "Odiaeresis", 0x0d6},
  160 +{ "multiply", 0x0d7},
  161 +{ "Ooblique", 0x0d8},
  162 +{ "Oslash", 0x0d8},
  163 +{ "Ugrave", 0x0d9},
  164 +{ "Uacute", 0x0da},
  165 +{ "Ucircumflex", 0x0db},
  166 +{ "Udiaeresis", 0x0dc},
  167 +{ "Yacute", 0x0dd},
  168 +{ "THORN", 0x0de},
  169 +{ "Thorn", 0x0de},
  170 +{ "ssharp", 0x0df},
  171 +{ "agrave", 0x0e0},
  172 +{ "aacute", 0x0e1},
  173 +{ "acircumflex", 0x0e2},
  174 +{ "atilde", 0x0e3},
  175 +{ "adiaeresis", 0x0e4},
  176 +{ "aring", 0x0e5},
  177 +{ "ae", 0x0e6},
  178 +{ "ccedilla", 0x0e7},
  179 +{ "egrave", 0x0e8},
  180 +{ "eacute", 0x0e9},
  181 +{ "ecircumflex", 0x0ea},
  182 +{ "ediaeresis", 0x0eb},
  183 +{ "igrave", 0x0ec},
  184 +{ "iacute", 0x0ed},
  185 +{ "icircumflex", 0x0ee},
  186 +{ "idiaeresis", 0x0ef},
  187 +{ "eth", 0x0f0},
  188 +{ "ntilde", 0x0f1},
  189 +{ "ograve", 0x0f2},
  190 +{ "oacute", 0x0f3},
  191 +{ "ocircumflex", 0x0f4},
  192 +{ "otilde", 0x0f5},
  193 +{ "odiaeresis", 0x0f6},
  194 +{ "division", 0x0f7},
  195 +{ "oslash", 0x0f8},
  196 +{ "ooblique", 0x0f8},
  197 +{ "ugrave", 0x0f9},
  198 +{ "uacute", 0x0fa},
  199 +{ "ucircumflex", 0x0fb},
  200 +{ "udiaeresis", 0x0fc},
  201 +{ "yacute", 0x0fd},
  202 +{ "thorn", 0x0fe},
  203 +{ "ydiaeresis", 0x0ff},
  204 +{"EuroSign", SDLK_EURO},
  205 +
  206 + /* modifiers */
  207 +{"Control_L", SDLK_LCTRL},
  208 +{"Control_R", SDLK_RCTRL},
  209 +{"Alt_L", SDLK_LALT},
  210 +{"Alt_R", SDLK_RALT},
  211 +{"Caps_Lock", SDLK_CAPSLOCK},
  212 +{"Meta_L", SDLK_LMETA},
  213 +{"Meta_R", SDLK_RMETA},
  214 +{"Shift_L", SDLK_LSHIFT},
  215 +{"Shift_R", SDLK_RSHIFT},
  216 +
  217 + /* special keys */
  218 +{"BackSpace", SDLK_BACKSPACE},
  219 +{"Tab", SDLK_TAB},
  220 +{"Return", SDLK_RETURN},
  221 +{"Right", SDLK_RIGHT},
  222 +{"Left", SDLK_LEFT},
  223 +{"Up", SDLK_UP},
  224 +{"Down", SDLK_DOWN},
  225 +{"Page_Down", SDLK_PAGEDOWN},
  226 +{"Page_Up", SDLK_PAGEUP},
  227 +{"Insert", SDLK_INSERT},
  228 +{"Delete", SDLK_DELETE},
  229 +{"Home", SDLK_HOME},
  230 +{"End", SDLK_END},
  231 +{"Scroll_Lock", SDLK_SCROLLOCK},
  232 +{"F1", SDLK_F1},
  233 +{"F2", SDLK_F2},
  234 +{"F3", SDLK_F3},
  235 +{"F4", SDLK_F4},
  236 +{"F5", SDLK_F5},
  237 +{"F6", SDLK_F6},
  238 +{"F7", SDLK_F7},
  239 +{"F8", SDLK_F8},
  240 +{"F9", SDLK_F9},
  241 +{"F10", SDLK_F10},
  242 +{"F11", SDLK_F11},
  243 +{"F12", SDLK_F12},
  244 +{"F13", SDLK_F13},
  245 +{"F14", SDLK_F14},
  246 +{"F15", SDLK_F15},
  247 +{"Sys_Req", SDLK_SYSREQ},
  248 +{"KP_0", SDLK_KP0},
  249 +{"KP_1", SDLK_KP1},
  250 +{"KP_2", SDLK_KP2},
  251 +{"KP_3", SDLK_KP3},
  252 +{"KP_4", SDLK_KP4},
  253 +{"KP_5", SDLK_KP5},
  254 +{"KP_6", SDLK_KP6},
  255 +{"KP_7", SDLK_KP7},
  256 +{"KP_8", SDLK_KP8},
  257 +{"KP_9", SDLK_KP9},
  258 +{"KP_Add", SDLK_KP_PLUS},
  259 +{"KP_Decimal", SDLK_KP_PERIOD},
  260 +{"KP_Divide", SDLK_KP_DIVIDE},
  261 +{"KP_Enter", SDLK_KP_ENTER},
  262 +{"KP_Equal", SDLK_KP_EQUALS},
  263 +{"KP_Multiply", SDLK_KP_MULTIPLY},
  264 +{"KP_Subtract", SDLK_KP_MINUS},
  265 +{"help", SDLK_HELP},
  266 +{"Menu", SDLK_MENU},
  267 +{"Power", SDLK_POWER},
  268 +{"Print", SDLK_PRINT},
  269 +{"Mode_switch", SDLK_MODE},
  270 +{"Multi_Key", SDLK_COMPOSE},
  271 +{"Num_Lock", SDLK_NUMLOCK},
  272 +{"Pause", SDLK_PAUSE},
  273 +
  274 +{0,0},
  275 +};
... ...
... ... @@ -112,6 +112,7 @@ int vga_ram_size;
112 112 int bios_size;
113 113 static DisplayState display_state;
114 114 int nographic;
  115 +const char* keyboard_layout = NULL;
115 116 int64_t ticks_per_sec;
116 117 int boot_device = 'c';
117 118 int ram_size;
... ... @@ -2541,6 +2542,7 @@ void help(void)
2541 2542 "-snapshot write to temporary files instead of disk image files\n"
2542 2543 "-m megs set virtual RAM size to megs MB [default=%d]\n"
2543 2544 "-nographic disable graphical output and redirect serial I/Os to console\n"
  2545 + "-k language use keyboard layout (for example \"fr\" for French)\n"
2544 2546 "-enable-audio enable audio support\n"
2545 2547 "-localtime set the real time clock to local time [default=utc]\n"
2546 2548 "-full-screen start in full screen\n"
... ... @@ -2658,6 +2660,7 @@ enum {
2658 2660 QEMU_OPTION_pci,
2659 2661 QEMU_OPTION_isa,
2660 2662 QEMU_OPTION_prep,
  2663 + QEMU_OPTION_k,
2661 2664 QEMU_OPTION_localtime,
2662 2665 QEMU_OPTION_cirrusvga,
2663 2666 QEMU_OPTION_g,
... ... @@ -2689,6 +2692,7 @@ const QEMUOption qemu_options[] = {
2689 2692 { "snapshot", 0, QEMU_OPTION_snapshot },
2690 2693 { "m", HAS_ARG, QEMU_OPTION_m },
2691 2694 { "nographic", 0, QEMU_OPTION_nographic },
  2695 + { "k", HAS_ARG, QEMU_OPTION_k },
2692 2696 { "enable-audio", 0, QEMU_OPTION_enable_audio },
2693 2697  
2694 2698 { "nics", HAS_ARG, QEMU_OPTION_nics},
... ... @@ -3092,6 +3096,9 @@ int main(int argc, char **argv)
3092 3096 case QEMU_OPTION_prep:
3093 3097 prep_enabled = 1;
3094 3098 break;
  3099 + case QEMU_OPTION_k:
  3100 + keyboard_layout = optarg;
  3101 + break;
3095 3102 case QEMU_OPTION_localtime:
3096 3103 rtc_utc = 0;
3097 3104 break;
... ...
... ... @@ -123,6 +123,7 @@ extern int cirrus_vga_enabled;
123 123 extern int graphic_width;
124 124 extern int graphic_height;
125 125 extern int graphic_depth;
  126 +extern const char *keyboard_layout;
126 127  
127 128 /* XXX: make it dynamic */
128 129 #if defined (TARGET_PPC)
... ...