Home | History | Annotate | Download | only in symbols
      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 
     10 default  partial alphanumeric_keys
     11 xkb_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
     78 partial alphanumeric_keys
     79 xkb_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 
    141 partial alphanumeric_keys
    142 xkb_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 (a] 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 
    198 partial alphanumeric_keys
    199 xkb_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 (a] meulensteen.nl
    266 partial alphanumeric_keys
    267 xkb_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