// $XdotOrg: xc/programs/xkbcomp/symbols/pc/fr,v 1.3 2005/08/12 11:08:49 pascal Exp $
// based on a keyboard map from an 'xkb/symbols/fr' file
//
// $XFree86: xc/programs/xkbcomp/symbols/pc/fr,v 1.2 2002/11/22 04:03:28 dawes Exp $

partial default alphanumeric_keys
xkb_symbols "basic" {

    include "pc/latin"

    name[Group1]="France";

    key <AE01>	{ [ ampersand,          1,  onesuperior,   exclamdown ]	};
    key <AE02>	{ [    eacute,          2,   asciitilde,    oneeighth ]	};
    key <AE03>	{ [  quotedbl,          3,   numbersign,     sterling ]	};
    key <AE04>	{ [apostrophe,          4,    braceleft,       dollar ]	};
    key <AE05>	{ [ parenleft,          5,  bracketleft, threeeighths ]	};
    key <AE06>	{ [     minus,          6,          bar,  fiveeighths ]	};
    key <AE07>	{ [    egrave,          7,        grave, seveneighths ]	};
    key <AE08>	{ [underscore,          8,    backslash,    trademark ]	};
    key <AE09>	{ [  ccedilla,          9,  asciicircum,    plusminus ]	};
    key <AE10>	{ [    agrave,          0,           at,       degree ]	};
    key <AE11>	{ [parenright,     degree, bracketright, questiondown ]	};
    key <AE12>	{ [     equal,       plus,   braceright,  dead_ogonek ]	};

    key <AD01>	{ [         a,          A,           ae,           AE ]	};
    key <AD02>	{ [         z,          Z, guillemotleft,        less ]	};
    key <AD03>	{ [         e,          E,     EuroSign,         cent ]	};
    key <AD11>	{ [dead_circumflex, dead_diaeresis, dead_diaeresis, dead_abovering ] };
    key <AD12>	{ [    dollar,   sterling,     currency,  dead_macron ]	};

    key <AC01>	{ [         q,          Q,           at,  Greek_OMEGA ]	};
    key <AC10>	{ [         m,          M,           mu,    masculine ]	};
    key <AC11>	{ [    ugrave,    percent, dead_circumflex, dead_caron]	};
    key <TLDE>	{ [twosuperior, asciitilde,     notsign,      notsign ]	};

    key <BKSL>	{ [  asterisk,         mu,   dead_grave,   dead_breve ]	};
    key <AB01>	{ [         w,          W,      lstroke,      Lstroke ]	};
    key <AB07>	{ [     comma,   question,   dead_acute, dead_doubleacute ] };
    key <AB08>	{ [ semicolon,     period, horizconnector,   multiply ]	};
    key <AB09>	{ [     colon,      slash, periodcentered,   division ]	};
    key <AB10>	{ [    exclam,    section, dead_belowdot, dead_abovedot ] };

    include "level3(ralt_switch)"
};

partial alphanumeric_keys
xkb_symbols "Sundeadkeys" {

    // Modifies the basic French layout to use the Sun dead keys

    include "pc/fr(basic)"

    name[Group1]="France - Sun dead keys";

    key <AD11>	{ [SunFA_Circum, SunFA_Diaeresis ]	};
    key <AB07>	{ [comma,   question,  SunFA_Acute, dead_doubleacute ]	};
};

partial alphanumeric_keys
xkb_symbols "sundeadkeys" {
    include "pc/fr(Sundeadkeys)"

};

partial alphanumeric_keys
xkb_symbols "nodeadkeys" {

    // Modifies the basic French layout to eliminate all dead keys

    include "pc/fr(basic)"

    name[Group1]="France - Eliminate dead keys";

    key <AE12>	{ [     equal,       plus,   braceright,       ogonek ]	};
    key <AD11>	{ [asciicircum,  diaeresis ]	};
    key <AD12>	{ [    dollar,   sterling,     currency,       macron ]	};
    key <AC11>	{ [    ugrave,    percent,  asciicircum,        caron ]	};
    key <BKSL>	{ [  asterisk,         mu,        grave,        breve ]	};
    key <AB07>	{ [     comma,   question,        acute,  doubleacute ]	};
    key <AB10>	{ [    exclam,    section, dead_belowdot,    abovedot ]	};
};

// Historic Linux French keyboard layout (fr-latin9)
// Copyright (c) 199x, 2002 Rene Cougnenc (original work)
//                          Guylhem Aznar <clavier @ externe.net> (maintainer)
//                          Nicolas Mailhot <Nicolas.Mailhot @ laposte.net>
//                              (XFree86 submission)
//
//  $XFree86: xc/programs/xkbcomp/symbols/fr-latin9,v 1.1 2002/12/20 02:07:11 dawes Exp $
//
// This layout has long been distributed and refined outside official channels.
// To this day it remains more feature-rich and popular than the 'fr' layout.
//
// This file is derived from an original version by Guylhem Aznar.  The
// original version is always available from:
// http://en.tldp.org/HOWTO/Francophones-HOWTO.html
// and is distributed under a GPL license.
//
// The author has given permission for this derived version to be distributed
// under the standard XFree86 license. He would like all changes to this
// version be send to him at <clavier @ externe.net> so he can sync the
// identically named linux console map (kbd, linux-console) and this
// fileout-of-tree GPL version.
//
// Now follows the keyboard design description in French.
// (If you can't read it you probably have no business changing this file anyway:)
//
// 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     | Imprime | Arrêt défil | Pause |
// | s a| s = 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 ¶| ^ ~| £ ê| <-' |
//  ===================================================================¬    |
// |       | 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 | Meta | Alt  | Space    Nobreakspace | AltGr | Multi|Menu | Ctrl |
//  ¯¯¯¯¯¯ ¯¯¯¯¯¯ ¯¯¯¯¯¯ ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ ¯¯¯¯¯¯¯ ¯¯¯¯¯¯ ¯¯¯¯¯ ¯¯¯¯¯¯
//
//
//		Si les touches mortes 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 aigu,
// 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 : É ...

partial alphanumeric_keys

xkb_symbols "latin9" {

    include "pc/latin"

    name[Group1]="France - Alternative";

    key <TLDE>	{ [              oe,              OE, leftdoublequotemark, rightdoublequotemark ] };
    key <AE01>	{ [       ampersand,               1,          dead_acute,       periodcentered ] };
    key <AE02>	{ [          eacute,               2,          asciitilde,               Eacute ] };
    key <AE03>	{ [        quotedbl,               3,          numbersign,              cedilla ] };
    key <AE04>	{ [      apostrophe,               4,           braceleft,                acute ] };
    key <AE05>	{ [       parenleft,               5,         bracketleft,            diaeresis ] };
    key <AE06>	{ [           minus,               6,                 bar,            brokenbar ] };
    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,       dead_abovering ] };

    key <AD01>	{ [               a,               A,         acircumflex,           adiaeresis ] };
    key <AD02>	{ [               z,               Z,               aring,                Aring ] };
    key <AD03>	{ [               e,               E,            EuroSign,                 cent ] };
    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,         ecircumflex,           ediaeresis ] };

    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 <BKSL>  { [        asterisk,              mu,       threesuperior,                  yen ] };

    key <LSGT>	{ [            less,         greater,                 bar                       ] };
    key <AB01>	{ [               w,               W,       guillemotleft	        	] };
    key <AB02>	{ [               x,               X,      guillemotright                       ] };
    key <AB03>	{ [               c,               C,           copyright                       ] };
    key <AB04>	{ [               v,               V,          registered		        ] };
    key <AB05>	{ [               b,               B,              ssharp                       ] };
    key <AB06>	{ [               n,               N,             notsign                       ] };
    key <AB07>	{ [           comma,        question,        questiondown                       ] };
    key <AB08>	{ [       semicolon,          period,            multiply		        ] };
    key <AB09>	{ [           colon,           slash,            division                       ] };
    key <AB10>	{ [          exclam,         section,          exclamdown                       ] };

    key <SPCE>  { [           space,           space,        nobreakspace                       ] };

    // French uses a comma as decimal separator, but keyboards are labeled with a period
    // Will take effect when KP_Decimal is mapped to the locale decimal separator
    key <KPDL>  { [       KP_Delete,          period,           KP_Delete,           KP_Decimal ] };

    include "level3(ralt_switch)"
};

partial alphanumeric_keys
xkb_symbols "latin9_Sundeadkeys" {

    // Modifies the basic fr-latin9 layout to use the Sun dead keys

    include "pc/fr(latin9)"

    key <AE01>	{ [       ampersand,               1,         SunFA_Acute,       periodcentered ] };
    key <AE07>	{ [          egrave,               7,         SunFA_Grave,               Egrave ] };
    key <AD11>	{ [    SunFA_Circum, SunFA_Diaeresis,         SunFA_Tilde,           quoteright ] };

};

partial alphanumeric_keys
xkb_symbols "latin9_sundeadkeys" {

    include "pc/fr(latin9_Sundeadkeys)"

    name[Group1]="France - Alternative, Sun dead keys";
};

partial alphanumeric_keys
xkb_symbols "latin9_nodeadkeys" {

    // Modifies the basic fr-latin9 layout to eliminate all dead keys

    include "pc/fr(latin9)"

    name[Group1]="France - Alternative, eliminate dead keys";

    key <AE01>	{ [       ampersand,               1,          apostrophe,       periodcentered ] };
    key <AE07>	{ [          egrave,               7,               grave,               Egrave ] };
    key <AE12>	{ [           equal,            plus,          braceright         	        ] };
    key <AD11>	{ [	asciicircum,  	   diaeresis,          asciitilde,           quoteright ] };
};

// Keymap Dvorak pour le Français
// par Josselin Mouette <josselin.mouette@ens-lyon.org>.

partial alphanumeric_keys
xkb_symbols "dvorak" {

    name[Group1]= "France - Dvorak";

    key <TLDE>  { [         oe,       OE,              ae,             AE ] };

    key <AE01>  { [      slash,        1,       ampersand,    onesuperior ] };
    key <AE02>  { [       plus,        2,      asciitilde,    twosuperior ] };
    key <AE03>  { [      minus,        3,      numbersign,  threesuperior ] };
    key <AE04>  { [   asterisk,        4,            less,  guillemotleft ] };
    key <AE05>  { [      equal,        5,         greater, guillemotright ] };
    key <AE06>  { [  backslash,        6,              at,        notsign ] };
    key <AE07>  { [  parenleft,        7, dead_circumflex,       multiply ] };
    key <AE08>  { [      grave,        8,      dead_grave,       division ] };
    key <AE09>  { [ parenright,        9,     asciicircum,      plusminus ] };
    key <AE10>  { [   quotedbl,        0,  dead_diaeresis, dead_diaeresis ] };
    key <AE11>  { [bracketleft,   braceleft,          bar,         degree ] };
    key <AE12>  { [bracketright, braceright,      percent,        percent ] };

    key <AD01>  { [      colon, question,        question,   questiondown ] };
    key <AD02>  { [     agrave,   Agrave,           aring,          Aring ] };
    key <AD03>  { [     eacute,   Eacute,        EuroSign,           cent ] };
    key <AD04>  { [          g,        G,          oslash,       Ooblique ] };
    key <AD05>  { [     period,   exclam,  periodcentered,     exclamdown ] };
    key <AD06>  { [          h,        H,             eth,            ETH ] };
    key <AD07>  { [          v,        V              ] };
    key <AD08>  { [          c,        C,       copyright,     registered ] };
    key <AD09>  { [          m,        M,              mu,             mu ] };
    key <AD10>  { [          k,        K,          dollar,         dollar ] };
    key <AD11>  { [     egrave,   Egrave,        sterling,       sterling ] };
    key <AD12>  { [          z,        Z,             yen,            yen ] };

    key <AC01>  { [          o,        O,     ocircumflex,    Ocircumflex ] };
    key <AC02>  { [          a,        A,     acircumflex,    Acircumflex ] };
    key <AC03>  { [          u,        U,     ucircumflex,    Ucircumflex ] };
    key <AC04>  { [          e,        E,     ecircumflex,    Ecircumflex ] };
    key <AC05>  { [          b,        B,          ssharp,         ssharp ] };
    key <AC06>  { [          f,        F      ] };
    key <AC07>  { [          s,        S      ] };
    key <AC08>  { [          t,        T,           thorn,          THORN ] };
    key <AC09>  { [          n,        N,          ntilde,         Ntilde ] };
    key <AC10>  { [          d,        D,         section,        section ] };
    key <AC11>  { [          w,        W,       paragraph,      paragraph ] };
    key <BKSL>  { [     ugrave,   Ugrave,       masculine,    ordfeminine ] };

    key <AB01>  { [ apostrophe, underscore,    dead_acute,         macron ] };
    key <AB02>  { [          q,        Q,   guillemotleft,  guillemotleft ] };
    key <AB03>  { [     comma, semicolon,  guillemotright, guillemotright ] };
    key <AB04>  { [          i,        I,     icircumflex,    Icircumflex ] };
    key <AB05>  { [          y,        Y,      ydiaeresis,     Ydiaeresis ] };
    key <AB06>  { [          x,        X,      ediaeresis,     Ediaeresis ] };
    key <AB07>  { [          r,        R,      udiaeresis,     Udiaeresis ] };
    key <AB08>  { [          l,        L,      adiaeresis,     Adiaeresis ] };
    key <AB09>  { [          p,        P,      odiaeresis,     Odiaeresis ] };
    key <AB10>  { [          j,        J,      idiaeresis,     Idiaeresis ] };

    key <SPCE>  { [      space,    space,    nobreakspace,   nobreakspace ] };
    key <LSGT>  { [   ccedilla, Ccedilla      ] };

    include "level3(ralt_switch)"
};

