1 // ========== Cameroon Keyboards ==========
2 // ****** For Instructions, see "Use of Cameroon Keyboards" section below ******
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.
7 // Cameroon is officially a bilingual country, using French and English, but there are over 270 minority languages.
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.
14 // ===== Use of Cameroon Keyboards =====
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).
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.
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.
36 // == Cameroon Dvorak ==
37 // Cameroon Dvorak is uses a similar system to Cameroon QWERTY.
40 partial alphanumeric_keys
43 name[Group1]="English (Cameroon)";
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 ] };
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 ] };
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 ] };
95 key <BKSL> { [ backslash, bar ] };
96 // End alphanumeric section
99 partial alphanumeric_keys
102 name[Group1]="French (Cameroon)";
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 ] };
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 ] };
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 ] };
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 ] };
136 include "level3(ralt_switch)"
140 partial alphanumeric_keys
143 name[Group1] = "French (Cameroon azerty)";
144 include "level3(ralt_switch)"
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)"
197 partial alphanumeric_keys
200 name[Group1] = "English (Cameroon qwerty)";
201 include "level3(ralt_switch)"
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)"
251 partial alphanumeric_keys
254 name[Group1] = "English (Cameroon Dvorak)";
255 include "level3(ralt_switch)"
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)"
307 // The following code creates the "Cameroon key" phenomenon.
309 partial modifier_keys
310 xkb_symbols "semicolon_switch" {
312 symbols[Group1] = [ ISO_Level3_Latch, colon, semicolon, colon ]};
313 modifier_map Mod5 { ISO_Level3_Latch };
316 partial modifier_keys
317 xkb_symbols "exclamation_switch" {
319 symbols[Group1] = [ ISO_Level3_Latch, U00A7, exclam, U00A7 ]
321 modifier_map Mod5 { ISO_Level3_Latch };
324 partial modifier_keys
325 xkb_symbols "semicolon_switch_dvorak" {
327 symbols[Group1] = [ ISO_Level3_Latch, colon, semicolon, colon ]
329 modifier_map Mod5 { ISO_Level3_Latch };