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 +6,7 @@ version 0.6.2:
6 - Cirrus VGA: support for 1280x1024x[8,15,16] modes 6 - Cirrus VGA: support for 1280x1024x[8,15,16] modes
7 - 'pidfile' option 7 - 'pidfile' option
8 - .dmg disk image format support (Johannes Schindelin) 8 - .dmg disk image format support (Johannes Schindelin)
  9 + - keymaps support (initial patch by Johannes Schindelin)
9 10
10 version 0.6.1: 11 version 0.6.1:
11 12
Makefile
@@ -56,6 +56,8 @@ install: all @@ -56,6 +56,8 @@ install: all
56 ifndef CONFIG_WIN32 56 ifndef CONFIG_WIN32
57 mkdir -p "$(mandir)/man1" 57 mkdir -p "$(mandir)/man1"
58 install qemu.1 qemu-img.1 "$(mandir)/man1" 58 install qemu.1 qemu-img.1 "$(mandir)/man1"
  59 + mkdir -p "$(datadir)/keymaps"
  60 + install -m 644 keymaps/* "$(datadir)"
59 endif 61 endif
60 for d in $(TARGET_DIRS); do \ 62 for d in $(TARGET_DIRS); do \
61 $(MAKE) -C $$d $@ || exit 1 ; \ 63 $(MAKE) -C $$d $@ || exit 1 ; \
Makefile.target
@@ -333,7 +333,7 @@ endif @@ -333,7 +333,7 @@ endif
333 $(QEMU_SYSTEM): $(VL_OBJS) libqemu.a 333 $(QEMU_SYSTEM): $(VL_OBJS) libqemu.a
334 $(CC) $(VL_LDFLAGS) -o $@ $^ $(LIBS) $(SDL_LIBS) $(VL_LIBS) 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 $(CC) $(CFLAGS) $(DEFINES) $(SDL_CFLAGS) -c -o $@ $< 337 $(CC) $(CFLAGS) $(DEFINES) $(SDL_CFLAGS) -c -o $@ $<
338 338
339 sdlaudio.o: sdlaudio.c 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,6 +189,22 @@ command line application. The emulated serial port is redirected on
189 the console. Therefore, you can still use QEMU to debug a Linux kernel 189 the console. Therefore, you can still use QEMU to debug a Linux kernel
190 with a serial console. 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 @item -enable-audio 208 @item -enable-audio
193 209
194 The SB16 emulation is disabled by default as it may give problems with 210 The SB16 emulation is disabled by default as it may give problems with
@@ -29,10 +29,6 @@ @@ -29,10 +29,6 @@
29 #include <signal.h> 29 #include <signal.h>
30 #endif 30 #endif
31 31
32 -#if defined(__APPLE__)  
33 -#define CONFIG_SDL_GENERIC_KBD  
34 -#endif  
35 -  
36 static SDL_Surface *screen; 32 static SDL_Surface *screen;
37 static int gui_grab; /* if true, all keyboard/mouse events are grabbed */ 33 static int gui_grab; /* if true, all keyboard/mouse events are grabbed */
38 static int last_vm_running; 34 static int last_vm_running;
@@ -72,118 +68,26 @@ static void sdl_resize(DisplayState *ds, int w, int h) @@ -72,118 +68,26 @@ static void sdl_resize(DisplayState *ds, int w, int h)
72 ds->height = h; 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 static uint8_t sdl_keyevent_to_keycode(const SDL_KeyboardEvent *ev) 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,8 +209,11 @@ static void sdl_process_key(SDL_KeyboardEvent *ev)
305 return; 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 switch(keycode) { 218 switch(keycode) {
312 case 0x00: 219 case 0x00:
@@ -558,6 +465,17 @@ void sdl_display_init(DisplayState *ds, int full_screen) @@ -558,6 +465,17 @@ void sdl_display_init(DisplayState *ds, int full_screen)
558 { 465 {
559 int flags; 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 flags = SDL_INIT_VIDEO | SDL_INIT_NOPARACHUTE; 479 flags = SDL_INIT_VIDEO | SDL_INIT_NOPARACHUTE;
562 if (SDL_Init (flags)) { 480 if (SDL_Init (flags)) {
563 fprintf(stderr, "Could not initialize SDL - exiting\n"); 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,6 +112,7 @@ int vga_ram_size;
112 int bios_size; 112 int bios_size;
113 static DisplayState display_state; 113 static DisplayState display_state;
114 int nographic; 114 int nographic;
  115 +const char* keyboard_layout = NULL;
115 int64_t ticks_per_sec; 116 int64_t ticks_per_sec;
116 int boot_device = 'c'; 117 int boot_device = 'c';
117 int ram_size; 118 int ram_size;
@@ -2541,6 +2542,7 @@ void help(void) @@ -2541,6 +2542,7 @@ void help(void)
2541 "-snapshot write to temporary files instead of disk image files\n" 2542 "-snapshot write to temporary files instead of disk image files\n"
2542 "-m megs set virtual RAM size to megs MB [default=%d]\n" 2543 "-m megs set virtual RAM size to megs MB [default=%d]\n"
2543 "-nographic disable graphical output and redirect serial I/Os to console\n" 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 "-enable-audio enable audio support\n" 2546 "-enable-audio enable audio support\n"
2545 "-localtime set the real time clock to local time [default=utc]\n" 2547 "-localtime set the real time clock to local time [default=utc]\n"
2546 "-full-screen start in full screen\n" 2548 "-full-screen start in full screen\n"
@@ -2658,6 +2660,7 @@ enum { @@ -2658,6 +2660,7 @@ enum {
2658 QEMU_OPTION_pci, 2660 QEMU_OPTION_pci,
2659 QEMU_OPTION_isa, 2661 QEMU_OPTION_isa,
2660 QEMU_OPTION_prep, 2662 QEMU_OPTION_prep,
  2663 + QEMU_OPTION_k,
2661 QEMU_OPTION_localtime, 2664 QEMU_OPTION_localtime,
2662 QEMU_OPTION_cirrusvga, 2665 QEMU_OPTION_cirrusvga,
2663 QEMU_OPTION_g, 2666 QEMU_OPTION_g,
@@ -2689,6 +2692,7 @@ const QEMUOption qemu_options[] = { @@ -2689,6 +2692,7 @@ const QEMUOption qemu_options[] = {
2689 { "snapshot", 0, QEMU_OPTION_snapshot }, 2692 { "snapshot", 0, QEMU_OPTION_snapshot },
2690 { "m", HAS_ARG, QEMU_OPTION_m }, 2693 { "m", HAS_ARG, QEMU_OPTION_m },
2691 { "nographic", 0, QEMU_OPTION_nographic }, 2694 { "nographic", 0, QEMU_OPTION_nographic },
  2695 + { "k", HAS_ARG, QEMU_OPTION_k },
2692 { "enable-audio", 0, QEMU_OPTION_enable_audio }, 2696 { "enable-audio", 0, QEMU_OPTION_enable_audio },
2693 2697
2694 { "nics", HAS_ARG, QEMU_OPTION_nics}, 2698 { "nics", HAS_ARG, QEMU_OPTION_nics},
@@ -3092,6 +3096,9 @@ int main(int argc, char **argv) @@ -3092,6 +3096,9 @@ int main(int argc, char **argv)
3092 case QEMU_OPTION_prep: 3096 case QEMU_OPTION_prep:
3093 prep_enabled = 1; 3097 prep_enabled = 1;
3094 break; 3098 break;
  3099 + case QEMU_OPTION_k:
  3100 + keyboard_layout = optarg;
  3101 + break;
3095 case QEMU_OPTION_localtime: 3102 case QEMU_OPTION_localtime:
3096 rtc_utc = 0; 3103 rtc_utc = 0;
3097 break; 3104 break;
@@ -123,6 +123,7 @@ extern int cirrus_vga_enabled; @@ -123,6 +123,7 @@ extern int cirrus_vga_enabled;
123 extern int graphic_width; 123 extern int graphic_width;
124 extern int graphic_height; 124 extern int graphic_height;
125 extern int graphic_depth; 125 extern int graphic_depth;
  126 +extern const char *keyboard_layout;
126 127
127 /* XXX: make it dynamic */ 128 /* XXX: make it dynamic */
128 #if defined (TARGET_PPC) 129 #if defined (TARGET_PPC)