UI-KeyboardLayout

 view release on metacpan or  search on metacpan

examples/izKeys.kbdd  view on Meta::CPAN

@layers=Id(US_Base_Compose)	Id(Add_Base),	Id(USLatin-AltGr)	Id(Add_AltGr)
#@layers=US-Base,	Id(USLatin-AltGr)	Id(Add_AltGr)
BaseLayer=US-Base
#LinkFace=CyrillicPhonetic
#
MetaData_Index=0
faceDeadKeys= 	´  ˋ |||  ˆ  ˜ |||  ° ¸ |||  ˇ  ¯  0338  ˵ ¨  £   Ɯ  ĸ
ExportDeadKeys=	´  ˋ  ˆ  ˜  ° ¸  ˇ  ¯  0338  ¨ ˵
#
@extra_report_DeadChar=	012e, 0297
#					# Now defined via ByPairsPrefix
#@faceDeadKeys2= 0138\,	0138[,	0138], 0138`
#							002c = ,
@char2key_prefer_first=\,|,.,002c,£,06ff
@char2key_prefer_last=00a0
#
# Misnomer: not AltGr, but Alternative! (~∼, *∗, .⋅ ) perp=⟂' ¹⟂ is good only if ¹ is on 1! key…; 
# |∣ does not hurt anything (and does not help much); 06ff is compose (on AltGr-:)
@AlternCharSubstitutions=|∣,0338∕,06ff÷
# ¡≀ - better on Greenkeys; #≠ - conflicts too much; ijü - was good when ij was on k, not i; ó∘ - what for???
@AlternCharSubstitutionLayers=Blue,Blue-AltGr
#
#  This gives more collisions:
#@AlternCharSubstitutions=ijü,^∧,&∩,*×,#≠,6∨,7∪,|∣,!⊥,1⊤,¡≀,¹⟂,2∫,@∮,ª∭,²‖,²∥,3⊳,#⊲,º△,³▽,4□,$◇,€⊢,¥⊣
#
@Import_Prefix_Keys=	0301:CyrillicPhonetic,0297,	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,k=latinAlt,from_w high,p]
+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=0138,0192,012e,0297,0483
+PrefixChains=0192,0192,012e,0297,0483,⍽
+PrefixChains=0138,0138,019c,£,03e2,␣
+PrefixChains=0297,0297,0483,0483
#
# 017F,0192,0297 - 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: 0297.2007 00a0.202F)
+DeadKey_Map0192=	PrefixDocs[Cyrillic, “Ripe Keys”, Subscript digits/symbols, dashes]
+DeadKey_Map0192=	InheritPrefixKeys[Face(CyrillicPhonetic)](Face(CyrillicRipeMax))
+DeadKey_Map0192=	Face(Add_Ripe1)	Shortcut(ModArrows)	ByPairsFlat[˱⪋ ˲⪌ ⋮20e3 …◌]	ByPairsInvFlat[˱⪑ ˲⪒]
+DeadKey_Map0192=	HTML_classes[C=cyr,may-guess,всыхѣєә,C0,need-learn,ючяшщэьжёъЁЪ]	X11symbol[dead_lowline]
# Layers(Russian+Russian-AltGr)
#					(9=Thin, a=Hair, 7=figure(noBreak), 8=Punctuation spaces)
+DeadKey_AddMap0297=	PrefixDocs[“Bizarre” Cyrillic, fractions {AND: “other” iconic Control-Key symbols}]	
+DeadKey_AddMap0297=	Face(Add_Ripe3)	ByPairsPrefixFlat[0297.0483]
#				Default map (not used now???):
DeadKey_Map=		Mutate	Mutate2Self	Shortcut(ModArrows)
#
#				ĸ: ↹⇤ 0009⇥
+DeadKey_Map0138=	PrefixDocs[Greek (AltGr=tonos/final/symbol etc), Superscript digits/symbols, “Green Keys”]
+DeadKey_Map0138=	  Face(LGreekGreenMax)	Face(Add_Green1)  Face(Add_Fkeys_DashesEtc)	Shortcut(ModArrows)  X11symbol[dead_greek]
+DeadKey_Map0138=	  ByPairsFlat[˱⩽ ˲⩾ ⋮⪕ …⪖]	ByPairsInvFlat[˱⫹ ˲⫺ ⋮⪛ …⪜]
+DeadKey_Map0138=	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=		ByPairs[,⪯ ¸⪵ .⪰ °⪶](Face(Latin))	
+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	Shortcut(ModArrows)	ByPairsFlat[˱≶ ˲≷ ⋮⪋ …⪌]	ByPairsInvFlat[˱⋚ ˲⋛ ⋮⪓ …⪔]
#
# 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♣ ,⫇ ¸⫉ .⫈ °⫊](Face(Latin))  ByPairs[p♥ P♦ "0308](FlipLayers(Latin))	Mutate2Self	Shortcut(ModArrows)
+DeadKey_Map02f5=	    ByPairsFlat[˱⪽ ˲⪾ ⋮⫓ …⫔]	ByPairsInvFlat[˱⫃ ˲⫄ ⋮⫕ …⫖]
#
#  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[”ɚ ¹ǃ <⪕ ≤⪛ ,⩽ >⪖ ≥⪜ .⩾](Face(Latin))
+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-slanted>|<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ȏ @ƻ](Face(Latin))
+DeadKey_Map00af=  ShiftFromTo[5,˥](SelectRX[[5-9]])  Mutate2Self  Shortcut(ModArrows) ByPairsFlat[˱⪪ ˲⪫ ⋮⪬ …⪭] ByPairsInvFlat[˱⪬ ˲⪭]
# 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 <⪹ ≤≾ >⪺ ≥≿ .⋩](Face(Latin))
+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ɷ ,⋨ ¸⪷ °⪸](Face(Latin))	ByPairs[0ᴕ](FlipLayers(Latin))
+DeadKey_Map02c7=		Mutate[<any-smallcaps>](Layers(Empty+Greek))	Mutate2Self	Shortcut(ModArrows)
+DeadKey_Map02c7=		ByPairsFlat[˱⪦ ˲⪧ ⋮⪨ …⪩]	ByPairsInvFlat[˱⪨ ˲⪩]
#
# 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|<any-smallcaps>+dectrl]
+DeadKey_Map0338=		ByPairs[ !‼ 0020∕ {⌈ }⌉ [⌊ ]⌋ &⫛ 7⧢ ](Face(Latin))	ByPairs[ [⧘ ]⧙ {⧚ }⧛ |⦙ \⦚](FlipLayers(Latin))	
+DeadKey_Map0338=		Mutate2Self	Shortcut(ModArrows)	ByPairsFlat[˱⪓ ˲⪔ ⋮⫁ …⫂]	ByPairsInvFlat[˱⫁ ˲⫂]
#   =============================================================
+Named_DIA_Recipe__ring_dot=	\\⋵ꞃ,\\⧔⧕[5],\Ẏọ,00b0|0323+<subst-Vietnamese>|||
+Named_DIA_Recipe__ring_dot=		\⊛,!\⊆⊇,0307,0323|0328+<subst-Macron>|
+Named_DIA_Recipe__ring_dot=		<any-round>,<any-ring-!above>,<any-dot>,<any-dots>,<any-dotless>,<any-other-circle>,
+Named_DIA_Recipe__ring_dot=			<any-circled>,<any-adddot>,
+Named_DIA_Recipe__ring_dot=			<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=	ByPairs[_∸](Face(Latin))
+DeadKey_Map00b0=	Mutate[+\\⊙⊚[.],<NAMED-ring-dot>||||<circle>,<circle>+lc+dectrl] Mutate2Self	Shortcut(ModArrows)



( run in 1.010 second using v1.01-cache-2.11-cpan-e1769b4cff6 )