1
0

il 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323
  1. // based on a keyboard map from an 'xkb/symbols/il' file
  2. // This is an implemetation of the Israeli standard SI-1452 (2013)
  3. // It does not implement changes to the English layout, as that part
  4. // of the standard is not normative nor really useful in the context
  5. // of xkb.
  6. // This implementation extends the standard with Yiddish digraphs
  7. // (a common extension) and Nun Hafukha (a fun character).
  8. default partial alphanumeric_keys
  9. xkb_symbols "basic" {
  10. // uses the kbd layout in use in Israel.
  11. name[Group1]= "Hebrew";
  12. key.type[Group1] = "FOUR_LEVEL_SEMIALPHABETIC";
  13. key <AB01> { [ hebrew_zain, Z ] };
  14. key <AB02> { [ hebrew_samech, X, U05B6 ] }; // Segol
  15. key <AB03> { [ hebrew_bet, C, U05B1 ] }; // Hataf Segol
  16. key <AB04> { [ hebrew_he, V ] };
  17. key <AB05> { [ hebrew_nun, B, NoSymbol, U05C6 ]}; // Nun Hafukha
  18. key <AB06> { [ hebrew_mem, N ] };
  19. key <AB07> { [ hebrew_zade, M, U05B5 ] }; // Tsere
  20. key <AB08> { [ hebrew_taw, greater, rightsinglequotemark ]}; // greater Mirrored
  21. key <AB09> { [ hebrew_finalzade, less, singlelowquotemark ]}; // less Mirrored
  22. key <AC01> { [ hebrew_shin, A, U05B0 ] }; // Shva
  23. key <AC02> { [ hebrew_dalet,S, U05BC ] }; // Dagesh
  24. key <AC03> { [ hebrew_gimel,D ] };
  25. key <AC04> { [ hebrew_kaph, F ] };
  26. key <AC05> { [ hebrew_ayin, G, U05F1 ] }; // Yiddish Vav Yod
  27. key <AC06> { [ hebrew_yod, H, U05F2 ] }; // Yiddish Double Yod
  28. key <AC07> { [ hebrew_chet, J, U05B4 ] }; // Hiriq
  29. key <AC08> { [ hebrew_lamed, K ] };
  30. key <AC09> { [ hebrew_finalkaph, L, rightdoublequotemark ]};
  31. key <AC10> { [ hebrew_finalpe, colon, doublelowquotemark ]};
  32. key <AD01> { [ slash, Q, U05C2 ] }; // Sin Dot
  33. key <AD02> { [ apostrophe, W, U05C1 ] }; // Shin Dot
  34. key <AD03> { [ hebrew_qoph, E, U05B8 ] }; // Qamats
  35. key <AD04> { [ hebrew_resh, R, U05B3 ] }; // Hataf Qamats
  36. key <AD05> { [ hebrew_aleph,T ] };
  37. key <AD06> { [ hebrew_tet, Y, U05F0 ] }; // Yiddish Double Vav
  38. key <AD07> { [ hebrew_waw, U, U05B9 ] }; // Holam
  39. key <AD08> { [ hebrew_finalnun, I ] };
  40. key <AD09> { [ hebrew_finalmem, O ] };
  41. key <AD10> { [ hebrew_pe, P, U05B7 ] }; // Patah
  42. key.type[Group1] = "FOUR_LEVEL";
  43. // Non-alphanumeric keys
  44. key <AB10> { [ period, question, division ]};
  45. key <AC11> { [ comma, quotedbl, U05F4] }; // Gershayim
  46. key <AD11> { [ bracketright, braceright, U05B2 ]}; // Mirrored; Hataf Patah
  47. key <AD12> { [ bracketleft, braceleft, U05BF ]}; // Mirrored; Rafe
  48. key <BKSL> { [ backslash, bar, U05BB ] }; // Qubuts
  49. // Top (digits) row
  50. key <TLDE> { [ semicolon, asciitilde, U05F3 ]}; // Geresh
  51. key <AE01> { [ 1, exclam ] };
  52. key <AE02> { [ 2, at ] };
  53. key <AE03> { [ 3, numbersign, EuroSign ]};
  54. key <AE04> { [ 4, dollar, NewSheqelSign ]};
  55. key <AE05> { [ 5, percent, degree ]};
  56. key <AE06> { [ 6, asciicircum, U05AB ]}; // Hebrew Accent Ole
  57. key <AE07> { [ 7, ampersand, U05BD ]}; // Meteg
  58. key <AE08> { [ 8, asterisk, multiply]};
  59. key <AE09> { [ 9, parenright, U200E ]}; // LRM; Paren Mirrored
  60. key <AE10> { [ 0, parenleft, U200F ]}; // RLM; Paren Mirrored
  61. key <AE11> { [ minus, underscore, U05BE ]}; // Maqaf
  62. key <AE12> { [ equal, plus, endash ]};
  63. include "level3(ralt_switch)"
  64. };
  65. // nikud patter based on Dekel Tsur's Hebrew mapping for LyX
  66. partial alphanumeric_keys
  67. xkb_symbols "lyx" {
  68. name[Group1]= "Hebrew (lyx)";
  69. key <TLDE> { [ semicolon, asciitilde ] };
  70. // On some key (e.g. AD01, right below) there is not yet mapping for the
  71. // second shift level. Since I could not figure a simple way to map this
  72. // to "emit nothing", it is currently mapped to the same letter of the
  73. // first shift level (avoiding mapping may risk it be used by a character
  74. // from a different group).
  75. key <AD01> { [ slash, slash ] };
  76. key <AD02> { [ apostrophe, apostrophe ] };
  77. key <AD03> { [ hebrew_qoph, 0x10005b8 ] }; // Qamats
  78. key <AD04> { [ hebrew_resh, 0x10005bc ] }; // Dagesh/Shuruq
  79. key <AD05> { [ hebrew_aleph, 0x100200e ] }; // LRM
  80. key <AD06> { [ hebrew_tet, 0x100200f ] }; // RLM
  81. key <AD07> { [ hebrew_waw, 0x10005b9 ] }; // Holam
  82. key <AD08> { [ hebrew_finalnun,hebrew_finalnun] };
  83. key <AD09> { [ hebrew_finalmem,hebrew_finalmem] };
  84. key <AD10> { [ hebrew_pe, 0x10005b7 ] }; // Patah
  85. key <AC01> { [ hebrew_shin, 0x10005b0 ] }; // Sheva
  86. key <AC02> { [ hebrew_dalet, 0x10005bc ] }; // Dagesh/Shuruq
  87. key <AC03> { [ hebrew_gimel, hebrew_gimel ] };
  88. key <AC04> { [ hebrew_kaph, hebrew_kaph ] };
  89. key <AC05> { [ hebrew_ayin, 0x10005c2 ] }; // Sin dot
  90. key <AC06> { [ hebrew_yod, 0x10005c1 ] }; // Shin dot
  91. key <AC07> { [ hebrew_chet, 0x10005b4 ] }; // Hiriq
  92. key <AC08> { [ hebrew_lamed, 0x10020aa ] }; // NIS
  93. key <AC09> { [ hebrew_finalkaph,hebrew_finalkaph] };
  94. key <AC10> { [ hebrew_finalpe, colon ] };
  95. key <AC11> { [ comma, quotedbl ] };
  96. key <AB01> { [ hebrew_zain, hebrew_zain ] };
  97. key <AB02> { [ hebrew_samech,0x10005b6 ] }; // Segol
  98. key <AB03> { [ hebrew_bet, 0x10005bb ] }; // Qubuts
  99. key <AB04> { [ hebrew_he, 0x10005b1 ] }; // H. Segol
  100. key <AB05> { [ hebrew_nun, 0x10005b2 ] }; // H. Patah
  101. key <AB06> { [ hebrew_mem, 0x10005b3 ] }; // H. Qamats
  102. key <AB07> { [ hebrew_zade, 0x10005b5 ] }; // Tsere
  103. key <AB08> { [ hebrew_taw, greater ] };
  104. key <AB09> { [ hebrew_finalzade, less ] };
  105. key <AB10> { [ period, question ] };
  106. // Note the parens mirroring below:
  107. key <AD11> { [ bracketright, braceright ] };
  108. key <AD12> { [ bracketleft, braceleft ] };
  109. key <AE01> { [ 1, exclam ]};
  110. key <AE02> { [ 2, at ]};
  111. key <AE03> { [ 3, numbersign ]};
  112. key <AE04> { [ 4, dollar ]};
  113. key <AE05> { [ 5, percent ]};
  114. key <AE06> { [ 6, asciicircum ]};
  115. key <AE07> { [ 7, ampersand ]};
  116. key <AE08> { [ 8, asterisk ]};
  117. key <AE09> { [ 9, parenright ]};
  118. key <AE10> { [ 0, parenleft ]};
  119. key <AE11> { [ minus , 0x10005be ] }; // H. Hiphen
  120. key <AE12> { [ equal , plus ] };
  121. };
  122. partial alphanumeric_keys
  123. xkb_symbols "phonetic" {
  124. // uses the phonetic layout from old Slackware 'il.map' file
  125. name[Group1]= "Hebrew (phonetic)";
  126. key <AE12> { [ equal, plus, hebrew_doublelowline, hebrew_doublelowline ]};
  127. key <LatQ> { [ hebrew_qoph, hebrew_qoph ] };
  128. key <LatW> { [ hebrew_waw, hebrew_waw ] };
  129. key <LatE> { [ hebrew_aleph, hebrew_aleph ] };
  130. key <LatR> { [ hebrew_resh, hebrew_resh ] };
  131. key <LatT> { [ hebrew_taw, hebrew_tet ] };
  132. key <LatY> { [ hebrew_ayin, hebrew_ayin ] };
  133. key <LatU> { [ hebrew_waw, hebrew_waw ] };
  134. key <LatI> { [ hebrew_yod, hebrew_yod ] };
  135. key <LatO> { [ hebrew_samech, hebrew_samech ] };
  136. key <LatP> { [ hebrew_pe, hebrew_finalpe ] };
  137. key <LatA> { [ hebrew_aleph, hebrew_aleph ] };
  138. key <LatS> { [ hebrew_shin, hebrew_shin ] };
  139. key <LatD> { [ hebrew_dalet, hebrew_dalet ] };
  140. key <LatF> { [ hebrew_pe, hebrew_finalpe ] };
  141. key <LatG> { [ hebrew_gimel, hebrew_gimel ] };
  142. key <LatH> { [ hebrew_he, hebrew_he ] };
  143. key <LatJ> { [ hebrew_yod, hebrew_yod ] };
  144. key <LatK> { [ hebrew_kaph, hebrew_finalkaph ] };
  145. key <LatL> { [ hebrew_lamed, hebrew_lamed ] };
  146. key <LatZ> { [ hebrew_zain, hebrew_zain ] };
  147. key <LatX> { [ hebrew_chet, hebrew_chet ] };
  148. key <LatC> { [ hebrew_zade, hebrew_finalzade ] };
  149. key <LatV> { [ hebrew_waw, hebrew_waw ] };
  150. key <LatB> { [ hebrew_bet, hebrew_bet ] };
  151. key <LatN> { [ hebrew_nun, hebrew_finalnun ] };
  152. key <LatM> { [ hebrew_mem, hebrew_finalmem ] };
  153. };
  154. // The 'Biblical Hebrew' keyboard layout as defined by Tiro for use with the
  155. // 'SBL Hebrew' font was added 2006.11.13 by Sebastian J. Bronner
  156. // <waschtl@sbronner.com>. Its primary features (as compared to the lyx layout)
  157. // are that the consonants are in the Israeli standard positions, that a great
  158. // multitude of glyphs can be input directly from the keyboard, and that it is
  159. // the closest thing to a standard layout a theologian can hope for.
  160. // Documentation (including printable keyboard tables), SBL Hebrew font, and
  161. // keyboard layout for Windows are available at
  162. // http://www.sbl-site.org/Resources/Resources_BiblicalFonts.aspx.
  163. //
  164. // It is of interest that the 'basic' layout defined first in this file (as
  165. // ships with x.org disagrees in the non-consonant characters that the Tiro-
  166. // layout claims to be the Israeli standard. Tiros apparent diligence in the
  167. // PDF-documentation accompanying the keyboard-layout-files lead me to put
  168. // greater stock in their claim than in this file. Therefore, the 'biblical'
  169. // layout below does not include 'il(basic)' but redoes the _whole_ thing from
  170. // scratch.
  171. partial alphanumeric_keys
  172. xkb_symbols "biblical" {
  173. name[Group1]= "Hebrew (Biblical, Tiro)";
  174. key.type = "FOUR_LEVEL_SEMIALPHABETIC";
  175. key <TLDE> { [ U05C3, U05AE, semicolon, asciitilde ] };
  176. key <AE01> { [ 1, U05A9, VoidSymbol, exclam ] };
  177. key <AE02> { [ 2, U0599, VoidSymbol, at ] };
  178. key <AE03> { [ 3, U0592, VoidSymbol, numbersign ] };
  179. key <AE04> { [ 4, U05AF, NewSheqelSign, dollar ] };
  180. key <AE05> { [ 5, U05BA, U200D, percent ] };
  181. key <AE06> { [ 6, U05B9, U200C, asciicircum ] };
  182. key <AE07> { [ 7, U05BF, U034F, ampersand ] };
  183. key <AE08> { [ 8, U05C2, U200E, asterisk ] };
  184. key <AE09> { [ 9, U05C1, U200F, parenright ] };
  185. key <AE10> { [ 0, U059D, U25CC, parenleft ] };
  186. key <AE11> { [ U05BE, U05A0, minus, underscore ] };
  187. key <AE12> { [ equal, U05BC, VoidSymbol, plus ] };
  188. key <AD01> { [ U0307, U05C4, U0308, slash ] };
  189. key <AD02> { [ U05F3, U05AC, U05F4, apostrophe ] };
  190. key <AD03> { [ hebrew_qoph, U05AB, U20AC ] };
  191. key <AD04> { [ hebrew_resh, U059F ] };
  192. key <AD05> { [ hebrew_aleph, U0593 ] };
  193. key <AD06> { [ hebrew_tet, U059E ] };
  194. key <AD07> { [ hebrew_waw, U059C, U05F0 ] };
  195. key <AD08> { [ hebrew_finalnun, U05A1 ] };
  196. key <AD09> { [ hebrew_finalmem, U0595 ] };
  197. key <AD10> { [ hebrew_pe, U0594 ] };
  198. key <AD11> { [ bracketright, U0597, VoidSymbol, braceright ] };
  199. key <AD12> { [ bracketleft, U0598, VoidSymbol, braceleft ] };
  200. key <BKSL> { [ U05C0, U05A8, backslash, bar ] };
  201. key <AC01> { [ hebrew_shin, U05BD ] };
  202. key <AC02> { [ hebrew_dalet, U05B0 ] };
  203. key <AC03> { [ hebrew_gimel, U05BB ] };
  204. key <AC04> { [ hebrew_kaph, U05B4 ] };
  205. key <AC05> { [ hebrew_ayin, U05B1 ] };
  206. key <AC06> { [ hebrew_yod, U05B6, U05F2 ] };
  207. key <AC07> { [ hebrew_chet, U05B5, U05F1 ] };
  208. key <AC08> { [ hebrew_lamed, U05B3 ] };
  209. key <AC09> { [ hebrew_finalkaph, U05B8, U05C7 ] };
  210. key <AC10> { [ hebrew_finalpe, U05B2, VoidSymbol, colon ] };
  211. key <AC11> { [ U059a, U05B7, comma, quotedbl ] };
  212. key <AB01> { [ hebrew_zain, U05C5 ] };
  213. key <AB02> { [ hebrew_samech, U05A4 ] };
  214. key <AB03> { [ hebrew_bet, U05AA, U05A2 ] };
  215. key <AB04> { [ hebrew_he, U05A6 ] };
  216. key <AB05> { [ hebrew_nun, U05A5, U05C6 ] };
  217. key <AB06> { [ hebrew_mem, U05A7 ] };
  218. key <AB07> { [ hebrew_zade, U059B ] };
  219. key <AB08> { [ hebrew_taw, U0591, VoidSymbol, greater ] };
  220. key <AB09> { [ hebrew_finalzade, U0596, VoidSymbol, less ] };
  221. key <AB10> { [ U05AD, U05A3, period, question ] };
  222. key <SPCE> { [ space, space, thinspace, nobreakspace ] };
  223. };
  224. // EXTRAS
  225. // Biblical hebrew (SIL) US Standard layout version 1.5
  226. // This map is based closely on v 1.5 of the standard. The only deviation being the replacement of the composite characters sin and shin
  227. // by their more recent Unicodev6 counterparts
  228. // this map contains all the characters found in Biblical annotation, masoretic and Dead Sea Scroll related work.
  229. // The layout corresponds phonetically to a US standard layout or similar (Qwerty).
  230. // If you are using an actual Hebrew keyboard, you are probably better off using a Tiro compliant scholarly layout
  231. // This linux port created and maintained by Dennis Meulensteen, dennis@meulensteen.nl
  232. partial alphanumeric_keys
  233. xkb_symbols "biblicalSIL" {
  234. name[Group1]= "Hebrew (Biblical, SIL phonetic)";
  235. key.type = "FOUR_LEVEL_SEMIALPHABETIC";
  236. key <TLDE> { [ U20AC, U20AA, U0024 ] }; //Euro, Shekel, Dollar -
  237. key <AE01> { [ 1, U0021, U05BD, U0597 ] }; //1, exclamation meteg revia
  238. key <AE02> { [ 2, U0598, U05A2, U05AE ] }; //2, zarqa atn. hafukh zinor
  239. key <AE03> { [ 3, U05A8, U0596, U0599 ] }; //3, qadma tipeha pashta
  240. key <AE04> { [ 4, U059C, U05A5, U05A0 ] }; //4, geresh merkha tel. gedola
  241. key <AE05> { [ 5, U059E, U05A6, U05A9 ] }; //5, gershayim mer. kefula tel qetana
  242. key <AE06> { [ 6, VoidSymbol, U05AD, U059F ] }; //6, - dehi qar. para
  243. key <AE07> { [ 7, U05AC, U05A3, U05A1 ] }; //7, iluy munah pazer
  244. key <AE08> { [ 8, U059D, U059B, U0595 ] }; //8, g. muqdam tevir zaq. gadol
  245. key <AE09> { [ 9, U0029, U05A7, U0593 ] }; //9, parenth.R darqa shalshelet
  246. key <AE10> { [ 0, U0028, U05AA, U05AF ] }; //0, paren.L yer. ben yomo masora c.
  247. key <AE11> { [ U05BE, U2013, U2014, U05BF ] }; //Maqaf, en dash em dash rafe
  248. key <AE12> { [ U05BC, VoidSymbol, U0591, U25CC ] }; //Dagesh - etnahta mark base
  249. key <AD01> { [ hebrew_qoph, U0597 ] }; //Qof revia - -
  250. key <AD02> { [ hebrew_waw] }; //waw - - -
  251. key <AD03> { [ U05B6, U05B5, VoidSymbol, U05B1 ] }; //segol tsere - hat. segol
  252. key <AD04> { [ hebrew_resh ] }; //resh - - -
  253. key <AD05> { [ hebrew_taw ] }; //taw - - -
  254. key <AD06> { [ hebrew_yod, U059F ] }; //jod qar. para - -
  255. key <AD07> { [ U05BB] }; //quibuts - - -
  256. key <AD08> { [ U05B4 ] }; //hiriq, - - -
  257. key <AD09> { [ U05B9, U05BA, U05C7, U05B3 ] }; //holam, holam(wav) qam. qatan hat. Qamats
  258. key <AD10> { [ hebrew_pe, hebrew_finalpe, VoidSymbol, U034F ] }; //pe final pe - c. grapheme joiner
  259. key <AD11> { [ bracketright, braceright, VoidSymbol, U0594 ] }; //Bracket R brace R - zaq. qatan
  260. key <AD12> { [ bracketleft, braceleft, U059A, U0592 ] }; //Brachket L brace L yetiv segolta
  261. key <BKSL> { [ U05C0, U05C0, U05A4, U05AB ] };//Paseq Paseq mahapakh ole
  262. key <AC01> { [ U05B7, U05B8, U05C7, U05B2 ] }; //patah Qamats Qam. Qatan hat. patah
  263. key <AC02> { [ hebrew_samech, U05E9 ] }; //Samech, shin no dot - -
  264. key <AC03> { [ hebrew_dalet ] }; //dalet - - -
  265. key <AC04> { [ UFB2B, hebrew_shin, U05C2 ] }; //UCSv6 Sin shin (nodot) sindot -
  266. key <AC05> { [ hebrew_gimel, VoidSymbol, U25E6, U2022 ] }; //gimel - bullet(DSS) bulletfill (DSS)
  267. key <AC06> { [ hebrew_he, VoidSymbol, U0336, U030A ] };//he - strikeout(DSS) Ring Above(DSS)
  268. key <AC07> { [ UFB2A, hebrew_shin, U05C1] }; //UCSv6 Shin shin (nodot) shindot -
  269. key <AC08> { [ hebrew_kaph, hebrew_finalkaph ] }; //kaph Final kaph -
  270. key <AC09> { [ hebrew_lamed, VoidSymbol ] }; //lamed - -
  271. key <AC10> { [ U05B0, U05F4, semicolon, U05C3 ] }; //sva gers. p semicolon sof pasuq
  272. key <AC11> { [ U2019, U201D, U0323, U05C4 ] };//QuoteRight double R Quote punctum punctum Above
  273. key <AB01> { [ hebrew_zain ] }; //Zayin - -
  274. key <AB02> { [ hebrew_chet ] }; //chet - -
  275. key <AB03> { [ hebrew_zade, U05E5 ] }; // tzade, final tzade -
  276. key <AB04> { [ hebrew_tet ] }; //tet - -
  277. key <AB05> { [ hebrew_bet ] }; //bet - -
  278. key <AB06> { [ hebrew_nun, hebrew_finalnun ] }; //nun, final nun
  279. key <AB07> { [ hebrew_mem, hebrew_finalmem, U200C, U200D ] }; //mem, final mem 0.wid.non.join. 0.wid.joiner
  280. key <AB08> { [ U002C, U05E2, U00AB, U0307 ] }; //comma, ayin guillemetsR masora dot
  281. key <AB09> { [ U0002E, U05D0, U00BB, U0308 ] }; //period, alef guillemetsL thousands
  282. key <AB10> { [ slash, question, U05F3 ] }; //slash question geresh P
  283. key <SPCE> { [ space, space, thinspace, nobreakspace ] };//space space thin space, nbsp
  284. };