[]
ExtraScanCodesWin=
COMPANYNAME=Ilya Zakharevich
+LAYOUTNAME=US-Intl Shift-Space -> Russian phonetic, k.ilyaz.org/iz
+LAYOUTNAME=Russian phonetic Shift-Space -> US-Intl, k.ilyaz.org/iz
COPYR_YEARS=2011-2013
@LOCALE_NAME=en-US,ru-RU
@LOCALE_ID=0409,0419
@DLLNAME=iz-la-ru,iz-ru-la
SORT_ORDER_ID_=0000
@LANGUAGE_NAME=English (United States),Russian (Russia)
#
VERSION=0.05
#
[Substitutions]
# Will be used when putting a second diacritic: (as <subst-Vietnamese>)
@Vietnamese=åă,àâ,èê,òô,øơ,bư
@Macron=øō
@Zuang_tones=2ƨ,3з,4ч,5ƽ,6ƅ,@Ƨ,#З,$Ч,%Ƽ,^Ƅ
#
[DEADKEYS]
#
# Can be omitted now
#
0020=SPACE
#
[visual -> KBD/B/C/D]
#
visual_rowcount=4
@visual_per_row_counts=4,4,4,4
visual_prefixes= *
in_key_separator=/
prefix_repeat=3
# Greek-AltGr has only one element: Ω
@layer_names=Green,Green-AltGr,Greek,Greek-AltGr-Junk
@layer_names=Blue,Blue-AltGr,Cyrillic-Extra,Cyrillic-ExtraExtra
@layer_names=US-Base,USLatin-AltGr,Ripe,Ripe-AltGr
@layer_names=Russian-Base,Cyrillic-AltGr,Cyrillic-II,Cyrillic-II-AltGr
# 20: access KP_Decimal and KP_Extra_Slash_on_Left on offsets 20,21
@keyline_offsets=0,1,1,1,20
#
# Perl 5.8.8 does not recognize ҇ as a combining character...
# +-=(): ⁺⁻⁼⁽⁾ ⁼⁺
--/⋱≀ --∣/∤∁ --≈/∃∀ --⧣/∛∄ --€/∜⨋ --◌/☆★ --£/⨊ --/⨄⨃ --⊠/∞⧆ --/‟‛ --/◌⧇ --–/∓± --
-- ⊤⊥/≠⟂/ꙩ/ꚑ ∫∮/∭∥/ꙫ/ꙭ ⊲⊳/⊣⊢/ꙮ □◇/△▽/ꚉ •⋈/⨯⋆/ꙛ ∨∧ ∪∩//ꙅ ≐×/≃/ԑ/--꙳ --∈//ꙉ ∅∋//ꙃ/ꙁ --//ҹ --//ӌ
*** `~/ˋ˜ 1!/¬¡ 2@/ºª 3#/·№ 4$/¢£ 5%/€¥ 6^/ˇˆ 7&/√§ 8*/„‚ 9(/“‘ 0)/”’ -_/¯—/--― =+/≈±
ю//ѫ/ѭ 1!/-- ҄ 2@/ ҆ ҇ 3ё 4Ё 5ъ/--€ 6Ъ/-- ҃//-- ҄ 7&/// ꙽ꙿ 8*//-- ҅ 9(///ҁ 0)/// ꙼꙾ -_//ҽ/ҿ ч//ҷ/ӵ
#
--//θ --//ω --//ε --//ρ --//τ --//ψ --//υ --//ι --//ο --//π -- -- --/◊⧫
-- --//ꚍ --//ӗ --//ԕ --//ꚋ --//ꙑ --//ꙕ --//ӊ -- --//ꚏ --//ꚅ --//ꚗ --//ӭ
*** q/ä w/á e/ê r/å t/þ y/ÿ u/ü i/ij o/œ p/ø [{/«‹ ]}/»› \|/¦†
я/ѣ/ѧ/ѩ в/ѵ/ꙍ/ԝ е/ё/ө/ӫ р/ԗ/ѽ/ҏ т/ћ/ҭ/ԏ ы/і/ү/ұ у/ў/ӯ/ӱ и/ѷ/ӣ/ӥ о/ѡ/ѻ/ѿ п/ѱ/ԥԤ/ҧ ш//ԧԦ/ѐ щ//ꚇ/ѝ э//ѥ/ӧ
#
--//α --//σ --//δ --//φ --//γ --//η --//ϊ --//κ --//λ -- ∂∇/′″
--//ԙ --//ꚃ --//ӡ -- --//ӿ --//ҩ --///ꙇ --//ӄ --//ԉ --//ԟ/ҝ --//ꚓ/ꚕ
*** a/æ s/ßẞ d/ð f/è g/ý h/ú j/í k/ó l/ö ;:/¨÷ '"/´˵/′″
а/ә/ꙗ/ӓ с/ѕ/ҫ/ԍ д/ђ/ӟ/ԁ ф/ѳ/ғ/ӻ г/ґ/ӷ/ҕ х/һ/ҳ/ӽ й/ї/ҋ/ӑ к/қ/ҡ/ҟ л/љ/ӆ/ԓ ;://ӹ/ӳ '"/ ́´/ ̀ ̀/ ́ ́
#"
--//ζ --//χ --//ξ --//ϋ --//β --//ν --//μ -- · ⁄/⋰
-- -- --//ꙡ --//ԃ -- --//ӈ --//ꙧ ≲//ԇ/ԅ ≳//ꙝ/ꙙ …≟//ꙓ/ҍ
*** z/à x/é c/ç v/ì b/ù n/ñ m/ò ,</¸≤ .>/°≥/… /?/0338¿/÷�
з/є/ҙ/ѯ ь/ъ/ӛ/ӕ ц/џ/ҵ/ќ ж/ӂ/җ/ӝ б/ѓ/ѹ/ꙋ н/њ/ң/ҥ м/ӎ/ꙟ/ԣ ,</«/⁘⁙/ԋ .>/»/·։/჻⁖ /?/ј/ԛ/ꙏ
# ×∓ ⁻/− δ/∕ ν/ⁿ
-- --
-- --
*** \|/¶❧ ./,
ъЪ/ӏӀ ./,
# Now missing: ӏӀ
#
# Earlier versions had: б/ѹ (now г overflows down as ...); 7&/ ҅ ҆ /?/§” 2@/²³
# ԥԤ ԧԦ must be specified both lc/uc since perl 5.10 does not upcases them automatically (v6.0)
# On II-maps: forms with ¨, iotified, latinized forms, forms with more developped appendages, or appendages
# more to the right, or higher, are on AltGr prefix. (Same for almost-unrelated letters placed
# opportunistically. (Many are inverted w.r.t. Unicode versions! Later reason in the list wins.)
#
# Ԡ Ԕ - missing. Stressed: ѐ ѝ (have them).
#
#Non-obvious: '"/́´/ӹ/ӳ я/ѣ/ѧ/ѩ б/ѓ/ѹ/ѽ д/ђ/ӟ/ԁ й/ї/ҋ/ӑ ь/ъ/ӛ/ӕ ф/ѳ/ғ/Ӻ м/Ω±/ӎ/ꙟ ш//ԧ/ѐ щ//ꚇ/ѝ з/є/ҙ/ѯ ц/џ/ҵ/ќ
# р/ ҄®/ꙋ ,</«„/⁘⁙ .>/»“/·։/჻⁖ /?/ј/; + 6789
# Coppa is on AltGr since 1/9 fraction pushes it there...
#
[layer_recipes]
#CopyRight_0= Id(CopyRight) MutateDupsOK[0327](SelectRX[[eE]](US-Base)) ByPairs[$¤ ,¸ qĸ ËƏ ëə "〃 -∓](US-Base)
#CopyRight_1= Id(CopyRight-AltGr) MutateDupsOK[00a8](SelectRX[[t]](US-Base)) ByPairs[EƏ eə](US-Base)
#
#Math_PlusPlus= Id(Math) ByPairs['′ "″]
#
# 0301 over Greek letters=tonos; 0308=dialytika '
Greek_and_More_0= Id(Greek) ByPairs[?; ;·](US-Base)
+Greek_and_More_1= MutateDupsOK[0301|<any-calculated-symbol>|<any-calculated-final>|<any-lunate-symbol>|<any-latinize>|
+Greek_and_More_1= <any-quasisynon>,<any-amplify>](Greek)
+Greek_and_More_1= ByPairs[YϜ yϝ TϚ tϛ Kϗ XϠ xϡ CϘ cϙ ZϞ zϟ ;· R∐ l∧ L⋀ n∨ N⋁ F∅ ?Ɂ /ɂ](US-Base)
#
Dashes_Bars= ByPairs[1‐ 2– 3— 4― 0‒](US-Base) ShiftFromTo[5,˥](SelectRX[[5-9]](US-Base))
# <pseudo-calculated-sign> is needed for -
Subs_Dashes_0= MutateDupsOK[<sub>,<sub>+<pseudo-calculated-sign>](SelectRX[[0-9\-()+=]]) FlipShift(Dashes_Bars) ByPairs[|00ad](US-Base)
More_Dashes_1= ShiftFromTo[5,꜒](SelectRX[[5-9]](US-Base)) ShiftFromTo[5,꜍](SelectRX[[5-9]](FlipShift(US-Base))) ByPairs[1‑ -⁃ _‾](US-Base) MutateDupsOK[<sub>](SelectRX[[+=]](US-Base))
# This stores in unshifted positions of layer 0 (ρ takes YPOGEGRAMMENI 0345):
Greek_vowels_lc= ByColumns[ρ,α,ω,ε,,,η,υ,ι,ο]
Greek_vowels= Id(Greek_vowels_lc) uc(FlipShift(Greek_vowels_lc))
Greek_vowels_AltGr= MutateDupsOK[0345|0308](Layers(Empty+Greek_vowels)) ByPairs[.0020 l.0020 o.0020 9.0020](US-Base)
#
BusinessA_0= Imported[business,00a4](US-Base)
BusinessA_1= Imported[business,00a3](US-Base)
BusinessAdd_0= ByPairs[qĸ Q⌨ ZƏ zə oơ OƠ uư UƯ '′ "″ ;‵ :‶ -∓ [〈 ]〉 {◄ }► /℅ jƺ](US-Base) DefinedTo[¤](SelectRX[[^\da-zA-Z]](US-Base))
+BusinessAdd_1= ByPairs[ZƎ zǝ Oɶ o℅ '‴ "⁗ ;‷ :‱ [◃ {◂ ]▹ }▸ Aᴁ 2ƻ f♀ F⚢ m♂ M⚣ a⚤ ?ʢ e℮ wfi Wfl h⌂ jʓ](US-Base)
+BusinessAdd_1= DefinedTo[¤](SelectRX[[^\da-zA-Z]](US-Base))
#"
cp437_Start= FromTo[Digits,cp437-Start](FlipShift(Face(Latin))) ByPairs[_☼](Face(Latin)) ByPairs[-♪ _♫](FlipLayers(Latin))
#
[face_recipes]
# ∦ obscures ⦀
+VLine= Mutate[\\∦[\],20d2,20d3,<any-addvline>,20e6,<any-vertical>,<any-stem>|
+VLine= <any-calculated-operator>,0338+<any-manual>,20d2+<any-manual>,20d3+<any-manual>|
+VLine= <any-addvline>+<any-addvline>,<any-addleft>+<any-addleft>,<any-addright>+<any-addright>](Face(Latin))
+Business= Layers(BusinessA_0+BusinessA_1) Face(VLine) Layers(BusinessAdd_0+BusinessAdd_1)
+Business= Face(SpecialKey_Symbols)
+Business= ByPairs[0020␢ xꙣ XꙢ vꚁ VꚀ](FlipLayers(Latin)) ByPairs[xꙥ XꙤ vԡ VԠ](Face(Latin)) ByPairs[0192␢]
#
+Greek__Letters= Layers(Greek_and_More_0+Greek_and_More_1)
+Greek__Letters= ByPairsPrefix[\0342 [0314 ]0313 `03e2](Face(Latin))
+Greek__Letters= ByPairsInvPrefix[|0342 {0314 }0313 ~03e2](Face(Latin)) ByPairs[Vϔ](FlipLayers(Latin))
#
CyrillicRipe= NotSameKey(Face(Latin) Face(CyrillicPhonetic) Layers(Subs_Dashes_0+More_Dashes_1) Layers(Ripe+Ripe-AltGr))
CyrillicRipeMax= ByPairs[˵〃](Face(Latin)) Face(CyrillicRipe) Face(CyrillicPhonetic)
#
+LGreekGreen= NotSameKey(Face(Latin) Face(Greek__Letters) Layers(Green+Green-AltGr))
+LGreekGreen= MutateDupsOK[<super>,<super>+<pseudo-calculated-sign>](SelectRX[[-0-9()+=]|-])
LGreekGreenMax= Face(LGreekGreen) Face(Greek__Letters)
#
+CGreekGreen= NotSameKey(Face(CyrillicPhonetic) Face(Greek__Letters) Layers(Green+Green-AltGr))
+CGreekGreen= MutateDupsOK[<super>](SelectRX[[0-9]])
CGreekGreenMax= Face(LGreekGreen) Face(Greek__Letters)
#
LatinRipe= NotSameKey(Face(CyrillicPhonetic) Face(Latin) Layers(Subs_Dashes_0+More_Dashes_1) Layers(Ripe+Ripe-AltGr))
LatinRipeMax= Face(LatinRipe) Face(Latin)
#
Greek_Vowels= Layers(Greek_vowels+Greek_vowels_AltGr)
# PERISPOMENI=0342=circumflex=(visually)tilde [SpaceOK not needed, since it checks the BASE character of a key] [varia does not decompose into SPACE+combining, but into `]
+Greek_Vowels0= ByRows[ MutateDupsOK[0342] /// MutateDupsOK[0301] /// Id /// MutateDupsOK[0300] ](Face(Greek_Vowels))
+Greek_Vowels0= ByPairs[`ρ ~Ρ](Face(Latin)) ByPairs[.`](Layers(Empty+US-Base))
# plain -> 0306 vrachy; -> 0304 macron (in poetry: disambiguate short and long: http://www.tlg.uci.edu/~opoudjis/unicode/unicode_gkbkgd.html)
# They are used (almost always in teaching or dictionaries) to disambiguate the three vowels which might be long or short: alpha, iota, and upsilon.
Greek_Vowels0_with_Vrachi= ByRows[ Empty /// Empty /// MutateDupsOK[0306] /// Empty ](Face(Greek_Vowels))
Greek_Vowels0_with_Macron= ByRows[ Empty /// Empty /// MutateDupsOK[0304] /// Empty ](Face(Greek_Vowels))
# 000d↲ PageUp ⎗ PageDn ⎘
SpecialKey_Images= ByPairs[ 000a 000d⏎ 0009↹ 001b⇤ 001d⇥ 001c␀ 0008⌫ 007f⌦ 0003␥ 001a␦]
SpecialKey_Symbols= ShiftFromTo[0001,2401](SelectRX[[\x00-\x20]]) ByPairs[␡]
SpecialKey_Images2= ByPairs[000d↲ 000a⤶ 0008⎌ 001b⎗ 001d⎘ 007f⌧ 0003⎚]
#
[faces]
# Create DeadKey maps basing on (massaged!) visual descriptions:
# koronis obscures 0313 psili; breve obscures 0342 perispomeni
+DeadKey_Map0342= PrefixDocs[Polytonic greek Vowels by vowel-key-column, Rows=Circumflex/Acute/None-or-Vrachi-Macron/Grave, AltGr=iotization {AND: Zodiak, etc}]
+DeadKey_Map0342= HTML_classes[k=polyBase,to_w,j,k=polyBase,from_w,sl,C,need-learn,ᾰῠῐᾱῡῑ΄΅ϵϼ͵ʹ᾽ͺιϱ]
+DeadKey_Map0342= ByPairs[~⛎](Face(Latin)) ByPairs[lͺ Lι 0028῁ O΅ >῭ 3΄ #΅](FlipLayers(Latin))
+DeadKey_Map0342= Face(Greek_Vowels0_with_Vrachi)
+DeadKey_Map0342= FromTo[US-Base,Face(Greek_Vowels0_with_Macron)](ByPairs[sa SA hj HJ lk LK](US-Base))
+DeadKey_Map0342= Mutate[\\ϔ,<any-stroke-symbol>+<pseudo-calculated-symbol>|
+DeadKey_Map0342= <pseudo-upgrade>](Face(Greek_Vowels0))
+DeadKey_Map0342= Face(Greek_Vowels0) FromTo[Digits,Zodiak](FlipShift(Face(Latin)))
+DeadKey_Map0342= FromTo[SubExtraLetters,Zodiak](FlipShift(Face(Latin))) ByPairs[3͵ #ʹ](Face(Latin))
# some capital characters exist with aspiration, but not without; hence the play with uc (and uc may give something like ὮΙ) [varia needs to be special cased - it decomposes into `)
# We repeat the Shift-inverted ByPairs[#͵ 3ʹ](Face(Latin)) only to fight access from CyrillicPhonetic (remember ъЪёЁ)
+DeadKey_Map0313= PrefixDocs[Polytonic greek Vowels with smooth aspiration by vowel-key-column, Rows=Circumflex/Acute/None/Grave, AltGr=iotization; +etc]
+DeadKey_Map0313= HTML_classes[C,need-learn,᾽]
+DeadKey_Map0313= ByPairs[L᾽](FlipLayers(Latin)) Mutate[\\᾽,0313](Face(Greek_Vowels0))
+DeadKey_Map0313= Mutate[ucfirst+0313](FlipShift(Face(Greek_Vowels0))) ByPairs[.῍](Layers(Empty+US-Base))
+DeadKey_Map0313= ByPairs[3͵ #ʹ](Face(Latin))
#
+DeadKey_Map0314= PrefixDocs[Polytonic greek Vowels with rough aspiration by vowel-key-column, Rows=Circumflex/Acute/None/Grave, AltGr=iotization; +etc]
+DeadKey_Map0314= HTML_classes[C,need-learn,͵ʹ]
+DeadKey_Map0314= Mutate[0314](Face(Greek_Vowels0)) Mutate[ucfirst+0314](FlipShift(Face(Greek_Vowels0)))
+DeadKey_Map0314= ByPairs[.῝](Layers(Empty+US-Base)) ByPairs[#͵ 3ʹ](Face(Latin))
#
+DeadKey_Map03e2= PrefixDocs[Coptic, Archaic Greek, Stroked/Latinized Greek {AND: dashes, cp437 “control-graphic”, Zuang tones}]
+DeadKey_Map03e2= Mutate[<any-greek2coptic>|<any-greek2coptic>+<any-archaic>|<any-stroke>+<any-latinize>](Layers(Greek+Greek_and_More_1))
+DeadKey_Map03e2= Mutate[<any-latin2extracoptic>](ByPairs[jj JJ vf VF --](Face(Latin))
+DeadKey_Map03e2= ByPairs[dt DT kx KX](FlipLayers(Latin)) FlipLayers(Latin))
+DeadKey_Map03e2= ByPairs[BϷ bϸ !Ͱ 1ͱ jϳ GͶ gͷ MϺ mϻ Uϒ NͲ nͳ vϲ VϹ oͻ OϽ e϶ QϏ qϗ rͽ RϿ yͼ YϾ w℧ WΩ lƛ](FlipLayers(Latin))
+DeadKey_Map03e2= Layers(Dashes_Bars+Empty) Id(cp437_Start) Mutate[<subst-Zuang_tones>](FlipLayers(Latin))
+DeadKey_Map03e2= HTML_classes[C,special,ⲇⲕϒ,C,very-special,ϸͷϻΩ϶ᵼᵿƛ,C,may-guess,ͱϫϥ,C,need-learn,ϲͻͽͼͳ℧ϗ♫♪]
#
+DeadKey_Map00a3= PrefixDocs[Currencies, horn, add-vertical-line(s) {AND: double addleft/addright, “text” control-key symbols, etc}]
+DeadKey_Map00a3= ByPairs[££] Face(Business) HTML_classes[k=businessAlt,from_w,u,C,special,©®℠™℗℅℮‱,C,very-special,ĸươəǝ,C,need-learn,៛﷼ԡꙣꙥꚁ,C1,need-learn,元圆]
#
geometry_via_layer=US-Base
#
# Tibetan range: take only tibetan diacritics, so our code adding diacritics won't be confused by prefices... ???
Auto_Diacritic_Start=0f00
#
Flip_AltGr_Key=00a0
#
Diacritic_if_undef= SpaceSelf2Id
DeadChar_DefaultTranslation= ♪
DeadChar_32bitTranslation= ♫
# Explicit on Latin
[faces/VK]
# # Had 03a6 on the "ripe key"; then 00b5, now 0192
@SPACE=,0020,00b5@,0192@,00a0@
# Temporary: when ¦ is Compose, change to this...
@ABNT_C2=,‖,00a0@,00a3@,0301
#@TAB=,0009,0009,0483@,0484@
#
# Dotted circle, black circle, white circle
#@APPS=,-1,25CC@,25CF@,25EF@
#
# Non-breakable translations (non-ideal 2007), 202F
#
[faces/Latin]
@layers=US-Base,USLatin-AltGr
LinkFace=CyrillicPhonetic
#
MetaData_Index=0
faceDeadKeys= ´ ˋ ||| ˆ ˜ ||| ° ¸ ||| ˇ ¯ 0338 ˵ ¨ £ µ
ExportDeadKeys= ´ ˋ ˆ ˜ ° ¸ ˇ ¯ 0338 ¨ ˵
#
@extra_report_DeadChar= 03a6
# # Now defined via ByPairsPrefix
#@faceDeadKeys2= 00b5\, 00b5[, 00b5], 00b5`
# 002c = ,
@char2key_prefer_first=\,|,.,002c,£
@char2key_prefer_last=00a0
#
# Will be only considered when putting a diacritic on AltGr-key (~∼, *∗, .⋅ ) perp=⟂' ¹⟂ is good only if ¹ is on 1! key…;
# |∣ does not hurt anything (and does not help much)
@AltGrCharSubstitutions=|∣,0338∕
# ¡≀ - better on Greenkeys; #≠ - conflicts too much; ijü - was good when ij was on k, not i; ó∘ - what for???
@AltGrCharSubstitutionLayers=Blue,Blue-AltGr
#
# This gives more collisions:
#@AltGrCharSubstitutions=ijü,^∧,&∩,*×,#≠,6∨,7∪,|∣,!⊥,1⊤,¡≀,¹⟂,2∫,@∮,ª∭,²‖,²∥,3⊳,#⊲,º△,³▽,4□,$◇,€⊢,¥⊣
#
@Import_Prefix_Keys= 0301:CyrillicPhonetic,03a6, 0483:CyrillicPhonetic,0483
#
+DeadKey_InvMap0000= ByPairs[0192.202f]
+DeadKey_InvMap0000= HTML_classes[k=latinAlt,from_ne,x,k=latinAlt,to_ne,ac,k=latinAlt,xfrom_sw,wf,k=latinAlt,from_nw,l]
+DeadKey_InvMap0000= HTML_classes[c=latinBase,special,aeyuio,C=latinAlt,special,ê,C=latinAlt,very-special,ºª№€§æßðþçñijœ¡¿]
+DeadKey_InvMap0000= HTML_classes[C1,need-learn,åøì]
# Chaining makes sense if Flip_AltGr_Key is on AltGr key (repeating will reach inverted faces of:)
@chainAltGr=00b5,0192,03a6,0483
+PrefixChains=0192,0192,03a6,0483,⍽
+PrefixChains=00b5,00b5,£,03e2,␣
#
# 017F,0192,03a6 - good candidates to never be generated on the base face. But 017F takes accents (use it for dead2 only)
# 00b6=pilcrow 007c=| 002f=/ 00a0=NBSPC --> open box, narrow and hair spaces to figure and narrow nbr-spaces (was: 03a6.2007 00a0.202F)
+DeadKey_Map0192= PrefixDocs[Cyrillic, “Ripe Keys”, Subscript digits/symbols, dashes {AND: “other” iconic Control-Key symbols}]
+DeadKey_Map0192= Face(SpecialKey_Images2) ByPairs[0020.00a0 00b5.202f]
+DeadKey_Map0192= InheritPrefixKeys[Face(CyrillicPhonetic)](Face(CyrillicRipeMax))
+DeadKey_Map0192= HTML_classes[C=cyr,may-guess,всыхѣєә,C0,need-learn,ючяшщэьжёъЁЪ]
# Layers(Russian+Russian-AltGr)
# (9=Thin, a=Hair, 7=figure(noBreak), 8=Punctuation spaces)
DeadKey_AddMap03a6= PrefixDocs[“Bizarre” Cyrillic, fractions] ByPairs[0020.2009 00b5.200a]
DeadKey_AddMap0483= ByPairs[0020.2007 00b5.2008]
# Default map (not used now???):
DeadKey_Map= Mutate Mutate2Self
#
# µ: ↹⇤ 0009⇥
+DeadKey_Map00b5= PrefixDocs[Greek (AltGr=tonos/final/symbol etc), Superscript digits/symbols, “Green Keys” {AND: iconic control-key symbols}]
+DeadKey_Map00b5= Face(LGreekGreenMax) Face(SpecialKey_Images) ByPairs[0020␣ 0192⍽]
+DeadKey_Map00b5= HTML_classes[C,very-special,ϋϊ,C,special,αωεηυιο,C,may-guess,ϔϛϟϡɂ,C,need-learn,θψϝϙ∐,C1,may-guess,ϗ∨⋁∧⋀]
#
# diaeresis 00a8; 0309=hook above; ,<any-symbol-diaeresis> does not add anything...
+DeadKey_Map00a8= PrefixDocs[Diaeresis, hook above [+subs-Vietnamese], “Blue Keys”, operators {AND: doubly-mogrified symbols, rotunda/squirrel/hook/curl, dot above+below, etc}]
+DeadKey_Map00a8= Mutate[\\∉∌,00a8|0309+<subst-Vietnamese>,<reveal-substkey>|0309|<any-calculated-operator>|
+DeadKey_Map00a8= <any-overlay>+<any-addvline>,<any-overlay>+<any-addhline>,<any-overlay>+<any-addline>,
+DeadKey_Map00a8= <any-amplify>+<any-round>,<any-round>+<any-round>,<any-rotunda>,<any-squirrel>|
+DeadKey_Map00a8= <any-dot-above>+<any-dot-below>,<any-dot-above>+0301,<pseudo-stroke>+<any-diagonal-stroke>|
+DeadKey_Map00a8= <any-double-bar>,<pseudo-hook>,<pseudo-palatal-hook>|<pseudo-curl>,-<any-white>+<any-unsharpen>]
+DeadKey_Map00a8= Mutate2Self
#
# 2f5 ˵ "middle" double grave. <any-macron-below> gets WITH LINE BELOW, <any-circumflex-accent-below> gets WITH CIRCUMFLEX BELOW
+DeadKey_Map02f5= PrefixDocs[Diaeresis, double-grave, double-struck capitals {AND: doubly-mogrified symbols, dot above symbols, dot+macron, stroke/swash, paleocontractions, etc}]
+DeadKey_Map02f5= Mutate[\\ǘ,00a8|<font=double-struck>|<any-double-grave>|
+DeadKey_Map02f5= <any-overlay>+<any-addvline>,<any-overlay>+<any-addhline>,<any-overlay>+<any-addline>,
+DeadKey_Map02f5= <any-calculated>+<any-black>,<any-amplify>+<any-round>,<any-round>+<any-round>|
+DeadKey_Map02f5= <any-adddottop>,<any-amplify>+<any-amplify>|
+DeadKey_Map02f5= <any-dot-above>+<any-calculated>,<any-dot-above>+0304--00a8|0304+<any-dot-below>|
+DeadKey_Map02f5= <any-diagonal-stroke>,<any-oblique-stroke>|
+DeadKey_Map02f5= <any-swash>,<any-bar>+<any-paleocontraction>,<any-paleocontraction>,<any-diaeresized>--0301,
+DeadKey_Map02f5= <any-reversed>+<any-fishhook>,<any-hook>+<any-greekize>--0301]
+DeadKey_Map02f5= ByPairs[p♠ P♣] ByPairs[p♥ P♦ "0308](FlipLayers) Mutate2Self
#
# Combine macron=00af and stroke (AOUaou missing stroke...) 00ad=SOFT HYPHEN; <any-stroke> should pick up 0338; 20D2 (|) and 20E5 \ do not appear in decompositions...
# ⩉ masks combining macron; 0311 is inverted breve; ⋺ gets in the way of overbar
+DeadKey_Map00af= PrefixDocs[Macron, add horizontal line (or double line), phonetic, dashes (on digits etc) {AND: quill, right-hook, inv-breve, paleocontraction}]
+DeadKey_Map00af= ByPairs[”ɚ ¹ǃ]
+DeadKey_Map00af= Mutate[\\⩉∤≤≥⩈⋳⋻,\\⋺[0],00af|0303+<subst-Macron>|
+DeadKey_Map00af= <any-bar>,<any-horizontal-stroke>,<any-dash>,<any-overbar>,<any-topbar>,<any-strikethrough>,
+DeadKey_Map00af= <any-over-equal>,<any-equal>,<any-line-!vertical>,<any-quill>,<any-base>,<any-underbar>,
+DeadKey_Map00af= <any-phonetized>,<any-addhline>|<any-right-hook>|
+DeadKey_Map00af= 0311--0301,<any-paleocontraction>,<super>+<any-paleocontraction>+lc|
+DeadKey_Map00af= 0311,<any-horizontal>,0304+<any-dot-below>]
+DeadKey_Map00af= ByPairs[1‐ 2– 3—] ByPairs[4― 0‒ ”ə ¦00ad !‑ ¹ǃ KȎ kȏ @ƻ] ShiftFromTo[5,˥](SelectRX[[5-9]])
+DeadKey_Map00af= Mutate2Self
# 0304+<any-dot-below> cannot be inverted - there is no intermediate point!
#
# Combine breve=02d8/0306 and caron 02c7/030c (we do not ??? of breve-like diacritics!); ŭ is moved to ???
# Note that Ü combines with caron (in 2 ways! Ǖ Ṻ) - but we prefer Ü -> Ǔ; arc/check not visible; ƫꞇꞆ obscure ꝥ
+DeadKey_Map02c7= PrefixDocs[Caron, breve, quasi-synonyms, n-Ary/Big {AND: arc/loop/check/belt/flourish/tilde-below/left-palatal-hook, insular/epigraphic, etc}]
+DeadKey_Map02c7= ByPairs[02c7.0306]
+DeadKey_Map02c7= Mutate[\\ƫꞇꞆ∊∍ŭꟼ,02c7|030c|<any-breve-!inverted>,<any-arc>,<any-caron>,<any-loop>,<any-check>,<any-belt>,
+DeadKey_Map02c7= <any-flourish>,<any-tilde-below>--0300|
+DeadKey_Map02c7= <any-quasisynon>,<any-left-hook>,<any-quasisynon>+<any-black>|
+DeadKey_Map02c7= <any-palatal-hook>,<any-insular>,<any-epigraphic>,0306+0327--0301,<any-dot-above>+<any-caron>,
+DeadKey_Map02c7= <any-black>+<any-unsharpen>,<any-n-ary>,<any-big>,<any-large>,
+DeadKey_Map02c7= <any-n-ary>+<any-manual-!turnaround>,<any-n-ary>+<any-circled>]
+DeadKey_Map02c7= ByPairs[þꝥ ÞꝤ íǯ ÍǮ wɷ] ByPairs[0ᴕ](FlipLayers) Mutate[<any-smallcaps>](Layers(Empty+Greek))
+DeadKey_Map02c7= Mutate2Self
#
# division slash; <any-long-horizontal-stroke> just a micro-optimization; to access Ȧȧ; pinyin caron=030c-diaeresis
+DeadKey_Map0338= PrefixDocs[Stroke, cut-off, “other” phonetic {AND: Um, doubled letters, ŭ, dot above, double-overbar, but-not, fences}]
+DeadKey_Map0338= ByPairs[0338.0338]
+DeadKey_Map0338= Mutate[\\ʓꞩ,<pseudo-stroke>,<any-stroke-!horizontal>,<any-long-horizontal-stroke>,<any-diagonal>,
+DeadKey_Map0338= <any-solidus>,<any-addline>,0306--030c--00a8+030c+00a8,<any-curl>+<any-phonetized>|
+DeadKey_Map0338= <any-stroke>+<any-calculated>,<any-stroke>+<any-phonetized>,<any-umify>,
+DeadKey_Map0338= <any-umify>+<any-smallcaps>,<any-umify>+<any-rotunda>,<any-doubleletter>,00a8+00af--00a8,
+DeadKey_Map0338= <any-dot-above>--0300,<any-double-overbar>,<any-but-not>|
+DeadKey_Map0338= <any-phonetize2>,<any-phonetize3>--0301|<sub>+lc+dectrl|<sub>+dectrl]
+DeadKey_Map0338= ByPairs[ !‼ 0020∕ {⌈ }⌉ [⌊ ]⌋ ](Face(Latin)) ByPairs[ [⧘ ]⧙ {⧚ }⧛ |⦙ \⦚](FlipLayers(Latin))
+DeadKey_Map0338= Mutate2Self
# =============================================================
Named_DIA_Recipe__ring_dot= \\⋵ꞃ,\\⧔⧕[5],\Ẏọ,00b0|0323+<subst-Vietnamese>|||\⊛,0307,0323|0328+<subst-Macron>|<any-round>,<any-ring-!above>,<any-dot>,<any-dots>,<any-dotless>,<any-other-circle>,<any-circled>,<any-circled>+<reveal-substkey>,<any-adddot>,-<any-amplify>,<any-black>--<any-amplify>|<any-insular>,<any-equal>+<any-amplify>
# ring above 00b0: combine with dotabove 0307 dotbelow 0323
# (only WÊ miss dot below, AUY miss dot above: Ȧ is Livonian and phonetic; U is not precomposed; Ẉ - WHERE???) ; <any-jot> does not add anything useful now...
# Ẏ (useful WHERE???) obscures Vietnamese Ỵ, [any-dots does not add anything...]; ⋵ obscures ⦑
+DeadKey_Map00b0= PrefixDocs[Ring above, dot above/below/dotless, rounded {AND: circled, amplified, insular} — overflows to/from the column on right]
+DeadKey_Map00b0= Mutate[+\\⊙⊚[.],<NAMED-ring-dot>||||<circle>,<circle>+lc+dectrl] Mutate2Self
#
# cedilla 0327(00b8) and ogonek 0328, comma below 0326 (precombined only on SsTt); [ᵅ obscures ⦷; let it...; Ꞃꞃ obscures ṛ]
+DeadKey_Map00b8= PrefixDocs[Cedilla, ogonek, comma below {AND: visigothic/greekize/doubled-letters, whited mogrified} — overflows to/from the column on left]
+DeadKey_Map00b8= ByPairs[dƍ](FlipLayers(Latin))
+DeadKey_Map00b8= Mutate[0328,0327,0326|<any-comma>|<any-visigothic>|<any-greekize>,<any-doubleletter>||||<NAMED-ring-dot>||||
+DeadKey_Map00b8= <any-whiten>+<any-unsharpen>,<any-whiten>+<any-sharpen>,<any-whiten>+<any-round>,<circle>+dectrl]
+DeadKey_Map00b8= ByPairs[j℩](FlipLayers(Latin)) Mutate2Self
# <any-comma> picks up digits with comma which are above 0xffff - better make it last
#
# =============================================================
Named_DIA_Recipe__acute= \\˝ᶂ,\\Ǘ[u],\⋄,00b4|030b--00b4,00b4+031b--0300|||<pseudo-hook>,<any-retroflex-hook>--0301,<any-hook>+<any-calculated>,<any-fishhook>+<any-calculated>,<any-hook-!above>,<any-fishhook>,<pseudo-tail>,<any-leg>,<any-tail>,<pseudo-curl>,<any-apostrophe>,<any-tick>,<any-sharpen>,<any-addright>,<any-rightwards>,<any-right-arrow>|031b,<any-african>
# combine acute 00b4 and hooks/tails/curls and horn 031b (double acute=030b/2dd - protect against '' --> "; Ǘ is accessible otherwise, hides Ủ)
+DeadKey_Map00b4= PrefixDocs[Acute [+ on horn], sharpen, add on right {AND: hooks, tail/leg/curl, turned} — overflows to/from the column on right]
+DeadKey_Map00b4= Mutate[+<NAMED-acute>|<any-tailless>+<any-greekize>|<any-turned>] Mutate2Self
#
# Do not need 00b4+<subst-Vietnamese> ???
#
# double grave 030f, grave 0060/02cb/0300; append reversed list for acute (horn=031b)
# (tnvz have 3 type of hooks attached; the middle one [palatal] on nz are not reached ƫᶇᶌᶎ)
# Ǜ would get in the way of Vietnamese Ư (it could be available elsewhere, but there it is also penalized...)
+DeadKey_Map02cb= PrefixDocs[Grave, unsharpen, squared, add on left {AND: reversed} — overflows to/from the column on left]
+DeadKey_Map02cb= Mutate[\\Ǜ[u],\\⧆⌼,\〙〘⊠∺,02cb|030f--0300,02cb+031b--0301,031b--00a8|
+DeadKey_Map02cb= <any-unsharpen>,<any-calculated-squared>,<any-addleft>,<any-leftwards>,<any-left-arrow>||||
+DeadKey_Map02cb= <NAMED-acute>||||<any-reversed>]
+DeadKey_Map02cb= Mutate[<any-smallcaps>](Layers(Greek+Empty)) Mutate2Self
#|<any-reversed>
#
# =============================================================
# ; <any-overbar>--<any-manual-turnaround> to symmetrize ∈∋.
Named_DIA_Recipe__hat= \\ı≈˜〚〛₡⍩⍚ʕ,\⍊⍑⟘¡⩞▫◈⧈⟞ᴎ,02c6|||<pseudo-smallcaps>,<any-amplify>,<any-whiten>,<any-fake-white>,<any-fake-black>,<any-calculated-!operator-!squared-!circled-!african-!big-!large-!n-ary>,-<any-operator>,<any-fake-black>--<any-operator>,<any-loop>,<any-upturn>,<any-descender>,<any-underbar>,<any-overbar>--<any-manual-turnaround>,<any-paleo>,<any-fishhook>|<any-inverted>+<any-phonetized>,<any-dot>+<any-reversed>,uc+<any-dot>+<any-reversed>+lc
# Hat: (if both smallcaps and turned/etc defined in the same Unicode version, prefer smallcaps) [loop/upturn not visible]
+DeadKey_Map02c6= PrefixDocs[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]
+DeadKey_Map02c6= ByPairs[02c6.0302] Mutate[+<NAMED-hat>|||<any-script>|\\ªº,<super>+lc+dectrl|<super>+dectrl]
+DeadKey_Map02c6= ByPairs[lɮ](FlipLayers) Mutate2Self
#
# 0303 tilde
# (For the purpose of double accents, grave 0300 is considered equivalent to horn 031b or hat 02c6, ring 00b0 to breve 02d8/0306, with-stroke to horn)
+DeadKey_Map02dc= PrefixDocs[Tilde [+ subst-Vietnamese] — overflows to/from the column on left]
+DeadKey_Map02dc= Mutate[\\∼∽,\\≋[`],02dc|02dc+<subst-Vietnamese>,<any-tilde>,<any-equivalent>,<any-addtilde>|||
+DeadKey_Map02dc= \\∿∽[`],<NAMED-hat>|\\ªº,<super>+lc+dectrl|<super>+dectrl]
+DeadKey_Map02dc= Mutate2Self
# adding <any-turnaround> breaks more than it adds. \\∽[˜] does not work, since [**] acts BEFORE propagation to AltGr... ⍩ hurts ⩾
#
+TableSummaryAddHTML= The third Cyrillic map and 4 double-prefix-key Greek maps (3 polytonic, 1 Coptic+extra) are in the report for Cyrillic personality. (Slightly mutiliated by ъЪёЁ-mirroring.) In the popups for the column headers, the occasional=tertiary meanings of the prefix are in braces.
#
[faces/CyrillicPhonetic]
#
@layers=Russian-Base,Cyrillic-AltGr
#numLayers=2
BaseLayer=US-Base
LinkFace=Latin
#
MetaData_Index=1
#
faceDeadKeys= ́ ҃ £ µ
ExportDeadKeys= ́ ҃
#
# Both 03a6.03a6, 00a0.Ё are required with v0.10 ???!!! (Second deadifies double AltGr-SPACE, first: inverted Shift-Ё - probably needed due to ъЪёЁ-mirroring
# # Now defined via ByPairsPrefix: , 00b5.э, 00b5.ш, 00b5.щ, 00b5.ю
@faceDeadKeys2= 00a0.Ё
# 03a6.03a6
# => 0483 => 0483
@LayoutTable_add_double_prefix_keys= 00b5.э, 00b5.ш, 00b5.щ, 00b5.ю
#
# Pressing AltGr-| produces |; with the setting below, pressing SWITCH AltGr-| produces the expected ¦
# Otherwise: the keys on OEM_102 (the SECOND \|) (which produce \| when both on Cyrillic and Latin)
# would be prefered, and SWITCH AltGr-| would be resolved as "map | to Latin", and would produce |.
# 002c = ,
# Prefering both picks 2nd from the end (2nd of 3 for Ъ,ъ) - but picking the third makes layout nicer!
@char2key_prefer_first=\,|,.,002c,£,0301
@char2key_prefer_last=Ё,Ъ,ё,ъ,00a0
#
# (Ё would be mapped to Е if we do not specify it explicitly:)
+DeadKey_InvMap0000= ByPairs[0192.202f Ё.0483]
+DeadKey_InvMap0000= HTML_classes[C=cyr,may-guess,всыхѣєә,C1=cyr,special,ёъ,C0,need-learn,ючяшщэьжёъЁЪ,C,need-learn,ѓј]
+DeadKey_InvMap0000= HTML_classes[K,from_nw,ѓ,K,pure,ѓ]
# Chaining makes sense if Flip_AltGr_Key is on AltGr key (repeating will reach inverted faces of:)
@chainAltGr=0192,0301,00b5,0483
@Explicit_AltGr_Invert=0192,03a6
+PrefixChains=0192,0192,0338,¨,
+PrefixChains=00b5,00b5,£,03e2,␣
#
# µ: ↹⇤ 0009⇥
+DeadKey_Map00b5= PrefixDocs[Greek (AltGr=tonos/final/symbol etc), Superscript digits/symbols, “Green Keys” {AND: iconic control-key symbols}]
+DeadKey_Map00b5= Face(CGreekGreenMax) Face(SpecialKey_Images) ByPairs[0020␣ 0192⍽]
#
+DeadKey_Map0192= PrefixDocs[Latin, “Ripe Keys”, Subscript digits/symbols, dashes {AND: “other” iconic Control-Key symbols}]
+DeadKey_Map0192= Face(SpecialKey_Images2) ByPairs[0020.00a0 00b5.202f]
+DeadKey_Map0192= InheritPrefixKeys[Face(Latin)](Face(LatinRipeMax))
#
DeadKey_InvMap0192= ByPairs[0020.00a0 0192.2007 03a6.0483]
#
+DeadKey_Map0301_0= PrefixDocs[“Bizarre” Cyrillic, fractions] HTML_classes[k=cyr2,to_w,=g]
+DeadKey_Map0301_0= HTML_classes[C,need-learn,ѐѝӹӳӛӕќѹꙋꙟԛꙏҁ,C,may-guess,ҽҿѽүұӧғӻӑԋ]
+DeadKey_Map0301_0= Id(Cyrillic-II) FromTo[Digits,Denominators1](LinkFace) FromTo[Digits,Numerators1](FlipShift(US-Base))
# This ByPairs is tricky: we want to translate AltGr-Shift-Space; one might think one must use the mapping of non-AltGr layer???
DeadKey_Map0301_1= Id(Cyrillic-II-AltGr) FromTo[Digits,Denominators2](US-Base) FromTo[Digits,Numerators2](FromToFlipShift[US-Base,US-Base](US-Base)) ByPairs[$⅘](US-Base)
# 0483 is ҃ titlo, A66F is combining vzmet, 2df5 is combining ST, 2df8 is combining DJERV (which we do not have non-combining???)
#
+DeadKey_Map0483= PrefixDocs[Cyrillic titlo-forms, power-of-10 multipliers {AND: “exotic” Cyrillic}]
+DeadKey_Map0483= HTML_classes[k=cyr3,to_w,=,C,need-learn,ꚑꚉꙛꙅԑꙉꙕӊꚏꚅԙӿҝԟꚕꚓꙙꙝҍꙓ,C,may-guess,ԅԇꙁꙃҹⷵⷸᵸᴫ]
+DeadKey_Map0483= ByPairs[0020.2009 0192.2009 03a6.2009] Mutate[<pseudo-calculated-combining>](Face(CyrillicPhonetic))
+DeadKey_Map0483= Mutate[<pseudo-calculated-combining>](FlipShift(Layers(Cyrillic-II+Cyrillic-II-AltGr)))
+DeadKey_Map0483= FromTo[Digits,CyrPowersOfTen](Face(Latin)) ByPairs[-A66F S.2df5 D.2df8 Nᵸ Lᴫ](Face(Latin))
+DeadKey_Map0483= Layers(Cyrillic-ExtraExtra+Cyrillic-Extra) HTML_classes[C,special,ꙩꙫꙭꙮ]
DeadKey_InvMap0483= ByPairs[0192.2009]
#
+TableSummaryAddHTML= The satellite maps for Latin (available here on double-prefix-keys) are in the report for Latin personality. (In this personality, they are going to be slightly mutiliated by ъЪёЁ-mirroring.) In the popups for the column headers, the occasional=tertiary meanings of the prefix are in braces.
#
####[DEADKEYS/eurkey/1/1]
#####
####klc_filename=eurkey-std.klc
#####
##### Now is not needed at all
#####
[visual -> DEADKEYS/la_ru]
#
# Can be omitted now:
#
KEYNAME_DEAD
02c6 "MODIFIER LETTER CIRCUMFLEX ACCENT"
00b4 "ACUTE ACCENT"
00b1 "PLUS-MINUS SIGN"
00a8 "DIAERESIS"
00a9 "COPYRIGHT SIGN"
00b0 "DEGREE SIGN"
02cb "MODIFIER LETTER GRAVE ACCENT (Mandarin Chinese fourth tone)"
00af "MACRON"
02dc "SMALL TILDE"
02c7 "CARON (Mandarin Chinese third tone)"
03a9 "GREEK CAPITAL LETTER OMEGA"
[visual -> DEADKEYS/business]
DEADKEY 00A4
0041 20b3 // A -> ₳
0061 060b // a -> ؋
0042 0e3f // B -> ฿
0062 09f3 // b -> ৳
0043 00a2 // C -> ¢
// 0063 20a1 // c -> ₡
0063 00a9 // c -> ©
0044 20af // D -> ₯
0064 20ab // d -> ₫
0045 20a0 // E -> ₠
0065 20ac // e -> €
0046 20a3 // F -> ₣
0066 0192 // f -> ƒ
0047 20b2 // G -> ₲
0067 0af1 // g -> ૱
0048 20b4 // H -> ₴
0068 20b4 // h -> ₴
0049 fdfc // I -> ﷼
0069 17db // i -> ៛
004b 20ad // K -> ₭
006b 20ad // k -> ₭
004c 00a3 // L -> £
006c 20ba // l -> ₺ TURKISH LIRA SIGN [6.2]
004d 2133 // M -> ℳ
006d 20a5 // m -> ₥
004e 20a6 // N -> ₦
006e a838 // n -> ꠸ NORTH INDIC RUPEE MARK [5.2]
0050 20b1 // P -> ₱
0070 2117 // p -> ℗
0052 20b9 // R -> ₹
0072 00ae // r -> ®
0053 20aa // S -> ₪
0073 2120 // s -> ℠
0054 20b8 // T -> ₸
0074 2122 // t -> ™
0057 20a9 // W -> ₩
0077 20a9 // w -> ₩
0059 00a5 // Y -> ¥
0079 5143 // y -> 元
00a0 00a4 // -> ¤
00a4 00a4 // ¤ -> ¤
//0024 00a4 // $ -> ¤
0020 00a4 // -> ¤
DEADKEY 00A3
// 0043 20a2 // C -> ₢ (AltGr-inv)
0063 20b5 // c -> ₵ (AltGr-inv)
// ®™℗℠
0043 20a1 // C -> ₡
0042 09f2 // B -> ৲ (AltGr-inv) BENGALI RUPEE MARK Í
0062 20a2 // b -> ₢ (AltGr-inv) í
0044 058F // D -> ֏ (AltGr-inv) ARMENIAN DRAM SIGN Ð
0064 058F // d -> ֏ (AltGr-inv) ARMENIAN DRAM SIGN ð
0047 09fB // G -> ৾ (AltGr-inv) BENGALI GANDA MARK É
0067 09fB // g -> ৾ (AltGr-inv) BENGALI GANDA MARK é
0069 20b6 // i -> ₶ (AltGr-inv) LIVRE TOURNOIS SIGN [5.2] ij
0049 20b6 // I -> ₶ (AltGr-inv) LIVRE TOURNOIS SIGN [5.2] IJ
004c 10da // L -> ლ GEORGIAN LETTER LAS [Georgian; Georgian; 1.1] Ø // Wikipedia article on Lari does not include ლ
// 006c 20b6 // l -> ₶ (AltGr-inv) LIVRE TOURNOIS SIGN [5.2]
006c 20a4 // l -> ₤ (AltGr-inv) ø
004e a837 // N -> ꠷ (AltGr-inv) NORTH INDIC PLACEHOLDER MARK Ñ
006e a837 // n -> ꠷ (AltGr-inv) NORTH INDIC PLACEHOLDER MARK ñ
0050 20a7 // P -> ₧ (AltGr-inv) [obsolete Spanish] œ
0070 20b0 // p -> ₰
0072 20a8 // r -> ₨
// 0052 20a2 // R -> ₢ (AltGr-inv) ý
0052 211b // R -> ℛ (AltGr-inv) SCRIPT CAPITAL R Ý
// 0053 0024 // S -> $ (AltGr-inv) §
0053 0024 // S -> $ (AltGr-inv) ß
0073 20b7 // s -> ₷ SPESMILO SIGN [5.2]
// 0054 0bf9 // T -> ௹ (AltGr-inv) Þ
0074 20ae // t -> ₮
0054 0bf9 // T -> ௹ (AltGr-inv) þ
// Put CJK yens to AltGr-y/Y [Order on Wikipedia: yen (円/圓), yuan (元/圆)]
0059 5713 // Y -> 圓 (AltGr-inv) CJK yen-2 Ÿ
0079 5186 // y -> 円 (AltGr-inv) CJK yen-1 ÿ
// Put (CJK) yuans to AltGr-u/U [Order on Wikipedia: yen (円/圓), yuan (元/圆)]
0055 5706 // U -> 圆 yuan-2
0075 5143 // u -> 元 yuan-1
[visual -> KBD/Digits]
#
# For fractions, we look for fractions with minimal denominator/numerator which contain the given digit in numerator/denominator. We take the first one and the second one from the list.
# Note that ⅗, ⅝, ⅞ do not appear in the lists via denominators; and ⅓, ¼, ⅕, ⅙, ⅛ do not appear in the lists via numerators.
# All Unicoded fractions appear in these lists. So each one can be entered via a DeadKeyMap.
#
#
visual_rowcount=12
@visual_per_row_counts=1,1,1,2,1,1,1,1,1,1,1,1
visual_prefixes= <* *<> < +
in_key_separator=/
prefix_repeat=3
#
# Note that we no longer use the tables for super/subscript, and generate them operatically
@layer_names=Zodiak,Numerators2,Numerators1,Digits,OverDigits,Denominators1,Denominators2,Super,SuperExtraLetters,Sub,SubExtraLetters,CyrPowersOfTen,cp437-Start
# ↉ 0/3 ⅐ 1/7 ⅑ 1/9
♈ ♉ ♊ ♋ ♌ ♍ ♎ ♏ ♐ ♑ -- ♒ ♓ -- -- -- -- -- --
<<< ½ ⅖ ⅗ -- ⅝ -- -- -- -- -- -- -- -- -- -- -- -- -- --
*** ⅟ ⅔ ¾ ⅘ ⅚ -- ⅞ -- -- ↉ -- -- -- -- -- -- -- -- --
1/! 2/@ 3/# 4/$ 5/% 6/^ 7/& 8/* 9/( 0/) -- -- -- -- -- -- -- -- --
*** ⅒ ½ ⅓ ¼ ⅕ ⅙ ⅐ ⅛ ⅑ ⅒ -- -- -- -- -- -- -- -- --
<<< -- -- ⅔ ¾ ⅖ ⅚ -- ⅜ -- -- -- -- -- -- -- -- -- -- --
>>> ¹ ² ³ ⁴ ⁵ ⁶ ⁷ ⁸ ⁹ ⁰ ⁱ ⁺ ⁻ ⁼ ⁽ ⁾ ⁿ
-- -- -- -- -- -- -- -- -- -- i -- -- + - = ( ) n
<<< ₁ ₂ ₃ ₄ ₅ ₆ ₇ ₈ ₉ ₀ ₊ ₋ ₌ ₍ ₎ -- -- --
-- -- -- -- -- -- -- -- -- -- + - = ( ) ə -- -- --
+++ -- -- ҂ ⃝ ҈ ҉ ꙰ ꙱ ꙲ -- -- -- -- -- -- -- -- -- --
☺ ☻ ♥ ♦ ♣ ♠ • ◘ ○ ◙ -- -- -- -- -- -- -- -- --
#
#
# Most of the above are very optional now: Super and Sup are obsoleted by Mutate[<super>] etc
# combined with Select[] clauses. Register mapping is not done yet (2011) but can be easily done.
#
[Diacritics_Limits]
# For debugging purposes only, to check correct reading of tables below (0th entry is for 0..3 combined; 1 for 1..3, 2: 2,3; 4,5,6: combined)
@ALL=5,4,0,0,10,10,10,10
# 0:tilde, 1:grave,quote, 2: quote
[Diacritics]
# Surrogate + 8bit + Modifiers, Modifiers below-or-opposite, Vertical (or Comma-like or Doubled or Dotlike or Rotated or letter-like) Modifiers,
# Prime-like or Centered modifiers, Combining, Combining below-or-opposite, Vertical/plus-like/arrows and dotlike Combining, Combining for symbols
/APOSTROPHE= '´ʼʾˀˊ΄/ˏˌ/ˈˌˡ/ʹˑ/ ́ ̉ ̛ ̷ ̸ ́ ͗ ᷎ ᷄ ᷇ ᷁/ ̗ ̩ ̦ ̹ ͅ / ̍ ̓ ̓ ̕ ̩ / ⃬ ⃐ ⃫ ⃬
/QUOTATION_MARK= "¨˝˸ː΅/˶˵/ˮ/ʺ/ ̈ ̋ ̏ ̈́ ᷉ ᷈ ゙ / ̤ ͈ / ̎ ͛ ͈ / ⃛ ⃜ ⃨
/GRAVE_ACCENT= `ˋʿˁˤ/ˎ/ʻʽ/˴˵/ ̀ ̀ ͑ ᷆ ᷅ ᷀ / ̖ ̜ ᷂ / ̒ ̔ / ⃑ ⃭ ⃠ ⃥
# Stopgap measure to preserve many flavors of grave:
/DBL_GRAVE_ACCENT= `ˋʿˁˤ˵/ˎ/ʻʽ/˴/ ̀ ̀ ͑ ᷆ ᷅ ᷀ / ̖ ̜ ᷂ / ̒ ̔ / ⃑ ⃭ ⃠ ⃥
/CIRCUMFLEX_ACCENT= ^ˆ˄˟/˰/˪˫ꜛʳʴʵʶˣ// ̂ ̑ ͒ ͡ ̽ ͆ ᷍ / ̭ ̯ ᷼ ͓ ̪ ̼ ͎ ᷊ / ̘ ̙ ͉ ̘ ͉ / ⃟ ⃤ ⃧ ⃩ ⃰ ⃟
/BREVE= ˘ˇ˅/ˬ˯˽˾/˱˲˿ˠʸꜜ/˂˃/ ̆ ̌ ̐ ͝ ᷓ ᷾ ͐ ᷌ ᷋ ᷃/ ̮ ̬ ͜ ̺ ̫ ͔ ͕ ͖ ᷿ / ͍ ͢ / ⃞ ⃢ ⃣
/DEGREE_SIGN= °˚˙/˳/˙ˠʰʱʲˢʷᵊᶣ/˓˒/ ̊ ᷒ ゚ / ̣ ̥ ̤ ̻ ͙ ͚ / ̇ ͘ ̣ ̤ ͘ / ⃝ ⃘
/TILDE= ~ ˜/˷/ⸯꙿ/˞/ ̃ ̴ ͂ ͊ ͋ ͌ ͠ ᷑ / ̰ ̧ ̨ ̡ ̢ ᷏ ᷐ ᷽ ᷽ / ̾ ̾ / ⃗ ⃖ ⃯ ⃮ ⃕ ⃔ ⃙ ⃚ ⃡
/CEDILLA= ¸˛ͺ/˷/ⸯꙿ/˞/ ̧ ̨ ̡ ̢ ̰ ᷏ ᷐ ᷽ ᷽ / ᷎ ̃ ̴ ͂ ͊ ͋ ͌ ͠ ᷑ / ̾ ̾ / ⃗ ⃖ ⃯ ⃮ ⃕ ⃔ ⃙ ⃚ ⃡
/MACRON= ¯ˉ˹˺/ˍ˻˼‗/˭/˔˕˖˗/ ̄ ̅ ̵ ̶ ̿ ͞ ̚ / ̱ ̲ ̳ ͇ ͟ ̠ / ͍ ̝ ̞ ̟ ̠ ̘ ̙ ͉ / ⃒ ⃓ ⃦ ⃪ ⃡ ⃡ ⃗ ⃖ ⃯ ⃮
/SLASH= ⁄÷∕ / ˈˌ / / / ̸ ̷ ̶ ̵ / / ⃒ ⃓ / ̸ ̷ ⃒ ⃓ ̶ ̵
#
# These are from "main blocks" of the modifiers and combining; plus Greek standalone diacritics: ͺ΄΅
# One of ˠ is obscured by vertical line with middle dot... The Macron-\ 29F7 obscures ˭.
# Circled \ and | with middle dot obscure ˙ˠ. ˙ duplicated (forward) to make accessible. Also: ̅
# ̾ ̘ ̙ ͘ ͉ ͉ ᷽ combining chars are also duplicated. Also: ⃡ ⃗ ⃖ ⃯ ⃮ ⃬ ⃟ (for symbols).
# ʰʱʲˡˢʷ - from IPA. The rest (and ʳʴʵʶʸ) are v1.1 letter modifiers. (ˠ is in front to unobscure the rest.)
#
# Combining for symbols: arrows and round arrows -> ~; rectangular around: to ˘ .
#`´¨˜ˆˇ°¯
[face_shortcuts]
l=Latin
c=CyrillicPhonetic