summaryrefslogtreecommitdiff
path: root/keymaps/i386/azerty
diff options
context:
space:
mode:
Diffstat (limited to 'keymaps/i386/azerty')
-rw-r--r--keymaps/i386/azerty/azerty.kmap62
-rw-r--r--keymaps/i386/azerty/be-latin1.kmap73
-rw-r--r--keymaps/i386/azerty/be2-latin1.kmap20
-rw-r--r--keymaps/i386/azerty/fr-latin0.kmap648
-rw-r--r--keymaps/i386/azerty/fr-latin1.kmap77
-rw-r--r--keymaps/i386/azerty/fr-latin9.kmap706
-rw-r--r--keymaps/i386/azerty/fr-pc.kmap81
-rw-r--r--keymaps/i386/azerty/fr-x11.kmap376
-rw-r--r--keymaps/i386/azerty/fr.kmap79
-rw-r--r--keymaps/i386/azerty/mac-usb-be.kmap40
-rw-r--r--keymaps/i386/azerty/mac-usb-fr.kmap127
-rw-r--r--keymaps/i386/azerty/mac-usb-it.kmap51
-rw-r--r--keymaps/i386/azerty/wangbe.kmap23
-rw-r--r--keymaps/i386/azerty/wo.kmap71
14 files changed, 2434 insertions, 0 deletions
diff --git a/keymaps/i386/azerty/azerty.kmap b/keymaps/i386/azerty/azerty.kmap
new file mode 100644
index 0000000..7f19fca
--- /dev/null
+++ b/keymaps/i386/azerty/azerty.kmap
@@ -0,0 +1,62 @@
+# This describes the key engravings on an AZERTY keyboard (brand Tandon)
+# that I just got. It might be useful in French-speaking countries.
+# aeb - April 1994.
+charset "iso-8859-1"
+keymaps 0-2,4-5,8,12
+include "azerty-layout"
+include "linux-with-two-alt-keys"
+strings as usual
+compose as usual for "iso-8859-1"
+
+keycode 1 = Escape Escape
+keycode 2 = ampersand one bar
+ alt keycode 2 = bar
+keycode 3 = eacute two at
+ control keycode 3 = nul
+ control shift keycode 3 = nul
+ alt keycode 3 = at
+keycode 4 = quotedbl three numbersign
+ alt keycode 4 = numbersign
+keycode 5 = apostrophe four
+keycode 6 = parenleft five
+keycode 7 = section six asciicircum
+ alt keycode 7 = asciicircum
+keycode 8 = egrave seven
+keycode 9 = exclam eight
+keycode 10 = ccedilla nine braceleft
+ alt keycode 10 = braceleft
+keycode 11 = agrave zero braceright
+ alt keycode 11 = braceright
+keycode 12 = parenright degree
+keycode 13 = minus underscore backslash
+ control keycode 13 = Control_underscore
+ control shift keycode 13 = Control_underscore
+keycode 14 = Delete Delete
+keycode 15 = Tab Tab
+keycode 26 = dead_circumflex dead_diaeresis bracketleft
+ control keycode 26 = Escape
+ alt keycode 26 = bracketleft
+keycode 27 = dollar asterisk bracketright
+ control keycode 27 = Control_bracketright
+ alt keycode 27 = bracketright
+keycode 28 = Return
+keycode 29 = Control
+keycode 40 = ugrave percent acute
+ alt keycode 40 = dead_acute
+keycode 41 = twosuperior threesuperior
+keycode 42 = Shift
+keycode 43 = mu sterling grave
+ alt keycode 43 = dead_grave
+keycode 50 = comma question
+keycode 51 = semicolon period
+keycode 52 = colon slash
+keycode 53 = equal plus asciitilde
+ alt keycode 53 = asciitilde
+keycode 54 = Shift
+keycode 56 = Alt
+keycode 57 = space space
+ control keycode 57 = nul
+keycode 58 = Caps_Lock
+keycode 86 = less greater backslash
+ alt keycode 86 = backslash
+keycode 97 = Control
diff --git a/keymaps/i386/azerty/be-latin1.kmap b/keymaps/i386/azerty/be-latin1.kmap
new file mode 100644
index 0000000..1a9ac05
--- /dev/null
+++ b/keymaps/i386/azerty/be-latin1.kmap
@@ -0,0 +1,73 @@
+# This map derived from one contributed by Robert Herzog <rherzog@ulb.ac.be>.
+keymaps 0-2,4,6,8,12
+alt_is_meta
+include "azerty-layout"
+include "linux-with-alt-and-altgr"
+include "euro"
+strings as usual
+
+keycode 1 = Escape
+keycode 2 = ampersand one bar
+ alt keycode 2 = Meta_one
+keycode 3 = eacute two at
+ control keycode 3 = nul
+ alt keycode 3 = Meta_two
+keycode 4 = quotedbl three numbersign
+ control keycode 4 = Escape
+ alt keycode 4 = Meta_three
+keycode 5 = apostrophe four
+ control keycode 5 = Control_backslash
+ alt keycode 5 = Meta_four
+keycode 6 = parenleft five
+ control keycode 6 = Control_bracketright
+ alt keycode 6 = Meta_five
+keycode 7 = paragraph six dead_circumflex
+ control keycode 7 = Control_asciicircum
+ alt keycode 7 = Meta_six
+keycode 8 = egrave seven
+ control keycode 8 = Control_underscore
+ alt keycode 8 = Meta_seven
+keycode 9 = exclam eight
+ control keycode 9 = Delete
+ alt keycode 9 = Meta_eight
+keycode 10 = ccedilla nine braceleft
+ alt keycode 10 = Meta_nine
+keycode 11 = agrave zero braceright
+ alt keycode 11 = Meta_zero
+keycode 12 = parenright degree
+ control keycode 12 = Control_underscore
+keycode 13 = minus underscore
+keycode 14 = Delete
+keycode 15 = Tab
+keycode 26 = dead_circumflex dead_diaeresis bracketleft
+ control keycode 26 = Escape
+ alt keycode 26 = Meta_bracketleft
+keycode 27 = dollar asterisk bracketright
+ control keycode 27 = Control_bracketright
+ alt keycode 27 = Meta_bracketright
+keycode 28 = Return
+ alt keycode 28 = Meta_Control_m
+keycode 29 = Control
+keycode 40 = ugrave percent dead_acute
+ control keycode 40 = Control_g
+ alt keycode 40 = Meta_apostrophe
+keycode 41 = mu sterling dead_grave
+ control keycode 41 = nul
+ alt keycode 41 = Meta_grave
+keycode 42 = Shift
+keycode 43 =
+ control keycode 43 = Control_backslash
+ alt keycode 43 = Meta_backslash
+keycode 50 = comma question
+keycode 51 = semicolon period
+keycode 52 = colon slash
+keycode 53 = equal plus dead_tilde
+ control keycode 53 = Delete
+keycode 54 = Shift
+keycode 56 = Alt
+keycode 57 = space
+ control keycode 57 = nul
+keycode 58 = Caps_Lock
+keycode 86 = less greater backslash
+ alt keycode 86 = Meta_less
+keycode 97 = Control
diff --git a/keymaps/i386/azerty/be2-latin1.kmap b/keymaps/i386/azerty/be2-latin1.kmap
new file mode 100644
index 0000000..47f9142
--- /dev/null
+++ b/keymaps/i386/azerty/be2-latin1.kmap
@@ -0,0 +1,20 @@
+#From srtxg@habcnx.interpac.be Wed Apr 26 07:21:00 1995
+#
+#I've seen some (minor) differences between be-latin1.map and my own keyboard,
+#so I send you the modified keymap.
+#(the differences are twosuperior and threesuperior added(keycode 41), grave at
+#the correct place(43), and changed the ^ on the numbers row (7) to have the
+#same behaviour than in ms-dos)
+
+# be-latin1.map modified by Pablo Saratxaga <srtxg@f2219.n293.z2.fidonet.org>
+include "be-latin1.kmap"
+
+ altgr keycode 7 = asciicircum
+keycode 41 = twosuperior threesuperior
+keycode 43 = mu sterling dead_grave
+ alt keycode 43 = Meta_grave
+
+# be-latin1.map has here:
+# altgr keycode 7 = dead_circumflex
+# keycode 41 = mu sterling dead_grave
+# keycode 43 = <absent>
diff --git a/keymaps/i386/azerty/fr-latin0.kmap b/keymaps/i386/azerty/fr-latin0.kmap
new file mode 100644
index 0000000..067ba98
--- /dev/null
+++ b/keymaps/i386/azerty/fr-latin0.kmap
@@ -0,0 +1,648 @@
+# Copyright (c) 1997, 1998 Guylhem Aznar <guylhem @ oeil.qc.ca> : GPL
+# Copyright (c) 1997 Pierre-Charles David <pcdavid @ club-internet.fr>
+#
+# Les accents circonflexes des principales voyelles sont obtenus avec
+# la touche Alt_Gr, les trémas sont obtenus par Alt_Gr + Shift.
+#
+# ____ _________ _____________ _______
+# | S A| S = Shift, A = AltGr + Shift | Compose | Arrêt défil | Pause |
+# | s a| s = normal, a = AltGr | Ferme | Mem/Reg/Ste | Halte |
+# ¯¯¯¯ ¯¯¯¯¯¯¯¯¯ ¯¯¯¯¯¯¯¯¯¯¯¯¯ ¯¯¯¯¯¯¯
+# ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ _______
+# | ½ «| 1 ·| 2 É| 3 ¸| 4 ´| 5 ¨| 6 ¦| 7 È| 8 ¯| 9 Ç| 0 À| ° ÿ| + ¾| <-- |
+# | ¼ »| & '| é ~| " #| ' {| ( [| - || è `| _ \| ç ^| à @| ) ]| = }| |
+# ========================================================================
+# | |<- | A ä| Z Å| E ë| R Ç| T Þ| Y Ý| U ü| I ï| O ö| P '| " `| $ ê| , |
+# | ->| | a â| z å| e ¤| r ç| t þ| y ý| u û| i î| o ô| p ¶| ^ ~| £ ¢| <-' |
+# ===================================================================¬ |
+# | | Q Ä| S Ø| D Ë| F ª| G Æ| H Ð| J Ü| K Ï| L Ö| M º| % Ù| µ ¥| |
+# | MAJ | q Â| s ø| d Ê| f ±| g æ| h ð| j Û| k Î| l Ô| m ¹| ù ²| * ³| |
+# ========================================================================
+# | ^ | > | W | X | C | V | B | N | ? | . | / | § | ^ |
+# | | | < || w «| x »| c ©| v ®| b ß| n ¬| , ¿| ; ×| : ÷| ! ¡| | |
+# ========================================================================
+# | | | | | | | | |
+# | Ctrl | Con+ | Alt | Space Nobreakspace | AltGr | Con- | Con | Ctrl |
+# ¯¯¯¯¯¯ ¯¯¯¯¯¯ ¯¯¯¯¯¯ ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ ¯¯¯¯¯¯¯ ¯¯¯¯¯¯ ¯¯¯¯¯ ¯¯¯¯¯¯
+#
+# 1. Control & Alt
+#
+# Les définitions de Alt & Control (touche) sont *NORMALEMENT* implicites ;
+# n'ont donc été redéfinis qu'Alt (nombre) & Alt + Shift (nombre) pour
+# inverser le comportement par défaut ainsi que les Alt(azqwm) pour coller
+# au clavier AZERTY au lieu de QWERTY :
+#
+# touche = signe
+# touche + Shift = nombre
+#
+# La correspondance devient donc :
+#
+# Alt touche = Meta_nombre
+# Alt + Shift touche = Meta_signe
+#
+# Signalez-moi si cette correspondance n'est pas implicite chez vous !
+#
+# 2. Hexadécimal :
+#
+# Shift (touche du pavé numérique) permet de taper de l'héxadécimal.
+#
+# 3. Fonctions :
+#
+# Redémarrer ou arrêter l'ordinateur, sont disponibles directement au clavier
+#
+# Control Alt Delete/Backspace : redémarrer
+# AltGr + Impr. Écran : arrêter
+#
+# Ajouter pour ces deux fonction les lignes suivantes à /etc/inittab :
+#
+# ca:12345:ctrlaltdel:/sbin/shutdown -t1 -r now
+# kb:12345:kbrequest:/sbin/halt
+#
+# 4. Accentuations :
+#
+# Les touches é, è, ç, à & ù, présentes en mode minuscule (i.e. sans shift)
+# ne sont pas disponibles en mode majuscule : elles sont respectivement
+# remplacées par 2, 7, 9, 0 & % ; donc pour obtenir les majuscules
+# accentuées É, È, Ç, À & Ù:
+#
+# * Si les dead_keys ne fonctionnaient pas (certains programmes
+# les refusent), vous pouvez toujours utiliser AltGr + Shift
+# (minuscule accentuée) pour obtenir la majuscule ; pour
+# l'accent circonflexe & le tréma :
+#
+# AltGr (voyelle) : voyelle-minuscule ^
+# AltGr + Shift (voyelle) : voyelle-minuscule "
+# AltGr (en dessous de la voyelle) : voyelle-majuscule ^
+# AltGr + Shift (en dessous de la voyelle) : voyelle majuscule "
+#
+# Seule exception : AltGr (e) donnant l'euro ¤, AltGr + Shift ($) donne ê
+#
+# * Si les dead_keys fonctionnent, utiliser les accent dits
+# «morts», i.e. fonctionnant comme l'accent circonflexe & le
+# tréma des machines à écrire ; sont disponibles :
+#
+# (^) : accent circonflexe,
+# Shift+ (^) : tréma,
+# Shift + AltGr (^) : tilde,
+# AltGr (1) : accent aigü,
+# AltGr (7) : accent grave
+#
+# Pour s'en servir, procéder comme avec l'accent circonflexe & le tréma
+# sur les vielles machines à écrire :
+#
+# AltGr (1) puis e : é
+# Shift+AltGr (1) puis e : É ...
+#
+# 5. Les touches supplémentaires des claviers 105 touches
+#
+# Celles-ci servent à changer de console très facilement :
+# Window Gauche : décrémente console
+# Window Droite : incrémente console
+# Souris sur menu : précédente console
+#
+# 6. Mode majuscule (CapsLock)
+#
+# Celui-ci à été refait pour correspondre à celui par défaut des veilles
+# machines à écrite ou PC sous d'autres systèmes d'exploitation :
+# CapsLock : passe toutes les touches en mode majuscule
+# CapsLock à nouveau : repasse toutes les touches en minuscules
+# Shift + touche : touche temporairement en majuscule
+# Shift après CapsLock : repasse toues les touches en minuscules
+
+keycode 0 =
+
+keycode 1 = Escape
+
+keycode 2 = +ampersand +one dead_acute periodcentered
+ alt keycode 2 = Meta_one
+ alt shift keycode 2 = Meta_ampersand
+
+keycode 3 = +eacute +two tilde Eacute
+ alt keycode 3 = Meta_two
+ alt shift keycode 3 = Meta_asciitilde
+
+keycode 4 = +quotedbl +three numbersign cedilla
+ alt keycode 4 = Meta_three
+ alt shift keycode 4 = Meta_quotedbl
+
+keycode 5 = +apostrophe +four braceleft acute
+ alt keycode 5 = Meta_four
+ alt shift keycode 5 = Meta_apostrophe
+
+keycode 6 = +parenleft +five bracketleft diaeresis
+ alt keycode 6 = Meta_five
+ alt shift keycode 6 = Meta_parenleft
+
+keycode 7 = +minus +six bar brokenbar
+ alt keycode 7 = Meta_six
+ alt shift keycode 7 = Meta_minus
+
+keycode 8 = +egrave +seven dead_grave Egrave
+ alt keycode 8 = Meta_seven
+ alt shift keycode 8 = Meta_grave
+
+keycode 9 = +underscore +eight backslash macron
+ alt keycode 9 = Meta_eight
+ alt shift keycode 9 = Meta_underscore
+
+keycode 10 = +ccedilla +nine asciicircum Ccedilla
+ alt keycode 10 = Meta_nine
+ alt shift keycode 10 = Meta_asciicircum
+
+keycode 11 = +agrave +zero at Agrave
+ alt keycode 11 = Meta_zero
+ alt shift keycode 11 = Meta_at
+
+keycode 12 = +parenright +degree bracketright ydiaeresis
+ alt keycode 12 = Meta_parenright
+ alt shift keycode 12 = Meta_bracketright
+
+keycode 13 = +equal +plus braceright threequarters
+ alt keycode 13 = Meta_equal
+ alt shift keycode 13 = Meta_plus
+
+keycode 14 = Delete BackSpace
+ alt keycode 111 = Meta_backslash
+ control keycode 111 = Control_backslash
+ alt control keycode 14 = Boot
+ altgr control keycode 14 = KeyboardSignal
+
+keycode 15 = Tab
+ control keycode 15 = Meta_Tab
+ alt keycode 15 = Last_Console
+
+keycode 16 = +a +A acircumflex adiaeresis
+ control keycode 16 = Control_a
+
+keycode 17 = +z +Z aring Aring
+ control keycode 17 = Control_z
+
+keycode 18 = +e +E euro ediaeresis
+
+keycode 19 = +r +R ccedilla Ccedilla
+
+keycode 20 = +t +T thorn THORN
+
+keycode 21 = +y +Y yacute Yacute
+
+keycode 22 = +u +U ucircumflex udiaeresis
+
+keycode 23 = +i +I icircumflex idiaeresis
+
+keycode 24 = +o +O ocircumflex odiaeresis
+
+keycode 25 = +p +P paragraph apostrophe
+
+keycode 26 = dead_circumflex dead_diaeresis dead_tilde grave
+
+keycode 27 = +dollar +sterling cent ecircumflex
+
+keycode 28 = Return
+ alt keycode 28 = 0x080d
+ altgr keycode 26 = Linefeed
+
+keycode 29 = Control
+
+keycode 30 = +q +Q Acircumflex Adiaeresis
+ control keycode 30 = Control_q
+
+keycode 31 = +s +S oslash Ooblique
+
+keycode 32 = +d +D Ecircumflex Ediaeresis
+
+keycode 33 = +f +F plusminus ordfeminine
+
+keycode 34 = +g +G ae AE
+
+keycode 35 = +h +H eth ETH
+
+keycode 36 = +j +J Ucircumflex Udiaeresis
+
+keycode 37 = +k +K Icircumflex Idiaeresis
+
+keycode 38 = +l +L Ocircumflex Odiaeresis
+
+keycode 39 = +m +M onesuperior masculine
+ alt keycode 39 = Meta_semicolon
+ control keycode 39 = Control_m
+
+keycode 40 = +ugrave +percent twosuperior +Ugrave
+#
+# Les 2 solutions de l'ancien comportement sont remplacées pour la norme latin0
+#
+#keycode 41 = twosuperior threesuperior onesuperior macron
+#keycode 41 = guillemotleft guillemotright twosuperior threesuperior
+keycode 41 = +onehalf +onequarter guillemotleft guillemotright
+ control keycode 41 = nul
+ alt keycode 41 = Meta_grave
+
+keycode 42 = CapsShift
+
+keycode 43 = +asterisk +mu threesuperior yen
+
+keycode 44 = +w +W guillemotleft
+ control keycode 44 = Control_w
+
+keycode 45 = +x +X guillemotright
+
+keycode 46 = +c +C copyright
+
+keycode 47 = +v +V registered
+
+keycode 48 = +b +B ssharp
+
+keycode 49 = +n +N notsign
+
+keycode 50 = +comma +question questiondown
+
+keycode 51 = +semicolon +period multiply
+
+keycode 52 = +colon +slash division
+
+keycode 53 = +exclam +section exclamdown
+
+keycode 54 = CapsShift
+
+keycode 55 = KP_Multiply Hex_A Hex_D
+
+keycode 56 = Alt
+
+keycode 57 = space
+ control keycode 57 = nul
+ alt keycode 57 = Meta_space
+ altgr keycode 57 = nobreakspace
+#
+# Au choix Caps_Lock ou Caps_On, avec des raccourcis pour les
+# personnes n'ayant pas l'usage de leurs 2 mains.
+#
+keycode 58 = Caps_Lock
+ shift keycode 58 = Shift_Lock
+ control keycode 58 = Control_Lock
+ alt keycode 58 = Alt_Lock
+ altgr keycode 58 = AltGr_Lock
+
+keycode 59 = F1 F11 Console_13
+ alt keycode 59 = Console_1
+ control alt keycode 59 = Console_1
+
+keycode 60 = F2 F12 Console_14
+ alt keycode 60 = Console_2
+ control alt keycode 60 = Console_2
+
+keycode 61 = F3 F13 Console_15
+ alt keycode 61 = Console_3
+ control alt keycode 61 = Console_3
+
+keycode 62 = F4 F14 Console_16
+ alt keycode 62 = Console_4
+ control alt keycode 62 = Console_4
+
+keycode 63 = F5 F15 Console_17
+ alt keycode 63 = Console_5
+ control alt keycode 63 = Console_5
+
+keycode 64 = F6 F16 Console_18
+ alt keycode 64 = Console_6
+ control alt keycode 64 = Console_6
+
+keycode 65 = F7 F17 Console_19
+ alt keycode 65 = Console_7
+ control alt keycode 65 = Console_7
+
+keycode 66 = F8 F18 Console_20
+ alt keycode 66 = Console_8
+ control alt keycode 66 = Console_8
+
+keycode 67 = F9 F19 Console_21
+ alt keycode 67 = Console_9
+ control alt keycode 67 = Console_9
+
+keycode 68 = F10 F20 Console_22
+ alt keycode 68 = Console_10
+ control alt keycode 68 = Console_10
+
+keycode 69 = Num_Lock Bare_Num_Lock
+
+keycode 70 = Scroll_Lock Show_Memory Show_Registers
+ control keycode 70 = Show_State
+
+keycode 71 = KP_7 Hex_7
+ alt keycode 71 = Ascii_7
+
+keycode 72 = KP_8 Hex_8
+ alt keycode 72 = Ascii_8
+
+keycode 73 = KP_9 Hex_9
+ alt keycode 73 = Ascii_9
+
+keycode 74 = KP_Subtract Hex_B Hex_E
+ alt keycode 74 = minus
+
+keycode 75 = KP_4 Hex_4
+ alt keycode 75 = Ascii_4
+
+keycode 76 = KP_5 Hex_5
+ alt keycode 76 = Ascii_5
+
+keycode 77 = KP_6 Hex_6
+ alt keycode 77 = Ascii_6
+
+keycode 78 = KP_Add Hex_C Hex_F
+ alt keycode 78 = plus
+
+keycode 79 = KP_1 Hex_1
+ alt keycode 79 = Ascii_1
+
+keycode 80 = KP_2 Hex_2
+ alt keycode 80 = Ascii_2
+
+keycode 81 = KP_3 Hex_3
+ alt keycode 81 = Ascii_3
+
+keycode 82 = KP_0 Hex_0
+ alt keycode 82 = Ascii_0
+
+keycode 83 = KP_Period KP_Comma
+ altgr control keycode 83 = KeyboardSignal
+ control alt keycode 83 = Boot
+
+#
+# La touche AltGr+«Impr. Écran» = «SysReq» a un code pour elle même
+#
+keycode 84 = SAK
+
+keycode 85 =
+
+keycode 86 = +less +greater bar
+ alt keycode 86 = Meta_less
+
+keycode 87 = F11 F11 Console_23
+ alt keycode 87 = Console_11
+ control alt keycode 87 = Console_11
+
+keycode 88 = F12 F12 Console_24
+ alt keycode 88 = Console_12
+ control alt keycode 88 = Console_12
+
+keycode 89 =
+
+keycode 90 =
+
+keycode 91 =
+
+keycode 92 =
+
+keycode 93 =
+
+keycode 94 =
+
+keycode 95 =
+
+keycode 96 = KP_Enter
+
+keycode 97 = Control
+
+keycode 98 = KP_Divide
+
+#
+# La touche «Impr. Écran» ne sert à rien sous linux, alors mettons-y «Compose»
+#
+keycode 99 = Compose
+
+keycode 100 = AltGr
+ alt keycode 100 = Compose
+
+#
+# La touche Ctrl+Pause = Attn = 101 a un code pour elle même
+#
+keycode 101 = Break
+
+keycode 102 = Home
+
+keycode 103 = Up
+# alt keycode 103 = First_Console
+
+keycode 104 = PageUp
+ shift keycode 104 = Scroll_Backward
+
+keycode 105 = Left
+ alt keycode 105 = Decr_Console
+
+keycode 106 = Right
+ alt keycode 106 = Incr_Console
+
+keycode 107 = End
+
+keycode 108 = Down
+ alt keycode 108 = Last_Console
+
+keycode 109 = PageDown
+ shift keycode 109 = Scroll_Forward
+
+keycode 110 = Insert
+
+keycode 111 = Remove BackSpace
+ alt keycode 111 = Meta_backslash
+ control keycode 111 = Control_backslash
+ alt control keycode 14 = Boot
+ altgr control keycode 14 = KeyboardSignal
+
+keycode 112 = Macro
+
+keycode 113 = F13
+
+keycode 114 = F14
+
+keycode 115 = Help
+
+keycode 116 = Do
+
+keycode 117 = F17
+
+keycode 118 = KP_MinPlus
+
+keycode 119 = Pause
+
+keycode 120 =
+
+keycode 121 =
+
+keycode 122 =
+
+keycode 123 =
+
+keycode 124 =
+#
+# Touches supplémentaires des clavier 105 touches
+#
+
+#
+# Fenêtre gauche = Console précédente
+#
+keycode 125 = Decr_Console
+#
+# Fenêtre droite = Console suivante
+#
+keycode 126 = Incr_Console
+#
+# Menu = Dernière console
+#
+keycode 127 = Last_Console
+
+string Home = "\033[1~"
+string Insert = "\033[2~"
+string Remove = "\033[3~"
+string End = "\033[4~"
+string PageUp = "\033[5~"
+string PageDown = "\033[6~"
+string Macro = "\033[M"
+string Pause = "\033[P"
+string F1 = "\033[[A"
+string F2 = "\033[[B"
+string F3 = "\033[[C"
+string F4 = "\033[[D"
+string F5 = "\033[[E"
+string F6 = "\033[17~"
+string F7 = "\033[18~"
+string F8 = "\033[19~"
+string F9 = "\033[20~"
+string F10 = "\033[21~"
+string F11 = "\033[23~"
+string F12 = "\033[24~"
+string F13 = "\033[25~"
+string F14 = "\033[26~"
+string F15 = "\033[28~"
+string F16 = "\033[29~"
+string F17 = "\033[31~"
+string F18 = "\033[32~"
+string F19 = "\033[33~"
+string F20 = "\033[34~"
+string F21 = "\033[35~"
+string F22 = "\033[36~"
+string F23 = "\033[37~"
+string F24 = "\033[38~"
+string F25 = "\033[39~"
+string F26 = "\033[40~"
+string F27 = "\033[41~"
+string F28 = "\033[42~"
+string F29 = "\033[43~"
+string F30 = "\033[44~"
+string F31 = "\033[45~"
+string F32 = "\033[46~"
+string F33 = "\033[47~"
+string F34 = "\033[48~"
+string F35 = "\033[49~"
+
+compose '`' 'A' to 'À'
+compose '`' 'a' to 'à'
+compose '\'' 'A' to 'Á'
+compose '\'' 'a' to 'á'
+compose '^' 'A' to 'Â'
+compose '^' 'a' to 'â'
+compose '~' 'A' to 'Ã'
+compose '~' 'a' to 'ã'
+compose '"' 'A' to 'Ä'
+compose '"' 'a' to 'ä'
+compose '-' 'a' to 'ª'
+compose '-' 'A' to 'ª'
+compose 'O' 'A' to 'Å'
+compose 'o' 'a' to 'å'
+compose '0' 'A' to 'Å'
+compose '0' 'a' to 'å'
+compose '°' 'A' to 'Å'
+compose '°' 'a' to 'å'
+compose 'A' 'A' to 'Å'
+compose 'a' 'a' to 'å'
+compose 'A' 'E' to 'Æ'
+compose 'a' 'e' to 'æ'
+compose ',' 'C' to 'Ç'
+compose ',' 'c' to 'ç'
+compose '`' 'E' to 'È'
+compose '`' 'e' to 'è'
+compose '\'' 'E' to 'É'
+compose '\'' 'e' to 'é'
+compose '^' 'E' to 'Ê'
+compose '^' 'e' to 'ê'
+compose '"' 'E' to 'Ë'
+compose '"' 'e' to 'ë'
+compose '`' 'I' to 'Ì'
+compose '`' 'i' to 'ì'
+compose '\'' 'I' to 'Í'
+compose '\'' 'i' to 'í'
+compose '^' 'I' to 'Î'
+compose '^' 'i' to 'î'
+compose '"' 'I' to 'Ï'
+compose '"' 'i' to 'ï'
+compose '-' 'D' to 'Ð'
+compose '-' 'd' to 'ð'
+compose '~' 'N' to 'Ñ'
+compose '~' 'n' to 'ñ'
+compose '`' 'O' to 'Ò'
+compose '`' 'o' to 'ò'
+compose '\'' 'O' to 'Ó'
+compose '\'' 'o' to 'ó'
+compose '^' 'O' to 'Ô'
+compose '^' 'o' to 'ô'
+compose '~' 'O' to 'Õ'
+compose '~' 'o' to 'õ'
+compose '"' 'O' to 'Ö'
+compose '"' 'o' to 'ö'
+compose '/' 'O' to 'Ø'
+compose '/' 'o' to 'ø'
+compose '-' 'o' to 'º'
+compose '-' 'O' to 'º'
+compose '`' 'U' to 'Ù'
+compose '`' 'u' to 'ù'
+compose '\'' 'U' to 'Ú'
+compose '\'' 'u' to 'ú'
+compose '^' 'U' to 'Û'
+compose '^' 'u' to 'û'
+compose '"' 'U' to 'Ü'
+compose '"' 'u' to 'ü'
+compose '\'' 'Y' to 'Ý'
+compose '\'' 'y' to 'ý'
+compose 'T' 'H' to 'Þ'
+compose 't' 'h' to 'þ'
+compose 's' 's' to 'ß'
+compose 'S' 'S' to '§'
+compose '"' 'y' to 'ÿ'
+compose '"' 'Y' to '¾'
+compose 's' 'z' to 'ß'
+compose 'i' 'j' to 'ÿ'
+compose 'I' 'J' to '¾'
+compose '^' 'S' to '¦'
+compose '^' 's' to '¨'
+compose '^' 'Z' to '´'
+compose '^' 'z' to '¸'
+compose '^' '1' to '¹'
+compose '^' '2' to '²'
+compose '^' '3' to '³'
+compose '+' '-' to '±'
+compose '|' '-' to '¬'
+compose '-' '|' to '¬'
+compose '|' '_' to '¬'
+compose '_' '|' to '¬'
+compose '-' 'y' to '¥'
+compose '-' 'Y' to '¥'
+compose '-' 'c' to '¢'
+compose '-' 'C' to '¢'
+compose '-' 'l' to '£'
+compose '-' 'L' to '£'
+compose '-' 'e' to '¤'
+compose '-' 'E' to '¤'
+compose '^' '!' to '¡'
+compose '^' '?' to '¿'
+compose '^' '-' to '¯'
+compose '^' '_' to '¯'
+compose '^' '.' to '·'
+compose '^' 'x' to '×'
+compose '^' 'X' to '×'
+compose '^' '*' to '×'
+compose '^' '/' to '÷'
+compose '<' '<' to '«'
+compose '>' '>' to '»'
+compose '"' 'c' to '©'
+compose '"' 'r' to '®'
+compose 'o' 'e' to '½'
+compose 'O' 'E' to '¼'
+
diff --git a/keymaps/i386/azerty/fr-latin1.kmap b/keymaps/i386/azerty/fr-latin1.kmap
new file mode 100644
index 0000000..9bdf775
--- /dev/null
+++ b/keymaps/i386/azerty/fr-latin1.kmap
@@ -0,0 +1,77 @@
+keymaps 0-2,4,6,8,12
+include "azerty-layout"
+include "linux-with-alt-and-altgr"
+strings as usual
+
+keycode 1 = Escape Escape
+ alt keycode 1 = Meta_Escape
+keycode 2 = ampersand one
+ alt keycode 2 = Meta_one
+keycode 3 = eacute two dead_tilde
+ control keycode 3 = nul
+ alt keycode 3 = Meta_two
+keycode 4 = quotedbl three numbersign
+ control keycode 4 = Escape
+ alt keycode 4 = Meta_three
+keycode 5 = apostrophe four braceleft
+ control keycode 5 = Control_backslash
+ alt keycode 5 = Meta_four
+keycode 6 = parenleft five bracketleft
+ control keycode 6 = Control_bracketright
+ alt keycode 6 = Meta_five
+keycode 7 = minus six bar
+ control keycode 7 = Control_asciicircum
+ alt keycode 7 = Meta_six
+keycode 8 = egrave seven dead_grave
+ control keycode 8 = Control_underscore
+ alt keycode 8 = Meta_seven
+keycode 9 = underscore eight backslash
+ control keycode 9 = Delete
+ alt keycode 9 = Meta_eight
+keycode 10 = ccedilla nine dead_circumflex
+ alt keycode 10 = Meta_nine
+keycode 11 = agrave zero at
+ alt keycode 11 = Meta_zero
+keycode 12 = parenright degree bracketright
+ control keycode 12 = Control_underscore
+ alt keycode 12 = Meta_minus
+keycode 13 = equal plus braceright
+ alt keycode 13 = Meta_equal
+keycode 14 = Delete Delete
+ alt keycode 14 = Meta_Delete
+keycode 15 = Tab Tab
+ alt keycode 15 = Meta_Tab
+keycode 26 = dead_circumflex dead_diaeresis
+ control keycode 26 = Escape
+ alt keycode 26 = Meta_bracketleft
+keycode 27 = dollar sterling currency
+ control keycode 27 = Control_bracketright
+ alt keycode 27 = Meta_bracketright
+keycode 28 = Return
+ alt keycode 28 = Meta_Control_m
+keycode 29 = Control
+keycode 40 = ugrave percent
+ control keycode 40 = Control_g
+ alt keycode 40 = Meta_apostrophe
+keycode 41 = twosuperior
+ control keycode 41 = nul
+ alt keycode 41 = Meta_grave
+keycode 42 = Shift
+keycode 43 = asterisk mu
+ control keycode 43 = Control_backslash
+ alt keycode 43 = Meta_backslash
+keycode 50 = comma question
+keycode 51 = semicolon period
+keycode 52 = colon slash
+keycode 53 = exclam section
+ control keycode 53 = Delete
+ alt keycode 53 = Meta_slash
+keycode 54 = Shift
+keycode 56 = Alt
+keycode 57 = space space
+ control keycode 57 = nul
+ alt keycode 57 = Meta_space
+keycode 58 = Caps_Lock
+keycode 86 = less greater bar
+ alt keycode 86 = Meta_less
+keycode 97 = Control
diff --git a/keymaps/i386/azerty/fr-latin9.kmap b/keymaps/i386/azerty/fr-latin9.kmap
new file mode 100644
index 0000000..682e3da
--- /dev/null
+++ b/keymaps/i386/azerty/fr-latin9.kmap
@@ -0,0 +1,706 @@
+# Copyright (c) 1997, 1998 Guylhem Aznar <guylhem @ oeil.qc.ca> : GPL
+# Copyright (c) 1997 Pierre-Charles David <pcdavid @ club-internet.fr>
+# Copyright (c) 2006 Christian Perrier <bubulle@debian.org>
+#
+# Les accents circonflexes des principales voyelles sont obtenus avec
+# la touche Alt_Gr, les trémas sont obtenus par Alt_Gr + Shift.
+#
+# ____ _________ _____________ _______
+# | S A| S = Shift, A = AltGr + Shift | Compose | Arrêt défil | Pause |
+# | s a| s = normal, a = AltGr | Ferme | Mem/Reg/Ste | Halte |
+# ¯¯¯¯ ¯¯¯¯¯¯¯¯¯ ¯¯¯¯¯¯¯¯¯¯¯¯¯ ¯¯¯¯¯¯¯
+# ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ _______
+# | ¼ «| 1 ·| 2 É| 3 ¸| 4 ´| 5 ¨| 6 ¦| 7 È| 8 ¯| 9 Ç| 0 À| ° ÿ| + ¾| <-- |
+# | ½ »| & '| é ~| " #| ' {| ( [| - || è `| _ \| ç ^| à @| ) ]| = }| |
+# ========================================================================
+# | |<- | A ä| Z Å| E ¢| R Ç| T Þ| Y Ý| U ü| I ï| O ö| P `| " '| £ ë| , |
+# | ->| | a â| z å| e ¤| r ç| t þ| y ý| u û| i î| o ô| p ¶| ^ ~| $ ê| <-' |
+# ===================================================================¬ |
+# | | Q Ä| S Ø| D Ë| F ª| G Æ| H Ð| J Ü| K Ï| L Ö| M º| % Ù| µ ¥| |
+# | MAJ | q Â| s ø| d Ê| f ±| g æ| h ð| j Û| k Î| l Ô| m ¹| ù ²| * ³| |
+# ========================================================================
+# | ^ | > ¦| W <| X >| C ©| V | B | N | ? º| . ×| / | § | ^ |
+# | | | < || w «| x »| c ©| v ®| b ß| n ¬| , ¿| ; ×| : ÷| ! ¡| | |
+# ========================================================================
+# | | | | | | | | |
+# | Ctrl | Con+ | Alt | Space Nobreakspace | AltGr | Con- | Con | Ctrl |
+# ¯¯¯¯¯¯ ¯¯¯¯¯¯ ¯¯¯¯¯¯ ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ ¯¯¯¯¯¯¯ ¯¯¯¯¯¯ ¯¯¯¯¯ ¯¯¯¯¯¯
+#
+# 1. Control & Alt
+#
+# Les définitions de Alt & Control (touche) sont *NORMALEMENT* implicites ;
+# n'ont donc été redéfinis qu'Alt (nombre) & Alt + Shift (nombre) pour
+# inverser le comportement par défaut ainsi que les Alt(azqwm) pour coller
+# au clavier AZERTY au lieu de QWERTY :
+#
+# touche = signe
+# touche + Shift = nombre
+#
+# La correspondance devient donc :
+#
+# Alt touche = Meta_nombre
+# Alt + Shift touche = Meta_signe
+#
+# Signalez-moi si cette correspondance n'est pas implicite chez vous !
+#
+# 2. Hexadécimal :
+#
+# Shift (touche du pavé numérique) permet de taper de l'héxadécimal.
+#
+# 3. Fonctions :
+#
+# Redémarrer ou arrêter l'ordinateur, sont disponibles directement au clavier
+#
+# Control Alt Delete/Backspace : redémarrer
+# AltGr + Impr. Écran : arrêter
+#
+# Ajouter pour ces deux fonctions les lignes suivantes à /etc/inittab :
+#
+# ca:12345:ctrlaltdel:/sbin/shutdown -t1 -r now
+# kb:12345:kbrequest:/sbin/halt
+#
+# 4. Accentuations :
+#
+# Les touches é, è, ç, à & ù, présentes en mode minuscule (i.e. sans shift)
+# ne sont pas disponibles en mode majuscule : elles sont respectivement
+# remplacées par 2, 7, 9, 0 & % ; donc pour obtenir les majuscules
+# accentuées É, È, Ç, À & Ù:
+#
+# * Si les dead_keys ne fonctionnaient pas (certains programmes
+# les refusent), vous pouvez toujours utiliser AltGr + Shift
+# (minuscule accentuée) pour obtenir la majuscule ; pour
+# l'accent circonflexe & le tréma :
+#
+# AltGr (voyelle) : voyelle-minuscule ^
+# AltGr + Shift (voyelle) : voyelle-minuscule "
+# AltGr (en dessous de la voyelle) : voyelle-majuscule ^
+# AltGr + Shift (en dessous de la voyelle) : voyelle majuscule "
+#
+# Seule exception : AltGr (e) donnant l'euro ¤, AltGr + Shift ($) donne ê
+#
+# * Si les dead_keys fonctionnent, utiliser les accents dits
+# «morts», i.e. fonctionnant comme l'accent circonflexe & le
+# tréma des machines à écrire ; sont disponibles :
+#
+# (^) : accent circonflexe,
+# Shift+ (^) : tréma,
+# Shift + AltGr (^) : tilde,
+# AltGr (1) : accent aigü,
+# AltGr (7) : accent grave
+#
+# Pour s'en servir, procéder comme avec l'accent circonflexe & le tréma
+# sur les vielles machines à écrire :
+#
+# AltGr (1) puis e : é
+# Shift+AltGr (1) puis e : É ...
+#
+# 5. Les touches supplémentaires des claviers 105 touches
+#
+# Celles-ci servent à changer de console très facilement :
+# Window Gauche : décrémente console
+# Window Droite : incrémente console
+# Souris sur menu : précédente console
+#
+# 6. Mode majuscule (CapsLock)
+#
+# C. Perrier, 2006
+# Le fonctionnement en mode "anciennes machines à écrire" a été
+# supprimé. Il ne correspond plus à l'usage actuel et le clavier
+# français était le seul à l'utiliser
+#
+# 7. Convergence vers le clavier français de X.org
+#
+# Oct. 2006: la cartographie des touches a été rendue la plus proche
+# possible de la cartographie X.org
+#
+charset "iso-8859-15"
+include "azerty-layout"
+include "linux-with-alt-and-altgr"
+
+keycode 0 =
+
+keycode 1 = Escape
+
+keycode 2 = +ampersand +one dead_acute periodcentered
+ alt keycode 2 = Meta_one
+ alt shift keycode 2 = Meta_ampersand
+
+keycode 3 = +eacute +two tilde Eacute
+ alt keycode 3 = Meta_two
+ alt shift keycode 3 = Meta_asciitilde
+
+keycode 4 = +quotedbl +three numbersign cedilla
+ alt keycode 4 = Meta_three
+ alt shift keycode 4 = Meta_quotedbl
+
+keycode 5 = +apostrophe +four braceleft acute
+ alt keycode 5 = Meta_four
+ alt shift keycode 5 = Meta_apostrophe
+
+keycode 6 = +parenleft +five bracketleft diaeresis
+ alt keycode 6 = Meta_five
+ alt shift keycode 6 = Meta_parenleft
+
+keycode 7 = +minus +six bar brokenbar
+ alt keycode 7 = Meta_six
+ alt shift keycode 7 = Meta_minus
+
+keycode 8 = +egrave +seven dead_grave Egrave
+ alt keycode 8 = Meta_seven
+ alt shift keycode 8 = Meta_grave
+
+keycode 9 = +underscore +eight backslash macron
+ alt keycode 9 = Meta_eight
+ alt shift keycode 9 = Meta_underscore
+ control keycode 9 = Control_underscore
+ control altgr keycode 9 = Control_backslash
+
+keycode 10 = +ccedilla +nine asciicircum Ccedilla
+ alt keycode 10 = Meta_nine
+ alt shift keycode 10 = Meta_asciicircum
+ control altgr keycode 10 = Control_asciicircum
+
+keycode 11 = +agrave +zero at Agrave
+ alt keycode 11 = Meta_zero
+ alt shift keycode 11 = Meta_at
+
+keycode 12 = +parenright +degree bracketright ydiaeresis
+ alt keycode 12 = Meta_parenright
+ alt shift keycode 12 = Meta_bracketright
+ control altgr keycode 12 = Control_bracketright
+
+keycode 13 = +equal +plus braceright threequarters
+ alt keycode 13 = Meta_equal
+ alt shift keycode 13 = Meta_plus
+
+keycode 14 = Delete BackSpace
+ alt keycode 111 = Meta_backslash
+ control keycode 111 = Control_backslash
+ alt control keycode 14 = Boot
+ altgr control keycode 14 = KeyboardSignal
+
+keycode 15 = Tab
+ control keycode 15 = Meta_Tab
+ alt keycode 15 = Last_Console
+
+keycode 16 = +a +A acircumflex adiaeresis
+ control keycode 16 = Control_a
+
+keycode 17 = +z +Z aring Aring
+ control keycode 17 = Control_z
+
+keycode 18 = +e +E euro cent
+
+keycode 19 = +r +R ccedilla Ccedilla
+
+keycode 20 = +t +T thorn THORN
+
+keycode 21 = +y +Y yacute Yacute
+
+keycode 22 = +u +U ucircumflex udiaeresis
+
+keycode 23 = +i +I icircumflex idiaeresis
+
+keycode 24 = +o +O ocircumflex odiaeresis
+
+keycode 25 = +p +P paragraph grave
+
+keycode 26 = dead_circumflex dead_diaeresis dead_tilde apostrophe
+
+keycode 27 = +dollar +sterling ecircumflex ediaeresis
+
+keycode 28 = Return
+ alt keycode 28 = 0x080d
+ altgr keycode 28 = Linefeed
+
+keycode 29 = Control
+
+keycode 30 = +q +Q Acircumflex Adiaeresis
+ control keycode 30 = Control_q
+
+keycode 31 = +s +S oslash Ooblique
+
+keycode 32 = +d +D Ecircumflex Ediaeresis
+
+keycode 33 = +f +F plusminus ordfeminine
+
+keycode 34 = +g +G ae AE
+
+keycode 35 = +h +H eth ETH
+
+keycode 36 = +j +J Ucircumflex Udiaeresis
+
+keycode 37 = +k +K Icircumflex Idiaeresis
+
+keycode 38 = +l +L Ocircumflex Odiaeresis
+
+keycode 39 = +m +M onesuperior masculine
+ alt keycode 39 = Meta_semicolon
+ control keycode 39 = Control_m
+
+keycode 40 = +ugrave +percent twosuperior +Ugrave
+#
+# Les 2 solutions de l'ancien comportement sont remplacées pour la norme latin0
+#
+#keycode 41 = twosuperior threesuperior onesuperior macron
+#keycode 41 = guillemotleft guillemotright twosuperior threesuperior
+keycode 41 = +onehalf +onequarter guillemotleft guillemotright
+ control keycode 41 = nul
+ alt keycode 41 = Meta_grave
+
+keycode 42 = Shift
+
+keycode 43 = +asterisk +mu threesuperior yen
+
+keycode 44 = +w +W guillemotleft less
+ control keycode 44 = Control_w
+
+keycode 45 = +x +X guillemotright greater
+
+keycode 46 = +c +C copyright copyright
+
+keycode 47 = +v +V registered
+
+keycode 48 = +b +B ssharp
+
+keycode 49 = +n +N notsign
+
+keycode 50 = +comma +question questiondown masculine
+
+keycode 51 = +semicolon +period multiply multiply
+
+keycode 52 = +colon +slash division division
+
+keycode 53 = +exclam +section exclamdown
+
+keycode 54 = Shift
+
+keycode 55 = asterisk Hex_A Hex_D
+
+keycode 56 = Alt
+
+keycode 57 = space
+ control keycode 57 = nul
+ alt keycode 57 = Meta_space
+ altgr keycode 57 = nobreakspace
+#
+# Au choix Caps_Lock ou Caps_On, avec des raccourcis pour les
+# personnes n'ayant pas l'usage de leurs 2 mains.
+#
+keycode 58 = Caps_Lock
+ shift keycode 58 = Shift_Lock
+ control keycode 58 = Control_Lock
+ alt keycode 58 = Alt_Lock
+ altgr keycode 58 = AltGr_Lock
+
+keycode 59 = F1 F11 Console_13
+ alt keycode 59 = Console_1
+ control alt keycode 59 = Console_1
+
+keycode 60 = F2 F12 Console_14
+ alt keycode 60 = Console_2
+ control alt keycode 60 = Console_2
+
+keycode 61 = F3 F13 Console_15
+ alt keycode 61 = Console_3
+ control alt keycode 61 = Console_3
+
+keycode 62 = F4 F14 Console_16
+ alt keycode 62 = Console_4
+ control alt keycode 62 = Console_4
+
+keycode 63 = F5 F15 Console_17
+ alt keycode 63 = Console_5
+ control alt keycode 63 = Console_5
+
+keycode 64 = F6 F16 Console_18
+ alt keycode 64 = Console_6
+ control alt keycode 64 = Console_6
+
+keycode 65 = F7 F17 Console_19
+ alt keycode 65 = Console_7
+ control alt keycode 65 = Console_7
+
+keycode 66 = F8 F18 Console_20
+ alt keycode 66 = Console_8
+ control alt keycode 66 = Console_8
+
+keycode 67 = F9 F19 Console_21
+ alt keycode 67 = Console_9
+ control alt keycode 67 = Console_9
+
+keycode 68 = F10 F20 Console_22
+ alt keycode 68 = Console_10
+ control alt keycode 68 = Console_10
+
+keycode 69 = Num_Lock Bare_Num_Lock
+
+keycode 70 = Scroll_Lock Show_Memory Show_Registers
+ control keycode 70 = Show_State
+
+keycode 71 = seven Hex_7
+ alt keycode 71 = Ascii_7
+
+keycode 72 = eight Hex_8
+ alt keycode 72 = Ascii_8
+
+keycode 73 = nine Hex_9
+ alt keycode 73 = Ascii_9
+
+keycode 74 = minus Hex_B Hex_E
+ alt keycode 74 = minus
+
+keycode 75 = four Hex_4
+ alt keycode 75 = Ascii_4
+
+keycode 76 = five Hex_5
+ alt keycode 76 = Ascii_5
+
+keycode 77 = six Hex_6
+ alt keycode 77 = Ascii_6
+
+keycode 78 = plus Hex_C Hex_F
+ alt keycode 78 = plus
+
+keycode 79 = one Hex_1
+ alt keycode 79 = Ascii_1
+
+keycode 80 = two Hex_2
+ alt keycode 80 = Ascii_2
+
+keycode 81 = three Hex_3
+ alt keycode 81 = Ascii_3
+
+keycode 82 = zero Hex_0
+ alt keycode 82 = Ascii_0
+
+keycode 83 = period comma
+ altgr control keycode 83 = KeyboardSignal
+ control alt keycode 83 = Boot
+
+#
+# La touche AltGr+«Impr. Écran» = «SysReq» a un code pour elle-même
+#
+keycode 84 = SAK
+
+keycode 85 =
+
+keycode 86 = +less +greater bar brokenbar
+ alt keycode 86 = Meta_less
+
+keycode 87 = F11 F11 Console_23
+ alt keycode 87 = Console_11
+ control alt keycode 87 = Console_11
+
+keycode 88 = F12 F12 Console_24
+ alt keycode 88 = Console_12
+ control alt keycode 88 = Console_12
+
+keycode 89 =
+
+keycode 90 =
+
+keycode 91 =
+
+keycode 92 =
+
+keycode 93 =
+
+keycode 94 =
+
+keycode 95 =
+
+keycode 96 = Return
+
+keycode 97 = Control
+
+keycode 98 = slash
+
+#
+# La touche «Impr. Écran» ne sert à rien sous Linux, alors mettons-y «Compose»
+#
+keycode 99 = Compose
+
+keycode 100 = AltGr
+ alt keycode 100 = Compose
+
+#
+# La touche Ctrl+Pause = Attn = 101 a un code pour elle-même
+#
+keycode 101 = Break
+
+keycode 102 = Home
+
+keycode 103 = Up
+# alt keycode 103 = First_Console
+
+keycode 104 = PageUp
+ shift keycode 104 = Scroll_Backward
+
+keycode 105 = Left
+ alt keycode 105 = Decr_Console
+
+keycode 106 = Right
+ alt keycode 106 = Incr_Console
+
+keycode 107 = End
+
+keycode 108 = Down
+ alt keycode 108 = Last_Console
+
+keycode 109 = PageDown
+ shift keycode 109 = Scroll_Forward
+
+keycode 110 = Insert
+
+keycode 111 = Remove BackSpace
+ alt keycode 111 = Meta_backslash
+ control keycode 111 = Control_backslash
+ alt control keycode 14 = Boot
+ altgr control keycode 14 = KeyboardSignal
+
+keycode 112 = Macro
+
+keycode 113 = F13
+
+keycode 114 = F14
+
+keycode 115 = Help
+
+keycode 116 = Do
+
+keycode 117 = F17
+
+keycode 118 = plusminus
+
+keycode 119 = Pause
+
+keycode 120 =
+
+keycode 121 =
+
+keycode 122 =
+
+keycode 123 =
+
+keycode 124 =
+
+#
+# Touches supplémentaires des claviers 105 touches
+#
+
+#
+# Fenêtre gauche = Console précédente
+#
+keycode 125 = Decr_Console
+#
+# Fenêtre droite = Console suivante
+#
+keycode 126 = Incr_Console
+#
+# Menu = Dernière console
+#
+keycode 127 = Last_Console
+
+string Home = "\033[1~"
+string Insert = "\033[2~"
+string Remove = "\033[3~"
+string End = "\033[4~"
+string PageUp = "\033[5~"
+string PageDown = "\033[6~"
+string Macro = "\033[M"
+string Pause = "\033[P"
+string F1 = "\033[[A"
+string F2 = "\033[[B"
+string F3 = "\033[[C"
+string F4 = "\033[[D"
+string F5 = "\033[[E"
+string F6 = "\033[17~"
+string F7 = "\033[18~"
+string F8 = "\033[19~"
+string F9 = "\033[20~"
+string F10 = "\033[21~"
+string F11 = "\033[23~"
+string F12 = "\033[24~"
+string F13 = "\033[25~"
+string F14 = "\033[26~"
+string F15 = "\033[28~"
+string F16 = "\033[29~"
+string F17 = "\033[31~"
+string F18 = "\033[32~"
+string F19 = "\033[33~"
+string F20 = "\033[34~"
+string F21 = "\033[35~"
+string F22 = "\033[36~"
+string F23 = "\033[37~"
+string F24 = "\033[38~"
+string F25 = "\033[39~"
+string F26 = "\033[40~"
+string F27 = "\033[41~"
+string F28 = "\033[42~"
+string F29 = "\033[43~"
+string F30 = "\033[44~"
+string F31 = "\033[45~"
+string F32 = "\033[46~"
+string F33 = "\033[47~"
+string F34 = "\033[48~"
+string F35 = "\033[49~"
+
+# Latin1 compatible
+compose '`' 'A' to 'À'
+compose '`' 'a' to 'à'
+compose '\'' 'A' to 'Á'
+compose '\'' 'a' to 'á'
+compose '^' 'A' to 'Â'
+compose '^' 'a' to 'â'
+compose '~' 'A' to 'Ã'
+compose '~' 'a' to 'ã'
+compose '"' 'A' to 'Ä'
+compose '"' 'a' to 'ä'
+compose '-' 'a' to 'ª'
+compose '-' 'A' to 'ª'
+compose 'O' 'A' to 'Å'
+compose 'o' 'A' to 'Å'
+compose 'O' 'a' to 'å'
+compose 'o' 'a' to 'å'
+compose '0' 'A' to 'Å'
+compose '0' 'a' to 'å'
+compose '°' 'A' to 'Å'
+compose '°' 'a' to 'å'
+compose 'A' 'A' to 'Å'
+compose 'a' 'a' to 'å'
+compose 'A' 'E' to 'Æ'
+compose 'A' 'e' to 'Æ'
+compose 'a' 'e' to 'æ'
+compose ',' 'C' to 'Ç'
+compose ',' 'c' to 'ç'
+compose '^' 'C' to 'Ç'
+compose '^' 'c' to 'ç'
+compose '`' 'E' to 'È'
+compose '`' 'e' to 'è'
+compose '\'' 'E' to 'É'
+compose '\'' 'e' to 'é'
+compose '^' 'E' to 'Ê'
+compose '^' 'e' to 'ê'
+compose '"' 'E' to 'Ë'
+compose '"' 'e' to 'ë'
+compose '`' 'I' to 'Ì'
+compose '`' 'i' to 'ì'
+compose '\'' 'I' to 'Í'
+compose '\'' 'i' to 'í'
+compose '^' 'I' to 'Î'
+compose '^' 'i' to 'î'
+compose '"' 'I' to 'Ï'
+compose '"' 'i' to 'ï'
+compose '-' 'D' to 'Ð'
+compose '-' 'd' to 'ð'
+compose '^' 'D' to 'Ð'
+compose '^' 'd' to 'ð'
+compose '~' 'N' to 'Ñ'
+compose '~' 'n' to 'ñ'
+compose '^' 'N' to 'Ñ'
+compose '^' 'n' to 'ñ'
+compose 'n' 'n' to 'ñ'
+compose 'n' 'h' to 'ñ'
+compose 'N' 'Y' to 'Ñ'
+compose 'N' 'N' to 'Ñ'
+compose 'N' 'H' to 'Ñ'
+compose 'N' 'y' to 'Ñ'
+compose 'N' 'n' to 'Ñ'
+compose 'N' 'h' to 'Ñ'
+compose '`' 'O' to 'Ò'
+compose '`' 'o' to 'ò'
+compose '\'' 'O' to 'Ó'
+compose '\'' 'o' to 'ó'
+compose '^' 'O' to 'Ô'
+compose '^' 'o' to 'ô'
+compose '~' 'O' to 'Õ'
+compose '~' 'o' to 'õ'
+compose '"' 'O' to 'Ö'
+compose '"' 'o' to 'ö'
+compose '/' 'O' to 'Ø'
+compose '/' 'o' to 'ø'
+compose '-' 'o' to 'º'
+compose '-' 'O' to 'º'
+compose '`' 'U' to 'Ù'
+compose '`' 'u' to 'ù'
+compose '\'' 'U' to 'Ú'
+compose '\'' 'u' to 'ú'
+compose '^' 'U' to 'Û'
+compose '^' 'u' to 'û'
+compose '"' 'U' to 'Ü'
+compose '"' 'u' to 'ü'
+compose '\'' 'Y' to 'Ý'
+compose '\'' 'y' to 'ý'
+compose 'T' 'H' to 'Þ'
+compose 't' 'h' to 'þ'
+compose 's' 's' to 'ß'
+compose 'S' 'S' to '§'
+compose '+' '-' to '±'
+compose '|' '-' to '¬'
+compose '-' '|' to '¬'
+compose '|' '_' to '¬'
+compose '_' '|' to '¬'
+compose 's' 'z' to 'ß'
+compose 's' 's' to 'ß'
+compose '^' '1' to '¹'
+compose '^' '2' to '²'
+compose '^' '3' to '³'
+compose '<' '<' to '«'
+compose '>' '>' to '»'
+compose '?' '?' to '¿'
+compose '^' '?' to '¿'
+compose '!' '!' to '¡'
+compose '^' '!' to '¡'
+compose '-' 'y' to '¥'
+compose '-' 'Y' to '¥'
+compose '-' 'c' to '¢'
+compose '-' 'C' to '¢'
+compose '-' 'l' to '£'
+compose '-' 'L' to '£'
+compose '(' 'c' to '©'
+compose '(' 'r' to '®'
+compose 'm' 'u' to 'µ'
+compose '^' '!' to '¡'
+compose '^' '?' to '¿'
+compose '^' '-' to '¯'
+compose '^' '_' to '¯'
+compose '^' '.' to '·'
+compose '^' 'x' to '×'
+compose '^' 'X' to '×'
+compose '^' '*' to '×'
+compose '^' 'x' to '×'
+compose '^' 'X' to '×'
+compose '^' '*' to '×'
+compose '^' '/' to '÷'
+compose '<' '<' to '«'
+compose '>' '>' to '»'
+compose '"' 'c' to '©'
+compose '"' 'r' to '®'
+compose '"' 'y' to 'ÿ'
+compose 'i' 'j' to 'ÿ'
+# Latin0 specific
+compose '"' 'Y' to '¾'
+compose 'I' 'J' to '¾'
+compose '-' 'e' to '¤'
+compose '-' 'E' to '¤'
+compose '=' 'e' to '¤'
+compose '=' 'c' to '¤'
+compose '=' 'E' to '¤'
+compose '=' 'C' to '¤'
+compose 'e' '=' to '¤'
+compose 'c' '=' to '¤'
+compose 'E' '=' to '¤'
+compose 'C' '=' to '¤'
+compose '^' 'S' to '¦'
+compose '^' 's' to '¨'
+compose '^' 'Z' to '´'
+compose '^' 'z' to '¸'
+compose 'v' 'S' to '¦'
+compose 'v' 's' to '¨'
+compose 'v' 'Z' to '´'
+compose 'v' 'z' to '¸'
+compose 'O' 'E' to '¼'
+compose 'O' 'e' to '¼'
+compose 'o' 'e' to '½'
+compose '"' 'Y' to '¾'
diff --git a/keymaps/i386/azerty/fr-pc.kmap b/keymaps/i386/azerty/fr-pc.kmap
new file mode 100644
index 0000000..0cc660d
--- /dev/null
+++ b/keymaps/i386/azerty/fr-pc.kmap
@@ -0,0 +1,81 @@
+# fr-pc.map for French PC keyboard (non-US 102 keys)
+#
+# 1997-3-5
+# Seak, Teng-Fong <seak@drfc.cad.cea.fr>
+#
+keymaps 0-2,4,6,8,12
+include "azerty-layout"
+include "linux-with-alt-and-altgr"
+strings as usual
+
+keycode 1 = Escape Escape
+ alt keycode 1 = Meta_Escape
+keycode 2 = ampersand one
+ alt keycode 2 = Meta_one
+keycode 3 = eacute two asciitilde
+ control keycode 3 = nul
+ alt keycode 3 = Meta_two
+keycode 4 = quotedbl three numbersign
+ control keycode 4 = Escape
+ alt keycode 4 = Meta_three
+keycode 5 = apostrophe four braceleft
+ control keycode 5 = Control_backslash
+ alt keycode 5 = Meta_four
+keycode 6 = parenleft five bracketleft
+ control keycode 6 = Control_bracketright
+ alt keycode 6 = Meta_five
+keycode 7 = minus six bar
+ control keycode 7 = Control_asciicircum
+ alt keycode 7 = Meta_six
+keycode 8 = egrave seven grave
+ control keycode 8 = Control_underscore
+ alt keycode 8 = Meta_seven
+keycode 9 = underscore eight backslash
+ control keycode 9 = Delete
+ alt keycode 9 = Meta_eight
+keycode 10 = ccedilla nine asciicircum
+ alt keycode 10 = Meta_nine
+keycode 11 = agrave zero at
+ alt keycode 11 = Meta_zero
+keycode 12 = parenright degree bracketright
+ control keycode 12 = Control_underscore
+ alt keycode 12 = Meta_minus
+keycode 13 = equal plus braceright
+ alt keycode 13 = Meta_equal
+keycode 14 = Delete Delete
+ alt keycode 14 = Meta_Delete
+keycode 15 = Tab Tab
+ alt keycode 15 = Meta_Tab
+keycode 26 = dead_circumflex dead_diaeresis
+ control keycode 26 = Escape
+ alt keycode 26 = Meta_bracketleft
+keycode 27 = dollar sterling currency
+ control keycode 27 = Control_bracketright
+ alt keycode 27 = Meta_bracketright
+keycode 28 = Return
+ alt keycode 28 = Meta_Control_m
+keycode 29 = Control
+keycode 40 = ugrave percent
+ control keycode 40 = Control_g
+ alt keycode 40 = Meta_apostrophe
+keycode 41 = twosuperior
+ control keycode 41 = nul
+ alt keycode 41 = Meta_grave
+keycode 42 = Shift
+keycode 43 = asterisk mu
+ control keycode 43 = Control_backslash
+ alt keycode 43 = Meta_backslash
+keycode 50 = comma question
+keycode 51 = semicolon period
+keycode 52 = colon slash
+keycode 53 = exclam section
+ control keycode 53 = Delete
+keycode 54 = Shift
+keycode 56 = Alt
+keycode 57 = space space
+ control keycode 57 = nul
+ alt keycode 57 = Meta_space
+keycode 58 = Caps_Lock
+keycode 86 = less greater bar
+ alt keycode 86 = Meta_less
+keycode 97 = Control
diff --git a/keymaps/i386/azerty/fr-x11.kmap b/keymaps/i386/azerty/fr-x11.kmap
new file mode 100644
index 0000000..01bdc1e
--- /dev/null
+++ b/keymaps/i386/azerty/fr-x11.kmap
@@ -0,0 +1,376 @@
+# French keyboard description, (c) Guylhem Aznar, July 1997
+# Relased under GNU GENERAL PUBLIC LICENSE Version 2
+# If you haven't received it, this license is available at :
+# Free Software Foundation, Inc. 675 Mass Ave, Cambridge, MA 02139, USA
+
+# Exactement le même mappage que pour X11, avec les mêmes raccourcis !
+
+keycode 0 =
+keycode 1 = Escape
+ alt keycode 1 = Meta_Escape
+keycode 2 = ampersand one dead_acute
+ alt keycode 2 = Meta_one
+keycode 3 = eacute two tilde Eacute
+ control keycode 3 = nul
+ alt keycode 3 = Meta_two
+keycode 4 = quotedbl three numbersign
+ control keycode 4 = Escape
+ alt keycode 4 = Meta_three
+keycode 5 = apostrophe four braceleft
+ control keycode 5 = Control_backslash
+ alt keycode 5 = Meta_four
+keycode 6 = parenleft five bracketleft
+ control keycode 6 = Control_bracketright
+ alt keycode 6 = Meta_five
+keycode 7 = minus six bar
+ control keycode 7 = Control_asciicircum
+ alt keycode 7 = Meta_six
+keycode 8 = egrave seven dead_grave Egrave
+ control keycode 8 = Control_underscore
+ alt keycode 8 = Meta_seven
+keycode 9 = underscore eight backslash
+ control keycode 9 = Delete
+ alt keycode 9 = Meta_eight
+keycode 10 = ccedilla nine asciicircum Ccedilla
+ alt keycode 10 = Meta_nine
+keycode 11 = agrave zero at Agrave
+ alt keycode 11 = Meta_zero
+keycode 12 = parenright degree bracketright
+ control keycode 12 = Control_underscore
+ alt keycode 12 = Meta_minus
+keycode 13 = equal plus braceright
+ alt keycode 13 = Meta_equal
+keycode 14 = Delete Delete Remove
+ alt keycode 14 = Meta_Delete
+keycode 15 = Tab
+ alt keycode 15 = Meta_Tab
+keycode 16 = a A acircumflex adiaeresis
+ control keycode 16 = Control_a
+keycode 17 = z Z aring Aring
+ control keycode 17 = Control_z
+keycode 18 = e E ecircumflex ediaeresis
+ control keycode 18 = Control_e
+keycode 19 = r R registered
+ control keycode 19 = Control_r
+keycode 20 = t T thorn THORN
+ control keycode 20 = Control_t
+keycode 21 = y Y yen
+ control keycode 21 = Control_y
+keycode 22 = u U ucircumflex udiaeresis
+ control keycode 22 = Control_u
+keycode 23 = i I icircumflex idiaeresis
+ control keycode 23 = Control_i
+keycode 24 = o O ocircumflex odiaeresis
+ control keycode 24 = Control_o
+keycode 25 = p P paragraph
+ control keycode 25 = Control_p
+keycode 26 = dead_circumflex dead_diaeresis dead_cedilla dead_tilde
+ control keycode 26 = Escape
+ alt keycode 26 = Meta_bracketleft
+keycode 27 = dollar sterling currency
+ control keycode 27 = Control_bracketright
+ alt keycode 27 = Meta_bracketright
+keycode 28 = Return
+ alt keycode 28 = 0x080d
+keycode 29 = Control
+keycode 30 = q Q Acircumflex Adiaeresis
+ control keycode 30 = Control_q
+keycode 31 = s S oslash Ooblique
+ control keycode 31 = Control_s
+keycode 32 = d D Ecircumflex Ediaeresis
+ control keycode 32 = Control_d
+keycode 33 = f F ordfeminine
+ control keycode 33 = Control_f
+keycode 34 = g G apostrophe
+ control keycode 34 = Control_g
+keycode 35 = h H grave
+ control keycode 35 = Control_h
+keycode 36 = j J Ucircumflex Udiaeresis
+ control keycode 36 = Control_j
+keycode 37 = k K Icircumflex Idiaeresis
+ control keycode 37 = Control_k
+keycode 38 = l L Ocircumflex Odiaeresis
+ control keycode 38 = Control_l
+keycode 39 = m M masculine
+ control keycode 39 = Control_m
+ alt keycode 39 = Meta_semicolon
+keycode 40 = ugrave percent plusminus Ugrave
+ alt keycode 40 = Meta_apostrophe
+#keycode 41 = twosuperior threesuperior onesuperior periodcentered
+keycode 41 = guillemotleft guillemotright twosuperior threesuperior
+ control keycode 41 = nul
+ alt keycode 41 = Meta_grave
+keycode 42 = Shift
+keycode 43 = asterisk mu onehalf
+ control keycode 43 = Control_backslash
+ alt keycode 43 = Meta_backslash
+keycode 44 = w W +eth +ETH
+ control keycode 44 = Control_w
+keycode 45 = x X +ae +AE
+ control keycode 45 = Control_x
+keycode 46 = c C cent
+ control keycode 46 = Control_c
+keycode 47 = v V copyright
+ control keycode 47 = Control_v
+keycode 48 = b B ssharp
+ control keycode 48 = Control_b
+keycode 49 = n N notsign
+ control keycode 49 = Control_n
+keycode 50 = comma question questiondown
+keycode 51 = semicolon period multiply
+ alt keycode 51 = Meta_comma
+keycode 52 = colon slash division
+ alt keycode 52 = Meta_period
+keycode 53 = exclam section exclamdown
+ alt keycode 53 = Meta_slash
+keycode 54 = Shift
+keycode 55 = KP_Multiply
+keycode 56 = Alt
+keycode 57 = space
+ control keycode 57 = nul
+ alt keycode 57 = Meta_space
+ altgr keycode 57 = nobreakspace
+keycode 58 = Caps_Lock
+ altgr keycode 58 = Caps_On
+keycode 59 = F1 F11 Console_13
+ control keycode 59 = F1
+ alt keycode 59 = Console_1
+ control alt keycode 59 = Console_1
+keycode 60 = F2 F12 Console_14
+ control keycode 60 = F2
+ alt keycode 60 = Console_2
+ control alt keycode 60 = Console_2
+keycode 61 = F3 F13 Console_15
+ control keycode 61 = F3
+ alt keycode 61 = Console_3
+ control alt keycode 61 = Console_3
+keycode 62 = F4 F14 Console_16
+ control keycode 62 = F4
+ alt keycode 62 = Console_4
+ control alt keycode 62 = Console_4
+keycode 63 = F5 F15 Console_17
+ control keycode 63 = F5
+ alt keycode 63 = Console_5
+ control alt keycode 63 = Console_5
+keycode 64 = F6 F16 Console_18
+ control keycode 64 = F6
+ alt keycode 64 = Console_6
+ control alt keycode 64 = Console_6
+keycode 65 = F7 F17 Console_19
+ control keycode 65 = F7
+ alt keycode 65 = Console_7
+ control alt keycode 65 = Console_7
+keycode 66 = F8 F18 Console_20
+ control keycode 66 = F8
+ alt keycode 66 = Console_8
+ control alt keycode 66 = Console_8
+keycode 67 = F9 F19 Console_21
+ control keycode 67 = F9
+ alt keycode 67 = Console_9
+ control alt keycode 67 = Console_9
+keycode 68 = F10 F20 Console_22
+ control keycode 68 = F10
+ alt keycode 68 = Console_10
+ control alt keycode 68 = Console_10
+keycode 69 = Num_Lock
+keycode 70 = Scroll_Lock Show_Memory Show_Registers
+ control keycode 70 = Show_State
+keycode 71 = KP_7
+ alt keycode 71 = Ascii_7
+keycode 72 = KP_8
+ alt keycode 72 = Ascii_8
+keycode 73 = KP_9
+ alt keycode 73 = Ascii_9
+keycode 74 = KP_Subtract
+ alt keycode 74 = minus
+keycode 75 = KP_4
+ alt keycode 75 = Ascii_4
+keycode 76 = KP_5
+ alt keycode 76 = Ascii_5
+keycode 77 = KP_6
+ alt keycode 77 = Ascii_6
+keycode 78 = KP_Add
+ alt keycode 78 = plus
+keycode 79 = KP_1
+ alt keycode 79 = Ascii_1
+keycode 80 = KP_2
+ alt keycode 80 = Ascii_2
+keycode 81 = KP_3
+ alt keycode 81 = Ascii_3
+keycode 82 = KP_0
+ alt keycode 82 = Ascii_0
+keycode 83 = KP_Period
+ altgr control keycode 83 = Boot
+ control alt keycode 83 = Boot
+# SysReq = Alt+Print Screen = 84
+keycode 84 = Last_Console
+keycode 85 =
+keycode 86 = less greater bar
+ alt keycode 86 = Meta_less
+keycode 87 = F11 F11 Console_23
+ control keycode 87 = F11
+ alt keycode 87 = Console_11
+ control alt keycode 87 = Console_11
+keycode 88 = F12 F12 Console_24
+ control keycode 88 = F12
+ alt keycode 88 = Console_12
+ control alt keycode 88 = Console_12
+keycode 89 =
+keycode 90 =
+keycode 91 =
+keycode 92 =
+keycode 93 =
+keycode 94 =
+keycode 95 =
+keycode 96 = KP_Enter
+keycode 97 = Control
+keycode 98 = KP_Divide
+# Print Screen
+keycode 99 = Control_backslash
+ control keycode 99 = Control_backslash
+ alt keycode 99 = Control_backslash
+keycode 100 = AltGr
+# Ctrl+Pause = Break = 101
+keycode 101 = Break
+# Home == Find
+keycode 102 = Find
+keycode 103 = Up
+keycode 104 = Prior
+ shift keycode 104 = Scroll_Backward
+keycode 105 = Left
+ alt keycode 105 = Decr_Console
+keycode 106 = Right
+ alt keycode 106 = Incr_Console
+# End == Select
+keycode 107 = Select
+keycode 108 = Down
+keycode 109 = Next
+ shift keycode 109 = Scroll_Forward
+keycode 110 = Insert
+keycode 111 = BackSpace BackSpace Remove
+ altgr control keycode 111 = Boot
+ control alt keycode 111 = Boot
+keycode 112 = Macro
+keycode 113 = F13
+keycode 114 = F14
+keycode 115 = Help
+keycode 116 = Do
+keycode 117 = F17
+keycode 118 = KP_MinPlus
+# Pause
+keycode 119 = Pause
+keycode 120 =
+keycode 121 =
+keycode 122 =
+keycode 123 =
+keycode 124 =
+# Fenêtre gauche = ²/³ (carré/cube) puisqu'on a mis « » (les guillemets
+# français) à la place ! Décommenter ici pour faire l'inverse !
+keycode 125 = twosuperior threesuperior
+#keycode 125 = guillemotleft guillemotright twosuperior threesuperior
+# Fenêtre droite = AltGr puisque d'habitude c'est la position d'AltGr !
+keycode 126 = AltGr
+# Menu = compose (mélanger des signes et des lettres ex : (compose) ' e = é
+keycode 127 = Compose
+string F1 = "\033[[A"
+string F2 = "\033[[B"
+string F3 = "\033[[C"
+string F4 = "\033[[D"
+string F5 = "\033[[E"
+string F6 = "\033[17~"
+string F7 = "\033[18~"
+string F8 = "\033[19~"
+string F9 = "\033[20~"
+string F10 = "\033[21~"
+string F11 = "\033[23~"
+string F12 = "\033[24~"
+string F13 = "\033[25~"
+string F14 = "\033[26~"
+string F15 = "\033[28~"
+string F16 = "\033[29~"
+string F17 = "\033[31~"
+string F18 = "\033[32~"
+string F19 = "\033[33~"
+string F20 = "\033[34~"
+string Find = "\033[1~"
+string Insert = "\033[2~"
+string Remove = "\033[3~"
+string Select = "\033[4~"
+string Prior = "\033[5~"
+string Next = "\033[6~"
+string Macro = "\033[M"
+string Pause = "\033[P"
+string F21 = ""
+string F22 = ""
+string F23 = ""
+string F24 = ""
+string F25 = ""
+string F26 = ""
+compose '`' 'A' to 'À'
+compose '`' 'a' to 'à'
+compose '\'' 'A' to 'Á'
+compose '\'' 'a' to 'á'
+compose '^' 'A' to 'Â'
+compose '^' 'a' to 'â'
+compose '~' 'A' to 'Ã'
+compose '~' 'a' to 'ã'
+compose '"' 'A' to 'Ä'
+compose '"' 'a' to 'ä'
+compose 'O' 'A' to 'Å'
+compose 'o' 'a' to 'å'
+compose '0' 'A' to 'Å'
+compose '0' 'a' to 'å'
+compose 'A' 'A' to 'Å'
+compose 'a' 'a' to 'å'
+compose 'A' 'E' to 'Æ'
+compose 'a' 'e' to 'æ'
+compose ',' 'C' to 'Ç'
+compose ',' 'c' to 'ç'
+compose '`' 'E' to 'È'
+compose '`' 'e' to 'è'
+compose '\'' 'E' to 'É'
+compose '\'' 'e' to 'é'
+compose '^' 'E' to 'Ê'
+compose '^' 'e' to 'ê'
+compose '"' 'E' to 'Ë'
+compose '"' 'e' to 'ë'
+compose '`' 'I' to 'Ì'
+compose '`' 'i' to 'ì'
+compose '\'' 'I' to 'Í'
+compose '\'' 'i' to 'í'
+compose '^' 'I' to 'Î'
+compose '^' 'i' to 'î'
+compose '"' 'I' to 'Ï'
+compose '"' 'i' to 'ï'
+compose '-' 'D' to 'Ð'
+compose '-' 'd' to 'ð'
+compose '~' 'N' to 'Ñ'
+compose '~' 'n' to 'ñ'
+compose '`' 'O' to 'Ò'
+compose '`' 'o' to 'ò'
+compose '\'' 'O' to 'Ó'
+compose '\'' 'o' to 'ó'
+compose '^' 'O' to 'Ô'
+compose '^' 'o' to 'ô'
+compose '~' 'O' to 'Õ'
+compose '~' 'o' to 'õ'
+compose '"' 'O' to 'Ö'
+compose '"' 'o' to 'ö'
+compose '/' 'O' to 'Ø'
+compose '/' 'o' to 'ø'
+compose '`' 'U' to 'Ù'
+compose '`' 'u' to 'ù'
+compose '\'' 'U' to 'Ú'
+compose '\'' 'u' to 'ú'
+compose '^' 'U' to 'Û'
+compose '^' 'u' to 'û'
+compose '"' 'U' to 'Ü'
+compose '"' 'u' to 'ü'
+compose '\'' 'Y' to 'Ý'
+compose '\'' 'y' to 'ý'
+compose 'T' 'H' to 'Þ'
+compose 't' 'h' to 'þ'
+compose 's' 's' to 'ß'
+compose '"' 'y' to 'ÿ'
+compose 's' 'z' to 'ß'
+compose 'i' 'j' to 'ÿ'
diff --git a/keymaps/i386/azerty/fr.kmap b/keymaps/i386/azerty/fr.kmap
new file mode 100644
index 0000000..201c3eb
--- /dev/null
+++ b/keymaps/i386/azerty/fr.kmap
@@ -0,0 +1,79 @@
+keymaps 0-2,4,6,8,12
+include "azerty-layout"
+include "linux-with-alt-and-altgr"
+strings as usual
+
+keycode 1 = Escape Escape
+ alt keycode 1 = Meta_Escape
+keycode 2 = ampersand one
+ alt keycode 2 = Meta_one
+keycode 3 = braceleft two asciitilde
+ control keycode 3 = nul
+ alt keycode 3 = Meta_two
+keycode 4 = quotedbl three numbersign
+ control keycode 4 = Escape
+ alt keycode 4 = Meta_three
+keycode 5 = apostrophe four braceleft
+ control keycode 5 = Control_backslash
+ alt keycode 5 = Meta_four
+keycode 6 = parenleft five bracketleft
+ control keycode 6 = Control_bracketright
+ alt keycode 6 = Meta_five
+keycode 7 = minus six bar
+ control keycode 7 = Control_asciicircum
+ alt keycode 7 = Meta_six
+keycode 8 = braceright seven grave
+ control keycode 8 = Control_underscore
+ alt keycode 8 = Meta_seven
+keycode 9 = underscore eight backslash
+ control keycode 9 = Delete
+ alt keycode 9 = Meta_eight
+keycode 10 = slash nine asciicircum
+ alt keycode 10 = Meta_nine
+keycode 11 = at zero at
+ alt keycode 11 = Meta_zero
+keycode 12 = parenright bracketright bracketright
+ control keycode 12 = Control_underscore
+ alt keycode 12 = Meta_minus
+keycode 13 = equal plus braceright
+ alt keycode 13 = Meta_equal
+keycode 14 = Delete Delete
+ alt keycode 14 = Meta_Delete
+keycode 15 = Tab Tab
+ alt keycode 15 = Meta_Tab
+keycode 26 = asciicircum less
+ control keycode 26 = Escape
+ alt keycode 26 = Meta_bracketleft
+keycode 27 = dollar greater asciitilde
+ control keycode 27 = Control_bracketright
+ alt keycode 27 = Meta_bracketright
+keycode 28 = Return
+ alt keycode 28 = Meta_Control_m
+keycode 29 = Control
+keycode 40 = bar percent
+ control keycode 40 = Control_g
+ alt keycode 40 = Meta_apostrophe
+keycode 41 = asterisk asciitilde
+ control keycode 41 = nul
+ alt keycode 41 = Meta_grave
+keycode 42 = Shift
+keycode 43 = asterisk numbersign
+ control keycode 43 = Control_backslash
+ alt keycode 43 = Meta_backslash
+keycode 50 = comma question
+keycode 51 = semicolon period
+ alt keycode 51 = Meta_comma
+keycode 52 = colon slash
+ alt keycode 52 = Meta_period
+keycode 53 = exclam backslash
+ control keycode 53 = Delete
+ alt keycode 53 = Meta_slash
+keycode 54 = Shift
+keycode 56 = Alt
+keycode 57 = space space
+ control keycode 57 = nul
+ alt keycode 57 = Meta_space
+keycode 58 = Caps_Lock
+keycode 86 = less greater bar
+ alt keycode 86 = Meta_less
+keycode 97 = Control
diff --git a/keymaps/i386/azerty/mac-usb-be.kmap b/keymaps/i386/azerty/mac-usb-be.kmap
new file mode 100644
index 0000000..513b4b4
--- /dev/null
+++ b/keymaps/i386/azerty/mac-usb-be.kmap
@@ -0,0 +1,40 @@
+# mac-be.map olh@suse.de
+
+alt_is_meta
+include "azerty-layout"
+include "mac-linux-keys-bare.inc"
+include "euro.inc"
+compose as usual for "iso-8859-1"
+strings as usual
+
+# Normal Shift AltGr Strg
+keycode 2 = ampersand one
+keycode 3 = eacute two
+keycode 4 = quotedbl three
+keycode 5 = apostrophe four
+keycode 6 = parenleft five
+keycode 7 = section six paragraph
+keycode 8 = egrave seven
+keycode 9 = exclam eight
+keycode 10 = ccedilla nine
+keycode 11 = agrave zero
+keycode 12 = parenright degree
+keycode 13 = minus underscore
+keycode 26 = asciicircum diaeresis
+keycode 27 = dollar asterisk
+keycode 40 = ugrave percent
+keycode 41 = at numbersign
+
+keycode 43 = grave pound at numbersign
+keycode 51 = semicolon period
+keycode 50 = comma question
+keycode 52 = colon slash
+keycode 53 = equal plus
+keycode 57 = space space
+keycode 86 = less greater
+
+keycode 49 = n N asciitilde
+keycode 38 = l L bar bar
+keycode 83 = KP_Comma
+ control alt keycode 83 = Boot
+
diff --git a/keymaps/i386/azerty/mac-usb-fr.kmap b/keymaps/i386/azerty/mac-usb-fr.kmap
new file mode 100644
index 0000000..3a7a123
--- /dev/null
+++ b/keymaps/i386/azerty/mac-usb-fr.kmap
@@ -0,0 +1,127 @@
+# marc.shapiro@inria.fr 4-october-1998
+# French Macintosh keyboard
+# attempt to align to the standard Mac meaning of keys.
+# mostly intuitive!
+# option=AltGr; Apple/Command=Alt (==> meta)
+
+# TODO: CONTROL AND META COMBINATIONS
+
+charset "iso-8859-1"
+include "azerty-layout.inc"
+include "mac-linux-keys-bare.inc"
+include "euro.inc"
+compose as usual for "iso-8859-1"
+strings as usual
+
+# 1st row
+keycode 41 = at numbersign
+alt keycode 41 = Meta_at
+control keycode 41 = nul
+shift alt keycode 41 = Meta_numbersign
+
+keycode 2 = ampersand one
+alt keycode 2 = Meta_ampersand
+shift alt keycode 2 = Meta_one
+
+keycode 3 = eacute two
+shift alt keycode 3 = Meta_two
+
+keycode 4 = quotedbl three
+alt keycode 4 = Meta_quotedbl
+shift alt keycode 4 = Meta_three
+
+keycode 5 = apostrophe four
+alt keycode 5 = Meta_apostrophe
+shift alt keycode 5 = Meta_four
+
+keycode 6 = parenleft five braceleft bracketleft
+alt keycode 6 = Meta_parenleft
+shift alt keycode 6 = Meta_five
+
+# all convert.sh convert.sh~ include make_strings.sh make_strings.sh~ strings.inc strings.sh strings.sh~ insert meta, control
+keycode 7 = section six
+shift alt keycode 7 = Meta_six
+
+keycode 8 = egrave seven guillemotleft guillemotright
+shift alt keycode 8 = Meta_seven
+
+keycode 9 = exclam eight
+alt keycode 9 = Meta_exclam
+shift alt keycode 9 = Meta_eight
+
+keycode 10 = ccedilla nine
+shift alt keycode 10 = Meta_nine
+
+keycode 11 = agrave zero
+shift alt keycode 11 = Meta_zero
+
+keycode 12 = parenright degree braceright bracketright
+alt keycode 12 = Meta_parenright
+
+keycode 13 = minus underscore
+alt keycode 13 = Meta_minus
+shift alt keycode 13 = Meta_underscore
+shift control keycode 13 = Control_underscore
+
+# 2nd row
+
+
+keycode 26 = dead_circumflex dead_diaeresis
+control keycode 26 = Control_asciicircum
+
+keycode 27 = dollar asterisk VoidSymbol currency
+alt keycode 27 = Meta_dollar
+shift alt keycode 27 = Meta_dollar
+
+
+# 3d row
+
+altgr keycode 38 = notsign
+shift altgr keycode 38 = bar
+# alt altgr keycode 38 = Meta_notsign # Doesn't work???
+shift alt altgr keycode 38 = Meta_bar
+
+
+keycode 40 = ugrave percent
+shift alt keycode 40 = Meta_percent
+
+keycode 43 = dead_grave sterling at numbersign
+alt keycode 43 = Meta_grave
+# shift alt keycode 43 = Meta_sterling # doesn't work ?
+altgr keycode 43 = Meta_at
+shift altgr keycode 43 = Meta_numbersign
+
+# 4th row
+
+keycode 86 = less greater
+alt keycode 86 = Meta_less
+shift alt keycode 86 = Meta_greater
+
+
+keycode 49 = +n N dead_tilde
+control keycode 49 = Control_n
+shift control keycode 49 = Control_n
+alt keycode 49 = Meta_n
+shift alt keycode 49 = Meta_n
+
+keycode 50 = comma question
+alt keycode 50 = Meta_comma
+shift alt keycode 50 = Meta_question
+shift control keycode 50 = Delete
+
+keycode 51 = semicolon period
+alt keycode 51 = Meta_semicolon
+shift alt keycode 51 = Meta_period
+
+keycode 52 = colon slash division backslash
+alt keycode 52 = Meta_colon
+shift alt keycode 52 = Meta_slash
+shift altgr control keycode 52 = Control_backslash
+
+keycode 53 = equal plus
+alt keycode 53 = Meta_equal
+shift alt keycode 53 = Meta_plus
+
+keycode 83 = KP_Period
+ control alt keycode 83 = Boot
+
diff --git a/keymaps/i386/azerty/mac-usb-it.kmap b/keymaps/i386/azerty/mac-usb-it.kmap
new file mode 100644
index 0000000..d8b5f53
--- /dev/null
+++ b/keymaps/i386/azerty/mac-usb-it.kmap
@@ -0,0 +1,51 @@
+# Apple Keyboard Italiana
+# Cristiano Bertossi bertossi@polimedia.it
+# it-cris.map
+# 18 August 1998
+# modified by olh@suse.de
+
+alt_is_meta
+include "azerty-layout"
+include "mac-linux-keys-bare.inc"
+include "euro.inc"
+compose as usual for "iso-8859-1"
+strings as usual
+
+
+# Prima riga
+keycode 41 = at numbersign
+keycode 2 = ampersand one guillemotleft
+keycode 3 = quotedbl two
+keycode 4 = apostrophe three grave
+keycode 5 = parenleft four braceleft bracketleft
+keycode 6 = ccedilla five Ccedilla
+keycode 7 = egrave six
+keycode 8 = parenright seven braceright bracketright
+keycode 9 = sterling eight
+keycode 10 = agrave nine
+keycode 11 = eacute zero
+keycode 12 = minus underscore
+keycode 13 = equal plus
+keycode 14 = Delete Remove
+
+# Seconda riga
+keycode 26 = igrave asciicircum
+keycode 27 = dollar asterisk
+
+# Terza riga
+keycode 40 = ugrave percent
+keycode 43 = section degree at
+
+# Quarta riga
+keycode 86 = less greater
+keycode 46 = c C copyright
+keycode 49 = n
+altgr keycode 49 = asciitilde
+keycode 50 = comma question questiondown
+keycode 51 = semicolon period
+keycode 52 = colon slash bar backslash
+keycode 53 = ograve exclam
+
+keycode 83 = KP_Period
+ control alt keycode 83 = Boot
+
diff --git a/keymaps/i386/azerty/wangbe.kmap b/keymaps/i386/azerty/wangbe.kmap
new file mode 100644
index 0000000..b11e77f
--- /dev/null
+++ b/keymaps/i386/azerty/wangbe.kmap
@@ -0,0 +1,23 @@
+# azerty.map with modified numeric key assignements
+# to fit an azerty wang belgium keyboard
+# Servaas Vandenberghe, servaas.vandenberghe@esat.kuleuven.ac.be - 1997.
+
+include "azerty.kmap" # has two alt keys
+keymaps 6 # add one more keymap
+
+keycode 100 = AltGr # install AltGr on right Alt
+
+control altgr keycode 83 = Boot
+control altgr keycode 111 = Boot
+
+altgr keycode 71 = less
+altgr keycode 72 = greater
+altgr keycode 73 = asciicircum
+altgr keycode 75 = bracketleft
+altgr keycode 76 = bracketright
+altgr keycode 77 = dollar
+altgr keycode 79 = ampersand
+altgr keycode 80 = at
+altgr keycode 81 = numbersign
+altgr keycode 82 = apostrophe
+altgr keycode 83 = comma
diff --git a/keymaps/i386/azerty/wo.kmap b/keymaps/i386/azerty/wo.kmap
new file mode 100644
index 0000000..0a0fde5
--- /dev/null
+++ b/keymaps/i386/azerty/wo.kmap
@@ -0,0 +1,71 @@
+# This is a keymap for Wolof wo_SN. It is roughly based on a modified fr-latin0 layout, taking into account
+# the characteristics of the Wolof language, particularly the
+# ntilde (mapped on the */µ key) and the eng (mapped on the
+# ugrave/percent key
+#
+# Those used to the french azerty layout will have no difficulty when they switch to this new
+# Wolof keymap.
+#
+# Copyright (c) 2006 M Mamoune Mbacke <mouhamadoumamoune@gmail.com>
+# Copyright (c) 2007 Christian Perrier <bubulle@debian.org>
+#
+#
+#
+include "azerty-layout"
+include "linux-with-alt-and-altgr"
+strings as usual
+
+keycode 1 = Escape Escape
+keycode 2 = ampersand one bar
+ alt keycode 2 = bar
+keycode 3 = eacute two tilde Eacute
+ alt keycode 3 = Meta_two
+keycode 4 = quotedbl three numbersign cedilla
+ alt keycode 4 = Meta_three
+keycode 5 = apostrophe four braceleft acute
+ alt keycode 5 = Meta_four
+keycode 6 = parenleft five bracketleft diaeresis
+ alt keycode 6 = Meta_five
+keycode 7 = minus six bar brokenbar
+ alt keycode 7 = Meta_six
+keycode 8 = egrave seven dead_grave Egrave
+ alt keycode 8 = Meta_seven
+keycode 9 = underscore eight backslash macron
+ alt keycode 9 = Meta_eight
+keycode 10 = ccedilla nine asciicircum Ccedilla
+ alt keycode 10 = Meta_nine
+keycode 11 = agrave zero at Agrave
+ alt keycode 11 = Meta_zero
+keycode 12 = parenright degree bracketright ydiaeresis
+ alt keycode 12 = Meta_parenright
+keycode 13 = equal plus braceright threequarters
+ alt keycode 13 = Meta_equal
+keycode 14 = Delete Delete
+keycode 15 = Tab Tab
+keycode 26 = eng ENG bracketleft
+ control keycode 26 = Escape
+ alt keycode 26 = bracketleft
+keycode 27 = dollar sterling cent ecircumflex
+keycode 28 = Return
+keycode 29 = Control
+keycode 40 = ntilde Ntilde acute
+ alt keycode 40 = dead_acute
+keycode 41 = twosuperior percent
+keycode 42 = Shift
+keycode 43 = mu sterling grave
+ alt keycode 43 = dead_grave
+keycode 50 = comma question questiondown
+keycode 51 = semicolon period multiply
+keycode 52 = colon slash division
+keycode 53 = exclam section exclamdown
+ alt keycode 53 = asciitilde
+keycode 54 = Shift
+keycode 56 = Alt
+keycode 57 = space space
+ control keycode 57 = nul
+ alt keycode 57 = Meta_space
+ altgr keycode 57 = nobreakspace
+keycode 58 = Caps_Lock
+keycode 86 = less greater bar
+ alt keycode 86 = Meta_less
+keycode 97 = Control