Hebrew keyboard layout for Windows


Soon after I stopped blogging last year, I realized that I had a lot of things I wanted to say, just as before, and I had deprived myself of a channel for them. So I did the next best thing: I published notes on Facebook. For the first few days of this new blog’s life, I will simply cross-post those notes here, so if you’re already my friend on Facebook, you won’t be seeing any new material for a while; but I’m going to get through these one per day, so you won’t have long to wait.

I created this last year while I was taking a Hebrew class. Get it here, if you’re interested.

I am a native English speaker living in Canada and learning Hebrew for interest. I don’t foresee myself becoming fluent in Hebrew or writing essays in Hebrew, and it’s extremely unlikely that I’ll ever live in Israel. In light of this, I don’t want to take the time and effort to learn the standard Hebrew keyboard layout, which is the only Hebrew layout that ships with Windows 7. Instead, I’d rather use ANSI as my physical layout (also known as “US”; the standard on desktops sold in North America) and have each key map to a Hebrew letter that has approximately the same phonetic value as the corresponding letter in English (or IPA, or Western Europe, whatever). Because my interest in Hebrew is primarily academic, I wanted to be able to type the niqqud too. That’s why I’ve created this layout—for myself, rather than for anyone else.

I have favoured conceptual simplicity rather than optimizing for speed. Hence, for example, the key “E” does not produce any letter at all, even though one could perhaps type Hebrew more quickly if I assigned some letter to it. Every letter key produces a Hebrew letter without any diacritics, except for E, which produces nothing. All non-letter keys produce the expected ASCII characters. All diacritics are accessed by pressing AltGr, possibly together with Shift, and some other key. None of the characters of the Latin alphabet may be produced while using this layout.

In most cases the key that produces a given Hebrew letter is the key labelled with the first letter of its English name. Pressing the Shift key along with this key will produce the same letter, unless the letter has a distinct final form, in which case pressing the Shift key gives the final form. Thus:

B → ב
D → ד
F → פ; Shift+F → ף
G → ג
K → כ; Shift+K → ך
L → ל
M → מ; Shift+M → ם
N → נ; Shift+N → ן
P → פ; Shift+P → ף
Q → ק
R → ר
W → ו
Y → י
Z → ז

Some keys produce two letters; one with Shift and one without. In each case the unshifted keystroke gives the more common of the two. Hence:

A → א; Shift+A → ע
S → ש; Shift+S → ס
T → ת; Shift+T → ט
V → ו; Shift+V → ב

The O and U keys also produce ו, because this letter represents both /o/ and /u/ in ktiv male. Likewise, the I key also produces י. The J key produces י too, because when this letter is a consonant it is often transliterated as “J” (e.g., in “ירושלים”, Jerusalem).

For ה and ח, I made an exception. I did not assign H to the former and Shift+H to to the latter. Instead, I assigned both H and Shift+H to the former, and both X and Shift+X to the latter. This is because /x/ is apparently a popular pronunciation of ח, and, to be honest, I don’t associate ח with the letter H at all.

That leaves the E and C keys. I assigned צ and ץ to C and Shift+C, respectively. This is not based on considerations of English orthography or the IPA (/c/ in the IPA represents a sound found in neither English nor Hebrew). Instead, it just made more sense to me for C to represent צ than for E to, because C represents /ts/ in various languages of central and Eastern Europe (such as Polish, Croatian, and Hungarian). The key E is left unassigned.

Vowel points are accessed by using AltGr together with possibly Shift and the corresponding vowel letter. The vowel that was supposedly short (according to my limited understanding) in ancient Hebrew is unshifted, and the vowel that was long is shifted:

AltGr+A → patah; Shift+AltGr+A → qamatz
AltGr+E → segol; Shift+AltGr+E → tsere

There is only one /i/ vowel diacritic, thus, AltGr+I gives hiriq.

/o/ may be represented using either a holam or a qamatz, but as the latter is far rarer, neither AltGr+O nor Shift+AltGr+O gives the qamatz, which is already present at Shift+AltGr+A. Instead, AltGr+O gives a holam that should be used after a vav to give a holam male, whereas Shift+AltGr+O gives a holam haser.

For /u/, it is unclear whether the short and long vowels contrasted in Biblical Hebrew, so AltGr+U gives the more common /u/ vowel, the shuruq, whereas Shift+AltGr+U gives the less common, the kubutz. Note that the shuruq is encoded at the same point as the dagesh/mappiq (see below).

Keying AltGr+; or Shift+AltGr+; (AltGr+:) gives this layout’s only dead key. When followed by whitespace, a letter, or a punctuation mark, the result is a shva, since its two vertical dots resemble a colon. When followed by a patach, qamatz, or segol, the result is a hataf patach, hataf qamatz, or hataf segol, respectively.

AltGr+’ gives a geresh, whereas Shift+AltGr+’ (AltGr+”) gives a double geresh (gershayim). AltGr+. gives a dagesh or mappiq; they are encoded at the same point in Unicode (and the shuruq is also encoded at this point).

The sin/shin dot is typed using AltGr+S and Shift+AltGr+S, respectively.

All other characters from the Hebrew block of Unicode are inaccessible, as I have no idea what they’re for.

Advertisement

About Brian

Hi! I'm Brian Bi. As of November 2014 I live in Sunnyvale, California, USA and I'm a software engineer at Google. Besides code, I also like math, physics, chemistry, and some other miscellaneous things.
This entry was posted in Uncategorized. Bookmark the permalink.

1 Response to Hebrew keyboard layout for Windows

  1. Hi! I like your approach but the download link is not valid :(

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s