John Haxby
2008-Dec-11 16:37 UTC
[Xen-devel] [PATCH 0 of 3][IOEMU] Fix keymap handling for vnc console
This is a slightly updated version of the patch I posted a little while ago. It is a patch against the ioemu-remote tree in xen-3.3-testing. I''ll be sending a corresponding patch to qemu-devel when I''ve got my qemu build environment sorted out. There are presently a few problems dogging keymap handling for the vnc console: * Some keystrokes that generate a symbol locally are ignored. * Some keystrokes in some keymaps generate the wrong scancode and thence the wrong character * The capslock key is handled inconsistently The first problem is typically caused by missing entries in the keymap. For example, the "Q" key in many European keyboards generates "@" and "Ω" in addition to the normal "q" and "Q" when used with the AltGr key. However, the keysym defintions in vnc_keysym.h are incomplete and so, for example, "Ω" will never be recognised even if it is in the keymap definition (which it often isn''t). The second problem is a little more subtle. The code presently assumes that there is a many-to-one mapping from keysyms to scancodes. So, for example, "q", "Q", "@" and "Ω" all generate the scancode 0x10. However, on a UK keyboard the "@" keysym can arise from typing either AltGr-Q (scancode 0x10) or Shift-apostrophe (scancode 0x28). For some keymaps this is particularly damaging -- for example in http://article.gmane.org/gmane.comp.emulators.qemu/32241 the "1", "4" and "6" keys should give "&", "''" (apostrophe) and "§" respectively but actually give "k", "b" and "s". The final problem is related to the numlock handling problem that was fixed fairly recently. For that particular problem, the various keysyms that are generated when the only when the numlock key is pressed or released result in an implicit press or release of the numlock key in order to change the state of the key. In the case of the capslock key, however, it isn''t, in general, possible to distinguish between a "A" generated from a capslock and one generated with a shift sequence. The following patches are designed to fix these problems. The first uses five keysym to scancode keymaps for plain, shifted, AltGr''d, shift-AltGr''d and numlocked keys to handle the many-to-many mapping from keysyms to scancodes. The current state of the shift and altgr keys that the guest is aware of is tracked and a keysym looked up in the corresponding map to find the right scancode. If the scancode is not defined in that keymap then the other keymaps are checked and implicit keypress or keyrelease events for shift and AltGr sent to produce the right scancode and modifier set to generate the correct keysym in the guest''s application. The first lookup means that the right scancode will be generated for a keysym in all but the most pathological of cases; the second lookup means that, for example, a client UK keyboard will work correctly against a guest Belgian keyboard because the implicit shift and AltGr keypresses and releases will do the necessary shuffling behind the scenes. The second patch adds the missing keysym names to vnc_keysym.h. Not all the X keysym names are in here, but there are enough to satisfy all the keysyms used by the keymaps presently defined. The third and final patch corrects most of the keymap definitions. The ones I haven''t changed are the ones I am unsure of -- the names do not always correspond that well to the xkb keymap names and for the non-european keyboards I have very little confidence that what I am typing is what is intended! There is a remaining problem with the numlock key handling which is beyond the scope of these patches: if software running in the guest toggles the numlock key (for example, the X server) then the behaviour of the numlock key may become inverted. Also note that the initial state of the numlock key was wrong in the existing code, but that was easy to fix. Finally, the two attached programs -- evkey.c and evconv.c -- can be used to help generate and test keymap definitions. The former, evkey, is Linux specific and matches up keysyms received through a small X window with the scancodes retrieved from a PS/2 keyboard (and it must be a PS/2 keyboard, USB keyboards generate different scancodes). The latter, evconv, uses the xen keymap to generate find the scancode and can be used to check that a keymap definition is going to give the expected scancodes for a given (X) keyboard mapping. Hopefully the comments at the head of each file will describe the intention sufficiently well. jch _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
John Haxby
2008-Dec-11 16:42 UTC
[Xen-devel] [PATCH 1 of 3][IOEMU] Fix keymap handling for vnc console
Fix keymap handling for international keyboards Signed-off-by: John Haxby <john.haxby@oracle.com> keymaps.c | 364 ++++++++++++++++++++++++++++++++++++-------------------------- vnc.c | 134 ++++++++-------------- 2 files changed, 264 insertions(+), 234 deletions(-) diff --git a/keymaps.c b/keymaps.c index 1984678..4029500 100644 --- a/keymaps.c +++ b/keymaps.c @@ -22,60 +22,62 @@ * THE SOFTWARE. */ +static int cmp_keysym(const void *a, const void *b) { + return strcmp(((name2keysym_t *) a)->name, ((name2keysym_t *) b)->name); +} + static int get_keysym(const char *name) { - name2keysym_t *p; - for(p = name2keysym; p->name != NULL; p++) { - if (!strcmp(p->name, name)) - return p->keysym; + static int n = -1; + int l, r, m; + + if (n < 0) { + for (n = 0; name2keysym[n].name; n++); + qsort(name2keysym, n, sizeof(name2keysym_t), cmp_keysym); + } + l = 0; + r = n-1; + while (l <= r) { + m = (l + r) / 2; + int cmp = strcmp(name2keysym[m].name, name); + if (cmp < 0) + l = m + 1; + else if (cmp > 0) + r = m - 1; + else + return name2keysym[m].keysym; + } + if (name[0] == ''U'') { + /* unicode symbol key */ + char *ptr; + int k = strtol(name+1, &ptr, 16); + return *ptr ? 0 : k; } return 0; } -struct key_range { - int start; - int end; - struct key_range *next; -}; +#define MAX_SCANCODE 256 +#define KEY_LOCALSTATE 0x1 +#define KEY_KEYPAD 0x2 -#define MAX_NORMAL_KEYCODE 512 -#define MAX_EXTRA_COUNT 256 typedef struct { - uint16_t keysym2keycode[MAX_NORMAL_KEYCODE]; - struct { - int keysym; - uint16_t keycode; - } keysym2keycode_extra[MAX_EXTRA_COUNT]; - int extra_count; - struct key_range *keypad_range; - struct key_range *numlock_range; - struct key_range *shift_range; - struct key_range *localstate_range; -} kbd_layout_t; + int keysym; + int keycode; +} keysym2keycode_t; -static void add_to_key_range(struct key_range **krp, int code) { - struct key_range *kr; - for (kr = *krp; kr; kr = kr->next) { - if (code >= kr->start && code <= kr->end) - break; - if (code == kr->start - 1) { - kr->start--; - break; - } - if (code == kr->end + 1) { - kr->end++; - break; - } - } - if (kr == NULL) { - kr = qemu_mallocz(sizeof(*kr)); - if (kr) { - kr->start = kr->end = code; - kr->next = *krp; - *krp = kr; - } - } -} +typedef struct { + int n; + keysym2keycode_t k[MAX_SCANCODE]; +} keysym_map_t; + +typedef struct { + keysym_map_t plain; + keysym_map_t shift; + keysym_map_t altgr; + keysym_map_t shift_altgr; + keysym_map_t numlock; + uint32_t flags [MAX_SCANCODE]; +} kbd_layout_t; static kbd_layout_t *parse_keyboard_layout(const char *language, kbd_layout_t * k) @@ -97,143 +99,209 @@ static kbd_layout_t *parse_keyboard_layout(const char *language, "Could not read keymap file: ''%s''\n", file_name); return 0; } - for(;;) { - if (fgets(line, 1024, f) == NULL) - break; - len = strlen(line); - if (len > 0 && line[len - 1] == ''\n'') - line[len - 1] = ''\0''; - if (line[0] == ''#'') + while (fgets(line, 1024, f)) { + char *ptr = strchr(line, ''#''); + char keyname[1024], p1[1024], p2[1024]; + int keysym, keycode; + int shift = 0; + int altgr = 0; + int addupper = 0; + int numlock = 0; + int inhibit = 0; + + if (ptr) + *ptr-- = ''\0''; + else + ptr = &line[strlen(line)-1]; + while (isspace(*ptr)) + *ptr-- = ''\0''; + if (!*line) + continue; + if (strncmp(line, "map ", 4) == 0) + continue; + if (sscanf(line, "include %s", p1) == 1) { + parse_keyboard_layout(p1, k); continue; - if (!strncmp(line, "map ", 4)) + } + if (sscanf(line, "%s %i %s %s", keyname, &keycode, p1, p2) == 4) { + shift = (strcmp(p1, "shift") == 0 || strcmp(p2, "shift") == 0); + altgr = (strcmp(p1, "altgr") == 0 || strcmp(p2, "altgr") == 0); + } else if (sscanf(line, "%s %i %s", keyname, &keycode, p1) == 3) { + shift = (strcmp(p1, "shift") == 0); + altgr = (strcmp(p1, "altgr") == 0); + addupper = (strcmp(p1, "addupper") == 0); + numlock = (strcmp(p1, "numlock") == 0); + inhibit = (strcmp(p1, "inhibit") == 0); + } else if (sscanf(line, "%s %i", keyname, &keycode) != 2) + /* silently ignore spurious lines */ + continue; + + if (inhibit) + continue; + if ((keysym = get_keysym(keyname)) == 0) { + fprintf(stderr, "%s: warning: unknown keysym %s\n", + file_name, keyname); continue; - if (!strncmp(line, "include ", 8)) { - parse_keyboard_layout(line + 8, k); - } else { - char *end_of_keysym = line; - while (*end_of_keysym != 0 && *end_of_keysym != '' '') - end_of_keysym++; - if (*end_of_keysym) { - int keysym; - *end_of_keysym = 0; - keysym = get_keysym(line); - if (keysym == 0) { - // fprintf(stderr, "Warning: unknown keysym %s\n", line); - } else { - const char *rest = end_of_keysym + 1; - char *rest2; - int keycode = strtol(rest, &rest2, 0); - - if (rest && strstr(rest, "numlock")) { - add_to_key_range(&k->keypad_range, keycode); - add_to_key_range(&k->numlock_range, keysym); - //fprintf(stderr, "keypad keysym %04x keycode %d\n", keysym, keycode); - } - if (rest && strstr(rest, "shift")) { - add_to_key_range(&k->shift_range, keysym); - //fprintf(stderr, "shift keysym %04x keycode %d\n", keysym, keycode); - } - if (rest && strstr(rest, "localstate")) { - add_to_key_range(&k->localstate_range, keycode); - //fprintf(stderr, "localstate keysym %04x keycode %d\n", keysym, keycode); - } - - /* if(keycode&0x80) - keycode=(keycode<<8)^0x80e0; */ - if (keysym < MAX_NORMAL_KEYCODE) { - //fprintf(stderr,"Setting keysym %s (%d) to %d\n",line,keysym,keycode); - k->keysym2keycode[keysym] = keycode; - } else { - if (k->extra_count >= MAX_EXTRA_COUNT) { - fprintf(stderr, - "Warning: Could not assign keysym %s (0x%x) because of memory constraints.\n", - line, keysym); - } else { -#if 0 - fprintf(stderr, "Setting %d: %d,%d\n", - k->extra_count, keysym, keycode); -#endif - k->keysym2keycode_extra[k->extra_count]. - keysym = keysym; - k->keysym2keycode_extra[k->extra_count]. - keycode = keycode; - k->extra_count++; - } - } - } - } + } + if (keycode <= 0 || keycode >= MAX_SCANCODE) { + fprintf(stderr, "%s: warning: keycode %#x for %s out of range\n", + file_name, keycode, keyname); + continue; + } + if (numlock) + k->numlock.k[keycode].keysym = keysym; + else if (shift && altgr) + k->shift_altgr.k[keycode].keysym = keysym; + else if (altgr) + k->altgr.k[keycode].keysym = keysym; + else if (shift) + k->shift.k[keycode].keysym = keysym; + else { + k->plain.k[keycode].keysym = keysym; + if (addupper) + k->shift.k[keycode].keysym = keysym + ''A'' - ''a''; } } fclose(f); return k; } +static int cmp_map (const void *a, const void *b) { + return ((keysym2keycode_t *) b)->keysym - ((keysym2keycode_t *) a)->keysym; +} + +static void sort_map (keysym_map_t *map) { + int i; + for (i = 0; i < MAX_SCANCODE; i++) + map->k[i].keycode = i; + /* sort undefined scancodes to the end */ + qsort(map->k, MAX_SCANCODE, sizeof(keysym2keycode_t), cmp_map); + for (map->n = 0; map->n < MAX_SCANCODE; map->n++) + if (!map->k[map->n].keysym) + break; +} + static void *init_keyboard_layout(const char *language) { - return parse_keyboard_layout(language, 0); + kbd_layout_t *k = parse_keyboard_layout(language, NULL); + if (k) { + int i; + for (i = 0; i < MAX_SCANCODE; i++) { + if (!(k->shift.k[i].keysym + || k->altgr.k[i].keysym + || k->shift_altgr.k[i].keysym)) + k->flags[i] |= KEY_LOCALSTATE; + if (k->numlock.k[i].keysym) + k->flags[i] |= KEY_KEYPAD; + } + sort_map(&k->plain); + sort_map(&k->shift); + sort_map(&k->altgr); + sort_map(&k->shift_altgr); + sort_map(&k->numlock); + } + return k; } -static int keysym2scancode(void *kbd_layout, int keysym) +static int keysym2scancode_map (keysym_map_t *map, int keysym) { - kbd_layout_t *k = kbd_layout; - if (keysym < MAX_NORMAL_KEYCODE) { - if (k->keysym2keycode[keysym] == 0) - fprintf(stderr, "Warning: no scancode found for keysym %d\n", - keysym); - return k->keysym2keycode[keysym]; - } else { - int i; -#ifdef XK_ISO_Left_Tab - if (keysym == XK_ISO_Left_Tab) - keysym = XK_Tab; -#endif - for (i = 0; i < k->extra_count; i++) - if (k->keysym2keycode_extra[i].keysym == keysym) - return k->keysym2keycode_extra[i].keycode; + int l = 0, r = map->n - 1, m; + while (l <= r) { + m = (l + r) / 2; + if (map->k[m].keysym == keysym) + return map->k[m].keycode; + else if (map->k[m].keysym < keysym) + r = m - 1; + else + l = m + 1; } return 0; } -static inline int keycode_is_keypad(void *kbd_layout, int keycode) +static int keysym2scancode(void *kbd_layout, int keysym) { kbd_layout_t *k = kbd_layout; - struct key_range *kr; + int scancode; - for (kr = k->keypad_range; kr; kr = kr->next) - if (keycode >= kr->start && keycode <= kr->end) - return 1; + if ((scancode = keysym2scancode_map(&k->plain, keysym))) + return scancode; + if ((scancode = keysym2scancode_map(&k->numlock, keysym))) + return scancode; + if ((scancode = keysym2scancode_map(&k->shift, keysym))) + return scancode; + if ((scancode = keysym2scancode_map(&k->altgr, keysym))) + return scancode; + if ((scancode = keysym2scancode_map(&k->shift_altgr, keysym))) + return scancode; return 0; } -static inline int keysym_is_numlock(void *kbd_layout, int keysym) +static int keysym2scancode1(void *kbd_layout, int keysym, + int *shift, int *altgr) { kbd_layout_t *k = kbd_layout; - struct key_range *kr; + int s; + + /* normal case: keysym can be found the expected modifier''s map */ + if (*shift && *altgr && (s = keysym2scancode_map(&k->shift_altgr, keysym))) + return s; + if (*altgr && (s = keysym2scancode_map(&k->altgr, keysym))) + return s; + if (*shift && (s = keysym2scancode_map(&k->shift, keysym))) + return s; + if ((s = keysym2scancode_map(&k->plain, keysym))) + return s; + if ((s = keysym2scancode_map(&k->numlock, keysym))) + return s; - for (kr = k->numlock_range; kr; kr = kr->next) - if (keysym >= kr->start && keysym <= kr->end) - return 1; + /* fallback for when there is some keyboard/state mismatch */ + if ((s = keysym2scancode_map(&k->plain, keysym))) { + *shift = 0; + *altgr = 0; + return s; + } + if ((s = keysym2scancode_map(&k->shift, keysym))) { + *shift = 1; + *altgr = 0; + return s; + } + if ((s = keysym2scancode_map(&k->altgr, keysym))) { + *shift = 0; + *altgr = 1; + return s; + } + if ((s = keysym2scancode_map(&k->shift_altgr, keysym))) { + *shift = 1; + *altgr = 1; + return s; + } return 0; -} +} -static inline int keysym_is_shift(void *kbd_layout, int keysym) +static int keycode_is_keypad(void *kbd_layout, int keycode) { kbd_layout_t *k = kbd_layout; - struct key_range *kr; - - for (kr = k->shift_range; kr; kr = kr->next) - if (keysym >= kr->start && keysym <= kr->end) - return 1; + if (keycode >= 0 && keycode < MAX_SCANCODE) + return !!(k->flags[keycode] & KEY_KEYPAD); return 0; } -static inline int keycode_is_shiftable(void *kbd_layout, int keycode) +static int keysym_is_numlock(void *kbd_layout, int keysym) +{ + kbd_layout_t *k = kbd_layout; + return (keysym2scancode_map(&k->numlock, keysym) != 0); +} + +static int keysym_is_shift(void *kbd_layout, int keysym) { kbd_layout_t *k = kbd_layout; - struct key_range *kr; + return (keysym2scancode_map(&k->shift, keysym) != 0); +} - for (kr = k->localstate_range; kr; kr = kr->next) - if (keycode >= kr->start && keycode <= kr->end) - return 0; - return 1; +static int keycode_is_shiftable(void *kbd_layout, int keycode) +{ + kbd_layout_t *k = kbd_layout; + if (keycode >= 0 || keycode < MAX_SCANCODE) + return !(k->flags[keycode] & KEY_LOCALSTATE); + return 0; } diff --git a/vnc.c b/vnc.c index 01e22e5..e19860c 100644 --- a/vnc.c +++ b/vnc.c @@ -1272,14 +1272,22 @@ static void pointer_event(VncState *vs, int button_mask, int x, int y) check_pointer_type_change(vs, kbd_mouse_is_absolute()); } +static void put_keycode(int keycode, int down) +{ + if (keycode & 0x80) + kbd_put_keycode(0xe0); + if (down) + kbd_put_keycode(keycode & 0x7f); + else + kbd_put_keycode(keycode | 0x80); +} + static void reset_keys(VncState *vs) { int i; for(i = 0; i < 256; i++) { if (vs->modifiers_state[i]) { - if (i & 0x80) - kbd_put_keycode(0xe0); - kbd_put_keycode(i | 0x80); + put_keycode(i, 0); vs->modifiers_state[i] = 0; } } @@ -1287,69 +1295,34 @@ static void reset_keys(VncState *vs) static void press_key(VncState *vs, int keysym) { - kbd_put_keycode(keysym2scancode(vs->kbd_layout, keysym) & 0x7f); - kbd_put_keycode(keysym2scancode(vs->kbd_layout, keysym) | 0x80); + put_keycode(keysym2scancode(vs->kbd_layout, keysym), 1); + put_keycode(keysym2scancode(vs->kbd_layout, keysym), 0); } -static void press_key_shift_down(VncState *vs, int down, int keycode) +static void twiddle_modifiers(VncState *vs, int down, int shift, int altgr) { - if (down) - kbd_put_keycode(0x2a & 0x7f); - - if (keycode & 0x80) - kbd_put_keycode(0xe0); - if (down) - kbd_put_keycode(keycode & 0x7f); - else - kbd_put_keycode(keycode | 0x80); - - if (!down) - kbd_put_keycode(0x2a | 0x80); -} - -static void press_key_shift_up(VncState *vs, int down, int keycode) -{ - if (down) { - if (vs->modifiers_state[0x2a]) - kbd_put_keycode(0x2a | 0x80); - if (vs->modifiers_state[0x36]) - kbd_put_keycode(0x36 | 0x80); - } - - if (keycode & 0x80) - kbd_put_keycode(0xe0); - if (down) - kbd_put_keycode(keycode & 0x7f); - else - kbd_put_keycode(keycode | 0x80); - - if (!down) { - if (vs->modifiers_state[0x2a]) - kbd_put_keycode(0x2a & 0x7f); - if (vs->modifiers_state[0x36]) - kbd_put_keycode(0x36 & 0x7f); - } + if (shift && !(vs->modifiers_state[0x2a] || vs->modifiers_state[0x36])) + put_keycode(0x2a, down); + if (!shift && vs->modifiers_state[0x2a]) + put_keycode(0x2a, !down); + if (!shift && vs->modifiers_state[0x36]) + put_keycode(0x36, !down); + if (altgr && !vs->modifiers_state[0xb8]) + put_keycode(0xb8, down); + if (!altgr && vs->modifiers_state[0xb8]) + put_keycode(0xb8, !down); } static void do_key_event(VncState *vs, int down, uint32_t sym) { int keycode; - int shift_keys = 0; + int altgr = 0; int shift = 0; int keypad = 0; - if (is_graphic_console()) { - if (sym >= ''A'' && sym <= ''Z'') { - sym = sym - ''A'' + ''a''; - shift = 1; - } - else { - shift = keysym_is_shift(vs->kbd_layout, sym & 0xFFFF); - } - } - shift_keys = vs->modifiers_state[0x2a] | vs->modifiers_state[0x36]; - - keycode = keysym2scancode(vs->kbd_layout, sym & 0xFFFF); + shift = (vs->modifiers_state[0x2a] || vs->modifiers_state[0x36]); + altgr = vs->modifiers_state[0xb8]; + keycode = keysym2scancode1(vs->kbd_layout, sym & 0xFFFF, &shift, &altgr); if (keycode == 0) { fprintf(stderr, "Key lost : keysym=0x%x(%d)\n", sym, sym); return; @@ -1362,17 +1335,9 @@ static void do_key_event(VncState *vs, int down, uint32_t sym) case 0x1d: /* Left CTRL */ case 0x9d: /* Right CTRL */ case 0x38: /* Left ALT */ - case 0xb8: /* Right ALT */ - if (keycode & 0x80) - kbd_put_keycode(0xe0); - if (down) { - vs->modifiers_state[keycode] = 1; - kbd_put_keycode(keycode & 0x7f); - } - else { - vs->modifiers_state[keycode] = 0; - kbd_put_keycode(keycode | 0x80); - } + case 0xb8: /* Right ALT aka AltGr */ + vs->modifiers_state[keycode] = down; + put_keycode(keycode, down); return; case 0x02 ... 0x0a: /* ''1'' to ''9'' keys */ if (down && vs->modifiers_state[0x1d] && vs->modifiers_state[0x38]) { @@ -1383,13 +1348,15 @@ static void do_key_event(VncState *vs, int down, uint32_t sym) } break; case 0x3a: /* CapsLock */ + if (is_graphic_console()) + return; case 0x45: /* NumLock */ if (down) { - kbd_put_keycode(keycode & 0x7f); + put_keycode(keycode, 1); } else { vs->modifiers_state[keycode] ^= 1; - kbd_put_keycode(keycode | 0x80); + put_keycode(keycode, 0); } return; } @@ -1398,7 +1365,10 @@ static void do_key_event(VncState *vs, int down, uint32_t sym) if (keypad) { /* If the numlock state needs to change then simulate an additional keypress before sending this one. This will happen if the user - toggles numlock away from the VNC window. + toggles numlock away from the VNC window. This isn''t perfect as + pressing the shift key will typically and temporarily have the + effect of inverting the numlock setting: the shift key will be + effectively cancelled out. */ if (keysym_is_numlock(vs->kbd_layout, sym & 0xFFFF)) { if (!vs->modifiers_state[0x45]) { @@ -1417,22 +1387,14 @@ static void do_key_event(VncState *vs, int down, uint32_t sym) /* If the shift state needs to change then simulate an additional keypress before sending this one. Ignore for non shiftable keys. */ - if (shift && !shift_keys) { - press_key_shift_down(vs, down, keycode); - return; - } - else if (!shift && shift_keys && !keypad && - keycode_is_shiftable(vs->kbd_layout, keycode)) { - press_key_shift_up(vs, down, keycode); - return; - } - - if (keycode & 0x80) - kbd_put_keycode(0xe0); - if (down) - kbd_put_keycode(keycode & 0x7f); - else - kbd_put_keycode(keycode | 0x80); + if (keycode_is_shiftable(vs->kbd_layout, keycode) && !keypad) { + if (down) + twiddle_modifiers(vs, down, shift, altgr); + put_keycode(keycode, down); + if (!down) + twiddle_modifiers(vs, down, shift, altgr); + } else + put_keycode(keycode, down); } else { /* QEMU console emulation */ if (down) { @@ -2528,7 +2490,7 @@ void vnc_display_init(DisplayState *ds) vs->kbd_layout = init_keyboard_layout(keyboard_layout); if (!vs->kbd_layout) exit(1); - vs->modifiers_state[0x45] = 1; /* NumLock on - on boot */ + vs->modifiers_state[0x45] = 0; /* NumLock off - on boot */ vs->ds->data = NULL; vs->ds->dpy_update = vnc_dpy_update; _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
John Haxby
2008-Dec-11 16:43 UTC
[Xen-devel] [PATCH 2 of 3][IOEMU] Fix keymap handling for vnc console
Additional keysym names needed for keymaps Signed-off-by: John Haxby <john.haxby@oracle.com> vnc_keysym.h | 819 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 784 insertions(+), 35 deletions(-) diff --git a/vnc_keysym.h b/vnc_keysym.h index aa0fd9b..226789a 100644 --- a/vnc_keysym.h +++ b/vnc_keysym.h @@ -262,6 +262,783 @@ static name2keysym_t name2keysym[]={ { "tcedilla", 0x01fe}, { "abovedot", 0x01ff}, + /* latin3 extensions */ + { "Hstroke", 0x02a1 }, + { "Hcircumflex", 0x02a6 }, + { "Iabovedot", 0x02a9 }, + { "Gbreve", 0x02ab }, + { "Jcircumflex", 0x02ac }, + { "hstroke", 0x02b1 }, + { "hcircumflex", 0x02b6 }, + { "idotless", 0x02b9 }, + { "gbreve", 0x02bb }, + { "jcircumflex", 0x02bc }, + { "Cabovedot", 0x02c5 }, + { "Ccircumflex", 0x02c6 }, + { "Gabovedot", 0x02d5 }, + { "Gcircumflex", 0x02d8 }, + { "Ubreve", 0x02dd }, + { "Scircumflex", 0x02de }, + { "cabovedot", 0x02e5 }, + { "ccircumflex", 0x02e6 }, + { "gabovedot", 0x02f5 }, + { "gcircumflex", 0x02f8 }, + { "ubreve", 0x02fd }, + { "scircumflex", 0x02fe }, + + /* latin4 extensions */ + { "kra", 0x03a2 }, + { "kappa", 0x03a2 }, + { "Rcedilla", 0x03a3 }, + { "Itilde", 0x03a5 }, + { "Lcedilla", 0x03a6 }, + { "Emacron", 0x03aa }, + { "Gcedilla", 0x03ab }, + { "Tslash", 0x03ac }, + { "rcedilla", 0x03b3 }, + { "itilde", 0x03b5 }, + { "lcedilla", 0x03b6 }, + { "emacron", 0x03ba }, + { "gcedilla", 0x03bb }, + { "tslash", 0x03bc }, + { "ENG", 0x03bd }, + { "eng", 0x03bf }, + { "Amacron", 0x03c0 }, + { "Iogonek", 0x03c7 }, + { "Eabovedot", 0x03cc }, + { "Imacron", 0x03cf }, + { "Ncedilla", 0x03d1 }, + { "Omacron", 0x03d2 }, + { "Kcedilla", 0x03d3 }, + { "Uogonek", 0x03d9 }, + { "Utilde", 0x03dd }, + { "Umacron", 0x03de }, + { "amacron", 0x03e0 }, + { "iogonek", 0x03e7 }, + { "eabovedot", 0x03ec }, + { "imacron", 0x03ef }, + { "ncedilla", 0x03f1 }, + { "omacron", 0x03f2 }, + { "kcedilla", 0x03f3 }, + { "uogonek", 0x03f9 }, + { "utilde", 0x03fd }, + { "umacron", 0x03fe }, + + /* latin8 extensions */ + { "Babovedot", 0x1001e02 }, + { "babovedot", 0x1001e03 }, + { "Dabovedot", 0x1001e0a }, + { "Wgrave", 0x1001e80 }, + { "Wacute", 0x1001e82 }, + { "dabovedot", 0x1001e0b }, + { "Ygrave", 0x1001ef2 }, + { "Fabovedot", 0x1001e1e }, + { "fabovedot", 0x1001e1f }, + { "Mabovedot", 0x1001e40 }, + { "mabovedot", 0x1001e41 }, + { "Pabovedot", 0x1001e56 }, + { "wgrave", 0x1001e81 }, + { "pabovedot", 0x1001e57 }, + { "wacute", 0x1001e83 }, + { "Sabovedot", 0x1001e60 }, + { "ygrave", 0x1001ef3 }, + { "Wdiaeresis", 0x1001e84 }, + { "wdiaeresis", 0x1001e85 }, + { "sabovedot", 0x1001e61 }, + { "Wcircumflex", 0x1000174 }, + { "Tabovedot", 0x1001e6a }, + { "Ycircumflex", 0x1000176 }, + { "wcircumflex", 0x1000175 }, + { "tabovedot", 0x1001e6b }, + { "ycircumflex", 0x1000177 }, + + /* latin9 extensions */ + { "OE", 0x13bc }, + { "oe", 0x13bd }, + { "Ydiaeresis", 0x13be }, + + /* katakana */ + { "overline", 0x047e }, + { "kana_fullstop", 0x04a1 }, + { "kana_openingbracket", 0x04a2 }, + { "kana_closingbracket", 0x04a3 }, + { "kana_comma", 0x04a4 }, + { "kana_conjunctive", 0x04a5 }, + { "kana_middledot", 0x04a5 }, + { "kana_WO", 0x04a6 }, + { "kana_a", 0x04a7 }, + { "kana_i", 0x04a8 }, + { "kana_u", 0x04a9 }, + { "kana_e", 0x04aa }, + { "kana_o", 0x04ab }, + { "kana_ya", 0x04ac }, + { "kana_yu", 0x04ad }, + { "kana_yo", 0x04ae }, + { "kana_tsu", 0x04af }, + { "kana_tu", 0x04af }, + { "prolongedsound", 0x04b0 }, + { "kana_A", 0x04b1 }, + { "kana_I", 0x04b2 }, + { "kana_U", 0x04b3 }, + { "kana_E", 0x04b4 }, + { "kana_O", 0x04b5 }, + { "kana_KA", 0x04b6 }, + { "kana_KI", 0x04b7 }, + { "kana_KU", 0x04b8 }, + { "kana_KE", 0x04b9 }, + { "kana_KO", 0x04ba }, + { "kana_SA", 0x04bb }, + { "kana_SHI", 0x04bc }, + { "kana_SU", 0x04bd }, + { "kana_SE", 0x04be }, + { "kana_SO", 0x04bf }, + { "kana_TA", 0x04c0 }, + { "kana_CHI", 0x04c1 }, + { "kana_TI", 0x04c1 }, + { "kana_TSU", 0x04c2 }, + { "kana_TU", 0x04c2 }, + { "kana_TE", 0x04c3 }, + { "kana_TO", 0x04c4 }, + { "kana_NA", 0x04c5 }, + { "kana_NI", 0x04c6 }, + { "kana_NU", 0x04c7 }, + { "kana_NE", 0x04c8 }, + { "kana_NO", 0x04c9 }, + { "kana_HA", 0x04ca }, + { "kana_HI", 0x04cb }, + { "kana_FU", 0x04cc }, + { "kana_HU", 0x04cc }, + { "kana_HE", 0x04cd }, + { "kana_HO", 0x04ce }, + { "kana_MA", 0x04cf }, + { "kana_MI", 0x04d0 }, + { "kana_MU", 0x04d1 }, + { "kana_ME", 0x04d2 }, + { "kana_MO", 0x04d3 }, + { "kana_YA", 0x04d4 }, + { "kana_YU", 0x04d5 }, + { "kana_YO", 0x04d6 }, + { "kana_RA", 0x04d7 }, + { "kana_RI", 0x04d8 }, + { "kana_RU", 0x04d9 }, + { "kana_RE", 0x04da }, + { "kana_RO", 0x04db }, + { "kana_WA", 0x04dc }, + { "kana_N", 0x04dd }, + { "voicedsound", 0x04de }, + { "semivoicedsound", 0x04df }, + { "kana_switch", 0xff7e }, + + /* arabic */ + { "Farsi_0", 0x10006f0 }, + { "Farsi_1", 0x10006f1 }, + { "Farsi_2", 0x10006f2 }, + { "Farsi_3", 0x10006f3 }, + { "Farsi_4", 0x10006f4 }, + { "Farsi_5", 0x10006f5 }, + { "Farsi_6", 0x10006f6 }, + { "Farsi_7", 0x10006f7 }, + { "Farsi_8", 0x10006f8 }, + { "Farsi_9", 0x10006f9 }, + { "Arabic_percent", 0x100066a }, + { "Arabic_superscript_alef", 0x1000670 }, + { "Arabic_tteh", 0x1000679 }, + { "Arabic_peh", 0x100067e }, + { "Arabic_tcheh", 0x1000686 }, + { "Arabic_ddal", 0x1000688 }, + { "Arabic_rreh", 0x1000691 }, + { "Arabic_comma", 0x05ac }, + { "Arabic_fullstop", 0x10006d4 }, + { "Arabic_0", 0x1000660 }, + { "Arabic_1", 0x1000661 }, + { "Arabic_2", 0x1000662 }, + { "Arabic_3", 0x1000663 }, + { "Arabic_4", 0x1000664 }, + { "Arabic_5", 0x1000665 }, + { "Arabic_6", 0x1000666 }, + { "Arabic_7", 0x1000667 }, + { "Arabic_8", 0x1000668 }, + { "Arabic_9", 0x1000669 }, + { "Arabic_semicolon", 0x05bb }, + { "Arabic_question_mark", 0x05bf }, + { "Arabic_hamza", 0x05c1 }, + { "Arabic_maddaonalef", 0x05c2 }, + { "Arabic_hamzaonalef", 0x05c3 }, + { "Arabic_hamzaonwaw", 0x05c4 }, + { "Arabic_hamzaunderalef", 0x05c5 }, + { "Arabic_hamzaonyeh", 0x05c6 }, + { "Arabic_alef", 0x05c7 }, + { "Arabic_beh", 0x05c8 }, + { "Arabic_tehmarbuta", 0x05c9 }, + { "Arabic_teh", 0x05ca }, + { "Arabic_theh", 0x05cb }, + { "Arabic_jeem", 0x05cc }, + { "Arabic_hah", 0x05cd }, + { "Arabic_khah", 0x05ce }, + { "Arabic_dal", 0x05cf }, + { "Arabic_thal", 0x05d0 }, + { "Arabic_ra", 0x05d1 }, + { "Arabic_zain", 0x05d2 }, + { "Arabic_seen", 0x05d3 }, + { "Arabic_sheen", 0x05d4 }, + { "Arabic_sad", 0x05d5 }, + { "Arabic_dad", 0x05d6 }, + { "Arabic_tah", 0x05d7 }, + { "Arabic_zah", 0x05d8 }, + { "Arabic_ain", 0x05d9 }, + { "Arabic_ghain", 0x05da }, + { "Arabic_tatweel", 0x05e0 }, + { "Arabic_feh", 0x05e1 }, + { "Arabic_qaf", 0x05e2 }, + { "Arabic_kaf", 0x05e3 }, + { "Arabic_lam", 0x05e4 }, + { "Arabic_meem", 0x05e5 }, + { "Arabic_noon", 0x05e6 }, + { "Arabic_ha", 0x05e7 }, + { "Arabic_heh", 0x05e7 }, + { "Arabic_waw", 0x05e8 }, + { "Arabic_alefmaksura", 0x05e9 }, + { "Arabic_yeh", 0x05ea }, + { "Arabic_fathatan", 0x05eb }, + { "Arabic_dammatan", 0x05ec }, + { "Arabic_kasratan", 0x05ed }, + { "Arabic_fatha", 0x05ee }, + { "Arabic_damma", 0x05ef }, + { "Arabic_kasra", 0x05f0 }, + { "Arabic_shadda", 0x05f1 }, + { "Arabic_sukun", 0x05f2 }, + { "Arabic_madda_above", 0x1000653 }, + { "Arabic_hamza_above", 0x1000654 }, + { "Arabic_hamza_below", 0x1000655 }, + { "Arabic_jeh", 0x1000698 }, + { "Arabic_veh", 0x10006a4 }, + { "Arabic_keheh", 0x10006a9 }, + { "Arabic_gaf", 0x10006af }, + { "Arabic_noon_ghunna", 0x10006ba }, + { "Arabic_heh_doachashmee", 0x10006be }, + { "Farsi_yeh", 0x10006cc }, + { "Arabic_farsi_yeh", 0x10006cc }, + { "Arabic_yeh_baree", 0x10006d2 }, + { "Arabic_heh_goal", 0x10006c1 }, + { "Arabic_switch", 0xff7e }, + + /* japanese keyboard */ + { "Kanji", 0xff21 }, + { "BackApostrophe", 0xff21 }, /* ??? */ + { "Muhenkan", 0xff22 }, + { "Henkan_Mode", 0xff23 }, + { "Henkan", 0xff23 }, + { "Henkan_Mode_Real", 0xff23 }, /* deprecated */ + { "Romaji", 0xff24 }, + { "Hiragana", 0xff25 }, + { "Katakana_Real", 0xff25 }, /* deprecated */ + { "Katakana", 0xff26 }, + { "Hiragana_Katakana", 0xff27 }, + { "Zenkaku", 0xff28 }, + { "Hankaku", 0xff29 }, + { "Zenkaku_Hankaku", 0xff2a }, + { "Touroku", 0xff2b }, + { "Massyo", 0xff2c }, + { "Kana_Lock", 0xff2d }, + { "Kana_Shift", 0xff2e }, + { "Eisu_Shift", 0xff2f }, + { "Eisu_toggle", 0xff30 }, + { "Kanji_Bangou", 0xff37 }, + { "Zen_Koho", 0xff3d }, + { "Mae_Koho", 0xff3e }, + { "Henkan_Mode_Ultra", 0xff3e }, /* deprecated */ + { "backslash_ja", 0xffa5 }, /* ??? */ + + /* dead keys */ + { "dead_grave", 0xfe50 }, + { "dead_acute", 0xfe51 }, + { "dead_circumflex", 0xfe52 }, + { "dead_tilde", 0xfe53 }, + { "dead_macron", 0xfe54 }, + { "dead_breve", 0xfe55 }, + { "dead_abovedot", 0xfe56 }, + { "dead_diaeresis", 0xfe57 }, + { "dead_abovering", 0xfe58 }, + { "dead_doubleacute", 0xfe59 }, + { "dead_caron", 0xfe5a }, + { "dead_cedilla", 0xfe5b }, + { "dead_ogonek", 0xfe5c }, + { "dead_iota", 0xfe5d }, + { "dead_voiced_sound", 0xfe5e }, + { "dead_semivoiced_sound", 0xfe5f }, + { "dead_belowdot", 0xfe60 }, + { "dead_hook", 0xfe61 }, + { "dead_horn", 0xfe62 }, + { "dead_stroke", 0xfe63 }, + { "dead_abovecomma", 0xfe64 }, + { "dead_psili", 0xfe64 }, + { "dead_abovereversedcomma", 0xfe65 }, + { "dead_dasia", 0xfe66 }, + { "dead_belowring", 0xfe67 }, + { "dead_belowmacron", 0xfe68 }, + { "dead_belowcircumflex", 0xfe69 }, + { "dead_belowtilde", 0xfe6a }, + { "dead_belowbreve", 0xfe6b }, + { "dead_belowdiaeresis", 0xfe6c }, + + /* cyrillic */ + { "Cyrillic_GHE_bar", 0x1000492 }, + { "Cyrillic_ghe_bar", 0x1000493 }, + { "Cyrillic_ZHE_descender", 0x1000496 }, + { "Cyrillic_zhe_descender", 0x1000497 }, + { "Cyrillic_KA_descender", 0x100049a }, + { "Cyrillic_ka_descender", 0x100049b }, + { "Cyrillic_KA_vertstroke", 0x100049c }, + { "Cyrillic_ka_vertstroke", 0x100049d }, + { "Cyrillic_EN_descender", 0x10004a2 }, + { "Cyrillic_en_descender", 0x10004a3 }, + { "Cyrillic_U_straight", 0x10004ae }, + { "Cyrillic_u_straight", 0x10004af }, + { "Cyrillic_U_straight_bar", 0x10004b0 }, + { "Cyrillic_u_straight_bar", 0x10004b1 }, + { "Cyrillic_HA_descender", 0x10004b2 }, + { "Cyrillic_ha_descender", 0x10004b3 }, + { "Cyrillic_CHE_descender", 0x10004b6 }, + { "Cyrillic_che_descender", 0x10004b7 }, + { "Cyrillic_CHE_vertstroke", 0x10004b8 }, + { "Cyrillic_che_vertstroke", 0x10004b9 }, + { "Cyrillic_SHHA", 0x10004ba }, + { "Cyrillic_shha", 0x10004bb }, + { "Cyrillic_SCHWA", 0x10004d8 }, + { "Cyrillic_schwa", 0x10004d9 }, + { "Cyrillic_I_macron", 0x10004e2 }, + { "Cyrillic_i_macron", 0x10004e3 }, + { "Cyrillic_O_bar", 0x10004e8 }, + { "Cyrillic_o_bar", 0x10004e9 }, + { "Cyrillic_U_macron", 0x10004ee }, + { "Cyrillic_u_macron", 0x10004ef }, + { "Serbian_dje", 0x06a1 }, + { "Macedonia_gje", 0x06a2 }, + { "Cyrillic_io", 0x06a3 }, + { "Ukrainian_ie", 0x06a4 }, + { "Ukranian_je", 0x06a4 }, + { "Macedonia_dse", 0x06a5 }, + { "Ukrainian_i", 0x06a6 }, + { "Ukranian_i", 0x06a6 }, + { "Ukrainian_yi", 0x06a7 }, + { "Ukranian_yi", 0x06a7 }, + { "Cyrillic_je", 0x06a8 }, + { "Serbian_je", 0x06a8 }, + { "Cyrillic_lje", 0x06a9 }, + { "Serbian_lje", 0x06a9 }, + { "Cyrillic_nje", 0x06aa }, + { "Serbian_nje", 0x06aa }, + { "Serbian_tshe", 0x06ab }, + { "Macedonia_kje", 0x06ac }, + { "Ukrainian_ghe_with_upturn", 0x06ad }, + { "Byelorussian_shortu", 0x06ae }, + { "Cyrillic_dzhe", 0x06af }, + { "Serbian_dze", 0x06af }, + { "numerosign", 0x06b0 }, + { "Serbian_DJE", 0x06b1 }, + { "Macedonia_GJE", 0x06b2 }, + { "Cyrillic_IO", 0x06b3 }, + { "Ukrainian_IE", 0x06b4 }, + { "Ukranian_JE", 0x06b4 }, + { "Macedonia_DSE", 0x06b5 }, + { "Ukrainian_I", 0x06b6 }, + { "Ukranian_I", 0x06b6 }, + { "Ukrainian_YI", 0x06b7 }, + { "Ukranian_YI", 0x06b7 }, + { "Cyrillic_JE", 0x06b8 }, + { "Serbian_JE", 0x06b8 }, + { "Cyrillic_LJE", 0x06b9 }, + { "Serbian_LJE", 0x06b9 }, + { "Cyrillic_NJE", 0x06ba }, + { "Serbian_NJE", 0x06ba }, + { "Serbian_TSHE", 0x06bb }, + { "Macedonia_KJE", 0x06bc }, + { "Ukrainian_GHE_WITH_UPTURN", 0x06bd }, + { "Byelorussian_SHORTU", 0x06be }, + { "Cyrillic_DZHE", 0x06bf }, + { "Serbian_DZE", 0x06bf }, + { "Cyrillic_yu", 0x06c0 }, + { "Cyrillic_a", 0x06c1 }, + { "Cyrillic_be", 0x06c2 }, + { "Cyrillic_tse", 0x06c3 }, + { "Cyrillic_de", 0x06c4 }, + { "Cyrillic_ie", 0x06c5 }, + { "Cyrillic_ef", 0x06c6 }, + { "Cyrillic_ghe", 0x06c7 }, + { "Cyrillic_ha", 0x06c8 }, + { "Cyrillic_i", 0x06c9 }, + { "Cyrillic_shorti", 0x06ca }, + { "Cyrillic_ka", 0x06cb }, + { "Cyrillic_el", 0x06cc }, + { "Cyrillic_em", 0x06cd }, + { "Cyrillic_en", 0x06ce }, + { "Cyrillic_o", 0x06cf }, + { "Cyrillic_pe", 0x06d0 }, + { "Cyrillic_ya", 0x06d1 }, + { "Cyrillic_er", 0x06d2 }, + { "Cyrillic_es", 0x06d3 }, + { "Cyrillic_te", 0x06d4 }, + { "Cyrillic_u", 0x06d5 }, + { "Cyrillic_zhe", 0x06d6 }, + { "Cyrillic_ve", 0x06d7 }, + { "Cyrillic_softsign", 0x06d8 }, + { "Cyrillic_yeru", 0x06d9 }, + { "Cyrillic_ze", 0x06da }, + { "Cyrillic_sha", 0x06db }, + { "Cyrillic_e", 0x06dc }, + { "Cyrillic_shcha", 0x06dd }, + { "Cyrillic_che", 0x06de }, + { "Cyrillic_hardsign", 0x06df }, + { "Cyrillic_YU", 0x06e0 }, + { "Cyrillic_A", 0x06e1 }, + { "Cyrillic_BE", 0x06e2 }, + { "Cyrillic_TSE", 0x06e3 }, + { "Cyrillic_DE", 0x06e4 }, + { "Cyrillic_IE", 0x06e5 }, + { "Cyrillic_EF", 0x06e6 }, + { "Cyrillic_GHE", 0x06e7 }, + { "Cyrillic_HA", 0x06e8 }, + { "Cyrillic_I", 0x06e9 }, + { "Cyrillic_SHORTI", 0x06ea }, + { "Cyrillic_KA", 0x06eb }, + { "Cyrillic_EL", 0x06ec }, + { "Cyrillic_EM", 0x06ed }, + { "Cyrillic_EN", 0x06ee }, + { "Cyrillic_O", 0x06ef }, + { "Cyrillic_PE", 0x06f0 }, + { "Cyrillic_YA", 0x06f1 }, + { "Cyrillic_ER", 0x06f2 }, + { "Cyrillic_ES", 0x06f3 }, + { "Cyrillic_TE", 0x06f4 }, + { "Cyrillic_U", 0x06f5 }, + { "Cyrillic_ZHE", 0x06f6 }, + { "Cyrillic_VE", 0x06f7 }, + { "Cyrillic_SOFTSIGN", 0x06f8 }, + { "Cyrillic_YERU", 0x06f9 }, + { "Cyrillic_ZE", 0x06fa }, + { "Cyrillic_SHA", 0x06fb }, + { "Cyrillic_E", 0x06fc }, + { "Cyrillic_SHCHA", 0x06fd }, + { "Cyrillic_CHE", 0x06fe }, + { "Cyrillic_HARDSIGN", 0x06ff }, + + /* Greek */ + { "Greek_ALPHAaccent", 0x07a1 }, + { "Greek_EPSILONaccent", 0x07a2 }, + { "Greek_ETAaccent", 0x07a3 }, + { "Greek_IOTAaccent", 0x07a4 }, + { "Greek_IOTAdieresis", 0x07a5 }, + { "Greek_IOTAdiaeresis", 0x07a5 }, + { "Greek_OMICRONaccent", 0x07a7 }, + { "Greek_UPSILONaccent", 0x07a8 }, + { "Greek_UPSILONdieresis", 0x07a9 }, + { "Greek_OMEGAaccent", 0x07ab }, + { "Greek_accentdieresis", 0x07ae }, + { "Greek_horizbar", 0x07af }, + { "Greek_alphaaccent", 0x07b1 }, + { "Greek_epsilonaccent", 0x07b2 }, + { "Greek_etaaccent", 0x07b3 }, + { "Greek_iotaaccent", 0x07b4 }, + { "Greek_iotadieresis", 0x07b5 }, + { "Greek_iotaaccentdieresis", 0x07b6 }, + { "Greek_omicronaccent", 0x07b7 }, + { "Greek_upsilonaccent", 0x07b8 }, + { "Greek_upsilondieresis", 0x07b9 }, + { "Greek_upsilonaccentdieresis", 0x07ba }, + { "Greek_omegaaccent", 0x07bb }, + { "Greek_ALPHA", 0x07c1 }, + { "Greek_BETA", 0x07c2 }, + { "Greek_GAMMA", 0x07c3 }, + { "Greek_DELTA", 0x07c4 }, + { "Greek_EPSILON", 0x07c5 }, + { "Greek_ZETA", 0x07c6 }, + { "Greek_ETA", 0x07c7 }, + { "Greek_THETA", 0x07c8 }, + { "Greek_IOTA", 0x07c9 }, + { "Greek_KAPPA", 0x07ca }, + { "Greek_LAMDA", 0x07cb }, + { "Greek_LAMBDA", 0x07cb }, + { "Greek_MU", 0x07cc }, + { "Greek_NU", 0x07cd }, + { "Greek_XI", 0x07ce }, + { "Greek_OMICRON", 0x07cf }, + { "Greek_PI", 0x07d0 }, + { "Greek_RHO", 0x07d1 }, + { "Greek_SIGMA", 0x07d2 }, + { "Greek_TAU", 0x07d4 }, + { "Greek_UPSILON", 0x07d5 }, + { "Greek_PHI", 0x07d6 }, + { "Greek_CHI", 0x07d7 }, + { "Greek_PSI", 0x07d8 }, + { "Greek_OMEGA", 0x07d9 }, + { "Greek_alpha", 0x07e1 }, + { "Greek_beta", 0x07e2 }, + { "Greek_gamma", 0x07e3 }, + { "Greek_delta", 0x07e4 }, + { "Greek_epsilon", 0x07e5 }, + { "Greek_zeta", 0x07e6 }, + { "Greek_eta", 0x07e7 }, + { "Greek_theta", 0x07e8 }, + { "Greek_iota", 0x07e9 }, + { "Greek_kappa", 0x07ea }, + { "Greek_lamda", 0x07eb }, + { "Greek_lambda", 0x07eb }, + { "Greek_mu", 0x07ec }, + { "Greek_nu", 0x07ed }, + { "Greek_xi", 0x07ee }, + { "Greek_omicron", 0x07ef }, + { "Greek_pi", 0x07f0 }, + { "Greek_rho", 0x07f1 }, + { "Greek_sigma", 0x07f2 }, + { "Greek_finalsmallsigma", 0x07f3 }, + { "Greek_tau", 0x07f4 }, + { "Greek_upsilon", 0x07f5 }, + { "Greek_phi", 0x07f6 }, + { "Greek_chi", 0x07f7 }, + { "Greek_psi", 0x07f8 }, + { "Greek_omega", 0x07f9 }, + { "Greek_switch", 0xff7e }, + + /* technical */ + { "leftradical", 0x08a1 }, + { "topleftradical", 0x08a2 }, + { "horizconnector", 0x08a3 }, + { "topintegral", 0x08a4 }, + { "botintegral", 0x08a5 }, + { "vertconnector", 0x08a6 }, + { "topleftsqbracket", 0x08a7 }, + { "botleftsqbracket", 0x08a8 }, + { "toprightsqbracket", 0x08a9 }, + { "botrightsqbracket", 0x08aa }, + { "topleftparens", 0x08ab }, + { "botleftparens", 0x08ac }, + { "toprightparens", 0x08ad }, + { "botrightparens", 0x08ae }, + { "leftmiddlecurlybrace", 0x08af }, + { "rightmiddlecurlybrace", 0x08b0 }, + { "topleftsummation", 0x08b1 }, + { "botleftsummation", 0x08b2 }, + { "topvertsummationconnector", 0x08b3 }, + { "botvertsummationconnector", 0x08b4 }, + { "toprightsummation", 0x08b5 }, + { "botrightsummation", 0x08b6 }, + { "rightmiddlesummation", 0x08b7 }, + { "lessthanequal", 0x08bc }, + { "notequal", 0x08bd }, + { "greaterthanequal", 0x08be }, + { "integral", 0x08bf }, + { "therefore", 0x08c0 }, + { "variation", 0x08c1 }, + { "infinity", 0x08c2 }, + { "nabla", 0x08c5 }, + { "approximate", 0x08c8 }, + { "similarequal", 0x08c9 }, + { "ifonlyif", 0x08cd }, + { "implies", 0x08ce }, + { "identical", 0x08cf }, + { "radical", 0x08d6 }, + { "includedin", 0x08da }, + { "includes", 0x08db }, + { "intersection", 0x08dc }, + { "union", 0x08dd }, + { "logicaland", 0x08de }, + { "logicalor", 0x08df }, + { "partialderivative", 0x08ef }, + { "function", 0x08f6 }, + { "leftarrow", 0x08fb }, + { "uparrow", 0x08fc }, + { "rightarrow", 0x08fd }, + { "downarrow", 0x08fe }, + + /* publishing */ + { "emspace", 0x0aa1 }, + { "enspace", 0x0aa2 }, + { "em3space", 0x0aa3 }, + { "em4space", 0x0aa4 }, + { "digitspace", 0x0aa5 }, + { "punctspace", 0x0aa6 }, + { "thinspace", 0x0aa7 }, + { "hairspace", 0x0aa8 }, + { "emdash", 0x0aa9 }, + { "endash", 0x0aaa }, + { "signifblank", 0x0aac }, + { "ellipsis", 0x0aae }, + { "doubbaselinedot", 0x0aaf }, + { "onethird", 0x0ab0 }, + { "twothirds", 0x0ab1 }, + { "onefifth", 0x0ab2 }, + { "twofifths", 0x0ab3 }, + { "threefifths", 0x0ab4 }, + { "fourfifths", 0x0ab5 }, + { "onesixth", 0x0ab6 }, + { "fivesixths", 0x0ab7 }, + { "careof", 0x0ab8 }, + { "figdash", 0x0abb }, + { "leftanglebracket", 0x0abc }, + { "decimalpoint", 0x0abd }, + { "rightanglebracket", 0x0abe }, + { "marker", 0x0abf }, + { "oneeighth", 0x0ac3 }, + { "threeeighths", 0x0ac4 }, + { "fiveeighths", 0x0ac5 }, + { "seveneighths", 0x0ac6 }, + { "trademark", 0x0ac9 }, + { "signaturemark", 0x0aca }, + { "trademarkincircle", 0x0acb }, + { "leftopentriangle", 0x0acc }, + { "rightopentriangle", 0x0acd }, + { "emopencircle", 0x0ace }, + { "emopenrectangle", 0x0acf }, + { "leftsinglequotemark", 0x0ad0 }, + { "rightsinglequotemark", 0x0ad1 }, + { "leftdoublequotemark", 0x0ad2 }, + { "rightdoublequotemark", 0x0ad3 }, + { "prescription", 0x0ad4 }, + { "minutes", 0x0ad6 }, + { "seconds", 0x0ad7 }, + { "latincross", 0x0ad9 }, + { "hexagram", 0x0ada }, + { "filledrectbullet", 0x0adb }, + { "filledlefttribullet", 0x0adc }, + { "filledrighttribullet", 0x0add }, + { "emfilledcircle", 0x0ade }, + { "emfilledrect", 0x0adf }, + { "enopencircbullet", 0x0ae0 }, + { "enopensquarebullet", 0x0ae1 }, + { "openrectbullet", 0x0ae2 }, + { "opentribulletup", 0x0ae3 }, + { "opentribulletdown", 0x0ae4 }, + { "openstar", 0x0ae5 }, + { "enfilledcircbullet", 0x0ae6 }, + { "enfilledsqbullet", 0x0ae7 }, + { "filledtribulletup", 0x0ae8 }, + { "filledtribulletdown", 0x0ae9 }, + { "leftpointer", 0x0aea }, + { "rightpointer", 0x0aeb }, + { "club", 0x0aec }, + { "diamond", 0x0aed }, + { "heart", 0x0aee }, + { "maltesecross", 0x0af0 }, + { "dagger", 0x0af1 }, + { "doubledagger", 0x0af2 }, + { "checkmark", 0x0af3 }, + { "ballotcross", 0x0af4 }, + { "musicalsharp", 0x0af5 }, + { "musicalflat", 0x0af6 }, + { "malesymbol", 0x0af7 }, + { "femalesymbol", 0x0af8 }, + { "telephone", 0x0af9 }, + { "telephonerecorder", 0x0afa }, + { "phonographcopyright", 0x0afb }, + { "caret", 0x0afc }, + { "singlelowquotemark", 0x0afd }, + { "doublelowquotemark", 0x0afe }, + { "cursor", 0x0aff }, + + /* Caucasus */ + { "Xabovedot", 0x1001e8a }, + { "Ibreve", 0x100012c }, + { "Zstroke", 0x10001b5 }, + { "Gcaron", 0x10001e6 }, + { "Ocaron", 0x10001d1 }, + { "Obarred", 0x100019f }, + { "xabovedot", 0x1001e8b }, + { "ibreve", 0x100012d }, + { "zstroke", 0x10001b6 }, + { "gcaron", 0x10001e7 }, + { "ocaron", 0x10001d2 }, + { "obarred", 0x1000275 }, + { "SCHWA", 0x100018f }, + { "schwa", 0x1000259 }, + { "Lbelowdot", 0x1001e36 }, + { "lbelowdot", 0x1001e37 }, + + /* Thai */ + { "Thai_kokai", 0x0da1 }, + { "Thai_khokhai", 0x0da2 }, + { "Thai_khokhuat", 0x0da3 }, + { "Thai_khokhwai", 0x0da4 }, + { "Thai_khokhon", 0x0da5 }, + { "Thai_khorakhang", 0x0da6 }, + { "Thai_ngongu", 0x0da7 }, + { "Thai_chochan", 0x0da8 }, + { "Thai_choching", 0x0da9 }, + { "Thai_chochang", 0x0daa }, + { "Thai_soso", 0x0dab }, + { "Thai_chochoe", 0x0dac }, + { "Thai_yoying", 0x0dad }, + { "Thai_dochada", 0x0dae }, + { "Thai_topatak", 0x0daf }, + { "Thai_thothan", 0x0db0 }, + { "Thai_thonangmontho", 0x0db1 }, + { "Thai_thophuthao", 0x0db2 }, + { "Thai_nonen", 0x0db3 }, + { "Thai_dodek", 0x0db4 }, + { "Thai_totao", 0x0db5 }, + { "Thai_thothung", 0x0db6 }, + { "Thai_thothahan", 0x0db7 }, + { "Thai_thothong", 0x0db8 }, + { "Thai_nonu", 0x0db9 }, + { "Thai_bobaimai", 0x0dba }, + { "Thai_popla", 0x0dbb }, + { "Thai_phophung", 0x0dbc }, + { "Thai_fofa", 0x0dbd }, + { "Thai_phophan", 0x0dbe }, + { "Thai_fofan", 0x0dbf }, + { "Thai_phosamphao", 0x0dc0 }, + { "Thai_moma", 0x0dc1 }, + { "Thai_yoyak", 0x0dc2 }, + { "Thai_rorua", 0x0dc3 }, + { "Thai_ru", 0x0dc4 }, + { "Thai_loling", 0x0dc5 }, + { "Thai_lu", 0x0dc6 }, + { "Thai_wowaen", 0x0dc7 }, + { "Thai_sosala", 0x0dc8 }, + { "Thai_sorusi", 0x0dc9 }, + { "Thai_sosua", 0x0dca }, + { "Thai_hohip", 0x0dcb }, + { "Thai_lochula", 0x0dcc }, + { "Thai_oang", 0x0dcd }, + { "Thai_honokhuk", 0x0dce }, + { "Thai_paiyannoi", 0x0dcf }, + { "Thai_saraa", 0x0dd0 }, + { "Thai_maihanakat", 0x0dd1 }, + { "Thai_saraaa", 0x0dd2 }, + { "Thai_saraam", 0x0dd3 }, + { "Thai_sarai", 0x0dd4 }, + { "Thai_saraii", 0x0dd5 }, + { "Thai_saraue", 0x0dd6 }, + { "Thai_sarauee", 0x0dd7 }, + { "Thai_sarau", 0x0dd8 }, + { "Thai_sarauu", 0x0dd9 }, + { "Thai_phinthu", 0x0dda }, + { "Thai_maihanakat_maitho", 0x0dde }, + { "Thai_baht", 0x0ddf }, + { "Thai_sarae", 0x0de0 }, + { "Thai_saraae", 0x0de1 }, + { "Thai_sarao", 0x0de2 }, + { "Thai_saraaimaimuan", 0x0de3 }, + { "Thai_saraaimaimalai", 0x0de4 }, + { "Thai_lakkhangyao", 0x0de5 }, + { "Thai_maiyamok", 0x0de6 }, + { "Thai_maitaikhu", 0x0de7 }, + { "Thai_maiek", 0x0de8 }, + { "Thai_maitho", 0x0de9 }, + { "Thai_maitri", 0x0dea }, + { "Thai_maichattawa", 0x0deb }, + { "Thai_thanthakhat", 0x0dec }, + { "Thai_nikhahit", 0x0ded }, + { "Thai_leksun", 0x0df0 }, + { "Thai_leknung", 0x0df1 }, + { "Thai_leksong", 0x0df2 }, + { "Thai_leksam", 0x0df3 }, + { "Thai_leksi", 0x0df4 }, + { "Thai_lekha", 0x0df5 }, + { "Thai_lekhok", 0x0df6 }, + { "Thai_lekchet", 0x0df7 }, + { "Thai_lekpaet", 0x0df8 }, + { "Thai_lekkao", 0x0df9 }, + /* modifiers */ {"Control_L", 0xffe3}, /* XK_Control_L */ {"Control_R", 0xffe4}, /* XK_Control_R */ @@ -339,48 +1116,20 @@ static name2keysym_t name2keysym[]={ {"KP_Multiply", 0xffaa}, /* XK_KP_Multiply */ {"KP_Subtract", 0xffad}, /* XK_KP_Subtract */ {"help", 0xff6a}, /* XK_Help */ + { "Break", 0xff6b }, {"Menu", 0xff67}, /* XK_Menu */ {"Print", 0xff61}, /* XK_Print */ + { "Execute", 0xff62 }, {"Mode_switch", 0xff7e}, /* XK_Mode_switch */ {"Num_Lock", 0xff7f}, /* XK_Num_Lock */ {"Pause", 0xff13}, /* XK_Pause */ {"Escape", 0xff1b}, /* XK_Escape */ {"ISO_Left_Tab", 0xfe20},/* XK_ISO_Left_Tab */ + { "Multi_key", 0xff20 }, + { "ISO_Next_Group", 0xfe08 }, + { "ISO_First_Group", 0xfe0c }, + { "ISO_Last_Group", 0xfe0e }, - /* localized keys */ -{"BackApostrophe", 0xff21}, -{"Muhenkan", 0xff22}, -{"Katakana", 0xff27}, -{"Hankaku", 0xff29}, -{"Zenkaku_Hankaku", 0xff2a}, -{"Henkan_Mode_Real", 0xff23}, -{"Henkan_Mode_Ultra", 0xff3e}, -{"backslash_ja", 0xffa5}, -{"Katakana_Real", 0xff25}, -{"Eisu_toggle", 0xff30}, - - /* dead keys */ -{"dead_grave", 0xfe50}, -{"dead_acute", 0xfe51}, -{"dead_circumflex", 0xfe52}, -{"dead_tilde", 0xfe53}, -{"dead_macron", 0xfe54}, -{"dead_brev", 0xfe55}, -{"dead_abovedot", 0xfe56}, -{"dead_diaeresis", 0xfe57}, -{"dead_abovering", 0xfe58}, -{"dead_doubleacute", 0xfe59}, -{"dead_caron", 0xfe5a}, -{"dead_cedilla", 0xfe5b}, -{"dead_ogonek", 0xfe5c}, -{"dead_iota", 0xfe5d}, -{"dead_voiced_sound", 0xfe5e}, -{"dead_semivoiced_sound", 0xfe5f}, -{"dead_belowdot", 0xfe60}, -{"dead_hook", 0xfe61}, -{"dead_horn", 0xfe62}, - - -{0,0}, + {0,0}, }; _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
John Haxby
2008-Dec-11 16:44 UTC
[Xen-devel] [PATCH 3 of 3][IOEMU] Fix keymap handling for vnc console
Corrected keymap definitions Signed-off-by: John Haxby <john.haxby@oracle.com> common | 9 ++-- da | 24 +++++++++--- de | 31 ++++++++++++--- de-ch | 18 ++++----- en-gb | 14 ++++++- es | 36 +++++++++++++++--- et | 93 +++++++++++++++++++++++++++++++++++++++++----- fi | 123 +++++++++++++++++++++++++++++--------------------------------- fo | 99 ++++++++++++++++++++++++++++++++++++++++++++++--- fr | 34 ++++++++++++++--- fr-be | 12 ++++-- hr | 40 ++++++++++++-------- hu | 105 ++++++++++++++++++++++++++++++++++++---------------- is | 94 ++++++++++++++++++++++------------------------- it | 42 ++++++++++++++------- modifiers | 10 ++--- nl | 86 +++++++++++++++++++++++++++++++++++++++---- no | 24 +++++++++--- sv | 8 ++-- tr | 88 ++++++++++++++++++-------------------------- 20 files changed, 685 insertions(+), 305 deletions(-) diff --git a/keymaps/common b/keymaps/common index adc56c7..81e7da0 100644 --- a/keymaps/common +++ b/keymaps/common @@ -82,12 +82,12 @@ F12 0x58 localstate # Printscreen, Scrollock and Pause # Printscreen really requires four scancodes (0xe0, 0x2a, 0xe0, 0x37), -# but (0xe0, 0x37) seems to work. +# but (0xe0, 0x37) seems to work. Print 0xb7 localstate -Sys_Req 0xb7 localstate -Execute 0xb7 localstate +Sys_Req 0x54 localstate Scroll_Lock 0x46 - +Pause 0xc5 localstate +Break 0xc6 localstate # # Insert - PgDown # @@ -117,7 +117,6 @@ KP_Add 0x4e KP_Enter 0x9c KP_Decimal 0x53 numlock -KP_Separator 0x53 numlock KP_Delete 0x53 KP_0 0x52 numlock diff --git a/keymaps/da b/keymaps/da index 3884dcf..449f51f 100644 --- a/keymaps/da +++ b/keymaps/da @@ -39,12 +39,14 @@ dead_acute 0x0d dead_grave 0x0d shift bar 0x0d altgr brokenbar 0x0d shift altgr +at 0x10 altgr Greek_OMEGA 0x10 shift altgr lstroke 0x11 altgr Lstroke 0x11 shift altgr EuroSign 0x12 altgr cent 0x12 shift altgr registered 0x13 altgr +registered 0x13 shift altgr thorn 0x14 altgr THORN 0x14 shift altgr leftarrow 0x15 altgr @@ -77,13 +79,19 @@ eng 0x22 altgr ENG 0x22 shift altgr hstroke 0x23 altgr Hstroke 0x23 shift altgr +j 0x24 altgr +J 0x24 shift altgr kra 0x25 altgr +ampersand 0x25 shift altgr lstroke 0x26 altgr Lstroke 0x26 shift altgr ae 0x27 AE 0x27 shift +dead_acute 0x27 altgr +dead_doubleacute 0x27 shift altgr oslash 0x28 -Ooblique 0x28 shift +Oslash 0x28 shift +dead_circumflex 0x28 altgr dead_caron 0x28 shift altgr onehalf 0x29 section 0x29 shift @@ -94,11 +102,17 @@ asterisk 0x2b shift dead_doubleacute 0x2b altgr multiply 0x2b shift altgr guillemotleft 0x2c altgr +less 0x2c shift altgr guillemotright 0x2d altgr +greater 0x2d shift altgr copyright 0x2e altgr +copyright 0x2e shift altgr leftdoublequotemark 0x2f altgr -grave 0x2f shift altgr +leftsinglequotemark 0x2f shift altgr rightdoublequotemark 0x30 altgr +rightsinglequotemark 0x30 shift altgr +n 0x31 altgr +N 0x31 shift altgr mu 0x32 altgr masculine 0x32 shift altgr comma 0x33 @@ -111,10 +125,8 @@ periodcentered 0x34 altgr dead_abovedot 0x34 shift altgr minus 0x35 underscore 0x35 shift -hyphen 0x35 altgr -macron 0x35 shift altgr +dead_belowdot 0x35 altgr +dead_abovedot 0x35 shift altgr nobreakspace 0x39 altgr -less 0x56 -greater 0x56 shift backslash 0x56 altgr notsign 0x56 shift altgr diff --git a/keymaps/de b/keymaps/de index ed929c7..72f837d 100644 --- a/keymaps/de +++ b/keymaps/de @@ -17,7 +17,7 @@ percent 0x06 shift onehalf 0x06 altgr threeeighths 0x06 shift altgr ampersand 0x07 shift -threequarters 0x07 altgr +notsign 0x07 altgr fiveeighths 0x07 shift altgr slash 0x08 shift braceleft 0x08 altgr @@ -30,19 +30,21 @@ bracketright 0x0a altgr plusminus 0x0a shift altgr equal 0x0b shift braceright 0x0b altgr +degree 0x0b shift altgr ssharp 0x0c question 0x0c shift backslash 0x0c altgr questiondown 0x0c shift altgr -acute 0x0d dead_acute 0x0d -grave 0x0d shift dead_grave 0x0d shift dead_cedilla 0x0d altgr dead_ogonek 0x0d shift altgr at 0x10 altgr Greek_OMEGA 0x10 shift altgr +lstroke 0x11 altgr +Lstroke 0x11 shift altgr EuroSign 0x12 altgr +EuroSign 0x12 shift altgr paragraph 0x13 altgr registered 0x13 shift altgr tslash 0x14 altgr @@ -55,7 +57,7 @@ uparrow 0x16 shift altgr rightarrow 0x17 altgr idotless 0x17 shift altgr oslash 0x18 altgr -Ooblique 0x18 shift altgr +Oslash 0x18 shift altgr thorn 0x19 altgr THORN 0x19 shift altgr udiaeresis 0x1a @@ -64,11 +66,12 @@ dead_diaeresis 0x1a altgr dead_abovering 0x1a shift altgr plus 0x1b asterisk 0x1b shift -asciitilde 0x1b altgr dead_tilde 0x1b altgr dead_macron 0x1b shift altgr ae 0x1e altgr AE 0x1e shift altgr +ssharp 0x1f altgr +section 0x1f shift altgr eth 0x20 altgr ETH 0x20 shift altgr dstroke 0x21 altgr @@ -77,27 +80,41 @@ eng 0x22 altgr ENG 0x22 shift altgr hstroke 0x23 altgr Hstroke 0x23 shift altgr +j 0x24 altgr +J 0x24 shift altgr kra 0x25 altgr +ampersand 0x25 shift altgr +lstroke 0x26 altgr +Lstroke 0x26 shift altgr odiaeresis 0x27 Odiaeresis 0x27 shift dead_doubleacute 0x27 altgr +dead_doubleacute 0x27 shift altgr adiaeresis 0x28 Adiaeresis 0x28 shift +dead_circumflex 0x28 altgr dead_caron 0x28 shift altgr -asciicircum 0x29 dead_circumflex 0x29 degree 0x29 shift notsign 0x29 altgr +notsign 0x29 shift altgr numbersign 0x2b apostrophe 0x2b shift +dead_grave 0x2b altgr dead_breve 0x2b shift altgr y 0x2c addupper guillemotleft 0x2c altgr +less 0x2c shift altgr guillemotright 0x2d altgr +greater 0x2d shift altgr cent 0x2e altgr copyright 0x2e shift altgr leftdoublequotemark 0x2f altgr +leftsinglequotemark 0x2f shift altgr rightdoublequotemark 0x30 altgr +rightsinglequotemark 0x30 shift altgr +n 0x31 altgr +N 0x31 shift altgr mu 0x32 altgr masculine 0x32 shift altgr comma 0x33 @@ -112,3 +129,5 @@ minus 0x35 underscore 0x35 shift dead_belowdot 0x35 altgr dead_abovedot 0x35 shift altgr +backslash 0x56 +bar 0x56 shift diff --git a/keymaps/de-ch b/keymaps/de-ch index 852f8b8..f83837b 100644 --- a/keymaps/de-ch +++ b/keymaps/de-ch @@ -1,5 +1,5 @@ -# rdesktop Swiss-German (de-ch) keymap file -# 2003-06-03 by noldi@tristar.ch +# rdesktop Swiss-German (de-ch) keymap file +# 2003-06-03 by noldi@tristar.ch # include common map 0x00000807 @@ -40,7 +40,7 @@ bar 0x08 altgr # Scan Code 9 parenleft 0x09 shift cent 0x09 altgr -# +# # Scan Code 10 parenright 0x0a shift # @@ -49,7 +49,7 @@ equal 0x0b shift braceright 0x0b altgr inhibit # # Scan Code 12 -apostrophe 0x0c +apostrophe 0x0c question 0x0c shift dead_acute 0x0c altgr # @@ -68,10 +68,10 @@ z 0x15 addupper udiaeresis 0x1a egrave 0x1a shift bracketleft 0x1a altgr -# +# # Scan Code 28 dead_diaeresis 0x1b -exclam 0x1b shift +exclam 0x1b shift bracketright 0x1b altgr # # Scan Code 40 @@ -93,17 +93,17 @@ backslash 0x56 altgr # # Scan Code 46 y 0x2c addupper -# +# # Scan Code 53 comma 0x33 semicolon 0x33 shift -# +# # Scan Code 54 period 0x34 colon 0x34 shift # # Scan Code 55 -minus 0x35 +minus 0x35 underscore 0x35 shift # # Suppress Windows unsupported AltGr keys diff --git a/keymaps/en-gb b/keymaps/en-gb index b45f06c..36637e6 100644 --- a/keymaps/en-gb +++ b/keymaps/en-gb @@ -9,8 +9,10 @@ twosuperior 0x03 altgr oneeighth 0x03 shift altgr sterling 0x04 shift threesuperior 0x04 altgr +sterling 0x4 shift altgr dollar 0x05 shift EuroSign 0x05 altgr +onequarter 0x5 shift altgr percent 0x06 shift onehalf 0x06 altgr threeeighths 0x06 shift altgr @@ -41,6 +43,8 @@ at 0x10 altgr Greek_OMEGA 0x10 shift altgr lstroke 0x11 altgr Lstroke 0x11 shift altgr +e 0x12 altgr +E 0x12 shift altgr paragraph 0x13 altgr registered 0x13 shift altgr tslash 0x14 altgr @@ -52,7 +56,7 @@ uparrow 0x16 shift altgr rightarrow 0x17 altgr idotless 0x17 shift altgr oslash 0x18 altgr -Ooblique 0x18 shift altgr +Oslash 0x18 shift altgr thorn 0x19 altgr THORN 0x19 shift altgr bracketleft 0x1a @@ -75,7 +79,10 @@ eng 0x22 altgr ENG 0x22 shift altgr hstroke 0x23 altgr Hstroke 0x23 shift altgr +j 0x24 altgr +J 0x24 shift altgr kra 0x25 altgr +ampersand 0x25 shift altgr lstroke 0x26 altgr Lstroke 0x26 shift altgr semicolon 0x27 @@ -89,6 +96,7 @@ dead_caron 0x28 shift altgr grave 0x29 notsign 0x29 shift bar 0x29 altgr +bar 0x29 shift altgr numbersign 0x2b asciitilde 0x2b shift dead_grave 0x2b altgr @@ -100,7 +108,11 @@ greater 0x2d shift altgr cent 0x2e altgr copyright 0x2e shift altgr leftdoublequotemark 0x2f altgr +leftsinglequotemark 0x2f shift altgr rightdoublequotemark 0x30 altgr +rightsinglequotemark 0x30 shift altgr +n 0x31 altgr +N 0x31 shift altgr mu 0x32 altgr masculine 0x32 shift altgr comma 0x33 diff --git a/keymaps/es b/keymaps/es index 0c29eec..59d5ba3 100644 --- a/keymaps/es +++ b/keymaps/es @@ -3,6 +3,7 @@ include common map 0x40a exclam 0x02 shift bar 0x02 altgr +exclamdown 0x02 shift altgr quotedbl 0x03 shift at 0x03 altgr oneeighth 0x03 shift altgr @@ -10,7 +11,8 @@ periodcentered 0x04 shift numbersign 0x04 altgr sterling 0x04 shift altgr dollar 0x05 shift -asciitilde 0x05 altgr +dead_tilde 0x05 altgr +dollar 0x05 shift altgr percent 0x06 shift onehalf 0x06 altgr threeeighths 0x06 shift altgr @@ -18,21 +20,31 @@ ampersand 0x07 shift notsign 0x07 altgr fiveeighths 0x07 shift altgr slash 0x08 shift +braceleft 0x08 altgr seveneighths 0x08 shift altgr parenleft 0x09 shift +bracketleft 0x09 altgr trademark 0x09 shift altgr parenright 0x0a shift +bracketright 0x0a altgr plusminus 0x0a shift altgr equal 0x0b shift +braceright 0x0b altgr degree 0x0b shift altgr apostrophe 0x0c question 0x0c shift +backslash 0x0c altgr +questiondown 0x0c shift altgr exclamdown 0x0d questiondown 0x0d shift +asciitilde 0x0d altgr +asciitilde 0x0d shift altgr +at 0x10 altgr Greek_OMEGA 0x10 shift altgr lstroke 0x11 altgr Lstroke 0x11 shift altgr EuroSign 0x12 altgr +cent 0x12 shift altgr paragraph 0x13 altgr registered 0x13 shift altgr tslash 0x14 altgr @@ -44,7 +56,7 @@ uparrow 0x16 shift altgr rightarrow 0x17 altgr idotless 0x17 shift altgr oslash 0x18 altgr -Ooblique 0x18 shift altgr +Oslash 0x18 shift altgr thorn 0x19 altgr THORN 0x19 shift altgr dead_grave 0x1a @@ -62,44 +74,58 @@ section 0x1f shift altgr eth 0x20 altgr ETH 0x20 shift altgr dstroke 0x21 altgr +ordfeminine 0x21 shift altgr eng 0x22 altgr ENG 0x22 shift altgr hstroke 0x23 altgr Hstroke 0x23 shift altgr +j 0x24 altgr +J 0x24 shift altgr kra 0x25 altgr +ampersand 0x25 shift altgr lstroke 0x26 altgr Lstroke 0x26 shift altgr ntilde 0x27 Ntilde 0x27 shift +asciitilde 0x27 altgr dead_doubleacute 0x27 shift altgr dead_acute 0x28 dead_diaeresis 0x28 shift braceleft 0x28 altgr +braceleft 0x28 shift altgr masculine 0x29 ordfeminine 0x29 shift backslash 0x29 altgr +backslash 0x29 shift altgr ccedilla 0x2b Ccedilla 0x2b shift braceright 0x2b altgr dead_breve 0x2b shift altgr guillemotleft 0x2c altgr -less 0x56 -greater 0x56 shift +less 0x2c shift altgr guillemotright 0x2d altgr +greater 0x2d shift altgr cent 0x2e altgr copyright 0x2e shift altgr leftdoublequotemark 0x2f altgr -grave 0x2f shift altgr +leftsinglequotemark 0x2f shift altgr rightdoublequotemark 0x30 altgr +rightsinglequotemark 0x30 shift altgr +n 0x31 altgr +N 0x31 shift altgr mu 0x32 altgr +masculine 0x32 shift altgr comma 0x33 semicolon 0x33 shift horizconnector 0x33 altgr multiply 0x33 shift altgr period 0x34 colon 0x34 shift +periodcentered 0x34 altgr division 0x34 shift altgr minus 0x35 underscore 0x35 shift dead_belowdot 0x35 altgr dead_abovedot 0x35 shift altgr +backslash 0x56 +bar 0x56 shift diff --git a/keymaps/et b/keymaps/et index 3252e31..f6bf305 100644 --- a/keymaps/et +++ b/keymaps/et @@ -1,3 +1,4 @@ +# generated from XKB keymap ee map 0x00000425 include common @@ -6,81 +7,153 @@ include common # dead_caron 0x29 dead_tilde 0x29 shift +notsign 0x29 altgr +notsign 0x29 shift altgr # 1 exclam 0x2 shift +exclamdown 0x2 shift altgr # 2 quotedbl 0x3 shift at 0x3 altgr +oneeighth 0x3 shift altgr # 3 numbersign 0x4 shift sterling 0x4 altgr +sterling 0x4 shift altgr # 4 currency 0x5 shift dollar 0x5 altgr +dollar 0x5 shift altgr # 5 percent 0x6 shift +onehalf 0x6 altgr +threeeighths 0x6 shift altgr # 6 ampersand 0x7 shift +notsign 0x7 altgr +fiveeighths 0x7 shift altgr # 7 slash 0x8 shift braceleft 0x8 altgr +seveneighths 0x8 shift altgr # 8 parenleft 0x9 shift bracketleft 0x9 altgr +trademark 0x9 shift altgr # 9 parenright 0xa shift bracketright 0xa altgr +plusminus 0xa shift altgr # 0 equal 0xb shift braceright 0xb altgr +degree 0xb shift altgr plus 0xc question 0xc shift backslash 0xc altgr +questiondown 0xc shift altgr -acute 0xd dead_acute 0xd -grave 0xd shift dead_grave 0xd shift +grave 0xd altgr +apostrophe 0xd shift altgr # # QWERTY first row # +at 0x10 altgr +Greek_OMEGA 0x10 shift altgr +lstroke 0x11 altgr +Lstroke 0x11 shift altgr EuroSign 0x12 altgr -udiaeresis 0x1a +cent 0x12 shift altgr +paragraph 0x13 altgr +registered 0x13 shift altgr +tslash 0x14 altgr +Tslash 0x14 shift altgr +leftarrow 0x15 altgr +yen 0x15 shift altgr +downarrow 0x16 altgr +uparrow 0x16 shift altgr +rightarrow 0x17 altgr +idotless 0x17 shift altgr +oslash 0x18 altgr +Oslash 0x18 shift altgr +thorn 0x19 altgr +THORN 0x19 shift altgr +udiaeresis 0x1a Udiaeresis 0x1a shift -otilde 0x1b +dead_diaeresis 0x1a altgr +dead_abovering 0x1a shift altgr +otilde 0x1b Otilde 0x1b shift section 0x1b altgr +dead_macron 0x1b shift altgr # # QWERTY second row # +ae 0x1e altgr +AE 0x1e shift altgr scaron 0x1f altgr Scaron 0x1f altgr shift -odiaeresis 0x27 +eth 0x20 altgr +ETH 0x20 shift altgr +dstroke 0x21 altgr +ordfeminine 0x21 shift altgr +eng 0x22 altgr +ENG 0x22 shift altgr +hstroke 0x23 altgr +Hstroke 0x23 shift altgr +j 0x24 altgr +J 0x24 shift altgr +kra 0x25 altgr +ampersand 0x25 shift altgr +lstroke 0x26 altgr +Lstroke 0x26 shift altgr +odiaeresis 0x27 Odiaeresis 0x27 shift -adiaeresis 0x28 +dead_acute 0x27 altgr +dead_doubleacute 0x27 shift altgr +adiaeresis 0x28 Adiaeresis 0x28 shift asciicircum 0x28 altgr +dead_caron 0x28 shift altgr apostrophe 0x2b asterisk 0x2b shift onehalf 0x2b altgr +dead_breve 0x2b shift altgr # # QWERTY third row # -less 0x56 -greater 0x56 shift -bar 0x56 altgr +backslash 0x56 +bar 0x56 shift zcaron 0x2c altgr Zcaron 0x2c altgr shift +guillemotright 0x2d altgr +greater 0x2d shift altgr +cent 0x2e altgr +copyright 0x2e shift altgr +leftdoublequotemark 0x2f altgr +leftsinglequotemark 0x2f shift altgr +rightdoublequotemark 0x30 altgr +rightsinglequotemark 0x30 shift altgr +n 0x31 altgr +N 0x31 shift altgr +mu 0x32 altgr +masculine 0x32 shift altgr comma 0x33 semicolon 0x33 shift +less 0x33 altgr +multiply 0x33 shift altgr period 0x34 colon 0x34 shift +greater 0x34 altgr +division 0x34 shift altgr minus 0x35 underscore 0x35 shift - +dead_abovedot 0x35 shift altgr diff --git a/keymaps/fi b/keymaps/fi index 2a4e0f0..38bb0cc 100644 --- a/keymaps/fi +++ b/keymaps/fi @@ -1,33 +1,29 @@ -# generated from XKB map se_FI +# generated from XKB map fi include common map 0x40b exclam 0x02 shift -exclamdown 0x02 altgr -onesuperior 0x02 shift altgr +exclamdown 0x02 shift altgr quotedbl 0x03 shift at 0x03 altgr -twosuperior 0x03 shift altgr +rightdoublequotemark 0x03 shift altgr numbersign 0x04 shift sterling 0x04 altgr -threesuperior 0x04 shift altgr +guillemotright 0x04 shift altgr currency 0x05 shift dollar 0x05 altgr -onequarter 0x05 shift altgr +guillemotleft 0x05 shift altgr percent 0x06 shift -onehalf 0x06 altgr -cent 0x06 shift altgr +U2030 0x06 altgr +leftdoublequotemark 0x06 shift altgr ampersand 0x07 shift -yen 0x07 altgr -fiveeighths 0x07 shift altgr +singlelowquotemark 0x07 altgr +doublelowquotemark 0x07 shift altgr slash 0x08 shift braceleft 0x08 altgr -division 0x08 shift altgr parenleft 0x09 shift bracketleft 0x09 altgr -guillemotleft 0x09 shift altgr parenright 0x0a shift bracketright 0x0a altgr -guillemotright 0x0a shift altgr equal 0x0b shift braceright 0x0b altgr degree 0x0b shift altgr @@ -37,88 +33,87 @@ backslash 0x0c altgr questiondown 0x0c shift altgr dead_acute 0x0d dead_grave 0x0d shift -plusminus 0x0d altgr -notsign 0x0d shift altgr -at 0x10 altgr -Greek_OMEGA 0x10 shift altgr -lstroke 0x11 altgr -Lstroke 0x11 shift altgr +dead_cedilla 0x0d altgr +dead_ogonek 0x0d shift altgr +q 0x10 altgr +Q 0x10 shift altgr +w 0x11 altgr +W 0x11 shift altgr EuroSign 0x12 altgr -cent 0x12 shift altgr -registered 0x13 altgr +r 0x13 altgr +R 0x13 shift altgr thorn 0x14 altgr THORN 0x14 shift altgr -leftarrow 0x15 altgr -yen 0x15 shift altgr -downarrow 0x16 altgr -uparrow 0x16 shift altgr -rightarrow 0x17 altgr -idotless 0x17 shift altgr +y 0x15 altgr +Y 0x15 shift altgr +u 0x16 altgr +U 0x16 shift altgr +idotless 0x17 altgr oe 0x18 altgr OE 0x18 shift altgr -thorn 0x19 altgr -THORN 0x19 shift altgr +dead_horn 0x19 altgr +dead_hook 0x19 shift altgr aring 0x1a Aring 0x1a shift -dead_diaeresis 0x1a altgr +dead_doubleacute 0x1a altgr dead_abovering 0x1a shift altgr dead_diaeresis 0x1b dead_circumflex 0x1b shift dead_tilde 0x1b altgr -dead_caron 0x1b shift altgr -ordfeminine 0x1e altgr -masculine 0x1e shift altgr +dead_macron 0x1b shift altgr +schwa 0x1e altgr +SCHWA 0x1e shift altgr ssharp 0x1f altgr -section 0x1f shift altgr eth 0x20 altgr ETH 0x20 shift altgr -dstroke 0x21 altgr -ordfeminine 0x21 shift altgr -eng 0x22 altgr -ENG 0x22 shift altgr -hstroke 0x23 altgr -Hstroke 0x23 shift altgr +f 0x21 altgr +F 0x21 shift altgr +g 0x22 altgr +G 0x22 shift altgr +h 0x23 altgr +H 0x23 shift altgr +j 0x24 altgr +J 0x24 shift altgr kra 0x25 altgr -ampersand 0x25 shift altgr -lstroke 0x26 altgr -Lstroke 0x26 shift altgr +dead_stroke 0x26 altgr odiaeresis 0x27 Odiaeresis 0x27 shift oslash 0x27 altgr -Ooblique 0x27 shift altgr +Oslash 0x27 shift altgr adiaeresis 0x28 Adiaeresis 0x28 shift ae 0x28 altgr AE 0x28 shift altgr section 0x29 onehalf 0x29 shift -paragraph 0x29 altgr -threequarters 0x29 shift altgr +dead_stroke 0x29 altgr apostrophe 0x2b asterisk 0x2b shift -acute 0x2b altgr -multiply 0x2b shift altgr -guillemotleft 0x2c altgr -less 0x2c shift altgr -guillemotright 0x2d altgr -greater 0x2d shift altgr -copyright 0x2e altgr -leftdoublequotemark 0x2f altgr -grave 0x2f shift altgr -rightdoublequotemark 0x30 altgr -apostrophe 0x30 shift altgr +dead_caron 0x2b altgr +dead_breve 0x2b shift altgr +U0292 0x2c altgr +U01B7 0x2c shift altgr +multiply 0x2d altgr +periodcentered 0x2d shift altgr +c 0x2e altgr +C 0x2e shift altgr +v 0x2f altgr +V 0x2f shift altgr +b 0x30 altgr +B 0x30 shift altgr +eng 0x31 altgr +ENG 0x31 shift altgr mu 0x32 altgr -masculine 0x32 shift altgr +emdash 0x32 shift altgr comma 0x33 semicolon 0x33 shift -dead_cedilla 0x33 altgr -dead_ogonek 0x33 shift altgr +rightsinglequotemark 0x33 altgr +leftsinglequotemark 0x33 shift altgr period 0x34 colon 0x34 shift -periodcentered 0x34 altgr +dead_belowdot 0x34 altgr dead_abovedot 0x34 shift altgr minus 0x35 underscore 0x35 shift -hyphen 0x35 altgr -macron 0x35 shift altgr -nobreakspace 0x39 altgr +endash 0x35 altgr +dead_abovedot 0x35 shift altgr diff --git a/keymaps/fo b/keymaps/fo index 83add42..510a1fb 100644 --- a/keymaps/fo +++ b/keymaps/fo @@ -6,72 +6,157 @@ include common # onehalf 0x29 section 0x29 shift +threequarters 0x29 altgr +paragraph 0x29 shift altgr # 1 exclam 0x2 shift +exclamdown 0x2 altgr +onesuperior 0x2 shift altgr # 2 quotedbl 0x3 shift at 0x3 altgr +twosuperior 0x3 shift altgr # 3 numbersign 0x4 shift sterling 0x4 altgr +threesuperior 0x4 shift altgr # 4 currency 0x5 shift dollar 0x5 altgr +onequarter 0x5 shift altgr # 5 percent 0x6 shift +onehalf 0x6 altgr +cent 0x6 shift altgr # 6 ampersand 0x7 shift +yen 0x7 altgr +fiveeighths 0x7 shift altgr # 7 slash 0x8 shift braceleft 0x8 altgr +division 0x8 shift altgr # 8 parenleft 0x9 shift bracketleft 0x9 altgr +guillemotleft 0x9 shift altgr # 9 parenright 0xa shift bracketright 0xa altgr +guillemotright 0xa shift altgr # 0 equal 0xb shift braceright 0xb altgr +degree 0xb shift altgr plus 0xc question 0xc shift plusminus 0xc altgr +questiondown 0xc shift altgr -bar 0xd altgr dead_acute 0xd +dead_grave 0xd shift +bar 0xd altgr +brokenbar 0xd shift altgr # # QWERTY first row # +at 0x10 altgr +Greek_OMEGA 0x10 shift altgr +lstroke 0x11 altgr +Lstroke 0x11 shift altgr EuroSign 0x12 altgr +cent 0x12 shift altgr +registered 0x13 altgr +registered 0x13 shift altgr +thorn 0x14 altgr +THORN 0x14 shift altgr +leftarrow 0x15 altgr +yen 0x15 shift altgr +downarrow 0x16 altgr +uparrow 0x16 shift altgr +rightarrow 0x17 altgr +idotless 0x17 shift altgr +oe 0x18 altgr +OE 0x18 shift altgr +thorn 0x19 altgr +THORN 0x19 shift altgr aring 0x1a Aring 0x1a shift -eth 0x1b addupper -asciitilde 0x1b altgr +dead_diaeresis 0x1a altgr +dead_circumflex 0x1a shift altgr +eth 0x1b +ETH 0x1b shift +dead_tilde 0x1b altgr +dead_caron 0x1b shift altgr # # QWERTY second row # -ae 0x27 addupper +ordfeminine 0x1e altgr +masculine 0x1e shift altgr +ssharp 0x1f altgr +section 0x1f shift altgr +eth 0x20 altgr +ETH 0x20 shift altgr +dstroke 0x21 altgr +ordfeminine 0x21 shift altgr +eng 0x22 altgr +ENG 0x22 shift altgr +hstroke 0x23 altgr +Hstroke 0x23 shift altgr +j 0x24 altgr +J 0x24 shift altgr +kra 0x25 altgr +ampersand 0x25 shift altgr +lstroke 0x26 altgr +Lstroke 0x26 shift altgr +ae 0x27 +AE 0x27 shift +dead_acute 0x27 altgr +dead_doubleacute 0x27 shift altgr oslash 0x28 -Ooblique 0x28 shift +Oslash 0x28 shift +dead_circumflex 0x28 altgr +dead_caron 0x28 shift altgr apostrophe 0x2b asterisk 0x2b shift +dead_doubleacute 0x2b altgr +multiply 0x2b shift altgr # # QWERTY third row # -less 0x56 -greater 0x56 shift backslash 0x56 altgr +notsign 0x56 shift altgr +guillemotleft 0x2c altgr +less 0x2c shift altgr +guillemotright 0x2d altgr +greater 0x2d shift altgr +copyright 0x2e altgr +copyright 0x2e shift altgr +leftdoublequotemark 0x2f altgr +leftsinglequotemark 0x2f shift altgr +rightdoublequotemark 0x30 altgr +rightsinglequotemark 0x30 shift altgr +n 0x31 altgr +N 0x31 shift altgr +mu 0x32 altgr +masculine 0x32 shift altgr comma 0x33 semicolon 0x33 shift +dead_cedilla 0x33 altgr +dead_ogonek 0x33 shift altgr period 0x34 colon 0x34 shift +periodcentered 0x34 altgr +dead_abovedot 0x34 shift altgr minus 0x35 underscore 0x35 shift +hyphen 0x35 altgr +macron 0x35 shift altgr diff --git a/keymaps/fr b/keymaps/fr index ba5a176..e5540a4 100644 --- a/keymaps/fr +++ b/keymaps/fr @@ -4,7 +4,9 @@ map 0x40c # Top row # twosuperior 0x29 +asciitilde 0x29 shift notsign 0x29 altgr +notsign 0x29 shift altgr ampersand 0x02 1 0x02 shift @@ -19,10 +21,12 @@ oneeighth 0x03 shift altgr quotedbl 0x04 3 0x04 shift numbersign 0x04 altgr +sterling 0x04 shift altgr apostrophe 0x05 4 0x05 shift braceleft 0x05 altgr +dollar 0x05 shift altgr parenleft 0x06 5 0x06 shift @@ -52,12 +56,12 @@ plusminus 0x0a shift altgr agrave 0x0b 0 0x0b shift at 0x0b altgr +degree 0x0b shift altgr parenright 0x0c degree 0x0c shift bracketright 0x0c altgr questiondown 0x0c shift altgr - equal 0x0d plus 0x0d shift braceright 0x0d altgr @@ -66,15 +70,16 @@ dead_ogonek 0x0d shift altgr # # AZERTY first row # - a 0x10 addupper ae 0x10 altgr AE 0x10 shift altgr z 0x11 addupper guillemotleft 0x11 altgr +less 0x11 shift altgr EuroSign 0x12 altgr +cent 0x12 shift altgr paragraph 0x13 altgr registered 0x13 shift altgr @@ -92,13 +97,14 @@ rightarrow 0x17 altgr idotless 0x17 shift altgr oslash 0x18 altgr -Ooblique 0x18 shift altgr +Oslash 0x18 shift altgr thorn 0x19 altgr THORN 0x19 shift altgr -dead_circumflex 0x1a +dead_circumflex 0x1a dead_diaeresis 0x1a shift +dead_diaeresis 0x1a altgr dead_abovering 0x1a shift altgr dollar 0x1b @@ -110,9 +116,11 @@ dead_macron 0x1b shift altgr # AZERTY second row # q 0x1e addupper +at 0x1e altgr Greek_OMEGA 0x1e shift altgr ssharp 0x1f altgr +section 0x1f shift altgr eth 0x20 altgr ETH 0x20 shift altgr @@ -126,16 +134,22 @@ ENG 0x22 shift altgr hstroke 0x23 altgr Hstroke 0x23 shift altgr +j 0x24 altgr +J 0x24 shift altgr + kra 0x25 altgr +ampersand 0x25 shift altgr lstroke 0x26 altgr Lstroke 0x26 shift altgr m 0x27 addupper +mu 0x27 altgr masculine 0x27 shift altgr ugrave 0x28 percent 0x28 shift +dead_circumflex 0x28 altgr dead_caron 0x28 shift altgr asterisk 0x2b @@ -146,19 +160,27 @@ dead_breve 0x2b shift altgr # # AZERTY third row # -less 0x56 -greater 0x56 shift +backslash 0x56 +bar 0x56 shift w 0x2c addupper +lstroke 0x2c altgr +Lstroke 0x2c shift altgr guillemotright 0x2d altgr +greater 0x2d shift altgr cent 0x2e altgr copyright 0x2e shift altgr leftdoublequotemark 0x2f altgr +leftsinglequotemark 0x2f shift altgr rightdoublequotemark 0x30 altgr +rightsinglequotemark 0x30 shift altgr + +n 0x31 altgr +N 0x31 shift altgr comma 0x32 question 0x32 shift diff --git a/keymaps/fr-be b/keymaps/fr-be index 92d668e..ebcb8df 100644 --- a/keymaps/fr-be +++ b/keymaps/fr-be @@ -68,7 +68,7 @@ uparrow 0x16 shift altgr rightarrow 0x17 altgr idotless 0x17 shift altgr oslash 0x18 altgr -Ooblique 0x18 shift altgr +Oslash 0x18 shift altgr thorn 0x19 altgr THORN 0x19 shift altgr dead_circumflex 0x1a @@ -92,6 +92,8 @@ eng 0x22 altgr ENG 0x22 shift altgr hstroke 0x23 altgr Hstroke 0x23 shift altgr +j 0x24 altgr +J 0x24 shift altgr kra 0x25 altgr ampersand 0x25 shift altgr lstroke 0x26 altgr @@ -106,6 +108,7 @@ dead_caron 0x28 shift altgr twosuperior 0x29 threesuperior 0x29 shift notsign 0x29 altgr +notsign 0x29 shift altgr mu 0x2b sterling 0x2b shift dead_grave 0x2b altgr @@ -118,9 +121,11 @@ greater 0x2d shift altgr cent 0x2e altgr copyright 0x2e shift altgr leftdoublequotemark 0x2f altgr -grave 0x2f shift altgr +leftsinglequotemark 0x2f shift altgr rightdoublequotemark 0x30 altgr -apostrophe 0x30 shift altgr +rightsinglequotemark 0x30 shift altgr +n 0x31 altgr +N 0x31 shift altgr comma 0x32 question 0x32 shift dead_cedilla 0x32 altgr @@ -138,3 +143,4 @@ plus 0x35 shift dead_tilde 0x35 altgr dead_abovedot 0x35 shift altgr backslash 0x56 altgr +backslash 0x56 shift altgr diff --git a/keymaps/hr b/keymaps/hr index 613aa69..a8e8274 100644 --- a/keymaps/hr +++ b/keymaps/hr @@ -37,6 +37,7 @@ dead_diaeresis 0x0c altgr diaeresis 0x0c shift altgr plus 0x0d asterisk 0x0d shift +cedilla 0x0d shift altgr dead_cedilla 0x0d altgr cedilla 0x0d shift altgr backslash 0x10 altgr @@ -44,11 +45,13 @@ Greek_OMEGA 0x10 shift altgr bar 0x11 altgr Lstroke 0x11 shift altgr EuroSign 0x12 altgr +EuroSign 0x12 shift altgr paragraph 0x13 altgr registered 0x13 shift altgr tslash 0x14 altgr Tslash 0x14 shift altgr z 0x15 addupper + leftarrow 0x15 altgr yen 0x15 shift altgr downarrow 0x16 altgr @@ -56,7 +59,7 @@ uparrow 0x16 shift altgr rightarrow 0x17 altgr idotless 0x17 shift altgr oslash 0x18 altgr -Ooblique 0x18 shift altgr +Oslash 0x18 shift altgr thorn 0x19 altgr THORN 0x19 shift altgr scaron 0x1a @@ -69,19 +72,22 @@ multiply 0x1b altgr dead_macron 0x1b shift altgr ae 0x1e altgr AE 0x1e shift altgr -ssharp 0x1f altgr -section 0x1f shift altgr -eth 0x20 altgr -ETH 0x20 shift altgr +doublelowquotemark 0x1f altgr +guillemotright 0x1f shift altgr +leftdoublequotemark 0x20 altgr +guillemotleft 0x20 shift altgr bracketleft 0x21 altgr ordfeminine 0x21 shift altgr bracketright 0x22 altgr ENG 0x22 shift altgr hstroke 0x23 altgr Hstroke 0x23 shift altgr +j 0x24 altgr +J 0x24 shift altgr lstroke 0x25 altgr ampersand 0x25 shift altgr -Lstroke 0x26 altgr +lstroke 0x26 altgr +Lstroke 0x26 shift altgr ccaron 0x27 Ccaron 0x27 shift dead_acute 0x27 altgr @@ -90,18 +96,19 @@ cacute 0x28 Cacute 0x28 shift ssharp 0x28 altgr dead_caron 0x28 shift altgr -dead_cedilla 0x29 -dead_diaeresis 0x29 shift +grave 0x29 +asciitilde 0x29 shift notsign 0x29 altgr +notsign 0x29 shift altgr zcaron 0x2b Zcaron 0x2b shift currency 0x2b altgr dead_breve 0x2b shift altgr y 0x2c addupper -guillemotleft 0x2c altgr -less 0x2c shift altgr -guillemotright 0x2d altgr -greater 0x2d shift altgr +leftsinglequotemark 0x2c altgr +guillemotright 0x2c shift altgr +rightsinglequotemark 0x2d altgr +guillemotleft 0x2d shift altgr cent 0x2e altgr copyright 0x2e shift altgr at 0x2f altgr @@ -109,17 +116,20 @@ grave 0x2f shift altgr braceleft 0x30 altgr apostrophe 0x30 shift altgr braceright 0x31 altgr -section 0x32 altgr +braceright 0x31 shift altgr +asciicircum 0x32 altgr masculine 0x32 shift altgr comma 0x33 semicolon 0x33 shift -horizconnector 0x33 altgr +less 0x33 altgr multiply 0x33 shift altgr period 0x34 colon 0x34 shift -periodcentered 0x34 altgr +greater 0x34 altgr division 0x34 shift altgr minus 0x35 underscore 0x35 shift dead_belowdot 0x35 altgr dead_abovedot 0x35 shift altgr +backslash 0x56 +bar 0x56 shift diff --git a/keymaps/hu b/keymaps/hu index 74783a7..b668f18 100644 --- a/keymaps/hu +++ b/keymaps/hu @@ -7,13 +7,13 @@ map 0x40e # AltGr keys: notsign 0x29 altgr -dead_tilde 0x02 altgr +asciitilde 0x02 altgr dead_caron 0x03 altgr -dead_circumflex 0x04 altgr +asciicircum 0x04 altgr dead_breve 0x05 altgr -dead_degree 0x06 altgr +dead_abovering 0x06 altgr dead_ogonek 0x07 altgr -dead_grave 0x08 altgr +grave 0x08 altgr dead_abovedot 0x09 altgr dead_acute 0x0a altgr dead_doubleacute 0x0b altgr @@ -21,13 +21,23 @@ dead_diaeresis 0x0c altgr dead_cedilla 0x0d altgr backslash 0x10 altgr bar 0x11 altgr -EuroSign 0x12 altgr +e 0x12 altgr +paragraph 0x13 altgr +tslash 0x14 altgr +leftarrow 0x15 altgr +EuroSign 0x16 altgr +Iacute 0x17 altgr +oslash 0x18 altgr +thorn 0x19 altgr division 0x1a altgr multiply 0x1b altgr +adiaeresis 0x1e altgr dstroke 0x1f altgr Dstroke 0x20 altgr bracketleft 0x21 altgr bracketright 0x22 altgr +hstroke 0x23 altgr +iacute 0x24 altgr lstroke 0x25 altgr Lstroke 0x26 altgr dollar 0x27 altgr @@ -40,7 +50,9 @@ ampersand 0x2e altgr at 0x2f altgr braceleft 0x30 altgr braceright 0x31 altgr +less 0x32 altgr semicolon 0x33 altgr +greater 0x34 altgr asterisk 0x35 altgr @@ -64,51 +76,80 @@ Uacute 0x1b shift Eacute 0x27 shift Aacute 0x28 shift Udoubleacute 0x2b shift +Iacute 0x56 shift Y 0x2c shift question 0x33 shift colon 0x34 shift underscore 0x35 shift -F13 0x3b shift -F14 0x3c shift -F15 0x3d shift -F16 0x3e shift -F17 0x3f shift -F18 0x40 shift -F19 0x41 shift -F20 0x42 shift -F21 0x43 shift -F22 0x44 shift -F23 0x57 shift -F24 0x58 shift -Iacute 0x56 shift -# Ctrl keys: -F25 0x3b ctrl -F26 0x3c ctrl -F27 0x3d ctrl -F28 0x3e ctrl -F29 0x3f ctrl -F30 0x40 ctrl -F31 0x41 ctrl -F32 0x42 ctrl -F33 0x43 ctrl -F34 0x44 ctrl -F35 0x57 ctrl -#NoSymbol 0x58 ctrl + +# Shift+Altgr keys: +notsign 0x29 shift altgr +dead_tilde 0x02 shift altgr +caron 0x03 shift altgr +dead_circumflex 0x04 shift altgr +breve 0x05 shift altgr +degree 0x06 shift altgr +ogonek 0x07 shift altgr +dead_grave 0x08 shift altgr +abovedot 0x09 shift altgr +acute 0x0a shift altgr +doubleacute 0x0b shift altgr +diaeresis 0x0c shift altgr +cedilla 0x0d shift altgr +Greek_OMEGA 0x10 shift altgr +Lstroke 0x11 shift altgr +E 0x12 shift altgr +registered 0x13 shift altgr +Tslash 0x14 shift altgr +yen 0x15 shift altgr +uparrow 0x16 shift altgr +iacute 0x17 shift altgr +Oslash 0x18 shift altgr +THORN 0x19 shift altgr +dead_abovering 0x1a shift altgr +dead_macron 0x1b shift altgr +Adiaeresis 0x1e shift altgr +section 0x1f shift altgr +ETH 0x20 shift altgr +ordfeminine 0x21 shift altgr +ENG 0x22 shift altgr +Hstroke 0x23 shift altgr +Iacute 0x24 shift altgr +ampersand 0x25 shift altgr +Lstroke 0x26 shift altgr +cent 0x27 shift altgr +dead_caron 0x28 shift altgr +dead_breve 0x2b shift altgr +# correction: keysym was brokenbar +greater 0x56 shift altgr +less 0x2c shift altgr +greater 0x2d shift altgr +copyright 0x2e shift altgr +leftsinglequotemark 0x2f shift altgr +rightsinglequotemark 0x30 shift altgr +masculine 0x32 shift altgr +multiply 0x33 shift altgr +division 0x34 shift altgr +dead_abovedot 0x35 shift altgr 0 0x29 +# correction: keysym was 0 odiaeresis 0x0b udiaeresis 0x0c oacute 0x0d +# correction: keysym was y z 0x15 odoubleacute 0x1a uacute 0x1b eacute 0x27 aacute 0x28 udoubleacute 0x2b +# correction: keysym was less +iacute 0x56 +# correction: keysym was z y 0x2c comma 0x33 period 0x34 minus 0x35 -iacute 0x56 diff --git a/keymaps/is b/keymaps/is index d512cf6..2f0037a 100644 --- a/keymaps/is +++ b/keymaps/is @@ -1,6 +1,6 @@ -# 2004-03-16 Halldór Guðmundsson and Morten Lange +# 2004-03-16 Halldór Guðmundsson and Morten Lange # Keyboard definition file for the Icelandic keyboard -# to be used in rdesktop 1.3.x ( See rdesktop.org) +# to be used in rdesktop 1.3.x ( See rdesktop.org) # generated from XKB map de, and changed manually # Location for example /usr/local/share/rdesktop/keymaps/is include common @@ -11,7 +11,6 @@ exclamdown 0x02 shift altgr quotedbl 0x03 shift twosuperior 0x03 altgr oneeighth 0x03 shift altgr -#section 0x04 shift numbersign 0x04 shift threesuperior 0x04 altgr sterling 0x04 shift altgr @@ -22,7 +21,7 @@ percent 0x06 shift onehalf 0x06 altgr threeeighths 0x06 shift altgr ampersand 0x07 shift -threequarters 0x07 altgr +notsign 0x07 altgr fiveeighths 0x07 shift altgr slash 0x08 shift braceleft 0x08 altgr @@ -35,92 +34,90 @@ bracketright 0x0a altgr plusminus 0x0a shift altgr equal 0x0b shift braceright 0x0b altgr -#ssharp 0x0c +degree 0x0b shift altgr odiaeresis 0x0c -#question 0x0c shift Odiaeresis 0x0c shift backslash 0x0c altgr questiondown 0x0c shift altgr -#acute 0x0d -minus 0x0d -#dead_acute 0x0d -#grave 0x0d shift -#dead_grave 0x0d shift +minus 0x0d underscore 0x0d shift -dead_cedilla 0x0d altgr +ccedilla 0x0d altgr dead_ogonek 0x0d shift altgr at 0x10 altgr Greek_OMEGA 0x10 shift altgr +lstroke 0x11 altgr +Lstroke 0x11 shift altgr EuroSign 0x12 altgr +cent 0x12 shift altgr paragraph 0x13 altgr registered 0x13 shift altgr tslash 0x14 altgr Tslash 0x14 shift altgr -#z 0x15 addupper leftarrow 0x15 altgr yen 0x15 shift altgr downarrow 0x16 altgr +downarrow 0x16 altgr uparrow 0x16 shift altgr rightarrow 0x17 altgr idotless 0x17 shift altgr oslash 0x18 altgr -Ooblique 0x18 shift altgr -#thorn 0x19 altgr -#THORN 0x19 shift altgr -#udiaeresis 0x1a -#Udiaeresis 0x1a shift -#dead_diaeresis 0x1a altgr -#dead_abovering 0x1a shift altgr +Oslash 0x18 shift altgr +thorn 0x19 altgr +THORN 0x19 shift altgr eth 0x1a ETH 0x1a shift +dead_diaeresis 0x1a altgr +dead_abovering 0x1a shift altgr apostrophe 0x1b question 0x1b shift -#plus 0x1b -#asterisk 0x1b shift asciitilde 0x1b altgr -#grave 0x1b altgr -#dead_tilde 0x1b altgr -#dead_macron 0x1b shift altgr -#ae 0x1e altgr -#AE 0x1e shift altgr -#eth 0x20 altgr -#eth 0x20 -#ETH 0x20 shift altgr -#ETH 0x20 shift +dead_macron 0x1b shift altgr +ae 0x1e altgr +AE 0x1e shift altgr +ssharp 0x1f altgr +section 0x1f shift altgr +eth 0x20 altgr +ETH 0x20 shift altgr dstroke 0x21 altgr ordfeminine 0x21 shift altgr eng 0x22 altgr ENG 0x22 shift altgr hstroke 0x23 altgr Hstroke 0x23 shift altgr +j 0x24 altgr +J 0x24 shift altgr kra 0x25 altgr -#adiaeresis 0x27 -#Adiaeresis 0x27 shift +ampersand 0x25 shift altgr +lstroke 0x26 altgr +Lstroke 0x26 shift altgr ae 0x27 AE 0x27 shift -dead_doubleacute 0x27 altgr -#adiaeresis 0x28 -#Adiaeresis 0x28 shift -#dead_caron 0x28 shift altgr -#asciicircum 0x29 -acute 0x28 +asciicircum 0x27 altgr +dead_doubleacute 0x27 shift altgr dead_acute 0x28 -#dead_circumflex 0x29 -#degree 0x29 shift -#notsign 0x29 altgr +dead_circumflex 0x28 shift +dead_circumflex 0x28 altgr +dead_caron 0x28 shift altgr +degree 0x29 +diaeresis 0x29 shift +notsign 0x29 altgr +notsign 0x29 shift altgr plus 0x2b asterisk 0x2b shift grave 0x2b altgr -#numbersign 0x2b -#apostrophe 0x2b shift -#dead_breve 0x2b shift altgr -#y 0x2c addupper +dead_breve 0x2b shift altgr guillemotleft 0x2c altgr +less 0x2c shift altgr guillemotright 0x2d altgr +greater 0x2d shift altgr cent 0x2e altgr copyright 0x2e shift altgr leftdoublequotemark 0x2f altgr +leftsinglequotemark 0x2f shift altgr rightdoublequotemark 0x30 altgr +rightsinglequotemark 0x30 shift altgr +n 0x31 altgr +N 0x31 shift altgr mu 0x32 altgr masculine 0x32 shift altgr comma 0x33 @@ -131,10 +128,9 @@ period 0x34 colon 0x34 shift periodcentered 0x34 altgr division 0x34 shift altgr -#minus 0x35 -#underscore 0x35 shift thorn 0x35 THORN 0x35 shift dead_belowdot 0x35 altgr dead_abovedot 0x35 shift altgr - +backslash 0x56 +bar 0x56 shift diff --git a/keymaps/it b/keymaps/it index 00ca73a..1963537 100644 --- a/keymaps/it +++ b/keymaps/it @@ -6,27 +6,31 @@ onesuperior 0x02 altgr exclamdown 0x02 shift altgr quotedbl 0x03 shift twosuperior 0x03 altgr -oneeighth 0x03 shift altgr +dead_doubleacute 0x03 shift altgr sterling 0x04 shift threesuperior 0x04 altgr +dead_tilde 0x04 shift altgr dollar 0x05 shift onequarter 0x05 altgr +oneeighth 0x05 shift altgr percent 0x06 shift onehalf 0x06 altgr threeeighths 0x06 shift altgr ampersand 0x07 shift -threequarters 0x07 altgr +notsign 0x07 altgr fiveeighths 0x07 shift altgr slash 0x08 shift braceleft 0x08 altgr seveneighths 0x08 shift altgr parenleft 0x09 shift +bracketleft 0x09 altgr trademark 0x09 shift altgr parenright 0x0a shift +bracketright 0x0a altgr plusminus 0x0a shift altgr equal 0x0b shift braceright 0x0b altgr -degree 0x0b shift altgr +dead_ogonek 0x0b shift altgr apostrophe 0x0c question 0x0c shift grave 0x0c altgr @@ -34,7 +38,7 @@ questiondown 0x0c shift altgr igrave 0x0d asciicircum 0x0d shift asciitilde 0x0d altgr -dead_ogonek 0x0d shift altgr +dead_circumflex 0x0d shift altgr at 0x10 altgr Greek_OMEGA 0x10 shift altgr lstroke 0x11 altgr @@ -52,17 +56,17 @@ uparrow 0x16 shift altgr rightarrow 0x17 altgr idotless 0x17 shift altgr oslash 0x18 altgr -Ooblique 0x18 shift altgr +Oslash 0x18 shift altgr thorn 0x19 altgr THORN 0x19 shift altgr egrave 0x1a eacute 0x1a shift bracketleft 0x1a altgr -dead_abovering 0x1a shift altgr +braceleft 0x1a shift altgr plus 0x1b asterisk 0x1b shift bracketright 0x1b altgr -dead_macron 0x1b shift altgr +braceright 0x1b shift altgr ae 0x1e altgr AE 0x1e shift altgr ssharp 0x1f altgr @@ -75,41 +79,53 @@ eng 0x22 altgr ENG 0x22 shift altgr hstroke 0x23 altgr Hstroke 0x23 shift altgr +j 0x24 altgr +J 0x24 shift altgr kra 0x25 altgr +ampersand 0x25 shift altgr lstroke 0x26 altgr Lstroke 0x26 shift altgr ograve 0x27 ccedilla 0x27 shift at 0x27 altgr -dead_doubleacute 0x27 shift altgr +dead_cedilla 0x27 shift altgr agrave 0x28 degree 0x28 shift numbersign 0x28 altgr +dead_abovering 0x28 shift altgr backslash 0x29 bar 0x29 shift notsign 0x29 altgr +brokenbar 0x29 shift altgr ugrave 0x2b section 0x2b shift dead_grave 0x2b altgr dead_breve 0x2b shift altgr guillemotleft 0x2c altgr +less 0x2c shift altgr guillemotright 0x2d altgr +greater 0x2d shift altgr cent 0x2e altgr copyright 0x2e shift altgr leftdoublequotemark 0x2f altgr -grave 0x2f shift altgr +leftsinglequotemark 0x2f shift altgr rightdoublequotemark 0x30 altgr +rightsinglequotemark 0x30 shift altgr +ntilde 0x31 altgr +Ntilde 0x31 shift altgr mu 0x32 altgr masculine 0x32 shift altgr comma 0x33 semicolon 0x33 shift -horizconnector 0x33 altgr +dead_acute 0x33 altgr multiply 0x33 shift altgr period 0x34 colon 0x34 shift periodcentered 0x34 altgr -division 0x34 shift altgr +dead_diaeresis 0x34 shift altgr minus 0x35 underscore 0x35 shift -dead_belowdot 0x35 altgr -dead_abovedot 0x35 shift altgr +dead_macron 0x35 altgr +division 0x35 shift altgr +guillemotleft 0x56 altgr +guillemotright 0x56 shift altgr diff --git a/keymaps/modifiers b/keymaps/modifiers index 309ab27..ad35a90 100644 --- a/keymaps/modifiers +++ b/keymaps/modifiers @@ -9,10 +9,10 @@ Alt_L 0x38 Control_R 0x9d Control_L 0x1d -# Translate Super to Windows keys. -# This is hardcoded. See documentation for details. -Super_R 0xdb -Super_L 0xdc +# Translate Super to Windows keys. +# This is hardcoded. See documentation for details. +Super_R 0xdc +Super_L 0xdb -# Translate Menu to the Windows Application key. +# Translate Menu to the Windows Application key. Menu 0xdd diff --git a/keymaps/nl b/keymaps/nl index 4f0fe3d..6dfe1e1 100644 --- a/keymaps/nl +++ b/keymaps/nl @@ -4,57 +4,129 @@ map 0x413 exclam 0x02 shift onesuperior 0x02 altgr -quotebl 0x03 shift +exclamdown 0x02 shift altgr +quotedbl 0x03 shift twosuperior 0x03 altgr +oneeighth 0x03 shift altgr numbersign 0x04 shift threesuperior 0x04 altgr +sterling 0x04 shift altgr dollar 0x05 shift onequarter 0x05 altgr +dollar 0x05 shift altgr percent 0x06 shift onehalf 0x06 altgr +threeeighths 0x06 shift altgr ampersand 0x07 shift threequarters 0x07 altgr +fiveeighths 0x07 shift altgr underscore 0x08 shift sterling 0x08 altgr +seveneighths 0x08 shift altgr parenleft 0x09 shift braceleft 0x09 altgr +bracketleft 0x09 shift altgr parenright 0x0a shift braceright 0x0a altgr +bracketright 0x0a shift altgr apostrophe 0x0b shift +degree 0x0b altgr +trademark 0x0b shift altgr slash 0x0c question 0x0c shift backslash 0x0c altgr +questiondown 0x0c shift altgr degree 0x0d dead_tilde 0x0d shift dead_cedilla 0x0d altgr +dead_ogonek 0x0d shift altgr +at 0x10 altgr +Greek_OMEGA 0x10 shift altgr +lstroke 0x11 altgr +Lstroke 0x11 shift altgr EuroSign 0x12 altgr +cent 0x12 shift altgr paragraph 0x13 altgr +registered 0x13 shift altgr +thorn 0x14 altgr +THORN 0x14 shift altgr +ydiaeresis 0x15 altgr +yen 0x15 shift altgr +udiaeresis 0x16 altgr +Udiaeresis 0x16 shift altgr +idiaeresis 0x17 altgr +Idiaeresis 0x17 shift altgr +ograve 0x18 altgr +Ograve 0x18 shift altgr +paragraph 0x19 altgr +THORN 0x19 shift altgr dead_diaeresis 0x1a dead_circumflex 0x1a shift +asciitilde 0x1a altgr +asciicircum 0x1a shift altgr asterisk 0x1b bar 0x1b shift +dead_tilde 0x1b altgr +dead_macron 0x1b shift altgr +aacute 0x1e altgr +Aacute 0x1e shift altgr ssharp 0x1f altgr +section 0x1f shift altgr +eth 0x20 altgr +ETH 0x20 shift altgr +ordfeminine 0x21 altgr +ordfeminine 0x21 shift altgr +eng 0x22 altgr +ENG 0x22 shift altgr +hstroke 0x23 altgr +Hstroke 0x23 shift altgr +j 0x24 altgr +J 0x24 shift altgr +kra 0x25 altgr +ampersand 0x25 shift altgr +lstroke 0x26 altgr +Lstroke 0x26 shift altgr plus 0x27 plusminus 0x27 shift +dead_acute 0x27 altgr +dead_doubleacute 0x27 shift altgr dead_acute 0x28 dead_grave 0x28 shift +apostrophe 0x28 altgr +grave 0x28 shift altgr at 0x29 section 0x29 shift notsign 0x29 altgr +notsign 0x29 shift altgr less 0x2b greater 0x2b shift +dead_grave 0x2b altgr +dead_breve 0x2b shift altgr guillemotleft 0x2c altgr +less 0x2c shift altgr guillemotright 0x2d altgr -copyright 0x2e altgr -mu 0x32 altgr +greater 0x2d shift altgr +cent 0x2e altgr +copyright 0x2e shift altgr +leftdoublequotemark 0x2f altgr +leftsinglequotemark 0x2f shift altgr +rightdoublequotemark 0x30 altgr +rightsinglequotemark 0x30 shift altgr +ntilde 0x31 altgr +Ntilde 0x31 shift altgr +Greek_mu 0x32 altgr +masculine 0x32 shift altgr comma 0x33 semicolon 0x33 shift +cedilla 0x33 altgr +guillemotleft 0x33 shift altgr period 0x34 colon 0x34 shift periodcentered 0x34 altgr -hyphen 0x35 +guillemotright 0x34 shift altgr +minus 0x35 equal 0x35 shift +hyphen 0x35 altgr +dead_abovedot 0x35 shift altgr bracketright 0x56 -bracketleft 0x56 shift -brokenbar 0x56 altgr - +bracketleft 0x56 shift \ No newline at end of file diff --git a/keymaps/no b/keymaps/no index 40a6479..71a3b25 100644 --- a/keymaps/no +++ b/keymaps/no @@ -39,12 +39,14 @@ backslash 0x0d dead_grave 0x0d shift dead_acute 0x0d altgr notsign 0x0d shift altgr +at 0x10 altgr Greek_OMEGA 0x10 shift altgr lstroke 0x11 altgr Lstroke 0x11 shift altgr EuroSign 0x12 altgr cent 0x12 shift altgr registered 0x13 altgr +registered 0x13 shift altgr thorn 0x14 altgr THORN 0x14 shift altgr leftarrow 0x15 altgr @@ -63,9 +65,7 @@ dead_diaeresis 0x1a altgr dead_abovering 0x1a shift altgr dead_diaeresis 0x1b dead_circumflex 0x1b shift -asciicircum 0x01b shift dead_tilde 0x1b altgr -asciitilde 0x1b altgr dead_caron 0x1b shift altgr ordfeminine 0x1e altgr masculine 0x1e shift altgr @@ -79,14 +79,19 @@ eng 0x22 altgr ENG 0x22 shift altgr hstroke 0x23 altgr Hstroke 0x23 shift altgr +j 0x24 altgr +J 0x24 shift altgr kra 0x25 altgr +ampersand 0x25 shift altgr lstroke 0x26 altgr Lstroke 0x26 shift altgr oslash 0x27 -Ooblique 0x27 shift +Oslash 0x27 shift +dead_acute 0x27 altgr dead_doubleacute 0x27 shift altgr ae 0x28 AE 0x28 shift +dead_circumflex 0x28 altgr dead_caron 0x28 shift altgr bar 0x29 section 0x29 shift @@ -94,12 +99,20 @@ brokenbar 0x29 altgr paragraph 0x29 shift altgr apostrophe 0x2b asterisk 0x2b shift +dead_doubleacute 0x2b altgr multiply 0x2b shift altgr guillemotleft 0x2c altgr +less 0x2c shift altgr guillemotright 0x2d altgr +greater 0x2d shift altgr copyright 0x2e altgr +copyright 0x2e shift altgr leftdoublequotemark 0x2f altgr +leftsinglequotemark 0x2f shift altgr rightdoublequotemark 0x30 altgr +rightsinglequotemark 0x30 shift altgr +n 0x31 altgr +N 0x31 shift altgr mu 0x32 altgr masculine 0x32 shift altgr comma 0x33 @@ -112,8 +125,7 @@ periodcentered 0x34 altgr dead_abovedot 0x34 shift altgr minus 0x35 underscore 0x35 shift -hyphen 0x35 altgr -macron 0x35 shift altgr -nobreakspace 0x39 altgr +dead_belowdot 0x35 altgr +dead_abovedot 0x35 shift altgr onehalf 0x56 altgr threequarters 0x56 shift altgr diff --git a/keymaps/sv b/keymaps/sv index 9905a48..736d637 100644 --- a/keymaps/sv +++ b/keymaps/sv @@ -50,18 +50,18 @@ dead_grave 0xd shift # QWERTY first row # EuroSign 0x12 altgr -aring 0x1a +aring 0x1a Aring 0x1a shift -dead_diaeresis 0x1b +dead_diaeresis 0x1b dead_circumflex 0x1b shift dead_tilde 0x1b altgr # # QWERTY second row # -odiaeresis 0x27 +odiaeresis 0x27 Odiaeresis 0x27 shift -adiaeresis 0x28 +adiaeresis 0x28 Adiaeresis 0x28 shift apostrophe 0x2b asterisk 0x2b shift diff --git a/keymaps/tr b/keymaps/tr index 5650e1e..7709ccf 100644 --- a/keymaps/tr +++ b/keymaps/tr @@ -5,25 +5,23 @@ exclam 0x02 shift onesuperior 0x02 altgr exclamdown 0x02 shift altgr apostrophe 0x03 shift -at 0x03 altgr -oneeighth 0x03 shift altgr -dead_circumflex 0x04 shift +sterling 0x03 altgr +twosuperior 0x03 shift altgr +asciicircum 0x04 shift numbersign 0x04 altgr -sterling 0x04 shift altgr +threesuperior 0x04 shift altgr plus 0x05 shift dollar 0x05 altgr +onequarter 0x05 shift altgr percent 0x06 shift onehalf 0x06 altgr threeeighths 0x06 shift altgr ampersand 0x07 shift -asciicircum 0x07 altgr -fiveeighths 0x07 shift altgr +threequarters 0x07 altgr slash 0x08 shift braceleft 0x08 altgr -seveneighths 0x08 shift altgr parenleft 0x09 shift bracketleft 0x09 altgr -trademark 0x09 shift altgr parenright 0x0a shift bracketright 0x0a altgr plusminus 0x0a shift altgr @@ -36,28 +34,22 @@ backslash 0x0c altgr questiondown 0x0c shift altgr minus 0x0d underscore 0x0d shift -dead_cedilla 0x0d altgr -dead_ogonek 0x0d shift altgr +division 0x0d altgr at 0x10 altgr Greek_OMEGA 0x10 shift altgr -lstroke 0x11 altgr -Lstroke 0x11 shift altgr EuroSign 0x12 altgr paragraph 0x13 altgr registered 0x13 shift altgr -tslash 0x14 altgr -Tslash 0x14 shift altgr +trademark 0x14 altgr leftarrow 0x15 altgr yen 0x15 shift altgr -downarrow 0x16 altgr -uparrow 0x16 shift altgr +ucircumflex 0x16 altgr +Ucircumflex 0x16 shift altgr idotless 0x17 -I 0x17 shift -rightarrow 0x17 altgr -oslash 0x18 altgr -Ooblique 0x18 shift altgr -thorn 0x19 altgr -THORN 0x19 shift altgr +icircumflex 0x17 altgr +Icircumflex 0x17 shift altgr +ocircumflex 0x18 altgr +Ocircumflex 0x18 shift altgr gbreve 0x1a Gbreve 0x1a shift dead_diaeresis 0x1a altgr @@ -66,37 +58,28 @@ udiaeresis 0x1b Udiaeresis 0x1b shift asciitilde 0x1b altgr dead_macron 0x1b shift altgr -ae 0x1e altgr -AE 0x1e shift altgr -ssharp 0x1f altgr -section 0x1f shift altgr -eth 0x20 altgr -ETH 0x20 shift altgr -dstroke 0x21 altgr -ordfeminine 0x21 shift altgr -eng 0x22 altgr -ENG 0x22 shift altgr -hstroke 0x23 altgr -Hstroke 0x23 shift altgr -kra 0x25 altgr -ampersand 0x25 shift altgr -lstroke 0x26 altgr -Lstroke 0x26 shift altgr +acircumflex 0x1e altgr +Acircumflex 0x1e shift altgr +section 0x1f altgr +ordfeminine 0x21 altgr +j 0x24 altgr +J 0x24 shift altgr scedilla 0x27 Scedilla 0x27 shift -dead_acute 0x27 altgr -dead_doubleacute 0x27 shift altgr +acute 0x27 altgr +dead_acute 0x27 shift altgr i 0x28 Iabovedot 0x28 shift -dead_circumflex 0x28 altgr +apostrophe 0x28 altgr dead_caron 0x28 shift altgr -backslash 0x29 -quotedbl 0x29 shift -asciitilde 0x29 altgr +quotedbl 0x29 +backslash 0x29 shift +plusminus 0x29 altgr +degree 0x29 shift altgr comma 0x2b semicolon 0x2b shift -bar 0x2b altgr -dead_breve 0x2b shift altgr +grave 0x2b altgr +dead_grave 0x2b shift altgr guillemotleft 0x2c altgr less 0x2c shift altgr guillemotright 0x2d altgr @@ -104,20 +87,21 @@ greater 0x2d shift altgr cent 0x2e altgr copyright 0x2e shift altgr leftdoublequotemark 0x2f altgr -grave 0x2f shift altgr +leftsinglequotemark 0x2f shift altgr rightdoublequotemark 0x30 altgr -apostrophe 0x30 shift altgr +rightsinglequotemark 0x30 shift altgr +n 0x31 altgr +N 0x31 shift altgr mu 0x32 altgr masculine 0x32 shift altgr odiaeresis 0x33 Odiaeresis 0x33 shift -less 0x33 altgr -multiply 0x33 shift altgr +multiply 0x33 altgr ccedilla 0x34 Ccedilla 0x34 shift -greater 0x34 altgr +periodcentered 0x34 altgr division 0x34 shift altgr period 0x35 colon 0x35 shift -dead_belowdot 0x35 altgr +dead_abovedot 0x35 altgr dead_abovedot 0x35 shift altgr _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Ian Jackson
2008-Dec-11 17:51 UTC
Re: [Xen-devel] [PATCH 0 of 3][IOEMU] Fix keymap handling for vnc console
John Haxby writes ("[Xen-devel] [PATCH 0 of 3][IOEMU] Fix keymap handling for vnc console"):> This is a slightly updated version of the patch I posted a little while > ago. It is a patch against the ioemu-remote tree in xen-3.3-testing. > I''ll be sending a corresponding patch to qemu-devel when I''ve got my > qemu build environment sorted out.Thanks. Would you mind if I waited to get this patch via qemu-devel and qemu upstream ? Or at least waited until I see what their response is :-). Obviously if they''re very tardy I''ll consider picking it up directly from you. I want to pull from qemu-devel again as soon as I''ve managed to get my current tree through our automated tests. Ian. _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
John Haxby
2008-Dec-16 16:53 UTC
Re: [Xen-devel] [PATCH 0 of 3][IOEMU] Fix keymap handling for vnc console
Ian Jackson wrote:> John Haxby writes ("[Xen-devel] [PATCH 0 of 3][IOEMU] Fix keymap handling for vnc console"): > >> This is a slightly updated version of the patch I posted a little while >> ago. It is a patch against the ioemu-remote tree in xen-3.3-testing. >> I''ll be sending a corresponding patch to qemu-devel when I''ve got my >> qemu build environment sorted out. >> > > Thanks. Would you mind if I waited to get this patch via qemu-devel > and qemu upstream ? > >Yes, that''s fine.> Or at least waited until I see what their response is :-). Obviously > if they''re very tardy I''ll consider picking it up directly from you. > >:-)> I want to pull from qemu-devel again as soon as I''ve managed to get my > current tree through our automated tests. >I was a little surprised how different upstream qemu was/is. The altgr and localstate handling that I replaced isn''t in upstream qemu at all -- on the other hand they do have exciting things like audio and cut''n''paste support in there. I''ve pushed a suitably modified series of patches to qemu-devel now though. jch _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Ian Jackson
2008-Dec-16 17:12 UTC
Re: [Xen-devel] [PATCH 0 of 3][IOEMU] Fix keymap handling for vnc console
John Haxby writes ("Re: [Xen-devel] [PATCH 0 of 3][IOEMU] Fix keymap handling for vnc console"):> Ian Jackson wrote: > > Thanks. Would you mind if I waited to get this patch via qemu-devel > > and qemu upstream ? > > Yes, that''s fine.Great.> > I want to pull from qemu-devel again as soon as I''ve managed to get my > > current tree through our automated tests. > > I was a little surprised how different upstream qemu was/is. The altgr > and localstate handling that I replaced isn''t in upstream qemu at all -- > on the other hand they do have exciting things like audio and > cut''n''paste support in there.Yes, I quite agree and we are trying to reduce these differences - and one of the ways is by pulling from qemu as often as possible. If there are specific parts of our patchsets that don''t make sense with changes that are going upstream it''s a good idea to mention it so that I know to drop them when I do the relevant merge.> I''ve pushed a suitably modified series of patches to qemu-devel now though.Great, thanks. Let me know if I can help at all. Ian. _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel