Home | History | Annotate | Line # | Download | only in symbols
fr revision 1.1
      1 // $XKeyboardConfig: xkeyboard-config/symbols/fr,v 1.21 2008-04-22 19:54:11 svu Exp $
      2 
      3 // based on a keyboard map from an 'xkb/symbols/fr' file
      4 //
      5 // $XFree86: xc/programs/xkbcomp/symbols/fr,v 1.2 2002/11/22 04:03:28 dawes Exp $
      6 
      7 partial default alphanumeric_keys
      8 xkb_symbols "basic" {
      9 
     10     include "latin"
     11 
     12     name[Group1]="France";
     13 
     14     key <AE01>	{ [ ampersand,          1,  onesuperior,   exclamdown ]	};
     15     key <AE02>	{ [    eacute,          2,   asciitilde,    oneeighth ]	};
     16     key <AE03>	{ [  quotedbl,          3,   numbersign,     sterling ]	};
     17     key <AE04>	{ [apostrophe,          4,    braceleft,       dollar ]	};
     18     key <AE05>	{ [ parenleft,          5,  bracketleft, threeeighths ]	};
     19     key <AE06>	{ [     minus,          6,          bar,  fiveeighths ]	};
     20     key <AE07>	{ [    egrave,          7,        grave, seveneighths ]	};
     21     key <AE08>	{ [underscore,          8,    backslash,    trademark ]	};
     22     key <AE09>	{ [  ccedilla,          9,  asciicircum,    plusminus ]	};
     23     key <AE10>	{ [    agrave,          0,           at,       degree ]	};
     24     key <AE11>	{ [parenright,     degree, bracketright, questiondown ]	};
     25     key <AE12>	{ [     equal,       plus,   braceright,  dead_ogonek ]	};
     26 
     27     key <AD01>	{ [         a,          A,           ae,           AE ]	};
     28     key <AD02>	{ [         z,          Z, guillemotleft,        less ]	};
     29     key <AD03>	{ [         e,          E,     EuroSign,         cent ]	};
     30     key <AD11>	{ [dead_circumflex, dead_diaeresis, dead_diaeresis, dead_abovering ] };
     31     key <AD12>	{ [    dollar,   sterling,     currency,  dead_macron ]	};
     32 
     33     key <AC01>	{ [         q,          Q,           at,  Greek_OMEGA ]	};
     34     key <AC10>	{ [         m,          M,           mu,    masculine ]	};
     35     key <AC11>	{ [    ugrave,    percent, dead_circumflex, dead_caron]	};
     36     key <TLDE>	{ [twosuperior, asciitilde,     notsign,      notsign ]	};
     37 
     38     key <BKSL>	{ [  asterisk,         mu,   dead_grave,   dead_breve ]	};
     39     key <AB01>	{ [         w,          W,      lstroke,      Lstroke ]	};
     40     key <AB07>	{ [     comma,   question,   dead_acute, dead_doubleacute ] };
     41     key <AB08>	{ [ semicolon,     period, horizconnector,   multiply ]	};
     42     key <AB09>	{ [     colon,      slash, periodcentered,   division ]	};
     43     key <AB10>	{ [    exclam,    section, dead_belowdot, dead_abovedot ] };
     44 
     45     include "level3(ralt_switch)"
     46 };
     47 
     48 partial alphanumeric_keys
     49 xkb_symbols "Sundeadkeys" {
     50 
     51     // Modifies the basic French layout to use the Sun dead keys
     52 
     53     include "fr(basic)"
     54 
     55     key <AD11>	{ [SunFA_Circum, SunFA_Diaeresis ]	};
     56     key <AB07>	{ [comma,   question,  SunFA_Acute, dead_doubleacute ]	};
     57 };
     58 
     59 partial alphanumeric_keys
     60 xkb_symbols "sundeadkeys" {
     61     include "fr(Sundeadkeys)"
     62 
     63     name[Group1]="France - Sun dead keys";
     64 };
     65 
     66 partial alphanumeric_keys
     67 xkb_symbols "nodeadkeys" {
     68 
     69     // Modifies the basic French layout to eliminate all dead keys
     70 
     71     include "fr(basic)"
     72 
     73     name[Group1]="France - Eliminate dead keys";
     74 
     75     key <AE12>	{ [     equal,       plus,   braceright,       ogonek ]	};
     76     key <AD11>	{ [asciicircum,  diaeresis ]	};
     77     key <AD12>	{ [    dollar,   sterling,     currency,       macron ]	};
     78     key <AC11>	{ [    ugrave,    percent,  asciicircum,        caron ]	};
     79     key <BKSL>	{ [  asterisk,         mu,        grave,        breve ]	};
     80     key <AB07>	{ [     comma,   question,        acute,  doubleacute ]	};
     81     key <AB10>	{ [    exclam,    section, dead_belowdot,    abovedot ]	};
     82 };
     83 
     84 
     85 // Unicode French derivative
     86 // Loose refactoring of the historic Linux French keyboard layout
     87 //
     88 // Copyright  2006-2008 Nicolas Mailhot <nicolas.mailhot @ laposte.net>
     89 //
     90 // Credits (fr-latin1, fr-latin0, fr-latin9)
     91 //    199x-1996 Ren Cougnenc 
     92 //    1997-2002 Guylhem Aznar <clavier @ externe.net>
     93 //    2003-2006 Nicolas Mailhot <nicolas.mailhot @ laposte.net>
     94 //
     95 // 
     96 //     1   2   3   4   5   6   7   8   9   0      +    Retour
     97 //     &    ~  " #  ' {  ( [  - |   `  _ \   ^   @  ) ]  = }   arrire
     98 // 
     99 //         A   Z   E   R   T   Y   U   I   O   P        Entre 
    100 // Tab    a   z   e   r   t   y   u   i   o   p   ^ ~  $        
    101 //       
    102 //          Q   S   D   F   G   H   J   K   L   M   %           
    103 // Maj     q   s   d   f   g   h   j   k   l   m    '  * `       
    104 // 
    105 //         >   W   X   C   V   B   N   ?   . .  /                  
    106 // Shift  <   w   x   c   v   b   n   ,   ;   :   !  Shift       
    107 // 
    108 //                                Espace fine inscable                       
    109 // Ctrl   Meta   Alt      Espace       Espace inscable  AltGr Menu   Ctrl   
    110 // 
    111 partial alphanumeric_keys
    112 xkb_symbols "oss" {
    113 
    114     include "latin"
    115     include "level3(ralt_switch)"
    116     include "nbsp(level4nl)"
    117     include "keypad(oss)"
    118 
    119     name[Group1]="France - Alternative";
    120 
    121     // First row
    122     key <TLDE>	{ [      twosuperior,    threesuperior,          onesuperior,          dead_cedilla ] }; //     
    123     key <AE01>	{ [        ampersand,                1,           dead_caron,           dead_ogonek ] }; // & 1  
    124     key <AE02>	{ [           eacute,                2,           asciitilde,                Eacute ] }; //  2 ~ 
    125     key <AE03>	{ [         quotedbl,                3,           numbersign,            dead_breve ] }; // " 3 # 
    126     key <AE04>	{ [       apostrophe,                4,            braceleft,             0x1002014 ] }; // ' 4 {  (tiret cadratin)
    127     key <AE05>	{ [        parenleft,                5,          bracketleft,             0x1002013 ] }; // ( 5 [  (tiret demi-cadratin)
    128     key <AE06>	{ [            minus,                6,                  bar,             0x1002011 ] }; // - 6 |  (tiret inscable)
    129     key <AE07>	{ [           egrave,                7,                grave,                Egrave ] }; //  7 ` 
    130     key <AE08>	{ [       underscore,                8,            backslash,             trademark ] }; // _ 8 \ 
    131     key <AE09>	{ [         ccedilla,                9,          asciicircum,              Ccedilla ] }; //  9 ^ 
    132     key <AE10>	{ [           agrave,                0,                   at,                Agrave ] }; //  0 @ 
    133     key <AE11>	{ [       parenright,           degree,         bracketright,              notequal ] }; // )  ]  
    134     key <AE12>	{ [            equal,             plus,           braceright,             plusminus ] }; // = + } 
    135 
    136     // Second row
    137     key <AD01>	{ [                a,                A,                   ae,                    AE ] }; // a A  
    138     key <AD02>	{ [                z,                Z,          acircumflex,           Acircumflex ] }; // z Z  
    139     key <AD03>	{ [                e,                E,             EuroSign,                  cent ] }; // e E  
    140     key <AD04>	{ [                r,                R,          ecircumflex,           Ecircumflex ] }; // r R  
    141     key <AD05>	{ [                t,                T,                thorn,                 THORN ] }; // t T  
    142     key <AD06>	{ [                y,                Y,           ydiaeresis,            Ydiaeresis ] }; // y Y  
    143     key <AD07>	{ [                u,                U,          ucircumflex,           Ucircumflex ] }; // u U  
    144     key <AD08>	{ [                i,                I,          icircumflex,           Icircumflex ] }; // i I  
    145     key <AD09>	{ [                o,                O,                   oe,                    OE ] }; // o O  
    146     key <AD10>	{ [                p,                P,          ocircumflex,           Ocircumflex ] }; // p P  
    147     key <AD11>	{ [  dead_circumflex,   dead_diaeresis,           dead_tilde,        dead_abovering ] }; // ^   
    148     key <AD12>	{ [           dollar,         sterling,               oslash,              Ooblique ] }; // $   
    149 
    150     // Third row
    151     key <AC01>	{ [                q,                Q,           adiaeresis,            Adiaeresis ] }; // q Q  
    152     key <AC02>	{ [                s,                S,               ssharp,    doublelowquotemark ] }; // s S   
    153     key <AC03>	{ [                d,                D,           ediaeresis,            Ediaeresis ] }; // d D  
    154     key <AC04>	{ [                f,                F,  leftsinglequotemark,    singlelowquotemark ] }; // f F  
    155     key <AC05>	{ [                g,                G, rightsinglequotemark,                   yen ] }; // g G  
    156     key <AC06>	{ [                h,                H,                  eth,                   ETH ] }; // h H  
    157     key <AC07>	{ [                j,                J,           udiaeresis,            Udiaeresis ] }; // j J  
    158     key <AC08>	{ [                k,                K,           idiaeresis,            Idiaeresis ] }; // k K  
    159     key <AC09>	{ [                l,                L,            0x1000140,             0x100013F ] }; // l L  
    160     key <AC10>	{ [                m,                M,           odiaeresis,            Odiaeresis ] }; // m M  
    161     key <AC11>	{ [           ugrave,          percent,           dead_acute,                Ugrave ] }; //  % ' 
    162     key <BKSL>	{ [         asterisk,               mu,           dead_grave,           dead_macron ] }; // *  ` 
    163 
    164     // Fourth row
    165     key <LSGT>  { [             less,          greater,        lessthanequal,      greaterthanequal ] }; // < >  
    166     key <AB01>  { [                w,                W,        guillemotleft,   leftdoublequotemark ] }; // w W  
    167     key <AB02>  { [                x,                X,       guillemotright,  rightdoublequotemark ] }; // x X  
    168     key <AB03>  { [                c,                C,            copyright,            registered ] }; // c C  
    169     key <AB04>  { [                v,                V,            0x100202F,             leftarrow ] }; // v V   (espace fine inscable)
    170     key <AB05>  { [                b,                B,            downarrow,               uparrow ] }; // b B  
    171     key <AB06>  { [                n,                N,              notsign,            rightarrow ] }; // n N  
    172     key <AB07>  { [            comma,         question,         questiondown,             0x1002026 ] }; // , ?  
    173     key <AB08>  { [        semicolon,           period,             multiply,             0x10022C5 ] }; // ; .  
    174     key <AB09>  { [            colon,            slash,             division,             0x1002215 ] }; // : /  
    175     key <AB10>  { [           exclam,          section,           exclamdown,             0x1002212 ] }; // !   
    176 };
    177 
    178 partial alphanumeric_keys
    179 xkb_symbols "oss_latin9" {
    180 
    181     // Restricts the fr(oss) layout to latin9 symbols
    182 
    183     include "fr(oss)"
    184     include "keypad(oss_latin9)"
    185 
    186     name[Group1]="France - Alternative, latin-9 only";
    187 
    188     // First row
    189     key <AE01>	{ [        ampersand,                1,           dead_caron,          dead_cedilla ] }; // & 1  
    190     key <AE03>	{ [         quotedbl,                3,           numbersign,            dead_tilde ] }; // " 3 # ~
    191     key <AE04>	{ [       apostrophe,                4,            braceleft,            underscore ] }; // ' 4 { _
    192     key <AE05>	{ [        parenleft,                5,          bracketleft,                 minus ] }; // ( 5 [ -
    193     key <AE06>  { [            minus,                6,                  bar,                 minus ] }; // - 6 | -
    194     key <AE08>  { [       underscore,                8,            backslash,             backslash ] }; // _ 8 \ \
    195     key <AE11>	{ [       parenright,           degree,         bracketright,                 equal ] }; // )  ] =
    196 
    197     // Third row
    198     key <AC02>	{ [                s,                S,               ssharp,         guillemotleft ] }; // s S   
    199     key <AC04>	{ [                f,                F,           apostrophe,            apostrophe ] }; // f F ' '
    200     key <AC05>	{ [                g,                G,           apostrophe,                   yen ] }; // g G ' 
    201     key <AC09>  { [                l,                L,       periodcentered,        periodcentered ] }; // l L  
    202     key <BKSL>	{ [         asterisk,               mu,           dead_grave,       dead_circumflex ] }; // *  ` ^ 
    203 
    204     // Fourth row
    205     key <LSGT>  { [             less,          greater,                 less,               greater ] }; // < > < >
    206     key <AB01>  { [                w,                W,        guillemotleft,         guillemotleft ] }; // w W  
    207     key <AB02>  { [                x,                X,       guillemotright,        guillemotright ] }; // x X  
    208     key <AB04>  { [                v,                V,         nobreakspace,                  less ] }; // v V  < (espace inscable)
    209     key <AB05>  { [                b,                B,                minus,           asciicircum ] }; // b B - ^
    210     key <AB06>  { [                n,                N,              notsign,               greater ] }; // n N  >
    211     key <AB07>  { [            comma,         question,         questiondown,                period ] }; // , ?  .
    212     key <AB08>  { [        semicolon,           period,             multiply,        periodcentered ] }; // ; .  
    213     key <AB09>  { [            colon,            slash,             division,                 slash ] }; // : /  /
    214     key <AB10>  { [           exclam,          section,           exclamdown,                 minus ] }; // !   -
    215 };
    216 
    217 partial alphanumeric_keys
    218 xkb_symbols "oss_Sundeadkeys" {
    219 
    220     // Modifies the basic fr(oss) layout to use the Sun dead keys
    221 
    222     include "fr(oss)"
    223 
    224     // First row
    225     key <TLDE>	{ [      twosuperior,    threesuperior,          onesuperior,         SunFA_Cedilla ] }; //     
    226 
    227     // Second row
    228     key <AD11>	{ [     SunFA_Circum,  SunFA_Diaeresis,          SunFA_Tilde,        dead_abovering ] }; // ^   
    229 
    230     //Third row
    231     key <AC11>	{ [           ugrave,          percent,          SunFA_Acute,                Ugrave ] }; //  % ' 
    232     key <BKSL>	{ [         asterisk,               mu,          SunFA_Grave,           dead_macron ] }; // *  ` 
    233 };
    234 
    235 partial alphanumeric_keys
    236 xkb_symbols "oss_sundeadkeys" {
    237 
    238     include "fr(oss_Sundeadkeys)"
    239 
    240     name[Group1]="France - Alternative, Sun dead keys";
    241 };
    242 
    243 partial alphanumeric_keys
    244 xkb_symbols "oss_nodeadkeys" {
    245 
    246     // Modifies the basic fr(oss) layout to eliminate all dead keys
    247 
    248     include "fr(oss)"
    249 
    250     name[Group1]="France - Alternative, eliminate dead keys";
    251 
    252     key <TLDE>	{ [      twosuperior,    threesuperior,          onesuperior,               cedilla ] }; //     
    253     key <AE01>	{ [        ampersand,                1,                caron,                ogonek ] }; // & 1  
    254     key <AE03>	{ [         quotedbl,                3,           numbersign,                 breve ] }; // " 3 # 
    255 
    256     // Second row
    257     key <AD11>	{ [  circumflex,   diaeresis,           asciitilde,                 Aring ] }; // ^   
    258     key <AC11>	{ [           ugrave,          percent,                acute,                Ugrave ] }; //  % ' 
    259     key <BKSL>	{ [         asterisk,               mu,                grave,                macron ] }; // *  ` 
    260 };
    261 
    262 
    263 // Historic Linux French keyboard layout (fr-latin9)
    264 // Copyright (c) 199x, 2002 Rene Cougnenc (original work)
    265 //                          Guylhem Aznar <clavier @ externe.net> (maintainer)
    266 //                          Nicolas Mailhot <Nicolas.Mailhot @ laposte.net>
    267 //                              (XFree86 submission)
    268 //
    269 //  $XFree86: xc/programs/xkbcomp/symbols/fr-latin9,v 1.1 2002/12/20 02:07:11 dawes Exp $
    270 //
    271 // This layout has long been distributed and refined outside official channels.
    272 // To this day it remains more feature-rich and popular than the 'fr' layout.
    273 //
    274 // This file is derived from an original version by Guylhem Aznar.  The
    275 // original version is always available from:
    276 // http://en.tldp.org/HOWTO/Francophones-HOWTO.html
    277 // and is distributed under a GPL license.
    278 //
    279 // The author has given permission for this derived version to be distributed
    280 // under the standard XFree86 license. He would like all changes to this
    281 // version be send to him at <clavier @ externe.net> so he can sync the
    282 // identically named linux console map (kbd, linux-console) and this
    283 // fileout-of-tree GPL version.
    284 //
    285 // Now follows the keyboard design description in French.
    286 // (If you can't read it you probably have no business changing this file anyway:)
    287 //
    288 // Les accents circonflexes des principales voyelles sont obtenus avec
    289 // la touche Alt_Gr, les trmas sont obtenus par Alt_Gr + Shift.
    290 //
    291 //  ____                                     _________ _____________ _______
    292 // | S A| S = Shift,  A = AltGr + Shift     | Imprime | Arrt dfil | Pause |
    293 // | s a| s = normal, a = AltGr             |  Exec   |             | Halte |
    294 //                                         
    295 //  ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ _______
    296 // |  "| 1 | 2 | 3 ,| 4 '| 5 "| 6 || 7 | 8 | 9 | 0 |  | + | <--   |
    297 // |  "| & '|  ~| " #| ' {| ( [| - ||  `| _ \|  ^|  @| ) ]| = }|       |
    298 //  ========================================================================
    299 // | |<-  | A | Z | E | R | T | Y | U | I | O | P '| " `| $ |   , |
    300 // |  ->| | a | z | e | r | t | y | u | i | o | p | ^ ~|  | <-' |
    301 //  ===================================================================    |
    302 // |       | Q | S | D | F | G | H | J | K | L | M | % |  |    |
    303 // | MAJ   | q | s | d | f | g | h | j | k | l | m |  | * |    |
    304 //  ========================================================================
    305 // | ^   | >  | W  | X  | C  | V  | B  | N  | ?  | .  | /  |   |     ^     |
    306 // | |   | < || w | x | c | v | b | n | , | ; | : | ! |     |     |
    307 //  ========================================================================
    308 // |      |      |      |                       |       |      |     |      |
    309 // | Ctrl | Super| Alt  | Space    Nobreakspace | AltGr | Super|Menu | Ctrl |
    310 //         
    311 //
    312 //
    313 //		Si les touches mortes fonctionnent, utiliser les accents dits
    314 //		 morts , i.e. fonctionnant comme l'accent circonflexe & le
    315 //		trma des machines  crire ; sont disponibles :
    316 //
    317 // (^) : accent circonflexe,
    318 // Shift+(^) : trma,
    319 // Shift+AltGr (^) : tilde,
    320 // AltGr (1) : accent aigu,
    321 // AltGr (7) : accent grave
    322 //
    323 // Pour s'en servir, procder comme avec l'accent circonflexe & le trma
    324 // sur les vielles machines  crire :
    325 //
    326 // AltGr (1) puis e : 
    327 // Shift+AltGr (1) puis e :  ...
    328 partial alphanumeric_keys
    329 
    330 xkb_symbols "latin9" {
    331 
    332     include "latin"
    333     include "nbsp(level3)"
    334 
    335     name[Group1]="France - (Legacy) Alternative";
    336 
    337     key <TLDE>	{ [              oe,              OE, leftdoublequotemark, rightdoublequotemark ] };
    338     key <AE01>	{ [       ampersand,               1,          dead_acute,       periodcentered ] };
    339     key <AE02>	{ [          eacute,               2,          asciitilde,               Eacute ] };
    340     key <AE03>	{ [        quotedbl,               3,          numbersign,              cedilla ] };
    341     key <AE04>	{ [      apostrophe,               4,           braceleft,                acute ] };
    342     key <AE05>	{ [       parenleft,               5,         bracketleft,            diaeresis ] };
    343     key <AE06>	{ [           minus,               6,                 bar,            brokenbar ] };
    344     key <AE07>	{ [          egrave,               7,          dead_grave,               Egrave ] };
    345     key <AE08>	{ [      underscore,               8,           backslash,               macron ] };
    346     key <AE09>	{ [        ccedilla,               9,         asciicircum,             Ccedilla ] };
    347     key <AE10>	{ [          agrave,               0,                  at,               Agrave ] };
    348     key <AE11>	{ [      parenright,          degree,        bracketright,           ydiaeresis ] };
    349     key <AE12>	{ [           equal,            plus,          braceright,       dead_abovering ] };
    350 
    351     key <AD01>	{ [               a,               A,         acircumflex,           adiaeresis ] };
    352     key <AD02>	{ [               z,               Z,               aring,                Aring ] };
    353     key <AD03>	{ [               e,               E,            EuroSign,                 cent ] };
    354     key <AD04>	{ [               r,               R,            ccedilla,             Ccedilla ] };
    355     key <AD05>	{ [               t,               T,               thorn,                THORN ] };
    356     key <AD06>	{ [               y,               Y,              yacute,               Yacute ] };
    357     key <AD07>	{ [               u,               U,         ucircumflex,           udiaeresis ] };
    358     key <AD08>	{ [               i,               I,         icircumflex,           idiaeresis ] };
    359     key <AD09>	{ [               o,               O,         ocircumflex,           odiaeresis ] };
    360     key <AD10>	{ [               p,               P,           paragraph,            quoteleft ] };
    361     key <AD11>	{ [ dead_circumflex,  dead_diaeresis,          dead_tilde,           quoteright ] };
    362     key <AD12>	{ [          dollar,	    sterling,         ecircumflex,           ediaeresis ] };
    363 
    364     key <AC01>	{ [               q,               Q,         Acircumflex,           Adiaeresis ] };
    365     key <AC02>	{ [               s,               S,              oslash,             Ooblique ] };
    366     key <AC03>	{ [               d,               D,         Ecircumflex,           Ediaeresis ] };
    367     key <AC04>	{ [               f,               F,           plusminus,          ordfeminine ] };
    368     key <AC05>	{ [               g,               G,                  ae,                   AE ] };
    369     key <AC06>	{ [               h,               H,                 eth,                  ETH ] };
    370     key <AC07>	{ [               j,               J,         Ucircumflex,           Udiaeresis ] };
    371     key <AC08>	{ [               k,               K,         Icircumflex,           Idiaeresis ] };
    372     key <AC09>	{ [               l,               L,         Ocircumflex,           Odiaeresis ] };
    373     key <AC10>	{ [               m,               M,         onesuperior,            masculine ] };
    374     key <AC11>	{ [          ugrave,         percent,         twosuperior,               Ugrave ] };
    375     key <BKSL>  { [        asterisk,              mu,       threesuperior,                  yen ] };
    376 
    377     key <LSGT>	{ [            less,         greater,                 bar                       ] };
    378     key <AB01>	{ [               w,               W,       guillemotleft	        	] };
    379     key <AB02>	{ [               x,               X,      guillemotright                       ] };
    380     key <AB03>	{ [               c,               C,           copyright                       ] };
    381     key <AB04>	{ [               v,               V,          registered		        ] };
    382     key <AB05>	{ [               b,               B,              ssharp                       ] };
    383     key <AB06>	{ [               n,               N,             notsign                       ] };
    384     key <AB07>	{ [           comma,        question,        questiondown                       ] };
    385     key <AB08>	{ [       semicolon,          period,            multiply		        ] };
    386     key <AB09>	{ [           colon,           slash,            division                       ] };
    387     key <AB10>	{ [          exclam,         section,          exclamdown                       ] };
    388 
    389     // French uses a comma as decimal separator, but keyboards are labeled with a period
    390     // Will take effect when KP_Decimal is mapped to the locale decimal separator
    391     key <KPDL>  { [       KP_Delete,          period,           KP_Delete,           KP_Decimal ] };
    392 
    393     include "level3(ralt_switch)"
    394 };
    395 
    396 partial alphanumeric_keys
    397 xkb_symbols "latin9_Sundeadkeys" {
    398 
    399     // Modifies the basic fr-latin9 layout to use the Sun dead keys
    400 
    401     include "fr(latin9)"
    402 
    403     key <AE01>	{ [       ampersand,               1,         SunFA_Acute,       periodcentered ] };
    404     key <AE07>	{ [          egrave,               7,         SunFA_Grave,               Egrave ] };
    405     key <AD11>	{ [    SunFA_Circum, SunFA_Diaeresis,         SunFA_Tilde,           quoteright ] };
    406 
    407 };
    408 
    409 partial alphanumeric_keys
    410 xkb_symbols "latin9_sundeadkeys" {
    411 
    412     include "fr(latin9_Sundeadkeys)"
    413 
    414     name[Group1]="France - (Legacy) Alternative, Sun dead keys";
    415 };
    416 
    417 partial alphanumeric_keys
    418 xkb_symbols "latin9_nodeadkeys" {
    419 
    420     // Modifies the basic fr-latin9 layout to eliminate all dead keys
    421 
    422     include "fr(latin9)"
    423 
    424     name[Group1]="France - (Legacy) Alternative, eliminate dead keys";
    425 
    426     key <AE01>	{ [       ampersand,               1,          apostrophe,       periodcentered ] };
    427     key <AE07>	{ [          egrave,               7,               grave,               Egrave ] };
    428     key <AE12>	{ [           equal,            plus,          braceright         	        ] };
    429     key <AD11>	{ [	asciicircum,  	   diaeresis,          asciitilde,           quoteright ] };
    430 };
    431 
    432 // Bpo:Improved ergonomic french keymap using Dvorak method.
    433 // Built by community on 'Dvorak Fr' mailing list:
    434 // dvorak-fr (a] gpl.insa-lyon.fr and on its wiki: http://gpl.insa-lyon.fr/Dvorak-Fr/ .
    435 // XOrg integration in 2006 by Frdric Boiteux <fboiteux @ free.fr>
    436 //
    437 // Bpo layout (6.2.1.1 version) for a pc105 keyboard (french):
    438 // 
    439 //  S A   S = Shift,  A = AltGr + Shift
    440 //  s a   s = normal, a = AltGr
    441 // 
    442 //
    443 // 
    444 //  $    1   2   3   4   5   6    7    8    9    0    ^         Retour
    445 //  @ #  _ {  " }   <   >  ( [  ) ]  +   -   *   /   =   %     arrire
    446 // 
    447 //         B       P   O    `      V    D   L    F    J    Z   Entre 
    448 // Tab    b |   &  p   o    `      v    d   l   f   j    z         
    449 //       
    450 //          A   U   I   E    ?    C   T   S    N    R    M    !         
    451 // Maj     a   u   i   e   ,   c   t   s   n    r   m           
    452 // 
    453 //                H    Y    :   K    ;    Q    G    X    W                
    454 // Shift   /   ~  h !  y   . \  k    '    q    g    x    w   Shift       
    455 // 
    456 //                        Espace inscable                                    
    457 // Ctrl   Meta   Alt      Espace                         AltGr Menu   Ctrl   
    458 // 
    459 partial alphanumeric_keys
    460 xkb_symbols "bepo" {
    461 
    462     include "keypad(oss)"
    463 
    464     name[Group1]= "France - Bepo, ergonomic, Dvorak way";
    465 
    466     // First row
    467     key <TLDE> { [              at,       dollar,     numbersign                 ] }; // @ $ #
    468     key <AE01> { [      underscore,            1,      braceleft,    onesuperior ] }; // _ 1 { 
    469     key <AE02> { [        quotedbl,            2,     braceright,    twosuperior ] }; // " 2 } 
    470     key <AE03> { [   guillemotleft,            3,           less,  threesuperior ] }; //  3 < 
    471     key <AE04> { [  guillemotright,            4,        greater,         degree ] }; //  4 > 
    472     key <AE05> { [       parenleft,            5,    bracketleft, dead_abovering ] }; // ( 5 [ 
    473     key <AE06> { [      parenright,            6,   bracketright                 ] }; // ) 6 ]
    474     key <AE07> { [            plus,            7,      plusminus                 ] }; // + 7 
    475     key <AE08> { [           minus,            8,        notsign                 ] }; // - 8 
    476     key <AE09> { [        asterisk,            9,       multiply                 ] }; // * 9 
    477     key <AE10> { [           slash,            0,       division                 ] }; // / 0 
    478     key <AE11> { [           equal,  asciicircum,         macron                 ] }; // = ^ 
    479     key <AE12> { [         percent,           mu                                 ] }; // % 
    480 
    481     // Second row
    482     key <AD01> { [               b,            B,            bar                 ] }; // b B |
    483     key <AD02> { [          eacute,       Eacute,      ampersand,     dead_acute ] }; //   & 
    484     key <AD03> { [               p,            P,        section,      paragraph ] }; // p P  
    485     key <AD04> { [               o,            O,             oe,             OE ] }; // o O  
    486     key <AD05> { [          egrave,       Egrave,          grave,     dead_grave ] }; //   ` `
    487     key <AD06> { [        ccedilla,     Ccedilla                                 ] }; //  
    488     key <AD07> { [               v,            V                                 ] }; // v V
    489     key <AD08> { [               d,            D,            eth,            ETH ] }; // d D  
    490     key <AD09> { [               l,            L,       sterling                 ] }; // l L 
    491     key <AD10> { [               f,            F,    ordfeminine                 ] }; // f F 
    492     key <AD11> { [               j,            J                                 ] }; // j J
    493     key <AD12> { [               z,            Z                                 ] }; // z Z
    494 
    495     // Third row
    496     key <AC01> { [               a,            A,             ae,             AE ] }; // a A  
    497     key <AC02> { [               u,            U,         ugrave,         Ugrave ] }; // u U  
    498     key <AC03> { [               i,            I, dead_diaeresis,     dead_caron ] }; // i I  
    499     key <AC04> { [               e,            E,       EuroSign                 ] }; // e E 
    500     key <AC05> { [           comma,     question,   questiondown                 ] }; // , ? 
    501     key <AC06> { [               c,            C,      copyright,           cent ] }; // c C  
    502     key <AC07> { [               t,            T,          thorn,          Thorn ] }; // t T  
    503     key <AC08> { [               s,            S,         ssharp                 ] }; // s S 
    504     key <AC09> { [               n,            N                                 ] }; // n N
    505     key <AC10> { [               r,            R,     registered                 ] }; // r R 
    506     key <AC11> { [               m,            M,      masculine                 ] }; // m M 
    507     key <BKSL> { [ dead_circumflex,       exclam,     exclamdown                 ] }; // ^ ! 
    508 
    509     // Fourth row
    510     key <LSGT> { [     ecircumflex,       ugrave,          slash                 ] }; //   /
    511     key <AB01> { [          agrave,       Agrave,     asciitilde,     dead_tilde ] }; //   ~ ~
    512     key <AB02> { [               h,            H,         exclam                 ] }; // h H !
    513     key <AB03> { [               y,            Y,            yen                 ] }; // y Y 
    514     key <AB04> { [          period,        colon,      backslash, periodcentered ] }; // . : \ 
    515     key <AB05> { [               k,            K                                 ] }; // k K
    516     key <AB06> { [      apostrophe,    semicolon                                 ] }; // ' ;
    517     key <AB07> { [               q,            Q,         oslash,       Ooblique ] }; // q Q  
    518     key <AB08> { [               g,            G                                 ] }; // g G
    519     key <AB09> { [               x,            X                                 ] }; // x X
    520     key <AB10> { [               w,            W                                 ] }; // w W
    521 
    522     key <SPCE> { [           space, nobreakspace,          space,          space ] }; //  (espace inscable)  
    523 
    524     include "level3(ralt_switch)"
    525 };
    526 
    527 partial alphanumeric_keys
    528 xkb_symbols "bepo_latin9" {
    529 
    530     // Restricts the fr(bepo) layout to latin9 symbols
    531 
    532     include "keypad(oss_latin9)"
    533     include "fr(bepo)"
    534 
    535     name[Group1]="France - Bepo, ergonomic, Dvorak way, latin-9 only";
    536 
    537     // at now, no difference (oss keypad excepted), but will change !
    538 };
    539 
    540 
    541 // Keymap Dvorak pour le Franais
    542 // par Josselin Mouette <josselin.mouette (a] ens-lyon.org>.
    543 
    544 partial alphanumeric_keys
    545 xkb_symbols "dvorak" {
    546 
    547     name[Group1]= "France - (Legacy) Dvorak";
    548 
    549     key <TLDE>  { [         oe,       OE,              ae,             AE ] };
    550 
    551     key <AE01>  { [      slash,        1,       ampersand,    onesuperior ] };
    552     key <AE02>  { [       plus,        2,      asciitilde,    twosuperior ] };
    553     key <AE03>  { [      minus,        3,      numbersign,  threesuperior ] };
    554     key <AE04>  { [   asterisk,        4,            less,  guillemotleft ] };
    555     key <AE05>  { [      equal,        5,         greater, guillemotright ] };
    556     key <AE06>  { [  backslash,        6,              at,        notsign ] };
    557     key <AE07>  { [  parenleft,        7, dead_circumflex,       multiply ] };
    558     key <AE08>  { [      grave,        8,      dead_grave,       division ] };
    559     key <AE09>  { [ parenright,        9,     asciicircum,      plusminus ] };
    560     key <AE10>  { [   quotedbl,        0,  dead_diaeresis, dead_diaeresis ] };
    561     key <AE11>  { [bracketleft,   braceleft,          bar,         degree ] };
    562     key <AE12>  { [bracketright, braceright,      percent,        percent ] };
    563 
    564     key <AD01>  { [      colon, question,        question,   questiondown ] };
    565     key <AD02>  { [     agrave,   Agrave,           aring,          Aring ] };
    566     key <AD03>  { [     eacute,   Eacute,        EuroSign,           cent ] };
    567     key <AD04>  { [          g,        G,          oslash,       Ooblique ] };
    568     key <AD05>  { [     period,   exclam,  periodcentered,     exclamdown ] };
    569     key <AD06>  { [          h,        H,             eth,            ETH ] };
    570     key <AD07>  { [          v,        V              ] };
    571     key <AD08>  { [          c,        C,       copyright,     registered ] };
    572     key <AD09>  { [          m,        M,              mu,             mu ] };
    573     key <AD10>  { [          k,        K,          dollar,         dollar ] };
    574     key <AD11>  { [     egrave,   Egrave,        sterling,       sterling ] };
    575     key <AD12>  { [          z,        Z,             yen,            yen ] };
    576 
    577     key <AC01>  { [          o,        O,     ocircumflex,    Ocircumflex ] };
    578     key <AC02>  { [          a,        A,     acircumflex,    Acircumflex ] };
    579     key <AC03>  { [          u,        U,     ucircumflex,    Ucircumflex ] };
    580     key <AC04>  { [          e,        E,     ecircumflex,    Ecircumflex ] };
    581     key <AC05>  { [          b,        B,          ssharp,         ssharp ] };
    582     key <AC06>  { [          f,        F      ] };
    583     key <AC07>  { [          s,        S      ] };
    584     key <AC08>  { [          t,        T,           thorn,          THORN ] };
    585     key <AC09>  { [          n,        N,          ntilde,         Ntilde ] };
    586     key <AC10>  { [          d,        D,         section,        section ] };
    587     key <AC11>  { [          w,        W,       paragraph,      paragraph ] };
    588     key <BKSL>  { [     ugrave,   Ugrave,       masculine,    ordfeminine ] };
    589 
    590     key <AB01>  { [ apostrophe, underscore,    dead_acute,         macron ] };
    591     key <AB02>  { [          q,        Q,   guillemotleft,  guillemotleft ] };
    592     key <AB03>  { [     comma, semicolon,  guillemotright, guillemotright ] };
    593     key <AB04>  { [          i,        I,     icircumflex,    Icircumflex ] };
    594     key <AB05>  { [          y,        Y,      ydiaeresis,     Ydiaeresis ] };
    595     key <AB06>  { [          x,        X,      ediaeresis,     Ediaeresis ] };
    596     key <AB07>  { [          r,        R,      udiaeresis,     Udiaeresis ] };
    597     key <AB08>  { [          l,        L,      adiaeresis,     Adiaeresis ] };
    598     key <AB09>  { [          p,        P,      odiaeresis,     Odiaeresis ] };
    599     key <AB10>  { [          j,        J,      idiaeresis,     Idiaeresis ] };
    600 
    601     key <SPCE>  { [      space,    space,    nobreakspace,   nobreakspace ] };
    602     key <LSGT>  { [   ccedilla, Ccedilla      ] };
    603 
    604     include "level3(ralt_switch)"
    605 };
    606 
    607 // Marc.Shapiro (a] inria.fr 19-sep-1998
    608 // modifications : Etienne Herlent <eherlent (a] linux-france.org> june 2000
    609 // adapted to the new input layer :
    610 //        Martin Costabel <costabel (a] wanadoo.fr> 3-jan-2001
    611 // adapted for Latin9 alphabet (ISO-8859-15): 
    612 //        Etienne Herlent <eherlent (a] linux-france.org> march 2005
    613 
    614 // This map is an almost-complete mapping of the standard French
    615 // MacIntosh keyboard under Xwindows.  I tried to remain as faithful
    616 // as possible to the Mac meaning of each key.	I did this entirely by
    617 // hand and by intuition, relying on the Clavier (Keyboard?) Desktop
    618 // Accessory for the Mac meaning of keys, and on reading keysymdef.h
    619 // to intuit the corresponding X names.	 Lacking proper documentation,
    620 // I may have made some mistakes.
    621 
    622 // Entries marked CHECK are particularly uncertain
    623 
    624 // Entries marked MISSING mark Mac characters for which I was unable
    625 // to find a corresponding keysym.  (Some for sure don't: e.g. the
    626 // Apple mark and the oe/OE character; others I may have simply not
    627 // found.)
    628 
    629 // Copied from macintosh_vndr/fr
    630 partial alphanumeric_keys
    631 xkb_symbols "mac" {
    632 
    633     name[Group1]= "France - Macintosh";
    634 
    635     // Alphanumeric section
    636     key <TLDE> {	[          at,     numbersign, periodcentered,  Ydiaeresis	]	}; // MISSING: Ydiaeresis; eherlent : ok in Latin9
    637     key <AE01> {	[   ampersand,    1,   VoidSymbol,    dead_acute	]	}; // MISSING: Apple
    638     key <AE02> {	[      eacute,    2,   ediaeresis,        Eacute	]	};
    639     key <AE03> {	[    quotedbl,    3,   VoidSymbol,    VoidSymbol	] 	}; // CHECK all quotemarks
    640     key <AE04> {	[  apostrophe,    4,   VoidSymbol,    VoidSymbol	] 	};
    641     key <AE05> {	[   parenleft,    5,    braceleft,   bracketleft	]	};
    642  // CHECK section
    643     key <AE06> {	[     section,    6,    paragraph,         aring	]	};
    644     key <AE07> {	[      egrave,    7, guillemotleft, guillemotright	]	};
    645     key <AE08> {	[      exclam,    8,   exclamdown,   Ucircumflex	]	};
    646     key <AE09> {	[    ccedilla,    9,     Ccedilla,        Aacute	]	};
    647     key <AE10> {	[      agrave,    0,       oslash,    VoidSymbol	]	}; // MISSING: Oslash
    648     key <AE11> {	[  parenright, degree, braceright,  bracketright	]	};
    649     key <AE12> {	[       minus, underscore, emdash,        endash	]	}; // CHECK dashes
    650 
    651     key <AD01> {	[           a,  A,           ae,          AE	]	};
    652     key <AD02> {	[           z,  Z,  Acircumflex,       Aring		]	};
    653     key <AD03> {	[           e,  E,  ecircumflex, Ecircumflex	]	};
    654     key <AD04> {	[           r,  R,   registered,    currency	]	};
    655     key <AD05> {	[           t,  T,   VoidSymbol,  VoidSymbol	]	};
    656     key <AD06> {	[           y,  Y,       Uacute,  Ydiaeresis	]	}; // MISSING: Ydiaeresis; eherlent : ok in Latin9
    657     key <AD07> {	[           u,  U,   VoidSymbol, ordfeminine	]	}; // MISSING: ordmasculine?
    658     key <AD08> {	[           i,  I,  icircumflex,  idiaeresis	]	};
    659     key <AD09> {	[           o,  O,           oe,          OE      	]	}; // MISSING: oe, OE lacking in Latin1; eherlent ok in Latin9
    660     key <AD10> {	[           p,  P,   VoidSymbol,  VoidSymbol	]	};
    661     key <AD11> {	[dead_circumflex,dead_diaeresis, ocircumflex, Ocircumflex	]	};
    662     key <AD12> {	[      dollar, asterisk,   EuroSign, yen		]	}; // eherlent : EuroSign in Latin9
    663 
    664     key <AC01> {	[         q, Q, acircumflex,         Agrave		]	};
    665     key <AC02> {	[         s, S,      Ograve,     VoidSymbol	]	};
    666     key <AC03> {	[         d, D,  VoidSymbol,     VoidSymbol	]	};
    667     key <AC04> {	[         f, F,  VoidSymbol, periodcentered	]	}; // MISSING: oblong script f??
    668     key <AC05> {	[         g, G,  VoidSymbol,     VoidSymbol	]	}; // MISSING: kerned fi, fl
    669     key <AC06> {	[         h, H,      Igrave,    Icircumflex	]	};
    670     key <AC07> {	[         j, J,  Idiaeresis,         Iacute	]	};
    671     key <AC08> {	[         k, K,      Egrave,     Ediaeresis	]	};
    672     key <AC09> {	[         l, L,     notsign,            bar	]	};
    673     key <AC10> {	[         m, M,          mu,         Oacute	]	};
    674     key <AC11> {	[    ugrave,percent, Ugrave,    ucircumflex	]	}; // MISSING: per-mille
    675     key <BKSL> {	[ dead_grave, sterling,  at,     numbersign	]	};
    676 
    677     key <LSGT> {	[      less, greater, VoidSymbol, VoidSymbol	]	};
    678     key <AB01> {	[         w, W, VoidSymbol,   VoidSymbol	]	};	// MISSING: half-guillemot (single angle bracket)
    679     key <AB02> {	[         x, X, VoidSymbol,   VoidSymbol	]	}; // CHECK similarequal; MISSING: extra-slanted slash
    680     key <AB03> {	[         c, C,  copyright,         cent	]	};
    681     key <AB04> {	[         v, V,    diamond,  leftradical	]	}; // CHECK diamond, leftradical
    682     key <AB05> {	[         b, B,     ssharp,   VoidSymbol	]	}; // CHECK: Greek_beta or ssharp?; MISSING: oblong script s
    683     key <AB06> {	[         n, N,  dead_tilde,  asciitilde	]	};
    684     key <AB07> {	[     comma,  question, VoidSymbol,  questiondown	]	};
    685     key <AB08> {	[ semicolon,  period, VoidSymbol,  periodcentered	]	};
    686     key <AB09> {	[     colon,  slash,   division,        backslash	]	};
    687     key <AB10> {	[     equal,   plus, VoidSymbol,        plusminus	]	};
    688 
    689     key <SPCE> {	[     space,  space, nobreakspace,   nobreakspace	]	};
    690     // End alphanumeric section
    691 
    692     key <KPDL> {	[  comma,KP_Decimal	]	};
    693 
    694     include "level3(ralt_switch)"
    695 };
    696 
    697 partial alphanumeric_keys
    698 xkb_symbols "geo" {
    699     include "ge(basic)"
    700 
    701     name[Group1]= "France - Georgian AZERTY Tskapo";
    702 
    703     key <TLDE> { [ exclam, noSymbol ] };
    704     key <AE01> { [ 0x0100201e, 1 ] };
    705     key <AE02> { [ 0x01002116, 2 ] };
    706     key <AE03> { [ percent, 3    ] };
    707     key <AE04> { [ parenleft, 4  ] };
    708     key <AE05> { [ colon, 5      ] };
    709     key <AE06> { [ semicolon, 6  ] };
    710     key <AE07> { [ question, 7   ] };
    711     key <AE08> { [ 0x01002116, 8 ] };
    712     key <AE09> { [ degree, 9     ] };
    713     key <AE10> { [ parenright, 0 ] };
    714     key <AE11> { [ minus, underscore, 0x01002014 ] };
    715     key <AE12> { [ less, greater ] };
    716 
    717     key <AD01> { [ 0x010010d0,  0x010010fa     ] };
    718     key <AD02> { [ 0x010010d6,  Z              ] };
    719     key <AD03> { [ 0x010010d4,  E, 0x010010f1  ] };
    720     key <AD04> { [ 0x010010e0,  0x010000ae     ] };
    721     key <AD05> { [ 0x010010e2,  T              ] };
    722     key <AD06> { [ 0x010010e7,  0x010010f8     ] };
    723     key <AD07> { [ 0x010010e3,  U              ] };
    724     key <AD08> { [ 0x010010d8,  0x010010f2     ] };
    725     key <AD09> { [ 0x010010dd,  O              ] };
    726     key <AD10> { [ 0x010010de,  P              ] };
    727     key <AD11> { [ 0x010010d7,  T              ] };
    728     key <AD12> { [ 0x010010eb,  Z              ] };
    729 
    730     key <AC01> { [ 0x010010e5,  Q              ] };
    731     key <AC02> { [ 0x010010e1,  S              ] };
    732     key <AC03> { [ 0x010010d3,  D              ] };
    733     key <AC04> { [ 0x010010e4,  0x010010f6     ] };
    734     key <AC05> { [ 0x010010d2,  0x010010f9     ] };
    735     key <AC06> { [ 0x010010f0,  0x010010f5     ] };
    736     key <AC07> { [ 0x010010ef,  0x010010f7     ] };
    737     key <AC08> { [ 0x010010d9,  K              ] };
    738     key <AC09> { [ 0x010010da,  L              ] };
    739     key <AC10> { [ 0x010010db,  M              ] };
    740     key <AC11> { [ 0x010010df,  J              ] };
    741     key <BKSL> { [ 0x010010e9,  0x010000a9     ] };
    742 
    743     key <LSGT> { [ guillemotleft,guillemotright ] };
    744     key <AB01> { [ 0x010010ec,  W               ] };
    745     key <AB02> { [ 0x010010ee,  0x010010f4      ] };
    746     key <AB03> { [ 0x010010ea,  0x010000a9      ] };
    747     key <AB04> { [ 0x010010d5,  0x010010f3      ] };
    748     key <AB05> { [ 0x010010d1,  B               ] };
    749     key <AB06> { [ 0x010010dc,  0x010010fc      ] };
    750     key <AB07> { [ comma,       0x01002014      ] };
    751     key <AB08> { [ 0x010010e8,  S               ] };
    752     key <AB09> { [ 0x010010e6,  noSymbol        ] };
    753     key <AB10> { [ 0x010010ed,  noSymbol        ] };
    754 
    755 };
    756 
    757