Merge branch 'libkeymap'
diff --git a/data/Makefile.am b/data/Makefile.am
index 0a2fbf1..233d1c8 100644
--- a/data/Makefile.am
+++ b/data/Makefile.am
@@ -9,7 +9,7 @@
 PARTIALDIR   = partialfonts
 TRANSDIR     = consoletrans
 
-KEYMAPSUBDIRS = include sun amiga atari i386/azerty i386/dvorak \
+KEYMAPSUBDIRS = include sun amiga atari i386/azerty i386/bepo i386/dvorak \
 	i386/fgGIod i386/qwerty i386/qwertz i386/include i386/olpc \
 	i386/colemak mac/include mac/all
 
diff --git a/data/keymaps/i386/bepo/dvorak-fr-bepo-utf8.map b/data/keymaps/i386/bepo/dvorak-fr-bepo-utf8.map
new file mode 100644
index 0000000..6ff0371
--- /dev/null
+++ b/data/keymaps/i386/bepo/dvorak-fr-bepo-utf8.map
@@ -0,0 +1,234 @@
+# Bépo : Improved ergonomic french keymap using Dvorak method. -*- conf -*-
+# Built by community on 'Dvorak Fr / Bépo' :
+# see http://www.clavier-dvorak.org/wiki/ to join and help.
+
+include "linux-with-alt-and-altgr"
+
+
+### CapsLock with '+eacute' doesn't work, nor with egrave, ccedilla,
+### ecircumflex, agrave and guillemotleft/right : bug ?
+
+
+# We define at most 16 levels for each keycode :
+# plain, Shift, AltGr, Shift+AltGr,
+# Control, Control+Shift, Control+AltGr, Control+Shift+AltGr,
+# Alt, Alt+Shift, Alt+AltGr, Alt+Shift+Altgr
+# Alt+Control, Alt+Control+Shift, Alt+Control+AltGr, Alt+Control+Shift+AltGr.
+#
+# Note that incomplete lines are completed with VoidSymbol.
+keymaps 0-15
+
+# First row
+keycode  41 = dollar numbersign       U+2013  U+00b6
+         Alt             keycode  41 = Meta_dollar
+         Alt Shift       keycode  41 = Meta_numbersign
+
+keycode   2 = +quotedbl +one          U+2014  U+201e
+         Alt             keycode   2 = Meta_quotedbl
+         Alt Shift       keycode   2 = Meta_one
+
+keycode   3 = +guillemotleft  +two     less    U+201c
+         Alt Shift       keycode   3 = Meta_two
+         Alt       AltGr keycode   3 = Meta_less
+
+keycode   4 = +guillemotright +three  greater U+201d
+         Alt Shift       keycode   4 = Meta_three
+         Alt       AltGr keycode   4 = Meta_greater
+
+keycode   5 = +parenleft +four        bracketleft  U+2264
+         Alt             keycode   5 = Meta_parenleft
+         Alt Shift       keycode   5 = Meta_four
+         Alt       AltGr keycode   5 = Meta_bracketleft
+
+keycode   6 = +parenright +five       bracketright  U+2265
+         Alt             keycode   6 = Meta_parenright
+         Alt Shift       keycode   6 = Meta_five
+         Alt       AltGr keycode   6 = Meta_bracketright
+ Control Alt       AltGr keycode   6 = Meta_Control_bracketright
+
+keycode   7 = +at       +six          asciicircum  asciicircum
+         Alt             keycode   7 = Meta_at
+         Alt Shift       keycode   7 = Meta_six
+         Alt       AltGr keycode   7 = Meta_asciicircum
+         Alt Shift AltGr keycode   7 = Meta_asciicircum
+ Control Alt AltGr       keycode   7 = Meta_Control_asciicircum
+ Control Alt Shift AltGr keycode   7 = Meta_Control_asciicircum
+
+keycode   8 = +plus     +seven        U+00b1  U+00ac
+         Alt             keycode   8 = Meta_plus
+         Alt Shift       keycode   8 = Meta_seven
+
+keycode   9 = +minus    +eight        U+2212  U+00bc
+         Alt             keycode   9 = Meta_minus
+         Alt Shift       keycode   9 = Meta_eight
+
+keycode  10 = +slash    +nine         U+00f7  U+00bd
+         Alt             keycode  10 = Meta_slash
+         Alt Shift       keycode  10 = Meta_nine
+
+keycode  11 = +asterisk +zero         U+00d7  U+00be
+         Alt             keycode  11 = Meta_asterisk
+         Alt Shift       keycode  11 = Meta_zero
+
+keycode  12 = equal     U+00b0        U+2260  U+2032
+         Alt             keycode  12 = Meta_equal
+
+keycode  13 = percent   grave         U+2030  U+2033
+         Alt             keycode  13 = Meta_percent
+         Alt Shift       keycode  13 = Meta_grave
+
+
+# Second row
+
+# simplified letter definitions notation :
+keycode 16 = b
+keycode 18 = p
+keycode 19 = o
+keycode 22 = v
+keycode 23 = d
+keycode 24 = l
+keycode 25 = j
+keycode 26 = z
+keycode 27 = w
+
+# then, add specific definitions
+                   AltGr keycode  16 = bar
+             Shift AltGr keycode  16 = brokenbar
+         Alt       AltGr keycode  16 = Meta_bar
+
+keycode 17 = +eacute +Eacute dead_acute
+
+                   AltGr keycode  18 = ampersand
+             Shift AltGr keycode  18 = U+00a7
+         Alt       AltGr keycode  18 = Meta_ampersand
+
+                   AltGr keycode  19 = +U+0153
+             Shift AltGr keycode  19 = +U+0152
+
+keycode 20 = +egrave +Egrave dead_grave grave # no Meta !
+
+keycode 21 = dead_circumflex exclam exclamdown
+         Alt Shift       keycode  21 = Meta_exclam
+
+                   AltGr keycode  22 = dead_caron
+             Shift AltGr keycode  22 = dead_caron
+
+                   AltGr keycode  23 = eth
+             Shift AltGr keycode  23 = ETH
+
+                   AltGr keycode  25 = +U+0133
+             Shift AltGr keycode  25 = +U+0132
+
+                   AltGr keycode  26 = +U+0259
+             Shift AltGr keycode  26 = +U+018f
+
+
+
+# Third row
+
+# simplified letter definitions notation :
+keycode 30 = a
+keycode 31 = u
+keycode 32 = i
+keycode 33 = e
+keycode 35 = c
+keycode 36 = t
+keycode 37 = s
+keycode 38 = r
+keycode 39 = n
+keycode 40 = m
+
+# then, add specific definitions
+                   AltGr keycode  30 = +ae
+             Shift AltGr keycode  30 = +AE
+
+                   AltGr keycode  31 = +ugrave
+             Shift AltGr keycode  31 = +ugrave
+
+                   AltGr keycode  32 = dead_diaeresis
+             Shift AltGr keycode  32 = VoidSymbol
+
+                   AltGr keycode  33 = U+20ac
+             Shift AltGr keycode  33 = VoidSymbol
+
+keycode 34 = comma semicolon U+2019 +U+031b
+         Alt             keycode  34 = Meta_comma
+         Alt Shift       keycode  34 = Meta_semicolon
+
+                   AltGr keycode  35 = copyright
+             Shift AltGr keycode  35 = U+017f
+
+                   AltGr keycode  36 = +thorn
+             Shift AltGr keycode  36 = +THORN
+
+                   AltGr keycode  37 = +ssharp
+             Shift AltGr keycode  37 = U+1e9e
+
+                   AltGr keycode  38 = registered
+             Shift AltGr keycode  38 = U+2122
+
+                   AltGr keycode  39 = dead_tilde
+             Shift AltGr keycode  39 = dead_tilde
+
+                   AltGr keycode  40 = VoidSymbol
+             Shift AltGr keycode  40 = masculine
+
+keycode 43 = +ccedilla +Ccedilla dead_cedilla
+
+
+# Fourth row
+
+# simplified letter definitions notation :
+keycode 45 = y
+keycode 46 = x
+keycode 48 = k
+keycode 50 = q
+keycode 51 = g
+keycode 52 = h
+keycode 53 = f
+
+# then, add specific definitions
+keycode 86 = +ecircumflex +Ecircumflex slash slash
+         Alt       AltGr keycode  86 = Meta_slash
+         Alt Shift AltGr keycode  86 = Meta_slash
+
+keycode 44 = +agrave +Agrave backslash backslash
+         Alt       AltGr keycode  44 = Meta_backslash
+         Alt Shift AltGr keycode  44 = Meta_backslash
+
+                   AltGr keycode  45 = braceleft
+             Shift AltGr keycode  45 = U+2018
+         Alt       AltGr keycode  45 = Meta_braceleft
+
+                   AltGr keycode  46 = braceright
+             Shift AltGr keycode  46 = U+2019
+         Alt       AltGr keycode  46 = Meta_braceright
+
+keycode 47 = period colon U+2026 periodcentered
+         Alt             keycode  47 = Meta_period
+         Alt Shift       keycode  47 = Meta_colon
+
+                   AltGr keycode  48 = asciitilde
+             Shift AltGr keycode  48 = asciitilde
+         Alt       AltGr keycode  48 = Meta_asciitilde
+         Alt Shift AltGr keycode  48 = Meta_asciitilde
+
+keycode 49 = apostrophe question questiondown +U+0309
+         Alt             keycode  49 = Meta_apostrophe
+         Alt Shift       keycode  49 = Meta_question
+
+                   AltGr keycode  51 = mu
+             Shift AltGr keycode  51 = VoidSymbol
+
+                   AltGr keycode  52 = U+2020
+             Shift AltGr keycode  52 = U+2021
+
+                   AltGr keycode  53 = VoidSymbol
+             Shift AltGr keycode  53 = ordfeminine
+
+
+
+keycode 57 = space nobreakspace underscore U+202f
+         Alt             keycode  52 = Meta_space
+         Alt       AltGr keycode  52 = Meta_underscore
+ Control Alt       AltGr keycode  52 = Meta_Control_underscore
diff --git a/data/keymaps/i386/bepo/dvorak-fr-bepo.map b/data/keymaps/i386/bepo/dvorak-fr-bepo.map
new file mode 100644
index 0000000..9e5d899
--- /dev/null
+++ b/data/keymaps/i386/bepo/dvorak-fr-bepo.map
@@ -0,0 +1,1015 @@
+# fr-dvorak-bepo  http://www.clavier-dvorak.org
+charset "iso-8859-15"
+keymaps 0-15
+
+# includes are disabled to work also on debian
+# include "linux-with-alt-and-altgr"
+
+
+################### linux-keys-bare ###################
+# Linux-specific (and language-independent) keys
+#
+# This file describes function keys, console switching keys,
+# keypad, cursor keys, and SysRq, ScrollLock, Pause
+#
+# It does not use the AltGr modifier, so that the user can opt
+# to have both Alt keys produce the same effect.
+# As a consequence, the Hex_* keys are missing, as are
+#	control altgr keycode 83 = Boot
+#	control altgr keycode 111 = Boot
+#
+# One culture-specific item that will be overridden in many keymaps
+# is the KP_Period: many countries have a KP_Comma instead.
+#
+# One user-preference item will be the function of the Delete key.
+#
+# Old keyboards have 10 function keys, and keymaps have
+# sometimes used shift+F1 = F11, and sometimes shift+F1 = F13.
+# Here we assume an enhanced keyboard (with 12 function keys).
+#
+plain keycode  59 = F1
+plain keycode  60 = F2
+plain keycode  61 = F3
+plain keycode  62 = F4
+plain keycode  63 = F5
+plain keycode  64 = F6
+plain keycode  65 = F7
+plain keycode  66 = F8
+plain keycode  67 = F9
+plain keycode  68 = F10
+plain keycode  87 = F11
+plain keycode  88 = F12
+shift keycode  59 = F13
+shift keycode  60 = F14
+shift keycode  61 = F15
+shift keycode  62 = F16
+shift keycode  63 = F17
+shift keycode  64 = F18
+shift keycode  65 = F19
+shift keycode  66 = F20
+shift keycode  67 = F21
+shift keycode  68 = F22
+shift keycode  87 = F23
+shift keycode  88 = F24
+control keycode  59 = F25
+control keycode  60 = F26
+control keycode  61 = F27
+control keycode  62 = F28
+control keycode  63 = F29
+control keycode  64 = F30
+control keycode  65 = F31
+control keycode  66 = F32
+control keycode  67 = F33
+control keycode  68 = F34
+control keycode  87 = F35
+control keycode  88 = F36
+#
+# The canonical assignment for F37-F48 uses
+#	control shift keycode  59 = F37
+# etc. If you want that, load linux-keys-extd.inc
+#
+# Both Alt+Fn and Control+Alt+Fn switch to Console n
+# (in order to please Linux / dosemu / X).
+# Here Consoles 1..12. For 13..24 load linux-keys-extd.inc
+#
+alt keycode  59 = Console_1
+alt keycode  60 = Console_2
+alt keycode  61 = Console_3
+alt keycode  62 = Console_4
+alt keycode  63 = Console_5
+alt keycode  64 = Console_6
+alt keycode  65 = Console_7
+alt keycode  66 = Console_8
+alt keycode  67 = Console_9
+alt keycode  68 = Console_10
+alt keycode  87 = Console_11
+alt keycode  88 = Console_12
+control alt keycode  59 = Console_1
+control alt keycode  60 = Console_2
+control alt keycode  61 = Console_3
+control alt keycode  62 = Console_4
+control alt keycode  63 = Console_5
+control alt keycode  64 = Console_6
+control alt keycode  65 = Console_7
+control alt keycode  66 = Console_8
+control alt keycode  67 = Console_9
+control alt keycode  68 = Console_10
+control alt keycode  87 = Console_11
+control alt keycode  88 = Console_12
+
+#
+# Keypad keys
+#
+keycode  69 = Num_Lock
+keycode  98 = KP_Divide
+keycode  55 = KP_Multiply
+keycode  74 = KP_Subtract
+keycode  78 = KP_Add
+keycode  96 = KP_Enter
+#
+keycode  71 = KP_7
+keycode  72 = KP_8
+keycode  73 = KP_9
+keycode  75 = KP_4
+keycode  76 = KP_5
+keycode  77 = KP_6
+keycode  79 = KP_1
+keycode  80 = KP_2
+keycode  81 = KP_3
+keycode  82 = KP_0
+#
+keycode  83 = KP_Period			# or KP_Comma
+control alt keycode  83 = Boot
+#
+alt keycode  71 = Ascii_7
+alt keycode  72 = Ascii_8
+alt keycode  73 = Ascii_9
+alt keycode  75 = Ascii_4
+alt keycode  76 = Ascii_5
+alt keycode  77 = Ascii_6
+alt keycode  79 = Ascii_1
+alt keycode  80 = Ascii_2
+alt keycode  81 = Ascii_3
+alt keycode  82 = Ascii_0
+#
+# The four cursor keys
+#
+keycode 103 = Up
+keycode 105 = Left
+keycode 106 = Right
+keycode 108 = Down
+alt keycode 103 = KeyboardSignal
+alt keycode 105 = Decr_Console
+alt keycode 106 = Incr_Console
+#
+# The six edit keys
+#
+keycode 110 = Insert
+keycode 102 = Home		# Find
+keycode 104 = PageUp		# Prior
+keycode 111 = Remove
+keycode 107 = End		# Select
+keycode 109 = PageDown		# Next
+shift keycode 104 = Scroll_Backward
+shift keycode 109 = Scroll_Forward
+control	alt keycode 111 = Boot
+#
+# The three system keys
+#
+keycode  84 = Last_Console		# Alt+SysRq/PrintScrn
+keycode  99 = Control_backslash		# SysRq/PrintScrn
+
+plain   keycode 70 = Scroll_Lock
+shift	keycode 70 = Show_Memory
+control keycode 70 = Show_State
+alt	keycode 70 = Show_Registers
+
+keycode 101 = Break			# Ctrl+Break/Pause
+keycode 119 = Pause			# Break/Pause
+################################################################
+
+################### linux-with-alt-and-altgr ###################
+# For keymaps in which both Alt keys are equivalent
+# No convention for Hex_* has been established.
+
+# include "linux-keys-bare"
+
+keycode 100 = AltGr
+
+altgr keycode 70 = Show_Registers
+alt keycode 70 = Scroll_Lock
+
+control altgr keycode 83 = Boot
+control altgr keycode 111 = Boot
+
+# Hex keypad keys (for giving a Unicode value in 4 hex digits)
+# Follow lt.kmap and assign Hex_A .. Hex_F to keypad border.
+altgr keycode  55 = Hex_C
+altgr keycode  69 = Hex_A
+altgr keycode  71 = Hex_7
+altgr keycode  72 = Hex_8
+altgr keycode  73 = Hex_9
+altgr keycode  74 = Hex_D
+altgr keycode  75 = Hex_4
+altgr keycode  76 = Hex_5
+altgr keycode  77 = Hex_6
+altgr keycode  78 = Hex_E
+altgr keycode  79 = Hex_1
+altgr keycode  80 = Hex_2
+altgr keycode  81 = Hex_3
+altgr keycode  82 = Hex_0
+altgr keycode  96 = Hex_F
+altgr keycode  98 = Hex_B
+################################################################
+
+strings as usual
+compose as usual for "iso-8859-1"
+
+
+
+keycode 41 = dollar
+  Control keycode 41 = VoidSymbol
+  Alt keycode 41 = Meta_dollar
+  Control Alt keycode 41 = VoidSymbol
+  Shift keycode 41 = numbersign
+  Shift   Control keycode 41 = VoidSymbol
+  Shift   Alt keycode 41 = Meta_numbersign
+  Shift   Control Alt keycode 41 = VoidSymbol
+  Altgr keycode 41 = VoidSymbol
+  Altgr   Control keycode 41 = VoidSymbol
+  Altgr   Alt keycode 41 = VoidSymbol
+  Altgr   Control Alt keycode 41 = VoidSymbol
+  Shift Altgr keycode 41 = paragraph
+  Shift Altgr   Control keycode 41 = VoidSymbol
+  Shift Altgr   Alt keycode 41 = VoidSymbol
+  Shift Altgr   Control Alt keycode 41 = VoidSymbol
+keycode 2 = +quotedbl
+  Control keycode 2 = VoidSymbol
+  Alt keycode 2 = Meta_quotedbl
+  Control Alt keycode 2 = VoidSymbol
+  Shift keycode 2 = +one
+  Shift   Control keycode 2 = VoidSymbol
+  Shift   Alt keycode 2 = Meta_one
+  Shift   Control Alt keycode 2 = VoidSymbol
+  Altgr keycode 2 = VoidSymbol
+  Altgr   Control keycode 2 = VoidSymbol
+  Altgr   Alt keycode 2 = VoidSymbol
+  Altgr   Control Alt keycode 2 = VoidSymbol
+  Shift Altgr keycode 2 = VoidSymbol
+  Shift Altgr   Control keycode 2 = VoidSymbol
+  Shift Altgr   Alt keycode 2 = VoidSymbol
+  Shift Altgr   Control Alt keycode 2 = VoidSymbol
+keycode 3 = +guillemotleft
+  Control keycode 3 = VoidSymbol
+  Alt keycode 3 = VoidSymbol
+  Control Alt keycode 3 = VoidSymbol
+  Shift keycode 3 = +two
+  Shift   Control keycode 3 = VoidSymbol
+  Shift   Alt keycode 3 = Meta_two
+  Shift   Control Alt keycode 3 = VoidSymbol
+  Altgr keycode 3 = less
+  Altgr   Control keycode 3 = VoidSymbol
+  Altgr   Alt keycode 3 = Meta_less
+  Altgr   Control Alt keycode 3 = VoidSymbol
+  Shift Altgr keycode 3 = VoidSymbol
+  Shift Altgr   Control keycode 3 = VoidSymbol
+  Shift Altgr   Alt keycode 3 = VoidSymbol
+  Shift Altgr   Control Alt keycode 3 = VoidSymbol
+keycode 4 = +guillemotright
+  Control keycode 4 = VoidSymbol
+  Alt keycode 4 = VoidSymbol
+  Control Alt keycode 4 = VoidSymbol
+  Shift keycode 4 = +three
+  Shift   Control keycode 4 = VoidSymbol
+  Shift   Alt keycode 4 = Meta_three
+  Shift   Control Alt keycode 4 = VoidSymbol
+  Altgr keycode 4 = greater
+  Altgr   Control keycode 4 = VoidSymbol
+  Altgr   Alt keycode 4 = Meta_greater
+  Altgr   Control Alt keycode 4 = VoidSymbol
+  Shift Altgr keycode 4 = VoidSymbol
+  Shift Altgr   Control keycode 4 = VoidSymbol
+  Shift Altgr   Alt keycode 4 = VoidSymbol
+  Shift Altgr   Control Alt keycode 4 = VoidSymbol
+keycode 5 = +parenleft
+  Control keycode 5 = VoidSymbol
+  Alt keycode 5 = Meta_parenleft
+  Control Alt keycode 5 = VoidSymbol
+  Shift keycode 5 = +four
+  Shift   Control keycode 5 = VoidSymbol
+  Shift   Alt keycode 5 = Meta_four
+  Shift   Control Alt keycode 5 = VoidSymbol
+  Altgr keycode 5 = bracketleft
+  Altgr   Control keycode 5 = VoidSymbol
+  Altgr   Alt keycode 5 = Meta_bracketleft
+  Altgr   Control Alt keycode 5 = VoidSymbol
+  Shift Altgr keycode 5 = VoidSymbol
+  Shift Altgr   Control keycode 5 = VoidSymbol
+  Shift Altgr   Alt keycode 5 = VoidSymbol
+  Shift Altgr   Control Alt keycode 5 = VoidSymbol
+keycode 6 = +parenright
+  Control keycode 6 = VoidSymbol
+  Alt keycode 6 = Meta_parenright
+  Control Alt keycode 6 = VoidSymbol
+  Shift keycode 6 = +five
+  Shift   Control keycode 6 = VoidSymbol
+  Shift   Alt keycode 6 = Meta_five
+  Shift   Control Alt keycode 6 = VoidSymbol
+  Altgr keycode 6 = bracketright
+  Altgr   Control keycode 6 = VoidSymbol
+  Altgr   Alt keycode 6 = Meta_bracketright
+  Altgr   Control Alt keycode 6 = Meta_Control_bracketright
+  Shift Altgr keycode 6 = VoidSymbol
+  Shift Altgr   Control keycode 6 = VoidSymbol
+  Shift Altgr   Alt keycode 6 = VoidSymbol
+  Shift Altgr   Control Alt keycode 6 = VoidSymbol
+keycode 7 = +at
+  Control keycode 7 = VoidSymbol
+  Alt keycode 7 = Meta_at
+  Control Alt keycode 7 = VoidSymbol
+  Shift keycode 7 = +six
+  Shift   Control keycode 7 = VoidSymbol
+  Shift   Alt keycode 7 = Meta_six
+  Shift   Control Alt keycode 7 = VoidSymbol
+  Altgr keycode 7 = asciicircum
+  Altgr   Control keycode 7 = VoidSymbol
+  Altgr   Alt keycode 7 = Meta_asciicircum
+  Altgr   Control Alt keycode 7 = Meta_Control_asciicircum
+  Shift Altgr keycode 7 = VoidSymbol
+  Shift Altgr   Control keycode 7 = VoidSymbol
+  Shift Altgr   Alt keycode 7 = VoidSymbol
+  Shift Altgr   Control Alt keycode 7 = VoidSymbol
+keycode 8 = +plus
+  Control keycode 8 = VoidSymbol
+  Alt keycode 8 = Meta_plus
+  Control Alt keycode 8 = VoidSymbol
+  Shift keycode 8 = +seven
+  Shift   Control keycode 8 = VoidSymbol
+  Shift   Alt keycode 8 = Meta_seven
+  Shift   Control Alt keycode 8 = VoidSymbol
+  Altgr keycode 8 = plusminus
+  Altgr   Control keycode 8 = VoidSymbol
+  Altgr   Alt keycode 8 = VoidSymbol
+  Altgr   Control Alt keycode 8 = VoidSymbol
+  Shift Altgr keycode 8 = notsign
+  Shift Altgr   Control keycode 8 = VoidSymbol
+  Shift Altgr   Alt keycode 8 = VoidSymbol
+  Shift Altgr   Control Alt keycode 8 = VoidSymbol
+keycode 9 = +minus
+  Control keycode 9 = VoidSymbol
+  Alt keycode 9 = Meta_minus
+  Control Alt keycode 9 = VoidSymbol
+  Shift keycode 9 = +eight
+  Shift   Control keycode 9 = VoidSymbol
+  Shift   Alt keycode 9 = Meta_eight
+  Shift   Control Alt keycode 9 = VoidSymbol
+  Altgr keycode 9 = VoidSymbol
+  Altgr   Control keycode 9 = VoidSymbol
+  Altgr   Alt keycode 9 = VoidSymbol
+  Altgr   Control Alt keycode 9 = VoidSymbol
+  Shift Altgr keycode 9 = VoidSymbol
+  Shift Altgr   Control keycode 9 = VoidSymbol
+  Shift Altgr   Alt keycode 9 = VoidSymbol
+  Shift Altgr   Control Alt keycode 9 = VoidSymbol
+keycode 10 = +slash
+  Control keycode 10 = VoidSymbol
+  Alt keycode 10 = Meta_slash
+  Control Alt keycode 10 = VoidSymbol
+  Shift keycode 10 = +nine
+  Shift   Control keycode 10 = VoidSymbol
+  Shift   Alt keycode 10 = Meta_nine
+  Shift   Control Alt keycode 10 = VoidSymbol
+  Altgr keycode 10 = division
+  Altgr   Control keycode 10 = VoidSymbol
+  Altgr   Alt keycode 10 = VoidSymbol
+  Altgr   Control Alt keycode 10 = VoidSymbol
+  Shift Altgr keycode 10 = VoidSymbol
+  Shift Altgr   Control keycode 10 = VoidSymbol
+  Shift Altgr   Alt keycode 10 = VoidSymbol
+  Shift Altgr   Control Alt keycode 10 = VoidSymbol
+keycode 11 = +asterisk
+  Control keycode 11 = VoidSymbol
+  Alt keycode 11 = Meta_asterisk
+  Control Alt keycode 11 = VoidSymbol
+  Shift keycode 11 = +zero
+  Shift   Control keycode 11 = VoidSymbol
+  Shift   Alt keycode 11 = Meta_zero
+  Shift   Control Alt keycode 11 = VoidSymbol
+  Altgr keycode 11 = multiply
+  Altgr   Control keycode 11 = VoidSymbol
+  Altgr   Alt keycode 11 = VoidSymbol
+  Altgr   Control Alt keycode 11 = VoidSymbol
+  Shift Altgr keycode 11 = VoidSymbol
+  Shift Altgr   Control keycode 11 = VoidSymbol
+  Shift Altgr   Alt keycode 11 = VoidSymbol
+  Shift Altgr   Control Alt keycode 11 = VoidSymbol
+keycode 12 = equal
+  Control keycode 12 = VoidSymbol
+  Alt keycode 12 = Meta_equal
+  Control Alt keycode 12 = VoidSymbol
+  Shift keycode 12 = degree
+  Shift   Control keycode 12 = VoidSymbol
+  Shift   Alt keycode 12 = VoidSymbol
+  Shift   Control Alt keycode 12 = VoidSymbol
+  Altgr keycode 12 = VoidSymbol
+  Altgr   Control keycode 12 = VoidSymbol
+  Altgr   Alt keycode 12 = VoidSymbol
+  Altgr   Control Alt keycode 12 = VoidSymbol
+  Shift Altgr keycode 12 = VoidSymbol
+  Shift Altgr   Control keycode 12 = VoidSymbol
+  Shift Altgr   Alt keycode 12 = VoidSymbol
+  Shift Altgr   Control Alt keycode 12 = VoidSymbol
+keycode 13 = percent
+  Control keycode 13 = VoidSymbol
+  Alt keycode 13 = Meta_percent
+  Control Alt keycode 13 = VoidSymbol
+  Shift keycode 13 = grave
+  Shift   Control keycode 13 = VoidSymbol
+  Shift   Alt keycode 13 = Meta_grave
+  Shift   Control Alt keycode 13 = VoidSymbol
+  Altgr keycode 13 = VoidSymbol
+  Altgr   Control keycode 13 = VoidSymbol
+  Altgr   Alt keycode 13 = VoidSymbol
+  Altgr   Control Alt keycode 13 = VoidSymbol
+  Shift Altgr keycode 13 = VoidSymbol
+  Shift Altgr   Control keycode 13 = VoidSymbol
+  Shift Altgr   Alt keycode 13 = VoidSymbol
+  Shift Altgr   Control Alt keycode 13 = VoidSymbol
+keycode 16 = +b
+  Control keycode 16 = Control_b
+  Alt keycode 16 = Meta_b
+  Control Alt keycode 16 = Meta_Control_b
+  Shift keycode 16 = +B
+  Shift   Control keycode 16 = VoidSymbol
+  Shift   Alt keycode 16 = Meta_B
+  Shift   Control Alt keycode 16 = VoidSymbol
+  Altgr keycode 16 = bar
+  Altgr   Control keycode 16 = VoidSymbol
+  Altgr   Alt keycode 16 = Meta_bar
+  Altgr   Control Alt keycode 16 = VoidSymbol
+  Shift Altgr keycode 16 = VoidSymbol
+  Shift Altgr   Control keycode 16 = VoidSymbol
+  Shift Altgr   Alt keycode 16 = VoidSymbol
+  Shift Altgr   Control Alt keycode 16 = VoidSymbol
+keycode 17 = +eacute
+  Control keycode 17 = VoidSymbol
+  Alt keycode 17 = VoidSymbol
+  Control Alt keycode 17 = VoidSymbol
+  Shift keycode 17 = +Eacute
+  Shift   Control keycode 17 = VoidSymbol
+  Shift   Alt keycode 17 = VoidSymbol
+  Shift   Control Alt keycode 17 = VoidSymbol
+  Altgr keycode 17 = dead_acute
+  Altgr   Control keycode 17 = VoidSymbol
+  Altgr   Alt keycode 17 = VoidSymbol
+  Altgr   Control Alt keycode 17 = VoidSymbol
+  Shift Altgr keycode 17 = dead_doubleacute
+  Shift Altgr   Control keycode 17 = VoidSymbol
+  Shift Altgr   Alt keycode 17 = VoidSymbol
+  Shift Altgr   Control Alt keycode 17 = VoidSymbol
+keycode 18 = +p
+  Control keycode 18 = Control_p
+  Alt keycode 18 = Meta_p
+  Control Alt keycode 18 = Meta_Control_p
+  Shift keycode 18 = +P
+  Shift   Control keycode 18 = VoidSymbol
+  Shift   Alt keycode 18 = Meta_P
+  Shift   Control Alt keycode 18 = VoidSymbol
+  Altgr keycode 18 = ampersand
+  Altgr   Control keycode 18 = VoidSymbol
+  Altgr   Alt keycode 18 = Meta_ampersand
+  Altgr   Control Alt keycode 18 = VoidSymbol
+  Shift Altgr keycode 18 = section
+  Shift Altgr   Control keycode 18 = VoidSymbol
+  Shift Altgr   Alt keycode 18 = VoidSymbol
+  Shift Altgr   Control Alt keycode 18 = VoidSymbol
+keycode 19 = o
+  Control keycode 19 = Control_o
+  Alt keycode 19 = Meta_o
+  Control Alt keycode 19 = Meta_Control_o
+  Shift keycode 19 = O
+  Shift   Control keycode 19 = VoidSymbol
+  Shift   Alt keycode 19 = Meta_O
+  Shift   Control Alt keycode 19 = VoidSymbol
+  Altgr keycode 19 = 0xbd
+  Altgr   Control keycode 19 = VoidSymbol
+  Altgr   Alt keycode 19 = VoidSymbol
+  Altgr   Control Alt keycode 19 = VoidSymbol
+  Shift Altgr keycode 19 = 0xbc
+  Shift Altgr   Control keycode 19 = VoidSymbol
+  Shift Altgr   Alt keycode 19 = VoidSymbol
+  Shift Altgr   Control Alt keycode 19 = VoidSymbol
+keycode 20 = +egrave
+  Control keycode 20 = VoidSymbol
+  Alt keycode 20 = VoidSymbol
+  Control Alt keycode 20 = VoidSymbol
+  Shift keycode 20 = +Egrave
+  Shift   Control keycode 20 = VoidSymbol
+  Shift   Alt keycode 20 = VoidSymbol
+  Shift   Control Alt keycode 20 = VoidSymbol
+  Altgr keycode 20 = dead_grave
+  Altgr   Control keycode 20 = VoidSymbol
+  Altgr   Alt keycode 20 = Meta_grave
+  Altgr   Control Alt keycode 20 = VoidSymbol
+  Shift Altgr keycode 20 = grave
+  Shift Altgr   Control keycode 20 = VoidSymbol
+  Shift Altgr   Alt keycode 20 = Meta_grave
+  Shift Altgr   Control Alt keycode 20 = VoidSymbol
+keycode 21 = dead_circumflex
+  Control keycode 21 = VoidSymbol
+  Alt keycode 21 = Meta_asciicircum
+  Control Alt keycode 21 = Meta_Control_asciicircum
+  Shift keycode 21 = exclam
+  Shift   Control keycode 21 = VoidSymbol
+  Shift   Alt keycode 21 = Meta_exclam
+  Shift   Control Alt keycode 21 = VoidSymbol
+  Altgr keycode 21 = exclamdown
+  Altgr   Control keycode 21 = VoidSymbol
+  Altgr   Alt keycode 21 = VoidSymbol
+  Altgr   Control Alt keycode 21 = VoidSymbol
+  Shift Altgr keycode 21 = VoidSymbol
+  Shift Altgr   Control keycode 21 = VoidSymbol
+  Shift Altgr   Alt keycode 21 = VoidSymbol
+  Shift Altgr   Control Alt keycode 21 = VoidSymbol
+keycode 22 = +v
+  Control keycode 22 = Control_v
+  Alt keycode 22 = Meta_v
+  Control Alt keycode 22 = Meta_Control_v
+  Shift keycode 22 = +V
+  Shift   Control keycode 22 = VoidSymbol
+  Shift   Alt keycode 22 = Meta_V
+  Shift   Control Alt keycode 22 = VoidSymbol
+  Altgr keycode 22 = dead_caron
+  Altgr   Control keycode 22 = VoidSymbol
+  Altgr   Alt keycode 22 = VoidSymbol
+  Altgr   Control Alt keycode 22 = VoidSymbol
+  Shift Altgr keycode 22 = VoidSymbol
+  Shift Altgr   Control keycode 22 = VoidSymbol
+  Shift Altgr   Alt keycode 22 = VoidSymbol
+  Shift Altgr   Control Alt keycode 22 = VoidSymbol
+keycode 23 = d
+  Control keycode 23 = Control_d
+  Alt keycode 23 = Meta_d
+  Control Alt keycode 23 = Meta_Control_d
+  Shift keycode 23 = D
+  Shift   Control keycode 23 = VoidSymbol
+  Shift   Alt keycode 23 = Meta_D
+  Shift   Control Alt keycode 23 = VoidSymbol
+  Altgr keycode 23 = eth
+  Altgr   Control keycode 23 = VoidSymbol
+  Altgr   Alt keycode 23 = VoidSymbol
+  Altgr   Control Alt keycode 23 = VoidSymbol
+  Shift Altgr keycode 23 = ETH
+  Shift Altgr   Control keycode 23 = VoidSymbol
+  Shift Altgr   Alt keycode 23 = VoidSymbol
+  Shift Altgr   Control Alt keycode 23 = VoidSymbol
+keycode 24 = +l
+  Control keycode 24 = Control_l
+  Alt keycode 24 = Meta_l
+  Control Alt keycode 24 = Meta_Control_l
+  Shift keycode 24 = +L
+  Shift   Control keycode 24 = VoidSymbol
+  Shift   Alt keycode 24 = Meta_L
+  Shift   Control Alt keycode 24 = VoidSymbol
+  Altgr keycode 24 = VoidSymbol
+  Altgr   Control keycode 24 = VoidSymbol
+  Altgr   Alt keycode 24 = VoidSymbol
+  Altgr   Control Alt keycode 24 = VoidSymbol
+  Shift Altgr keycode 24 = VoidSymbol
+  Shift Altgr   Control keycode 24 = VoidSymbol
+  Shift Altgr   Alt keycode 24 = VoidSymbol
+  Shift Altgr   Control Alt keycode 24 = VoidSymbol
+keycode 25 = j
+  Control keycode 25 = Control_j
+  Alt keycode 25 = Meta_j
+  Control Alt keycode 25 = VoidSymbol
+  Shift keycode 25 = J
+  Shift   Control keycode 25 = VoidSymbol
+  Shift   Alt keycode 25 = Meta_J
+  Shift   Control Alt keycode 25 = VoidSymbol
+  Altgr keycode 25 = VoidSymbol
+  Altgr   Control keycode 25 = VoidSymbol
+  Altgr   Alt keycode 25 = VoidSymbol
+  Altgr   Control Alt keycode 25 = VoidSymbol
+  Shift Altgr keycode 25 = VoidSymbol
+  Shift Altgr   Control keycode 25 = VoidSymbol
+  Shift Altgr   Alt keycode 25 = VoidSymbol
+  Shift Altgr   Control Alt keycode 25 = VoidSymbol
+keycode 26 = z
+  Control keycode 26 = Control_z
+  Alt keycode 26 = Meta_z
+  Control Alt keycode 26 = Meta_Control_z
+  Shift keycode 26 = Z
+  Shift   Control keycode 26 = VoidSymbol
+  Shift   Alt keycode 26 = Meta_Z
+  Shift   Control Alt keycode 26 = VoidSymbol
+  Altgr keycode 26 = VoidSymbol
+  Altgr   Control keycode 26 = VoidSymbol
+  Altgr   Alt keycode 26 = VoidSymbol
+  Altgr   Control Alt keycode 26 = VoidSymbol
+  Shift Altgr keycode 26 = VoidSymbol
+  Shift Altgr   Control keycode 26 = VoidSymbol
+  Shift Altgr   Alt keycode 26 = VoidSymbol
+  Shift Altgr   Control Alt keycode 26 = VoidSymbol
+keycode 27 = +w
+  Control keycode 27 = Control_w
+  Alt keycode 27 = Meta_w
+  Control Alt keycode 27 = Meta_Control_w
+  Shift keycode 27 = +W
+  Shift   Control keycode 27 = VoidSymbol
+  Shift   Alt keycode 27 = Meta_W
+  Shift   Control Alt keycode 27 = VoidSymbol
+  Altgr keycode 27 = dead_breve
+  Altgr   Control keycode 27 = VoidSymbol
+  Altgr   Alt keycode 27 = VoidSymbol
+  Altgr   Control Alt keycode 27 = VoidSymbol
+  Shift Altgr keycode 27 = VoidSymbol
+  Shift Altgr   Control keycode 27 = VoidSymbol
+  Shift Altgr   Alt keycode 27 = VoidSymbol
+  Shift Altgr   Control Alt keycode 27 = VoidSymbol
+keycode 30 = a
+  Control keycode 30 = Control_a
+  Alt keycode 30 = Meta_a
+  Control Alt keycode 30 = Meta_Control_a
+  Shift keycode 30 = A
+  Shift   Control keycode 30 = VoidSymbol
+  Shift   Alt keycode 30 = Meta_A
+  Shift   Control Alt keycode 30 = VoidSymbol
+  Altgr keycode 30 = ae
+  Altgr   Control keycode 30 = VoidSymbol
+  Altgr   Alt keycode 30 = VoidSymbol
+  Altgr   Control Alt keycode 30 = VoidSymbol
+  Shift Altgr keycode 30 = AE
+  Shift Altgr   Control keycode 30 = VoidSymbol
+  Shift Altgr   Alt keycode 30 = VoidSymbol
+  Shift Altgr   Control Alt keycode 30 = VoidSymbol
+keycode 31 = u
+  Control keycode 31 = Control_u
+  Alt keycode 31 = Meta_u
+  Control Alt keycode 31 = Meta_Control_u
+  Shift keycode 31 = U
+  Shift   Control keycode 31 = VoidSymbol
+  Shift   Alt keycode 31 = Meta_U
+  Shift   Control Alt keycode 31 = VoidSymbol
+  Altgr keycode 31 = ugrave
+  Altgr   Control keycode 31 = VoidSymbol
+  Altgr   Alt keycode 31 = VoidSymbol
+  Altgr   Control Alt keycode 31 = VoidSymbol
+  Shift Altgr keycode 31 = Ugrave
+  Shift Altgr   Control keycode 31 = VoidSymbol
+  Shift Altgr   Alt keycode 31 = VoidSymbol
+  Shift Altgr   Control Alt keycode 31 = VoidSymbol
+keycode 32 = +i
+  Control keycode 32 = Control_i
+  Alt keycode 32 = Meta_i
+  Control Alt keycode 32 = VoidSymbol
+  Shift keycode 32 = +I
+  Shift   Control keycode 32 = VoidSymbol
+  Shift   Alt keycode 32 = Meta_I
+  Shift   Control Alt keycode 32 = VoidSymbol
+  Altgr keycode 32 = dead_diaeresis
+  Altgr   Control keycode 32 = VoidSymbol
+  Altgr   Alt keycode 32 = VoidSymbol
+  Altgr   Control Alt keycode 32 = VoidSymbol
+  Shift Altgr keycode 32 = VoidSymbol
+  Shift Altgr   Control keycode 32 = VoidSymbol
+  Shift Altgr   Alt keycode 32 = VoidSymbol
+  Shift Altgr   Control Alt keycode 32 = VoidSymbol
+keycode 33 = +e
+  Control keycode 33 = Control_e
+  Alt keycode 33 = Meta_e
+  Control Alt keycode 33 = Meta_Control_e
+  Shift keycode 33 = +E
+  Shift   Control keycode 33 = VoidSymbol
+  Shift   Alt keycode 33 = Meta_E
+  Shift   Control Alt keycode 33 = VoidSymbol
+  Altgr keycode 33 = 0xa4
+  Altgr   Control keycode 33 = VoidSymbol
+  Altgr   Alt keycode 33 = VoidSymbol
+  Altgr   Control Alt keycode 33 = VoidSymbol
+  Shift Altgr keycode 33 = VoidSymbol
+  Shift Altgr   Control keycode 33 = VoidSymbol
+  Shift Altgr   Alt keycode 33 = VoidSymbol
+  Shift Altgr   Control Alt keycode 33 = VoidSymbol
+keycode 34 = comma
+  Control keycode 34 = VoidSymbol
+  Alt keycode 34 = Meta_comma
+  Control Alt keycode 34 = VoidSymbol
+  Shift keycode 34 = semicolon
+  Shift   Control keycode 34 = VoidSymbol
+  Shift   Alt keycode 34 = Meta_semicolon
+  Shift   Control Alt keycode 34 = VoidSymbol
+  Altgr keycode 34 = VoidSymbol
+  Altgr   Control keycode 34 = VoidSymbol
+  Altgr   Alt keycode 34 = VoidSymbol
+  Altgr   Control Alt keycode 34 = VoidSymbol
+  Shift Altgr keycode 34 = VoidSymbol
+  Shift Altgr   Control keycode 34 = VoidSymbol
+  Shift Altgr   Alt keycode 34 = VoidSymbol
+  Shift Altgr   Control Alt keycode 34 = VoidSymbol
+keycode 35 = +c
+  Control keycode 35 = Control_c
+  Alt keycode 35 = Meta_c
+  Control Alt keycode 35 = Meta_Control_c
+  Shift keycode 35 = +C
+  Shift   Control keycode 35 = VoidSymbol
+  Shift   Alt keycode 35 = Meta_C
+  Shift   Control Alt keycode 35 = VoidSymbol
+  Altgr keycode 35 = copyright
+  Altgr   Control keycode 35 = VoidSymbol
+  Altgr   Alt keycode 35 = VoidSymbol
+  Altgr   Control Alt keycode 35 = VoidSymbol
+  Shift Altgr keycode 35 = VoidSymbol
+  Shift Altgr   Control keycode 35 = VoidSymbol
+  Shift Altgr   Alt keycode 35 = VoidSymbol
+  Shift Altgr   Control Alt keycode 35 = VoidSymbol
+keycode 36 = t
+  Control keycode 36 = Control_t
+  Alt keycode 36 = Meta_t
+  Control Alt keycode 36 = Meta_Control_t
+  Shift keycode 36 = T
+  Shift   Control keycode 36 = VoidSymbol
+  Shift   Alt keycode 36 = Meta_T
+  Shift   Control Alt keycode 36 = VoidSymbol
+  Altgr keycode 36 = thorn
+  Altgr   Control keycode 36 = VoidSymbol
+  Altgr   Alt keycode 36 = VoidSymbol
+  Altgr   Control Alt keycode 36 = VoidSymbol
+  Shift Altgr keycode 36 = THORN
+  Shift Altgr   Control keycode 36 = VoidSymbol
+  Shift Altgr   Alt keycode 36 = VoidSymbol
+  Shift Altgr   Control Alt keycode 36 = VoidSymbol
+keycode 37 = +s
+  Control keycode 37 = Control_s
+  Alt keycode 37 = Meta_s
+  Control Alt keycode 37 = Meta_Control_s
+  Shift keycode 37 = +S
+  Shift   Control keycode 37 = VoidSymbol
+  Shift   Alt keycode 37 = Meta_S
+  Shift   Control Alt keycode 37 = VoidSymbol
+  Altgr keycode 37 = ssharp
+  Altgr   Control keycode 37 = VoidSymbol
+  Altgr   Alt keycode 37 = VoidSymbol
+  Altgr   Control Alt keycode 37 = VoidSymbol
+  Shift Altgr keycode 37 = VoidSymbol
+  Shift Altgr   Control keycode 37 = VoidSymbol
+  Shift Altgr   Alt keycode 37 = VoidSymbol
+  Shift Altgr   Control Alt keycode 37 = VoidSymbol
+keycode 38 = +r
+  Control keycode 38 = Control_r
+  Alt keycode 38 = Meta_r
+  Control Alt keycode 38 = Meta_Control_r
+  Shift keycode 38 = +R
+  Shift   Control keycode 38 = VoidSymbol
+  Shift   Alt keycode 38 = Meta_R
+  Shift   Control Alt keycode 38 = VoidSymbol
+  Altgr keycode 38 = registered
+  Altgr   Control keycode 38 = VoidSymbol
+  Altgr   Alt keycode 38 = VoidSymbol
+  Altgr   Control Alt keycode 38 = VoidSymbol
+  Shift Altgr keycode 38 = VoidSymbol
+  Shift Altgr   Control keycode 38 = VoidSymbol
+  Shift Altgr   Alt keycode 38 = VoidSymbol
+  Shift Altgr   Control Alt keycode 38 = VoidSymbol
+keycode 39 = +n
+  Control keycode 39 = Control_n
+  Alt keycode 39 = Meta_n
+  Control Alt keycode 39 = Meta_Control_n
+  Shift keycode 39 = +N
+  Shift   Control keycode 39 = VoidSymbol
+  Shift   Alt keycode 39 = Meta_N
+  Shift   Control Alt keycode 39 = VoidSymbol
+  Altgr keycode 39 = dead_tilde
+  Altgr   Control keycode 39 = VoidSymbol
+  Altgr   Alt keycode 39 = Meta_asciitilde
+  Altgr   Control Alt keycode 39 = VoidSymbol
+  Shift Altgr keycode 39 = VoidSymbol
+  Shift Altgr   Control keycode 39 = VoidSymbol
+  Shift Altgr   Alt keycode 39 = VoidSymbol
+  Shift Altgr   Control Alt keycode 39 = VoidSymbol
+keycode 40 = +m
+  Control keycode 40 = Control_m
+  Alt keycode 40 = Meta_m
+  Control Alt keycode 40 = Meta_Control_m
+  Shift keycode 40 = +M
+  Shift   Control keycode 40 = VoidSymbol
+  Shift   Alt keycode 40 = Meta_M
+  Shift   Control Alt keycode 40 = VoidSymbol
+  Altgr keycode 40 = VoidSymbol
+  Altgr   Control keycode 40 = VoidSymbol
+  Altgr   Alt keycode 40 = VoidSymbol
+  Altgr   Control Alt keycode 40 = VoidSymbol
+  Shift Altgr keycode 40 = masculine
+  Shift Altgr   Control keycode 40 = VoidSymbol
+  Shift Altgr   Alt keycode 40 = VoidSymbol
+  Shift Altgr   Control Alt keycode 40 = VoidSymbol
+keycode 43 = +ccedilla
+  Control keycode 43 = VoidSymbol
+  Alt keycode 43 = VoidSymbol
+  Control Alt keycode 43 = VoidSymbol
+  Shift keycode 43 = +Ccedilla
+  Shift   Control keycode 43 = VoidSymbol
+  Shift   Alt keycode 43 = VoidSymbol
+  Shift   Control Alt keycode 43 = VoidSymbol
+  Altgr keycode 43 = dead_cedilla
+  Altgr   Control keycode 43 = VoidSymbol
+  Altgr   Alt keycode 43 = VoidSymbol
+  Altgr   Control Alt keycode 43 = VoidSymbol
+  Shift Altgr keycode 43 = VoidSymbol
+  Shift Altgr   Control keycode 43 = VoidSymbol
+  Shift Altgr   Alt keycode 43 = VoidSymbol
+  Shift Altgr   Control Alt keycode 43 = VoidSymbol
+keycode 86 = +ecircumflex
+  Control keycode 86 = VoidSymbol
+  Alt keycode 86 = VoidSymbol
+  Control Alt keycode 86 = VoidSymbol
+  Shift keycode 86 = +Ecircumflex
+  Shift   Control keycode 86 = VoidSymbol
+  Shift   Alt keycode 86 = VoidSymbol
+  Shift   Control Alt keycode 86 = VoidSymbol
+  Altgr keycode 86 = slash
+  Altgr   Control keycode 86 = VoidSymbol
+  Altgr   Alt keycode 86 = Meta_slash
+  Altgr   Control Alt keycode 86 = VoidSymbol
+  Shift Altgr keycode 86 = VoidSymbol
+  Shift Altgr   Control keycode 86 = VoidSymbol
+  Shift Altgr   Alt keycode 86 = VoidSymbol
+  Shift Altgr   Control Alt keycode 86 = VoidSymbol
+keycode 44 = +agrave
+  Control keycode 44 = VoidSymbol
+  Alt keycode 44 = VoidSymbol
+  Control Alt keycode 44 = VoidSymbol
+  Shift keycode 44 = +Agrave
+  Shift   Control keycode 44 = VoidSymbol
+  Shift   Alt keycode 44 = VoidSymbol
+  Shift   Control Alt keycode 44 = VoidSymbol
+  Altgr keycode 44 = backslash
+  Altgr   Control keycode 44 = VoidSymbol
+  Altgr   Alt keycode 44 = Meta_backslash
+  Altgr   Control Alt keycode 44 = Meta_Control_backslash
+  Shift Altgr keycode 44 = VoidSymbol
+  Shift Altgr   Control keycode 44 = VoidSymbol
+  Shift Altgr   Alt keycode 44 = VoidSymbol
+  Shift Altgr   Control Alt keycode 44 = VoidSymbol
+keycode 45 = +y
+  Control keycode 45 = Control_y
+  Alt keycode 45 = Meta_y
+  Control Alt keycode 45 = Meta_Control_y
+  Shift keycode 45 = +Y
+  Shift   Control keycode 45 = VoidSymbol
+  Shift   Alt keycode 45 = Meta_Y
+  Shift   Control Alt keycode 45 = VoidSymbol
+  Altgr keycode 45 = braceleft
+  Altgr   Control keycode 45 = VoidSymbol
+  Altgr   Alt keycode 45 = Meta_braceleft
+  Altgr   Control Alt keycode 45 = VoidSymbol
+  Shift Altgr keycode 45 = VoidSymbol
+  Shift Altgr   Control keycode 45 = VoidSymbol
+  Shift Altgr   Alt keycode 45 = VoidSymbol
+  Shift Altgr   Control Alt keycode 45 = VoidSymbol
+keycode 46 = +x
+  Control keycode 46 = Control_x
+  Alt keycode 46 = Meta_x
+  Control Alt keycode 46 = Meta_Control_x
+  Shift keycode 46 = +X
+  Shift   Control keycode 46 = VoidSymbol
+  Shift   Alt keycode 46 = Meta_X
+  Shift   Control Alt keycode 46 = VoidSymbol
+  Altgr keycode 46 = braceright
+  Altgr   Control keycode 46 = VoidSymbol
+  Altgr   Alt keycode 46 = Meta_braceright
+  Altgr   Control Alt keycode 46 = VoidSymbol
+  Shift Altgr keycode 46 = VoidSymbol
+  Shift Altgr   Control keycode 46 = VoidSymbol
+  Shift Altgr   Alt keycode 46 = VoidSymbol
+  Shift Altgr   Control Alt keycode 46 = VoidSymbol
+keycode 47 = period
+  Control keycode 47 = VoidSymbol
+  Alt keycode 47 = Meta_period
+  Control Alt keycode 47 = VoidSymbol
+  Shift keycode 47 = colon
+  Shift   Control keycode 47 = VoidSymbol
+  Shift   Alt keycode 47 = Meta_colon
+  Shift   Control Alt keycode 47 = VoidSymbol
+  Altgr keycode 47 = VoidSymbol
+  Altgr   Control keycode 47 = VoidSymbol
+  Altgr   Alt keycode 47 = VoidSymbol
+  Altgr   Control Alt keycode 47 = VoidSymbol
+  Shift Altgr keycode 47 = periodcentered
+  Shift Altgr   Control keycode 47 = VoidSymbol
+  Shift Altgr   Alt keycode 47 = VoidSymbol
+  Shift Altgr   Control Alt keycode 47 = VoidSymbol
+keycode 48 = +k
+  Control keycode 48 = Control_k
+  Alt keycode 48 = Meta_k
+  Control Alt keycode 48 = Meta_Control_k
+  Shift keycode 48 = +K
+  Shift   Control keycode 48 = VoidSymbol
+  Shift   Alt keycode 48 = Meta_K
+  Shift   Control Alt keycode 48 = VoidSymbol
+  Altgr keycode 48 = asciitilde
+  Altgr   Control keycode 48 = VoidSymbol
+  Altgr   Alt keycode 48 = Meta_asciitilde
+  Altgr   Control Alt keycode 48 = VoidSymbol
+  Shift Altgr keycode 48 = VoidSymbol
+  Shift Altgr   Control keycode 48 = VoidSymbol
+  Shift Altgr   Alt keycode 48 = VoidSymbol
+  Shift Altgr   Control Alt keycode 48 = VoidSymbol
+keycode 49 = apostrophe
+  Control keycode 49 = VoidSymbol
+  Alt keycode 49 = Meta_apostrophe
+  Control Alt keycode 49 = VoidSymbol
+  Shift keycode 49 = question
+  Shift   Control keycode 49 = VoidSymbol
+  Shift   Alt keycode 49 = Meta_question
+  Shift   Control Alt keycode 49 = VoidSymbol
+  Altgr keycode 49 = questiondown
+  Altgr   Control keycode 49 = VoidSymbol
+  Altgr   Alt keycode 49 = VoidSymbol
+  Altgr   Control Alt keycode 49 = VoidSymbol
+  Shift Altgr keycode 49 = VoidSymbol
+  Shift Altgr   Control keycode 49 = VoidSymbol
+  Shift Altgr   Alt keycode 49 = VoidSymbol
+  Shift Altgr   Control Alt keycode 49 = VoidSymbol
+keycode 50 = +q
+  Control keycode 50 = Control_q
+  Alt keycode 50 = Meta_q
+  Control Alt keycode 50 = Meta_Control_q
+  Shift keycode 50 = +Q
+  Shift   Control keycode 50 = VoidSymbol
+  Shift   Alt keycode 50 = Meta_Q
+  Shift   Control Alt keycode 50 = VoidSymbol
+  Altgr keycode 50 = VoidSymbol
+  Altgr   Control keycode 50 = VoidSymbol
+  Altgr   Alt keycode 50 = VoidSymbol
+  Altgr   Control Alt keycode 50 = VoidSymbol
+  Shift Altgr keycode 50 = VoidSymbol
+  Shift Altgr   Control keycode 50 = VoidSymbol
+  Shift Altgr   Alt keycode 50 = VoidSymbol
+  Shift Altgr   Control Alt keycode 50 = VoidSymbol
+keycode 51 = +g
+  Control keycode 51 = Control_g
+  Alt keycode 51 = Meta_g
+  Control Alt keycode 51 = Meta_Control_g
+  Shift keycode 51 = +G
+  Shift   Control keycode 51 = VoidSymbol
+  Shift   Alt keycode 51 = Meta_G
+  Shift   Control Alt keycode 51 = VoidSymbol
+  Altgr keycode 51 = VoidSymbol
+  Altgr   Control keycode 51 = VoidSymbol
+  Altgr   Alt keycode 51 = VoidSymbol
+  Altgr   Control Alt keycode 51 = VoidSymbol
+  Shift Altgr keycode 51 = VoidSymbol
+  Shift Altgr   Control keycode 51 = VoidSymbol
+  Shift Altgr   Alt keycode 51 = VoidSymbol
+  Shift Altgr   Control Alt keycode 51 = VoidSymbol
+keycode 52 = +h
+  Control keycode 52 = Control_h
+  Alt keycode 52 = Meta_h
+  Control Alt keycode 52 = VoidSymbol
+  Shift keycode 52 = +H
+  Shift   Control keycode 52 = VoidSymbol
+  Shift   Alt keycode 52 = Meta_H
+  Shift   Control Alt keycode 52 = VoidSymbol
+  Altgr keycode 52 = VoidSymbol
+  Altgr   Control keycode 52 = VoidSymbol
+  Altgr   Alt keycode 52 = VoidSymbol
+  Altgr   Control Alt keycode 52 = VoidSymbol
+  Shift Altgr keycode 52 = VoidSymbol
+  Shift Altgr   Control keycode 52 = VoidSymbol
+  Shift Altgr   Alt keycode 52 = VoidSymbol
+  Shift Altgr   Control Alt keycode 52 = VoidSymbol
+keycode 53 = +f
+  Control keycode 53 = Control_f
+  Alt keycode 53 = Meta_f
+  Control Alt keycode 53 = Meta_Control_f
+  Shift keycode 53 = +F
+  Shift   Control keycode 53 = VoidSymbol
+  Shift   Alt keycode 53 = Meta_F
+  Shift   Control Alt keycode 53 = VoidSymbol
+  Altgr keycode 53 = dead_ogonek
+  Altgr   Control keycode 53 = VoidSymbol
+  Altgr   Alt keycode 53 = VoidSymbol
+  Altgr   Control Alt keycode 53 = VoidSymbol
+  Shift Altgr keycode 53 = ordfeminine
+  Shift Altgr   Control keycode 53 = VoidSymbol
+  Shift Altgr   Alt keycode 53 = VoidSymbol
+  Shift Altgr   Control Alt keycode 53 = VoidSymbol
+keycode 57 = space
+  Control keycode 57 = VoidSymbol
+  Alt keycode 57 = Meta_space
+  Control Alt keycode 57 = VoidSymbol
+  Shift keycode 57 = nobreakspace
+  Shift   Control keycode 57 = VoidSymbol
+  Shift   Alt keycode 57 = VoidSymbol
+  Shift   Control Alt keycode 57 = VoidSymbol
+  Altgr keycode 57 = underscore
+  Altgr   Control keycode 57 = VoidSymbol
+  Altgr   Alt keycode 57 = Meta_underscore
+  Altgr   Control Alt keycode 57 = Meta_Control_underscore
+  Shift Altgr keycode 57 = VoidSymbol
+  Shift Altgr   Control keycode 57 = VoidSymbol
+  Shift Altgr   Alt keycode 57 = VoidSymbol
+  Shift Altgr   Control Alt keycode 57 = VoidSymbol
+
+
+# include "windowkeys"
+################### windowkeys #################################
+# Extra 105 windows keys
+
+keycode 125 = Decr_Console
+keycode 126 = Incr_Console
+keycode 127 = Compose
+################################################################
+
+	
+keycode  1 = Escape Escape
+keycode 14 = Delete  Delete
+keycode 15 = Tab Tab
+keycode 28 = Return
+keycode 29 = Control
+keycode 42 = Shift
+keycode 54 = Shift
+keycode 56 = Alt
+keycode 58 = Caps_Lock
+keycode 97 = Control
diff --git a/data/keymaps/i386/qwerty/it.map b/data/keymaps/i386/qwerty/it.map
index 38abb39..11e20fe 100644
--- a/data/keymaps/i386/qwerty/it.map
+++ b/data/keymaps/i386/qwerty/it.map
@@ -1,8 +1,4 @@
-# Italian keymap with emacs enhancements
-#     Beta version Mon May  2 19:57:25 WET DST 1994
-# Available for anon. ftp at cnuce_arch.cnr.it:/pub/Linux-local/kbd/it.map
-#
-# Based on all other keymaps available in Slackware-1.2.0.
+# Italian keymap
 #
 # '@', '#', '[', and ']' are obtained by AltGr with the appropriate key.
 #
@@ -10,143 +6,155 @@
 # They can be obtained by AltGr-(, AltGr-), AltGr-=, AltGr-', AltGr-igrave
 # and AltGr-ugrave respectively.
 #
-# I have also added most Alt-Shift and Ctrl-Alt codes needed for emacs
-# with the standard keymap of the fundamental mode.
+# Added also euro sign and cent, obtained by AltGr-e and AltGr-c respectively.
 #
-# Place in your ~/.emacs the following two lines:
-#      (standard-display-european t)
-#      (set-input-mode nil nil 1)
+# The compose key is PrintScrn.
 #
-# Place in your /usr/lib/X11/Xconfig:
-#      LeftAlt  Meta
-#      RightAlt ModeShift
-#
-# To use high characters with other programs, read the documentation ;-)
-# Please report all bugs and improvement proposals to the address below.
-#
-# Buona fortuna,
-# Dario Besseghini <besseghi@dm.unipi.it>
-#
-keymaps 0-2,4,6,8-9,12
-include "linux-with-alt-and-altgr"
+# Emanuele Tomasi <targzeta@gmail.com>
+
+keymaps 0-3,4-6,8-10,12-14
+include "qwerty-layout"
+include "linux-keys-bare"
+
 strings as usual
 
-keycode   1 = Escape           Escape
-	alt     keycode   1 = Meta_Escape
-keycode   2 = one              exclam
-	alt     keycode   2 = Meta_one
-	shift alt keycode   2 = Meta_exclam
-keycode   3 = two              quotedbl
-	control keycode   3 = nul
-	alt     keycode   3 = Meta_two
-	control alt keycode   3 = Meta_nul
-keycode   4 = three            sterling
-	control keycode   4 = Escape
-	alt     keycode   4 = Meta_three
-	control alt keycode   4 = Meta_Escape
-keycode   5 = four             dollar
-	control keycode   5 = Control_backslash
-	alt     keycode   5 = Meta_four
-	shift alt keycode   5 = Meta_dollar
-	control alt keycode   5 = Meta_Control_backslash
-keycode   6 = five             percent
-	control keycode   6 = Control_bracketright
-	alt     keycode   6 = Meta_five
-	shift alt keycode   6 = Meta_percent
-keycode   7 = six              ampersand
-	control keycode   7 = Control_asciicircum
-	alt     keycode   7 = Meta_six
-keycode   8 = seven            slash
-	control keycode   8 = Control_underscore
-	alt     keycode   8 = Meta_seven
-	shift alt keycode   8 = Meta_slash
-keycode   9 = eight            parenleft	braceleft
-	control keycode   9 = Delete
-	alt     keycode   9 = Meta_eight
-	shift alt keycode   9 = Meta_parenleft
-	control alt keycode   9 = Meta_Delete
-keycode  10 = nine             parenright       braceright
-	alt     keycode  10 = Meta_nine
-	shift alt keycode  10 = Meta_parenright
-keycode  11 = zero             equal		asciitilde
-	alt     keycode  11 = Meta_zero
-	shift alt keycode  11 = Meta_equal
-keycode  12 = apostrophe       question		grave
-	control	keycode  12 = Delete
-	alt     keycode  12 = Meta_minus
-	control alt keycode  12 = Meta_Delete
-keycode  13 = igrave	       asciicircum	iacute
-	control keycode  13 = Control_asciicircum
-	alt     keycode  13 = Meta_equal
-	shift alt keycode  13 = Meta_asciicircum
-keycode  14 = Delete           Delete
-	control keycode  14 = Control_underscore
-	alt     keycode  14 = Meta_Delete
-keycode  15 = Tab              Meta_Tab
-	alt     keycode  15 = Meta_Tab
-keycode  16 = q
-keycode  17 = w
-keycode  18 = e
-keycode  19 = r
-keycode  20 = t
-keycode  21 = y
-keycode  22 = u
-keycode  23 = i
-keycode  24 = o
-keycode  25 = p
-keycode  26 = egrave 	       eacute		bracketleft
-	control keycode  26 = Escape
-	alt     keycode  26 = Meta_bracketleft
-keycode  27 = plus             asterisk         bracketright
-	control keycode  27 = Control_bracketright
-	alt     keycode  27 = Meta_bracketright
+keycode   1 = Escape
+keycode   2 = one
+keycode   3 = two
+keycode   4 = three
+keycode   5 = four
+keycode   6 = five
+keycode   7 = six
+keycode   8 = seven
+keycode   9 = eight
+keycode  10 = nine
+keycode  11 = zero
+keycode  12 = apostrophe
+keycode  13 = igrave
+keycode  14 = Delete
+#keycode  14 = BackSpace
+keycode  15 = Tab
+keycode  26 = egrave
+keycode  27 = plus
 keycode  28 = Return
-	alt     keycode  28 = Meta_Control_m
 keycode  29 = Control
-keycode  30 = a
-keycode  31 = s
-keycode  32 = d
-keycode  33 = f
-keycode  34 = g
-keycode  35 = h
-keycode  36 = j
-keycode  37 = k
-keycode  38 = l
-keycode  39 = ograve           ccedilla		at
-	control keycode  39 = nul
-	alt     keycode  39 = Meta_at
-	control alt keycode  39 = Meta_nul
-keycode  40 = agrave	       degree		numbersign
-	control keycode  40 = Control_g
-keycode  41 = backslash	       bar
-	control keycode  41 = Control_backslash
-	alt     keycode  41 = Meta_backslash
-	shift alt keycode  41 = Meta_bar
+keycode  39 = ograve
+keycode  40 = agrave
+keycode  41 = backslash
 keycode  42 = Shift
-keycode  43 = ugrave           section		uacute
-keycode  44 = z
-keycode  45 = x
-keycode  46 = c
-keycode  47 = v
-keycode  48 = b
-keycode  49 = n
-keycode  50 = m
-keycode  51 = comma            semicolon
-	alt     keycode  51 = Meta_comma
-	shift alt keycode  51 = Meta_semicolon
-keycode  52 = period           colon
-	alt     keycode  52 = Meta_period
-keycode  53 = minus	       underscore
-	control keycode  53 = Control_underscore
-	alt	keycode  53 = Meta_minus
+keycode  43 = ugrave
+keycode  51 = comma
+keycode  52 = period
+keycode  53 = minus
 keycode  54 = Shift
 keycode  56 = Alt
 keycode  57 = space
-	control keycode  57 = nul
-	alt     keycode  57 = Meta_space
-	control alt keycode  57 = Meta_nul
 keycode  58 = Caps_Lock
-keycode  86 = less	       greater
-	alt     keycode  86 = Meta_less
-	shift alt keycode  86 = Meta_greater
+keycode  86 = less
 keycode  97 = Control
+keycode  99 = Compose  # PrintScrn
+keycode 100 = AltGr
+
+shift keycode   1 = Escape
+shift keycode   2 = exclam
+shift keycode   3 = quotedbl
+shift keycode   4 = sterling
+shift keycode   5 = dollar
+shift keycode   6 = percent
+shift keycode   7 = ampersand
+shift keycode   8 = slash
+shift keycode   9 = parenleft
+shift keycode  10 = parenright
+shift keycode  11 = equal
+shift keycode  12 = question
+shift keycode  13 = asciicircum
+shift keycode  26 = eacute
+shift keycode  27 = asterisk
+shift keycode  39 = ccedilla
+shift keycode  40 = degree
+shift keycode  41 = bar
+shift keycode  43 = section
+shift keycode  51 = semicolon
+shift keycode  52 = colon
+shift keycode  53 = underscore
+shift keycode  86 = greater
+
+altgr keycode   9 = braceleft
+altgr keycode  10 = braceright
+altgr keycode  11 = asciitilde
+altgr keycode  12 = grave
+altgr keycode  13 = iacute
+altgr keycode  18 = currency       # Euro sign
+altgr keycode  26 = bracketleft
+altgr keycode  27 = bracketright
+altgr keycode  39 = at
+altgr keycode  40 = numbersign
+altgr keycode  43 = uacute
+altgr keycode  46 = cent
+
+shift altgr keycode  46 = copyright
+
+control keycode  41 = Control_backslash
+control keycode  58 = Control_Lock
+
+shift control keycode  13 = Control_asciicircum
+shift control keycode  53 = Control_underscore
+
+altgr control keycode  27 = Control_bracketright
+
+alt keycode   1 = Meta_Escape
+alt keycode   2 = Meta_one
+alt keycode   3 = Meta_two
+alt keycode   4 = Meta_three
+alt keycode   5 = Meta_four
+alt keycode   6 = Meta_five
+alt keycode   7 = Meta_six
+alt keycode   8 = Meta_seven
+alt keycode   9 = Meta_eight
+alt keycode  10 = Meta_nine
+alt keycode  11 = Meta_zero
+alt keycode  12 = Meta_apostrophe
+alt keycode  13 = Meta_igrave
+alt keycode  14 = Meta_Delete
+#alt keycode  14 = Meta_BackSpace
+alt keycode  15 = Meta_Tab
+alt keycode  27 = Meta_plus
+alt keycode  41 = Meta_backslash
+alt keycode  51 = Meta_comma
+alt keycode  52 = Meta_period
+alt keycode  53 = Meta_minus
+alt keycode  57 = Meta_space
+alt keycode  86 = Meta_less
+
+shift alt keycode   2 = Meta_exclam
+shift alt keycode   3 = Meta_quotedbl
+shift alt keycode   5 = Meta_dollar
+shift alt keycode   6 = Meta_percent
+shift alt keycode   7 = Meta_ampersand
+shift alt keycode   8 = Meta_slash
+shift alt keycode   9 = Meta_parenleft
+shift alt keycode  10 = Meta_parenright
+shift alt keycode  11 = Meta_equal
+shift alt keycode  12 = Meta_question
+shift alt keycode  13 = Meta_asciicircum
+shift alt keycode  27 = Meta_asterisk
+shift alt keycode  41 = Meta_bar
+shift alt keycode  51 = Meta_semicolon
+shift alt keycode  52 = Meta_colon
+shift alt keycode  86 = Meta_greater
+
+altgr alt keycode   9 = Meta_braceleft
+altgr alt keycode  10 = Meta_braceright
+altgr alt keycode  11 = Meta_asciitilde
+altgr alt keycode  12 = Meta_grave
+altgr alt keycode  26 = Meta_bracketleft
+altgr alt keycode  27 = Meta_bracketright
+altgr alt keycode  39 = Meta_at
+altgr alt keycode  40 = Meta_numbersign
+
+control alt keycode  41 = Meta_Control_backslash
+
+shift control alt keycode  53 = Meta_Control_underscore
+shift control alt keycode  13 = Meta_Control_asciicircum
+
+altgr control alt keycode  27 = Meta_Control_bracketright