UI-KeyboardLayout
view release on metacpan or search on metacpan
542543544545546547548549550551552553554555556557558559560561562Fully implement polytonic Greek vowels; full Coptic alphabet support: the prefix
keys
working AFTER greek prefix:
[ and ] prefix
keys
for
the corresponding aspiration;
each
vowels is entered via 4
keys
on the
vowel
's key'
s principal diagonal as: digit row: circumflex; QWERTY row: acute, ASDF row: plain,
ZXCV row: grave; add AltGr
for
diaresis or iotation. Ï is entered on `.
\ prefix key: the same without aspiration (but
"plain without iotation"
is replaced by vrachy=breve, and the
next
neighbour ASDF-row letter gives macron); all letters are
"upgraded"
, so acute is actually oxia (not tonos),
υ-diaeresis-acute gives ϓ (on AltGr-u), and epsilon/rho are replaced by the corresponding symbols ϵ ϼ (on d
and `; rho is stroked).
(
"Standalone diacritics"
are put on the place of non-existing omicron
with
dialytika: 9ol.-column
with
AltGr
[ heuristic: on AltGr-. ];
add Shift to get variants
with
dialytika. As exceptions, coronis is entered as psili
with
shift
(on
] AltGr-L), and the
"no-accents position"
\ AltGr-l gives YPOGEGRAMMENI/PROSGEGRAMMENI (without/
with
Shift),
while
\ 3 and \
# give lower/upper number signs. Standalone tonos is on \ AltGr-3; shift to add dialytika.)
` prefix key: Coptic analogues of greek letters, and j/J --> á¸aná¸ia, v/V --> fei, hyphen --> double-hyphen;
the letters without Greek analogue are on AltGr-letter where the
"letter"
is the first letter of the
name on Wikipedia page (or the first letter of Unicode name
for
DEI and KHEI [ti and xai]).
Additional
"random"
AltGr-letters: Bactrian sho on b/B; ½-H heta Ͱ/ͱ on i; yot ϳ on j; Pamphylian digamma Ͷ/ͷ
on g; san Ϻ/ϻ on m, ϒ on Y, lunate sigmas ϲ/Ϲ on l, reversed lunate sigmas ͻ/Ͻ on o, reversed epsilon ϶
on e, kai's Ï/Ï— on
q, (reversed) dotted lunate sigmas ͽ/Ͽ ͼ/Ͼ on r and u,
and archaic sampi Ͳ/ͳ on n.
On Greek face: add ϔ as an AltGr-variant of Ϋ (this completes the coverage of greek ranges).
On 0483 Cyrillic: add Modifier-ᵸ and smallcaps ᴫ on Shifted positions;
examples/klc2c.pl view on Meta::CPAN
103710381039104010411042104310441045104610471048104910501051105210531054105510561057@@
@join_sublayouts
@@@ { NULL, 0, 0 },
};
/***************************************************************************\
* aKeyNames[], aKeyNamesExt[], aKeyNamesDead[] - used to
map
a Scancode to Key Name via GetKeyNameText(); null-terminated.
*
* If the name is not found in the first two tables,
* then it is deduced from the character/deadkey this key produces in the unshifted position (as MapVirtualKeyEx()).
* In particular, the special-case in the latter function covers VK_A to VK_Z!
*
* As a corollary, the third table needs only to contain dead
keys
in the unshifted positions, and only
* at positions not present in the first two tables.
\***************************************************************************/
@@
@KEYNAME
@@@
@@
@KEYNAME_EXT
@@@
@@
@KEYNAME_DEAD
@@@
@@
@deadkeys
@@@
@@
@ligatures
@@@
PKBDTABLES KbdLayerDescriptor(VOID)
lib/UI/KeyboardLayout.pm view on Meta::CPAN
101561015710158101591016010161101621016310164101651016610167101681016910170101711017210173101741017510176LAYOUT_KEYS
DO_LIGA
DEADKEYS
// KEYNAME KEYNAME_EXT KEYNAME_DEAD - used to
map
a Scancode to Key Name via GetKeyNameText(); null-terminated.
//
// If the name is not found in the first two tables,
// then it is deduced from the character/deadkey this key produces in the unshifted position (as MapVirtualKeyEx()).
// In particular, the special-case in the latter function covers VK_A to VK_Z!
//
// As a corollary, the third table needs only to contain dead
keys
in the unshifted positions, and only
// at positions not present in the first two tables.
KEYNAME // Mostly from type 4 keyboard, not producing a printable char, non-variable in types 1...6, Ctrl/etc are left versions
01 Esc
0e Backspace
0f Tab
1c Enter
1d Ctrl
2a Shift
( run in 0.257 second using v1.01-cache-2.11-cpan-454fe037f31 )