Home | History | Annotate | Line # | Download | only in symbols
fr revision 1.1.1.7
      1 // based on a keyboard map from an 'xkb/symbols/fr' file
      2 
      3 partial default alphanumeric_keys
      4 xkb_symbols "basic" {
      5 
      6     include "latin"
      7 
      8     name[Group1]="French";
      9 
     10     key <AE01>	{ [ ampersand,          1,  onesuperior,   exclamdown ]	};
     11     key <AE02>	{ [    eacute,          2,   asciitilde,    oneeighth ]	};
     12     key <AE03>	{ [  quotedbl,          3,   numbersign,     sterling ]	};
     13     key <AE04>	{ [apostrophe,          4,    braceleft,       dollar ]	};
     14     key <AE05>	{ [ parenleft,          5,  bracketleft, threeeighths ]	};
     15     key <AE06>	{ [     minus,          6,          bar,  fiveeighths ]	};
     16     key <AE07>	{ [    egrave,          7,        grave, seveneighths ]	};
     17     key <AE08>	{ [underscore,          8,    backslash,    trademark ]	};
     18     key <AE09>	{ [  ccedilla,          9,  asciicircum,    plusminus ]	};
     19     key <AE10>	{ [    agrave,          0,           at,       degree ]	};
     20     key <AE11>	{ [parenright,     degree, bracketright, questiondown ]	};
     21     key <AE12>	{ [     equal,       plus,   braceright,  dead_ogonek ]	};
     22 
     23     key <AD01>	{ [         a,          A,           ae,           AE ]	};
     24     key <AD02>	{ [         z,          Z, guillemotleft,        less ]	};
     25     key <AD03>	{ [         e,          E,     EuroSign,         cent ]	};
     26     key <AD11>	{ [dead_circumflex, dead_diaeresis, dead_diaeresis, dead_abovering ] };
     27     key <AD12>	{ [    dollar,   sterling,     currency,  dead_macron ]	};
     28 
     29     key <AC01>	{ [         q,          Q,           at,  Greek_OMEGA ]	};
     30     key <AC10>	{ [         m,          M,           mu,    masculine ]	};
     31     key <AC11>	{ [    ugrave,    percent, dead_circumflex, dead_caron]	};
     32     key <TLDE>	{ [twosuperior, asciitilde,     notsign,      notsign ]	};
     33 
     34     key <BKSL>	{ [  asterisk,         mu,   dead_grave,   dead_breve ]	};
     35     key <AB01>	{ [         w,          W,      lstroke,      Lstroke ]	};
     36     key <AB07>	{ [     comma,   question,   dead_acute, dead_doubleacute ] };
     37     key <AB08>	{ [ semicolon,     period, horizconnector,   multiply ]	};
     38     key <AB09>	{ [     colon,      slash, periodcentered,   division ]	};
     39     key <AB10>	{ [    exclam,    section, dead_belowdot, dead_abovedot ] };
     40 
     41     include "level3(ralt_switch)"
     42 };
     43 
     44 partial alphanumeric_keys
     45 xkb_symbols "olpc" {
     46     // Contact: Sayamindu Dasgupta <sayamindu (a] laptop.org>
     47     include "fr(basic)"
     48 
     49     name[Group1]="French";
     50 
     51     key <AD02>	{ [ z,  Z,  VoidSymbol, guillemotleft ]	};
     52 
     53     key <AC02>	{ [ s,  S,  VoidSymbol, ssharp ] };
     54 
     55     key <AB02>	{ [  x,  X,  VoidSymbol,     guillemotright ] };
     56 
     57     key <I219>  { [ less, greater ] };
     58 };
     59 
     60 partial alphanumeric_keys
     61 xkb_symbols "Sundeadkeys" {
     62 
     63     // Modifies the basic French layout to use the Sun dead keys
     64 
     65     include "fr(basic)"
     66 
     67     key <AD11>	{ [dead_circumflex, dead_diaeresis ]	};
     68     key <AB07>	{ [comma,   question,  dead_acute, dead_doubleacute ]	};
     69 };
     70 
     71 partial alphanumeric_keys
     72 xkb_symbols "sundeadkeys" {
     73     include "fr(Sundeadkeys)"
     74 
     75     name[Group1]="French (Sun dead keys)";
     76 };
     77 
     78 partial alphanumeric_keys
     79 xkb_symbols "nodeadkeys" {
     80 
     81     // Modifies the basic French layout to eliminate all dead keys
     82 
     83     include "fr(basic)"
     84 
     85     name[Group1]="French (eliminate dead keys)";
     86 
     87     key <AE12>	{ [     equal,       plus,   braceright,       ogonek ]	};
     88     key <AD11>	{ [asciicircum,  diaeresis ]	};
     89     key <AD12>	{ [    dollar,   sterling,     currency,       macron ]	};
     90     key <AC11>	{ [    ugrave,    percent,  asciicircum,        caron ]	};
     91     key <BKSL>	{ [  asterisk,         mu,        grave,        breve ]	};
     92     key <AB07>	{ [     comma,   question,        acute,  doubleacute ]	};
     93     key <AB10>	{ [    exclam,    section, dead_belowdot,    abovedot ]	};
     94 };
     95 
     96 
     97 // Unicode French derivative
     98 // Loose refactoring of the historic Linux French keyboard layout
     99 //
    100 // Copyright  2006-2008 Nicolas Mailhot <nicolas.mailhot @ laposte.net>
    101 //
    102 // Credits (fr-latin1, fr-latin0, fr-latin9)
    103 //    199x-1996 Ren Cougnenc 
    104 //    1997-2002 Guylhem Aznar <clavier @ externe.net>
    105 //    2003-2006 Nicolas Mailhot <nicolas.mailhot @ laposte.net>
    106 //
    107 // 
    108 //     1   2   3   4   5   6   7   8   9   0      +    Retour
    109 //     &    ~  " #  ' {  ( [  - |   `  _ \   ^   @  ) ]  = }   arrire
    110 // 
    111 //         A   Z   E   R   T   Y   U   I   O   P        Entre 
    112 // Tab    a   z   e   r   t   y   u   i   o   p   ^ ~  $        
    113 //       
    114 //          Q   S   D   F   G   H   J   K   L   M   %           
    115 // Maj     q   s   d   f   g   h   j   k   l   m    '  * `       
    116 // 
    117 //         >   W   X   C   V   B   N   ?   . .  /                  
    118 // Shift  <   w   x   c   v   b   n   ,   ;   :   !  Shift       
    119 // 
    120 //                                Espace fine inscable                       
    121 // Ctrl   Meta   Alt      Espace       Espace inscable  AltGr Menu   Ctrl   
    122 // 
    123 partial alphanumeric_keys
    124 xkb_symbols "oss" {
    125 
    126     include "latin"
    127     include "level3(ralt_switch)"
    128     include "nbsp(level4nl)"
    129     include "keypad(oss)"
    130 
    131     name[Group1]="French (alternative)";
    132 
    133     // First row
    134     key <TLDE>	{ [      twosuperior,    threesuperior,          onesuperior,          dead_cedilla ] }; //     
    135     key <AE01>	{ [        ampersand,                1,           dead_caron,           dead_ogonek ] }; // & 1  
    136     key <AE02>	{ [           eacute,                2,           asciitilde,                Eacute ] }; //  2 ~ 
    137     key <AE03>	{ [         quotedbl,                3,           numbersign,            dead_breve ] }; // " 3 # 
    138     key <AE04>	{ [       apostrophe,                4,            braceleft,             0x1002014 ] }; // ' 4 {  (tiret cadratin)
    139     key <AE05>	{ [        parenleft,                5,          bracketleft,             0x1002013 ] }; // ( 5 [  (tiret demi-cadratin)
    140     key <AE06>	{ [            minus,                6,                  bar,             0x1002011 ] }; // - 6 |  (tiret inscable)
    141     key <AE07>	{ [           egrave,                7,                grave,                Egrave ] }; //  7 ` 
    142     key <AE08>	{ [       underscore,                8,            backslash,             trademark ] }; // _ 8 \ 
    143     key <AE09>	{ [         ccedilla,                9,          asciicircum,              Ccedilla ] }; //  9 ^ 
    144     key <AE10>	{ [           agrave,                0,                   at,                Agrave ] }; //  0 @ 
    145     key <AE11>	{ [       parenright,           degree,         bracketright,              notequal ] }; // )  ]  
    146     key <AE12>	{ [            equal,             plus,           braceright,             plusminus ] }; // = + } 
    147 
    148     // Second row
    149     key <AD01>	{ [                a,                A,                   ae,                    AE ] }; // a A  
    150     key <AD02>	{ [                z,                Z,          acircumflex,           Acircumflex ] }; // z Z  
    151     key <AD03>	{ [                e,                E,             EuroSign,                  cent ] }; // e E  
    152     key <AD04>	{ [                r,                R,          ecircumflex,           Ecircumflex ] }; // r R  
    153     key <AD05>	{ [                t,                T,                thorn,                 THORN ] }; // t T  
    154     key <AD06>	{ [                y,                Y,           ydiaeresis,            Ydiaeresis ] }; // y Y  
    155     key <AD07>	{ [                u,                U,          ucircumflex,           Ucircumflex ] }; // u U  
    156     key <AD08>	{ [                i,                I,          icircumflex,           Icircumflex ] }; // i I  
    157     key <AD09>	{ [                o,                O,                   oe,                    OE ] }; // o O  
    158     key <AD10>	{ [                p,                P,          ocircumflex,           Ocircumflex ] }; // p P  
    159     key <AD11>	{ [  dead_circumflex,   dead_diaeresis,           dead_tilde,        dead_abovering ] }; // ^   
    160     key <AD12>	{ [           dollar,         sterling,               oslash,              Ooblique ] }; // $   
    161 
    162     // Third row
    163     key <AC01>	{ [                q,                Q,           adiaeresis,            Adiaeresis ] }; // q Q  
    164     key <AC02>	{ [                s,                S,               ssharp,    doublelowquotemark ] }; // s S   
    165     key <AC03>	{ [                d,                D,           ediaeresis,            Ediaeresis ] }; // d D  
    166     key <AC04>	{ [                f,                F,  leftsinglequotemark,    singlelowquotemark ] }; // f F  
    167     key <AC05>	{ [                g,                G, rightsinglequotemark,                   yen ] }; // g G  
    168     key <AC06>	{ [                h,                H,                  eth,                   ETH ] }; // h H  
    169     key <AC07>	{ [                j,                J,           udiaeresis,            Udiaeresis ] }; // j J  
    170     key <AC08>	{ [                k,                K,           idiaeresis,            Idiaeresis ] }; // k K  
    171     key <AC09>	{ [                l,                L,            0x1000140,             0x100013F ] }; // l L  
    172     key <AC10>	{ [                m,                M,           odiaeresis,            Odiaeresis ] }; // m M  
    173     key <AC11>	{ [           ugrave,          percent,           dead_acute,                Ugrave ] }; //  % ' 
    174     key <BKSL>	{ [         asterisk,               mu,           dead_grave,           dead_macron ] }; // *  ` 
    175 
    176     // Fourth row
    177     key <LSGT>  { [             less,          greater,        lessthanequal,      greaterthanequal ] }; // < >  
    178     key <AB01>  { [                w,                W,        guillemotleft,   leftdoublequotemark ] }; // w W  
    179     key <AB02>  { [                x,                X,       guillemotright,  rightdoublequotemark ] }; // x X  
    180     key <AB03>  { [                c,                C,            copyright,            registered ] }; // c C  
    181     key <AB04>  { [                v,                V,            0x100202F,             leftarrow ] }; // v V   (espace fine inscable)
    182     key <AB05>  { [                b,                B,            downarrow,               uparrow ] }; // b B  
    183     key <AB06>  { [                n,                N,              notsign,            rightarrow ] }; // n N  
    184     key <AB07>  { [            comma,         question,         questiondown,             0x1002026 ] }; // , ?  
    185     key <AB08>  { [        semicolon,           period,             multiply,             0x10022C5 ] }; // ; .  
    186     key <AB09>  { [            colon,            slash,             division,             0x1002215 ] }; // : /  
    187     key <AB10>  { [           exclam,          section,           exclamdown,             0x1002212 ] }; // !   
    188 };
    189 
    190 partial alphanumeric_keys
    191 xkb_symbols "oss_latin9" {
    192 
    193     // Restricts the fr(oss) layout to latin9 symbols
    194 
    195     include "fr(oss)"
    196     include "keypad(oss_latin9)"
    197 
    198     name[Group1]="French (alternative, latin-9 only)";
    199 
    200     // First row
    201     key <AE01>	{ [        ampersand,                1,           dead_caron,          dead_cedilla ] }; // & 1  
    202     key <AE03>	{ [         quotedbl,                3,           numbersign,            dead_tilde ] }; // " 3 # ~
    203     key <AE04>	{ [       apostrophe,                4,            braceleft,            underscore ] }; // ' 4 { _
    204     key <AE05>	{ [        parenleft,                5,          bracketleft,                 minus ] }; // ( 5 [ -
    205     key <AE06>  { [            minus,                6,                  bar,                 minus ] }; // - 6 | -
    206     key <AE08>  { [       underscore,                8,            backslash,             backslash ] }; // _ 8 \ \
    207     key <AE11>	{ [       parenright,           degree,         bracketright,                 equal ] }; // )  ] =
    208 
    209     // Third row
    210     key <AC02>	{ [                s,                S,               ssharp,         guillemotleft ] }; // s S   
    211     key <AC04>	{ [                f,                F,           apostrophe,            apostrophe ] }; // f F ' '
    212     key <AC05>	{ [                g,                G,           apostrophe,                   yen ] }; // g G ' 
    213     key <AC09>  { [                l,                L,       periodcentered,        periodcentered ] }; // l L  
    214     key <BKSL>	{ [         asterisk,               mu,           dead_grave,       dead_circumflex ] }; // *  ` ^ 
    215 
    216     // Fourth row
    217     key <LSGT>  { [             less,          greater,                 less,               greater ] }; // < > < >
    218     key <AB01>  { [                w,                W,        guillemotleft,         guillemotleft ] }; // w W  
    219     key <AB02>  { [                x,                X,       guillemotright,        guillemotright ] }; // x X  
    220     key <AB04>  { [                v,                V,         nobreakspace,                  less ] }; // v V  < (espace inscable)
    221     key <AB05>  { [                b,                B,                minus,           asciicircum ] }; // b B - ^
    222     key <AB06>  { [                n,                N,              notsign,               greater ] }; // n N  >
    223     key <AB07>  { [            comma,         question,         questiondown,                period ] }; // , ?  .
    224     key <AB08>  { [        semicolon,           period,             multiply,        periodcentered ] }; // ; .  
    225     key <AB09>  { [            colon,            slash,             division,                 slash ] }; // : /  /
    226     key <AB10>  { [           exclam,          section,           exclamdown,                 minus ] }; // !   -
    227 };
    228 
    229 partial alphanumeric_keys
    230 xkb_symbols "oss_Sundeadkeys" {
    231 
    232     // Modifies the basic fr(oss) layout to use the Sun dead keys
    233 
    234     include "fr(oss)"
    235 
    236     // First row
    237     key <TLDE>	{ [      twosuperior,    threesuperior,          onesuperior,         dead_cedilla ] }; //     
    238 
    239     // Second row
    240     key <AD11>	{ [     dead_circumflex,  dead_diaeresis,          dead_tilde,        dead_abovering ] }; // ^   
    241 
    242     //Third row
    243     key <AC11>	{ [           ugrave,          percent,          dead_acute,                Ugrave ] }; //  % ' 
    244     key <BKSL>	{ [         asterisk,               mu,          dead_grave,           dead_macron ] }; // *  ` 
    245 };
    246 
    247 partial alphanumeric_keys
    248 xkb_symbols "oss_sundeadkeys" {
    249 
    250     include "fr(oss_Sundeadkeys)"
    251 
    252     name[Group1]="French (alternative, Sun dead keys)";
    253 };
    254 
    255 partial alphanumeric_keys
    256 xkb_symbols "oss_nodeadkeys" {
    257 
    258     // Modifies the basic fr(oss) layout to eliminate all dead keys
    259 
    260     include "fr(oss)"
    261 
    262     name[Group1]="French (alternative, eliminate dead keys)";
    263 
    264     key <TLDE>	{ [      twosuperior,    threesuperior,          onesuperior,               cedilla ] }; //     
    265     key <AE01>	{ [        ampersand,                1,                caron,                ogonek ] }; // & 1  
    266     key <AE03>	{ [         quotedbl,                3,           numbersign,                 breve ] }; // " 3 # 
    267 
    268     // Second row
    269     key <AD11>	{ [  asciicircum,   diaeresis,           asciitilde,                 Aring ] }; // ^   
    270     key <AC11>	{ [           ugrave,          percent,                acute,                Ugrave ] }; //  % ' 
    271     key <BKSL>	{ [         asterisk,               mu,                grave,                macron ] }; // *  ` 
    272 };
    273 
    274 
    275 // Historic Linux French keyboard layout (fr-latin9)
    276 // Copyright (c) 199x, 2002 Rene Cougnenc (original work)
    277 //                          Guylhem Aznar <clavier @ externe.net> (maintainer)
    278 //                          Nicolas Mailhot <Nicolas.Mailhot @ laposte.net>
    279 //                              (XFree86 submission)
    280 //
    281 // This layout has long been distributed and refined outside official channels.
    282 // To this day it remains more feature-rich and popular than the 'fr' layout.
    283 //
    284 // This file is derived from an original version by Guylhem Aznar.  The
    285 // original version is always available from:
    286 // http://en.tldp.org/HOWTO/Francophones-HOWTO.html
    287 // and is distributed under a GPL license.
    288 //
    289 // The author has given permission for this derived version to be distributed
    290 // under the standard XFree86 license. He would like all changes to this
    291 // version be send to him at <clavier @ externe.net> so he can sync the
    292 // identically named linux console map (kbd, linux-console) and this
    293 // fileout-of-tree GPL version.
    294 //
    295 // Now follows the keyboard design description in French.
    296 // (If you can't read it you probably have no business changing this file anyway:)
    297 //
    298 // Les accents circonflexes des principales voyelles sont obtenus avec
    299 // la touche Alt_Gr, les trmas sont obtenus par Alt_Gr + Shift.
    300 //
    301 //  ____                                     _________ _____________ _______
    302 // | S A| S = Shift,  A = AltGr + Shift     | Imprime | Arrt dfil | Pause |
    303 // | s a| s = normal, a = AltGr             |  Exec   |             | Halte |
    304 //                                         
    305 //  ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ _______
    306 // |  "| 1 | 2 | 3 ,| 4 '| 5 "| 6 || 7 | 8 | 9 | 0 |  | + | <--   |
    307 // |  "| & '|  ~| " #| ' {| ( [| - ||  `| _ \|  ^|  @| ) ]| = }|       |
    308 //  ========================================================================
    309 // | |<-  | A | Z | E | R | T | Y | U | I | O | P '| " `| $ |   , |
    310 // |  ->| | a | z | e | r | t | y | u | i | o | p | ^ ~|  | <-' |
    311 //  ===================================================================    |
    312 // |       | Q | S | D | F | G | H | J | K | L | M | % |  |    |
    313 // | MAJ   | q | s | d | f | g | h | j | k | l | m |  | * |    |
    314 //  ========================================================================
    315 // | ^   | >  | W  | X  | C  | V  | B  | N  | ?  | .  | /  |   |     ^     |
    316 // | |   | < || w | x | c | v | b | n | , | ; | : | ! |     |     |
    317 //  ========================================================================
    318 // |      |      |      |                       |       |      |     |      |
    319 // | Ctrl | Super| Alt  | Space    Nobreakspace | AltGr | Super|Menu | Ctrl |
    320 //         
    321 //
    322 //
    323 //		Si les touches mortes fonctionnent, utiliser les accents dits
    324 //		 morts , i.e. fonctionnant comme l'accent circonflexe & le
    325 //		trma des machines  crire ; sont disponibles :
    326 //
    327 // (^) : accent circonflexe,
    328 // Shift+(^) : trma,
    329 // Shift+AltGr (^) : tilde,
    330 // AltGr (1) : accent aigu,
    331 // AltGr (7) : accent grave
    332 //
    333 // Pour s'en servir, procder comme avec l'accent circonflexe & le trma
    334 // sur les vielles machines  crire :
    335 //
    336 // AltGr (1) puis e : 
    337 // Shift+AltGr (1) puis e :  ...
    338 partial alphanumeric_keys
    339 
    340 xkb_symbols "latin9" {
    341 
    342     include "latin"
    343     include "nbsp(level3)"
    344 
    345     name[Group1]="French (legacy, alternative)";
    346 
    347     key <TLDE>	{ [              oe,              OE, leftdoublequotemark, rightdoublequotemark ] };
    348     key <AE01>	{ [       ampersand,               1,          dead_acute,       periodcentered ] };
    349     key <AE02>	{ [          eacute,               2,          asciitilde,               Eacute ] };
    350     key <AE03>	{ [        quotedbl,               3,          numbersign,              cedilla ] };
    351     key <AE04>	{ [      apostrophe,               4,           braceleft,                acute ] };
    352     key <AE05>	{ [       parenleft,               5,         bracketleft,            diaeresis ] };
    353     key <AE06>	{ [           minus,               6,                 bar,            brokenbar ] };
    354     key <AE07>	{ [          egrave,               7,          dead_grave,               Egrave ] };
    355     key <AE08>	{ [      underscore,               8,           backslash,               macron ] };
    356     key <AE09>	{ [        ccedilla,               9,         asciicircum,             Ccedilla ] };
    357     key <AE10>	{ [          agrave,               0,                  at,               Agrave ] };
    358     key <AE11>	{ [      parenright,          degree,        bracketright,           ydiaeresis ] };
    359     key <AE12>	{ [           equal,            plus,          braceright,       dead_abovering ] };
    360 
    361     key <AD01>	{ [               a,               A,         acircumflex,           adiaeresis ] };
    362     key <AD02>	{ [               z,               Z,               aring,                Aring ] };
    363     key <AD03>	{ [               e,               E,            EuroSign,                 cent ] };
    364     key <AD04>	{ [               r,               R,            ccedilla,             Ccedilla ] };
    365     key <AD05>	{ [               t,               T,               thorn,                THORN ] };
    366     key <AD06>	{ [               y,               Y,              yacute,               Yacute ] };
    367     key <AD07>	{ [               u,               U,         ucircumflex,           udiaeresis ] };
    368     key <AD08>	{ [               i,               I,         icircumflex,           idiaeresis ] };
    369     key <AD09>	{ [               o,               O,         ocircumflex,           odiaeresis ] };
    370     key <AD10>	{ [               p,               P,           paragraph,            quoteleft ] };
    371     key <AD11>	{ [ dead_circumflex,  dead_diaeresis,          dead_tilde,           quoteright ] };
    372     key <AD12>	{ [          dollar,	    sterling,         ecircumflex,           ediaeresis ] };
    373 
    374     key <AC01>	{ [               q,               Q,         Acircumflex,           Adiaeresis ] };
    375     key <AC02>	{ [               s,               S,              oslash,             Ooblique ] };
    376     key <AC03>	{ [               d,               D,         Ecircumflex,           Ediaeresis ] };
    377     key <AC04>	{ [               f,               F,           plusminus,          ordfeminine ] };
    378     key <AC05>	{ [               g,               G,                  ae,                   AE ] };
    379     key <AC06>	{ [               h,               H,                 eth,                  ETH ] };
    380     key <AC07>	{ [               j,               J,         Ucircumflex,           Udiaeresis ] };
    381     key <AC08>	{ [               k,               K,         Icircumflex,           Idiaeresis ] };
    382     key <AC09>	{ [               l,               L,         Ocircumflex,           Odiaeresis ] };
    383     key <AC10>	{ [               m,               M,         onesuperior,            masculine ] };
    384     key <AC11>	{ [          ugrave,         percent,         twosuperior,               Ugrave ] };
    385     key <BKSL>  { [        asterisk,              mu,       threesuperior,                  yen ] };
    386 
    387     key <LSGT>	{ [            less,         greater,                 bar                       ] };
    388     key <AB01>	{ [               w,               W,       guillemotleft	        	] };
    389     key <AB02>	{ [               x,               X,      guillemotright                       ] };
    390     key <AB03>	{ [               c,               C,           copyright                       ] };
    391     key <AB04>	{ [               v,               V,          registered		        ] };
    392     key <AB05>	{ [               b,               B,              ssharp                       ] };
    393     key <AB06>	{ [               n,               N,             notsign                       ] };
    394     key <AB07>	{ [           comma,        question,        questiondown                       ] };
    395     key <AB08>	{ [       semicolon,          period,            multiply		        ] };
    396     key <AB09>	{ [           colon,           slash,            division                       ] };
    397     key <AB10>	{ [          exclam,         section,          exclamdown                       ] };
    398 
    399     // French uses a comma as decimal separator, but keyboards are labeled with a period
    400     // Will take effect when KP_Decimal is mapped to the locale decimal separator
    401     key <KPDL>  { [       KP_Delete,      KP_Decimal,           KP_Delete,           KP_Decimal ] };
    402 
    403     include "level3(ralt_switch)"
    404 };
    405 
    406 partial alphanumeric_keys
    407 xkb_symbols "latin9_Sundeadkeys" {
    408 
    409     // Modifies the basic fr-latin9 layout to use the Sun dead keys
    410 
    411     include "fr(latin9)"
    412 
    413     key <AE01>	{ [       ampersand,               1,         dead_acute,       periodcentered ] };
    414     key <AE07>	{ [          egrave,               7,         dead_grave,               Egrave ] };
    415     key <AD11>	{ [    dead_circumflex, dead_diaeresis,         dead_tilde,           quoteright ] };
    416 
    417 };
    418 
    419 partial alphanumeric_keys
    420 xkb_symbols "latin9_sundeadkeys" {
    421 
    422     include "fr(latin9_Sundeadkeys)"
    423 
    424     name[Group1]="French (legacy, alternative, Sun dead keys)";
    425 };
    426 
    427 partial alphanumeric_keys
    428 xkb_symbols "latin9_nodeadkeys" {
    429 
    430     // Modifies the basic fr-latin9 layout to eliminate all dead keys
    431 
    432     include "fr(latin9)"
    433 
    434     name[Group1]="French (legacy, alternative, eliminate dead keys)";
    435 
    436     key <AE01>	{ [       ampersand,               1,          apostrophe,       periodcentered ] };
    437     key <AE07>	{ [          egrave,               7,               grave,               Egrave ] };
    438     key <AE12>	{ [           equal,            plus,          braceright         	        ] };
    439     key <AD11>	{ [	asciicircum,  	   diaeresis,          asciitilde,           quoteright ] };
    440 };
    441 
    442 // Bpo:Improved ergonomic french keymap using Dvorak method.
    443 // Built by community on 'Dvorak Fr / Bpo':
    444 // see http://www.clavier-dvorak.org/wiki/ to join and help.
    445 // XOrg integration (1.0rc2 version) in 2008
    446 // by Frdric Boiteux <fboiteux at free dot fr>
    447 //
    448 // Bpo layout (1.0rc2 version) for a pc105 keyboard (french):
    449 // 
    450 //  S A   S = Shift,  A = AltGr + Shift
    451 //  s a   s = normal, a = AltGr
    452 // 
    453 //
    454 // 
    455 //  #   1   2   3   4   5   6    7   8   9   0      `    Retour
    456 //  $   "    <   >  ( [  ) ]  @ ^  +   -   /   *   =   %    arrire
    457 // 
    458 //         B      P   O    `  !    V    D   L    J   Z   W   Entre 
    459 // Tab    b |     p &  o    `     v   d   l /  j   z   w        
    460 //       
    461 //          A   U   I   E   ;   C   T   S   R   N    M    ,       
    462 // Maj     a   u   i   e   ,   c   t   s   r   n   m           
    463 // 
    464 //                 Y   X   :   K    ?   Q   G    H   F               
    465 // Shift   /   \  y {  x }  .   k ~  '   q   g   h   f  Shift       
    466 // 
    467 //                       Espace insc.   Espace insc. fin                      
    468 // Ctrl   Meta   Alt      (Espace)      _                AltGr Menu   Ctrl   
    469 // 
    470 partial alphanumeric_keys
    471 xkb_symbols "bepo" {
    472 
    473     include "level3(ralt_switch)"
    474     include "keypad(oss)"
    475 
    476     name[Group1]= "French (Bepo, ergonomic, Dvorak way)";
    477 
    478     // First row
    479     key <TLDE> { [          dollar,   numbersign,        endash,       paragraph ] }; // $ #  
    480     key <AE01> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [        quotedbl,            1,         emdash, doublelowquotemark ] }; // " 1  
    481     key <AE02> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [   guillemotleft,            2,           less,  leftdoublequotemark ] }; //  2 < 
    482     key <AE03> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [  guillemotright,            3,        greater, rightdoublequotemark ] }; //  3 > 
    483     key <AE04> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [       parenleft,            4,    bracketleft,      lessthanequal ] }; // ( 4 [ 
    484     key <AE05> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [      parenright,            5,   bracketright,   greaterthanequal ] }; // ) 5 ] 
    485     key <AE06> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [              at,            6,    asciicircum                 ] }; // @ 6 ^
    486     key <AE07> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [            plus,            7,      plusminus,        notsign ] }; // + 7  
    487     key <AE08> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [           minus,            8,          U2212,     onequarter ] }; // - 8  
    488     key <AE09> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [           slash,            9,       division,        onehalf ] }; // / 9  
    489     key <AE10> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [        asterisk,            0,       multiply,  threequarters ] }; // * 0  
    490     key <AE11> { [           equal,       degree,       notequal,        minutes ] }; // =   
    491     key <AE12> { [         percent,        grave,          U2030,        seconds ] }; // % `  
    492 
    493     // Second row
    494     key <AD01> { [               b,            B,            bar,      brokenbar ] }; // b B | 
    495     key <AD02> { [          eacute,       Eacute,     dead_acute, dead_doubleacute ] }; //    
    496     key <AD03> { [               p,            P,      ampersand,        section ] }; // p P & 
    497     key <AD04> { [               o,            O,             oe,             OE ] }; // o O  
    498     key <AD05> { [          egrave,       Egrave,     dead_grave,          grave ] }; //   ` `
    499     key <AD06> { [ dead_circumflex,       exclam,     exclamdown                 ] }; // ^ ! 
    500     key <AD07> { [               v,            V,     dead_caron                 ] }; // v V 
    501     key <AD08> { [               d,            D,            eth,            ETH ] }; // d D  
    502     key <AD09> { [               l,            L,    dead_stroke                 ] }; // l L /
    503     key <AD10> { [               j,            J,          U0133,          U0132 ] }; // j J  
    504     key <AD11> { [               z,            Z,          schwa,          SCHWA ] }; // z Z  
    505     key <AD12> { [               w,            W,     dead_breve                 ] }; // w W 
    506 
    507     // Third row
    508     key <AC01> { [               a,            A,             ae,             AE ] }; // a A  
    509     key <AC02> { [               u,            U,         ugrave,         Ugrave ] }; // u U  
    510     key <AC03> { [               i,            I, dead_diaeresis,  dead_abovedot ] }; // i I  
    511     key <AC04> { [               e,            E,       EuroSign,  dead_currency ] }; // e E  
    512     key <AC05> { [           comma,    semicolon, rightsinglequotemark, dead_horn ] }; // , ;  
    513     key <AC06> { [               c,            C,      copyright,          U017F ] }; // c C  
    514     key <AC07> { [               t,            T,          thorn,          THORN ] }; // t T  
    515     key <AC08> { [               s,            S,         ssharp,          U1E9E ] }; // s S  
    516     key <AC09> { [               r,            R,     registered,      trademark ] }; // r R  
    517     key <AC10> { [               n,            N,     dead_tilde                 ] }; // n N ~
    518     key <AC11> { [               m,            M,    dead_macron,      masculine ] }; // m M  
    519     key <BKSL> { [        ccedilla,     Ccedilla,   dead_cedilla, dead_belowcomma ] }; //    ,
    520 
    521     // Fourth row
    522     key <LSGT> { [     ecircumflex,  Ecircumflex,          slash                 ] }; //   /
    523     key <AB01> { [          agrave,       Agrave,      backslash                 ] }; //   \
    524     key <AB02> { [               y,            Y,      braceleft, leftsinglequotemark  ] }; // y Y { 
    525     key <AB03> { [               x,            X,     braceright, rightsinglequotemark ] }; // x X } 
    526     key <AB04> { [          period,        colon,       ellipsis, periodcentered ] }; // . :  
    527     key <AB05> { [               k,            K,     asciitilde                 ] }; // k K ~
    528     key <AB06> { [      apostrophe,     question,   questiondown,      dead_hook ] }; // ' ?  
    529     key <AB07> { [               q,            Q, dead_abovering,  dead_belowdot ] }; // q Q  
    530     key <AB08> { [               g,            G,             mu                 ] }; // g G 
    531     key <AB09> { [               h,            H,         dagger,   doubledagger ] }; // h H  
    532     key <AB10> { [               f,            F,    dead_ogonek,    ordfeminine ] }; // f F  
    533 
    534     key <SPCE> { [           space, nobreakspace,     underscore,          U202F ] }; //  (espace inscable) _ (espace inscable fin)
    535 };
    536 
    537 partial alphanumeric_keys
    538 xkb_symbols "bepo_latin9" {
    539 
    540     // Restricts the fr(bepo) layout to latin9 symbols
    541 
    542     include "fr(bepo)"
    543     include "keypad(oss_latin9)"
    544 
    545     name[Group1]="French (Bepo, ergonomic, Dvorak way, latin-9 only)";
    546 
    547     key <TLDE> { [          dollar,   numbersign,        dollar,       paragraph ] }; // $ # $ 
    548 
    549     key <AE01> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [        quotedbl,            1                                 ] }; // " 1
    550     key <AE02> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [   guillemotleft,            2,           less                 ] }; //  2 <
    551     key <AE03> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [  guillemotright,            3,        greater                 ] }; //  3 >
    552     key <AE04> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [       parenleft,            4,    bracketleft                 ] }; // ( 4 [
    553     key <AE05> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [      parenright,            5,   bracketright                 ] }; // ) 5 ]
    554     key <AE08> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [           minus,            8,          minus,     onequarter ] }; // - 8 - 
    555     key <AE11> { [           equal,       degree                                 ] }; // = 
    556     key <AE12> { [         percent,        grave                                 ] }; // % `
    557 
    558     key <AD01> { [               b,            B,            bar                 ] }; // b B |
    559     key <AD02> { [          eacute,       Eacute,     dead_acute                 ] }; //   
    560     key <AD10> { [               j,            J                                 ] }; // j J
    561     key <AD11> { [               z,            Z                                 ] }; // z Z
    562     key <AD12> { [               w,            W                                 ] }; // w W
    563 
    564     key <AC03> { [               i,            I, dead_diaeresis                 ] }; // i I 
    565     key <AC05> { [           comma,    semicolon,          comma,      dead_horn ] }; // , ; , 
    566     key <AC06> { [               c,            C,      copyright                 ] }; // c C 
    567     key <AC08> { [               s,            S,         ssharp                 ] }; // s S 
    568     key <AC09> { [               r,            R,     registered                 ] }; // r R 
    569     key <AC11> { [               m,            M,         macron,      masculine ] }; // m M  
    570 
    571     key <AB02> { [               y,            Y,      braceleft                 ] }; // y Y {
    572     key <AB03> { [               x,            X,     braceright                 ] }; // x X }
    573     key <AB04> { [          period,        colon                                 ] }; // . :
    574     key <AB09> { [               h,            H                                 ] }; // h H
    575     key <AB10> { [               f,            F,              f,    ordfeminine ] }; // f F   
    576 
    577     // Note: on a besoin de redfinir les niveaux 3 et 4,
    578     // donc nbsp(level2) ne suffit pas!
    579     key <SPCE> { [           space,  nobreakspace,    underscore,   nobreakspace ] }; //  (espace inscable) _ (espace inscable)
    580 };
    581 
    582 // Author   : Francis Leboutte, http://www.algo.be/ergo/dvorak-fr.html
    583 //            thanks to Fabien Cazenave for his help
    584 // Licence  : X11
    585 // Version  : 0.3
    586 
    587 // Base layer + dead AltGr key (`):
    588 // 
    589 //  *    1    2    3    4    5    6    7    8    9    0    +    %             
    590 //  _    =    /   -      \   ^    (    ` `  )    "    [    ]            
    591 // 
    592 //          ?   <    >    G    !    H    V    C   M    K    Z    &          
    593 //         :   ' $     g   .   h    v    c   m   k    z              
    594 //      
    595 //           O   A   U   E   B    F    S    T    N    D    W    #         
    596 //          o   a   u   e   b    f    s   t    n   d    w    ~         
    597 // 
    598 //           |   Q    @    I   Y    X    R    L    P    J                  
    599 //          ;   q {  , }  i   y   x    r   l    p   j                 
    600 // 
    601 //                                                                                
    602 //  ctrl   super  alt     Espace    Espace inscable   alt    super  menu   ctrl  
    603 // 
    604 
    605 // Notice the specific Caps_Lock layer:
    606 // 
    607 //  *    1    2    3    4    5    6    7    8    9    0    +    %             
    608 //                                                                           
    609 // 
    610 //               <    >                                                       
    611 //                                                                           
    612 //      
    613 //                                                                            
    614 //                                                                           
    615 // 
    616 //        /    -                                                               
    617 //                                                                           
    618 // 
    619 //                                                                                
    620 //  ctrl   super  alt     Espace    Espace inscable   alt    super  menu   ctrl  
    621 // 
    622 
    623 partial alphanumeric_keys modifier_keys
    624 xkb_symbols "dvorak" {
    625   name[Group1]="French (Dvorak)";
    626 
    627   // First row
    628   key <TLDE> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [       underscore,   asterisk                  ] };
    629   key <AE01> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [            equal,          1                  ] };
    630   key <AE02> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [            slash,          2,       plusminus ] };
    631   key <AE03> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [            minus,          3,      onequarter ] };
    632   key <AE04> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [           egrave,          4,         onehalf ] };
    633   key <AE05> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [        backslash,          5,   threequarters ] };
    634   key <AE06> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [  dead_circumflex,          6                  ] };
    635   key <AE07> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [        parenleft,          7                  ] };
    636   key <AE08> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ ISO_Level3_Latch,          8,           grave ] };
    637   key <AE09> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [       parenright,          9                  ] };
    638   key <AE10> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [         quotedbl,          0                  ] };
    639   key <AE11> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [      bracketleft,       plus                  ] };
    640   key <AE12> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [     bracketright,    percent                  ] };
    641 
    642   // Second row
    643   key <AD01> { [            colon,         question,              ae,               AE ] };
    644   key <AD02> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [       apostrophe,       less,          dollar ] };
    645   key <AD03> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [           eacute,    greater,          Eacute ] };
    646   key <AD04> { [                g,                G,        EuroSign                   ] };
    647   key <AD05> { [           period,           exclam,          degree                   ] };
    648   key <AD06> { [                h,                H                                    ] };
    649   key <AD07> { [                v,                V                                    ] };
    650   key <AD08> { [                c,                C,        ccedilla,         Ccedilla ] };
    651   key <AD09> { [                m,                M,              mu                   ] };
    652   key <AD10> { [                k,                K                                    ] };
    653   key <AD11> { [                z,                Z                                    ] };
    654   key <AD12> { [   dead_diaeresis,        ampersand                                    ] };
    655 
    656   // Third row
    657   key <AC01> { [                o,                O,          ograve,           Ograve ] };
    658   key <AC02> { [                a,                A,          agrave,           Agrave ] };
    659   key <AC03> { [                u,                U,          ugrave,           Ugrave ] };
    660   key <AC04> { [                e,                E,          egrave,           Egrave ] };
    661   key <AC05> { [                b,                B                                    ] };
    662   key <AC06> { [                f,                F                                    ] };
    663   key <AC07> { [                s,                S,   guillemotleft                   ] };
    664   key <AC08> { [                t,                T                                    ] };
    665   key <AC09> { [                n,                N,  guillemotright                   ] };
    666   key <AC10> { [                d,                D                                    ] };
    667   key <AC11> { [                w,                W                                    ] };
    668   key <BKSL> { [       asciitilde,       numbersign                                    ] };
    669 
    670   // Fourth row
    671   key <LSGT> { type[group1] = "FOUR_LEVEL_PLUS_LOCK", [       agrave, ccedilla,  Agrave, Ccedilla,   slash ] };
    672   key <AB01> { type[group1] = "FOUR_LEVEL_PLUS_LOCK", [    semicolon,      bar,      oe,       OE,   minus ] };
    673   key <AB02> { [                q,                Q,       braceleft                   ] };
    674   key <AB03> { [            comma,               at,      braceright                   ] };
    675   key <AB04> { [                i,                I,          igrave,           Igrave ] };
    676   key <AB05> { [                y,                Y,        sterling                   ] };
    677   key <AB06> { [                x,                X                                    ] };
    678   key <AB07> { [                r,                R,       masculine                   ] };
    679   key <AB08> { [                l,                L                                    ] };
    680   key <AB09> { [                p,                P,         section                   ] };
    681   key <AB10> { [                j,                J                                    ] };
    682 
    683   key <SPCE> { [            space,            space,    nobreakspace,     nobreakspace ] };
    684 };
    685 
    686 // C'WHERTY:Breton keyboard. Ar c'hlavier brezhoneg.
    687 // Copyright  2009 Dominique Pell <dominique.pelle (a] gmail.com>
    688 // Version: 0.1
    689 //
    690 // 
    691 //  S A   S = Reol = Shift,  A = ArErl + Pennlizherenn = AltGr + Shift
    692 //  s a   s = normal,        a = AltGr
    693 // 
    694 //
    695 // 
    696 //  $   1   2   3   4   5   6   7   8   9   0      +    Souza
    697 //     &      " #  ' {  ( [  - |   `  - \      @  ) ]  = }          
    698 // 
    699 // Toalenn C'h  W   E   R   T   Y   U   I   O OE P      *  Enanka
    700 //        c'h  w    e   r    t    y    u    i   o oe p    ^   /        
    701 //       
    702 // Prenn    A   S   D   F   G   H   J   K   L   M      !        
    703 // Pennli  a   s    d $  f    g    h    j    k    l    m       ?        
    704 // 
    705 //         Q   Z   X   C   V    B   N   CH       :   ;                
    706 // Shift  q <  z >  x    c   v    b    n    ch       .    ,   Shift       
    707 // 
    708 //                        Espace inscable                                    
    709 // Reol   Meta   Erl      Espace                         ArErl Menu   Reol   
    710 // 
    711 partial alphanumeric_keys
    712 xkb_symbols "bre" {
    713 
    714     include "keypad(oss)"
    715 
    716     name[Group1]= "French (Breton)";
    717 
    718     // First row
    719     key <TLDE> { [     twosuperior,     dead_tilde,   dead_abovedot,    Greek_GAMMA ] };
    720     key <AE01> { [       ampersand,              1,     dead_macron,    Greek_DELTA ] };
    721     key <AE02> { [          eacute,              2,      dead_acute,    Greek_THETA ] };
    722     key <AE03> { [        quotedbl,              3,      numbersign,    Greek_LAMDA ] };
    723     key <AE04> { [      apostrophe,              4,       braceleft,       Greek_XI ] };
    724     key <AE05> { [       parenleft,              5,     bracketleft,       Greek_PI ] };
    725     key <AE06> { [           minus,              6,             bar,    Greek_SIGMA ] };
    726     key <AE07> { [          egrave,              7,      dead_grave,      Greek_PHI ] };
    727     key <AE08> { [      underscore,              8,       backslash,      Greek_PSI ] };
    728     key <AE09> { [        ccedilla,              9,       plusminus,       Ccedilla ] };
    729     key <AE10> { [          agrave,              0,              at,    Greek_OMEGA ] };
    730     key <AE11> { [      parenright, dead_abovering,    bracketright,         ssharp ] };
    731     key <AE12> { [           equal,           plus,      braceright,        notsign ] };
    732 
    733     // Second row
    734     // Handling the C'H key correctly requires an inputmethod (XIM)
    735     // See https://bugs.freedesktop.org/show_bug.cgi?id=19506
    736  // key <AD01> { [    trigraph_c_h,   trigraph_C_h,    trigraph_C_H,    Greek_alpha ] };
    737     key <AD01> { [           UF8FD,          UF8FE,           UF8FF,    Greek_alpha ] };
    738     key <AD02> { [               w,              W,     Greek_omega,    Greek_omega ] };
    739     key <AD03> { [               e,              E,        EuroSign,  Greek_epsilon ] };
    740     key <AD04> { [               r,              R,       Greek_rho,      Greek_rho ] };
    741     key <AD05> { [               t,              T,       Greek_tau,      Greek_tau ] };
    742     key <AD06> { [               y,              Y,       Greek_psi,      Greek_psi ] };
    743     key <AD07> { [               u,              U,   Greek_upsilon,  Greek_upsilon ] };
    744     key <AD08> { [               i,              I,        idotless,     Greek_iota ] };
    745     key <AD09> { [               o,              O,              oe,             OE ] };
    746     key <AD10> { [               p,              P,        Greek_pi,       Greek_pi ] };
    747     key <AD11> { [ dead_circumflex, dead_diaeresis,   guillemotleft,            yen ] };
    748     key <AD12> { [           slash,       asterisk,  guillemotright,       sterling ] };
    749 
    750     // Third row
    751     key <AC01> { [               a,              A,              ae,             AE ] };
    752     key <AC02> { [               s,              S,     Greek_sigma,    Greek_sigma ] };
    753     key <AC03> { [               d,              D,          dollar,    Greek_delta ] };
    754     key <AC04> { [               f,              F,       Greek_phi,      Greek_phi ] };
    755     key <AC05> { [               g,              G,     Greek_gamma,    Greek_gamma ] };
    756     key <AC06> { [               h,              H,       Greek_eta,      Greek_eta ] };
    757     key <AC07> { [               j,              J, Greek_finalsmallsigma, Greek_finalsmallsigma ] };
    758     key <AC08> { [               k,              K,       Greek_kappa,  Greek_kappa ] };
    759     key <AC09> { [               l,              L,       Greek_lamda, Greek_lambda ] };
    760     key <AC10> { [               m,              M,          Greek_mu,     Greek_mu ] };
    761     key <AC11> { [          ugrave,         Ugrave,            ubreve,   registered ] };
    762     key <BKSL> { [        question,         exclam,      questiondown,   exclamdown ] };
    763 
    764     // Fourth row
    765     key <LSGT> { [               q,              Q,            less,    Greek_theta ] };
    766     key <AB01> { [               z,              Z,         greater,     Greek_zeta ] };
    767     key <AB02> { [               x,              X,        Greek_xi,       Greek_xi ] };
    768     key <AB03> { [               c,              C,            cent,      Greek_chi ] };
    769     key <AB04> { [               v,              V                                  ] };
    770     key <AB05> { [               b,              B,      Greek_beta,     Greek_beta ] };
    771     key <AB06> { [               n,              N,        Greek_nu,       Greek_nu ] };
    772     // Handling the CH key correctly requires an inputmethod (XIM)
    773     // See https://bugs.freedesktop.org/show_bug.cgi?id=19506
    774  // key <AB07> { [      digraph_ch,     digraph_Ch,      digraph_CH,  Greek_omicron ] };
    775     key <AB07> { [           UF8FA,          UF8FB,           UF8FC,  Greek_omicron ] };
    776     key <AB08> { [          ntilde,         Ntilde                                  ] };
    777     key <AB09> { [          period,          colon,         section,      copyright ] };
    778     key <AB10> { [           comma,      semicolon,         percent                 ] };
    779 
    780     key <SPCE> { [           space,   nobreakspace,           space,   nobreakspace ] };
    781 
    782     include "level3(ralt_switch)"
    783 };
    784 
    785 // Occitan layout
    786 // Author : 2009 Thomas Metz <tmetz @ free.fr>
    787 // Derivated from the layout defined at http://www.panoccitan.org
    788 // Version: 0.1
    789 // From OSS french keyboard :
    790 // - add , , ,  et , , , , , , , 
    791 // - change position of , , , , , , , , , 
    792 // 
    793 // 
    794 //     1   2   3   4   5   6   7   8   9   0      +    Retour
    795 //     &    ~  " #  ' {  ( [  - |   `  _ \   ^   @  ) ]  = }   arrire
    796 // 
    797 //         A   Z   E   R   T   Y   U   I   O   P        Entre 
    798 // Tab    a   z   e   r   t   y   u   i   o   p   ^   $        
    799 //       
    800 //          Q   S   D   F   G   H   J   K   L   M   %           
    801 // Maj     q   s   d   f   g   h   j   k   l   m    '  * `       
    802 // 
    803 //         >   W   X   C   V   B   N   ?   . .  /                  
    804 // Shift  <   w   x   c   v   b   n   ,   ;   :   !  Shift       
    805 // 
    806 //                                Espace fine inscable                       
    807 // Ctrl   Meta   Alt      Espace       Espace inscable  AltGr Menu   Ctrl   
    808 // 
    809 partial alphanumeric_keys
    810 xkb_symbols "oci" {
    811 
    812     include "keypad(oss)"
    813 
    814     name[Group1]= "Occitan";
    815 
    816     // First row
    817     key <TLDE>	{ [      twosuperior,    threesuperior,          onesuperior,          dead_cedilla ] }; //     
    818     key <AE01>	{ [        ampersand,                1,           dead_caron,           dead_ogonek ] }; // & 1  
    819     key <AE02>	{ [           eacute,                2,           asciitilde,                Eacute ] }; //  2 ~ 
    820     key <AE03>	{ [         quotedbl,                3,           numbersign,            dead_breve ] }; // " 3 # 
    821     key <AE04>	{ [       apostrophe,                4,            braceleft,             0x1002014 ] }; // ' 4 {  (tiret cadratin)
    822     key <AE05>	{ [        parenleft,                5,          bracketleft,             0x1002013 ] }; // ( 5 [  (tiret demi-cadratin)
    823     key <AE06>	{ [            minus,                6,                  bar,             0x1002011 ] }; // - 6 |  (tiret inscable)
    824     key <AE07>	{ [           egrave,                7,                grave,                Egrave ] }; //  7 ` 
    825     key <AE08>	{ [       underscore,                8,            backslash,             trademark ] }; // _ 8 \ 
    826     key <AE09>	{ [         ccedilla,                9,          asciicircum,              Ccedilla ] }; //  9 ^ 
    827     key <AE10>	{ [           agrave,                0,                   at,                Agrave ] }; //  0 @ 
    828     key <AE11>	{ [       parenright,           degree,         bracketright,              notequal ] }; // )  ]  
    829     key <AE12>	{ [            equal,             plus,           braceright,             plusminus ] }; // = + } 
    830 
    831     // Second row
    832     key <AD01>	{ [                a,                A,               aacute,                Aacute ] }; // a A  
    833     key <AD02>	{ [                z,                Z,                   ae,                    AE ] }; // z Z  
    834     key <AD03>	{ [                e,                E,             EuroSign,                  cent ] }; // e E  
    835     key <AD04>	{ [                r,                R,          ecircumflex,           Ecircumflex ] }; // r R  
    836     key <AD05>	{ [                t,                T,           ediaeresis,            Ediaeresis ] }; // t T  
    837     key <AD06>	{ [                y,                Y,          ucircumflex,           Ucircumflex ] }; // y Y  
    838     key <AD07>	{ [                u,                U,               uacute,                Uacute ] }; // u U  
    839     key <AD08>	{ [                i,                I,               iacute,                Iacute ] }; // i I  
    840     key <AD09>	{ [                o,                O,               oacute,                Oacute ] }; // o O  
    841     key <AD10>	{ [                p,                P,               ograve,                Ograve ] }; // p P  
    842     key <AD11>	{ [  dead_circumflex,   dead_diaeresis,                   oe,                    OE ] }; // ^    
    843     key <AD12>	{ [           dollar,         sterling,               oslash,              Ooblique ] }; // $   
    844 
    845     // Third row
    846     key <AC01>	{ [                q,                Q,           adiaeresis,            Adiaeresis ] }; // q Q  
    847     key <AC02>	{ [                s,                S,               ssharp,    doublelowquotemark ] }; // s S   
    848     key <AC03>	{ [                d,                D,           acircumflex,          Acircumflex ] }; // d D  
    849     key <AC04>	{ [                f,                F,  leftsinglequotemark,    singlelowquotemark ] }; // f F  
    850     key <AC05>	{ [                g,                G, rightsinglequotemark,                   yen ] }; // g G  
    851     key <AC06>	{ [                h,                H,           udiaeresis,            Udiaeresis ] }; // h H  
    852     key <AC07>	{ [                j,                J,          icircumflex,            Icircumflex] }; // j J  
    853     key <AC08>	{ [                k,                K,           idiaeresis,             Idiaeresis] }; // k K  
    854     key <AC09>	{ [                l,                L,          ocircumflex,           Ocircumflex ] }; // l L  
    855     key <AC10>	{ [                m,                M,           odiaeresis,            Odiaeresis ] }; // m M  
    856     key <AC11>	{ [           ugrave,          percent,           dead_acute,                Ugrave ] }; //  % ' 
    857     key <BKSL>	{ [         asterisk,               mu,           dead_grave,           dead_macron ] }; // *  ` 
    858 
    859     // Fourth row
    860     key <LSGT>  { [             less,          greater,        lessthanequal,      greaterthanequal ] }; // < >  
    861     key <AB01>  { [                w,                W,        guillemotleft,   leftdoublequotemark ] }; // w W  
    862     key <AB02>  { [                x,                X,       guillemotright,  rightdoublequotemark ] }; // x X  
    863     key <AB03>  { [                c,                C,            copyright,            registered ] }; // c C  
    864     key <AB04>  { [                v,                V,            rightarrow,            leftarrow ] }; // v V   
    865     key <AB05>  { [                b,                B,            downarrow,               uparrow ] }; // b B  
    866     key <AB06>  { [                n,                N,              ntilde,                 Ntilde ] }; // n N  
    867     key <AB07>  { [            comma,         question,         questiondown,             0x1002026 ] }; // , ?  
    868     key <AB08>  { [        semicolon,           period,             multiply,             0x10022C5 ] }; // ; .  
    869     key <AB09>  { [            colon,            slash,             division,             0x1002215 ] }; // : /  
    870     key <AB10>  { [           exclam,          section,           exclamdown,             0x1002212 ] }; // !   
    871 };
    872 
    873 // Marc.Shapiro (a] inria.fr 19-sep-1998
    874 // modifications : Etienne Herlent <eherlent (a] linux-france.org> june 2000
    875 // adapted to the new input layer :
    876 //        Martin Costabel <costabel (a] wanadoo.fr> 3-jan-2001
    877 // adapted for Latin9 alphabet (ISO-8859-15): 
    878 //        Etienne Herlent <eherlent (a] linux-france.org> march 2005
    879 
    880 // This map is an almost-complete mapping of the standard French
    881 // MacIntosh keyboard under Xwindows.  I tried to remain as faithful
    882 // as possible to the Mac meaning of each key.	I did this entirely by
    883 // hand and by intuition, relying on the Clavier (Keyboard?) Desktop
    884 // Accessory for the Mac meaning of keys, and on reading keysymdef.h
    885 // to intuit the corresponding X names.	 Lacking proper documentation,
    886 // I may have made some mistakes.
    887 
    888 // Entries marked CHECK are particularly uncertain
    889 
    890 // Entries marked MISSING mark Mac characters for which I was unable
    891 // to find a corresponding keysym.  (Some for sure don't: e.g. the
    892 // Apple mark and the oe/OE character; others I may have simply not
    893 // found.)
    894 
    895 // Copied from macintosh_vndr/fr
    896 partial alphanumeric_keys
    897 xkb_symbols "mac" {
    898 
    899     name[Group1]= "French (Macintosh)";
    900 
    901     // Alphanumeric section
    902     key <TLDE> {	[          at,     numbersign, periodcentered,  Ydiaeresis	]	}; // MISSING: Ydiaeresis; eherlent : ok in Latin9
    903     key <AE01> {	[   ampersand,    1,   VoidSymbol,    dead_acute	]	}; // MISSING: Apple
    904     key <AE02> {	[      eacute,    2,   ediaeresis,        Eacute	]	};
    905     key <AE03> {	[    quotedbl,    3,   VoidSymbol,    VoidSymbol	] 	}; // CHECK all quotemarks
    906     key <AE04> {	[  apostrophe,    4,   VoidSymbol,    VoidSymbol	] 	};
    907     key <AE05> {	[   parenleft,    5,    braceleft,   bracketleft	]	};
    908  // CHECK section
    909     key <AE06> {	[     section,    6,    paragraph,         aring	]	};
    910     key <AE07> {	[      egrave,    7, guillemotleft, guillemotright	]	};
    911     key <AE08> {	[      exclam,    8,   exclamdown,   Ucircumflex	]	};
    912     key <AE09> {	[    ccedilla,    9,     Ccedilla,        Aacute	]	};
    913     key <AE10> {	[      agrave,    0,       oslash,    VoidSymbol	]	}; // MISSING: Oslash
    914     key <AE11> {	[  parenright, degree, braceright,  bracketright	]	};
    915     key <AE12> {	[       minus, underscore, emdash,        endash	]	}; // CHECK dashes
    916 
    917     key <AD01> {	[           a,  A,           ae,          AE	]	};
    918     key <AD02> {	[           z,  Z,  Acircumflex,       Aring		]	};
    919     key <AD03> {	[           e,  E,  ecircumflex, Ecircumflex	]	};
    920     key <AD04> {	[           r,  R,   registered,    currency	]	};
    921     key <AD05> {	[           t,  T,   VoidSymbol,  VoidSymbol	]	};
    922     key <AD06> {	[           y,  Y,       Uacute,  Ydiaeresis	]	}; // MISSING: Ydiaeresis; eherlent : ok in Latin9
    923     key <AD07> {	[           u,  U,   VoidSymbol, ordfeminine	]	}; // MISSING: ordmasculine?
    924     key <AD08> {	[           i,  I,  icircumflex,  idiaeresis	]	};
    925     key <AD09> {	[           o,  O,           oe,          OE      	]	}; // MISSING: oe, OE lacking in Latin1; eherlent ok in Latin9
    926     key <AD10> {	[           p,  P,   VoidSymbol,  VoidSymbol	]	};
    927     key <AD11> {	[dead_circumflex,dead_diaeresis, ocircumflex, Ocircumflex	]	};
    928     key <AD12> {	[      dollar, asterisk,   EuroSign, yen		]	}; // eherlent : EuroSign in Latin9
    929 
    930     key <AC01> {	[         q, Q, acircumflex,         Agrave		]	};
    931     key <AC02> {	[         s, S,      Ograve,     VoidSymbol	]	};
    932     key <AC03> {	[         d, D,  VoidSymbol,     VoidSymbol	]	};
    933     key <AC04> {	[         f, F,  VoidSymbol, periodcentered	]	}; // MISSING: oblong script f??
    934     key <AC05> {	[         g, G,  VoidSymbol,     VoidSymbol	]	}; // MISSING: kerned fi, fl
    935     key <AC06> {	[         h, H,      Igrave,    Icircumflex	]	};
    936     key <AC07> {	[         j, J,  Idiaeresis,         Iacute	]	};
    937     key <AC08> {	[         k, K,      Egrave,     Ediaeresis	]	};
    938     key <AC09> {	[         l, L,     notsign,            bar	]	};
    939     key <AC10> {	[         m, M,          mu,         Oacute	]	};
    940     key <AC11> {	[    ugrave,percent, Ugrave,    ucircumflex	]	}; // MISSING: per-mille
    941     key <BKSL> {	[ dead_grave, sterling,  at,     numbersign	]	};
    942 
    943     key <LSGT> {	[      less, greater, VoidSymbol, VoidSymbol	]	};
    944     key <AB01> {	[         w, W, VoidSymbol,   VoidSymbol	]	};	// MISSING: half-guillemot (single angle bracket)
    945     key <AB02> {	[         x, X, VoidSymbol,   VoidSymbol	]	}; // CHECK similarequal; MISSING: extra-slanted slash
    946     key <AB03> {	[         c, C,  copyright,         cent	]	};
    947     key <AB04> {	[         v, V,    diamond,  leftradical	]	}; // CHECK diamond, leftradical
    948     key <AB05> {	[         b, B,     ssharp,   VoidSymbol	]	}; // CHECK: Greek_beta or ssharp?; MISSING: oblong script s
    949     key <AB06> {	[         n, N,  dead_tilde,  asciitilde	]	};
    950     key <AB07> {	[     comma,  question, VoidSymbol,  questiondown	]	};
    951     key <AB08> {	[ semicolon,  period, VoidSymbol,  periodcentered	]	};
    952     key <AB09> {	[     colon,  slash,   division,        backslash	]	};
    953     key <AB10> {	[     equal,   plus, VoidSymbol,        plusminus	]	};
    954 
    955     key <SPCE> {	[     space,  space, nobreakspace,   nobreakspace	]	};
    956     // End alphanumeric section
    957 
    958     key <KPDL> {	[  comma,KP_Decimal	]	};
    959 
    960     include "level3(ralt_switch)"
    961 };
    962 
    963 partial alphanumeric_keys
    964 xkb_symbols "geo" {
    965     include "ge(basic)"
    966 
    967     name[Group1]= "Georgian (France, AZERTY Tskapo)";
    968 
    969     key <TLDE> { [ exclam, noSymbol ] };
    970     key <AE01> { [ 0x0100201e, 1 ] };
    971     key <AE02> { [ 0x01002116, 2 ] };
    972     key <AE03> { [ percent, 3    ] };
    973     key <AE04> { [ parenleft, 4  ] };
    974     key <AE05> { [ colon, 5      ] };
    975     key <AE06> { [ semicolon, 6  ] };
    976     key <AE07> { [ question, 7   ] };
    977     key <AE08> { [ 0x01002116, 8 ] };
    978     key <AE09> { [ degree, 9     ] };
    979     key <AE10> { [ parenright, 0 ] };
    980     key <AE11> { [ minus, underscore, 0x01002014 ] };
    981     key <AE12> { [ less, greater ] };
    982 
    983     key <AD01> { [ 0x010010d0,  0x010010fa     ] };
    984     key <AD02> { [ 0x010010d6,  Z              ] };
    985     key <AD03> { [ 0x010010d4,  E, 0x010010f1  ] };
    986     key <AD04> { [ 0x010010e0,  0x010000ae     ] };
    987     key <AD05> { [ 0x010010e2,  T              ] };
    988     key <AD06> { [ 0x010010e7,  0x010010f8     ] };
    989     key <AD07> { [ 0x010010e3,  U              ] };
    990     key <AD08> { [ 0x010010d8,  0x010010f2     ] };
    991     key <AD09> { [ 0x010010dd,  O              ] };
    992     key <AD10> { [ 0x010010de,  P              ] };
    993     key <AD11> { [ 0x010010d7,  T              ] };
    994     key <AD12> { [ 0x010010eb,  Z              ] };
    995 
    996     key <AC01> { [ 0x010010e5,  Q              ] };
    997     key <AC02> { [ 0x010010e1,  S              ] };
    998     key <AC03> { [ 0x010010d3,  D              ] };
    999     key <AC04> { [ 0x010010e4,  0x010010f6     ] };
   1000     key <AC05> { [ 0x010010d2,  0x010010f9     ] };
   1001     key <AC06> { [ 0x010010f0,  0x010010f5     ] };
   1002     key <AC07> { [ 0x010010ef,  0x010010f7     ] };
   1003     key <AC08> { [ 0x010010d9,  K              ] };
   1004     key <AC09> { [ 0x010010da,  L              ] };
   1005     key <AC10> { [ 0x010010db,  M              ] };
   1006     key <AC11> { [ 0x010010df,  J              ] };
   1007     key <BKSL> { [ 0x010010e9,  0x010000a9     ] };
   1008 
   1009     key <LSGT> { [ guillemotleft,guillemotright ] };
   1010     key <AB01> { [ 0x010010ec,  W               ] };
   1011     key <AB02> { [ 0x010010ee,  0x010010f4      ] };
   1012     key <AB03> { [ 0x010010ea,  0x010000a9      ] };
   1013     key <AB04> { [ 0x010010d5,  0x010010f3      ] };
   1014     key <AB05> { [ 0x010010d1,  B               ] };
   1015     key <AB06> { [ 0x010010dc,  0x010010fc      ] };
   1016     key <AB07> { [ comma,       0x01002014      ] };
   1017     key <AB08> { [ 0x010010e8,  S               ] };
   1018     key <AB09> { [ 0x010010e6,  noSymbol        ] };
   1019     key <AB10> { [ 0x010010ed,  noSymbol        ] };
   1020 
   1021 };
   1022