1 From: "Marcel Zumstein" <marcel.zumstein@oxinia.ch>
2 Subject: [Qemu-devel] AltGr and dead keys with VNC
4 In VNC mode, my AltGr key (mapped to ISO_Level3_Shift) and the dead keys
5 aren't supported. This patch adds XK_ISO_Level3_Shift (keysym 0xfe03) to
6 the keymap. Furthermore, it adds support for the dead keys, which were
7 for some reason present in the keymaps, but not in vnc_keysym.h. This is
8 relevant for VNC viewers that pass dead keys on to the guest system
9 (e.g. tightvnc does) and don't compose the accented letters themselves.
11 Index: qemu/keymaps/modifiers
12 ===================================================================
13 --- a/qemu/keymaps/modifiers.orig
14 +++ a/qemu/keymaps/modifiers
15 @@ -3,6 +3,7 @@ Shift_L 0x2a
19 +ISO_Level3_Shift 0xb8
23 Index: qemu/vnc_keysym.h
24 ===================================================================
25 --- a/qemu/vnc_keysym.h.orig
26 +++ a/qemu/vnc_keysym.h
27 @@ -204,6 +204,7 @@ static const name2keysym_t name2keysym[]
28 {"EuroSign", 0x20ac}, /* XK_EuroSign */
31 +{"ISO_Level3_Shift", 0xfe03}, /* XK_ISO_Level3_Shift */
32 {"Control_L", 0xffe3}, /* XK_Control_L */
33 {"Control_R", 0xffe4}, /* XK_Control_R */
34 {"Alt_L", 0xffe9}, /* XK_Alt_L */
35 @@ -286,6 +287,27 @@ static const name2keysym_t name2keysym[]
36 {"Pause", 0xff13}, /* XK_Pause */
37 {"Escape", 0xff1b}, /* XK_Escape */
40 +{"dead_grave", 0xfe50}, /* XK_dead_grave */
41 +{"dead_acute", 0xfe51}, /* XK_dead_acute */
42 +{"dead_circumflex", 0xfe52}, /* XK_dead_circumflex */
43 +{"dead_tilde", 0xfe53}, /* XK_dead_tilde */
44 +{"dead_macron", 0xfe54}, /* XK_dead_macron */
45 +{"dead_breve", 0xfe55}, /* XK_dead_breve */
46 +{"dead_abovedot", 0xfe56}, /* XK_dead_abovedot */
47 +{"dead_diaeresis", 0xfe57}, /* XK_dead_diaeresis */
48 +{"dead_abovering", 0xfe58}, /* XK_dead_abovering */
49 +{"dead_doubleacute", 0xfe59}, /* XK_dead_doubleacute */
50 +{"dead_caron", 0xfe5a}, /* XK_dead_caron */
51 +{"dead_cedilla", 0xfe5b}, /* XK_dead_cedilla */
52 +{"dead_ogonek", 0xfe5c}, /* XK_dead_ogonek */
53 +{"dead_iota", 0xfe5d}, /* XK_dead_iota */
54 +{"dead_voiced_sound", 0xfe5e}, /* XK_dead_voiced_sound */
55 +{"dead_semivoiced_sound", 0xfe5f}, /* XK_dead_semivoiced_sound */
56 +{"dead_belowdot", 0xfe60}, /* XK_dead_belowdot */
57 +{"dead_hook", 0xfe61}, /* XK_dead_hook */
58 +{"dead_horn", 0xfe62}, /* XK_dead_horn */
61 {"BackApostrophe", 0xff21},