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

bg (23410B)


  1. //////////////////////////////////////////////////////////////////////////
  2. // Copyright (C) 1999, 2000, 2007, 2009 by Anton Zinoviev <anton@lml.bas.bg>
  3. //
  4. // This software may be used, modified, copied, distributed, and sold,
  5. // both in source and binary form provided that the above copyright
  6. // notice and these terms are retained. The name of the author may not
  7. // be used to endorse or promote products derived from this software
  8. // without prior permission. THIS SOFTWARE IS PROVIDED "AS IS" AND
  9. // ANY EXPRESS OR IMPLIED WARRANTIES ARE DISCLAIMED. IN NO EVENT
  10. // SHALL THE AUTHOR BE LIABLE FOR ANY DAMAGES ARISING IN ANY WAY OUT
  11. // OF THE USE OF THIS SOFTWARE.
  12. //
  13. //////////////////////////////////////////////////////////////////////////
  14. // Version 2.0
  15. // The following variants are defined in this file:
  16. // "bds" - the BDS keyboard layout compliant with the proposed
  17. // Bulgarian state standard BDS 5237:2006
  18. // "phonetic" - the phonetic Bulgarian layout with the traditional position
  19. // of the letters
  20. // "bas_phonetic" - the phonetic keyboard layout compliant with the
  21. // proposed Bulgarian state standard BDS 5237:2006
  22. // "bekl" - the enhanced variant of the Bulgarian BDS keyboard,
  23. // proposed in May 2020.
  24. // "latin" - an extended variant of the QWERTY layout with symbols that
  25. // Bulgarian users will type while the keyboard is in Latin mode
  26. // The reasons behind the layout of the symbols in levels 3 and 4 are
  27. // explained in http://arxiv.org/abs/0905.0484 (in Bulgarian).
  28. // Two notes for the maintainers of xkeyboard-config:
  29. // 1. Please do not use key names such as <LatQ> for the Bulgarian
  30. // phonetic layouts. The placement of the symbols must stay always
  31. // the same regardless of which one of the alias sets in
  32. // xkb/keycodes/aliases is used.
  33. // 2. The layouts should not include level3(ralt_switch).
  34. //////////////////////////////////////////////////////////////////////////
  35. // Describes Bulgarian keyboard "BDS" modified according to the
  36. // the new state standard BDS 5237:2006 and extended with symbols in
  37. // levels 3 and 4.
  38. default partial alphanumeric_keys
  39. xkb_symbols "bds" {
  40. name[Group1]= "Bulgarian";
  41. key <TLDE> {[ parenleft, parenright, bracketleft, bracketright ]};
  42. key <AE01> {[ 1, exclam ]};
  43. key <AE02> {[ 2, question ]};
  44. key <AE03> {[ 3, plus, dagger, dagger ]};
  45. key <AE04> {[ 4, quotedbl ]};
  46. key <AE05> {[ 5, percent, U2329, U232A ]};
  47. key <AE06> {[ 6, equal, emdash, emdash ]};
  48. key <AE07> {[ 7, colon, ellipsis, ellipsis ]};
  49. key <AE08> {[ 8, slash, U0300, U0301 ]};
  50. key <AE09> {[ 9, endash ]};
  51. key <AE10> {[ 0, numerosign ]};
  52. key <AE11> {[ minus, dollar, U2011, EuroSign ]};
  53. key <AE12> {[ period, EuroSign ]};
  54. key <AD01> {[ comma, Cyrillic_yeru, rightsinglequotemark, leftsinglequotemark ]};
  55. key <AD02> {[ Cyrillic_u, Cyrillic_U ]};
  56. key <AD03> {[ Cyrillic_ie, Cyrillic_IE, Cyrillic_e, Cyrillic_E ]};
  57. key <AD04> {[ Cyrillic_i, Cyrillic_I, U045D, U040D ]};
  58. key <AD05> {[ Cyrillic_sha, Cyrillic_SHA ]};
  59. key <AD06> {[ Cyrillic_shcha, Cyrillic_SHCHA ]};
  60. key <AD07> {[ Cyrillic_ka, Cyrillic_KA, copyright, copyright ]};
  61. key <AD08> {[ Cyrillic_es, Cyrillic_ES, copyright, copyright ]};
  62. key <AD09> {[ Cyrillic_de, Cyrillic_DE ]};
  63. key <AD10> {[ Cyrillic_ze, Cyrillic_ZE ]};
  64. key <AD11> {[ Cyrillic_tse, Cyrillic_TSE ]};
  65. key <AD12> {[ semicolon, section ]};
  66. key <AC01> {[ Cyrillic_softsign, U045D, Cyrillic_yeru, Cyrillic_YERU ]};
  67. key <AC02> {[ Cyrillic_ya, Cyrillic_YA, U0463, U0462 ]};
  68. key <AC03> {[ Cyrillic_a, Cyrillic_A ]};
  69. key <AC04> {[ Cyrillic_o, Cyrillic_O ]};
  70. key <AC05> {[ Cyrillic_zhe, Cyrillic_ZHE ]};
  71. key <AC06> {[ Cyrillic_ghe, Cyrillic_GHE ]};
  72. key <AC07> {[ Cyrillic_te, Cyrillic_TE, trademark, trademark ]};
  73. key <AC08> {[ Cyrillic_en, Cyrillic_EN ]};
  74. key <AC09> {[ Cyrillic_ve, Cyrillic_VE ]};
  75. key <AC10> {[ Cyrillic_em, Cyrillic_EM ]};
  76. key <AC11> {[ Cyrillic_che, Cyrillic_CHE ]};
  77. key <BKSL> {[ doublelowquotemark, leftdoublequotemark, guillemotleft, guillemotright ]};
  78. key <LSGT> {[ U045D, U040D ]};
  79. key <AB01> {[ Cyrillic_yu, Cyrillic_YU ]};
  80. key <AB02> {[ Cyrillic_shorti, Cyrillic_SHORTI, U046D, U046C ]};
  81. key <AB03> {[ Cyrillic_hardsign, Cyrillic_HARDSIGN, U046B, U046A ]};
  82. key <AB04> {[ Cyrillic_e, Cyrillic_E ]};
  83. key <AB05> {[ Cyrillic_ef, Cyrillic_EF ]};
  84. key <AB06> {[ Cyrillic_ha, Cyrillic_HA ]};
  85. key <AB07> {[ Cyrillic_pe, Cyrillic_PE ]};
  86. key <AB08> {[ Cyrillic_er, Cyrillic_ER, registered, registered ]};
  87. key <AB09> {[ Cyrillic_el, Cyrillic_EL ]};
  88. key <AB10> {[ Cyrillic_be, Cyrillic_BE ]};
  89. key <SPCE> {[ space, space, nobreakspace, nobreakspace ]};
  90. key <KPDL> { type[Group1] = "KEYPAD", [ KP_Delete, KP_Separator ]};
  91. };
  92. // This is an improved variant of the traditional Bulgarian phonetic
  93. // keyboard. Some unnecessary symbols in levels 1 and 2 are replaced
  94. // by more useful ones (similar as in "bas_phonetic") and additional
  95. // symbols are added in levels 3 and 4.
  96. partial alphanumeric_keys
  97. xkb_symbols "phonetic" {
  98. name[Group1]= "Bulgarian (traditional phonetic)";
  99. key <TLDE> {[ Cyrillic_che, Cyrillic_CHE ]};
  100. key <AE01> {[ 1, exclam ]};
  101. key <AE02> {[ 2, at ]};
  102. key <AE03> {[ 3, numerosign ]};
  103. key <AE04> {[ 4, dollar, EuroSign, EuroSign ]};
  104. key <AE05> {[ 5, percent ]};
  105. key <AE06> {[ 6, EuroSign ]};
  106. key <AE07> {[ 7, section ]};
  107. key <AE08> {[ 8, asterisk ]};
  108. key <AE09> {[ 9, parenleft, bracketleft, U2329 ]};
  109. key <AE10> {[ 0, parenright, bracketright, U232A ]};
  110. key <AE11> {[ minus, endash, U2011, U2011 ]};
  111. key <AE12> {[ equal, plus, emdash, dagger ]};
  112. key <AD01> {[ Cyrillic_ya, Cyrillic_YA, U0463, U0462 ]};
  113. key <AD02> {[ Cyrillic_ve, Cyrillic_VE ]};
  114. key <AD03> {[ Cyrillic_ie, Cyrillic_IE, Cyrillic_e, Cyrillic_E ]};
  115. key <AD04> {[ Cyrillic_er, Cyrillic_ER, registered, registered ]};
  116. key <AD05> {[ Cyrillic_te, Cyrillic_TE, trademark, trademark ]};
  117. key <AD06> {[ Cyrillic_hardsign, Cyrillic_HARDSIGN, U046B, U046A ]};
  118. key <AD07> {[ Cyrillic_u, Cyrillic_U ]};
  119. key <AD08> {[ Cyrillic_i, Cyrillic_I, U045D, U040D ]};
  120. key <AD09> {[ Cyrillic_o, Cyrillic_O ]};
  121. key <AD10> {[ Cyrillic_pe, Cyrillic_PE ]};
  122. key <AD11> {[ Cyrillic_sha, Cyrillic_SHA ]};
  123. key <AD12> {[ Cyrillic_shcha, Cyrillic_SHCHA ]};
  124. key <AC01> {[ Cyrillic_a, Cyrillic_A ]};
  125. key <AC02> {[ Cyrillic_es, Cyrillic_ES, copyright, copyright ]};
  126. key <AC03> {[ Cyrillic_de, Cyrillic_DE ]};
  127. key <AC04> {[ Cyrillic_ef, Cyrillic_EF ]};
  128. key <AC05> {[ Cyrillic_ghe, Cyrillic_GHE ]};
  129. key <AC06> {[ Cyrillic_ha, Cyrillic_HA ]};
  130. key <AC07> {[ Cyrillic_shorti, Cyrillic_SHORTI, U046D, U046C ]};
  131. key <AC08> {[ Cyrillic_ka, Cyrillic_KA ]};
  132. key <AC09> {[ Cyrillic_el, Cyrillic_EL ]};
  133. key <AC10> {[ semicolon, colon, ellipsis, ellipsis ]};
  134. key <AC11> {[ apostrophe, quotedbl, rightsinglequotemark, leftsinglequotemark ]};
  135. key <BKSL> {[ Cyrillic_yu, Cyrillic_YU ]};
  136. key <LSGT> {[ U045D, U040D ]};
  137. key <AB01> {[ Cyrillic_ze, Cyrillic_ZE ]};
  138. key <AB02> {[ Cyrillic_softsign, U045D, Cyrillic_yeru, Cyrillic_YERU ]};
  139. key <AB03> {[ Cyrillic_tse, Cyrillic_TSE, copyright, copyright ]};
  140. key <AB04> {[ Cyrillic_zhe, Cyrillic_ZHE ]};
  141. key <AB05> {[ Cyrillic_be, Cyrillic_BE ]};
  142. key <AB06> {[ Cyrillic_en, Cyrillic_EN ]};
  143. key <AB07> {[ Cyrillic_em, Cyrillic_EM ]};
  144. key <AB08> {[ comma, doublelowquotemark, guillemotleft, guillemotleft ]};
  145. key <AB09> {[ period, leftdoublequotemark, guillemotright, guillemotright ]};
  146. key <AB10> {[ slash, question, U0300, U0301 ]};
  147. key <SPCE> {[ space, space, nobreakspace, nobreakspace ]};
  148. key <KPDL> { type[Group1] = "KEYPAD", [ KP_Delete, KP_Separator ]};
  149. };
  150. // This is the Bulgarian phonetic keyboard according to the proposed
  151. // state standard BDS 5237:2006 with additional symbols in levels 3 and 4.
  152. partial alphanumeric_keys
  153. xkb_symbols "bas_phonetic" {
  154. include "bg(phonetic)"
  155. name[Group1]= "Bulgarian (new phonetic)";
  156. key <TLDE> {[ Cyrillic_yu, Cyrillic_YU ]};
  157. key <AD01> {[ Cyrillic_che, Cyrillic_CHE ]};
  158. key <AD02> {[ Cyrillic_sha, Cyrillic_SHA ]};
  159. key <AD11> {[ Cyrillic_ya, Cyrillic_YA, U0463, U0462 ]};
  160. key <BKSL> {[ Cyrillic_softsign, U045D, Cyrillic_yeru, Cyrillic_YERU ]};
  161. key <AB02> {[ Cyrillic_zhe, Cyrillic_ZHE ]};
  162. key <AB04> {[ Cyrillic_ve, Cyrillic_VE ]};
  163. };
  164. // This is an enhanced variant of the Bulgarian BDS keyboard, proposed
  165. // in May 2020 by a group of more than 500 linguists, teachers, writers,
  166. // translators, IT specialists, professors and many more.
  167. partial alphanumeric_keys
  168. xkb_symbols "bekl" {
  169. name[Group1]= "Bulgarian (enhanced)";
  170. key <TLDE> {[ parenleft, parenright, bracketleft, bracketright ]};
  171. key <AE01> {[ 1, exclam ]};
  172. key <AE02> {[ 2, question, at, at ]};
  173. key <AE03> {[ 3, plus, dagger, dagger ]};
  174. key <AE04> {[ 4, quotedbl ]};
  175. key <AE05> {[ 5, percent, U2329, U232A ]};
  176. key <AE06> {[ 6, equal, emdash, emdash ]};
  177. key <AE07> {[ 7, colon, ellipsis, ellipsis ]};
  178. key <AE08> {[ 8, slash, U0300, U0301 ]};
  179. key <AE09> {[ 9, endash ]};
  180. key <AE10> {[ 0, numerosign ]};
  181. key <AE11> {[ minus, dollar, U2011, EuroSign ]};
  182. key <AE12> {[ period, EuroSign ]};
  183. key <AD01> {[ comma, U02BC ]};
  184. key <AD02> {[ Cyrillic_u, Cyrillic_U ]};
  185. key <AD03> {[ Cyrillic_ie, Cyrillic_IE, Cyrillic_e, Cyrillic_E ]};
  186. key <AD04> {[ Cyrillic_i, Cyrillic_I, U045D, U040D ]};
  187. key <AD05> {[ Cyrillic_sha, Cyrillic_SHA ]};
  188. key <AD06> {[ Cyrillic_shcha, Cyrillic_SHCHA ]};
  189. key <AD07> {[ Cyrillic_ka, Cyrillic_KA, copyright, copyright ]};
  190. key <AD08> {[ Cyrillic_es, Cyrillic_ES ]};
  191. key <AD09> {[ Cyrillic_de, Cyrillic_DE ]};
  192. key <AD10> {[ Cyrillic_ze, Cyrillic_ZE ]};
  193. key <AD11> {[ Cyrillic_tse, Cyrillic_TSE ]};
  194. key <AD12> {[ semicolon, section ]};
  195. key <AC01> {[ Cyrillic_softsign, U045D, Cyrillic_yeru, Cyrillic_YERU ]};
  196. key <AC02> {[ Cyrillic_ya, Cyrillic_YA ]};
  197. key <AC03> {[ Cyrillic_a, Cyrillic_A ]};
  198. key <AC04> {[ Cyrillic_o, Cyrillic_O ]};
  199. key <AC05> {[ Cyrillic_zhe, Cyrillic_ZHE ]};
  200. key <AC06> {[ Cyrillic_ghe, Cyrillic_GHE ]};
  201. key <AC07> {[ Cyrillic_te, Cyrillic_TE, trademark, trademark ]};
  202. key <AC08> {[ Cyrillic_en, Cyrillic_EN ]};
  203. key <AC09> {[ Cyrillic_ve, Cyrillic_VE ]};
  204. key <AC10> {[ Cyrillic_em, Cyrillic_EM ]};
  205. key <AC11> {[ Cyrillic_che, Cyrillic_CHE ]};
  206. key <BKSL> {[ doublelowquotemark, leftdoublequotemark, guillemotleft, guillemotright ]};
  207. key <LSGT> {[ U045D, U040D ]};
  208. key <AB01> {[ Cyrillic_yu, Cyrillic_YU ]};
  209. key <AB02> {[ Cyrillic_shorti, Cyrillic_SHORTI, U046D, U046C ]};
  210. key <AB03> {[ Cyrillic_hardsign, Cyrillic_HARDSIGN, U046B, U046A ]};
  211. key <AB04> {[ U0463, U0462 ]};
  212. key <AB05> {[ Cyrillic_ef, Cyrillic_EF ]};
  213. key <AB06> {[ Cyrillic_ha, Cyrillic_HA ]};
  214. key <AB07> {[ Cyrillic_pe, Cyrillic_PE ]};
  215. key <AB08> {[ Cyrillic_er, Cyrillic_ER, registered, registered ]};
  216. key <AB09> {[ Cyrillic_el, Cyrillic_EL ]};
  217. key <AB10> {[ Cyrillic_be, Cyrillic_BE ]};
  218. key <SPCE> {[ space, space, nobreakspace, nobreakspace ]};
  219. key <KPDL> { type[Group1] = "KEYPAD", [ KP_Delete, KP_Separator ]};
  220. };
  221. // This is an extended variant of the standard Latin QWERTY layout with
  222. // additional symbols in levels 3 and 4.
  223. hidden partial alphanumeric_keys
  224. xkb_symbols "latin" {
  225. key <TLDE> {[ grave, asciitilde, U2248, U2245 ]};
  226. key <AE01> {[ 1, exclam, notsign, notsign ]};
  227. key <AE02> {[ 2, at, twosuperior, enfilledcircbullet ]};
  228. key <AE03> {[ 3, numbersign, threesuperior, notequal ]};
  229. key <AE04> {[ 4, dollar, EuroSign, sterling ]};
  230. key <AE05> {[ 5, percent, U2030, U2030 ]};
  231. key <AE06> {[ 6, asciicircum, logicaland, logicalor ]};
  232. key <AE07> {[ 7, ampersand, section, section ]};
  233. key <AE08> {[ 8, asterisk, infinity, multiply ]};
  234. key <AE09> {[ 9, parenleft, U2202, nabla ]};
  235. key <AE10> {[ 0, parenright, U2300, U2300 ]};
  236. key <AE11> {[ minus, underscore, U2011, endash ]};
  237. key <AE12> {[ equal, plus, emdash, plusminus ]};
  238. key <AD01> {[ q, Q, Greek_THETA, Greek_theta ]};
  239. key <AD02> {[ w, W, Greek_OMEGA, Greek_omega ]};
  240. key <AD03> {[ e, E, U2203, Greek_epsilon ]};
  241. key <AD04> {[ r, R, registered, Greek_rho ]};
  242. key <AD05> {[ t, T, trademark, Greek_tau ]};
  243. key <AD06> {[ y, Y, yen, Greek_upsilon ]};
  244. key <AD07> {[ u, U, intersection, union ]};
  245. key <AD08> {[ i, I, integral, Greek_iota ]};
  246. key <AD09> {[ o, O, degree, U222E ]};
  247. key <AD10> {[ p, P, Greek_PI, Greek_pi ]};
  248. key <AD11> {[ bracketleft, braceleft, U2286, includedin ]};
  249. key <AD12> {[ bracketright, braceright, U2208, U2209 ]};
  250. key <AC01> {[ a, A, U2200, Greek_alpha ]};
  251. key <AC02> {[ s, S, Greek_SIGMA, Greek_sigma ]};
  252. key <AC03> {[ d, D, Greek_DELTA, Greek_delta ]};
  253. key <AC04> {[ f, F, Greek_PHI, Greek_phi ]};
  254. key <AC05> {[ g, G, Greek_GAMMA, Greek_gamma ]};
  255. key <AC06> {[ h, H, U2225, Greek_eta ]};
  256. key <AC07> {[ j, J ]};
  257. key <AC08> {[ k, K, U03F0, Greek_kappa ]};
  258. key <AC09> {[ l, L, Greek_LAMBDA, Greek_lambda ]};
  259. key <AC10> {[ semicolon, colon, division, division ]};
  260. key <AC11> {[ apostrophe, quotedbl, leftdoublequotemark, rightdoublequotemark]};
  261. key <BKSL> {[ backslash, bar, identical, downtack ]};
  262. key <LSGT> {[ less, greater, U2266, U2267 ]};
  263. key <AB01> {[ z, Z, U2220, Greek_zeta ]};
  264. key <AB02> {[ x, X, Greek_XI, Greek_xi ]};
  265. key <AB03> {[ c, C, copyright, Greek_chi ]};
  266. key <AB04> {[ v, V, Greek_PSI, Greek_psi ]};
  267. key <AB05> {[ b, B, U03D1, Greek_beta ]};
  268. key <AB06> {[ n, N, U207F, Greek_nu ]};
  269. key <AB07> {[ m, M, Greek_mu, Greek_mu ]};
  270. key <AB08> {[ comma, less, U2266, U21D4 ]};
  271. key <AB09> {[ period, greater, U2267, U21D2 ]};
  272. key <AB10> {[ slash, question, leftsinglequotemark, rightsinglequotemark]};
  273. key <SPCE> {[ space, space, nobreakspace, nobreakspace ]};
  274. key <KPDL> { type[Group1] = "KEYPAD", [ KP_Delete, KP_Decimal ]};
  275. };