cm revision bfd7cbc1
1// ========== Cameroon Keyboards ==========
2// ****** For Instructions, see "Use of Cameroon Keyboards" section	below ******
3
4
5// The XKB versions of these keyboards were developed by Matthew Lee, Jenni Beadle, and Bruce Cox of SIL Cameroon in association with Going Komputya, Uwe Yung of the Goethe Institute, Yaoundé, and Centre ANACLAC.  
6
7// Cameroon is officially a bilingual country, using French and English, but there are over 270 minority languages.  
8
9// * Cameroon Français is an exact copy of the French France keyboard intended for AZERTY users.
10// * Cameroon is an exact copy of the Basic US Keyboard. I can not currently name this "Cameroon English" due to a limitation of XKB.
11// * Cameroon QWERTY and Cameroon AZERTY are based largely on SIL Cameroon's Keyman and Microsoft keyboards of the same style already in wide use.  These keyboards are designed to allow the user to type any of Cameroon's 270+ languages and dialects that use the approved orthography.  This Approved Orthography was adopted in 1979 by the National Committee for the Unification and Harmonisation of Alphabets of Camerooninan Languages. 
12// * Cameroon Dvorak is described below.
13
14// ===== Use of Cameroon Keyboards =====
15
16// == Fonts ==
17// These keyboards are fully Unicode (5.1), so we recommend using a good unicode font for diacritics to position correctly. Recommended fonts are: ttf-sil-charis, ttf-sil-doulos, ttf-sil-gentium and ttf-sil-andika (All of which are free for Linux, Mac, and Windows).
18
19
20// == Cameroon AZERTY ==
21// Cameroon AZERTY uses the French France (AZERTY) layout, as french keyboards are widely used here. While this keyboard is designed for Cameroonian orthography, it still is possible but not recommended, to type French with minimal discomfort using this keyboard.
22// Cameroon AZERTY uses the "!" (exclamation) key as the "Cameroon" key. Pressing this key before another key allows you to access the special letters and diacritics needed in Cameroonian orthography.
23// For example, press "!" then "a" and get "ɛ" (small epsilon). "!" then "Shift" + "a" (A) will get an "Ɛ" (capital epsilon). Press the "!" key twice to get a "!".
24// If you prefer, you can hold the AltGr (and/or Shift) key to access the same letters, but we have found this to be much more awkward in practice. If you really don't like our Cameroon key, simply comment out "include "cm(exclamation_switch)"" and the exclamation key will return to normal.
25// All Diacritics (with the exception of French Trema and Circumflex) must be typed (in order of stacking) after the letter.
26
27
28// == Cameroon QWERTY ==
29// Cameroon QWERTY uses the US QWERTY layout, as US keyboards are also widely used here. While this keyboard is designed for Cameroonian orthography, it is possible, but not recommended, to type English with minimal discomfort using this keyboard.
30// Cameroon QWERTY uses the ";" (semicolon) key as the "Cameroon" key.	Pressing this key before another key allows you to access the special letters and diacritics needed in Cameroonian orthography.
31// For example, press ";" then "a" and get "ɛ" (small epsilon). ";" then "Shift" + "a" (A) will get an "Ɛ" (capital epsilon). Press ";" twice to get a ";", or press Shift + ; (:) twice to get a ":" (colon).
32// If you prefer, you can hold the AltGr (and/or Shift) key to access the same letters, but we have found this to be much more awkward in practice. If you really don't like our Cameroon key, simply comment out "include "cm(semicolon_switch)"" and the semicolon key will return to normal.
33// All Diacritics must be typed (in order of stacking) after the letter.
34
35
36// == Cameroon Dvorak ==
37// Cameroon Dvorak is uses a similar system to Cameroon QWERTY.
38
39default
40partial alphanumeric_keys
41xkb_symbols "basic" {
42
43	name[Group1]="English (Cameroon)";
44
45	// Alphanumeric section
46	key <TLDE> { [ grave, asciitilde ] };
47	key <AE01> { [ 1, exclam ] };
48	key <AE02> { [ 2, at ] };
49	key <AE03> { [ 3, numbersign ] };
50	key <AE04> { [ 4, dollar ] };
51	key <AE05> { [ 5, percent ] };
52	key <AE06> { [ 6, asciicircum ] };
53	key <AE07> { [ 7, ampersand ] };
54	key <AE08> { [ 8, asterisk ] };
55	key <AE09> { [ 9, parenleft ] };
56	key <AE10> { [ 0, parenright ] };
57	key <AE11> { [ minus, underscore ] };
58	key <AE12> { [ equal, plus ] };
59
60	key <AD01> { [ q, Q ] };
61	key <AD02> { [ w, W ] };
62	key <AD03> { [ e, E ] };
63	key <AD04> { [ r, R ] };
64	key <AD05> { [ t, T ] };
65	key <AD06> { [ y, Y ] };
66	key <AD07> { [ u, U ] };
67	key <AD08> { [ i, I ] };
68	key <AD09> { [ o, O ] };
69	key <AD10> { [ p, P ] };
70	key <AD11> { [ bracketleft, braceleft ] };
71	key <AD12> { [ bracketright, braceright ] };
72	key <AC01> { [ a, A ] };
73	key <AC02> { [ s, S ] };
74	key <AC03> { [ d, D ] };
75	key <AC04> { [ f, F ] };
76	key <AC05> { [ g, G ] };
77	key <AC06> { [ h, H ] };
78	key <AC07> { [ j, J ] };
79	key <AC08> { [ k, K ] };
80	key <AC09> { [ l, L ] };
81	key <AC10> { [ semicolon, colon ] };
82	key <AC11> { [ apostrophe, quotedbl ] };
83
84	key <AB01> { [ z, Z ] };
85	key <AB02> { [ x, X ] };
86	key <AB03> { [ c, C ] };
87	key <AB04> { [ v, V ] };
88	key <AB05> { [ b, B ] };
89	key <AB06> { [ n, N ] };
90	key <AB07> { [ m, M ] };
91	key <AB08> { [ comma, less ] };
92	key <AB09> { [ period, greater ] };
93	key <AB10> { [ slash, U003F ] };
94
95	key <BKSL> { [ backslash, bar ] };
96	// End alphanumeric section
97};
98
99partial alphanumeric_keys
100xkb_symbols "french"
101{
102	name[Group1]="French (Cameroon)";
103	include "latin"
104
105	key <AE01> { [ ampersand, 1, onesuperior, exclamdown ] };
106	key <AE02> { [ eacute, 2, asciitilde, oneeighth ] };
107	key <AE03> { [ quotedbl, 3, numbersign, sterling ] };
108	key <AE04> { [apostrophe, 4, braceleft, dollar ] };
109	key <AE05> { [ parenleft, 5, bracketleft, threeeighths ] };
110	key <AE06> { [ minus, 6, bar, fiveeighths ] };
111	key <AE07> { [ egrave, 7, grave, seveneighths ] };
112	key <AE08> { [underscore, 8, backslash, trademark ] };
113	key <AE09> { [ ccedilla, 9, asciicircum, plusminus ] };
114	key <AE10> { [ agrave, 0, at, degree ] };
115	key <AE11> { [parenright, degree, bracketright, questiondown ] };
116	key <AE12> { [ equal, plus, braceright, dead_ogonek ] };
117
118	key <AD01> { [ a, A, ae, AE ] };
119	key <AD02> { [ z, Z, guillemotleft, less ] };
120	key <AD03> { [ e, E, EuroSign, cent ] };
121	key <AD11> { [dead_circumflex, dead_diaeresis, dead_diaeresis, dead_abovering ] };
122	key <AD12> { [ dollar, sterling, currency, dead_macron ] };
123
124	key <AC01> { [ q, Q, at, Greek_OMEGA ] };
125	key <AC10> { [ m, M, mu, masculine ] };
126	key <AC11> { [ ugrave, percent, dead_circumflex, dead_caron] };
127	key <TLDE> { [twosuperior, asciitilde, notsign, notsign ] };
128
129	key <BKSL> { [ asterisk, mu, dead_grave, dead_breve ] };
130	key <AB01> { [ w, W, lstroke, Lstroke ] };
131	key <AB07> { [ comma, U003F, dead_acute, dead_doubleacute ] };
132	key <AB08> { [ semicolon, period, horizconnector, multiply ] };
133	key <AB09> { [ colon, slash, periodcentered, division ] };
134	key <AB10> { [ exclam, section, dead_belowdot, dead_abovedot ] };
135
136	include "level3(ralt_switch)"
137};
138
139
140partial alphanumeric_keys
141xkb_symbols "azerty"
142{
143	name[Group1] = "French (Cameroon azerty)";
144	include "level3(ralt_switch)"
145	include "cm(basic)"
146	key <AB01> { [ w, W, U1E85, U1E84 ] };	//  SMALL LETTER W,  CAPITAL LETTER W, SMALL LETTER W WITH DIAERESIS, CAPITAL LETTER W WITH DIAERESIS
147	key <AB02> { [ x, X, U2039, U203A ] };	// SMALL LETTER X, CAPITAL LETTER X, SINGLE LEFT-POINTING ANGLE QUOTATION MARK, SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
148	key <AB03> { [ c, C, U0327, copyright ] };	// SMALL LETTER C, CAPITAL LETTER C, COMBINING CEDILLA, COPYRIGHT SIGN
149	key <AB04> { [ v, V, U25CC, NoSymbol ] };	// SMALL LETTER V, CAPITAL LETTER V, PLACEHOLDER CHARACTER
150	key <AB05> { [ b, B, U0253, U0181 ] };	// SMALL LETTER B, CAPITAL LETTER B, SMALL LETTER B WITH HOOK, CAPITAL LETTER B WITH HOOK
151	key <AB06> { [ n, N, U014B, U014A ] };	// SMALL LETTER N, CAPITAL LETTER N, SMALL LETTER ENG, CAPITAL LETTER ENG
152	key <AB07> { [ U002C, U003F, NoSymbol, U00D7 ] };	// COMMA, QUESTION MARK, , MULTIPLY
153	key <AB08> { [ semicolon, period, dead_acute, dead_grave ] };	// SEMICOLON, PERIOD
154	key <AB09> { [ colon, slash, U0323 ] };	// COLON, SLASH, COMBINING DOT BELOW
155	key <AB10> { [ exclam, U00A7 ] };	// EXCLAMATION MARK, SECTION SIGN
156	key <AC01> { [ q, Q, U2014, U2013 ] };	// SMALL LETTER Q, CAPITAL LETTER Q, EM DASH, EN DASH
157	key <AC02> { [ s, S, U201C, U201D ] };	// SMALL LETTER S, CAPITAL LETTER S, LEFT DOUBLE QUOTES, RIGHT DOUBLE QUOTES 
158	key <AC03> { [ d, D, U0257, U018A ] };	// SMALL LETTER D, CAPITAL LETTER D, SMALL LETTER D WITH HOOK, CAPITAL LETTER D WITH HOOK
159	key <AC04> { [ f, F, U00E6, U00C6 ] };	// SMALL LETTER F, CAPITAL LETTER F, SMALL LIGATURE AE, CAPITAL LIGATURE AE
160	key <AC05> { [ g, G, UA78C, UA78B ] };	// SMALL LETTER G, CAPITAL LETTER G, SMALL LETTER GLOTTAL (SALTILLO), CAPITAL LETTER GLOTTAL (SALTILLO)
161	key <AC06> { [ h, H, U0251, U2C6D ] };	// SMALL LETTER H, CAPITAL LETTER H, SMALL LETTER ALPHA, CAPITAL LETTER ALPHA
162	key <AC07> { [ j, J, leftarrow, U2122 ] };	//SMALL LETTER J, CAPITAL LETTER J, LEFT ARROW, TRADE MARK SIGN
163	key <AC08> { [ k, K, downarrow, uparrow ] };	// SMALL LETTER K, CAPITAL LETTER K, DOWN ARROW, UP ARROW
164	key <AC09> { [ l, L, rightarrow, U00A3 ] };	// SMALL LETTER L, CAPITAL LETTER L, RIGHT ARROW, POUND STERLING
165	key <AC10> { [ m, M, U00F9, U00B5 ] };	// SMALL LETTER M, CAPITAL LETTER M, SMALL LETTER U WITH GRAVE, MICRO SYMBOL
166	key <AC11> { [ U0300, U0302, U1DC5, U1DC4 ] };	// COMBINING LOW TONE, COMBINING FALLING TONE, COMBINING LOW-MID TONE, COMBINING MID-HIGH TONE
167	key <AD01> { [ a, A, U025B, U0190 ] };	// SMALL LETTER A, CAPITAL LETTER A, SMALL LETTER OPEN E, CAPITAL LETTER OPEN E
168	key <AD02> { [ z, Z, U2026, U2020 ] };	// SMALL LETTER Z, CAPITAL LETTER Z, ELLIPSIS, DAGGER
169	key <AD03> { [ e, E, U0259, U018F ] };	// SMALL LETTER E, CAPITAL LETTER E, SMALL LETTER SCHWA, CAPITAL LETTER SCHWA
170	key <AD04> { [ r, R, NoSymbol, U00AE ] };	// SMALL LETTER R, CAPITAL LETTER R, , REGISTERED SIGN
171	key <AD05> { [ t, T, U0153, U0152 ] };	// SMALL LETTER T, CAPITAL LETTER T, SMALL LIGATURE OE, CAPITAL LIGATURE OE
172	key <AD06> { [ y, Y, U01B4, U01B3 ] };	// SMALL LETTER Y, CAPITAL LETTER Y, SMALL LETTER Y WITH HOOK, CAPITAL LETTER Y WITH HOOK
173	key <AD07> { [ u, U, U0289, U0244 ] };	// SMALL LETTER U, CAPITAL LETTER U, SMALL LETTER U BAR, CAPITAL LETTER U BAR
174	key <AD08> { [ i, I, U0268, U0197 ] };	// SMALL LETTER I, CAPITAL LETTER I, SMALL LETTER I BAR, CAPITAL LETTER I BAR
175	key <AD09> { [ o, O, U0254, U0186 ] };	// SMALL LETTER O, CAPITAL LETTER O, SMALL LETTER OPEN O, CAPITAL LETTER OPEN O
176	key <AD10> { [ p, P, U00F8, U00D8 ] };	// SMALL LETTER P, CAPITAL LETTER P, SMALL LETTER O BAR, CAPITAL LETTER O BAR
177	key <AD11> { [ U0301, U030C, dead_circumflex, dead_diaeresis ] };	// COMBINING HIGH TONE, COMBINING RISING TONE, DEAD CIRCUMFLEX, DEAD DIAERESIS
178	key <AD12> { [ U0330, U0303, U0304, U030D ] };	// COMBINING TILDE (NASAL) BELOW, COMBINING TILDE (NASAL), COMBINING MID TONE, COMBINING VERTICAL LINE ABOVE
179	key <AE01> { [ U0026, KP_1, U00B9, U2018 ] };	// AMPERSAND, 1, SUPERSCRIPT 1, LEFT SINGLE QUOTE
180	key <AE02> { [ eacute, KP_2, asciitilde, U2019 ] };	// SMALL LETTER E WITH ACUTE, 2, TILDE, RIGHT SINGLE QUOTE
181	key <AE03> { [ U0022, KP_3, U0025 ] };	// QUOTATION MARK, 3, PERCENT SIGN
182	key <AE04> { [ U0027, KP_4, U007B ] };	// APOSTROPHE, 4, LEFT CURLY BRACKET
183	key <AE05> { [ U0028, KP_5, U005B, numbersign ] };	// LEFT PARENTHESIS, 5, LEFT SQUARE BRACKET, NUMBER SIGN
184	key <AE06> { [ U002D, KP_6, U007C ] };	// HYPHEN/MINUS, 6, BAR
185	key <AE07> { [ U00E8, KP_7, U0300 ] };	// SMALL LETTER E WITH GRAVE, 7, COMBINING GRAVE
186	key <AE08> { [ underscore, KP_8, backslash, U20D6 ] };	// UNDERSCORE, 8, BACKSLASH, COMBINING LEFT ARROW ABOVE
187	key <AE09> { [ ccedilla, KP_9, U005E] };	// SMALL LETTER C WITH CEDILLA, 9, CIRCUMFLEX
188	key <AE10> { [ U00E0, KP_0, at, U20D7 ] };	// SMALL LETTER A WITH GRAVE
189	key <AE11> { [ U0029, U00B0, U005D ] };	// RIGHT PARENTHESIS, DEGREE, RIGHT SQUARE BRACKET
190	key <AE12> { [ U003D, U002B, U007D, U00B1 ] };	// EQUAL SIGN, PLUS SIGN, RIGHT CURLY BRACKET, PLUS-MINUS SIGN
191	key <BKSL> { [ U1DC6, U1DC7, KP_Multiply, U00A4 ] };	//  COMBINING MID-LOW, COMBINING HIGH-MID, MULTIPLY, CURRENCY SIGN
192	key <LSGT> { [ U003C, U003E, U00AB, U00BB ] };	// LESS THAN, GREATER THAN, LEFT GUILLEMET, RIGHT GUILLEMET
193	key <TLDE> { [ U0024, U20AC, U00B2, U00B3 ] };	// DOLLAR, EURO, SUPERSCRIPT 2, SUPERSCRIPT 3
194	include "cm(exclamation_switch)"
195};
196
197partial alphanumeric_keys
198xkb_symbols "qwerty"
199{
200	name[Group1] = "English (Cameroon qwerty)";
201	include "level3(ralt_switch)"
202	include "cm(basic)"
203	key <AB01> { [ z, Z, U2026, U2020 ] };	// SMALL LETTER Z, CAPITAL LETTER Z, ELLIPSIS, DAGGER
204	key <AB02> { [ x, X ] };	// SMALL LETTER X, CAPITAL LETTER X
205	key <AB03> { [ c, C, NoSymbol, U00A9 ] };	// SMALL LETTER C, CAPITAL LETTER C, , COPYRIGHT
206	key <AB04> { [ v, V, U25CC, NoSymbol ] };	// SMALL LETTER V, CAPITAL LETTER V, PLACEHOLDER CHARACTER
207	key <AB05> { [ b, B, U0253, U0181 ] };	// SMALL LETTER B, CAPITAL LETTER B, SMALL LETTER B WITH HOOK, CAPITAL LETTER B WITH HOOK
208	key <AB06> { [ n, N, U014B, U014A ] };	// SMALL LETTER N, CAPITAL LETTER N, SMALL LETTER ENG, CAPITAL LETTER ENG
209	key <AB07> { [ m, M, NoSymbol, U2122 ] };	// SMALL LETTER M, CAPITAL LETTER M, , TRADEMARK SIGN
210	key <AB08> { [ U002C, U003C, U2039, U00AB ] };	// COMMA, LESS THAN SIGN, LEFT SINGLE GUILLEMET, LEFT DOUBLE GUILLEMET
211	key <AB09> { [ U002E, U003E, U203A, U00BB ] };    // PERIOD, GREATER THAN SIGN, RIGHT SINGLE GUILLEMET, RIGHT DOUBLE GUILLEMET
212	key <AB10> { [ U002F, U003F, U00F7 ] };    // SLASH, QUESTION MARK, DIVISION SIGN
213	key <AC01> { [ a, A, U025B, U0190 ] };	// SMALL LETTER A, CAPITAL LETTER A, SMALL LETTER OPEN E, CAPITAL LETTER OPEN E
214	key <AC02> { [ s, S ] };	// SMALL LETTER S, CAPITAL LETTER S
215	key <AC03> { [ d, D, U0257, U018A ] };	// SMALL LETTER D, CAPITAL LETTER D, SMALL LETTER D WITH HOOK, CAPITAL LETTER D WITH HOOK
216	key <AC04> { [ f, F, U00E6, U00C6 ] };	// SMALL LETTER F, CAPITAL LETTER F, SMALL LIGATURE AE, CAPITAL LIGATURE AE
217	key <AC05> { [ g, G, UA78C, UA78B ] };	// SMALL LETTER G, CAPITAL LETTER G, SMALL LETTER GLOTTAL (SALTILLO), CAPITAL LETTER GLOTTAL (SALTILLO)
218	key <AC06> { [ h, H, U0251, U2C6D ] };	// SMALL LETTER H, CAPITAL LETTER H, SMALL LETTER ALPHA, CAPITAL LETTER ALPHA
219	key <AC07> { [ j, J, U0330, U0323 ] };	// SMALL LETTER J, CAPITAL LETTER J, COMBINING TILDE (NASAL) BELOW, COMBINING DOT BELOW
220	key <AC08> { [ k, K, U1DC5, U1DC7 ] };	// SMALL LETTER K, CAPITAL LETTER K, COMBINING LOW-MID TONE, COMBINING HIGH-MID
221	key <AC09> { [ l, L, U1DC6, U1DC4 ] };	// SMALL LETTER L, CAPITAL LETTER L, COMBINING MID-LOW, COMBINING MID-HIGH TONE
222	key <AC10> { [ U003B, U003A ] };	// SEMICOLON, COLON
223	key <AC11> { [ U0300, U0302, U0027, U0022 ] };	// COMBINING LOW TONE, COMBINING FALLING TONE, APOSTROPHE, QUOTATION MARK
224	key <AD01> { [ q, Q, U2014, U2013 ] };	// SMALL LETTER Q, CAPITAL LETTER Q, EM DASH, EN DASH
225	key <AD02> { [ w, W, U1E85, U1E84 ] };	// SMALL LETTER W, CAPITAL LETTER W, SMALL LETTER W WITH DIAERESIS, CAPITAL LETTER W WITH DIAERESIS
226	key <AD03> { [ e, E, U0259, U018F ] };	// SMALL LETTER E, CAPITAL LETTER E, SMALL LETTER SCHWA, CAPITAL LETTER SCHWA
227	key <AD04> { [ r, R, NoSymbol, U00AE ] };	// SMALL LETTER R, CAPITAL LETTER R, , REGISTERED SIGN
228	key <AD05> { [ t, T, U0153, U0152 ] };	// SMALL LETTER T, CAPITAL LETTER T, SMALL LIGATURE OE, CAPITAL LIGATURE OE
229	key <AD06> { [ y, Y, U01B4, U01B3 ] };	// SMALL LETTER Y, CAPITAL LETTER Y, SMALL LETTER Y WITH HOOK, CAPITAL LETTER Y WITH HOOK
230	key <AD07> { [ u, U, U0289, U0244 ] };	// SMALL LETTER U, CAPITAL LETTER U, SMALL LETTER U BAR, CAPITAL LETTER U BAR
231	key <AD08> { [ i, I, U0268, U0197 ] };	// SMALL LETTER I, CAPITAL LETTER I, SMALL LETTER I BAR, CAPITAL LETTER I BAR
232	key <AD09> { [ o, O, U0254, U0186 ] };	// SMALL LETTER O, CAPITAL LETTER O, SMALL LETTER OPEN O, CAPITAL LETTER OPEN O
233	key <AD10> { [ p, P, U00F8, U00D8 ] };	// SMALL LETTER P, CAPITAL LETTER P, SMALL LETTER O BAR, CAPITAL LETTER O BAR
234	key <AD11> { [ U0301, U030C, U005B, U007B ] };	// COMBINING HIGH TONE, COMBINING RISING TONE, LEFT SQUARE BRACKET, LEFT CURLY BRACKET
235	key <AD12> { [ U0327, U0308, U005D, U007D ] };	// COMBINING CEDILLA, COMBINING DIAERESIS, RIGHT SQUARE BRACKET, RIGHT CURLY BRACKET
236	key <AE01> { [ U0031, U0021, U00BC ] };	// 1, EXCLAMATION POINT, ONE QUARTER
237	key <AE02> { [ U0032, U0040, U00BD ] };	//2, AT SYMBOL, ONE HALF
238	key <AE03> { [ U0033, U0023, U00BE ] };	// 3, NUMBER SIGN, THREE QUARTERS
239	key <AE04> { [ U0034, U0024, NoSymbol, U20AC ] };	// 4, DOLLAR, , EURO SIGN
240	key <AE08> { [ U0038, U002A, NoSymbol, U00D7 ] };	// 8, ASTERISK, , MATH MULTIPLY
241	key <AE09> { [ U0039, U0028, U2018, U201C ] };	// 9, LEFT PARENTHESIS, LEFT SINGLE QUOTE MARK, LEFT DOUBLE QUOTE MARK
242	key <AE10> { [ U0030, U0029, U2019, U201D ] };	// 0, RIGHT PARENTHESIS, RIGHT SINGLE QUOTE MARK, LEFT DOUBLE QUOTE MARK
243	key <AE11> { [ U002D, U005F, U0304 ] };	// MINUS, UNDERSCORE, COMBINING MID TONE, COMBINING MID TONE
244	key <AE12> { [ U003D, U002B, NoSymbol, U00B1 ] };	// EQUAL, PLUS, , PLUS-MINUS
245	key <BKSL> { [ U005C, U007C ] };	// BACKSLASH, BAR
246	key <TLDE> { [ U030D, U0303, U0060, U007E ] };	// COMBINING VERTICAL LINE ABOVE, COMBINING TILDE ABOVE, GRAVE ACCENT, TILDE
247	include "cm(semicolon_switch)"
248};
249
250
251partial alphanumeric_keys
252xkb_symbols "dvorak"
253{
254	name[Group1] = "English (Cameroon Dvorak)";
255	include "level3(ralt_switch)"
256	include "us(dvorak)"
257	key <AB01> { [ semicolon, colon ] };	// SEMICOLON, COLON
258	key <AB02> { [ q, Q, U2014, U2013 ] };	// SMALL LETTER Q, CAPITAL LETTER Q, EM DASH, EN DASH
259	key <AB03> { [ j, J, U0330, U0323 ] };	// SMALL LETTER J, CAPITAL LETTER J, COMBINING TILDE (NASAL) BELOW, COMBINING DOT BELOW
260	key <AB04> { [ k, K, U1DC5, U1DC7 ] };	// SMALL LETTER K, CAPITAL LETTER K, COMBINING LOW-MID TONE, COMBINING HIGH-MID
261	key <AB05> { [ x, X ] };	// SMALL LETTER X, CAPITAL LETTER X
262	key <AB06> { [ b, B, U0253, U0181 ] };	// SMALL LETTER B, CAPITAL LETTER B, SMALL LETTER B WITH HOOK, CAPITAL LETTER B WITH HOOK
263	key <AB07> { [ m, M, NoSymbol, U2122 ] };	// SMALL LETTER M, CAPITAL LETTER M, , TRADEMARK SIGN
264	key <AB08> { [ w, W, U1E85, U1E84 ] };	// SMALL LETTER W, CAPITAL LETTER W, SMALL LETTER W WITH DIAERESIS, CAPITAL LETTER W WITH DIAERESIS
265	key <AB09> { [ v, V, U25CC, NoSymbol ] };	// SMALL LETTER V, CAPITAL LETTER V, PLACEHOLDER CHARACTER
266	key <AB10> { [ z, Z, U2026, U2020 ] };	// SMALL LETTER Z, CAPITAL LETTER Z, ELLIPSIS, DAGGER
267	key <AC01> { [ a, A, U025B, U0190 ] };	// SMALL LETTER A, CAPITAL LETTER A, SMALL LETTER OPEN E, CAPITAL LETTER OPEN E
268	key <AC02> { [ o, O, U0254, U0186 ] };	// SMALL LETTER O, CAPITAL LETTER O, SMALL LETTER OPEN O, CAPITAL LETTER OPEN O
269	key <AC03> { [ e, E, U0259, U018F ] };	// SMALL LETTER E, CAPITAL LETTER E, SMALL LETTER SCHWA, CAPITAL LETTER SCHWA
270	key <AC04> { [ u, U, U0289, U0244 ] };	// SMALL LETTER U, CAPITAL LETTER U, SMALL LETTER U BAR, CAPITAL LETTER U BAR
271	key <AC05> { [ i, I, U0268, U0197 ] };	// SMALL LETTER I, CAPITAL LETTER I, SMALL LETTER I BAR, CAPITAL LETTER I BAR
272	key <AC06> { [ d, D, U0257, U018A ] };	// SMALL LETTER D, CAPITAL LETTER D, SMALL LETTER D WITH HOOK, CAPITAL LETTER D WITH HOOK
273	key <AC07> { [ h, H, U0251, U2C6D ] };	// SMALL LETTER H, CAPITAL LETTER H, SMALL LETTER ALPHA, CAPITAL LETTER ALPHA
274	key <AC08> { [ t, T, U0153, U0152 ] };	// SMALL LETTER T, CAPITAL LETTER T, SMALL LIGATURE OE, CAPITAL LIGATURE OE
275	key <AC09> { [ n, N, U014B, U014A ] };	// SMALL LETTER N, CAPITAL LETTER N, SMALL LETTER ENG, CAPITAL LETTER ENG
276	key <AC10> { [ s, S ] };	// SMALL LETTER S, CAPITAL LETTER S
277	key <AC11> { [ minus, underscore, U0304 ] };	// MINUS, UNDERSCORE, COMBINING MID TONE
278	key <AD01> { [ U0300, U0302, U0027, U0022 ] };	// COMBINING LOW TONE, COMBINING FALLING TONE, APOSTROPHE, QUOTATION MARK
279	key <AD02> { [ comma, less, U2039, U00AB ] };	// COMMA, LESS THAN SIGN, LEFT SINGLE GUILLEMET, LEFT DOUBLE GUILLEMET
280	key <AD03> { [ period, greater, U203A, U00BB ] };	// PERIOD, GREATER THAN SIGN, RIGHT SINGLE GUILLEMET, RIGHT DOUBLE GUILLEMET
281	key <AD04> { [ p, P, U00F8, U00D8 ] };	// SMALL LETTER P, CAPITAL LETTER P, SMALL LETTER O BAR, CAPITAL LETTER O BAR
282	key <AD05> { [ y, Y, U01B4, U01B3 ] };	// SMALL LETTER Y, CAPITAL LETTER Y, SMALL LETTER Y WITH HOOK, CAPITAL LETTER Y WITH HOOK
283	key <AD06> { [ f, F, U00E6, U00C6 ] };	// SMALL LETTER F, CAPITAL LETTER F, SMALL LIGATURE AE, CAPITAL LIGATURE AE
284	key <AD07> { [ g, G, UA78C, UA78B ] };	// SMALL LETTER G, CAPITAL LETTER G, SMALL LETTER GLOTTAL (SALTILLO), CAPITAL LETTER GLOTTAL (SALTILLO)
285	key <AD08> { [ c, C, NoSymbol, U00A9 ] };	// SMALL LETTER C, CAPITAL LETTER C, , COPYRIGHT
286	key <AD09> { [ r, R, NoSymbol, U00AE ] };	// SMALL LETTER R, CAPITAL LETTER R, , REGISTERED SIGN
287	key <AD10> { [ l, L, U1DC6, U1DC4 ] };	// SMALL LETTER L, CAPITAL LETTER L, COMBINING MID-LOW, COMBINING MID-HIGH TONE
288	key <AD11> { [ slash, U003F, U00F7, U0294 ] };	// SLASH, QUESTION MARK, DIVISION SIGN, GLOTTAL STOP
289	key <AD12> { [ equal, plus, NoSymbol, plusminus ] };	// EQUAL, PLUS, , PLUS-MINUS
290	key <AE01> { [ KP_1, exclam, U00BC ] };	// 1, EXCLAMATION POINT, ONE QUARTER
291	key <AE02> { [ KP_2, at, U00BD ] };	// 2, AT SYMBOL, ONE HALF
292	key <AE03> { [ KP_3, numbersign, U00BE ] };	// 3, NUMBER SIGN, THREE QUARTERS
293	key <AE04> { [ KP_4, dollar, NoSymbol, U20AC ] };	// 4, DOLLAR, , EURO SIGN
294	key <AE05> { [ KP_5, percent ] };	// 5, PERCENT
295	key <AE06> { [ KP_6, asciicircum ] };	// 6, CARET
296	key <AE07> { [ KP_7, ampersand ] };	// 7, AMPERSAND
297	key <AE08> { [ KP_8, asterisk, NoSymbol, multiply ] };	// 8, ASTERISK, , MULTIPLY
298	key <AE09> { [ KP_9, parenleft, leftsinglequotemark, leftdoublequotemark ] };	// 9, LEFT PARENTHESIS, LEFT SINGLE QUOTE MARK, LEFT DOUBLE QUOTE MARK
299	key <AE10> { [ KP_0, parenright, rightsinglequotemark, rightdoublequotemark ] };	// 0, RIGHT PARENTHESIS, RIGHT SINGLE QUOTE MARK, LEFT DOUBLE QUOTE MARK
300	key <AE11> { [ U0301, U030C, U005B, U007B ] };	// COMBINING HIGH TONE, COMBINING RISING TONE, LEFT SQUARE BRACKET, LEFT CURLY BRACKET
301	key <AE12> { [ U0327, dead_diaeresis, U005D, braceright ] };	// COMBINING CEDILLA, DEAD DIAERESIS, RIGHT SQUARE BRACKET, RIGHT CURLY BRACKET
302	key <BKSL> { [ backslash, bar ] };	// BACKSLASH, BAR
303	key <TLDE> { [ U030D, U0303, U0060, U007E ] };	// COMBINING VERTICAL LINE ABOVE, COMBINING TILDE ABOVE, GRAVE ACCENT, TILDE
304	include "cm(semicolon_switch_dvorak)"
305};
306
307// The following code creates the "Cameroon key" phenomenon.
308
309partial modifier_keys
310xkb_symbols "semicolon_switch" {
311	key <AC10> {
312	symbols[Group1] = [ ISO_Level3_Latch,	colon,	semicolon,	colon ]};
313	modifier_map Mod5	{ ISO_Level3_Latch };
314};
315
316partial modifier_keys
317xkb_symbols "exclamation_switch" {
318	key <AB10> {
319	symbols[Group1] = [ ISO_Level3_Latch,	U00A7,	exclam,	U00A7 ]
320	};
321	modifier_map Mod5	{ ISO_Level3_Latch };
322};
323
324partial modifier_keys
325xkb_symbols "semicolon_switch_dvorak" {
326	key <AB01> {
327	symbols[Group1] = [ ISO_Level3_Latch,	colon,	semicolon,	colon ]
328	};
329modifier_map Mod5	{ ISO_Level3_Latch };
330};
331
332