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