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

ua (19311B)


  1. // Keyboard layouts for the Ukraine.
  2. // AEN <aen@logic.ru> & Leon Kanter <leon@geon.donetsk.ua>
  3. // last changes 2007/10/03 by Andriy Rysin <arysin@yahoo.com>
  4. // Oleksiy Protas <elfy.ua@gmail.com>:
  5. // - Added Serbian Cyrillics support
  6. // The legacy WinKeys layout extended on the third and fourth level with
  7. // some Unicode symbols (typographic quotes, m-dash, n-dash, ...), some
  8. // often-used Cyrillics from other Slavic languages, and some often-used
  9. // ASCII symbols (slash, brackets, ...).
  10. default partial alphanumeric_keys
  11. xkb_symbols "unicode" {
  12. include "ua(winkeys)"
  13. name[Group1]= "Ukrainian";
  14. key <TLDE> { [ apostrophe, U02BC, U0301, asciitilde ] }; // Apostrophe and Stress symbol
  15. key <AE01> { [ 1, exclam, onesuperior ] };
  16. key <AE02> { [ 2, quotedbl, twosuperior, U2019 ] }; // single quote used often as an apostrophe (deprecated)
  17. key <AE03> { [ 3, numerosign, section, U20B4 ] }; // Paragraph and Hryvnia sign
  18. key <AE04> { [ 4, semicolon, dollar, EuroSign ] };
  19. key <AE05> { [ 5, percent, degree ] };
  20. key <AE06> { [ 6, colon, less ] };
  21. key <AE07> { [ 7, question, greater ] };
  22. key <AE08> { [ 8, asterisk, enfilledcircbullet ] };
  23. key <AE09> { [ 9, parenleft, bracketleft, braceleft ] };
  24. key <AE10> { [ 0, parenright, bracketright, braceright ] };
  25. key <AE11> { [ minus, underscore, emdash, endash ] };
  26. key <AE12> { [ equal, plus, notequal, plusminus ] };
  27. key <AD03> { [ Cyrillic_u, Cyrillic_U, Byelorussian_shortu, Byelorussian_SHORTU ] };
  28. key <AD04> { [ Cyrillic_ka, Cyrillic_KA, registered ] }; // Registered tm
  29. key <AD05> { [ Cyrillic_ie, Cyrillic_IE, Cyrillic_io, Cyrillic_IO ] };
  30. key <AD12> { [ Ukrainian_yi, Ukrainian_YI, Cyrillic_hardsign,Cyrillic_HARDSIGN ] };
  31. key <AC02> { [ Ukrainian_i, Ukrainian_I, Cyrillic_yeru, Cyrillic_YERU ] };
  32. key <AC11> { [ Ukrainian_ie, Ukrainian_IE, Cyrillic_e, Cyrillic_E ] };
  33. key <BKSL> { [ Ukrainian_ghe_with_upturn, Ukrainian_GHE_WITH_UPTURN, backslash, bar ] };
  34. key <AB03> { [ Cyrillic_es, Cyrillic_ES, copyright ] };
  35. key <AB06> { [ Cyrillic_te, Cyrillic_TE, trademark ] };
  36. key <AB08> { [ Cyrillic_be, Cyrillic_BE, guillemotleft, doublelowquotemark ] };
  37. key <AB09> { [ Cyrillic_yu, Cyrillic_YU, guillemotright, leftdoublequotemark ] };
  38. key <AB10> { [ period, comma, slash, ellipsis ] };
  39. // Serbian Vukovica
  40. key <AD01> { [ Cyrillic_shorti, Cyrillic_SHORTI, Cyrillic_je, Cyrillic_JE ] };
  41. key <AD02> { [ Cyrillic_tse, Cyrillic_TSE, Cyrillic_dzhe, Cyrillic_DZHE ] };
  42. key <AC09> { [ Cyrillic_de, Cyrillic_DE, Serbian_dje, Serbian_DJE ] };
  43. key <AB02> { [ Cyrillic_che, Cyrillic_CHE, Serbian_tshe, Serbian_TSHE ] };
  44. key <AC08> { [ Cyrillic_el, Cyrillic_EL, Cyrillic_lje, Cyrillic_LJE ] };
  45. key <AD06> { [ Cyrillic_en, Cyrillic_EN, Cyrillic_nje, Cyrillic_NJE ] };
  46. include "level3(ralt_switch)"
  47. };
  48. partial alphanumeric_keys
  49. xkb_symbols "macOS" {
  50. include "ua(unicode)"
  51. name[Group1]= "Ukrainian (macOS)";
  52. key <TLDE> { [ apostrophe, asciitilde, bracketright, bracketleft ] };
  53. key <AE01> { [ 1, exclam, exclam, U0174 ] };
  54. key <AE02> { [ 2, quotedbl, at, quotedbl ] };
  55. key <AE03> { [ 3, numerosign, numbersign, U20B4 ] };
  56. key <AE04> { [ 4, percent, dollar, EuroSign ] };
  57. key <AE05> { [ 5, colon, degree ] };
  58. key <AE06> { [ 6, comma, less ] };
  59. key <AE07> { [ 7, period, ampersand, U204B ] };
  60. key <AE08> { [ 8, semicolon, asterisk, U221A ] };
  61. key <AE09> { [ 9, parenleft, parenleft, apostrophe ] };
  62. key <AE10> { [ 0, parenright, parenright, grave ] };
  63. key <AE11> { [ minus, underscore, endash, emdash ] };
  64. key <AE12> { [ equal, plus, U00BB, U00AB ] };
  65. key <AC02> { [ Cyrillic_i, Cyrillic_I, Cyrillic_yeru, Cyrillic_YERU ] };
  66. key <AB05> { [ Ukrainian_i, Ukrainian_I, Cyrillic_i, Cyrillic_I ] };
  67. key <AB08> { [ Cyrillic_be, Cyrillic_BE, lessthanequal, less ] };
  68. key <AB09> { [ Cyrillic_yu, Cyrillic_YU, greaterthanequal, greater ] };
  69. key <AB10> { [ slash, question, U201C, U201E] };
  70. include "level3(ralt_switch)"
  71. };
  72. partial alphanumeric_keys
  73. xkb_symbols "legacy" {
  74. name[Group1]= "Ukrainian (legacy)";
  75. key <TLDE> { [ apostrophe, asciitilde ] };
  76. key <AE01> { [ 1, exclam ] };
  77. key <AE02> { [ 2, quotedbl ] };
  78. key <AE03> { [ 3, numbersign ] };
  79. key <AE04> { [ 4, asterisk ] };
  80. key <AE05> { [ 5, colon ] };
  81. key <AE06> { [ 6, comma ] };
  82. key <AE07> { [ 7, period ] };
  83. key <AE08> { [ 8, semicolon ] };
  84. key <AE09> { [ 9, parenleft ] };
  85. key <AE10> { [ 0, parenright ] };
  86. key <AE11> { [ minus, underscore ] };
  87. key <AE12> { [ equal, plus ] };
  88. key <AD01> { [ Cyrillic_shorti, Cyrillic_SHORTI ] };
  89. key <AD02> { [ Cyrillic_tse, Cyrillic_TSE ] };
  90. key <AD03> { [ Cyrillic_u, Cyrillic_U ] };
  91. key <AD04> { [ Cyrillic_ka, Cyrillic_KA ] };
  92. key <AD05> { [ Cyrillic_ie, Cyrillic_IE ] };
  93. key <AD06> { [ Cyrillic_en, Cyrillic_EN ] };
  94. key <AD07> { [ Cyrillic_ghe, Cyrillic_GHE ] };
  95. key <AD08> { [ Cyrillic_sha, Cyrillic_SHA ] };
  96. key <AD09> { [ Cyrillic_shcha, Cyrillic_SHCHA ] };
  97. key <AD10> { [ Cyrillic_ze, Cyrillic_ZE ] };
  98. key <AD11> { [ Cyrillic_ha, Cyrillic_HA ] };
  99. key <AD12> { [ Ukrainian_yi, Ukrainian_YI ] };
  100. key <BKSL> { [ Ukrainian_ghe_with_upturn, Ukrainian_GHE_WITH_UPTURN ] };
  101. key <AC01> { [ Cyrillic_ef, Cyrillic_EF ] };
  102. key <AC02> { [ Ukrainian_i, Ukrainian_I ] };
  103. key <AC03> { [ Cyrillic_ve, Cyrillic_VE ] };
  104. key <AC04> { [ Cyrillic_a, Cyrillic_A ] };
  105. key <AC05> { [ Cyrillic_pe, Cyrillic_PE ] };
  106. key <AC06> { [ Cyrillic_er, Cyrillic_ER ] };
  107. key <AC07> { [ Cyrillic_o, Cyrillic_O ] };
  108. key <AC08> { [ Cyrillic_el, Cyrillic_EL ] };
  109. key <AC09> { [ Cyrillic_de, Cyrillic_DE ] };
  110. key <AC10> { [ Cyrillic_zhe, Cyrillic_ZHE ] };
  111. key <AC11> { [ Ukrainian_ie, Ukrainian_IE ] };
  112. key <LSGT> { [ slash, bar ] };
  113. key <AB01> { [ Cyrillic_ya, Cyrillic_YA ] };
  114. key <AB02> { [ Cyrillic_che, Cyrillic_CHE ] };
  115. key <AB03> { [ Cyrillic_es, Cyrillic_ES ] };
  116. key <AB04> { [ Cyrillic_em, Cyrillic_EM ] };
  117. key <AB05> { [ Cyrillic_i, Cyrillic_I ] };
  118. key <AB06> { [ Cyrillic_te, Cyrillic_TE ] };
  119. key <AB07> {[Cyrillic_softsign,Cyrillic_SOFTSIGN ] };
  120. key <AB08> { [ Cyrillic_be, Cyrillic_BE ] };
  121. key <AB09> { [ Cyrillic_yu, Cyrillic_YU ] };
  122. key <AB10> { [ slash, question ] };
  123. };
  124. partial alphanumeric_keys
  125. xkb_symbols "winkeys" {
  126. include "ua(legacy)"
  127. name[Group1]= "Ukrainian (Windows)";
  128. key <AE03> { [ 3, numerosign ] };
  129. key <AE04> { [ 4, semicolon ] };
  130. key <AE05> { [ 5, percent ] };
  131. key <AE06> { [ 6, colon ] };
  132. key <AE07> { [ 7, question ] };
  133. key <AE08> { [ 8, asterisk ] };
  134. key <AB10> { [ period, comma ] };
  135. };
  136. partial alphanumeric_keys
  137. xkb_symbols "typewriter" {
  138. include "ua(legacy)"
  139. name[Group1]= "Ukrainian (typewriter)";
  140. key <TLDE> { [ apostrophe, quotedbl ] };
  141. key <AE01> { [ exclam, 1 ] };
  142. key <AE02> { [ numerosign, 2 ] };
  143. key <AE03> { [ slash, 3 ] };
  144. key <AE04> { [ semicolon, 4 ] };
  145. key <AE05> { [ colon, 5 ] };
  146. key <AE06> { [ comma, 6 ] };
  147. key <AE07> { [ period, 7 ] };
  148. key <AE08> { [ underscore, 8 ] };
  149. key <AE09> { [ question, 9 ] };
  150. key <AE10> { [ percent, 0 ] };
  151. key <AD12> { [ Ukrainian_ghe_with_upturn, Ukrainian_GHE_WITH_UPTURN ] };
  152. key <AC02> { [ Cyrillic_i, Cyrillic_I ] };
  153. key <AB05> { [ Ukrainian_i, Ukrainian_I ] };
  154. key <AB10> { [ Ukrainian_yi, Ukrainian_YI ] };
  155. key <BKSL> { [ parenleft, parenright ] };
  156. };
  157. partial alphanumeric_keys
  158. xkb_symbols "phonetic" {
  159. include "ua(legacy)"
  160. name[Group1]= "Ukrainian (phonetic)";
  161. key <LatQ> { [ Cyrillic_ya, Cyrillic_YA ] };
  162. key <LatW> { [ Cyrillic_ve, Cyrillic_VE ] };
  163. key <LatE> { [ Cyrillic_ie, Cyrillic_IE ] };
  164. key <LatR> { [ Cyrillic_er, Cyrillic_ER ] };
  165. key <LatT> { [ Cyrillic_te, Cyrillic_TE ] };
  166. key <LatY> { [ Cyrillic_i, Cyrillic_I ] };
  167. key <LatU> { [ Cyrillic_u, Cyrillic_U ] };
  168. key <LatI> { [ Ukrainian_i, Ukrainian_I ] };
  169. key <LatO> { [ Cyrillic_o, Cyrillic_O ] };
  170. key <LatP> { [ Cyrillic_pe, Cyrillic_PE ] };
  171. key <AD11> { [ Cyrillic_sha, Cyrillic_SHA ] };
  172. key <AD12> { [ Cyrillic_shcha, Cyrillic_SHCHA ] };
  173. key <LatA> { [ Cyrillic_a, Cyrillic_A ] };
  174. key <LatS> { [ Cyrillic_es, Cyrillic_ES ] };
  175. key <LatD> { [ Cyrillic_de, Cyrillic_DE ] };
  176. key <LatF> { [ Cyrillic_ef, Cyrillic_EF ] };
  177. key <LatG> { [ Cyrillic_ghe, Cyrillic_GHE ] };
  178. key <LatH> { [ Cyrillic_ha, Cyrillic_HA ] };
  179. key <LatJ> { [ Cyrillic_shorti, Cyrillic_SHORTI ] };
  180. key <LatK> { [ Cyrillic_ka, Cyrillic_KA ] };
  181. key <LatL> { [ Cyrillic_el, Cyrillic_EL ] };
  182. key <AC10> { [ Ukrainian_ghe_with_upturn, Ukrainian_GHE_WITH_UPTURN ] };
  183. key <AC11> { [ Cyrillic_che, Cyrillic_CHE ] };
  184. key <BKSL> { [ Cyrillic_yu, Cyrillic_YU ] };
  185. key <LatZ> { [ Cyrillic_ze, Cyrillic_ZE ] };
  186. key <LatX> { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] };
  187. key <LatC> { [ Cyrillic_tse, Cyrillic_TSE ] };
  188. key <LatV> { [ Cyrillic_zhe, Cyrillic_ZHE ] };
  189. key <LatB> { [ Cyrillic_be, Cyrillic_BE ] };
  190. key <LatN> { [ Cyrillic_en, Cyrillic_EN ] };
  191. key <LatM> { [ Cyrillic_em, Cyrillic_EM ] };
  192. key <AB08> { [ Ukrainian_yi, Ukrainian_YI ] };
  193. key <AB09> { [ Ukrainian_ie, Ukrainian_IE ] };
  194. key <AB10> { [ slash, question ] };
  195. };
  196. // Ukrainian RSTU 2019-91 keyboard layout (Respublikanskij STandart Ukrajiny).
  197. // Andrew Porokhnyak <aop@porokhnyak.org>
  198. partial alphanumeric_keys
  199. xkb_symbols "rstu" {
  200. include "ua(legacy)"
  201. name[Group1]= "Ukrainian (standard RSTU)";
  202. key <TLDE> { [ apostrophe, question ] };
  203. key <AE01> { [ exclam, 1 ] };
  204. key <AE02> { [ quotedbl, 2 ] };
  205. key <AE03> { [ numbersign, 3 ] };
  206. key <AE04> { [ semicolon, 4 ] };
  207. key <AE05> { [ colon, 5 ] };
  208. key <AE06> { [ comma, 6 ] };
  209. key <AE07> { [ period, 7 ] };
  210. key <AE08> { [ asterisk, 8 ] };
  211. key <AE09> { [ parenleft, 9 ] };
  212. key <AE10> { [ parenright, 0 ] };
  213. key <AD12> { [ Ukrainian_ghe_with_upturn, Ukrainian_GHE_WITH_UPTURN ] };
  214. key <AC02> { [ Cyrillic_i, Cyrillic_I ] };
  215. key <AB05> { [ Ukrainian_i, Ukrainian_I ] };
  216. key <AB10> { [ Ukrainian_yi, Ukrainian_YI ] };
  217. key <BKSL> { [ slash, percent ] };
  218. };
  219. // Russian RSTU 2019-91 keyboard layout (Respublikanskij STandart Ukrajiny).
  220. // Andrew Porokhnyak <aop@porokhnyak.org>
  221. partial alphanumeric_keys
  222. xkb_symbols "rstu_ru" {
  223. include "ru(common)"
  224. name[Group1]= "Russian (Ukraine, standard RSTU)";
  225. key <TLDE> { [ apostrophe, question ] };
  226. key <AE01> { [ exclam, 1 ] };
  227. key <AE02> { [ quotedbl, 2 ] };
  228. key <AE03> { [ numbersign, 3 ] };
  229. key <AE04> { [ semicolon, 4 ] };
  230. key <AE05> { [ colon, 5 ] };
  231. key <AE06> { [ comma, 6 ] };
  232. key <AE07> { [ period, 7 ] };
  233. key <AE08> { [ asterisk, 8 ] };
  234. key <AE09> { [ parenleft, 9 ] };
  235. key <AE10> { [ parenright, 0 ] };
  236. key <BKSL> { [ slash, percent ] };
  237. key.type[group1]="ALPHABETIC";
  238. key <AB10> { [ Cyrillic_io, Cyrillic_IO ] };
  239. };
  240. // Homophonic keyboard layout (by Tomas Marko Miljenović),
  241. // based on the Ukrainian National Transliteration,
  242. // commonly used phonetic layouts for Mac and Win.
  243. partial alphanumeric_keys
  244. xkb_symbols "homophonic" {
  245. include "ua(legacy)"
  246. name[Group1]= "Ukrainian (homophonic)";
  247. key <TLDE> { [ grave, underscore ] };
  248. key <AE01> { [ 1, exclam ] };
  249. key <AE02> { [ 2, at ] };
  250. key <AE03> { [ 3, semicolon ] };
  251. key <AE04> { [ 4, colon ] };
  252. key <AE05> { [ 5, percent ] };
  253. key <AE06> { [ 6, apostrophe ] };
  254. key <AE07> { [ 7, quotedbl ] };
  255. key <AE08> { [ 8, asterisk ] };
  256. key <AE09> { [ 9, parenleft ] };
  257. key <AE10> { [ 0, parenright ] };
  258. key <AE11> { [ Ukrainian_ie, Ukrainian_IE ] };
  259. key <AE12> { [ Ukrainian_yi, Ukrainian_YI ] };
  260. key <LatQ> { [ Cyrillic_ya, Cyrillic_YA ] };
  261. key <LatW> { [ Cyrillic_sha, Cyrillic_SHA ] };
  262. key <LatE> { [ Cyrillic_ie, Cyrillic_IE ] };
  263. key <LatR> { [ Cyrillic_er, Cyrillic_ER ] };
  264. key <LatT> { [ Cyrillic_te, Cyrillic_TE ] };
  265. key <LatY> { [ Cyrillic_i, Cyrillic_I ] };
  266. key <LatU> { [ Cyrillic_u, Cyrillic_U ] };
  267. key <LatI> { [ Ukrainian_i, Ukrainian_I ] };
  268. key <LatO> { [ Cyrillic_o, Cyrillic_O ] };
  269. key <LatP> { [ Cyrillic_pe, Cyrillic_PE ] };
  270. key <AD11> { [ Cyrillic_yu, Cyrillic_YU ] };
  271. key <AD12> { [ Cyrillic_shcha, Cyrillic_SHCHA ] };
  272. key <LatA> { [ Cyrillic_a, Cyrillic_A ] };
  273. key <LatS> { [ Cyrillic_es, Cyrillic_ES ] };
  274. key <LatD> { [ Cyrillic_de, Cyrillic_DE ] };
  275. key <LatF> { [ Cyrillic_ef, Cyrillic_EF ] };
  276. key <LatG> { [ Ukrainian_ghe_with_upturn, Ukrainian_GHE_WITH_UPTURN ] };
  277. key <LatH> { [ Cyrillic_ghe, Cyrillic_GHE ] };
  278. key <LatJ> { [ Cyrillic_shorti, Cyrillic_SHORTI ] };
  279. key <LatK> { [ Cyrillic_ka, Cyrillic_KA ] };
  280. key <LatL> { [ Cyrillic_el, Cyrillic_EL ] };
  281. key <AC10> { [ Cyrillic_che, Cyrillic_CHE ] };
  282. key <AC11> { [ Cyrillic_zhe, Cyrillic_ZHE ] };
  283. key <BKSL> { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] };
  284. key <LatZ> { [ Cyrillic_ze, Cyrillic_ZE ] };
  285. key <LatX> { [ Cyrillic_ha, Cyrillic_HA ] };
  286. key <LatC> { [ Cyrillic_tse, Cyrillic_TSE ] };
  287. key <LatV> { [ Cyrillic_ve, Cyrillic_VE ] };
  288. key <LatB> { [ Cyrillic_be, Cyrillic_BE ] };
  289. key <LatN> { [ Cyrillic_en, Cyrillic_EN ] };
  290. key <LatM> { [ Cyrillic_em, Cyrillic_EM ] };
  291. key <AB08> { [ comma, less ] };
  292. key <AB09> { [ period, greater ] };
  293. key <AB10> { [ slash, question ] };
  294. };
  295. // Crimean Tatar (Crimean Turkish) layouts.
  296. // First released (by Ubuntu): 2009-02-24.
  297. // These layouts are not yet standard. In particular, the mapping of
  298. // the letter 'x' might change in the future. This letter is not used
  299. // in the current official alphabet, but is included in the layouts for
  300. // foreign words and for shortcuts.
  301. // Reşat SABIQ <tilde.birlik @ gmail . com>, 2009
  302. // Özgür Qarahan <qarahan @ gmail . com>, 2009
  303. // Crimean Tatar (Crimean Turkish) Q layout
  304. partial
  305. xkb_symbols "crh" {
  306. include "tr(basic)"
  307. name[Group1]="Crimean Tatar (Turkish Q)";
  308. key <TLDE> { [ quotedbl, backslash, less, degree ] };
  309. key <AE11> { [ x, X, asterisk, question ] };
  310. key <AC04> { [ f, F, iacute, Iacute ] };
  311. key <AC07> { [ j, J, ibreve, Ibreve ] };
  312. key <AB02> { [ ntilde, Ntilde, guillemotright, greater ] };
  313. };
  314. // Crimean Tatar (Crimean Turkish) F layout
  315. partial
  316. xkb_symbols "crh_f" {
  317. include "tr(f)"
  318. name[Group1]="Crimean Tatar (Turkish F)";
  319. key <TLDE> { [ plus, asterisk, backslash, plusminus ] };
  320. key <AE11> { [ x, X, slash, question ] };
  321. key <AD04> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC",
  322. [ idotless, I, iacute, Iacute ] };
  323. key <AC07> { [ k, K, ibreve, Ibreve ] };
  324. key <BKSL> { [ ntilde, Ntilde, grave, dead_grave ] };
  325. };
  326. // Crimean Tatar (Crimean Turkish) Alt-Q layout
  327. partial
  328. xkb_symbols "crh_alt" {
  329. include "tr(alt)"
  330. name[Group1]="Crimean Tatar (Turkish Alt-Q)";
  331. key <AC04> { [ f, F, iacute, Iacute ] };
  332. key <AC07> { [ j, J, ibreve, Ibreve ] };
  333. key <AB06> { [ n, N, ntilde, Ntilde ] };
  334. };
  335. // EXTRAS:
  336. partial alphanumeric_keys
  337. xkb_symbols "sun_type6" {
  338. include "sun_vndr/ua(sun_type6)"
  339. };