The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
  "http://www.w3.org/TR/html4/loose.dtd">
<html>
  <!--	Initial version stolen from https://gist.github.com/1950126
	Also see: http://cssdeck.com/item/preview/99/css-qwert-keyboard

	The tables are (re)generated by running this file through filter_kbd_tables.pl
  -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<link rel="shortcut icon" href="/~serganov/~ilya/.images/favicon.ico">
<title>izKeys layouts: visual diagrams</title>
<style>
.klayout kbd { font-family: monospace, sans-serif, serif, DejaVu Sans Mono, junicode, Symbola; }
.klayout kbd:after, .klayout kbd:before { font-family: monospace; }	/* Otherwise arrows too small??? */
		/* START auto-generated style */
			/* To be auto-generated */
/* END auto-generated style */
</style>
</head>
<body>

<h2>Shortcuts for an impatient reader (you know who I mean!)</h2>

<p><a href=#goals-progress>Goals (and current progress report)</a>, <a href=#what-is-what>reading layout diagrams</a>, 
<a href=#extra-keys>“extra” keys</a>.  Do <a href=#extra-fonts>characters in layouts show all right?</a>
</p><p>
<b>Latin</b>: <a href=#basic-latin>Base layout</a>, 
<a href=#altgr-latin>most frequent accented letters</a>, <a href=#prefix-keys>using prefix keys</a>, <a href=#prefix-mogr>mogrifiers</a>.<br>

<b>Cyrillic:</b> <a href=#base-cyrillic>Base (Russian) layout</a>, 

second tier: <a href=#altgr-cyrillic>Slavic, 
XIX century Russian, and (some) Kazakh</a>, third tier: <a href=#extra-cyrillic>(8859-5; base Church Slavonic;
X11-supported: Kazakh/Tatar/Ossetian/Chuvash/Udmurt/Komi/Yakut/Kalmyk/Bashkirian/Mari)</a>,
“exotics”: <a href=#bizzare-cyrillic>titlo-forms, 10ⁿ-combiners, etc</a>, rest: <a href=#business-altgr><code>ԡꙣꙥꚁ</code></a>.
<br>

<b>Greek:</b> <a href=#greek>Base layout</a>, <a href=#altgr-greek>monotonic and symbols</a>, <a href=#polytonic>polytonic</a>, 
<a href=#greek-numeric>numeric</a>, <a href=#greek-macron-breve>longs and shorts</a>,
<a href=#zodiak>Zodiak</a>, <a href=#coptic>Coptic and paleo-Greek</a>.
<br>
<b>Hebrew:</b> <a href=#hebrew>Base layout</a>, <a href=#hebrew-consonants>consonants</a>, <a href=#hebrew-digraphs>digraphs</a>,
<a href=#hebrew-vowels>vowels</a>, <a href=#altgr-hebrew>layout of the rest of characters</a>,
<a href=#cantillation>cantillation</a>, <a href=#dial-niqqud>dial-a-niqqud</a>.  <a href=#hebrew-math>Difference with math Hebrew-symbols.</a>. 
</p><p>
<a href=#bridges>Accessing “companion” scripts without changing personality</a>.
<br>
<b>Symbols:</b>
<a href=#altgr-latin>most frequent</a>, morth by <a href=#prefix-mogr>mogrifiers</a>,
<a href=#business>Currencies and Business symbols</a>, <a href=#fractions>fractions</a>,
<a href=#prefix-mogr>sub/superscripts</a>,
<a href=#bluekeys>math symbols with a lot of variants <i>vs.</i> the rest (Blue vs. Green)</a>,
<a href=#numpad-mathop>arithmetic operations</a>, <a href=#arrows>arrows</a>, 
<a href=#box-drawing>box-drawing characters</a>, <a href=#f-keys>dial-a-dash and dial-a-whitespace</a>, 
<a href=#multi-char>nice dashes</a>, <a href=#coptic>dashes again, IPA/Zhuang tone marks, DOS cp437</a>.
<br>
<b>Math flavors of Latin:</b> <a href=#math-blue>common</a>, <a href=#math-letters>all double-struck/script/fraktur</a>,
<a href=#math-letters-more>and more</a>.
<br>
<b><code>Compose</code> key:</b> <a href=#compose-key>basics</a>, <a href=#compose-flavors>3 implemented flavors</a>.
<br>
<b><a href=#examples>Examples</a></b>.
</p>

<a name=what-is-what></a><h1>izKeys layouts: visual diagrams</h1>

<p>The diagrams below illustrate the most basic ways to use the <b>izKeys</b> (<i>ee-zee-keys</i>) keyboard layout.
How to access the other keys?  The info may be extracted from the
table summaries of layout of the <a href=coverage-1prefix-Latin.html>Latin</a> and <a href=coverage-1prefix-Cyrillic.html>Cyrillic</a>
personalities (but these tables do not explicitly list the heuristics…).  For more information, see <a href=http://k.ilyaz.org/iz/windows>this</a> (you may also want to inspect 
the documentation of the toolset used to generate this layout:
<a href=http://search.cpan.org/~ilyaz/UI-KeyboardLayout/lib/UI/KeyboardLayout.pm>here</a>,
and <a href=http://search.cpan.org/~ilyaz/UI-KeyboardLayout/lib/UI/KeyboardLayout/izKeys.pod>here</a>, but they
are currently in a complete disarray).</p>

<p>Here, we almost completely ignore the questions how to enter math/IPA/UPA symbols (about a thousand is possible!), and exotic Latin
letters (more than a thousand of them) — let us just mention that the concepts/mneumonics helping one remember many of them 
are <a href=#prefix-mogr>“mogrification rules”</a>, <a href=#GreenRipe>“GreenKeys/RipeKeys” and “BlueKeys”</a>.  (The <i>reasons</i> for a character to appear on a 
particular key are listed in the mouse-popups when hovering on characters; these terms appear there.  See also the popups
for the column headers in <a href=coverage-1prefix-Latin.html>this table</a>.)
With the exception of the last section, what we discuss here is restricted to the most frequent Latin letters, as well as input of 
Cyrillic/Greek, and of Business symbols.</p>

<p>When a certain key or key combination is undefined, the keyboard produces the <i>visible bell</i> symbol <code><span class=vbell>♪</span></code>.
So one should not be surprised that this is the most frequent character in the diagrams below!
Remember that our keyboard layout are optimized for ease-of-remembering, not for ease-of-finger-movements.  (We completely
ignore the “base row” and other terms of mechanics of finger movement.  Anyway, it looks like “advantages” of keyboards optimized
for kinesthetic <a href=http://en.wikipedia.org/wiki/Dvorak_Simplified_Keyboard#Controversy>might be exagerrated</a> anyway: 
at least, more or less objective research is inconclusive.)
</p>

<p>The diagrams are color-coded using outlines, character color, and character background.  Outlines relate to mnumonic rules;
<span class=very-special>green</span> and <span class=thinspecial><span class=special>blue</span></span> outlines indicate that either mneumonics are based on the position of
this character, or the characters are otherwise important, thus made easily guessable.  On the opposite end,
characters with <span class=need-learn>brown</span> <span class="need-learn on-right">outlines</span> are hopeless to guess using heuristics,
one must memorize them.  The key assignment of characters with <span class=may-guess>yellow</span> outlines cannot be guessed immediately, but there is 
an <i>approximate heuristic:</i> it assignes a few possible positions to the character, so one can quickly find the
needed key using 3–4 experiments; these heuristics are either explicitly mentioned, or related to sound/shape of character w.r.t. 
the Latin key it is put in.</p>

<p><a name=colors></a>We use <span style="background-color: gray;" class=not-surr>white outline</span> to indicate symbols
„ ‚“ ‘ ” ’« ‹ » ›‐ – — ― ‒ ‑〃 ‵ ‶ ‷ ′ ″ ‴ ⁗ ´ which were replaced by “surrogate” symbols in the typewriter age (sometimes called
<a href="http://www.shadycharacters.co.uk/2012/12/miscellany-%E2%84%96-20-on-typewriters/">the “Great Character Squeeze”</a>; more about this
<a href=#surr>below</a>).
In all diagrams, <span class=prefix>yellow characters</span> denote prefix keys; other colors indicate visual bells, and 
<span class=on-right-ex>characters assigned to
<code>AltGr</code>-keys</span> (when many characters are displayed on the same key).  The meaning of background colors is the same as in <a href=coverage-1prefix-Latin.html>here</a> 
and <a href=coverage-1prefix-Cyrillic.html>here</a>.  <span class=three-cases>This frame</span> denotes
letters which have 3 case forms (lc/uc/titlecase); and <span class=three-cases-long>this frame</span> indicates that
the uppercase is encoded as two (or more) Unicode characters.  Sometimes the whole key also has a special background color;
this indicates that the positioning heuristic is “based on diagonals” — more details below.  Particular maps may also use
other colors — this would be explained near the diagram.</p>

<p>Some prefix characters come in pairs; the secondary one acts as the primary combined with <code>AltGr</code>-inversion 
of the following keypress — so <code>PREFIX2 CHAR</code> acts as <code>PREFIX1 AltGr-CHAR</code>.  This is indicated by the
<span class="prefix prefix2">extra red outline</span> on a with-<code>Shift</code>-pair (or on the secondary prefix).
(See <a href=#greek>base Greek layouts</a> for the examples.)</p>

<a name=extra-fonts></a>
<p><b>Trivia:</b> to show this page correctly, one may need to install extra fonts (<a href="http://dejavu-fonts.org/">Deja vu</a>, 
<a href="http://junicode.sourceforge.net/">junicode</a>, <a href="http://users.teilar.gr/~g1951d/">Symbola</a>; the standard release
of <code>unifont</code>
has a very good coverage, but it also [as of 2011] has a special glyph inserted [explicitly — instead of using
<code>.notdef</code>!] for missing codepoints — and this
severely interacts with a choice of better fonts; use <a href="http://ilyaz.org/fonts">my release</a> instead).  Some fonts have some glyphs wrong (I have seen
wrong directions of arrows, wrong choice of OXIA vs VARIA, or DASIA vs PSILI — especially on ρ).
Sometimes one should better zoom in (<code>Control-MouseWheel</code>, <code>Control-+</code>, or from menu; <code>Control-0</code> to return back) in browser to see details/differences of diacritic marks. </p>

<p>If some characters which may be entered with this layout are not included in any of installed fonts, they will be 
shown as boxes (empty, or with hex code inside).  But if
you cannot show them, they are probably not very usable to you anyway, right?  If you <i>do have</i> fonts on your system 
which support these characters (put mouse on top of a character, and an explanation will pop up), read 
<a href=http://search.cpan.org/~ilyaz/UI-KeyboardLayout/lib/UI/KeyboardLayout.pm#There_is_no_way_to_show_Unicode_contents_on_Windows>instructions
how to fix this</a> — at least in Firefox.</p>

<a name=basic-latin></a><h1>The most basic Layout</h1>

<div>
<div class="klayout-wrapper over-shift-outline">
<div class=klayout-uc>
<div class="klayout in-wrapper uclc ddiag" kbd_rebuild="/opt=latinBase +=l,,0">
			/* To be auto-generated */
</div>  <!-- Cannot match the width of the bottom row exactly — probably due to rounding to 1px??? -->
<div class="klayout-shift-switcher zero btm r"><div class=over-shift></div></div>
</div>
<div class="klayout-shift-switcher zero btm l"><div class=over-shift></div></div>
</div>
Hover mouse over left/right Shift to switch to “Un-shifted”/“Shifted” view; press mouse to flip.
</div>

<p>Note that each colored letter-diagonal contains exactly one vowel (outlined in blue); the diagonals guide the quick-access to the
¨,´,`-accented vowels (discussed in the next section).</p>

<p>Are the etched symbols on your keys very different?  Tough luck… — you will need to mentally rearrange the diagrams 
to suit your keyboard.  (Keyboard drivers access keyboards
basing on key scancodes, which <i>mostly</i> depend on the <i>position</i> of the key, not on what is drawn on it.)  The mneumonics used here
depend a lot on the etchings being as above. <b>Trivia:</b> ASCII encoding has SPACE and 94 other characters defined; this leads to 47 keys on the standard US keyboard
(2 characters per key).  The main variation in layout is the position of the <code>\|</code> key; sometimes
<code>Enter⏎</code>/<code>←Backspace</code>
keys have a different shape, and this key is moved about to compensate.  <b>Trivia:</b> the position of this key differed 
on the initial <a href=http://en.wikipedia.org/wiki/IBM_PC_keyboard>XT/AT/Enhanced keyboards</a>; apparently, keyboard
manufacturers think that this gives them a license to freely move it around…</p>

<a name=extra-keys></a>
<p><a href=http://en.wikipedia.org/wiki/Keyboard_layout#Mechanical_and_visual_layouts>ISO keyboards</a> have one “extra” key.  Above, it is the <i>other</i> key
<code>\|</code> (shown here to the left of <code>SPACE</code>).  Its position varies a lot between keyboards;
sometimes it is marked as <code>&lt; &gt;</code>; sometimes it is positioned to the left
of <code>Z</code>; on many US keyboards it is omitted altogether.  These
variations in position and markup do not matter — if the key is present, it behaves
as indicated; we do not put “important” characters at this position.  <a name="2nd_extra_key"></a>Likewise,
<a href="http://en.wikipedia.org/wiki/Portuguese_keyboard_layout">Brazilian ABNT</a> and
<a href="http://en.wikipedia.org/wiki/Keyboard_layout#Japanese">Japanese JIS</a> keyboards have
yet another key on alphanumeric rows: on ABNT it is next to the right <code>Shift</code>, on JIS next to <code>Backspace</code>.
(Our diagrams do not show this key at all; for this layout, we do not plan to use it other than as a
<a href=#compose-key><code>Compose</code> key</a>.)</p>

<a name=altgr-latin></a><h1>Base Latin layout when <code>AltGr</code> is pressed </h1>

<p>All accented letters in this diagram
are also available on easier-to-remember multi-key sequences (starting with <span class=prefix>prefix</span> keys);
so remembering positions of the most of characters in this diagram is not <i>required</i>:
they are needed only to speed up the typing.</p>

<p><a name=surr></a>Pay attention to the difference between <i>letters</i>
and <i>symbols</i> — we call them <i>characters</i> when we do not care about the distinction.
“Letters” are parts of words; all the other characters are “symbols”.  Symbols with <span style="background-color: gray;" class=not-surr>white</span> outlines denote “no-nonsense variants”
of surrogate typewriter symbols <code>"</code>, <code>'</code>, <code>`</code>, <code>-</code> etc. (<b>Trivia:</b> With invention of typewriters,
many [tens?] of different symbols where jammed into one “surrogate” symbol to economize on the number of keyboard's keys; 
essentially, surrogates make no sense standalone.  For decades. we were forced to use surrogates and deduce
what was actually meant basing on context; nowadays, we can do better; see <a href=http://en.wikipedia.org/wiki/Dash>-This-</a>,
<a href=http://en.wikipedia.org/wiki/Non-English_usage_of_quotation_marks>“this”</a>,
<a href=http://en.wikipedia.org/wiki/Prime_%28symbol%29>this′</a>, <a href=http://en.wikipedia.org/wiki/Ditto_mark>this ″</a>,
<a href=http://en.wikipedia.org/wiki/Diacritic>`that´</a>,
<a href=http://en.wikipedia.org/wiki/Apostrophe#Typographic_form>‘that’</a> and <a href=http://en.wikipedia.org/wiki/Whitespace_character>T H A T</a>.)</p>


<div class="klayout uclc do-alt do-altgr ddiag" kbd_rebuild="/opt=latinAlt +base=b,,- +=l,,1">
			/* To be auto-generated */
</div>  <!-- Cannot match the width of the bottom row exactly — probably due to rounding to 1px??? -->

<p>For this particular diagram: characters with green or blue outline are those for which people can immediately guess their position on
keyboard.  Since easily-guessable,
these positions are a very valuable property, and are “set in stone” — they win in conflicts with other positioning heuristics.
(Possible exceptions on guessability are ºª§; but if you saw the diagram above once, you have a good chance to guess them anyway. 
Euro € is at the position which is etched on many keyboards nowaday 
(compare with <a href=https://www.libreoffice.org/bugzilla/show_bug.cgi?id=5981>this discussion</a>).</p>

<p><b>Trivia:</b> in earlier versions of this keyboard, <code>·</code> and <code>§</code> were on 7/&amp; key; then I 
discovered <a href=http://www.mrmartinweb.com/type.htm#blickensderfer>Blickensderfer No. 5 (1896)</a>….
This was <a href=http://en.wikipedia.org/wiki/Convergent_evolution>convergence</a> in action!  (But now I think that
√ is much too similar to 7 to miss an opportunity….)</p>

<p>On the opposite end of the guessability scale are letters with brown outlines: they take ad hoc positions which must be
memorized.  In between on the guessability scale are letters on the colored diagonals (two ⤡-diagonal on the left-hand side, and
four ⤢-diagonals on the right-hand side) — they may be calculated using a simple rule.  Each colored diagonal has one vowel
on the “base” layer, and  three ¨,´,`-accented variants of this vowel are put on 3 keys on the diagonal — from top to bottom.</p>

<p><b>Example:</b> observe the red diagonal on the right with ü/ú/ù.</p>

<p>Unfortunately, this diagonal is the only “clean” example: the other diagonals contain letters which are “set in stone”,
so the by-diagonal rule loses.  When a very important letter loses in playing chicken, it yellows (look for yellow outlines) and
is “bumped away” one position <i>across</i> the diagonal (preferably down, if possible).  (Observe the red arrows!)  The extremely rare letters <code>ë</code>,
<code>ỳ</code> and <code>ï</code> are just discarded; the more frequent <code>ì</code> withers and becomes brown-outlined.</p>

<p><b>Summary:</b> How to type Blue/Green outlined characters may be guessed immediately.  For no-outline characters on colored
diagonals there is a very simple rule to locate them.  If one <i>also</i> remembers the “bumped away” rule, one
can locate 4 letters with yellow outlines.  If one wants to quick-type the remaining 3 brown-outline letters (and no-outline symbols),
one must memorize them.</p>

<p><b>Trivia:</b> <i>Did you notice <code>ẞ</code> = upper-cased <code>ß</code>?</i> (These are different letters!) 
<a href=http://unicode.org/mail-arch/unicode-ml/y2007-m05/0008.html>Unicode has many wonders</a>... (this link leads to an
<i>extremely <a href=http://unicode.org/mail-arch/unicode-ml/y2007-m05/0148.html>long</a></i> thread!).
Why <code>ê</code> is blue?  It is the only set-in-stone accented vowel...</p>

<a name=prefix-keys></a>
<p><b>A remark on prefix key.</b> The <span class=prefix>colored outline</span> on the diagram indicates that pressing 
<code>AltGr-$</code> produces a prefix key.
It also shows that this prefix key is <i>denoted</i> as <code>£</code>; but keep in mind that <i>using the symbol £ here is just 
a notational convention</i>!</p>

<p>‘By itself”, a prefix key does not make any sense; so why did we use the “<code>£</code>”?  What is important to know is how to describe 
succintly the semantic of “what it does with the following letter/symbol/etc”; one may ask what happens when it is followed by 
space; and what happens when it is pressed twice?  The answers are: it finds business-symbol/currency-symbol which matches best the given letter,
or modifies the symbol by adding a vertical line; it produces <code>␠</code>; it produces <code>£</code>.  Hence denotating
it as “<code>£</code>” is a good heuristic.</p>

<p>In general, the prefix keys of this layout try to do likewise: when we <i>denote</i> a prefix key by a certain diacritic
mark, we want: prefix + a letter (or <code>AltGr-letter</code>) produces the letter+diacritic with the diacritic as close
to “this notation” as possible; prefix + a symbol mogrifies the symbol in a way similar to the name of the diacritic
(say, <code>acute</code> may make “with sharper corners” version of the symbol, and <code>ring-above</code> may produce a “rounded”
version); following it by <code>SPACE</code> produces the standalone diacritic character; and typing it twice produces the
corresponding combining character.  (Moreover, one can produce more standalone variants by modifying <code>SPACE</code> 
by <code>Shift</code> or <code>AltGr</code>; one can get more combining variants by prefix + <code>'</code> — and one can
use <code>Shift</code>/<code>AltGr</code> on <code>Shift</code> or <code>'</code>.)  (See <a href=#prefix-mogr>this summary</a>.)</p>

<a name=base-cyrillic></a><h1>Base Cyrillic layout</h1>

<p>The base layout of Cyrillic personality follows the only phonetic layout which has a remote chance to be called 
“standard” — one from X11.
Letters with brown outline must be memorized.  Positions of letters with yellow outline can be guessed
with two tries (but if forgotten, they may lead to a [quickly going away] confusion):</p>

<div class="klayout uclc do-alt" kbd_rebuild="/opt=cyr +base=b,,- +=c,,0">
			/* To be auto-generated */
</div>  <!-- Cannot match the width of the bottom row exactly — probably due to rounding to 1px??? -->

<p>The most important <i>other</i> thing to remember is that if a letter (say, <code>Ю</code>) replaces ASCII
symbols (such as <code>`</code> and <code>~</code>), the symbols are available via combination with <code>AltGr</code>.
And <code>Ъ</code>/<code>Ё</code> are available <i>also</i> by combining <code>AltGr</code> with <code>Ь</code>/<code>Е</code>.
(Compare with <code>AltGr</code>-combined diagram below, after the next diagram.)</p>

<p><a name=ripeEx></a>Base Cyrillic layout as visible from Latin personality after <code>AltGr-Space</code> (so 
<a href=#GreenRipe>“RipeKeys”</a> replace shared
symbols; colors as in the previous diagram).  </p>

<div class="klayout uclc do-alt" kbd_rebuild="/opt=cyr +base=b,,- +=l,ƒ,0">
			/* To be auto-generated */
</div>  <!-- Cannot match the width of the bottom row exactly — probably due to rounding to 1px??? -->

<a name=altgr-cyrillic></a><h1><code>AltGr</code> Cyrillic layout</h1>

<p>In <code>izKeys</code> layout, the cyrillic letters are <i>prioritized</i> into classes; the higher the priority, the easier is the
letter to key in.  In the top priority class are modern Russian letters; one can enter them using only the <code>Shift</code>
modifier.  The second-class citizens may be keyed in using an extra <code>AltGr</code>-modifier.  For third-class citizens, 
one uses the <code>AltGr-'</code> prefix; for the fourth-class citizens, the key after this prefix requires <code>AltGr</code>-modifier.
Finally, there are certain “exotics”; they are entered with <code>AltGr-^</code> prefix (possibly with <code>AltGr</code>-modifier
on the next keypress).</p>

<p>One of the ideas of the <code>izKeys</code> layout is that when the “priority class” of a letter is known, one should be able 
to immediate guess
on which key this letter is present.  (There are exceptions, but they are in a very narrow minority.)  What remains is
knowing how the priority is assigned to letters; this is explained near the diagram of every class.</p>

<p>Here is the base Cyrillic face (essentially, consisting of Russian letters) with
<code>AltGr</code>-bindings added in red.  These second-class citizens are from the modern Slavic Cyrillic-based languages, 
XIX century Russian, and Kazakh:

<div>
<div class="klayout-wrapper over-shift-outline">
<div class="klayout-uc do-alt">
<div class="klayout in-wrapper uclc do-alt alt2 base-center large-base" kbd_rebuild="/opt=cyr +base=b,,- on-right+=c,,1 on-left+=c,,0">
			/* To be auto-generated */
</div>  <!-- Cannot match the width of the bottom row exactly — probably due to rounding to 1px??? -->
<div class="klayout-shift-switcher zero btm r"><div class=over-shift></div></div>
</div>
<div class="klayout-shift-switcher zero btm l"><div class=over-shift></div></div>
</div>
Hover mouse over left/right Shift to switch to “Un-shifted”/“Shifted” view; press mouse to flip.
</div>

<p>Color codes are as above; positions of the letters Ѣ,Є,Ә are artificial,
but still may be guessed on the third try, while positions of Ѓ and Ј must be memorized (heuristics:
Ѓ overflows down from Г=G; the position of Ј “<i>is questionable</i>”).  For the rest of the letters,
if one knows that they <i>are indeed</i> prioritized to be on <code>AltGr</code>-bindings, one can immediately guess
on which key.  (And to know this is simple: all of the characters described above are present, except for
some Kazakh letters [Ғ Ң Ө Ү Ұ are available on “extras” Cyrillic layout — with Ғ overflowing left to F, and Ұ requiring <code>AltGr</code>]; 
the only <i>other</i> characters present are Ԗ Ѡ Ѱ and PALOCHKA Ӏ.)</p>

<p>Prefix keys are in yellow.  In addition to £ (which is Business-prefix=<code>AltGr-$</code> — same as on Latin face), two
Cyrillic-specific prefix keys are: <code>AltGr-'</code> introduces “extra” Cyrillic letters
(and fractions), and <code>AltGr-^</code> introduces titlo-forms and “exotic” Cyrillic characters.  
As usual, pressing the prefix twice produces the corresponding combining character: the stress mark and titlo.

<a name=extra-cyrillic></a><h1>The “prefixed” Cyrillic layouts</h1>

The “extras” Cyrillic layout (the prefix is <code>AltGr-'</code> in Cyrillic personality; double-<code>AltGr-SPACE</code>
in Latin):</p>

<div class="klayout uclc do-alt alt2 base-center large-base" kbd_rebuild="/opt=cyr,cyr2 +base=b,,- on-right+=c,◌́,1 on-left+=c,◌́,0">
			/* To be auto-generated */
</div>  <!-- Cannot match the width of the bottom row exactly — probably due to rounding to 1px??? -->

<p>Letters with yellow overline are not in the most obvious positions, but at least there is some hope to remember some heuristics. 
This includes ҼҾ (Abkhazian CHEs) and ҒӺ (stroked GHE's) which “slided to the left” from Ч and Г, and Komi Ԋ on comma [;-].</p>

<a name=bizzare-cyrillic></a>
<p>This face contains the “leftover” characters of ISO 8859-5, Church Slavonic (except
letters-titlo-form and powers-of-10), and the characters in flavors of ru on X11 (Kazakh,
Tatar, Ossetian, Chuvash, Udmurt, Komi, Yakut, Kalmyk, Bashkirian, Mari).  The iotized
letters are of decreased priority; yet more penalized are latinized, with-diaresis, hooked,
and stroked variants.  (Of two letters competing for the same position, the more penalized
one becomes red.)
</p>

<a name=fractions></a>
<p>The rules <b>to enter fractions</b> are very simple: <code>AltGr-' DIGIT</code> enters a fraction with
the digit in denominator; <code>AltGr-' Shift-DIGIT</code> does the same for numerator.  If another
precomposed fraction with the same denominator/numerator is available in Unicode, add <code>AltGr</code>
modifier to access the other fraction.  <b>Example:</b> there are four fractions with denominator 8: ⅛, ⅜, ⅝, ⅞
(in order of numerators).  Now <code>AltGr-' 8</code> accesses the first one, ⅛; pressing <code>AltGr-' AltGr-8</code>
accesses the second one, ⅜.  All precomposed fractions can be entered this way (<b>Example:</b> ⅝, ⅞ may be entered via
digit-in-numerator <code>AltGr-' AltGr-%</code> and <code>AltGr-' &amp;</code>).</p>

<p>The rule above is for Cyrillic personality.  From Latin personality, either prepend switch-to-Cyrillic prefix <code>AltGr-SPACE</code>, or
replace <code>AltGr-'</code> with <code>lCtrl-lAlt-:</code> or <code>Menu-;</code> or <code>rCtrl-AltGr-:</code> or <code>lCtrl-Mnu-/</code>.
(Likewise, for “exotic Cyrillic” from Latin, one may use <code>Menu-:</code> prefix.)
<b>Trivia:</b> there is another way to enter Unicode fractions: use superscript digits for the
numerator, subscript digits for the denominator, and separate them by FRACTION SLASH available via GreenKey <code>Shift-SPACE /</code> 
(as well as on <code>AltGr-/ SPACE</code>) to get something like ¹²⁄₃₅ (the very narrow “bounding box” of FRACTION SLASH ensures the nice look);
superscript/subscript digits are on <code>Green/Ripe</code>, hence may be also entered with <code>lCtrl-lAlt/ApplicationMenu</code>.</p>

<p>Titlo-forms, power-of-10 multipliers, and “exotics” (the prefix is <code>AltGr-^</code> in Cyrillic personality; triple-<code>AltGr-SPACE</code>
in Latin):</p>


<div class="klayout uclc do-alt alt2 base-center large-base thinspecial" kbd_rebuild="/opt=cyr,keepO,cyr3 +base=b,,- on-right+=c,0483,1 on-left+=c,0483,0">
			/* To be auto-generated */
</div>  <!-- Cannot match the width of the bottom row exactly — probably due to rounding to 1px??? -->

<p>Note the <code>Shift</code>-trick: since titlo-forms
are not available in upper-case, we hijack the <code>Shift</code>-position and put the titlo-form of an “extra” letter 
(one on <code>AltGr-' LTR</code>)
to <code>AltGr-^ Shift-LTR</code>; see keys <code>Ю</code> and <code>Я</code> above.
Also, note exceptions: ◌ⷵ on S, titlo-Ꙉ (djerv) ◌ⷸ on D, ᴫ (small capital л) on L, and ᵸ on N (which is a “modifier letter”, not a
“combining letter”).  Power-of-10 
multipliers are available on the corresponding digit keys 3...8.  (<b>Trivia:</b> all multipliers but “thousands” ҂ are combining.)  
Ocular О's ꙨꙪꙬꙮ are on digits 1...3 according to their multiplicity (with or without <code>AltGr</code>; note that here 3
means “many” ;-). In addition to these exceptions, yellow outlines are
on heuristically good ZEMLYA/DZELO Ꙁ/Ꙃ on 0, Ҹ which “slided left”, and Komi letters NJE/ZJE/DZJE on comma ;-) (here — and on the “extra” layer). </p>

<a name=balkan-cyrillic></a>
<p><b>Trivia:</b> Many paleo-Slavonic “exotics” were championed into Unicode by Balkan scholars; it is not surprising 
that the approach of these scholars was different from what was traditional for East and North Slavic studies.  Nowadays there is
a hope to get a consensus on how to transcribe North Slavic manuscripts into Unicode; see
<a href=http://www.synaxis.info/azbuka/ponomar/charset/charset_1.htm>this proposal</a>, its
<a href=http://www.synaxis.info/azbuka/ponomar/charset/charset_2.htm>part II</a>, and <a href=http://www.ponomar.net/cu_support.html>this
page</a>.  (There is widespread misunderstanding of how to use еЕ/єЄ for paleo-Slavonic: these are for ”есть узкий/широкий”.)</p>

<a name=greek></a><h1>Base Greek layout + monotonic + polytonic + Coptic</h1>


<p>Base Greek layout as visible from Latin Personality (on GREEN=<code>Shift-SPACE</code> prefix, so 
<a href=#GreenRipe>GreenKeys</a> replace symbols):</p>

<div class="klayout uclc do-alt diag" kbd_rebuild="/opt=0 +base=b,,- +=l,ĸ,0">
			/* To be auto-generated */
</div>  <!-- Cannot match the width of the bottom row exactly — probably due to rounding to 1px??? -->

<p>Positions of Greek letters with brown outline must be memorized (heuristics: θ and Q are both O with an extra stroke; y is one half of ψ).  The rest of base letters is guessable: either phonetically,
or, if conflicts appear, visually (the base letters coincide with <a href="http://www.tavultesoft.com/keyboarddownloads/%7B4D179548-1215-4167-8EF7-7F42B9B0C2A6%7D/manual.pdf">the
Galaxy layout</a>).  Two green-outline letters pre-combined with diaeresis must also be memorized if one wants to enter
monotonic Greek; <code>;</code> and <code>?</code> give the Greek flavors (<b>Trivia:</b> the latter is deprecated — use the Latin <code>;</code>
instead). </p>

<p><b>Trivia:</b> the mixup of <code>χ/Χ</code> (chi; on <code>x</code>) and <code>ξ/Ξ</code> (xi; on <code>c</code>) is
unfortunate, but we choose it since it is shared by many other layouts.
<a href=http://en.wikipedia.org/wiki/Space-cadet_keyboard>Space Cadet</a> and <a href=http://en.wikipedia.org/wiki/ChiWriter>ChiWriter</a>
did it <a href=http://home.comcast.net/~mmcm/kbd/SpaceCadet.html>in a more
logical way</a> (see <a href=http://home.comcast.net/~mmcm/kbd/SpaceCadet3.jpeg>the picture</a>), but it had a splitting of θ/ϑ and
σ/ς (instead of our ϊ/ϋ), and a “wrong” flavor of φ/ϕ.</p>

<a name=polytonic></a>
<p>Polytonic Greek is produced with 3 prefix keys <code>\</code>, <code>[</code> and <code>]</code>.
Pay attention to vowels (blue outline) above, one on every color-tinted diagonal; compare with this <code>GREEK [</code> layout
(with <code>AltGr</code>-bindings added in red):</p>

<div class="klayout uclc do-alt alt2 base-center large-base diag no-doubleaccent" kbd_rebuild="/opt=0 +base=b,,- on-right+=l,0314,1 on-left+=l,0314,0">
			/* To be auto-generated */
</div>  <!-- Cannot match the width of the bottom row exactly — probably due to rounding to 1px??? -->

<p>(For a moment, ignore the key <code>3#</code>.) Observe that all characters have aspiration ῾ (visually similar to <code>[</code>),
that the other accents depend on the row and color (black or red), and the base letter depends on the (colored) diagonal.</p>

<p><b>The rule:</b> Prefix <code>\</code> with a key on a “diagonal of a vowel”
produces the accented vowel: the row determines the accent: 
the top letter row gives the polytonic variant ´ of acute accent (OXIA), the low letter row gives the grave accent ` (VARIA),
and the number row gives the circumflex accent ῀ (PERISPOMENI).   The middle letter
row gives none (of these 3 accents).  Combine the letter with <code>AltGr</code> to obtain the combinations with diaeresis
(DIALYTIKA; applicable only to ι/Ι and υ/Υ) or iotization (YPOGEGRAMMENI=ͺ or PROSGEGRAMMENI=ι — on lower/upper case).  To combine with aspiration, replace
<code>\</code> by one of <code>[</code> and <code>]</code> — depending on the shape of aspiration accent: ῾ (DASIA) and ᾿ (PSILI).  
Rho ρ/Ρ takes aspiration signs as if it were a vowel; the corresponding “diagonal” contains the only key <code>`</code>.</p>

<b>Example:</b> <code>GREEK [ AltGr-@</code> produces ᾯ (here <code>GREEK</code> is GREEN=<code>Shift-SPACE</code>).
And here is why: <code>@</code> is <code>Shift-2</code>; due to <code>Shift</code>, the result is in <i>uppercase</i>; 
the key with <code>2</code> and
<code>@</code> is on the green diagonal which contains the vowel ω/Ω; hence one gets an accented Ω. It is iotized (note ι-like diacritic below) since <code>@</code> was combined with <code>AltGr</code>;
the key with <code>2</code> and <code>@</code> is on the number row, which adds the circumflex (and in Greek it looks like <code>~</code>);
finally, since we used <code>[</code> “instead of” <code>\</code>, this adds the aspiration ῾ (DASIA) looking like <code>[</code>.

<p>Observe the red symbols on the rightmost red diagonal: they
are <i>standalone</i> polytonic diacritics!  (The diagram above is as seen from Latin personality; from Cyrillic one there are usual complications related to 
many ways to produce ёЁъЪ — for example, the key <code>#</code> does not
access number-symbol ͵ as it does from the Latin personality.)</p>

<p><b>Summary for standalone:</b> to enter a standalone polytonic diacritic, pretend that you 
put it on (non-existent) OMICRON-DIALYTIKA (in other words, the last key in the sequence should be <code>AltGr-</code> on
a key in the rightmost red diagonal — the diagonal of <code>.</code> DOT).  What to do with DIALYTIKA/YPOGEGRAMMENI/PROSGEGRAMMENI which would require a <i>“second”</i> 
<code>AltGr</code> modifier?  Replace it by <code>Shift</code>!  (Exceptions: removing this <code>Shift</code> converts
the standalone PROSGEGRAMMENI to (surprise!) YPOGEGRAMMENI; and <code>Shift</code> converts PSILI to CORONIS.  There are
other ways to get combinations like DIALYTIKA AND VARIA: for example, by adding GRAVE to DIAERESIS via 
<code>AltGr-` AltGr-;</code>.  <b>Trivia:</b> Note also that there is no standalone DIALYTIKA symbol; use the standalone ¨ DIAERESIS via
<code>AltGr-; SPACE</code> instead.)</p>

<a name=greek-numeric></a>
<p><b>Numeral signs</b> are accessible on keys <code>3</code> and <code>#</code>.  On the prefix <code>/</code>
they are “as expected”: <code>3</code> gives the lower one, and <code>#</code> the “normal” one (duplicated on the prefix <code>]</code>).  
(On the prefix <code>[</code> this pair is inverted, to fight with ъЪёЁ-confusion in access from the Cyrillic personality.)
To join them, <i>standalone monotonic</i> diacritics ΄,΅ are available on <code>AltGr-3</code> and <code>AltGr-#</code>.</p>

<a name=greek-macron-breve></a>
<p><b>Macron and breve:</b> Observe that by the rules above, <code>GREEK \ LTR</code> with <code>LTR</code> from
the middle letter row would produce an unaccented vowel.  To avoid waste, they instead produce either a vowel with breve (VRACHY)
or with macron (vowels α/υ/ι may take them — the other vowels already have separate forms for shorter/longer variants),
or LUNATE variant symbol ϵ for ε (on <code>d</code>).  To get breve, proceed as if
you want to get unaccented vowel; to get macron, do the same on the next key to the right or left (so a/j/k 
produce ᾰ/ῠ/ῐ, s/h/l produce ᾱ/ῡ/ῑ, and d makes ϵ).  To clarify, here is the diagram of <code>GREEK \</code>
<a name=zodiak></a>
(observe also Zodiak symbols on <code>Shift-NUMBERS</code> row):</p>

<div class="klayout uclc do-alt alt2 base-center large-base diag no-doubleaccent" kbd_rebuild="/opt=polyBase +base=b,,- on-right+=l,0342,1 on-left+=l,0342,0">
			/* To be auto-generated */
</div>  <!-- Cannot match the width of the bottom row exactly — probably due to rounding to 1px??? -->

<p><b>Trivia:</b> <a href=http://en.wikipedia.org/wiki/Zodiak#The_twelve_signs>Numeration of Zodiak constellations</a> starts on 
the spring equinox; so the first 20 days of <code>N</code>th month is in
the Zodiak sign number <code>N-3</code> or <code>N+9</code>.  We put 10th,11th,12th signs on keys <code>0 )</code>, <code>- _</code>
and <code>= +</code>; to get 13 for the price of 12, the sign ⛎ (for the <a href=http://en.wikipedia.org/wiki/Ophiuchus#Ophiuchus_and_the_zodiac>not-Zodiacal</a> but ecliptical constallation
Ophiuchus) is put on <code>~</code>.</p>

<a name=altgr-greek></a>
<p>Monotonic and “special” Greek letters can be accessed on the base face by combining with <code>AltGr</code>.  On vowels, this adds
tonos ΄ (acute accent).  On consonants, it produces special forms (final, scientific etc) and archaic letters. 
<a name=greenEx>Here</a> is the Greek face with <code>AltGr</code>-bindings added in red (as seen from Latin, so with Green keys added):

<div class="klayout uclc do-alt alt2 base-center large-base" kbd_rebuild="/opt=greek +base=b,,- on-right+=l,ĸ,1 on-left+=l,ĸ,0">
			/* To be auto-generated */
</div>  <!-- Cannot match the width of the bottom row exactly — probably due to rounding to 1px??? -->

<p>Observe kai ϗ — this is one of exceptional cases when a lower-case letter is put in a <code>Shift</code>ed position.
(As a case pair, kai is available via the “<a href=#copitc>Coptic prefix</a>” <code>`</code>.)  Note also that red letters with yellow outline
are guessable by simple heuristics (“one of the sounds” for stigma Ϛ, visual for the rest).  (Moreover, digamma Ϝ is “on top of”
Ψ which “is a di-Y”, and we use ϔ as “the shifted variant” of ΰ.)</p>

<a name=coptic></a>
<p>The prefix key <code>`</code> allows one to enter Coptic (and multitude of others Greek-related symbols).</p>

<ol>
 <li>Entering full
analogues of Greek letters does not require additional explanations (including SOU/so/su Ⲋ, SHIMA/tsheema/qima Ϭ, and SAMPI/<b>none</b>/psis
nše Ⳁ which are analogues of stigma Ϛ on <code>AltGr-t</code>, koppa Ϟ/Ϙ on <code>AltGr-Z/C</code> and sampi Ϡ on
<code>AltGr-x</code>); 
 <li>two “empty” slots at J/V (were Ϊ/Ϋ) are taken by genga/ḏanḏia/GANGIA Ϫ on <code>j</code>, 
fay/fai/FEI Ϥ on <code>v</code> (or <code>AltGr-f</code>); 
 <li>the other letters without Greek analogue are on <code>AltGr-LTR</code> where the <code>LTR</code> 
is the initial letter of the name on the <a href=http://en.wikipedia.org/wiki/Coptic_alphabet>Wikipedia page</a> of 2012 
 <li>with exceptions for: <code>LTR</code> is the first letter of the Unicode name for DEI/tee/ti Ⲇ and KHEI/khay/xai Ⲕ.
</ol>
<p>Here is the <code>AltGr-GREEK `</code> layout with <code>AltGr</code>-bindings added in red:</p>

<div class="klayout uclc do-alt alt2 base-center large-base" kbd_rebuild="/opt=0 +base=b,,- on-right+=l,03e2,1 on-left+=l,03e2,0">
			/* To be auto-generated */
</div>  <!-- Cannot match the width of the bottom row exactly — probably due to rounding to 1px??? -->

<p>Note the Coptic dash (plus more dashes), DOS' dingbats for Control-range characters (on <code>Shift-DIGIT</code>s, 
and <code>AltGr--</code>, <code>AltGr-_</code>), and (obsolete) Zhuang tone marks on <code>AltGr-DIGITS</code> (from 2 to 6),
and stroked + latinized ι/υ/λ as ᵼ/ᵿ/ƛ. Additional “semi-randomly assigned” AltGr-letters: Bactrian sho Ϸ on b; ½-H heta Ͱ/ͱ on 1;
yot ϳ on j; Pamphylian digamma Ͷ/ͷ 
on g; san Ϻ/ϻ on m, ϒ on U, lunate sigmas ϲ/Ϲ on v, reversed lunate sigmas ͻ/Ͻ on o, reversed epsilon ϶
on e, kai's Ϗ/ϗ on q, (reversed) dotted lunate sigmas ͽ/Ͽ ͼ/Ͼ on r and y,  and archaic sampi Ͳ/ͳ on n.
(inverted) Ohm Ω/℧ on W/w.</p>

<a name=coptic-names></a>
<p><b>Trivia:</b> Latin variants
of names of Coptic letters are not standartized; so we use 3 names: Unicode name in capital, and two lowercase names
from Wikipedia pages: of 2012/08 and of 2012/01.  Since important for finding the positions, the remaining ones are:
SHEI/shy/šai ϣ, HORI/hoori/hori ϩ.  (To simplify memorization, SAMPI/<b>none</b>/psis nše Ⳁ is also made available
on <code>AltGr-p</code>.)</p>


<a name=business></a><h1>“Business/Currencies/Hooks/Added Vertical Line/Not+mogrify” layout</h1>

<p>“Business/Currencies/Hooks/Added Vertical Line/Not+mogrify” layout (as visible from Latin personality after <code>AltGr-$</code>):</p>

<div class="klayout uclc do-alt large-base" kbd_rebuild="/opt=0 +base=b,,- +=l,£,0">
			/* To be auto-generated */
</div>  <!-- Cannot match the width of the bottom row exactly — probably due to rounding to 1px??? -->

<p>Observe that all of <code>©®℠™℗</code> “Business” signs are in the obvious locations; so are Vietnamese ơ and ư (heuristic:
the $ sign has a hook on top right).  All the currency signs of Unicode 6.2 can be entered by the first
letter of their name or the country name (but one may need to combine with <code>Shift</code> or <code>AltGr</code>).
Exceptions are YUAN[s],RIEL,RIAL,LIVRE TOURNOIS which are entered by the second letter.  (<b>Trivia:</b> there are 3 signs for YEN (one latin,
and 2 ideographic), and 2 (ideographic) signs for YUAN.)  The “principal” sign for both of them is available on <code>y/Y</code>;
the remaining 2 signs for YEN are on <code>AltGr-y/Y</code>, and both signs for YUAN are on <code>AltGr-u/U</code>.
The remaining exceptions are the common currency symbols recognized by the shape, such as <code>$</code>
and <code>£</code>.</p>

<a name=business-altgr></a>
<p>Here is the same layout with <code>AltGr</code>-bindings added in red (with letters outlined in green,
and business symbols in blue):

<div class="klayout uclc do-alt alt2 base-center large-base" kbd_rebuild="/opt=businessAlt +base=b,,- on-right+=l,£,1 on-left+=l,£,0">
			/* To be auto-generated */
</div>  <!-- Cannot match the width of the bottom row exactly — probably due to rounding to 1px??? -->

<p>Note that zero-vowel Latin letters (schwa) are positioned on <code>Z</code>.  This convention (considering <code>Z</code> and
<code>0</code> as siblings) also influences other decisions made in design of this keyboard.  <b>Trivia:</b> Do not confuse these <i>Latin
letters</i> between themselves (Azeri əƏ vs. African ǝƎ), or with similarly-shaped <i>Cyrillic letter</i> әӘ, or with IPA <i>symbol</i>
ə for schwa, or with <code>THERE EXISTS</code> <i>math symbol</i> ∃.  As a minimum, they sort differently, have different capitalization
rules, and their surrounding may be typeset differently by a smart enough typesetter.  Similarity (or even identity) of glyphs has
very little relationship to “sameness” of Unicode characters.</p>

<a name=greek-standalone></a><h1>The standalone version of the Greek for-Polytonic personality</h1>

<div class="klayout uclc do-alt alt2 base-center large-base" kbd_rebuild="/opt=Pers +base=b,,- on-left+=g,,0 on-right+=g,,1">
			/* To be auto-generated */
</div>  <!-- Cannot match the width of the bottom row exactly — probably due to rounding to 1px??? -->

<a name=hebrew></a><h1>The standalone version of the Hebrew personality</h1>

<div class="klayout rtl-hover uclc do-alt" kbd_rebuild="/opt=heb0,rtl-hover-Trivia +base=b,,- +=h,,0">
			/* To be auto-generated */
</div>

<p>(As usual, yellow outline means guessable-with-a-few-tries characters, brown outline means that the position must be
memorized.)</p>  

<a name=hebrew-consonants></a>
<p><b>CONSONANTS</b> are at the corresponding phonetic <code>QWERTY</code> lower-case positions, except for 
HET ח on <code>H</code> (or slided right to <code>j</code>)
and visually placed SHIN ש on <code>w</code> and TET ט on <code>u/T</code>.
(<b>Trivia:</b> two other “QWERTY” layouts, <a href=http://bc.tech.coop/Hebrew-ZC.html>ZC</a> and
<a href=http://dougshivers.com/mikhtav/osx.html>Script</a>, place consonants the same as our — with exceptions of TET and VAV 
(one on <code>v</code>) — and they mismatch at these positions.)  If a final form exists, it is put on
<code>Shift</code>-position; likewise for SIN/SHIN variants (with the corresponding combining dot put in 
<code>AltGr</code>-position).  DAGESH/MAPIQ/SHURUQ must be memorized on <code>Y</code>.
(Additionally, HOLAM FOR VAV is on <code>AltGr-v</code>.)</p>

<a name=hebrew-digraphs></a>
<p><b>The Yiddish digraphs</b> are on <code>AltGr-Shift</code> of the suitable key.  <b>Trivia:</b> Only one of them, ײַ, cannot
be entered using Hebrew letters; it is put on more accessible <code>AltGr-y</code>.  The only other non-Hebrew sign,
JUDEO-SPANISH VARIKA is on <code>AltGr-j</code>.  Dotted versions of <bdo dir=ltr>BET בּ, KAF כּ/ךּ, PE פּ/ףּ</bdo> may be entered 
with <code>AltGr</code> (on the left-hand key, if the base letter is on two keys).</p>

<a name=hebrew-vowels></a>
<p><b>VOWELS (<a href=http://en.wikipedia.org/wiki/Niqqud>niqqud</a>)</b> are positioned phonetically (and according to their — vestigal — <a 
href=http://en.wikipedia.org/wiki/Hebrew_alphabet#Comparison_table>duration</a>) on keys with the blue outlines.  
<b>Trivia:</b> there are up to 5 durations per sound, ordered in decreasing order: one may consider SHEVA ◌ְ as the 4th form 
of <code>e</code>, and <code>o</code> has 4 or 5 forms, 
<bdo dir=ltr>וֹ, ◌ֹ, ◌ָ/<a href=http://www.unicode.org/mail-arch/unicode-ml/y2004-m05/0234.html>◌ׇ</a>, ◌ֳ</bdo>.</p>

<p>The first 3 niqqud are put on <code>Shift/AltGr/Shift-AltGr</code>-vowel.  The remaining (up to 2) are put on
<code>AltGr/Shift-AltGr</code> of the key below the vowel.
So in the diagram above, it is the longest form which is visible on the <code>Shift-vowel</code> (except for <code>i</code>
for which we cover one duration ◌ִ only; it is יִ which is put on <code>AltGr-i</code>).</p>

<p><b>SLIDED VOWELS:</b> In addition to its <code>AltGr</code>-position, the secondary vowel point is <i>also</i> put on
<code>Shifted</code> key <i>below</i> the vowel (observe the colored groups of
keys above).  The <i>shva</i>-form of the vowel is (in addition to its <code>Shift-AltGr</code>-position) on the key <i>above</i> 
(or, if not possible, <i>right</i>).  
<b>Trivia:</b> For <code>o</code>, one can go neither above nor right.  One tertiary form is already on <code>A</code> (the ambiguous one); the
disambiguation form can be entered without <code>AltGr</code> only on keyboards with an ISO key.</p>

<p>Likewise, we slide SHEVA yet more down of <code>e</code> — to <code>V</code>.
Except for RAFE, SHIN/SIN DOTS, <a href=http://std.dkuug.dk/jtc1/sc2/wg2/docs/n2755.pdf>QAMATS QATAN</a> and HATAF QAMATS, all 
niqqud may be entered on <code>Shift-letters</code>.  (Since <a href=http://en.wikipedia.org/wiki/Niqqud#Demonstration>RAFE may
be quite frequent in certain contexts</a>, RAFE and QAMATS QATAN are made available on the
<a href=http://en.wikipedia.org/wiki/Keyboard_layout#Mechanical_and_visual_layouts>“102th” ISO key</a>. <b>Trivia:</b> 
according to 
the <a href=http://std.dkuug.dk/jtc1/sc2/wg2/docs/n2844.pdf>stats here</a>, HATAF QAMATS is the rarest of all niqqud.)
</p>

<a name=altgr-hebrew></a>
<p>The diagram below illustrates the <code>AltGr</code>-layout.  The recipe above positions dotted/niqqud/Yiddish on the letter keys 
(outlined in yellow).  Additionally, on symbol keys the yellow outline is for characters positioned according to their <i>role</i>: 
<code>-, +, comma, dot</code>.
</p>

<div class="klayout rtl-hover uclc do-alt do-altgr thinspecial" kbd_rebuild="/opt=heb1,rtl-hover +base=b,,- +=h,,1">
			/* To be auto-generated */
</div>

<a name=cantillation></a>
<p><b><a href=http://en.wikipedia.org/wiki/Cantillation>CANTILLATION MARKS</a></b> are positioned visually (green outline on 
symbol keys), or according to the first letter of Unicode name (blue outline) or the 1st-letter-of-the-2nd-word (green outline 
on letter keys; also on SHALSHELET — which is put based on the 1st Hebrew letter, SHIN).  If there is no more space for the mark,
the mark migrates along an arrow to the neighbor key (and gets a brown outline; only for GERESH and variants of 
<code>&lt;,~</code>).  <b>Trivia:</b> the <i>Unicode</i> names are 
<a href=http://www.mechon-mamre.org/c/hr/unicode.htm>mis-transliterated</a>.</p>

<a name=dial-niqqud></a>
<p><b>DIAL-NIQQUD-BY-NUMBER:</b> On <code>AltGr</code>-digits, the niqqud is put “visually”, according to its “number of dots”.  
Here we count in binary: <code>T</code> of ◌ָ is counted as if it were
˙ ⁚ ˙; we count — of ◌ַ as merged 8 dots.  (And ⋱ is counted as a diagonal in a 3×3 square, giving 9. ;-)  Now note that 10
points of —: land it on 0, and that shva of SHEVA is counted both as a <code>Shift</code>-variant of 2 dots, and — visually — as
<code>=</code>.  (And <code>T</code> of ◌ׇ counted as 7 is just an exception.)</p>

<a name=annotation></a>
<p><b>Annotation marks</b> ◌ׅ, ◌֯, ◌ׄ also have brown outlines (on <code>?cC</code>).  <b>Punctuation</b> is not specially 
highlighted (since <i>the rest</i> is drawn with ◌).  All Hebrew cantillation marks, punctuation and annotation marks are 
present; those without outlines are duplicates — at more or less random positions.  The reorder-control invisible characters are on
<code>AltGr-Shift-6,7,8,9,0</code> (heuristics: ‸ separates, <code>&amp;</code> joins, * of CGI, “(” and “)” group and introduce order;
I know <a href=http://www.unicode.org/mail-arch/unicode-ml/y2003-m05/0392.html>no standard way</a> to
<a href=http://en.wikipedia.org/wiki/Zero-width_non-joiner#Symbol>visualize</a> them.)
<b>Trivia:</b> Handling of multiple accents on a consonant is not a responsibility of an input method (with exception of providing
<a href=http://en.wikipedia.org/wiki/Combining_grapheme_joiner>CGJ</a>); however, mention 
<a href=http://lists.ibiblio.org/pipermail/b-hebrew/2003-July/015878.html>this thread of 2003</a>,
<a href=http://www.qsm.co.il/Hebrew/Hebrew%20Issues.htm>this summary of 2003</a>, and 
<a href=http://en.wikisource.org/wiki/User:Amire80/Havrakha>these experiments of 2012</a>. </p>

<a name=hebrew-combined></a>
<p>Below is a combined diagram of this layout with <code>AltGr</code>-bindings added in red.</p>

<div class="rtl-hover klayout uclc do-alt alt2 base-center large-base" kbd_rebuild="/opt=rtl-hover-Trivia +base=b,,- on-left+=h,,0 on-right+=h,,1">
			/* To be auto-generated */
</div>

<p><b>Trivia:</b> note that Unicode <i>names</i> for characters <code>([{}])</code> start with <code>LEFT/RIGHT</code>, but the Unicode 
defines their <i>semantic</i> (in BiDi context) to be <code>OPEN/CLOSE</code> instead.  In particular, when in Right-to-Left
context, the <code>CLOSE</code> characters mutates their shape to <code>([{</code>, likewise for <code>OPEN</code> to 
<code>}])</code>.  This is called 
<a href=http://en.wikipedia.org/wiki/Mapping_of_Unicode_characters#Bidirectional_Neutral_Formatting>BiDi mirroring</a>.
A similar effect happens with <code>&lt; &gt;</code>, but at least this reflect the names <code>LESS/GREATER THAN</code>
of these characters.</p>

<a name=logical-rtl></a>
<p><i>This</i> layout follows the “logical” approach, not the “visual” approach: pressing <code>Shift-9</code>
enters the <code>OPENING PARENTHESIS</code>, not the “character which looks like <code>(</code> in Hebrew text”; likewise
for other mirroring characters.  So to type “(WORD)” one types <code>Shift-9 W O R D Shift-0</code> no matter whether 
<code>WORD</code> is in left-to-right or right-to-left script.  Similarly, <code>Shift-,</code> produces <code>LESS THAN</code>,
and not the character which looks like <code>&lt;</code> in right-to-left context.</p>

<h1><code>Green/Ripe</code> access and <code>BlueKeys</code></h1>

<a name=bridges></a>
<p>In additition to its <i>satellite</i> faces (such as diacritic faces of Latin personality, or “extras” and “bizzare”
Cyrillic faces, or polytonic/Coptic for Greek), each personality has bridges to the other 3 scripts.  These bridges 
are intended for a quick entering of individual characters from another script; to enter a stretch of text in another
script, it makes much more sense to switch to the personality of that script (how such switching happens is OS-specific).
(For very short stretches, one may also consider the convenience access via keeping down appropriate 
modifier keys [<code>Application-Menu</code> etc]; see below.)</p>

<a name=GreenRipe></a>
<p>The prefix keys enabling the bridging are codenamed <code>Green</code> and <code>Ripe</code>: they are <code>Shift-SPACE</code>
and <code>AltGr-SPACE</code> (also mneumonic as Left/Right).  Pressing these prefixes repeatedly accesses also the “convenience 
faces” (<a href=#math-blue>MathBlue</a>, <a href=#business>Business</a>, negation etc).  The personalities are ordered as
Latin, Greek, Cyrillic, Hebrew, and the prefixes
<code>Green</code>, <code>Ripe</code> and <code>Ripe×2</code> accesses 3 “other” personalities in this order.</p>

<a name=repeated-green-ripe></a>
<p>Repeated <code>Green</code> accesses: (×2) <a href=#math-blue>MathBlue</a>, (×3) <a href=#business>Business</a>,
(×4) <a href=#coptic>Coptic</a>.  ×3-Repeated <code>Ripe</code>
accesses the <a href=#extra-cyrillic>“extras” <code>Cyrillic'</code>-face</a>.  As an added convenience, the base layer
of the <code>Green/Ripe</code> face is
also accessible via combining keyspresses with <code>lCtrl-lAlt/Application-Menu</code> modifier key(s) (recall that <code>Green</code> is 
base Greek/Latin from Latin/Cyrillic, and <code>Ripe</code> is Cyrillic/Greek from Latin/Cyrillic).  These accessors
<code>lCtrl-lAlt</code> and <code>Application-Menu</code> match the mneumonic of Left/Right.
(Unfortunately, only the Base-layer and layers entered with  <code>AltGr</code> or <code>Control-Alt</code> are controlled 
by the <code>CapsLock</code>; this excludes  <code>Ripe</code>.)</p>

<p>On symbol positions, the <code>Green</code> and <code>Ripe</code> faces differ from the scripts personality's faces: the
keys identical to the current script's keys (automatically non-alphabetical!) are replaced by special <code>GreenKeys</code> and 
<code>RipeKeys</code>.  This provides a quick way to enter special symbols.</p>  

<a name=bluekeys></a>
<p>Another way to access special symbols is via
<code>BlueKeys</code> (available on <code>2×Green</code>).  The principal difference between <code>BlueKeys</code> and the
<code>Green/RipeKeys</code> is that <code>BlueKeys</code> are <i>also</i> sources for mogrification: for example, when <i>macron</i> mogrifier prefix is 
followed by <code>&amp;</code> key, it cannot produce any reasonable result; so in addition to trying to mogrify <code>&amp;</code>, it also
tries to mogrify the corresponding <code>BlueKey</code>, which is <code>∩</code>, producing <code>⩃</code> (the alternative
way <code>⩍</code> to combine horizontal line with ∩ is available on <i>macron</i> + <code>AltGr-&amp;</code>).
</p>

<p>So the symbols which may be subject to extensive mogrification are put on <code>BlueKeys</code>; the “unique” symbols
which won't be useful as sources for mogrification are put on <code>GreenKeys</code> and <code>RipeKeys</code>.  The
heuristic for distinction between <code>GreenKeys</code> and <code>RipeKeys</code> is that <code>GreenKeys</code> 
are more “mathematical” when <code>RipeKeys</code> are more “typographical”; for an example, consider <code>·</code> and 
<code>…</code> competing for the “<code>.</code>” position.</p>

<a name=math-blue></a>
<p>See <a href=#greenEx>example of <code>GreenKeys</code></a>, <a href=#ripeEx>of <code>RipeKeys</code></a>.
Below is the <code>MathBlue</code> face (which combines <code>BlueKeys</code> [with blue frames], “<span class=special>operators</span>”, math letters, and a few
“<span class=very-special>extra</span>” characters) as visible from Latin personality:</p>

<div class="rtl-hover klayout uclc do-alt alt2 base-center large-base" kbd_rebuild="/opt=0 +base=b,,- on-left+=l,019c,0 on-right+=l,019c,1">
			/* To be auto-generated */
</div>  <!-- Cannot match the width of the bottom row exactly — probably due to rounding to 1px??? -->

<a name=hebrew-math></a>
<p><b>Trivia:</b> Note the difference between Hebrew-letter mathematical symbols (ℵ], (ℶ], (ℷ], (ℸ] and the Hebrew letters 
(א], (ב], (ג], (ד].  As a minimum, 
they are typeset in different directions (in this file, they are entered in the order (aleph]/(beth]/(gimel]/(dalet] and are
surrounded by open-round/close-square parentheses); then this change of direction affects the symbols surrounding them (the
parentheses in between Hebrew letters are 
<a href=http://en.wikipedia.org/wiki/Mapping_of_Unicode_characters#Bidirectional_Neutral_Formatting>mirrored, commas in between 
are typeset in the right-to-left order</a>); and then 
most probably the application will take them from different fonts — and even if taken from the same font, they may have very 
different shapes/sizes since symbols are made look good when surrounded by Latin characters.  Another comparison: ℵ₀, ℵ₁ vs.
א₀, א₁.  (Both examples are entered as: ALEPH₀, ALEPH₁.)</p>

<a name=modifiers-maps></a><h1>Extras: use <code>Application-Menu</code> (and other) modifiers</h1>

<p>First of all, the base layer of the <code>Green/Ripe</code> faces is also 
accessible via combining keyspresses with <code>lCtrl-lAlt</code> or <code>Application-Menu</code> modifier key (this enters base Greek/Cyrillic 
in Latin mode, or Latin/Greek in Cyrillic).
(Unfortunately, <code>CapsLock</code> is ignored with <code>Application-Menu</code>.)</p>

<a name=arrows></a>
<p>Second, arrows may be entered by combining this modifier
with 8 “direction keys” (arrows etc) on the numeric keypad.  <code>Shift</code> makes double-arrows; the wide key and
the high key (<code>0 Ins</code> and <code>Enter</code>) make double-sided arrows; the key in between (<code>. Del</code>)
makes a long right arrow.  One can use also “keyboard’s islands” synonims of these keys.</p>

<a name=numpad-mathop></a>
<p>Third, the arithmetic operation keys on the numeric keypad are modified to become “elementary school” variants (÷×), or
with <code>Shift</code>, “operator” variants (<code>+</code> has no operator variant, so it becomes ∑).  Since
<code>−</code> and <code>+</code> have no “elementary school” variants, these keys produce digit-wide dash, and
Hebrew “elementary school” plus ﬩.</p>

<a name=box-drawing></a>
<p>Fourth, the numeric keypad with <code>NumLock</code> enabled and <code>AltGr</code> modifier produces box-drawing symbols 
on digits 1–9, with horizontal line on the “wide” key <code>0 Ins</code>, and vertical line on its neighbor <code>. Del</code>.  Combine with
<code>Application-Menu</code> to get double-lines, or/and with <code>rCtrl</code> to flip doubling of vertical lines (heuristic:
the <em>right</em> Control-key controls doubling-of-the-symbol to-the-right).  <b>Example:</b> with <code>AltGr-rCtrl</code> 
the top row 789 produces ╓ ╥ ╖.  (Easter eggish: removing <code>AltGr</code> replaces double lines by bold lines: ┎ ┰ ┒!  Currently.
single <code>rCtrl</code> requires addition of <code>lAlt-rCtrl</code>; with this prefix: removing <code>NumLock</code> produces
wide-frame drawings, white/black frame without/with <code>Shift</code>: ▗ ▄ ▖/▛ ▀ ▜ on 789.)

<a name=f-keys></a>
<p>Fifth, the <code>F</code>-keys with <code>AltGr</code> modifier produce dashes (or whitespace when <code>Shift</code> is added).
The dashes are ordered according to length, so 01234 produce soft hyphen, hyphen, n-dash, m-dash, long-dash ― (HORIZONTAL BAR
U+2015); the sequence is continued by paragraphos, which goes into other
<a href=http://en.wikipedia.org/wiki/Obelism>obelism marks</a> ⸏⸓⸎ (here <code>F0</code> is another name for <code>F10</code>).  Near the right end are also
NON-BREAKING HYPHEN, HYPHEN-BULLET, FIGURE DASH and OVERLINE.  The whitespace comes
in decreasing width: the <code>F</code>-key <code>Fk</code> produces
the whitespace of width about <code>em/k</code>; the exception is <code>F9</code>, which produces the “mathematical” ²⁄₉-em
space (<b>Trivia:</b> it is usually described as ⁴⁄₁₈-em), and <code>F0=F10</code>, which produces the 0-width space (<b>Trivia:</b>
this is typically has a meaning of “word separator” used to make the line breakable at this place).  The “unused” positions
<code>F7</code>, <code>F11</code>, <code>F12</code> keep EM-QUAD, FIGURE SPACE (heuristic: it is near digits), and
PUNCTUATION SPACE. (<b>Trivia:</b> <a href=http://www.w3.org/TR/xml-entity-names/mmlalias.html>MathML to Unicode mapping</a>
sends ¹⁄₁₈-em space to <code>HAIR SPACE</code>, but watch what they do with negative spaces!  Unicode tables say only that HAIR 
SPACE is narrower than ⅙-em.  Anyway, we put it on 8.)</p>

<a name=mod-hebrew></a>
<p>Moreover, one can enter Hebrew with modifiers <code>ApplicationMenu-rCtrl</code>.</p>

<a name=multi-char></a>
<p>Lastly, several multi-character strings may be inserted (the current key assignment is random, and selected
to simplify debugging of keyboard input in applications).  Two variants of m-dash surrounded by tiny whitespace
are provided: one with narrow whitespace is on <code>lCtrl-lAlt-comma</code>, to make whitespace yet more narrow add <code>Shift</code>. 
One-character long Plane1 string is on <code>rCtrl-AltGr-slash</code>,
and two-character long Plane1 string is on <code>lCtrl-lAlt-&gt;</code>; they enter     𝄞 and     𝄡𝄡 (G clef and doubled C clef).
One can also replace any of these <code>lCtrl-lAlt-</code> by <code>rCtrl-AltGr-</code> or by <code>lCtrl-Mnu-</code>
(except for <code>lCtrl-Mnu-/</code> which conflicts with fractions prefix!).</p>

<h1>Extras: mathematical letters</h1>

<a name=math-letters></a>
<p><b>Trivia:</b> On windows, one cannot use prefix keys to enter mathematical letters (with very few exceptions — all available on
<code>Green×2</code> — mathematical letters are not in BMP).  To compensate, we provide alternative ways to enter them using
multiple modifier keys: <code>AltGr-rCtrl-</code> enters Double-Struck (𝕢𝕨𝕖𝕣𝕥𝕪/ℚ𝕎𝔼ℝ𝕋𝕐/𝟙𝟚𝟛𝟜), 
<code>AltGr-ApplicationMenu-</code> enters Script (𝓆𝓌ℯ𝓇𝓉𝓎/𝒬𝒲ℰℛ𝒯𝒴), and combining all these modifiers enters Bold-Fraktur (𝖖𝖜𝖊𝖗𝖙𝖞/𝕼𝖂𝕰𝕽𝕿𝖄).
(Heuristic: Bold-Fractur is the more bizarre than either of Double-Struck or Script.)</p>

<p>Another heuristic for these assignment (and assignments below) is that <code>rCtrl</code> adds (or removes) boldness, and
<code>ApplicationMenu</code> adds (or removes) italic-ness; call them “B/I modifiers”.  Go along these lines: in combination with these keys, <code>AltGr</code> is
<b>MathBizarre</b>, and Bold/Italic/BoldItalic flavors of MathBizarre are Double-Struck/Script/Bold-Fraktur.</p>

<p><b>Trivia:</b> Actually, Script and Frakture come in 2 flavors of boldness.  Moreover, letter-symbols used
for “ISO-80000-2 tensors” (SansSerif-Bold-Italic) may be considered as “yet bolder” flavor of Double-Struck.  To get these extra
flavors, replace <code>AltGr</code> by <code>lCtrl</code>.  Heuristic: <code>lCtrl</code> behaves similar to <code>rCtrl</code>.</p>

<a name=math-letters-more></a>
<p>Unicode defines also multiple ranges of <b>Latin</b> mathematical letters, with just minor typographical variations.
The utility of users entering them directly is questionable (except maybe for letters A,a,I which may appear both in plain English,
and as math symbols; so they may win from explicit disambiguation; or — following the sensible practice mandated by ISO-80000-2 — 
use different symbols for letters d,e,i when they mean variables, and when they mean constants or operators; monospace math?).
However, to debug the 
problems with different applications (not) working with the keyboard, it makes sense to assign distinct characters to as many 
combinations of modifiers
as possible.  Moreover, defining extra combinations should have no negative impact on applications and users, and should not have 
measurable impact on the system memory footprint.</p>

<a name=math-letters-more-mapping></a>
<p>To follow on these lines we define the following mappings; they are made as orthogonal as possible:
<ul>
<li><code>AltGr-</code> + B/I modifiers: MathBizarre (𝔸/ℬ/𝕮);
<li><code>lCtrl-</code> + B/I modifiers: Bold-flipped flavor of MathBizarre (𝘼/𝓑/𝔔);
<li><code>lAlt+AltGr-</code>: Math Latin monospace (𝚀𝚆𝙴𝚁𝚃𝚈);
<li><code>&nbsp;&nbsp;&nbsp; lAlt+AltGr-</code> + B/I modifiers: Bold/Italic variants of Math Latin (𝑞𝑤𝑒𝑟𝑡𝑦𝑄𝑊𝐸𝑅𝑇𝑌|𝐪𝐰𝐞𝐫𝐭𝐲𝐐𝐖𝐄𝐑𝐓𝐘|𝒒𝒘𝒆𝒓𝒕𝒚𝑸𝑾𝑬𝑹𝑻𝒀);
<li><code>lCtrl+lAlt-</code>: Greek (θωερτψ);
<li><code>&nbsp;&nbsp;&nbsp; lCtrl+lAlt-</code> + B/I modifiers: Bold/Italic variants of Greek (𝜃𝜔𝜀𝜌𝜏𝜓/𝛉𝛚𝛆𝛒𝛕𝛙/𝜽𝝎𝜺𝝆𝝉𝝍);
<li><code>lAlt-</code> + B/I modifiers: unBold/unItalic variants of tensor = SansSerif-Bold-Italic (𝗾𝘄𝗲𝗿𝘁𝘆/𝘲𝘸𝘦𝘳𝘵𝘺/𝗊𝗐𝖾𝗋𝗍𝗒).
</ul>

<p><b>Note:</b> Out of <a href=http://en.wikipedia.org/wiki/Mathematical_Alphanumeric_Symbols>18 additional Latin/Greek 
mathematical alphabets defined by Unicode</a>, this supports all but 2 Greek Sans Serif alphabets.  However, 
<code>lCtrl+rCtrl-</code>combinations <a href=http://search.cpan.org/~ilyaz/UI-KeyboardLayout/lib/UI/KeyboardLayout.pm#lCtrl-rCtrl_combination:_multiple_problems>cause
several problems</a> (likewise for <a href=http://search.cpan.org/~ilyaz/UI-KeyboardLayout/lib/UI/KeyboardLayout.pm#lAlt-rAlt_combination:_many_keys_are_not_delivered_to_applications><code>lAlt-rAlt</code> combinations</a>.</p>

<p><b>Trivia:</b> The International standard <a href=http://mirrors.ctan.org/macros/latex/contrib/isomath/isomath.pdf>layout rules are</a>

<ul><li>The overall rule is that symbols representing physical quantities (or variables)
are italic, but symbols representing units, or labels, are roman.
<li>
Symbols for vectors and matrices are bold italic, symbols for tensors are sans-serif bold italic.
<li>
The above rules apply equally to letter symbols from the Greek and the Latin
alphabet.
</ul>

<a name=compose-key></a><h1>Extras: using <code>Compose</code> key</h1>

<p>The idea of <a href=http://en.wikipedia.org/wiki/Compose_key><code>Compose</code> key</a> is that to get a character, you punch this key, then enter a sequence of characters 
which is “a natural representation” of the character (or another “natural identifier” of it).  In other 
words, you “decompose” the character into components, and the keyboard “composes” these components back.  For example,
one could decompose <code>á</code> into <code>' a</code>, and <code>ŋ</code> into <code>e n g</code>.</p>

<a name=compose-flavors></a>
<p>Currently, the <code>Compose</code> key may be entering either using the <a href="#2nd_extra_key">“second extra key”</a> in 
the base region, or (temporarily) as <code>Mnu-F12</code>, <code>Mnu-Space</code>, or <code>lCtrl-lAlt-Space</code>.  There are 3 modes depending on how may times you punch
<code>Compose</code> before typing the decomposition: X11's 
<a href=http://www.x.org/releases/X11R7.6/doc/libX11/Compose/en_US.UTF-8.html>standard <code>.Compose</code> rules</a>, 
<a href=http://www.w3.org/TR/xml-entity-names/>MathML entities</a>, and <a href=http://en.wikipedia.org/wiki/Unicode_input#Character_mnemonics>RFC 1345 character mneumonics</a>.</p>

<a name=compose-flavors-details></a>
<p>Of standard <code>.Compose</code> rules, we support only those starting with <code>Compose</code>
(denoted as <code>Multi_key</code> in the reference above), having no dead-keys, and being expanded to one BMP character.
Inspect also <a href=http://search.cpan.org/~ilyaz/UI-KeyboardLayout/lib/UI/KeyboardLayout.pm#(8220)Systematic(8221)_parts_of_rules_in_a_few_.XCompose>the 
explanation of the “regular” part of <code>.Compose</code> rules</a> (look at end for entries with <code>s</code>).
For entity names: if one is a beginning of another entity name, one must follow the shorter one by <code>SPACE</code>.
(BTW, it may be  
more useful to inspect entity names via <a href=http://www.w3.org/TR/xml-entity-names/bycodes.html>the full list</a>.) 
<a href=http://tools.ietf.org/html/rfc1345>The full list of RFC mneumonics</a> is supported, as well as £ on <code>E u</code>.  
(<b>Trivia:</b> this list supports only a repertoir of the very old version of Unicode.)</p>

<p>One can replace <code>Compose Compose Compose</code> sequence by <code>Shift-Compose</code> (except for the version
of <code>Compose</code>
on the JIS/ABNT “extra-extra” key).  In non-Latin personalities, instead of Latin characters in the compose sequences, one may
use the personality’s characters on the same keys (provided that this sequence is not already used; otherwise, one may need to
use honest Latin characters, entered via the Green modifier <code>lAlt-LCtrl</code>).</p>

<a name=goals-progress></a><h1>General goals and progress report</h1>

<ol>
<li>No gotchas for people who cannot remember anything.</li>
<li>Doing 3–4 experiments, one must be able to find most (80–90% achievable?) of covered characters
     knowing only a handful of general rules for how position are allocated to characters <a href=#gp-rem><sup>[*]</sup></a>.</li>
<li>Gradual degradation: if one memorizes many allocation rules, one should be able to type exotic characters quickly
and conveniently.  But if one remembers fewer rules, it should be the convenience which goes away, not
the bulk repertoir of available characters.  This means that a significant number of characters should be
available via very easy to remember access rules (no matter whether the access is ergonomic).
Then the more one is ready to memorize, the more ergonomic the layout becomes.<span style="margin-bottom: 16em"></span>

<br>This means that many characters should be accessible in a whole scale of different heuristics.  The scale
goes from easy to remember but not ergonomic to the opposite.

<li>Have most (70%–80% achievable?) of covered characters available in easy-to-remember positions.</li>
<li>Have full coverage of certain ranges of Unicode.</li>
</ol>

<p><a name=gp-rem><sup>[*]</sup></a>
Currently it is unclear if the general rules may be shared by all the “application domains”.
	 For example, to access our layout this way, one needs to know different “handfuls” of allocation rules
	 for Ancient Greek than for Math Symbols.</p>

<p>This were the goals. Currently achieved (ranges as of Unicode v6.2; we do not count characters accessible via <a href=#compose-key><code>Compose</code> key</a>):<ul>

<li>Two gotcha (with <code>Shift-SPACE</code> and <code>ApplicationMenu</code> keys) comparing to US and Russian Phonetic keyboards;</li>
<li>Support of all keys (ISO/ABNT/JIS) on all contemporary hardware layouts;</li>
<li>Full coverage of Latin-based scripts (according to Wikipedia), Latin-n repertoirs of ISO 8859,
     WGL, MES-1, MES-2, and non-CJK part of UGL;</li>
<li>Full coverage of Greek Unicode ranges and Greekish stuff of MES-3B (polytonic and esoteric characters need double prefix keys;
     <code>MATHEMATICAL SANS-SERIF</code>, <code>APL DELTA/DEL</code> symbols (⍢ ⍔ ⍋ ⍒ ⍫), and digraphs not supported);</li>
<li>Full coverage of Cyrillic ranges (with <code>ԡꙣꙥꚁ</code> [temporarily?] put on free slots in Business map);
     from the Latin personality: titlo-chars, 10ⁿ-combiners and most esoteric chars need double-or-"special" prefix keys;</li>
<li>Full coverage of Hebrew/Yiddish/Ladino characters, points, cantillation, punctuation
     (except alternative/wide forms and precomposed chars);</li>
<li>The <a href=#compose-key><code>Compose</code> prefix key</a> based on std X11 Compose tables, MathML entity names, and rfc1345 codes;</li>
<li>Full coverage of currency symbols;</li>
<li>Full coverage of vulgar fractions;</li>
<li>Full coverage of Coptic alphabet (if not accessed from Greek personality, requires double-or-"special" prefix keys);</li>
<li>Full coverage of characters covered by <a href=http://eurkey.steffen.bruentjen.eu/>EurKey</a>/<a href=http://bepo.fr>Bépo</a> keyboards;</li>
<li>50% coverage of math symbols in BMP (the most useful implemented first);</li>
<li>Full coverage of Math Fraktur, Math Double-Strike and Math Script Latin letters;</li>
<li>Full coverage of Math Latin alphabets, and non-SansSerif Math Greek alphabets;</li>
<li>Full coverage of double-accented letters of MES-3b;</li>
<li>Full coverage of non-modifiers/combiners of IPA and UPA;</li>
<li>Full coverage of obsolete-IPA and case-extended IPA;</li>
<li>Reasonable coverage of arrows (all with 4 directional variants) and (with NumLock on) all of box-drawing characters [except ┅┉┇┋╌╍╎╏] (via numeric keypad);</li>
<li>Latin, Cyrillic, Greek and Hebrew personalities (Greek and Hebrew not yet micro-optimized for Math symbols);</li>
<li>Visual bell to report unrecognized/unsupported combinations (except for those using <code>Application-Menu</code> 
modifier and <code>Compose</code>);</li>
<li>Many pathways to access “advanced” characters to make it possible to work around bugs in applications;</li>
<li>Documentation of the allocation rules scattered over different files/sections.</li>
<li>MOREOVER: To assist debugging applications, ALL POSSIBLE combinations of modifiers produce (non necessarily generally useful) results.</li>
</ul></p>

<p>Not yet implemented, or lost by upgrades to other goals:<ul>
<li>Clear documentation of the allocation rules (needed for "goal 2" above).</li>
<li>Micro-optimize Greek and Hebrew personalities;</li>
<li>Full coverage of IPA (both visually, and by structure properties of the described sounds) and UPA;</li>
<li>Full coverage of spacing modifiers and combining characters for Latin scripts, and for symbols 
   (had it before <a href=#bridges>
<code>Green</code> keys</a> were implemented);</li>
<li>Full coverage of Unicode's paleo-Latin characters;</li>
<li>Full (is it compatible with other goals???) coverage of math symbol ranges in BMP;</li>
<li>reasonable coverage of ASCII/Unicode box drawing characters (almost finished);</li>
<li>Full coverage of non-Eastern characters covered by <a href=http://neo-layout.org/index_en.html>Neo keyboard</a>, and X11+Neo composition tables;</li>
<li>Easy-to-describe quick access to Vietnamese characters (seems to be present — needs documentation).</li>

</ul></p>

<a name=prefix-mogr></a><h1>Prefix keys: accessors and mogrifiers</h1>

<p>(The explanations below complement the character tables for the <a href=coverage-1prefix-Latin.html>Latin</a> and <a href=coverage-1prefix-Cyrillic.html>Cyrillic</a>
personalities.)
The following three are “bridge” prefixes allowing access to other personalities (this list is for Latin personality;
<a href=#GreenRipe>“Green/Ripe/Blue” explanations are here</a>):</p>

<pre>
	<code>Shift-Space</code>	Greek (AltGr=tonos/final/symbol etc), Superscript digits/symbols, “Green Keys”
	<code>AltGr-Space</code>	Cyrillic, “Ripe Keys”, Subscript digits/symbols, dashes
	<code>AltGr-Space ×2</code>	Hebrew {AND: iconic control-key symbols}
</pre>

<p>(for sub/superscript <b>letters</b>, follow by <code>Ctrl-(Shift-)letter</code> — if your app allows this).  <a href=#GreenRipe>Multiple presses
access some other useful stuff</a>; we mention only:</p>

<pre>
	<code>Shift-Space ×2</code>	MathBlue (“Blue keys” and common math flavors of letter)
</pre>

<p>This is for convenience access (if an OS/application does not allow entering <code>AltGr</code> directly):</p>

<pre>
	<code>Shift-AltGr-Space</code>	AltGr-inverted base face
</pre>

<p><a name=latin-mogr>These keys when used with <code>AltGr</code> provide mogrifications with the following semantic (from Latin personality):</p>

<pre>
	<code>;</code>	Diaeresis, hook above [+subs-Vietnamese], “Blue Keys”, operators {AND: doubly-mogrified symbols, rotunda/squirrel/hook/curl, dot above+below, etc}
	<code>"</code>	Diaeresis, double-grave, double-struck capitals {AND: doubly-mogrified symbols, dot above symbols, dot+macron, stroke/swash, paleocontractions, etc}
	<code>'</code>	Acute [+ on horn], sharpen, add on right {AND: hooks, tail/leg/curl, turned} — overflows to/from the column on right
	<code>`</code>	Grave, unsharpen, squared, add on left {AND: reversed} — overflows to/from the column on left
	<code>.</code>	Ring above, dot above/below/dotless, rounded {AND: circled, amplified, insular} — overflows to/from the column on right
	<code>,</code>	Cedilla, ogonek, comma below {AND: visigothic/greekize/doubled-letters, whited mogrified} — overflows to/from the column on left
	<code>^</code>	Hat, Amplify, Whiten, Paleo, “other” mogrify {AND: smallcaps, loop/upturn/descender/bar/fishhook/turnaround/inverted-phonetic/dot-reversed} — overflows to/from the column on right
	<code>6</code>	Caron, breve, quasi-synonyms, n-Ary/Big {AND: arc/loop/check/belt/flourish/tilde-below/left-palatal-hook, insular/epigraphic, etc}
	<code>~</code>	Tilde [+ subst-Vietnamese] — overflows to/from the column on left
	<code≯</code>	Stroke, cut-off, “other” phonetic {AND: Um, doubled letters, ŭ, dot above, double-overbar, but-not, fences}
	<code>-</code>	Macron, add horizontal line (or double line), phonetic, dashes (on digits etc) {AND: quill, right-hook, inv-breve, paleocontraction}
	
	<code>$</code>	Currencies, horn, add-vertical-line(s) {AND: double addleft/addright, “text” control-key symbols, etc}
	<code>↑</code>	Superscript (and MODIFIER LETTERS), Phonetic
	<code>↓</code>	Subscript (and MODIFIER LETTERS LOW), Small Caps, Legs
	<code>→</code>	Turnaround, inverted, reversed, turned, hooks (to the right)
	<code>←</code>	Hooks to the left (and palatal)
</pre>

<p>(The last group is also available from other personalities.)</p>

<p>The following four are available after Greek (pre-)prefix (<a href=#GreenRipe><code>Green</code></a>)
or with Green-modifiers (<code>Ctrl-Alt-</code>); combining them with <code>Shift</code> is equivalent to combining the
following keypress with <code>AltGr</code>:</p>

<pre>
	<code>\</code>	Polytonic greek Vowels by vowel-key-column, Rows=Circumflex/Acute/None-or-Vrachi-Macron/Grave, AltGr=iotization {AND: Zodiak, etc}
	<code>[</code>	As <code>\</code>, with smooth aspiration
	<code>]</code>	As <code>\</code>, with rough aspiration
	<code>`</code>	Coptic, Archaic Greek, Stroked/Latinized Greek {AND: dashes, cp437 “control-graphic”, Zuang tones}
</pre>

<p>The following two are available after Cyrillic (pre-)prefix (<a href=#GreenRipe><code>Ripe</code></a>):</p>

<pre>
	<code>'</code>	“Bizarre” Cyrillic, fractions {AND: “other” iconic Control-Key symbols}
	<code>^</code>	Cyrillic titlo-forms, power-of-10 multipliers {AND: “exotic” Cyrillic}
</pre>

<p>From non-Latin personalities, use appropriate modifications: for Latin-specific prefixes, use
<a href=#GreenRipe>Green prefix</a> (or Green modifiers);
prefixes which become “native” drop Green/Ripe pre-prefix; prefixes which remain foreign <a href=#GreenRipe>may use a different pre-prefix</a>. </p>

<p>In the character tables for the personalities (<a href=coverage-1prefix-Latin.html>Latin</a>, <a href=coverage-1prefix-Cyrillic.html>Cyrillic</a>, <a href=coverage-1prefix-Greek.html>Greek</a> and <a href=coverage-1prefix-Hebrew.html>Hebrew</a>),
 one can hover a mouse over a character, and a popup will explain which of the mogrification rules above was
applied to produce this character.</p>

<a name=examples></a><h1>Examples of possible input</h1>

<p>Below, <code>AltGr</code> is the right <code>Alt</code>, <code>Menu</code>
is the application menu key (somewhere to the right of <code>AltGr</code>),
<code>lCtrl/lAlt/rCtrl</code> are left and right variants of the keys.
Whitespace separates prefix keys from other keys (prefix key should be released
before the next key is pressed); dash <code>-</code> connects modifier keys
with the base key (modifier keys should be pressed down when the base key is pressed).</p>

<p>Everywhere, the modifier <code>AltGr-</code> may be replaced by prefix <code>Shift-AltGr-Space</code>.
On right, parentheses () are used only to indicate the baseline and whitespace.</p>

<p>One possible usage of these example is to get an overview what kind of stuff is
accessible from the keyboard, and how (without regards to what is important and what
is not).  Another usage is to use this as a base to check how well your application
supports keyboard input on Windows (e.g., Firefox v22 supports about 38% of these examples).
The examples cover the Latin personality of the keyboard only.</p>

<pre><code>
  AltGr-a                                --->  æ
  Shift-AltGr-Space a                    --->  æ        (Shift-AltGr-Space is a prefix equivalent to using AltGr-)
  AltGr-(                                --->  ‘
  AltGr-)                                --->  ’
  AltGr-9                                --->  “
  AltGr-0                                --->  ”


  lAlt-lCtrl-a                           --->  α	(Green)
  Shift-Space a                          --->  α	(Green)	
  Shift-Space AltGr-a                    --->  ά	(Green AltGr)	
  Shift-Space Shift-Space c              --->  ℂ	(Green × 2 == Blue)
  Shift-Space Shift-Space Shift-Space L  --->  £	(Green × 3 == Business)
  AltGr-$ L                              --->  £	(Business)

  Menu-q                                 --->  я	(Ripe)
  AltGr-Space q                          --->  я        (Ripe; Or use Shift-AltGr-Space Space q)
  AltGr-Space AltGr-Space a              --->  א        (Ripe × 2; Likewise, one can replace AltGr- as above)
  Menu-rCtrl-a			         --->  א        (Ripe²; not in Notepad)
  AltGr-Space AltGr-Space AltGr-Space g  --->  ӷ	(Ripe × 3 == Extra cyrillic)

  AltGr-/ =                              --->  ≠
  AltGr-^ =                              --->  ≝	(Amplified)
  AltGr-` *                              --->  ⋉	(AddLeft)
  AltGr-" a                              --->  ä	(Or      Shift-AltGr-Space " a)

  Shift-Space Shift-Space 2              --->  ∫	(Blue)
  AltGr-; 2                              --->  ∫	(Blue)
  AltGr-^ 2                              --->  ∬	(Amplified Blue)
  Shift-Space Shift-Space AltGr-2        --->  ∭	(Blue AltGr; same with AltGr-;)
  AltGr-^ AltGr-2                        --->  ⨌	(Amplified Blue AltGr)

  Menu-Right				 --->  →	(Moves position in Notepad)
  Menu-Shift-Right			 --->  ⇒
  Menu-Insert				 --->  ↔
  Menu-Delete				 --->  ⟷
  Menu-Enter				 --->  ↕

  AltGr-KeyPad6				 --->  ┤	(With NumLock)
  AltGr-Menu-KeyPad6			 --->  ╣	(With NumLock; Menu=Double)
  AltGr-rCtrl-KeyPad6			 --->  ╢	(With NumLock; rCtrl=[flip]DoubleToRight)
  AltGr-Menu-rCtrl-KeyPad6		 --->  ╡	(With NumLock; Double and flip DoubleToRight)
  Menu-KeyPad6				 --->  ┫	(With NumLock; no-AltGr means Bold)
  Menu-rCtrl-KeyPad6			 --->  ┥	(With NumLock)
  lAlt-rCtrl-KeyPad6			 --->  ┨	(With NumLock; lAlt must be added to loner rCtrl)

  lAlt-rCtrl-Right			 --->  (▌)	(Draw a frame by whitespace on black background)
  lAlt-rCtrl-Right			 --->  (▐)	(Draw a frame by black on white background)

  AltGr-F3				 --->  —	(3rd dash == em; not in Notepad)
  AltGr-Shift-F3			 --->  ( )	(⅓em whitespace)
  Menu-F3				 --->  —	(3rd dash == em; not in Notepad)
  Menu-Shift-F3				 --->  ( )	(⅓em whitespace)

  AltGr-Right n				 --->  ɳ	(Hook; moves position in Notepad)
  AltGr-Left n				 --->  ɲ	(Hook; moves position in Notepad)
  AltGr-Up i				 --->  ⁱ
  AltGr-Down i				 --->  ᵢ
  AltGr-Down I				 --->  ɪ	(SmallCaps)
  AltGr-Up AltGr-e			 --->  ə	(Upgrade to phonetic)
  AltGr-Right u				 --->  ᴝ	(rotate; moves position in Notepad)
  AltGr-Right AltGr-u			 --->  ᴞ	(rotate; moves position in Notepad)

  Shift-Space 1				 --->  (¹)	(Green)
  Shift-Space Ctrl-(Shift-)i		 --->  (ⁱ)   	(Green Ctrl)
  Shift-Space Shift-Space Ctrl-(Shift-)i --->  (ᴵ)	(Blue Ctrl)
  AltGr-Space 1				 --->  (₁)   	(Ripe)
  AltGr-Space Ctrl-(Shift-)i		 --->  (ᵢ)	(Ripe Ctrl)

  Shift-Space Shift-Space Shift-Space Ctrl-@ --->  ␀
  AltGr-Space AltGr-Space Enter		 --->  ⏎
  AltGr-Space AltGr-Space AltGr-Space Enter --->  ↲

  Shift-Space Space			 ---> ␣
  Shift-Space AltGr-Space		 ---> ⍽
  Shift-Space Shift-Space Space		 ---> ␠
  Shift-Space Shift-Space AltGr-Space	 ---> ␢
  AltGr-Space Space			 ---> ( )	(NBSP)
  AltGr-Space Shift-Space		 ---> ( )	(U+202f NNBSP ⅙em thin)
  AltGr-Space AltGr-Space Space		 ---> ( )	(U+2009 ⅙em thin)
  AltGr-Space AltGr-Space Shift-Space	 ---> ( )	(U+200A ⅛em hair)

  AltGr-' Space				 ---> ´		(Spacing diacritic)
  e AltGr-' AltGr-'			 ---> (é)	(Combining-´)
  AltGr-' Shift-Space			 ---> ʼ		(2nd Spacing diacritic)
  AltGr-' AltGr-Space			 ---> ʾ		(3rd Spacing diacritic)
  = AltGr-^ '				 ---> (=̑)	(2nd Combining-^)
  = AltGr-^ "				 ---> (=͒)	(3rd Combining-^)
  = AltGr-^ AltGr-'			 ---> (=͡)	(4th Combining-^)
  = AltGr-^ AltGr-"			 ---> (=̽)	(5th Combining-^)

  AltGr-_				 ---> —		(m-dash)
  Shift-Space _				 ---> –		(n-dash)
  Shift-Space Shift-Space _		 ---> ―		(horizontal dash)

  Menu-F12 ' a				 ---> á		(Compose = as X11's .Compose)
  Menu-F12 Menu-F12 I n t		 ---> ∬		(Compose × 2 = as HTML entities [MathML])
  Menu-F12 Menu-F12 Menu-F12 D I	 ---> ∬		(Compose × 3 = as rfc1345 codes)
  Menu-Space ' a			 ---> á		(Compose = as X11's .Compose)
  Menu-Space Menu-Space I n t		 ---> ∬		(Compose × 2 = as HTML entities [MathML])
  Menu-Space Menu-Space Menu-Space D I	 ---> ∬		(Compose × 3 = as rfc1345 codes)

  AltGr-rCtrl-C				 ---> ℂ		(Double-struck)
  AltGr-Menu-C				 ---> 𝒞		(Script)
  AltGr-Menu-rCtrl-C			 ---> 𝕮		(Bold-Fraktur)
  Shift-Space Shift-Space C		 ---> ℭ		(Fraktur; happens to be on Green × 2)

			[Using lCtrl instead of AltGr flips “boldness”; lCtrl-rCtrl does not work with some keys]
  lCtrl-rCtrl-Q				 ---> 𝙌		(Tensor=Math Sans Serif Bold Italic)
  lCtrl-Menu-Q				 ---> 𝓠		(Bold Script)
  lCtrl-Menu-rCtrl-Q			 ---> 𝔔		(Fraktur)

  lAlt-rAlt-q				 ---> 𝚚		(Math Monospace)
  lAlt-rAlt-Menu-q			 ---> 𝑞		(Math Italic)
  lAlt-rAlt-Menu-rCtrl-q		 ---> 𝒒		(Math Bold Italic)
  lAlt-rAlt-rCtrl-q			 ---> 𝐪		(Math Bold)
  lCtrl-lAlt-q				 ---> θ		(Green=Greek)
  lCtrl-lAlt-Menu-q			 ---> 𝜃		(Math Greek Italic)
  lCtrl-lAlt-Menu-rCtrl-q		 ---> 𝜽		(Math Greek Bold Italic)
  lCtrl-lAlt-rCtrl-q			 ---> 𝛉		(Math Greek Bold)
  lAlt-rCtrl-q				 ---> 𝘲		(Math Sans Serif Italic)
  lAlt-Menu-rCtrl-q			 ---> 𝗊		(Math Sans Serif)
  lAlt-Menu-q				 ---> 𝗾		(Math Sans Serif Bold; not in Notepad)

  lCtrl-lAlt-: 3			 ---> ⅓		(By denominator via extra cyrillic)
  Menu-; 3				 ---> ⅓		(Same)
  AltGr-Space AltGr-' 3			 ---> ⅓		(Same via Ripe=cyrillic)
  AltGr-Space AltGr-Space AltGr-Space 3	 ---> ⅓		(Same via Ripe × 3)
  lCtrl-lAlt-: Shift-3			 ---> ¾		(By numerator)
  lCtrl-lAlt-: AltGr-3			 ---> ⅔		(By denominator, with larger numerator)
  lCtrl-lAlt-: AltGr-Shift-3		 ---> ⅗		(By numerator,   with larger denominator)
  Menu-F12 2 5				 ---> ⅖		(Compose = as X11's .Compose)
  Menu-Space 2 5			 ---> ⅖		(Compose = as X11's .Compose)
  lCtrl-Menu-/ 3			 ---> ⅓		(By denominator; lCtrl-Menu-/ acts the same as lCtrl-lAlt-:)

  Shift-Space w				 ---> ω
  Shift-Space \ x			 ---> ὼ		(no aspiration, diagonal of ω, bottom row=`)
  Shift-Space \ AltGr-x			 ---> ῲ		(same with iotization)
  Shift-Space | x			 ---> ῲ		(same with Shift-\)
  Shift-Space [ x			 ---> ὣ		(same as ὼ with aspiration)
  Shift-Space [ AltGr-x			 ---> ᾣ		(same with iotization)
  Shift-Space { x			 ---> ᾣ		(same with Shift-[)

  Shift-Space ` g			 ---> ⲅ		(Coptic γ)
  Shift-Space ` AlgGr-g			 ---> ͷ		(Coptic Pamphylian digamma ϝ)
  Shift-Space ~ g			 ---> ͷ		(same with ~ [which is Shift-`])

  Shift-Space \ Shift-5			 ---> ♌		(5th Zodiak)
  Shift-Space ` Shift-5			 ---> ♣		(0x05 in cp437)

  AltGr-Space g AltGr-Space AltGr-^ a	 ---> гⷶ  	(Titlo-form of га)
  Menu-g Menu-: a			 ---> гⷶ  	(Same)
  AltGr-Space AltGr-^ 3			 ---> ҂		(Cyrillic 10³ prefix — others 10ⁿ are combining marks)

  lCtrl-lAlt-,				 ---> ( — )	(Typographically sound m-dash — surrounded by hair space)
  lCtrl-Menu-,				 ---> ( — )	(Same)
  AltGr-rCtrl-,				 ---> ( — )	(Same)
  AltGr-rCtrl-/				 ---> ( — )	(Typographically sound m-dash — surrounded by thin space)

  lCtrl-lAlt-<				 ---> (𝄞)	(Example string with 1 SMP char)
  lCtrl-lAlt->				 ---> (𝄡𝄡)	(Example string with 2 SMP chars)

</code></pre>

</body>
</html>