logo

oasis-root

Compiled tree of Oasis Linux based on own branch at <https://hacktivis.me/git/oasis/> git clone https://anongit.hacktivis.me/git/oasis-root.git

cm (33791B)


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