// Completly rewritten Canadian keyboard
// from data told by Alain LaBonté
//
// Only values that differ from the included files are defined here
//
// 2005-03-25  Pablo Saratxaga <pablo@mandrakesof.com>
// 	- first version
// 2005-03-30  Pablo Saratxaga <pablo@mandrakesof.com>
//	- revised with corrections from Alain Labonté <alb@sct1.gouv.qc.ca>

partial alphanumeric_keys
xkb_symbols "basic" {

    include "pc/latin"  // default layout for group1
    include "iso9995-3" // default layout for group2

    name[Group1]="Canadian";

    key <TLDE> {
		type[Group1]="FOUR_LEVEL",
		symbols[Group1]= [ slash, backslash, bar, hyphen ],
		symbols[Group2]= [ bar, hyphen ]
		};
    // La prochaine définition n'est pas encore conforme à CAN/CSA Z243.200
    // (aucun amendement n'a encore été présenté même s'il fut envisagé)
    // mais elle est " basée " sur l'ISO/CEI 9995-3, tel qu'amendé en 1998 ;
    // Dans cet amendement, le symbole " ¤ " [currency] a été relégué 
    // au niveau 3 du groupe 2,  ce qui pourrait être considéré
    // comme un 6e niveau, non prévu dans cette définition technique de clavier.
    // Microsoft, sous Win XP, a placé ce symbole au 3e niveau du groupe 1.
    // C'est ce que l'on fait ici.
    key <AE04> {
		type[Group1]="FOUR_LEVEL",
		symbols[Group1]= [ 4, dollar, currency, EuroSign ],
		symbols[Group2]= [ onequarter, EuroSign ]
		};
    key <AE06> { [ 6, question, threequarters ] };
    key <AE07> {
		type[Group1]="THREE_LEVEL",
		symbols[Group1]= [ 7, ampersand, braceleft ],
		symbols[Group2]= [ braceleft ]
		};
    key <AE08> {
		type[Group1]="THREE_LEVEL",
		symbols[Group1]= [ 8, asterisk, braceright ],
		symbols[Group2]= [ braceright ]
		};
    key <AE09> {
		type[Group1]="FOUR_LEVEL",
		symbols[Group1]= [ 9, parenleft, bracketleft, plusminus ],
		symbols[Group2]= [ bracketleft, plusminus ]
		};
    key <AE10> {
		type[Group1]="THREE_LEVEL",
		symbols[Group1]= [ 0, parenright, bracketright ],
		symbols[Group2]= [ bracketright ]
		};
    // level3 is undefined, "endash" is a useful value however,
    // with some mnemotechnic similarity with minus
    key <AE11> { [ minus, underscore, endash, questiondown ] };
    key <AE12> {
		type[Group1]="THREE_LEVEL",
		symbols[Group1]= [ equal, plus, notsign ],
		symbols[Group2]= [ dead_cedilla ]
		};
    // OE/oe est défini par la norme ISO,
    // par la norme canadienne et par un standard québécois, dans
    // le groupe 2, sur la touche D03.
    key <AD03> {
		symbols[Group1]= [ e, E, oe, OE ],
		symbols[Group2]= [ oe, OE ]
		};
    key <AD11> {
		type[Group1]="FOUR_LEVEL",
		symbols[Group1]= [ dead_circumflex, dead_diaeresis, dead_grave, dead_abovering ],
		symbols[Group2]= [ dead_grave, dead_abovering ]
		};
    key <AD12> { [ ccedilla, Ccedilla, asciitilde, dead_macron ] };

    key <AC10> { [ semicolon, colon, degree, dead_acute ] };
    key <AC11> { [ egrave, Egrave ] };
    key <BKSL> { [ agrave, Agrave ] };

    key <LSGT> { [ ugrave, Ugrave, NoSymbol, brokenbar ] };
    key <AB01> { [ z, Z, guillemotleft ] };
    key <AB02> { [ x, X, guillemotright ] };
    key <AB08> { [ comma, apostrophe, less, multiply ] };
    key <AB09> { [ period, quotedbl, periodcentered, division ] };
    key <AB10> { [ eacute, Eacute ] };

    key <SPCE> { 
		symbols[Group1]= [ space ],
		symbols[Group2]= [ nobreakspace ]
		};

    // definition of AltGr key (for level3/level4)
    include "level3(ralt_switch_multikey)"

    // definition of special key to select group2
    key <RCTL> { [ Mode_switch ] };
    modifier_map Mod5 { <RCTL> };

};

