il revision bfd7cbc1
1// based on a keyboard map from an 'xkb/symbols/il' file
2
3// This is a partial implemetation of the Israeli standard SI-1452
4// It does not implement changes to the English layout ("Alt-English"), 
5// as I believe that it is not the job of this layout to modify the English
6// layout.
7partial default alphanumeric_keys 
8xkb_symbols "basic" {
9    // uses the kbd layout in use in Israel.
10
11    name[Group1]= "Hebrew";
12
13    key <AD01> { [ slash,	Q		]	};
14    key <AD02> { [ apostrophe,	W		]	};
15    key <AD04> { [ hebrew_resh,	R		]	};
16    key <AD05> { [ hebrew_aleph,T		]       };
17    key <AD06> { [ hebrew_tet,	Y		]       };
18    key <AD07> { [ hebrew_waw,	U		]       };
19    key <AD08> { [ hebrew_finalnun,	I	]       };
20    key <AD09> { [ hebrew_finalmem,	O	]       };
21    key <AD10> { [ hebrew_pe,	P		]	};
22
23    key <AC02> { [ hebrew_dalet,S		]       };
24    key <AC03> { [ hebrew_gimel,D		]       };
25    key <AC04> { [ hebrew_kaph,	F		]	};
26    key <AC05> { [ hebrew_ayin,	G		]       };
27    key <AC06> { [ hebrew_yod,	H		]       };
28    key <AC07> { [ hebrew_chet,	J		]	};
29    key <AC08> { [ hebrew_lamed, K		]	};
30    key <AC09> { [ hebrew_finalkaph,	L	]       };
31    key <AC10> { [ hebrew_finalpe,	colon	]       };
32    key <AC11> { [ comma,	quotedbl	]	};
33
34    key <AB01> { [ hebrew_zain,	Z		]       };
35    key <AB02> { [ hebrew_samech, X		]       };
36    key <AB03> { [ hebrew_bet,	C		]       };
37    key <AB04> { [ hebrew_he,	V		]       };
38    key <AB05> { [ hebrew_nun,	B		]       };
39    key <AB06> { [ hebrew_mem,	N		]	};
40    key <AB07> { [ hebrew_zade,	M		]	};
41    // Mirrored:
42    key <AB08> { [ hebrew_taw,	greater		]	};
43    key <AB09> { [ hebrew_finalzade,	less	]	};
44
45    key.type[Group1] = "THREE_LEVEL";
46    
47    key <TLDE> { [ semicolon,	asciitilde,0x10005b0	]}; // Sheva
48    key <AB10> { [ period,	question,  0x10005c3	]}; // Sof Pasuq
49    key <AD03> { [ hebrew_qoph,	E,	EuroSign	]};
50    key <AC01> { [ hebrew_shin,	A,	0x10020AA	]};
51  
52    // The following may get overriden by the iso9995-3(basic101) symbols.
53    // therefore they are included here. 
54    // Including them isn't a great idea (for instance: what if group 1 uses
55    // UK keyboard mapping, and maps shift-3 to sterling? This mapping won't
56    // preserve that, and I'm not sure that this is a good feature.
57    key <AE01> { [     1, exclam      , 0x10005b1	]}; // H. Segol
58    key <AE02> { [     2, at          , 0x10005b2	]}; // H. Patah
59    key <AE03> { [     3, numbersign  , 0x10005b3	]}; // H.  Qamats
60    key <AE04> { [     4, dollar      , 0x10005b4	]}; // Hiriq
61    key <AE05> { [     5, percent     , 0x10005b5	]}; // Tsere
62    key <AE06> { [     6, asciicircum , 0x10005b6	]}; // Segol
63    key <AE07> { [     7, ampersand   , 0x10005b7	]}; // Patah
64    key <AE08> { [     8, asterisk    , 0x10005b8	]}; // Qamats
65    // Mirrored: 
66    key <AE09> { [     9, parenright   , 0x10005c2	]}; // Sin dot
67    key <AE10> { [     0, parenleft  , 0x10005c1	]}; // Shin dot
68    key <AE11> { [ minus, underscore  , 0x10005b9	]}; // Holam
69    key <AE12> { [ equal, plus        , 0x10005bc	]}; // Dagesh/Shuruq
70  
71    // Mirrored: 
72    key <AD11> { [ bracketright, braceright, 0x10005bf	]}; // Rafe
73    key <AD12> { [ bracketleft,  braceleft,  0x10005bd	]}; // Meteg
74                                      
75    key <BKSL> { [ backslash,    bar,  0x10005bb	]}; // Qubuts    
76
77    include "level3(ralt_switch)"
78};
79
80
81// nikud patter based on Dekel Tsur's Hebrew mapping for LyX
82partial alphanumeric_keys 
83xkb_symbols "lyx" {
84    name[Group1]= "Hebrew (lyx)";
85
86    key <TLDE> { [ semicolon,	asciitilde	]	};
87    // On some key (e.g. AD01, right below) there is not yet mapping for the
88    // second shift level. Since I could not figure a simple way to map this
89    // to "emit nothing", it is currently mapped to the same letter of the
90    // first shift level (avoiding mapping may risk it be used by a character
91    // from a different group).
92    key <AD01> { [ slash,	slash		]       };
93    key <AD02> { [ apostrophe,	apostrophe	]       };
94    key <AD03> { [ hebrew_qoph,	0x10005b8	]	}; // Qamats
95    key <AD04> { [ hebrew_resh,	0x10005bc	]       }; // Dagesh/Shuruq
96    key <AD05> { [ hebrew_aleph,	0x100200e	]       }; // LRM
97    key <AD06> { [ hebrew_tet,	0x100200f	]       }; // RLM
98    key <AD07> { [ hebrew_waw,	0x10005b9	]       }; // Holam
99    key <AD08> { [ hebrew_finalnun,hebrew_finalnun]      };
100    key <AD09> { [ hebrew_finalmem,hebrew_finalmem]      };
101    key <AD10> { [ hebrew_pe,	0x10005b7	]	}; // Patah
102
103    key <AC01> { [ hebrew_shin,	0x10005b0	]	}; // Sheva
104    key <AC02> { [ hebrew_dalet,	0x10005bc	]       }; // Dagesh/Shuruq
105    key <AC03> { [ hebrew_gimel,	hebrew_gimel	]       };
106    key <AC04> { [ hebrew_kaph,	hebrew_kaph	]	}; 
107    key <AC05> { [ hebrew_ayin,	0x10005c2	]       }; // Sin dot
108    key <AC06> { [ hebrew_yod,	0x10005c1	]       }; // Shin dot
109    key <AC07> { [ hebrew_chet,	0x10005b4	]	}; // Hiriq
110    key <AC08> { [ hebrew_lamed, 0x10020aa	]	}; // NIS
111    key <AC09> { [ hebrew_finalkaph,hebrew_finalkaph]    };
112    key <AC10> { [ hebrew_finalpe,	colon	]       };
113    key <AC11> { [ comma,	quotedbl	]	};
114
115    key <AB01> { [ hebrew_zain,	hebrew_zain	]       };
116    key <AB02> { [ hebrew_samech,0x10005b6	]       }; // Segol
117    key <AB03> { [ hebrew_bet,	0x10005bb	]       }; // Qubuts
118    key <AB04> { [ hebrew_he,	0x10005b1	]       }; // H. Segol
119    key <AB05> { [ hebrew_nun,	0x10005b2	]	}; // H. Patah
120    key <AB06> { [ hebrew_mem,	0x10005b3	]       }; // H.  Qamats
121    key <AB07> { [ hebrew_zade,	0x10005b5	]	}; // Tsere
122    key <AB08> { [ hebrew_taw,	greater		]	};
123    key <AB09> { [ hebrew_finalzade,	less	]	};
124    key <AB10> { [ period,	question	]	};
125
126    // Note the parens mirroring below:
127    key <AD11> { [ bracketright,	braceright	]       };
128    key <AD12> { [ bracketleft,	braceleft	]       };
129    key <AE09> { [ 9         ,	parenright	]       };
130    key <AE10> { [ 0         ,	parenleft	]       };
131    
132    key <AE11> { [ minus     ,	0x10005be	]	}; // H. Hiphen
133    key <AE12> { [ equal     ,	plus		]	};
134};
135
136
137partial alphanumeric_keys 
138xkb_symbols "phonetic" {
139
140    // uses the phonetic layout from old Slackware 'il.map' file
141
142    name[Group1]= "Hebrew (phonetic)";
143
144    key <AE12> {        [     equal,    plus, hebrew_doublelowline, hebrew_doublelowline ]};
145
146    key <LatQ> {	[ hebrew_qoph, hebrew_qoph	]	};
147    key <LatW> {	[ hebrew_waw, hebrew_waw	]	};
148    key <LatE> {	[ hebrew_aleph, hebrew_aleph	]       };
149    key <LatR> {	[ hebrew_resh, hebrew_resh	]	};
150    key <LatT> {	[ hebrew_taw, hebrew_tet	]       };
151    key <LatY> {	[ hebrew_ayin, hebrew_ayin	]       };
152    key <LatU> {	[ hebrew_waw, hebrew_waw	]       };
153    key <LatI> {	[ hebrew_yod, hebrew_yod	]       };
154    key <LatO> {	[ hebrew_samech, hebrew_samech	]       };
155    key <LatP> {	[ hebrew_pe, hebrew_finalpe	]	};
156
157    key <LatA> {	[ hebrew_aleph, hebrew_aleph	]	};
158    key <LatS> {	[ hebrew_shin, hebrew_shin	]       };
159    key <LatD> {	[ hebrew_dalet, hebrew_dalet	]       };
160    key <LatF> {	[ hebrew_pe, hebrew_finalpe	]	};
161    key <LatG> {	[ hebrew_gimel, hebrew_gimel	]       };
162    key <LatH> {	[ hebrew_he, hebrew_he		]       };
163    key <LatJ> {	[ hebrew_yod, hebrew_yod	]	};
164    key <LatK> {	[ hebrew_kaph, hebrew_finalkaph	]	};
165    key <LatL> {	[ hebrew_lamed, hebrew_lamed	]       };
166
167    key <LatZ> {	[ hebrew_zain, hebrew_zain	]       };
168    key <LatX> {	[ hebrew_chet, hebrew_chet	]       };
169    key <LatC> {	[ hebrew_zade, hebrew_finalzade	]       };
170    key <LatV> {	[ hebrew_waw, hebrew_waw	]       };
171    key <LatB> {	[ hebrew_bet, hebrew_bet	]       };
172    key <LatN> {	[ hebrew_nun, hebrew_finalnun	]	};
173    key <LatM> {	[ hebrew_mem, hebrew_finalmem	]	};
174};
175
176// The 'Biblical Hebrew' keyboard layout as defined by Tiro for use with the
177// 'SBL Hebrew' font was added 2006.11.13 by Sebastian J. Bronner
178// <waschtl@sbronner.com>.  Its primary features (as compared to the lyx layout)
179// are that the consonants are in the Israeli standard positions, that a great
180// multitude of glyphs can be input directly from the keyboard, and that it is
181// the closest thing to a standard layout a theologian can hope for.
182// Documentation (including printable keyboard tables), SBL Hebrew font, and
183// keyboard layout for Windows are available at
184// http://www.sbl-site.org/Resources/Resources_BiblicalFonts.aspx.
185//
186// It is of interest that the 'basic' layout defined first in this file (as
187// ships with x.org disagrees in the non-consonant characters that the Tiro-
188// layout claims to be the Israeli standard.  Tiros apparent diligence in the
189// PDF-documentation accompanying the keyboard-layout-files lead me to put
190// greater stock in their claim than in this file.  Therefore, the 'biblical'
191// layout below does not include 'il(basic)' but redoes the _whole_ thing from
192// scratch.
193
194partial alphanumeric_keys 
195xkb_symbols "biblical" {
196	name[Group1]= "Hebrew (Biblical, Tiro)";
197	key.type = "FOUR_LEVEL_SEMIALPHABETIC";
198
199	key <TLDE> { [ U05C3, U05AE, semicolon, asciitilde ] };
200	key <AE01> { [ 1,     U05A9, VoidSymbol, exclam ] };
201	key <AE02> { [ 2,     U0599, VoidSymbol, at ] };
202	key <AE03> { [ 3,     U0592, VoidSymbol, numbersign ] };
203	key <AE04> { [ 4,     U05AF, NewSheqelSign, dollar ] };
204	key <AE05> { [ 5,     VoidSymbol, U200D, percent ] };
205	key <AE06> { [ 6,     U05B9, U200C, asciicircum ] };
206	key <AE07> { [ 7,     U05BF, U034F, ampersand ] };
207	key <AE08> { [ 8,     U05C2, U200E, asterisk ] };
208	key <AE09> { [ 9,     U05C1, U200F, parenright ] };
209	key <AE10> { [ 0,     U059D, U25CC, parenleft ] };
210	key <AE11> { [ U05BE, U05A0, minus, underscore ] };
211	key <AE12> { [ equal, U05BC, VoidSymbol, plus ] };
212
213	key <AD01> { [ U0307, U05C4, U0308, slash ] };
214	key <AD02> { [ U05F3, U05AC, U05F4, apostrophe ] };
215	key <AD03> { [ hebrew_qoph, U05AB, U20AC ] };
216	key <AD04> { [ hebrew_resh, U059F ] };
217	key <AD05> { [ hebrew_aleph, U0593 ] };
218	key <AD06> { [ hebrew_tet, U059E ] };
219	key <AD07> { [ hebrew_waw, U059C, U05F0 ] };
220	key <AD08> { [ hebrew_finalnun, U05A1 ] };
221	key <AD09> { [ hebrew_finalmem, U0595 ] };
222	key <AD10> { [ hebrew_pe, U0594 ] };
223	key <AD11> { [ bracketright, U0597, VoidSymbol, braceright ] };
224	key <AD12> { [ bracketleft, U0598, VoidSymbol, braceleft ] };
225	key <BKSL> { [ U05C0, U05A8, backslash, bar ] };
226
227	key <AC01> { [ hebrew_shin, U05BD ] };
228	key <AC02> { [ hebrew_dalet, U05B0 ] };
229	key <AC03> { [ hebrew_gimel, U05BB ] };
230	key <AC04> { [ hebrew_kaph, U05B4 ] };
231	key <AC05> { [ hebrew_ayin, U05B1 ] };
232	key <AC06> { [ hebrew_yod, U05B6, U05F2 ] };
233	key <AC07> { [ hebrew_chet, U05B5, U05F1 ] };
234	key <AC08> { [ hebrew_lamed, U05B3 ] };
235	key <AC09> { [ hebrew_finalkaph, U05B8, U05C7 ] };
236	key <AC10> { [ hebrew_finalpe, U05B2, VoidSymbol, colon ] };
237	key <AC11> { [ U059a, U05B7, comma, quotedbl ] };
238
239	key <AB01> { [ hebrew_zain, U05C5 ] };
240	key <AB02> { [ hebrew_samech, U05A4 ] };
241	key <AB03> { [ hebrew_bet, U05AA, U05A2 ] };
242	key <AB04> { [ hebrew_he, U05A6 ] };
243	key <AB05> { [ hebrew_nun, U05A5, U05C6 ] };
244	key <AB06> { [ hebrew_mem, U05A7 ] };
245	key <AB07> { [ hebrew_zade, U059B ] };
246	key <AB08> { [ hebrew_taw, U0591, VoidSymbol, greater ] };
247	key <AB09> { [ hebrew_finalzade, U0596, VoidSymbol, less ] };
248	key <AB10> { [ U05AD, U05A3, period, question ] };
249
250	key <SPCE> { [ space, space, thinspace, nobreakspace ] };
251};
252