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
Examples
- examples/EurKey++.kbdd
- examples/Keyboard_API.pm
- examples/Sorted-mod_Unicode.txt
- examples/build-iz.pl
- examples/build_here.cmd
- examples/charlists/Adobe-GL-chars
- examples/charlists/Church-Slavonic-X11.txt-chars
- examples/charlists/IPA-chars
- examples/charlists/IPA-obsolete-and-capital-small
- examples/charlists/Medievist
- examples/charlists/README
- examples/charlists/UGL
- examples/charlists/UPA
- examples/charlists/Vietnamese
- examples/charlists/WGL4
- examples/charlists/all-greekish
- examples/charlists/bepo
- examples/charlists/comb-cyr-chr
- examples/charlists/combin
- examples/charlists/currency
- examples/charlists/double-accents
- examples/charlists/iso-8859
- examples/charlists/latin-derived
- examples/charlists/mes1
- examples/charlists/mes2
- examples/charlists/mes3b
- examples/charlists/modifier-chr
- examples/charlists/neo2base
- examples/charlists/neo2ext1
- examples/charlists/neo2ext2
- examples/charlists/oldenglish
- examples/compile_link_kbd.cmd
- examples/console-fonts00-added.reg
- examples/cvt_apple.pl
- examples/diff-Vietnamese
- examples/enable-hex-unicode-entry.reg
- examples/filter-XCompose
- examples/filter_kbd_tables.pl
- examples/fix-MSKLC.patch
- examples/grep_nameslist.pl
- examples/hebrew-ZC-visual
- examples/izKeys.kbdd
- examples/izKeys.patch
- examples/izkeys-visual-maps-base.html
- examples/mkkbd.cmd
- examples/print_nameslist.pl
- examples/quotes-e
- examples/qwerty
- examples/raw_keys_via_api.pl
- examples/refresh-it.cmd
- examples/test-klc-tr.pl
- examples/txt2html_bubbles.pl