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