The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

Changes for version 0.50

  • Make C-^ and C-_ produce \x1e and \x1f, as the US keyboard does. Rename extra modifiers: now KANA, X, Y Allow layer 1 to be longer than layer 0 due to F-keys etc.
  • test-klc-tr.pl: new file build_here.cmd: use test-klc-tr.pl to (finally!) build a keyboard with all the defined additional layers.
  • izKeys.kbdd: Update version to 0.50. Change prefix= to prefixNOTSAME= in descriptor of additional layers. Fight against sublayer 15 (0-based) being ignored by Windows. Make new scheme of accessors: CA- is Green, Mnu is Ripe, CMnu is 2xRipe; the rest with Mnu is Bbb/Scr/Frak. Assign ↨ as "image" on C-_, and ⌠⌡ on AltGr-Business on Qq (needed for MES-2!). For testing purposes: assign ssbiGreek(+bold dgt) to rC-A, i to A-Mnu, bi to C-Mnu, ssb to A-C-Mnu, monospace to A-M-rC. Add Gray boxes to BlackFrame, and ↵ to WhiteFrame (for UGL/MES2) Add Black/White Frames, WireFrames (with 1,2,B) to NUMPAD. (temporarily, 1B is not on rCtrl, but on Alt+rCtrl???). Duplicate multi-char mappings to AltGr-rCtrl.
  • izKeys.patch: Make Green+: and Ripe+; be Ripe AltGr-' and Ripe+: be Ripe AltGr-^ on Latin; now from Latin one can access (non-AltGr) fractions and "other" Cyrillic layers even on FF. Fix RightCtrl to produce expected chars. Assign ROYA and LOYA to AltGr and RightCtrl. More prefixes 0x0306 at random places.
  • izKeys-visual-maps-base.html: Introduce anchors.
  • examples/raw_keys_via_api.pl: new files to test I/O on Windows examples/Keyboard_API.pm ???XXX See problems (when given argument "cooked"): SetConsoleMode always fails; input of surrogates (and " — "???) is broken: When reading by 10 chars: The first character is delivered OK (separately), the second and third are delivered together, and former as 4 bytes (with buffer overrun): the correct char is followed by 0x0065 = 'e' (so one gets $c2 'e' instead of $c2 $c3). (instead of 0xRR 0xSS 0xTT 0xUU one gets 0xRR 0xSS 0x65 0x00 0xTT 0xUU). When reading 𝄞 (0x1d11e): on reading the second (low) surrogate, one gets only one extra byte 0x65 (instead of 0xRR 0xSS one gets 0xRR 0xSS 0x65). When reading 𝄡𝄡 (0x1d11e): the first SMP character is delivered with the same bug as above; the second SMP character is a) read as 2 shorts in one call; b) the first one is as expected, the high surrogate; c) the second one is 'e'; d) the low surrogate disappears; e) the buffer is overrun by one byte 0x21 (the low byte of low surrogate). (instead of 0xRR 0xSS one gets 0xRR 0xSS 0x65).
  • got <0x34 0xd8 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20> 1 of 10 read at raw_keys_via_api.pl line 98. got <0x1e 0xdd 0x65 0x20 0x20 0x20> 1 of 1 read at raw_keys_via_api.pl line 98. 1: I see «𝄞» got <0x34 0xd8 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20> 1 of 10 read at raw_keys_via_api.pl line 98. got <0x21 0xdd 0x65 0x20 0x20 0x20> 1 of 1 read at raw_keys_via_api.pl line 98. 2: I see «𝄡» got <0x34 0xd8 0x65 00 0x21 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20> 2 of 10 read at raw_keys_via_api.pl line 98. 3: I see «�e» Pasting 01234567890123456789012345678901234 results in similar overruns and patterns: got <0x30 00 0x31 00 0x32 00 0x33 00 0x34 00 0x35 00 0x36 00 0x37 00 0x38 00 0x39 00 0x20 0x20 0x20 0x20> 10 of 10 read at raw_keys_via_api.pl line 100. 1: I see «0123456789» got <0x30 00 0x65 00 0x31 00 0x32 00 0x33 00 0x34 00 0x35 00 0x36 00 0x37 00 0x38 00 0x39 0x20 0x20 0x20> 10 of 10 read at raw_keys_via_api.pl line 100. 2: I see «0e12345678» got <0x30 00 0x65 00 0x31 00 0x32 00 0x33 00 0x34 00 0x35 00 0x36 00 0x37 00 0x38 00 0x39 0x20 0x20 0x20> 10 of 10 read at raw_keys_via_api.pl line 100. 3: I see «0e12345678» got <0x30 00 0x65 00 0x31 00 0x32 00 0x33 00 0x34 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20> 5 of 10 read at raw_keys_via_api.pl line 100. 4: I see «0e123» NOW: better warnings, overruns reported, pad by _=0x5f instead of 0x20 (which conficts with `—´ ;-).

Documentation

example keyboard layout generated with UI::KeyboardLayout

Modules

Module for designing keyboard layouts