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