UI-KeyboardLayout
view release on metacpan or search on metacpan
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.
examples/EurKey++.kbdd view on Meta::CPAN
# Default map (not used now???):
DeadKey_Map= Mutate Mutate2Self
#
# diaeresis 00a8: combine with cedilla 0327(00b8) and ogonek 0328, comma below 0326 (precombined only on SsTt)
# ogonek is reachable on AltGr layer...)
# cedilla: only E H unreachable on front layer except for Ȩȩ Ee - and Hh would be unreachable with AltGr too because of Ç - which is typable as ¨Ã)
# (and Ȩȩ is not used in "known" languages - http://fr.wikipedia.org/wiki/E_caudata - alternative writing of æ
# - moved to Copyright face)
# Ạgets in the way of È and Å¢! (Used in transliteration of Arabic and UPA; moved to copyright face - on AltGr-t...)
# Ç would get in the way of Ḩ (used WHERE?) - available elsewhere - but there it is also penalized... ; ,<any-symbol-diaeresis> does not add anything... visigothic conflicts with greekized Éâ±
DeadKey_Map00a8= Mutate[\\áº,\\Ç[h],\\â
[;],00a8|0309+<subst-Vietnamese>,<reveal-greenkey>|<any-diaeresized>,0328,0327,0326|<any-comma>,<any-calculated-operator>|<any-overlay>+<any-addvline>,<any-overlay>+<any-addhline>,<any-overlay>+<any-addline>...
# <any-comma> picks up digits with comma which are above 0xffff - better make it last
#
# 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
#DeadKey_Map00af= ByPairs[4â 0â âÉ Â¦00ad !â ¹Ç] Mutate[\\â©,00af|<pseudo-stroke>,<any-bar>,<any-stroke>,<any-dash>,<any-overbar>,<any-topbar>,<any-diagonal>,<any-strikethrough>,<any-over-equal>,<any-solidus>,<any-equal>,<any-line>,<any-q...
DeadKey_Map00af= ByPairs[âÉ Â¹Ç] Mutate[\\â©,00af|<pseudo-stroke>,<any-bar>,<any-stroke>,<any-dash>,<any-overbar>,<any-topbar>,<any-diagonal>,<any-strikethrough>,<any-over-equal>,<any-solidus>,<any-equal>,<any-line>,<any-quill>,<any-base>,<any-u...
#
# ring above 00b0: combine with dotabove 307 dotbelow 323
# (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...] ByPairs[ââ]
examples/izKeys.kbdd view on Meta::CPAN
# ĸ: â¹â¤ 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...
lib/UI/KeyboardLayout.pm view on Meta::CPAN
ftp://www.x.org/pub/xorg/X11R7.5/doc/input/XKB-Enhancing.html (what is caps:shift* ???)
https://wiki.gentoo.org/wiki/Keyboard_layout_switching
http://webkeys.platonix.co.il/about/use_xkb/#caps-key-types
https://apt-browse.org/browse/debian/wheezy/main/all/xkb-data/2.5.1-3/file/usr/share/X11/xkb/symbols/keypad
http://misc.openbsd.narkive.com/UK2Xlptl/shift-backspace-in-x
NoSymbol (do not change; do not make array longer; if alphabetic, may be extended to width 2)
vs VoidSymbol (undefine; may actually extend the array. Undocumented in xkbproto??? )
compare with http://kotoistus.tksoft.com/linux/void_no_symbol-en.html
overlay1=<KO7> overlay2=<KO7> How to switch to overlay: see compat/keypad
RadioGroup ???
Problems on X11:
http://www.x.org/releases/X11R7.7/doc/kbproto/xkbproto.html (definition of XKB protocol)
http://www.x.org/releases/current/doc/kbproto/xkbproto.html
http://web.archive.org/web/20050306001520/http://pascal.tsu.ru/en/xkb/
Some features are removed in libxkbcommon, which is used by many toolkits now:
( run in 0.506 second using v1.01-cache-2.11-cpan-65fba6d93b7 )