cm revision 0412cded
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] = "Cameroon Multilingual (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, UA78C, UA78B ] }; // SMALL LETTER V, CAPITAL LETTER V, SMALL LETTER GLOTTAL (SALTILLO), CAPITAL LETTER GLOTTAL (SALTILLO) 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, U02BC, UA78B ] }; // SMALL LETTER G, CAPITAL LETTER G, CURVED GLOTTAL, 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, U25CC, U00AE ] }; // SMALL LETTER R, CAPITAL LETTER R, PLACEHOLDER SYMBOL, 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] = "Cameroon Multilingual (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, U0327, U00A9 ] }; // SMALL LETTER C, CAPITAL LETTER C, CEDILLA, COPYRIGHT 206 key <AB04> { [ v, V, UA78C, UA78B ] }; // SMALL LETTER V, CAPITAL LETTER V, SMALL LETTER GLOTTAL (SALTILLO), CAPITAL LETTER GLOTTAL (SALTILLO) 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, U02BC, UA78B ] }; // SMALL LETTER G, CAPITAL LETTER G, CURVED GLOTTAL, 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, U25CC, U00AE ] }; // SMALL LETTER R, CAPITAL LETTER R, PLACEHOLDER SYMBOL, 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] = "Cameroon Multilingual (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, UA78C, UA78B ] }; // SMALL LETTER V, CAPITAL LETTER V, SMALL LETTER GLOTTAL (SALTILLO), CAPITAL LETTER GLOTTAL (SALTILLO) 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, U02BC, UA78B ] }; // SMALL LETTER G, CAPITAL LETTER G, CURVED GLOTTAL, CAPITAL LETTER GLOTTAL (SALTILLO) 285 key <AD08> { [ c, C, U0327, U00A9 ] }; // SMALL LETTER C, CAPITAL LETTER C, CEDILLA, COPYRIGHT 286 key <AD09> { [ r, R, U25CC, U00AE ] }; // SMALL LETTER R, CAPITAL LETTER R, PLACEHOLDER SYMBOL, 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