// $Xorg: ca,v 1.3 2000/08/17 19:54:42 cpqbld Exp $




// $XFree86: xc/programs/xkbcomp/symbols/ca,v 3.8 2001/05/18 23:35:35 dawes Exp $

default partial alphanumeric_keys 
xkb_symbols "basic" {
     
     // Describes the differences between a very simple en_US
     // keyboard and a very simple Canadian keyboard
     // This layout conforms to the CAN/CSA-Z243.200-92 standard

    name[Group1]= "Canadian";

    // Alphanumeric section
    // CAN/CSA-Z243.200-92 calls this key "AE00"
    key <TLDE> {
		type[Group1]= "THREE_LEVEL",
		symbols[Group1]= [ slash, backslash, bar ],
// The standard calls for a soft hyphen, but X doesn't declare
//  a keysym for soft_hyphen.
//		symbols[Group2]= [ NoSymbol, soft_hyphen ]
		symbols[Group2]= [ NoSymbol, hyphen ]
    };
    key <AE04> {	[	  4,	dollar		],	
			[onequarter,    currency	]	};
    key <AE06> {	[	  6,	question	],	
			[threequarters,  fiveeighths	]	};
    key <AE07> {	
		type[Group1]= "THREE_LEVEL",
		symbols[Group1]= [ 7,	ampersand, 	braceleft 	],
		symbols[Group2]= [ 7,   seveneighths			]
    };
    key <AE08> {
		type[Group1]= "THREE_LEVEL",
		symbols[Group1]= [ 8,	asterisk,	braceright 	],
		symbols[Group2]= [ 8,	trademark			]
    };
    key <AE09> {
		type[Group1]= "THREE_LEVEL",
		symbols[Group1]= [ 9,	parenleft,	bracketleft	],
		symbols[Group2]= [ 9,	plusminus ]
    };
    key <AE10> {
		type[Group1]="THREE_LEVEL",
		type[Group2]="THREE_LEVEL",
		symbols[Group1]= [ 0,	parenright,	bracketright	],
		symbols[Group2]= [ 0,	parenright,	bracketright	]
    };
    key <AE11> {	
		symbols[Group1]= [ minus,	underscore		],
		symbols[Group2]= [ minus,	questiondown		]
    };
    key <AE12> {
		type[Group1]="THREE_LEVEL",
		symbols[Group1]= [ equal, plus, notsign			],
		symbols[Group2]= [ dead_cedilla, dead_ogonek		]
    };
// once again, CAN/CSA-Z243-200.0 defines a key for which there is no
// symbol.
//    key <AD03> {	[	  e,	E		],
//			[	 oe,	OE		]		};
    key <AD11> {
		type[Group1]="THREE_LEVEL",
		symbols[Group1]=[ dead_circumflex, dead_diaeresis, dead_grave ],
		symbols[Group2]=[ NoSymbol, dead_abovering ]
    };
    key <AD12> {
		type[Group1]="THREE_LEVEL",
		symbols[Group1]=[ ccedilla, Ccedilla, asciitilde ],
		symbols[Group2]=[ dead_tilde, dead_macron ]
    };
    key <AC03> {	[	  d,	D		],
			[ 	eth,	Dstroke		]	};
// CAN/CSA-Z243.200-92 calls for ij and IJ ligatures on group two of
// this key, but X doesn't define keysyms for them.  Put them here but
// comment them out.
//    key <AC07> {	[	  j,	J		],
//			[	 ij,	IJ		]	};
    key <AC08> {	[	  k,	K		],	
			[  	  kra			]	};
    key <AC10> {
		type[Group1]="THREE_LEVEL",
		symbols[Group1]= [ semicolon, colon, degree ],
		symbols[Group2]= [ dead_acute, dead_doubleacute ]
    };
    key <AC11> {	[    egrave,    Egrave		],	
			[  NoSymbol,	dead_caron	]	};
// CAN/CSA-Z243.200-92 calls this key C12 on "47-key" keyboards
// or D13 on "48-key" keyboards.
    key <BKSL> {        [    agrave,    Agrave          ],      
                        [  NoSymbol,	dead_breve      ]       };
    key <LSGT> {	[    ugrave,	Ugrave		],
			[    ugrave,	brokenbar	]	};
    key <AB01> {
		type="THREE_LEVEL",
		symbols[Group1]= [ z, Z, guillemotleft ],
		symbols[Group2]= [ z, Z, guillemotleft ]
    };
    key <AB02> {
		type="THREE_LEVEL",
		symbols[Group1]= [ x, X, guillemotright ],
		symbols[Group2]= [ x, X, guillemotright ]
    };
    key <AB04> {	[	  v,	V		],	
			[leftdoublequotemark,leftsinglequotemark]	};
    key <AB05> {	[	  b,	B		],	
			[rightdoublequotemark,rightsinglequotemark]	};
//  Neither apostrophen (apostrophe followed by n) or musical note
//  are legal keysyms.  Leave the definition here until they get
//  defined, but comment it out for now.
//    key <AB06> {	[	  n,	N		],
//			[ apostrophen, musicnote	]	};
    key <AB08> {
		type[Group1]="THREE_LEVEL",
		symbols[Group1]= [ comma, apostrophe, less ],
		symbols[Group2]= [ horizconnector, multiply ]
    };
    key <AB09> {
		type[Group1]= "THREE_LEVEL",
		symbols[Group1]= [ period, quotedbl, greater ],
		symbols[Group2]= [ periodcentered, division ]
    };
    key <AB10> {	[    eacute,	Eacute		],	
			[    NoSymbol, 	dead_abovedot	]	};
    key <RCTL> {        [ ISO_Level3_Shift              ]       };

    modifier_map Mod5   { <RCTL> };

};
partial alphanumeric_keys 
xkb_symbols "alternate" {
    include "ca(basic)"
    key <TLDE> {
		type[Group1]="THREE_LEVEL",
		symbols[Group1]=[slash, backslash,bar],
		symbols[Group2]=[dead_diaeresis      ]
		};
    key <AE07> {
		type[Group1]="THREE_LEVEL",
		symbols[Group1]=[7, ampersand,braceleft],
		symbols[Group2]=[seveneighths          ]
		};
    key <AE08> {
		type[Group1]="THREE_LEVEL",
		symbols[Group1]=[8, asterisk,braceright],
		symbols[Group2]=[trademark             ]
		};
    key <AE09> {
		type[Group1]="THREE_LEVEL",
		symbols[Group1]=[9, parenleft,bracketleft],
		symbols[Group2]=[plusminus     		 ]
		};
    key <AE10> {
		type[Group1]="THREE_LEVEL",
		symbols[Group1]=[0, parenright,bracketright],
		symbols[Group2]=[                          ]
		};
    key <AE12> {
		type[Group1]="THREE_LEVEL",
		symbols[Group1]=[equal, plus,notsign],
		symbols[Group2]=[dead_cedilla,dead_ogonek]
		};
    key <AD11> {
		type[Group1]="THREE_LEVEL",
		symbols[Group1]=[dead_circumflex,dead_diaeresis,dead_grave],
                symbols[Group2]=[dead_abovering]
		};
    key <AD12> {
		type[Group1]="THREE_LEVEL",
		symbols[Group1]=[ccedilla,Ccedilla,asciitilde],
                symbols[Group2]=[dead_tilde,dead_macron]
		};
    key <AC10> {
		type[Group1]="THREE_LEVEL",
		symbols[Group1]=[semicolon,colon,degree],
                symbols[Group2]=[dead_acute,dead_doubleacute]
		};
    key <AB01> {
		type[Group1]="THREE_LEVEL",
		symbols[Group1]=[z,Z,guillemotleft],
                symbols[Group2]=[                 ]
		};
    key <AB02> {
		type[Group1]="THREE_LEVEL",
		symbols[Group1]=[x,X,guillemotright],
                symbols[Group2]=[                  ]
		};
    key <AB08> {
		type[Group1]="THREE_LEVEL",
		symbols[Group1]=[comma,apostrophe,less],
                symbols[Group2]=[horizconnector,multiply]
		};
    key <AB09> {
		type[Group1]="THREE_LEVEL",
		symbols[Group1]=[period,quotedbl,greater],
                symbols[Group2]=[periodcentered,division]
		};
    key <SPCE> {
		type[Group1]="THREE_LEVEL",
		symbols[Group1]=[space,space,nobreakspace]
		};
    // End alphanumeric section

    // begin modifier mappings

    modifier_map Shift  { Shift_L };
    modifier_map Lock   { Caps_Lock };
    modifier_map Control{ Control_L };
    modifier_map Mod3   { Mode_switch };
};

partial alphanumeric_keys 
xkb_symbols "Sundeadkeys" {
    include "ca(basic)"
    key <AE12> {
		type[Group1]="THREE_LEVEL",
		symbols[Group1]= [ equal, plus, notsign		],
		symbols[Group2]= [ SunFA_Cedilla, dead_ogonek	]
    };
    key <AD11> {
		type[Group1]="THREE_LEVEL",
		symbols[Group1]=[ SunFA_Circum, SunFA_Diaeresis, SunFA_Grave ],
		symbols[Group2]=[ NoSymbol, dead_abovering ]
    };
    key <AD12> {
		type[Group1]="THREE_LEVEL",
		symbols[Group1]=[ ccedilla, Ccedilla, asciitilde ],
		symbols[Group2]=[ SunFA_Tilde, dead_macron ]
    };
    key <AC10> {
		type[Group1]="THREE_LEVEL",
		symbols[Group1]= [ semicolon, colon, degree ],
		symbols[Group2]= [ SunFA_Acute, dead_doubleacute ]
    };

};

partial alphanumeric_keys 
xkb_symbols "sundeadkeys" {
    include "ca(Sundeadkeys)"
};

partial alphanumeric_keys 
xkb_symbols "nodeadkeys" {
    include "ca(basic)"
    key <AE12> {
		type[Group1]="THREE_LEVEL",
		symbols[Group1]= [ equal, plus, notsign		],
		symbols[Group2]= [ cedilla, ogonek		]
    };
    key <AD11> {
		type[Group1]="THREE_LEVEL",
		symbols[Group1]=[ asciicircum, diaeresis, grave ],
		symbols[Group2]=[ NoSymbol, degree ]
    };
    key <AD12> {
		type[Group1]="THREE_LEVEL",
		symbols[Group1]=[ ccedilla, Ccedilla, asciitilde ],
		symbols[Group2]=[ asciitilde, macron ]
    };
    key <AC10> {
		type[Group1]="THREE_LEVEL",
		symbols[Group1]= [ semicolon, colon, degree ],
		symbols[Group2]= [ acute, doubleacute ]
    };
    key <AC11> {	[    egrave,    Egrave		],	
			[  NoSymbol,	caron		]	};
    key <BKSL> {        [    agrave,    Agrave          ],      
                        [  NoSymbol,	breve      	]       };

};

