UI-KeyboardLayout

 view release on metacpan or  search on metacpan

Changes  view on Meta::CPAN

		Fully 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

@@@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

LAYOUT_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.287 second using v1.01-cache-2.11-cpan-454fe037f31 )