// Copyright (c) 1997, 1998 Guylhem Aznar <guylhem @ oeil.qc.ca> : GPL
// Copyright (c) 2002, 2003 Jean-Philippe Guérard <jean-philippe.guerard @ laposte.net> : GPL
//
// $Revision: 1.13 $
// $Date: 2003/12/23 21:19:39 $
//
// (An English version of this text is provided below)
//
// Ce fichier est destiné à la version 4.3 de XFree86, et aux versions
// ultérieures. Il permet d'obtenir sur un clavier français des
// caractères conformes au standard ISO-8859-15.
//
// La dernière version de ce fichier est disponible sur :
// http://corbeaunoir.org/fr_latin9
//
// La version destinée à XFree86 v4.1 et v4.2 est disponible sur :
// http://corbeaunoir.org/fr_latin0
//
// Pour utiliser ce fichier, copiez-le dans /etc/X11/xkb/symbols/pc/
// puis modifiez l'option "XkbLayout" du fichier /etc/X11/XF86Config-4
// en lui donnant la valeur "fr_latin9" (ie le nom du fichier).
//
// ----
//
// This file is made for XFree86 version 4.3 and up. It enables
// the use of the ISO-8859-15 encoding with a French keyboard.
// It offers a keyboard mapping close to the console keyboard mapping.
// Thus, users do not need to learn a keyboard mapping for X11 and a
// different one for the console.
//
// The latest revision of this file is available at:
// http://corbeaunoir.org/fr_latin9
//
// A version of this file for XFree86 v4.1 and v4.2 is available at:
// http://corbeaunoir.org/fr_latin0
//
// To use this file, please copy it to /etc/X11/xkb/symbols/pc/
// then change the "XkbLayout" option in file /etc/X11/XF86Config-4
// to the value "fr_latin9" (ie this file name).
//
// ----------------------------------------------------------------------
// Le texte des commentaires de ce fichier utilise le codage ISO-8859-15.
//
// Vous pouvez vous assurer que la police de caractère que vous utilisez
// est adaptée en vérifiant que les 2 caractères affichés ci-dessous
// correspondent bien à leur description.
//
// € -> symbole Euro
// œ -> e dans l'o (minuscule)
//
// ----------------------------------------------------------------------
// The comments below uses the ISO-8859-15 character coding.
//
// To check that you are using an appropriate character set, please
// check that the 2 characters below correspond to their respective
// description:
//
// € -> Euro currency symbol
// œ -> Lower-case oe character
// ----------------------------------------------------------------------
//
// Guide d'utilisation
// -------------------
// ____ _________ _____________ _______
// | M A| M = Maj., A = AltGr + Maj. | Imprime | Arrêt défil | Pause |
// | n a| n = normal, a = AltGr | Exec | | 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 ¶| ^ ~| $ ¢| <-' |
// ===================================================================¬ |
// | Verr. | 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 | ? | . | / | § | |
// | Maj. | < || w «| x »| c ©| v ®| b ß| n ¬| , ¿| ; ×| : ÷| ! ¡| Maj. |
// ========================================================================
// | | | | | | | | |
// | Ctrl | Méta | Alt | Espace EspaceInsécable | AltGr | Multi|Menu | Ctrl |
// ¯¯¯¯¯¯ ¯¯¯¯¯¯ ¯¯¯¯¯ ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ ¯¯¯¯¯¯¯ ¯¯¯¯¯¯ ¯¯¯¯¯ ¯¯¯¯¯¯
//
// Comment obtenir les caractères accentués ?
// ------------------------------------------
//
// Il est possible d'obtenir les caractères accentués de différentes
// façons :
//
// 1) Les caractères accentués présents au clavier (é, è, ç, à et ù)
// sont disponibles en majuscule via :
// [AltGr] + [Maj.] + [minuscule accentuée]
//
// 2) Il est possible d'obtenir les accents via des touches mortes.
// Ces touches n'entraînent pas l'affichage d'un caractère, mais
// vont modifier le prochain caractère entré :
//
// [^] : accent circonflexe,
// [Maj.] + [^] : tréma,
// [AltGr] + [^] : tilde,
// [AltGr] + [1] : accent aigu,
// [AltGr] + [7] : accent grave
//
// Par exemple :
//
// [AltGr] + [1] puis [e] -> é
// [AltGr] + [1] puis [Maj.] + [e] -> É
//
// 3) Touche [composer]
//
// La touche [composer] est une touche spéciale, servant à combiner les
// 2 caractères qui la suivent.
//
// La touche Windows de droite est utiliser comme touche [composer].
//
// Par exemple :
//
// [composer] puis ['] puis [e] -> é
// [composer] puis ['] puis [Maj.] + [e] -> É
// [composer] puis [,] puis [c] -> ç
// [composer] puis [o] puis [e] -> œ
// [composer] puis [Maj.] + [O] puis [Maj.] + [E] -> Œ
//
// 4) Les trémas et accents circonflexes peuvent être obtenus via :
//
// [AltGr] + [voyelle] : minuscule circonflexe
// [AltGr] + [Maj.] + [voyelle] : minuscule tréma
// [AltGr] + [caractère sous la voyelle] : majuscule circonflexe
// [AltGr] + [Maj.] + [caractère sous la voyelle] : majuscule tréma
//
// Il y a deux exceptions :
// [AltGr] + [e] donne l'euro €
// [AltGr] + [$] donne ê
//
partial default alphanumeric_keys
xkb_symbols "basic" {
name[Group1]= "French";
key.type[Group1] = "FOUR_LEVEL_ALPHABETIC";
key <TLDE> { [ oe, OE, leftdoublequotemark, rightdoublequotemark ] };
key <AE01> { [ ampersand, 1, dead_acute, periodcentered ] };
key <AE02> { [ eacute, 2, asciitilde, Eacute ] };
key <AE03> { [ quotedbl, 3, numbersign, zcaron ] };
key <AE04> { [ apostrophe, 4, braceleft, Zcaron ] };
key <AE05> { [ parenleft, 5, bracketleft, scaron ] };
key <AE06> { [ minus, 6, bar, Scaron ] };
key <AE07> { [ egrave, 7, dead_grave, Egrave ] };
key <AE08> { [ underscore, 8, backslash, macron ] };
key <AE09> { [ ccedilla, 9, asciicircum, Ccedilla ] };
key <AE10> { [ agrave, 0, at, Agrave ] };
key <AE11> { [ parenright, degree, bracketright, ydiaeresis ] };
key <AE12> { [ equal, plus, braceright, Ydiaeresis ] };
key <AD01> { [ a, A, acircumflex, adiaeresis ] };
key <AD02> { [ z, Z, aring, Aring ] };
key <AD03> { [ e, E, EuroSign, ediaeresis ] };
key <AD04> { [ r, R, ccedilla, Ccedilla ] };
key <AD05> { [ t, T , thorn, THORN ] };
key <AD06> { [ y, Y, yacute, Yacute ] };
key <AD07> { [ u, U, ucircumflex, udiaeresis ] };
key <AD08> { [ i, I, icircumflex, idiaeresis ] };
key <AD09> { [ o, O, ocircumflex, odiaeresis ] };
key <AD10> { [ p, P, paragraph, quoteleft ] };
key <AD11> { [ dead_circumflex, dead_diaeresis, dead_tilde, quoteright ] };
key <AD12> { [ dollar, sterling, cent, ecircumflex ] };
key <AC01> { [ q, Q, Acircumflex, Adiaeresis ] };
key <AC02> { [ s, S, oslash, Ooblique ] };
key <AC03> { [ d, D, Ecircumflex, Ediaeresis ] };
key <AC04> { [ f, F, plusminus, ordfeminine ] };
key <AC05> { [ g, G, ae, AE ] };
key <AC06> { [ h, H, eth, ETH ] };
key <AC07> { [ j, J, Ucircumflex, Udiaeresis ] };
key <AC08> { [ k, K, Icircumflex, Idiaeresis ] };
key <AC09> { [ l, L, Ocircumflex, Odiaeresis ] };
key <AC10> { [ m, M, onesuperior, masculine ] };
key <AC11> { [ ugrave, percent, twosuperior, Ugrave ] };
key <LSGT> { [ less, greater, bar, NoSymbol ] };
key <AB01> { [ w, W, guillemotleft, NoSymbol ] };
key <AB02> { [ x, X, guillemotright, NoSymbol ] };
key <AB03> { [ c, C, copyright, NoSymbol ] };
key <AB04> { [ v, V, registered, NoSymbol ] };
key <AB05> { [ b, B, ssharp, NoSymbol ] };
key <AB06> { [ n, N, notsign, NoSymbol ] };
key <AB07> { [ comma, question, questiondown, NoSymbol ] };
key <AB08> { [ semicolon, period, multiply, NoSymbol ] };
key <AB09> { [ colon, slash, division, NoSymbol ] };
key <AB10> { [ exclam, section, exclamdown, NoSymbol ] };
key <BKSL> { [ asterisk, mu, threesuperior, yen ] };
key <SPCE> { type[Group1]="FOUR_LEVEL",
[ space, space, nobreakspace, nobreakspace ] };
// Nous inhibons volontairement le second sens de AltGr (touche composition « Multi_Key »).
// En effet, ce choix de touche n'est pas très heureux, le résultat
// variant selon l'ordre précis des touches.
key <RALT> { type[Group1]="ONE_LEVEL",
[ ISO_Level3_Shift ] };
modifier_map Mod5 { ISO_Level3_Shift };
// Du fait de cette modification, X devrait produire l'avertissement suivant au démarrage :
//
// The XKEYBOARD keymap compiler (xkbcomp) reports:
// > Warning: Type "ONE_LEVEL" has 1 levels, but <RALT> has 2 symbols
// > Ignoring extra symbols
//
key <RWIN> { type[Group1]="TWO_LEVEL",
[ Multi_key, ISO_Next_Group ] };
};
partial alphanumeric_keys
xkb_symbols "nodeadkeys" {
include "fr_latin9(basic)"
key <AE01> { [ ampersand, 1, apostrophe, periodcentered ] };
key <AE07> { [ egrave, 7, grave, Egrave ] };
key <AD11> { [ asciicircum, diaeresis, asciitilde, quoteright ] };
};