cm revision 21fe479e
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  partial alphanumeric_keys
40xkb_symbols "basic" {
41
42	name[Group1]="English (Cameroon)";
43
44	key <TLDE> { [ grave, asciitilde ] };
45	key <AE01> { [ 1, exclam ] };
46	key <AE02> { [ 2, at ] };
47	key <AE03> { [ 3, numbersign ] };
48	key <AE04> { [ 4, dollar ] };
49	key <AE05> { [ 5, percent ] };
50	key <AE06> { [ 6, asciicircum ] };
51	key <AE07> { [ 7, ampersand ] };
52	key <AE08> { [ 8, asterisk ] };
53	key <AE09> { [ 9, parenleft ] };
54	key <AE10> { [ 0, parenright ] };
55	key <AE11> { [ minus, underscore ] };
56	key <AE12> { [ equal, plus ] };
57
58	key <AD01> { [ q, Q ] };
59	key <AD02> { [ w, W ] };
60	key <AD03> { [ e, E ] };
61	key <AD04> { [ r, R ] };
62	key <AD05> { [ t, T ] };
63	key <AD06> { [ y, Y ] };
64	key <AD07> { [ u, U ] };
65	key <AD08> { [ i, I ] };
66	key <AD09> { [ o, O ] };
67	key <AD10> { [ p, P ] };
68	key <AD11> { [ bracketleft, braceleft ] };
69	key <AD12> { [ bracketright, braceright ] };
70	key <AC01> { [ a, A ] };
71	key <AC02> { [ s, S ] };
72	key <AC03> { [ d, D ] };
73	key <AC04> { [ f, F ] };
74	key <AC05> { [ g, G ] };
75	key <AC06> { [ h, H ] };
76	key <AC07> { [ j, J ] };
77	key <AC08> { [ k, K ] };
78	key <AC09> { [ l, L ] };
79	key <AC10> { [ semicolon, colon ] };
80	key <AC11> { [ apostrophe, quotedbl ] };
81
82	key <AB01> { [ z, Z ] };
83	key <AB02> { [ x, X ] };
84	key <AB03> { [ c, C ] };
85	key <AB04> { [ v, V ] };
86	key <AB05> { [ b, B ] };
87	key <AB06> { [ n, N ] };
88	key <AB07> { [ m, M ] };
89	key <AB08> { [ comma, less ] };
90	key <AB09> { [ period, greater ] };
91	key <AB10> { [ slash, U003F ] };
92
93	key <BKSL> { [ backslash, bar ] };
94};
95
96partial alphanumeric_keys
97xkb_symbols "french"
98{
99	include "latin"
100	name[Group1]="French (Cameroon)";
101
102	key <AE01> { [ ampersand, 1, onesuperior, exclamdown ] };
103	key <AE02> { [ eacute, 2, asciitilde, oneeighth ] };
104	key <AE03> { [ quotedbl, 3, numbersign, sterling ] };
105	key <AE04> { [apostrophe, 4, braceleft, dollar ] };
106	key <AE05> { [ parenleft, 5, bracketleft, threeeighths ] };
107	key <AE06> { [ minus, 6, bar, fiveeighths ] };
108	key <AE07> { [ egrave, 7, grave, seveneighths ] };
109	key <AE08> { [underscore, 8, backslash, trademark ] };
110	key <AE09> { [ ccedilla, 9, asciicircum, plusminus ] };
111	key <AE10> { [ agrave, 0, at, degree ] };
112	key <AE11> { [parenright, degree, bracketright, questiondown ] };
113	key <AE12> { [ equal, plus, braceright, dead_ogonek ] };
114
115	key <AD01> { [ a, A, ae, AE ] };
116	key <AD02> { [ z, Z, guillemotleft, less ] };
117	key <AD03> { [ e, E, EuroSign, cent ] };
118	key <AD11> { [dead_circumflex, dead_diaeresis, dead_diaeresis, dead_abovering ] };
119	key <AD12> { [ dollar, sterling, currency, dead_macron ] };
120
121	key <AC01> { [ q, Q, at, Greek_OMEGA ] };
122	key <AC10> { [ m, M, mu, masculine ] };
123	key <AC11> { [ ugrave, percent, dead_circumflex, dead_caron] };
124	key <TLDE> { [twosuperior, asciitilde, notsign, notsign ] };
125
126	key <BKSL> { [ asterisk, mu, dead_grave, dead_breve ] };
127	key <AB01> { [ w, W, lstroke, Lstroke ] };
128	key <AB07> { [ comma, U003F, dead_acute, dead_doubleacute ] };
129	key <AB08> { [ semicolon, period, horizconnector, multiply ] };
130	key <AB09> { [ colon, slash, periodcentered, division ] };
131	key <AB10> { [ exclam, section, dead_belowdot, dead_abovedot ] };
132
133	include "level3(ralt_switch)"
134};
135
136partial alphanumeric_keys
137xkb_symbols "azerty"
138{
139	include "cm(basic)"
140	name[Group1] = "Cameroon Multilingual (azerty)";
141	key <AB01> { [ w, W, U1E85, U1E84 ] };	//  SMALL LETTER W,  CAPITAL LETTER W, SMALL LETTER W WITH DIAERESIS, CAPITAL LETTER W WITH DIAERESIS
142	key <AB02> { [ x, X, U2039, U203A ] };	// SMALL LETTER X, CAPITAL LETTER X, SINGLE LEFT-POINTING ANGLE QUOTATION MARK, SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
143	key <AB03> { [ c, C, U0327, copyright ] };	// SMALL LETTER C, CAPITAL LETTER C, COMBINING CEDILLA, COPYRIGHT SIGN
144	key <AB04> { [ v, V, UA78C, UA78B ] };	// SMALL LETTER V, CAPITAL LETTER V, SMALL LETTER GLOTTAL (SALTILLO), CAPITAL LETTER GLOTTAL (SALTILLO)
145	key <AB05> { [ b, B, U0253, U0181 ] };	// SMALL LETTER B, CAPITAL LETTER B, SMALL LETTER B WITH HOOK, CAPITAL LETTER B WITH HOOK
146	key <AB06> { [ n, N, U014B, U014A ] };	// SMALL LETTER N, CAPITAL LETTER N, SMALL LETTER ENG, CAPITAL LETTER ENG
147	key <AB07> { [ U002C, U003F, NoSymbol, U00D7 ] };	// COMMA, QUESTION MARK, , MULTIPLY
148	key <AB08> { [ semicolon, period, dead_acute, dead_grave ] };	// SEMICOLON, PERIOD
149	key <AB09> { [ colon, slash, U0323 ] };	// COLON, SLASH, COMBINING DOT BELOW
150	key <AB10> { [ exclam, U00A7 ] };	// EXCLAMATION MARK, SECTION SIGN
151	key <AC01> { [ q, Q, U2014, U2013 ] };	// SMALL LETTER Q, CAPITAL LETTER Q, EM DASH, EN DASH
152	key <AC02> { [ s, S, U201C, U201D ] };	// SMALL LETTER S, CAPITAL LETTER S, LEFT DOUBLE QUOTES, RIGHT DOUBLE QUOTES 
153	key <AC03> { [ d, D, U0257, U018A ] };	// SMALL LETTER D, CAPITAL LETTER D, SMALL LETTER D WITH HOOK, CAPITAL LETTER D WITH HOOK
154	key <AC04> { [ f, F, U00E6, U00C6 ] };	// SMALL LETTER F, CAPITAL LETTER F, SMALL LIGATURE AE, CAPITAL LIGATURE AE
155	key <AC05> { [ g, G, U02BC, UA78B ] };	// SMALL LETTER G, CAPITAL LETTER G, CURVED GLOTTAL, CAPITAL LETTER GLOTTAL (SALTILLO)
156	key <AC06> { [ h, H, U0251, U2C6D ] };	// SMALL LETTER H, CAPITAL LETTER H, SMALL LETTER ALPHA, CAPITAL LETTER ALPHA
157	key <AC07> { [ j, J, leftarrow, U2122 ] };	//SMALL LETTER J, CAPITAL LETTER J, LEFT ARROW, TRADE MARK SIGN
158	key <AC08> { [ k, K, downarrow, uparrow ] };	// SMALL LETTER K, CAPITAL LETTER K, DOWN ARROW, UP ARROW
159	key <AC09> { [ l, L, rightarrow, U00A3 ] };	// SMALL LETTER L, CAPITAL LETTER L, RIGHT ARROW, POUND STERLING
160	key <AC10> { [ m, M, U00F9, U00B5 ] };	// SMALL LETTER M, CAPITAL LETTER M, SMALL LETTER U WITH GRAVE, MICRO SYMBOL
161	key <AC11> { [ U0300, U0302, U1DC5, U1DC4 ] };	// COMBINING LOW TONE, COMBINING FALLING TONE, COMBINING LOW-MID TONE, COMBINING MID-HIGH TONE
162	key <AD01> { [ a, A, U025B, U0190 ] };	// SMALL LETTER A, CAPITAL LETTER A, SMALL LETTER OPEN E, CAPITAL LETTER OPEN E
163	key <AD02> { [ z, Z, U2026, U2020 ] };	// SMALL LETTER Z, CAPITAL LETTER Z, ELLIPSIS, DAGGER
164	key <AD03> { [ e, E, U0259, U018F ] };	// SMALL LETTER E, CAPITAL LETTER E, SMALL LETTER SCHWA, CAPITAL LETTER SCHWA
165	key <AD04> { [ r, R, U25CC, U00AE ] };	// SMALL LETTER R, CAPITAL LETTER R, PLACEHOLDER SYMBOL, REGISTERED SIGN
166	key <AD05> { [ t, T, U0153, U0152 ] };	// SMALL LETTER T, CAPITAL LETTER T, SMALL LIGATURE OE, CAPITAL LIGATURE OE
167	key <AD06> { [ y, Y, U01B4, U01B3 ] };	// SMALL LETTER Y, CAPITAL LETTER Y, SMALL LETTER Y WITH HOOK, CAPITAL LETTER Y WITH HOOK
168	key <AD07> { [ u, U, U0289, U0244 ] };	// SMALL LETTER U, CAPITAL LETTER U, SMALL LETTER U BAR, CAPITAL LETTER U BAR
169	key <AD08> { [ i, I, U0268, U0197 ] };	// SMALL LETTER I, CAPITAL LETTER I, SMALL LETTER I BAR, CAPITAL LETTER I BAR
170	key <AD09> { [ o, O, U0254, U0186 ] };	// SMALL LETTER O, CAPITAL LETTER O, SMALL LETTER OPEN O, CAPITAL LETTER OPEN O
171	key <AD10> { [ p, P, U00F8, U00D8 ] };	// SMALL LETTER P, CAPITAL LETTER P, SMALL LETTER O BAR, CAPITAL LETTER O BAR
172	key <AD11> { [ U0301, U030C, dead_circumflex, dead_diaeresis ] };	// COMBINING HIGH TONE, COMBINING RISING TONE, DEAD CIRCUMFLEX, DEAD DIAERESIS
173	key <AD12> { [ U0330, U0303, U0304, U030D ] };	// COMBINING TILDE (NASAL) BELOW, COMBINING TILDE (NASAL), COMBINING MID TONE, COMBINING VERTICAL LINE ABOVE
174	key <AE01> { [ U0026, KP_1, U00B9, U2018 ] };	// AMPERSAND, 1, SUPERSCRIPT 1, LEFT SINGLE QUOTE
175	key <AE02> { [ eacute, KP_2, asciitilde, U2019 ] };	// SMALL LETTER E WITH ACUTE, 2, TILDE, RIGHT SINGLE QUOTE
176	key <AE03> { [ U0022, KP_3, U0025 ] };	// QUOTATION MARK, 3, PERCENT SIGN
177	key <AE04> { [ U0027, KP_4, U007B ] };	// APOSTROPHE, 4, LEFT CURLY BRACKET
178	key <AE05> { [ U0028, KP_5, U005B, numbersign ] };	// LEFT PARENTHESIS, 5, LEFT SQUARE BRACKET, NUMBER SIGN
179	key <AE06> { [ U002D, KP_6, U007C ] };	// HYPHEN/MINUS, 6, BAR
180	key <AE07> { [ U00E8, KP_7, U0300 ] };	// SMALL LETTER E WITH GRAVE, 7, COMBINING GRAVE
181	key <AE08> { [ underscore, KP_8, backslash, U20D6 ] };	// UNDERSCORE, 8, BACKSLASH, COMBINING LEFT ARROW ABOVE
182	key <AE09> { [ ccedilla, KP_9, U005E] };	// SMALL LETTER C WITH CEDILLA, 9, CIRCUMFLEX
183	key <AE10> { [ U00E0, KP_0, at, U20D7 ] };	// SMALL LETTER A WITH GRAVE
184	key <AE11> { [ U0029, U00B0, U005D ] };	// RIGHT PARENTHESIS, DEGREE, RIGHT SQUARE BRACKET
185	key <AE12> { [ U003D, U002B, U007D, U00B1 ] };	// EQUAL SIGN, PLUS SIGN, RIGHT CURLY BRACKET, PLUS-MINUS SIGN
186	key <BKSL> { [ U1DC6, U1DC7, KP_Multiply, U00A4 ] };	//  COMBINING MID-LOW, COMBINING HIGH-MID, MULTIPLY, CURRENCY SIGN
187	key <LSGT> { [ U003C, U003E, U00AB, U00BB ] };	// LESS THAN, GREATER THAN, LEFT GUILLEMET, RIGHT GUILLEMET
188	key <TLDE> { [ U0024, U20AC, U00B2, U00B3 ] };	// DOLLAR, EURO, SUPERSCRIPT 2, SUPERSCRIPT 3
189	include "cm(exclamation_switch)"
190	include "level3(ralt_switch)"
191};
192
193partial alphanumeric_keys
194xkb_symbols "qwerty"
195{
196	include "cm(basic)"
197	name[Group1] = "Cameroon Multilingual (qwerty)";
198	key <AB01> { [ z, Z, U2026, U2020 ] };	// SMALL LETTER Z, CAPITAL LETTER Z, ELLIPSIS, DAGGER
199	key <AB02> { [ x, X ] };	// SMALL LETTER X, CAPITAL LETTER X
200	key <AB03> { [ c, C, U0327, U00A9 ] };	// SMALL LETTER C, CAPITAL LETTER C, CEDILLA, COPYRIGHT
201	key <AB04> { [ v, V, UA78C, UA78B ] };	// SMALL LETTER V, CAPITAL LETTER V, SMALL LETTER GLOTTAL (SALTILLO), CAPITAL LETTER GLOTTAL (SALTILLO)
202	key <AB05> { [ b, B, U0253, U0181 ] };	// SMALL LETTER B, CAPITAL LETTER B, SMALL LETTER B WITH HOOK, CAPITAL LETTER B WITH HOOK
203	key <AB06> { [ n, N, U014B, U014A ] };	// SMALL LETTER N, CAPITAL LETTER N, SMALL LETTER ENG, CAPITAL LETTER ENG
204	key <AB07> { [ m, M, NoSymbol, U2122 ] };	// SMALL LETTER M, CAPITAL LETTER M, , TRADEMARK SIGN
205	key <AB08> { [ U002C, U003C, U2039, U00AB ] };	// COMMA, LESS THAN SIGN, LEFT SINGLE GUILLEMET, LEFT DOUBLE GUILLEMET
206	key <AB09> { [ U002E, U003E, U203A, U00BB ] };    // PERIOD, GREATER THAN SIGN, RIGHT SINGLE GUILLEMET, RIGHT DOUBLE GUILLEMET
207	key <AB10> { [ U002F, U003F, U00F7 ] };    // SLASH, QUESTION MARK, DIVISION SIGN
208	key <AC01> { [ a, A, U025B, U0190 ] };	// SMALL LETTER A, CAPITAL LETTER A, SMALL LETTER OPEN E, CAPITAL LETTER OPEN E
209	key <AC02> { [ s, S ] };	// SMALL LETTER S, CAPITAL LETTER S
210	key <AC03> { [ d, D, U0257, U018A ] };	// SMALL LETTER D, CAPITAL LETTER D, SMALL LETTER D WITH HOOK, CAPITAL LETTER D WITH HOOK
211	key <AC04> { [ f, F, U00E6, U00C6 ] };	// SMALL LETTER F, CAPITAL LETTER F, SMALL LIGATURE AE, CAPITAL LIGATURE AE
212	key <AC05> { [ g, G, U02BC, UA78B ] };	// SMALL LETTER G, CAPITAL LETTER G, CURVED GLOTTAL, CAPITAL LETTER GLOTTAL (SALTILLO)
213	key <AC06> { [ h, H, U0251, U2C6D ] };	// SMALL LETTER H, CAPITAL LETTER H, SMALL LETTER ALPHA, CAPITAL LETTER ALPHA
214	key <AC07> { [ j, J, U0330, U0323 ] };	// SMALL LETTER J, CAPITAL LETTER J, COMBINING TILDE (NASAL) BELOW, COMBINING DOT BELOW
215	key <AC08> { [ k, K, U1DC5, U1DC7 ] };	// SMALL LETTER K, CAPITAL LETTER K, COMBINING LOW-MID TONE, COMBINING HIGH-MID
216	key <AC09> { [ l, L, U1DC6, U1DC4 ] };	// SMALL LETTER L, CAPITAL LETTER L, COMBINING MID-LOW, COMBINING MID-HIGH TONE
217	key <AC10> { [ U003B, U003A ] };	// SEMICOLON, COLON
218	key <AC11> { [ U0300, U0302, U0027, U0022 ] };	// COMBINING LOW TONE, COMBINING FALLING TONE, APOSTROPHE, QUOTATION MARK
219	key <AD01> { [ q, Q, U2014, U2013 ] };	// SMALL LETTER Q, CAPITAL LETTER Q, EM DASH, EN DASH
220	key <AD02> { [ w, W, U1E85, U1E84 ] };	// SMALL LETTER W, CAPITAL LETTER W, SMALL LETTER W WITH DIAERESIS, CAPITAL LETTER W WITH DIAERESIS
221	key <AD03> { [ e, E, U0259, U018F ] };	// SMALL LETTER E, CAPITAL LETTER E, SMALL LETTER SCHWA, CAPITAL LETTER SCHWA
222	key <AD04> { [ r, R, U25CC, U00AE ] };	// SMALL LETTER R, CAPITAL LETTER R, PLACEHOLDER SYMBOL, REGISTERED SIGN
223	key <AD05> { [ t, T, U0153, U0152 ] };	// SMALL LETTER T, CAPITAL LETTER T, SMALL LIGATURE OE, CAPITAL LIGATURE OE
224	key <AD06> { [ y, Y, U01B4, U01B3 ] };	// SMALL LETTER Y, CAPITAL LETTER Y, SMALL LETTER Y WITH HOOK, CAPITAL LETTER Y WITH HOOK
225	key <AD07> { [ u, U, U0289, U0244 ] };	// SMALL LETTER U, CAPITAL LETTER U, SMALL LETTER U BAR, CAPITAL LETTER U BAR
226	key <AD08> { [ i, I, U0268, U0197 ] };	// SMALL LETTER I, CAPITAL LETTER I, SMALL LETTER I BAR, CAPITAL LETTER I BAR
227	key <AD09> { [ o, O, U0254, U0186 ] };	// SMALL LETTER O, CAPITAL LETTER O, SMALL LETTER OPEN O, CAPITAL LETTER OPEN O
228	key <AD10> { [ p, P, U00F8, U00D8 ] };	// SMALL LETTER P, CAPITAL LETTER P, SMALL LETTER O BAR, CAPITAL LETTER O BAR
229	key <AD11> { [ U0301, U030C, U005B, U007B ] };	// COMBINING HIGH TONE, COMBINING RISING TONE, LEFT SQUARE BRACKET, LEFT CURLY BRACKET
230	key <AD12> { [ U0327, U0308, U005D, U007D ] };	// COMBINING CEDILLA, COMBINING DIAERESIS, RIGHT SQUARE BRACKET, RIGHT CURLY BRACKET
231	key <AE01> { [ U0031, U0021, U00BC ] };	// 1, EXCLAMATION POINT, ONE QUARTER
232	key <AE02> { [ U0032, U0040, U00BD ] };	//2, AT SYMBOL, ONE HALF
233	key <AE03> { [ U0033, U0023, U00BE ] };	// 3, NUMBER SIGN, THREE QUARTERS
234	key <AE04> { [ U0034, U0024, NoSymbol, U20AC ] };	// 4, DOLLAR, , EURO SIGN
235	key <AE08> { [ U0038, U002A, NoSymbol, U00D7 ] };	// 8, ASTERISK, , MATH MULTIPLY
236	key <AE09> { [ U0039, U0028, U2018, U201C ] };	// 9, LEFT PARENTHESIS, LEFT SINGLE QUOTE MARK, LEFT DOUBLE QUOTE MARK
237	key <AE10> { [ U0030, U0029, U2019, U201D ] };	// 0, RIGHT PARENTHESIS, RIGHT SINGLE QUOTE MARK, LEFT DOUBLE QUOTE MARK
238	key <AE11> { [ U002D, U005F, U0304 ] };	// MINUS, UNDERSCORE, COMBINING MID TONE, COMBINING MID TONE
239	key <AE12> { [ U003D, U002B, NoSymbol, U00B1 ] };	// EQUAL, PLUS, , PLUS-MINUS
240	key <BKSL> { [ U005C, U007C ] };	// BACKSLASH, BAR
241	key <TLDE> { [ U030D, U0303, U0060, U007E ] };	// COMBINING VERTICAL LINE ABOVE, COMBINING TILDE ABOVE, GRAVE ACCENT, TILDE
242	include "cm(semicolon_switch)"
243	include "level3(ralt_switch)"
244};
245
246partial alphanumeric_keys
247xkb_symbols "dvorak"
248{
249	include "us(dvorak)"
250	name[Group1] = "Cameroon Multilingual (Dvorak)";
251	key <AB01> { [ semicolon, colon ] };	// SEMICOLON, COLON
252	key <AB02> { [ q, Q, U2014, U2013 ] };	// SMALL LETTER Q, CAPITAL LETTER Q, EM DASH, EN DASH
253	key <AB03> { [ j, J, U0330, U0323 ] };	// SMALL LETTER J, CAPITAL LETTER J, COMBINING TILDE (NASAL) BELOW, COMBINING DOT BELOW
254	key <AB04> { [ k, K, U1DC5, U1DC7 ] };	// SMALL LETTER K, CAPITAL LETTER K, COMBINING LOW-MID TONE, COMBINING HIGH-MID
255	key <AB05> { [ x, X ] };	// SMALL LETTER X, CAPITAL LETTER X
256	key <AB06> { [ b, B, U0253, U0181 ] };	// SMALL LETTER B, CAPITAL LETTER B, SMALL LETTER B WITH HOOK, CAPITAL LETTER B WITH HOOK
257	key <AB07> { [ m, M, NoSymbol, U2122 ] };	// SMALL LETTER M, CAPITAL LETTER M, , TRADEMARK SIGN
258	key <AB08> { [ w, W, U1E85, U1E84 ] };	// SMALL LETTER W, CAPITAL LETTER W, SMALL LETTER W WITH DIAERESIS, CAPITAL LETTER W WITH DIAERESIS
259	key <AB09> { [ v, V, UA78C, UA78B ] };	// SMALL LETTER V, CAPITAL LETTER V, SMALL LETTER GLOTTAL (SALTILLO), CAPITAL LETTER GLOTTAL (SALTILLO)
260	key <AB10> { [ z, Z, U2026, U2020 ] };	// SMALL LETTER Z, CAPITAL LETTER Z, ELLIPSIS, DAGGER
261	key <AC01> { [ a, A, U025B, U0190 ] };	// SMALL LETTER A, CAPITAL LETTER A, SMALL LETTER OPEN E, CAPITAL LETTER OPEN E
262	key <AC02> { [ o, O, U0254, U0186 ] };	// SMALL LETTER O, CAPITAL LETTER O, SMALL LETTER OPEN O, CAPITAL LETTER OPEN O
263	key <AC03> { [ e, E, U0259, U018F ] };	// SMALL LETTER E, CAPITAL LETTER E, SMALL LETTER SCHWA, CAPITAL LETTER SCHWA
264	key <AC04> { [ u, U, U0289, U0244 ] };	// SMALL LETTER U, CAPITAL LETTER U, SMALL LETTER U BAR, CAPITAL LETTER U BAR
265	key <AC05> { [ i, I, U0268, U0197 ] };	// SMALL LETTER I, CAPITAL LETTER I, SMALL LETTER I BAR, CAPITAL LETTER I BAR
266	key <AC06> { [ d, D, U0257, U018A ] };	// SMALL LETTER D, CAPITAL LETTER D, SMALL LETTER D WITH HOOK, CAPITAL LETTER D WITH HOOK
267	key <AC07> { [ h, H, U0251, U2C6D ] };	// SMALL LETTER H, CAPITAL LETTER H, SMALL LETTER ALPHA, CAPITAL LETTER ALPHA
268	key <AC08> { [ t, T, U0153, U0152 ] };	// SMALL LETTER T, CAPITAL LETTER T, SMALL LIGATURE OE, CAPITAL LIGATURE OE
269	key <AC09> { [ n, N, U014B, U014A ] };	// SMALL LETTER N, CAPITAL LETTER N, SMALL LETTER ENG, CAPITAL LETTER ENG
270	key <AC10> { [ s, S ] };	// SMALL LETTER S, CAPITAL LETTER S
271	key <AC11> { [ minus, underscore, U0304 ] };	// MINUS, UNDERSCORE, COMBINING MID TONE
272	key <AD01> { [ U0300, U0302, U0027, U0022 ] };	// COMBINING LOW TONE, COMBINING FALLING TONE, APOSTROPHE, QUOTATION MARK
273	key <AD02> { [ comma, less, U2039, U00AB ] };	// COMMA, LESS THAN SIGN, LEFT SINGLE GUILLEMET, LEFT DOUBLE GUILLEMET
274	key <AD03> { [ period, greater, U203A, U00BB ] };	// PERIOD, GREATER THAN SIGN, RIGHT SINGLE GUILLEMET, RIGHT DOUBLE GUILLEMET
275	key <AD04> { [ p, P, U00F8, U00D8 ] };	// SMALL LETTER P, CAPITAL LETTER P, SMALL LETTER O BAR, CAPITAL LETTER O BAR
276	key <AD05> { [ y, Y, U01B4, U01B3 ] };	// SMALL LETTER Y, CAPITAL LETTER Y, SMALL LETTER Y WITH HOOK, CAPITAL LETTER Y WITH HOOK
277	key <AD06> { [ f, F, U00E6, U00C6 ] };	// SMALL LETTER F, CAPITAL LETTER F, SMALL LIGATURE AE, CAPITAL LIGATURE AE
278	key <AD07> { [ g, G, U02BC, UA78B ] };	// SMALL LETTER G, CAPITAL LETTER G, CURVED GLOTTAL, CAPITAL LETTER GLOTTAL (SALTILLO)
279	key <AD08> { [ c, C, U0327, U00A9 ] };	// SMALL LETTER C, CAPITAL LETTER C, CEDILLA, COPYRIGHT
280	key <AD09> { [ r, R, U25CC, U00AE ] };	// SMALL LETTER R, CAPITAL LETTER R, PLACEHOLDER SYMBOL, REGISTERED SIGN
281	key <AD10> { [ l, L, U1DC6, U1DC4 ] };	// SMALL LETTER L, CAPITAL LETTER L, COMBINING MID-LOW, COMBINING MID-HIGH TONE
282	key <AD11> { [ slash, U003F, U00F7, U0294 ] };	// SLASH, QUESTION MARK, DIVISION SIGN, GLOTTAL STOP
283	key <AD12> { [ equal, plus, NoSymbol, plusminus ] };	// EQUAL, PLUS, , PLUS-MINUS
284	key <AE01> { [ KP_1, exclam, U00BC ] };	// 1, EXCLAMATION POINT, ONE QUARTER
285	key <AE02> { [ KP_2, at, U00BD ] };	// 2, AT SYMBOL, ONE HALF
286	key <AE03> { [ KP_3, numbersign, U00BE ] };	// 3, NUMBER SIGN, THREE QUARTERS
287	key <AE04> { [ KP_4, dollar, NoSymbol, U20AC ] };	// 4, DOLLAR, , EURO SIGN
288	key <AE05> { [ KP_5, percent ] };	// 5, PERCENT
289	key <AE06> { [ KP_6, asciicircum ] };	// 6, CARET
290	key <AE07> { [ KP_7, ampersand ] };	// 7, AMPERSAND
291	key <AE08> { [ KP_8, asterisk, NoSymbol, multiply ] };	// 8, ASTERISK, , MULTIPLY
292	key <AE09> { [ KP_9, parenleft, leftsinglequotemark, leftdoublequotemark ] };	// 9, LEFT PARENTHESIS, LEFT SINGLE QUOTE MARK, LEFT DOUBLE QUOTE MARK
293	key <AE10> { [ KP_0, parenright, rightsinglequotemark, rightdoublequotemark ] };	// 0, RIGHT PARENTHESIS, RIGHT SINGLE QUOTE MARK, LEFT DOUBLE QUOTE MARK
294	key <AE11> { [ U0301, U030C, U005B, U007B ] };	// COMBINING HIGH TONE, COMBINING RISING TONE, LEFT SQUARE BRACKET, LEFT CURLY BRACKET
295	key <AE12> { [ U0327, dead_diaeresis, U005D, braceright ] };	// COMBINING CEDILLA, DEAD DIAERESIS, RIGHT SQUARE BRACKET, RIGHT CURLY BRACKET
296	key <BKSL> { [ backslash, bar ] };	// BACKSLASH, BAR
297	key <TLDE> { [ U030D, U0303, U0060, U007E ] };	// COMBINING VERTICAL LINE ABOVE, COMBINING TILDE ABOVE, GRAVE ACCENT, TILDE
298	include "cm(semicolon_switch_dvorak)"
299	include "level3(ralt_switch)"
300};
301
302// The following code creates the "Cameroon key" phenomenon.
303
304partial modifier_keys
305xkb_symbols "semicolon_switch" {
306	key <AC10> {
307	symbols[Group1] = [ ISO_Level3_Latch,	colon,	semicolon,	colon ]};
308	modifier_map Mod5	{ ISO_Level3_Latch };
309};
310
311partial modifier_keys
312xkb_symbols "exclamation_switch" {
313	key <AB10> {
314	symbols[Group1] = [ ISO_Level3_Latch,	U00A7,	exclam,	U00A7 ]
315	};
316	modifier_map Mod5	{ ISO_Level3_Latch };
317};
318
319partial modifier_keys
320xkb_symbols "semicolon_switch_dvorak" {
321	key <AB01> {
322	symbols[Group1] = [ ISO_Level3_Latch,	colon,	semicolon,	colon ]
323	};
324modifier_map Mod5	{ ISO_Level3_Latch };
325};
326
327// EXTRAS:
328
329// ------- begin Mmuock keyboard map ------------------------------------------
330//   This layout is used for the Mmuock alphabet as described in the book
331//   _The Sound of Mmuock: Orthography (2. ed.)_ [isbn: 978-9956-645-28-1].
332//   Mmuock is the language of the Mmuock (local: Muòk) people of Western
333//   Cameroon.  
334// 
335//      Author: Tano Fotang <fotang at mmuock dot org>
336//     Created: 2014-06-24
337//     Version: 1.1
338//
339// CHANGES v 1.0:
340//	2014-07-06 corrected shifted level3 of <AC11> to quotedbl
341// CHANGES v 1.1:
342//  2015-05-23 1- added dead_tilde to key <TILDE>; this is needed to produce
343//               the letter <ñ> which was totally missing from the keyboard
344//             2- added letter <dz> to <AB01>; the letter had been missing.
345//             3- if we're not re-defining particular symbols from the included
346//               latin layout, then maintain the original latin mappings.
347//               Previously, we had set them to NoSymbol. Now, we want to
348//               keep the original latin mappings except for those few that we
349//               want to overwrite for our own keyboard.
350//
351// NOTES:
352// 0. This map is based on the Latin layout for the US keyboard.
353//
354// 1. We use combining diacritical marks to create tone markings. There are 13
355//    tones that need to be indicated.
356//
357// 2. When composing Mmuock text, about every fourth symbol is for tone. To
358//    facilitate easy and fast input, the combining diacritics are placed on
359//    the home row (AC). To reduce the number of key strokes required, the
360//    unshifted third level is used. Only 5 of the combining diacritics are not
361//    on the AC row; they are in the top number row, AE.
362//
363// 3. Symbols that are used infrequently (`r', `h', `ɛ', `ǝ', etc.) are placed
364//    in level3. Additionally, the letter eng (`ŋ'), although commonly used, 
365//    is found in level3 because it can alternatively be represented by <ng>.
366//    (Indeed, the keyman keyboard actually replaces <ng> with `ŋ'.)
367//
368// 4. The unshifted AB10 key (normally assigned to the slash `/') is used as
369//    level 3 switch since the slash is not used in the ordinary course of
370//    typing Mmuock text. 
371//
372// 5. The 'Cameroon Multilingual' keyboard that is defined elsewhere, does not
373//    fit our needs because: (a) it is based on a different alphabet, (b) the
374//    vast majority of its symbols are not used in Mmuock, and (c) for the few
375//    symbols that are shared, the placing of the symbols is not egonomic for 
376//    typing Mmuock as the _PRIMARY_ language. The aim of this keyboard, is to
377//    give priority to symbols that are actually used in the Mmuock alphabet.
378//
379// 6. The following fonts have been found to produce the best results with this
380//    keyboard:
381//         Family                    Accuracy
382//      DejaVu (except Sans Mono)        9/10 
383//      Linux Libertine                  8/10
384//      Ubuntu (except light)            8/10
385//      Droid (except sans mono)         7/10
386//      Gentium, Gentium Alt           6.5/10
387//    In the terminal emulator, the following font variants are most suitable:
388//      Ubuntu Mono                      9/10
389//      Unifont (Medium)                 9/10
390//      DejaVu Sans Mono               7.5/10
391//      Droid Sans Mono                6.5/10
392//   These fonts are all freely available.
393// 
394// ------the layout-----------
395// Note: this drawing does not show the symbols that are mapped by the included
396// latin sybols files. Shown are only the symbols that are requiired by the
397// Mmuock keyboard.
398//
399//   ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓
400//   │ ~   │ !   │ @   │ #   │ $   │ %   │ ^   │ &   | *   │ (   │ )   │ _   │ +   ┃ ⌫ Back- ┃
401// AE│ `   │ 1   │ 2   │ 3   │ 4   │ 5   │ 6   ̂│ 7   ̑│ 8   ̍│ 9   ̓│ 0   ̊│ -   │ =   ┃  space  ┃
402//   ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫
403//   ┃       ┃ Q   │ W   │ E Ǝ │ Š R │ T   │ Y   │ U Ω │ I Ɛ │ O Φ │ P ∏ │ Ø { │ Σ } ┃ Enter ┃
404// AD┃Tab ↹  ┃ q   │ w   │ e ǝ │ š r │ t   │ y   │ u ω │ i ɛ │ o φ │ p π │ ø [ │ σ ] ┃   ⏎   ┃
405//   ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓      ┃
406//   ┃        ┃ A   │ S   │ D   │ F   │ G   │  ̇ H │ J   │ K   │ L   │ Œ : │ " ” │ Æ | ┃      ┃
407// AC┃Caps ⇬  ┃ a   │ s   ̃| d   ̀| f   ̌| g   ̈|  ̣ h │ j   ̆│ k   ̏│ l   ̄│ œ ; │ ' ’ │ æ \ ┃      ┃
408//   ┣━━━━━━━━┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━┫
409//   ┃             │ Z Dz │ X   │ C   │ V   │ B   │ N ŋ │ M   │ < « │ > » │ ?   ┃             ┃
410// AB┃Shift ⇧      │ z dz │ x   │ c   │ v   │ b   │ n Ŋ │ m   │ , ‹ │ . › │   / ┃Shift ⇧      ┃
411//   ┣━━━━━━━┳━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┻━┳━━━━━━━┳━━━┛
412//   ┃       ┃       ┃       ┃                                   ┃       ┃       ┃       ┃
413// AA┃Ctrl   ┃Meta   ┃Alt    ┃             Space                 ┃AltGr ⇮┃Menu   ┃Ctrl   ┃
414//   ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛
415//
416
417partial alphanumeric_keys
418xkb_symbols "mmuock" {
419
420   include "latin"
421   include "level3(ralt_switch)"
422
423   name[Group1]= "Mmuock";
424   key <AE06> { [          6, asciicircum,          U0302                ] }; // tone 10
425   key <AE07> { [          7,   ampersand,          U0311                ] }; // tone 12
426   key <AE08> { [          8,    asterisk,          U030D,     trademark ] }; // tone 13
427   key <AE09> { [          9,   parenleft,          U0313,     plusminus ] }; // tone 14
428   key <AE10> { [          0,  parenright,          U030A,        degree ] }; // tone 6
429   key <AD03> { [          e,           E,          U01DD,         U018E ] }; // U01DD = reversed E
430   key <AD04> { [     scaron,      Scaron,              r,             R ] };
431   key <AD07> { [          u,           U,    Greek_omega,   Greek_OMEGA ] };
432   key <AD08> { [          i,           I,          U025B,         U0190 ] }; // U025B = open E
433   key <AD09> { [          o,           O,      Greek_phi,     Greek_PHI ] };
434   key <AD10> { [          p,           P,       Greek_pi,      Greek_PI ] };
435   key <AD11> { [     oslash,    Ooblique,    bracketleft,     braceleft ] };
436   key <AD12> { [Greek_sigma, Greek_SIGMA,   bracketright,    braceright ] }; 
437   key <AC02> { [          s,           S,          U0303                ] }; // tone 1
438   key <AC03> { [          d,           D,          U0300                ] }; // tone 4
439   key <AC04> { [          f,           F,          U030C                ] }; // tone 5
440   key <AC05> { [          g,           G,          U0308                ] }; // tone 7
441   key <AC06> { [      U0323,       U0307,              h,             H ] }; // COMBINING DOT BELOW, ABOVE
442   key <AC07> { [          j,           J,          U0306                ] }; // tone 9
443   key <AC08> { [          k,           K,          U030F                ] }; // tone 11
444   key <AC09> { [          l,           L,          U0304                ] }; // tone 0
445   key <AC10> { [         oe,          OE,      semicolon,         colon ] };
446   key <AC11> { [      U0301,       U030B,     apostrophe,      quotedbl ] }; // tone 3, 8
447   key <TLDE> { [      grave,  dead_tilde                                ] };
448   key <AB01> { [          z,           Z,          U01F3,         U01F2 ] }; // U01F3 = letter dz
449   key <AB06> { [          n,           N,            eng,           ENG ] };
450   key <AB08> { [      comma,        less,  guillemotleft,         U2039 ] };
451   key <AB09> { [     period,     greater, guillemotright,         U203A ] };
452   key <BKSL> { [         ae,          AE,      backslash,           bar ] };
453
454   include "cm(solidus_switch)"
455};
456// use slash as special key for switching to level3
457partial modifier_keys
458xkb_symbols "solidus_switch" {
459   key <AB10> {
460     symbols[Group1] = [ ISO_Level3_Latch, question, slash, NoSymbol ]
461   };
462   modifier_map Mod5	{ ISO_Level3_Latch };
463};
464// ------- end Mmuock keyboard map --------------------------------------------
465
466