UI-KeyboardLayout
view release on metacpan or search on metacpan
Fix shortcoming of the Greek section: dialytika-versions of ι and Ï
on ,. , drahma ⯠and question mark ; on /?, micro sign on AltGr-M,
and tonos, ypogegrammeni on `_.
Add tonos-versions of vowels, symbol variants, and final sigma
on AltGr-letters.
(?!!! But no tonos-dialytika with Diacritics[+...]???? - it may work only on the given face, not elsewhere...)
Diacritic tables: all the non-char modifiers up to v4.0 are accessible, so are all IPA letter-modifiers.
Vulgar fractions: 1/7 1/9 and 0/3 were missing.
Scancodes for unusual keys were completely wrong (now taken from keyboard type 4 of kbd.h).
0.03 Remove accumulated crud from EurKey++.kbdd.
Remove manyHEX() wrongly used.
Make Substitutions case-aware: only one case should be used.
New face configuration AltGrCharSubstitutions.
Better sorting of variants of diacritics: take into account the block (the later in the list, the more bizarre).
Auto-generate linked-in AltGr-inverted maps; handles prefix keys; we did cycle elimination (but not now,
when we do not expect this to coexist with manual AltGr-inversion - cycle elimination is too much
work in presence of InvMap).
Support for repeated altgr_flip_key --> inversion of other linked faces.
Generation of modifier keys - skip the AltGr-inversion key.
When emitting coverage, do not count deadkeys "by themselves". (Not implemented for repeated dead keys.)
Include the files with repertoirs of certain "access Unicode chars" tools/standards; in examples/charlists.
Extra sorting order for results of <any-FOO> - take into account the number of words.
+ARRAY_NAME=val was not allowed in a visual section.
Overrides are possible for AltGr-inverted prefix keymaps (including chained deadkeys when inverted key is not auto).
Start documenting format of .kbdd file; all but the (most important) personality-sections are documented.
EurKey++:
Enable pinyin input of tonal variants of ü by accents on a green key AltGr-k (normally enters ij).
New sorting required some massage of binding for ` and ´ to preserve the Vietnamese semantic.
New sorting: we lost N with long leg, and exchanged I-dot-below with I-dot-above.
(Now, of Vietnamese, only o gets dot below without AltGr.)
Shift-AltGr-SPACE after a prefix diacritics key does not generate a 4th modifier letter.
Shift-AltGr-SPACE after a prefix diacritics key gives AltGr-inverted map.
Allow ring/dot prefix to remove dots from i and j; remove ı from "mutiliated" lists, so that ᴠis available.
AltGr-inverted maps are aware of diacritics (so can be used before and/or after diacritics).
Massive simplification of .kbdd file - remove manual AltGr-inversion crud.
0.04 Block output of control chars in prefix keymaps; fix output of \x03.
Make all Face-related base-operators in the satellite face processor return the initial layers
(and not massaged layers). Makes LinkFace useful again in DeadKey descriptor.
Rename layerDeadKeys2 to faceDeadKeys2.
Replace layerDeadKeys by faceDeadKeys.
Start of redoing the internal representation of a face: layers may contain [$deadkey, $face, $noexport] instead of $deadkey.
(do not redo prelink_layers, since it operates on non-instrumented layers). Deadkeys inherited
from LinkFace are recognized now. One would need coverage2 section soon...
Add a compact summary of characters available on principal prefix keys (of repeated deadkeys, only inherited are marked).
Recognized ESH EZH ENG and SCHWA as phonetized variants of s z n 0 (no majuscule SCHWA, as in Azeri).
Add curses to LIMITATIONS section docs.
Table of chars of bépo was missing many base characters.
EurKey++:
Clean up .kbdd file a bit.
Add phonetized variants on macron prefix key (add ESH EZH and SCHWA, but removes â so add schwa manually on AltGr).
(To support this, add rules introducing É and v with right hook).
Add hookish+mutiliated rules to the `â´ pair. (Adds only Ê® - not enough to add Ê - is it 3 modifiers???)
Now eng's are on macron+etc+phonetized (and n with long right leg appear on `).
Add solidus (overlays) to macron.
Exchange diacritic signs for combining ´ ` in Cyrillic (on double AltGr-' and on AltGr-' with ';
now Vietnamese versions (which got into Wikipedia ?!) are
on Shift-ed keys, and "normal" acute and grave are on unshifted.
Add Azeri ÆÉ to Ã=AltGr-e, and ditto mark ã to " on Copyright face (AltGr-minus).
Add promille â° on % on ring/dots face, primes â²,â³ on '," on Math (AltGr-M) and â¡ on â =AltGr-" on macron/bar face.
Latin's diacritics prefix keys are available from Cyrillic after Shift-Space.
0.05 Infrastructure to allow multiple decompositions extracted from the Unicode database.
(Currently only changes the order of (dotless) j with stroke.)
Add SLANTED, APPROXIMATELY, ASYMPTOTICALLY, ALMOST to mutiliated.
Equate EQUAL TO to EQUALS in unicode names.
Treatment of match-(),[] in satellite face processor was completely busted.
Significant rework of satellite face processor to change the order of loops:
now the loop in layers and shift-state are internal. (So components can operate on a "key as a whole").
Via Diacritic2Self(), AltGr-variants of /?, -_, \| access 3 groups of combining characters; AltGr of digits (with or
without Shift) access "missed" combining characters (digits are extended on the left by ` and on the right by +[],.).
Add +-like and arrow combining characters to the last category.
New mutators latinize and greekize for greek letters put into "LATIN" script (greekize: F |--> PHI etc).
New category "Combining for symbols" for diacritics (accessible after diacritic key on AltGr-;: and on [{]}'" ).
Allow AltGrCharSubstitutions to be a multimap.
Allow adding "OPERATOR" when constructing compositions (TILDE, ASTERISK).
Allow stripping OPERATOR when considering explicit decompositions (NOT TILDE).4
RAMS HORN is a phonetization of uc V (we ignore that it is "SMALL").
phonetize is now done via a hash map as 0 É s Ê z Ê j É v â±± n Å V ɤ ! Ç ? Ê Â¿ Ê .
New mogrify (manual): addline 0 â
( â ) â
sharpen < ⺠> â» { â° } â± ( ⨠) â© ??? â©âª
unsharpen < â > â ( â® ) â¯
amplify < ⪠> ⫠⪠â â« â Ë â§
round < â > â
whiten [ ⦠] â§ ( ⬠) â - now many many more...
Document gotchas with ABOVE SINGLE-LINE NOT EQUAL TO etc.
Recognize SQUARED as mutiliation (does not make sense for CURLY).
Sorting combined keys by Age we were not splitting key/shift-key pairs which were not uc/lc.
Use information from loaded UCD to output combining chars in a readable form.
Avoid infinite recursion on cutting away SIGN; allows for new calculated-sign decomposition (MINUS SIGN --> HYPHEN-MINUS).
Decompositions to MINUS SIGN are duplicated to HYPHEN-MINUS.
EurKey++:
All combining characters (except for invisible CGJ, musical [BALINESE and high plane], half-diacritics,
combining raised letters, NKO, PHAISTOS, ETHIOPIC, TAI, COPTIC, BAMUM, DEVANAGARI) are available
on AltGr- /?\|-_ `~ (shift-)digits =+ [{ ]} ,< .> after
the corresponding prefix key (one with the visually most similar "principal action").
Lunation was missing on Greek-in-Cyrillic.
Add latinize as one of the functions of AltGr on Greek (active only on γÎδ).
Add latinized-Greek to diaeresis satellite face (all present, with alpha/Alpha sliding to zZ).
Misplaced - after adding math, MANY!
Start to acquire some math symbols via ` = unsharpen, ´ = sharpen, ¯ = addline, ° = round, Ë = amplify/whiten
¨ - reveals greenkey/converts to an operator/neg-addline/amplify+round/round+round, Ë - quasisynon,
(omit ~ = turnaround - breaks more than it adds...)
(The intent is to cover as large part of 22** and 27[CDE]* and 2980â2aff ranges as possible.)
underbar and stem were missing as action of ¯.
0.06 New mutator adddot.
â was put on addright-\, not addright-/.
Add neo2base, neo2ext1 to example character repertoirs (the primary face of Neo2).
perl -C31 -wne "print $1 if /\x{2502}(.*?)\x{2502}/" <neo20.txt >oox
perl -C31 -wne "$s{$_}++ for split //; END{print for sort keys %s}" oox >neo2base
grep DEADTRANS kbdneo2.c | perl -wlne "warn $_ unless /DEADTRANS\s*\(\s*([\w]+|L'[^'\s]+')\s*,\s*([\w]+|L'[^'\s]+')\s*,\s*([\w]+|L'[^'\s]+')\s*,\s*0x000([01])\s*\)/; next if $4; print $3" | sort -u >o
perl -C31 -wne "next unless /^0x([\da-f]+)$/i; print chr hex $1" o >neo2ext1
(The file o contains 81 other [symbolic] names which should be pretty common [in Latin-N?].)
( run in 0.683 second using v1.01-cache-2.11-cpan-e1769b4cff6 )