// This file adds full UTF-8 SAMARITAN keyboard mapping to X11. // INSTRCUCTIONS: // // As ROOT ... // 1. Replace your existing /usr/share/X11/xkb/symbols/il file with this one. // // 2. Modify /usr/share/X11/xkb/rules/evdev.xml to include: // // // // samaritan // Hebrew (Samaritan) // // // // in the Hebrew section of the file. (Search for "Hebrew," and insert // the above lines in between two existing 'variants.') Save the file. // // 3. From the terminal, run: sudo rm /var/lib/xkb/*.xkm // This will force X11 to recompile all of your keyboard layouts when // you restart the X Server. This step is especially important if you've // modified this layout after using it. // // 4. Log out and log back in (i.e. restart the X Server). // // 5. Add "Hebrew (Samaritan)" to the keyboard switcher in whichever window manager // you use (e.g. Gnome, KDE, Unity, etc.). // based on a keyboard map from an 'xkb/symbols/il' file // This is a partial implemetation of the Israeli standard SI-1452 // It does not implement changes to the English layout ("Alt-English"), // as I believe that it is not the job of this layout to modify the English // layout. default partial alphanumeric_keys xkb_symbols "basic" { // uses the kbd layout in use in Israel. name[Group1]= "Hebrew"; key { [ slash, Q ] }; key { [ apostrophe, W ] }; key { [ hebrew_resh, R ] }; key { [ hebrew_aleph,T ] }; key { [ hebrew_tet, Y ] }; key { [ hebrew_waw, U ] }; key { [ hebrew_finalnun, I ] }; key { [ hebrew_finalmem, O ] }; key { [ hebrew_pe, P ] }; key { [ hebrew_dalet,S ] }; key { [ hebrew_gimel,D ] }; key { [ hebrew_kaph, F ] }; key { [ hebrew_ayin, G ] }; key { [ hebrew_yod, H ] }; key { [ hebrew_chet, J ] }; key { [ hebrew_lamed, K ] }; key { [ hebrew_finalkaph, L ] }; key { [ hebrew_finalpe, colon ] }; key { [ comma, quotedbl ] }; key { [ hebrew_zain, Z ] }; key { [ hebrew_samech, X ] }; key { [ hebrew_bet, C ] }; key { [ hebrew_he, V ] }; key { [ hebrew_nun, B ] }; key { [ hebrew_mem, N ] }; key { [ hebrew_zade, M ] }; // Mirrored: key { [ hebrew_taw, greater ] }; key { [ hebrew_finalzade, less ] }; key.type[Group1] = "THREE_LEVEL"; key { [ semicolon, asciitilde,0x10005b0 ]}; // Sheva key { [ period, question, 0x10005c3 ]}; // Sof Pasuq key { [ hebrew_qoph, E, EuroSign ]}; key { [ hebrew_shin, A, 0x10020AA ]}; // The following may get overriden by the iso9995-3(basic101) symbols. // therefore they are included here. // Including them isn't a great idea (for instance: what if group 1 uses // UK keyboard mapping, and maps shift-3 to sterling? This mapping won't // preserve that, and I'm not sure that this is a good feature. key { [ 1, exclam , 0x10005b1 ]}; // H. Segol key { [ 2, at , 0x10005b2 ]}; // H. Patah key { [ 3, numbersign , 0x10005b3 ]}; // H. Qamats key { [ 4, dollar , 0x10005b4 ]}; // Hiriq key { [ 5, percent , 0x10005b5 ]}; // Tsere key { [ 6, asciicircum , 0x10005b6 ]}; // Segol key { [ 7, ampersand , 0x10005b7 ]}; // Patah key { [ 8, asterisk , 0x10005b8 ]}; // Qamats // Mirrored: key { [ 9, parenright , 0x10005c2 ]}; // Sin dot key { [ 0, parenleft , 0x10005c1 ]}; // Shin dot key { [ minus, underscore , 0x10005b9 ]}; // Holam key { [ equal, plus , 0x10005bc ]}; // Dagesh/Shuruq // Mirrored: key { [ bracketright, braceright, 0x10005bf ]}; // Rafe key { [ bracketleft, braceleft, 0x10005bd ]}; // Meteg key { [ backslash, bar, 0x10005bb ]}; // Qubuts include "level3(ralt_switch)" }; // nikud patter based on Dekel Tsur's Hebrew mapping for LyX partial alphanumeric_keys xkb_symbols "lyx" { name[Group1]= "Hebrew (lyx)"; key { [ semicolon, asciitilde ] }; // On some key (e.g. AD01, right below) there is not yet mapping for the // second shift level. Since I could not figure a simple way to map this // to "emit nothing", it is currently mapped to the same letter of the // first shift level (avoiding mapping may risk it be used by a character // from a different group). key { [ slash, slash ] }; key { [ apostrophe, apostrophe ] }; key { [ hebrew_qoph, 0x10005b8 ] }; // Qamats key { [ hebrew_resh, 0x10005bc ] }; // Dagesh/Shuruq key { [ hebrew_aleph, 0x100200e ] }; // LRM key { [ hebrew_tet, 0x100200f ] }; // RLM key { [ hebrew_waw, 0x10005b9 ] }; // Holam key { [ hebrew_finalnun,hebrew_finalnun] }; key { [ hebrew_finalmem,hebrew_finalmem] }; key { [ hebrew_pe, 0x10005b7 ] }; // Patah key { [ hebrew_shin, 0x10005b0 ] }; // Sheva key { [ hebrew_dalet, 0x10005bc ] }; // Dagesh/Shuruq key { [ hebrew_gimel, hebrew_gimel ] }; key { [ hebrew_kaph, hebrew_kaph ] }; key { [ hebrew_ayin, 0x10005c2 ] }; // Sin dot key { [ hebrew_yod, 0x10005c1 ] }; // Shin dot key { [ hebrew_chet, 0x10005b4 ] }; // Hiriq key { [ hebrew_lamed, 0x10020aa ] }; // NIS key { [ hebrew_finalkaph,hebrew_finalkaph] }; key { [ hebrew_finalpe, colon ] }; key { [ comma, quotedbl ] }; key { [ hebrew_zain, hebrew_zain ] }; key { [ hebrew_samech,0x10005b6 ] }; // Segol key { [ hebrew_bet, 0x10005bb ] }; // Qubuts key { [ hebrew_he, 0x10005b1 ] }; // H. Segol key { [ hebrew_nun, 0x10005b2 ] }; // H. Patah key { [ hebrew_mem, 0x10005b3 ] }; // H. Qamats key { [ hebrew_zade, 0x10005b5 ] }; // Tsere key { [ hebrew_taw, greater ] }; key { [ hebrew_finalzade, less ] }; key { [ period, question ] }; // Note the parens mirroring below: key { [ bracketright, braceright ] }; key { [ bracketleft, braceleft ] }; key { [ 1, exclam ]}; key { [ 2, at ]}; key { [ 3, numbersign ]}; key { [ 4, dollar ]}; key { [ 5, percent ]}; key { [ 6, asciicircum ]}; key { [ 7, ampersand ]}; key { [ 8, asterisk ]}; key { [ 9, parenright ]}; key { [ 0, parenleft ]}; key { [ minus , 0x10005be ] }; // H. Hyphen key { [ equal , plus ] }; }; // UTF-8 Samaritan with niqqud. By Uri DeYoung, Elon Moreh partial alphanumeric_keys xkb_symbols "samaritan" { name[Group1]= "Hebrew (Samaritan)"; key { [ U081D, U081C ] }; // VOWEL SIGN E, VOWEL SIGN LONG E key { [ U0827, U0826 ] }; // VOWEL SIGN U, VOWEL SIGN LONG U key { [ U0812, U081E ] }; // QUF, VOWEL SIGN OVERLONG AA key { [ U0813, U081E ] }; // RISH, VOWEL SIGN LONG AA key { [ U0800, U0820 ] }; // ALAF, VOWEL SIGN AA key { [ U0808, U0821 ] }; // TIT, VOWEL SIGN OVERLONG A key { [ U0805, U0822 ] }; // BAA, VOWEL SIGN LONG A key { [ U080D, U0823 ] }; // NUN (Final-Nun key), VOWEL SIGN A key { [ U080C, U0824 ] }; // MIM (Final-Mem key), MODIFIER LETTER SHORT A key { [ U0810, U0825 ] }; // FI, VOWEL SIGN SHORT A key { [ U0827, U0826 ] }; // VOWEL SIGN U, VOWEL SIGN LONG U key { [ U0828, U0829 ] }; // VOWEL SIGN I, VOWEL SIGN LONG I key { [ U0814, U0814 ] }; // SHAN key { [ U0803, U0803 ] }; // DALAT key { [ U0802, U0802 ] }; // GAMAN key { [ U080A, U080A ] }; // KAAF key { [ U080F, U080F ] }; // IN key { [ U0809, U0809 ] }; // YUT key { [ U0807, U0807 ] }; // IT key { [ U080B, U080B ] }; // LABAT key { [ U080A, U080A ] }; // KAAF (Final-Kaf key) key { [ U0810, U0839 ] }; // FI (Final-Feh key), PUNCTUATION QISA key { [ U0831, U0832 ] }; // PUNCTUATION AFSAAQ, PUNCTUATION ANGED key { [ U0806, U0806 ] }; // ZEN key { [ U080E, U080E ] }; // SINGAAT key { [ U0801, U0801 ] }; // BIT key { [ U0804, U0804 ] }; // IY key { [ U080D, U080D ] }; // NUN key { [ U080C, U080C ] }; // MIM key { [ U0811, U0811 ] }; // SAADIY key { [ U0815, U0815 ] }; // TAAF key { [ U0811, U0819 ] }; // SAADIY (Final-Saadi key), MARK DAGESH key { [ U083D, U0835 ] }; // PUNCTUATION SOF MASHFAAT, PUNCTUATION SHIYYAALAA key { [ U0830, space, thinspace, nobreakspace ] }; // Samaritan word separator, Normal Space, Thin Space, Non-Breaking Space key { [ U082B, U082C ] }; // VOWEL SIGN O, VOWEL SIGN SUKUN // Note the parens mirroring below: key { [ U0817, U0816 ] }; // MARK IN-ALAF, MARK IN key { [ 1, U0834 ] }; // PUNCTUATION ATMAAU key { [ 2, at ] }; key { [ 3, numbersign ] }; key { [ 4, dollar ] }; key { [ 5, percent ] }; key { [ 6, asciicircum ] }; key { [ 7, ampersand ] }; key { [ 8, asterisk ] }; key { [ 9, parenright ] }; key { [ 0, parenleft ] }; key { [ minus, U0818 ] }; // SAMARITAN MARK OCCLUSION (The thinkgy that changes soft labials to a hard "B") key { [ equal, plus ] }; }; partial alphanumeric_keys xkb_symbols "phonetic" { // uses the phonetic layout from old Slackware 'il.map' file name[Group1]= "Hebrew (phonetic)"; key { [ equal, plus, hebrew_doublelowline, hebrew_doublelowline ]}; key { [ hebrew_qoph, hebrew_qoph ] }; key { [ hebrew_waw, hebrew_waw ] }; key { [ hebrew_aleph, hebrew_aleph ] }; key { [ hebrew_resh, hebrew_resh ] }; key { [ hebrew_taw, hebrew_tet ] }; key { [ hebrew_ayin, hebrew_ayin ] }; key { [ hebrew_waw, hebrew_waw ] }; key { [ hebrew_yod, hebrew_yod ] }; key { [ hebrew_samech, hebrew_samech ] }; key { [ hebrew_pe, hebrew_finalpe ] }; key { [ hebrew_aleph, hebrew_aleph ] }; key { [ hebrew_shin, hebrew_shin ] }; key { [ hebrew_dalet, hebrew_dalet ] }; key { [ hebrew_pe, hebrew_finalpe ] }; key { [ hebrew_gimel, hebrew_gimel ] }; key { [ hebrew_he, hebrew_he ] }; key { [ hebrew_yod, hebrew_yod ] }; key { [ hebrew_kaph, hebrew_finalkaph ] }; key { [ hebrew_lamed, hebrew_lamed ] }; key { [ hebrew_zain, hebrew_zain ] }; key { [ hebrew_chet, hebrew_chet ] }; key { [ hebrew_zade, hebrew_finalzade ] }; key { [ hebrew_waw, hebrew_waw ] }; key { [ hebrew_bet, hebrew_bet ] }; key { [ hebrew_nun, hebrew_finalnun ] }; key { [ hebrew_mem, hebrew_finalmem ] }; }; // The 'Biblical Hebrew' keyboard layout as defined by Tiro for use with the // 'SBL Hebrew' font was added 2006.11.13 by Sebastian J. Bronner // . Its primary features (as compared to the lyx layout) // are that the consonants are in the Israeli standard positions, that a great // multitude of glyphs can be input directly from the keyboard, and that it is // the closest thing to a standard layout a theologian can hope for. // Documentation (including printable keyboard tables), SBL Hebrew font, and // keyboard layout for Windows are available at // http://www.sbl-site.org/Resources/Resources_BiblicalFonts.aspx. // // It is of interest that the 'basic' layout defined first in this file (as // ships with x.org disagrees in the non-consonant characters that the Tiro- // layout claims to be the Israeli standard. Tiros apparent diligence in the // PDF-documentation accompanying the keyboard-layout-files lead me to put // greater stock in their claim than in this file. Therefore, the 'biblical' // layout below does not include 'il(basic)' but redoes the _whole_ thing from // scratch. partial alphanumeric_keys xkb_symbols "biblical" { name[Group1]= "Hebrew (Biblical, Tiro)"; key.type = "FOUR_LEVEL_SEMIALPHABETIC"; key { [ U05C3, U05AE, semicolon, asciitilde ] }; key { [ 1, U05A9, VoidSymbol, exclam ] }; key { [ 2, U0599, VoidSymbol, at ] }; key { [ 3, U0592, VoidSymbol, numbersign ] }; key { [ 4, U05AF, NewSheqelSign, dollar ] }; key { [ 5, VoidSymbol, U200D, percent ] }; key { [ 6, U05B9, U200C, asciicircum ] }; key { [ 7, U05BF, U034F, ampersand ] }; key { [ 8, U05C2, U200E, asterisk ] }; key { [ 9, U05C1, U200F, parenright ] }; key { [ 0, U059D, U25CC, parenleft ] }; key { [ U05BE, U05A0, minus, underscore ] }; key { [ equal, U05BC, VoidSymbol, plus ] }; key { [ U0307, U05C4, U0308, slash ] }; key { [ U05F3, U05AC, U05F4, apostrophe ] }; key { [ hebrew_qoph, U05AB, U20AC ] }; key { [ hebrew_resh, U059F ] }; key { [ hebrew_aleph, U0593 ] }; key { [ hebrew_tet, U059E ] }; key { [ hebrew_waw, U059C, U05F0 ] }; key { [ hebrew_finalnun, U05A1 ] }; key { [ hebrew_finalmem, U0595 ] }; key { [ hebrew_pe, U0594 ] }; key { [ bracketright, U0597, VoidSymbol, braceright ] }; key { [ bracketleft, U0598, VoidSymbol, braceleft ] }; key { [ U05C0, U05A8, backslash, bar ] }; key { [ hebrew_shin, U05BD ] }; key { [ hebrew_dalet, U05B0 ] }; key { [ hebrew_gimel, U05BB ] }; key { [ hebrew_kaph, U05B4 ] }; key { [ hebrew_ayin, U05B1 ] }; key { [ hebrew_yod, U05B6, U05F2 ] }; key { [ hebrew_chet, U05B5, U05F1 ] }; key { [ hebrew_lamed, U05B3 ] }; key { [ hebrew_finalkaph, U05B8, U05C7 ] }; key { [ hebrew_finalpe, U05B2, VoidSymbol, colon ] }; key { [ U059a, U05B7, comma, quotedbl ] }; key { [ hebrew_zain, U05C5 ] }; key { [ hebrew_samech, U05A4 ] }; key { [ hebrew_bet, U05AA, U05A2 ] }; key { [ hebrew_he, U05A6 ] }; key { [ hebrew_nun, U05A5, U05C6 ] }; key { [ hebrew_mem, U05A7 ] }; key { [ hebrew_zade, U059B ] }; key { [ hebrew_taw, U0591, VoidSymbol, greater ] }; key { [ hebrew_finalzade, U0596, VoidSymbol, less ] }; key { [ U05AD, U05A3, period, question ] }; key { [ space, space, thinspace, nobreakspace ] }; }; // EXTRAS // Biblical hebrew (SIL) US Standard layout version 1.5 // 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 // by their more recent Unicodev6 counterparts // this map contains all the characters found in Biblical annotation, masoretic and Dead Sea Scroll related work. // The layout corresponds phonetically to a US standard layout or similar (Qwerty). // If you are using an actual Hebrew keyboard, you are probably better off using a Tiro compliant scholarly layout // This linux port created and maintained by Dennis Meulensteen, dennis@meulensteen.nl partial alphanumeric_keys xkb_symbols "biblicalSIL" { name[Group1]= "Hebrew (Biblical, SIL phonetic)"; key.type = "FOUR_LEVEL_SEMIALPHABETIC"; key { [ U20AC, U20AA, U0024 ] }; //Euro, Shekel, Dollar - key { [ 1, U0021, U05BD, U0597 ] }; //1, exclamation meteg revia key { [ 2, U0598, U05A2, U05AE ] }; //2, zarqa atn. hafukh zinor key { [ 3, U05A8, U0596, U0599 ] }; //3, qadma tipeha pashta key { [ 4, U059C, U05A5, U05A0 ] }; //4, geresh merkha tel. gedola key { [ 5, U059E, U05A6, U05A9 ] }; //5, gershayim mer. kefula tel qetana key { [ 6, VoidSymbol, U05AD, U059F ] }; //6, - dehi qar. para key { [ 7, U05AC, U05A3, U05A1 ] }; //7, iluy munah pazer key { [ 8, U059D, U059B, U0595 ] }; //8, g. muqdam tevir zaq. gadol key { [ 9, U0029, U05A7, U0593 ] }; //9, parenth.R darqa shalshelet key { [ 0, U0028, U05AA, U05AF ] }; //0, paren.L yer. ben yomo masora c. key { [ U05BE, U2013, U2014, U05BF ] }; //Maqaf, en dash em dash rafe key { [ U05BC, VoidSymbol, U0591, U25CC ] }; //Dagesh - etnahta mark base key { [ hebrew_qoph, U0597 ] }; //Qof revia - - key { [ hebrew_waw] }; //waw - - - key { [ U05B6, U05B5, VoidSymbol, U05B1 ] }; //segol tsere - hat. segol key { [ hebrew_resh ] }; //resh - - - key { [ hebrew_taw ] }; //taw - - - key { [ hebrew_yod, U059F ] }; //jod qar. para - - key { [ U05BB] }; //quibuts - - - key { [ U05B4 ] }; //hiriq, - - - key { [ U05B9, U05BA, U05C7, U05B3 ] }; //holam, holam(wav) qam. qatan hat. Qamats key { [ hebrew_pe, hebrew_finalpe, VoidSymbol, U034F ] }; //pe final pe - c. grapheme joiner key { [ bracketright, braceright, VoidSymbol, U0594 ] }; //Bracket R brace R - zaq. qatan key { [ bracketleft, braceleft, U059A, U0592 ] }; //Brachket L brace L yetiv segolta key { [ U05C0, U05C0, U05A4, U05AB ] };//Paseq Paseq mahapakh ole key { [ U05B7, U05B8, U05C7, U05B2 ] }; //patah Qamats Qam. Qatan hat. patah key { [ hebrew_samech, U05E9 ] }; //Samech, shin no dot - - key { [ hebrew_dalet ] }; //dalet - - - key { [ UFB2B, hebrew_sin, U05C2 ] }; //UCSv6 Sin sin (nodot) sindot - key { [ hebrew_gimel, VoidSymbol, U25E6, U2022 ] }; //gimel - bullet(DSS) bulletfill (DSS) key { [ hebrew_he, VoidSymbol, U0336, U030A ] };//he - strikeout(DSS) Ring Above(DSS) key { [ UFB2A, hebrew_shin, U05C1] }; //UCSv6 Shin shin (nodot) shindot - key { [ hebrew_kaph, hebrew_finalkaph ] }; //kaph Final kaph - key { [ hebrew_lamed, VoidSymbol ] }; //lamed - - key { [ U05B0, U05F4, semicolon, U05C3 ] }; //sva gers. p semicolon sof pasuq key { [ U2019, U201D, U0323, U05C4 ] };//QuoteRight double R Quote punctum punctum Above key { [ hebrew_zain ] }; //Zayin - - key { [ hebrew_chet ] }; //chet - - key { [ hebrew_zade, U05E5 ] }; // tzade, final tzade - key { [ hebrew_tet ] }; //tet - - key { [ hebrew_bet ] }; //bet - - key { [ hebrew_nun, hebrew_finalnun ] }; //nun, final nun key { [ hebrew_mem, hebrew_finalmem, U200C, U200D ] }; //mem, final mem 0.wid.non.join. 0.wid.joiner key { [ U002C, U05E2, U00AB, U0307 ] }; //comma, ayin guillemetsR masora dot key { [ U0002E, U05D0, U00BB, U0308 ] }; //period, alef guillemetsL thousands key { [ slash, question, U05F3 ] }; //slash question geresh P key { [ space, space, thinspace, nobreakspace ] };//space space thin space, nbsp };