UI-KeyboardLayout

 view release on metacpan or  search on metacpan

Changes  view on Meta::CPAN

542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
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

1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
@@@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

10156
10157
10158
10159
10160
10161
10162
10163
10164
10165
10166
10167
10168
10169
10170
10171
10172
10173
10174
10175
10176
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.257 second using v1.01-cache-2.11-cpan-454fe037f31 )