keyboard/altgr/ukext: distinguish microsoft compatibility
[sheet.git] / keyboard / altgr / ukext.eng.inc.pl
index a6fe865c43f2ee5fbe4f228c35255c70447575be..972c01e2dcc5bb2567300ae0a7f2df502cf79ee8 100644 (file)
@@ -1,56 +1,74 @@
 use utf8;
 use strict;
 use warnings;
-our %rows = (
-       '~' => '¦',
+use Shiar_Sheet::KeyboardChars 'kbchars';
+
+my %win = (
+       '`' => '¦',
+       '~' => "\N{COMBINING GRAVE ACCENT}", # uk ¬ originally unshifted
+       '2' => "\N{COMBINING DIAERESIS}",
+       '4' => '€',
+       '6' => "\N{COMBINING CIRCUMFLEX ACCENT}",
+       'W' => 'Ẃ',
+       'w' => 'ẃ',
+       'E' => 'É',
+       'e' => 'é',
+       'Y' => 'Ý',
+       'y' => 'ý',
+       'U' => 'Ú',
+       'u' => 'ú',
+       'I' => 'Í',
+       'i' => 'í',
+       'O' => 'Ó',
+       'o' => 'ó',
+       'A' => 'Á',
+       'a' => 'á',
+       #'"' => '`',
+       "'" => "\N{COMBINING ACUTE ACCENT}",
+       '\\'=> "\N{COMBINING TILDE}", # uk #
+       'C' => 'Ç',
+       'c' => 'ç',
+);
+
+my %dup = (
+       # aliases to unmodified keys
+       '7' => '{',
+       '8' => '[',
+       '9' => ']',
+       '0' => '}',
+       '-' => '\\',
+       'q' => '@',
+       'K' => '&',
+);
+
+my %rows = (%win, %dup,
        '!' => '¡',
        '1' => '¹',
        '@' => '½', # uk "
-       '2' => "\N{COMBINING DIAERESIS}",
        '#' => '⅓', # uk £
        '3' => '³',
        '$' => '¼',
-       '4' => '€',
        '%' => '⅜',
-       '5' => ',
+       '5' => \'@',
        '^' => '⅝',
-       '6' => "\N{COMBINING CIRCUMFLEX ACCENT}",
        '&' => '⅞',
-       '7' => '{',
        '*' => '™',
-       '8' => '[',
        '(' => '±',
-       '9' => ']',
        ')' => '°',
-       '0' => '}',
        '_' => '¿',
-       '-' => '\\',
        '+' => "\N{COMBINING OGONEK}",
        '=' => "\N{COMBINING CEDILLA}",
        'Q' => 'Ω',
-       'q' => '@',
-       'W' => 'Ẃ',
-       'w' => 'ẃ',
-       'E' => 'É',
-       'e' => 'é',
        'R' => '®',
        'r' => '¶',
        'T' => 'Ŧ',
        't' => 'ŧ',
-       'Y' => 'Ý',
-       'y' => 'ý',
-       'U' => 'Ú',
-       'u' => 'ú',
-       'I' => 'Í',
-       'i' => 'í',
-       'O' => 'Ó',
-       'o' => 'ó',
        'P' => 'Þ',
        'p' => 'þ',
        '{' => "\N{COMBINING RING ABOVE}",
-       '}' => "\N{COMBINING MACRON}",
-       'A' => 'Á',
-       'a' => 'á',
+       '}' => "\N{COMBINING MACRON}", # originally |
+       '[' => \'2',
+       ']' => \'\\',
        'S' => '§',
        's' => 'ß',
        'D' => 'Ð',
@@ -63,24 +81,17 @@ our %rows = (
        'h' => 'ħ',
        'J' => "\N{COMBINING HORN}",
        'j' => "\N{COMBINING HOOK ABOVE}",
-       'K' => '&',
        'k' => 'ĸ',
        'L' => 'Ł',
        'l' => 'ł',
        ':' => "\N{COMBINING DOUBLE ACUTE ACCENT}",
-       ';' => "\N{COMBINING ACUTE ACCENT}",
+       ';' => \"'",
        '"' => "\N{COMBINING CARON}", # uk @
-       "'" => "\N{COMBINING ACUTE ACCENT}", # same as ;?
-       '|' => "\N{COMBINING TILDE}",
-       '\\'=> "\N{COMBINING BREVE}",
-       '~' => "\N{COMBINING GRAVE ACCENT}",
-       '`' => '¦',
-       'Z' => '<',
+       '|' => "\N{COMBINING BREVE}", # uk ~ originally \
+       'Z' => '‹',
        'z' => '«',
-       'X' => '>',
+       'X' => '',
        'x' => '»',
-       'C' => 'Ç',
-       'c' => 'ç',
        'V' => '‘',
        'v' => '“',
        'B' => '’',
@@ -96,20 +107,27 @@ our %rows = (
        '?' => "\N{COMBINING DOT ABOVE}",
        '/' => "\N{COMBINING DOT BELOW}",
 );
-$rows{'['} = $rows{'2'};
-$rows{']'} = $rows{'#'};
+
+my $groups = kbchars(\%rows);
+
+$_->[0] .= ' ext'  for @{ $groups->{def}{''} }{keys %dup};
+$_->[0] .= ' more' for @{ $groups->{def}{''} }{keys %win};
+$groups->{flag}{more} = ['windows', "only a small subset is present on Microsoft's layout"];
 
 +{
-       %{ do 'keyboard/altgr/groups.inc.pl' },
+       %{$groups},
        title => 'UK-extended',
-       version => '1.0',
+       category => 'latin/thirdparty',
+       version => '1.1',
        intro => join("\n",
-               "A Chrome OS extension",
+               "A Chrome OS extension and Xorg option",
                "expanding on Windows' UK Extended QWERTY keyboard.",
-               'Similar to the <a href="/keyboard/altgr">US international</a> variant.',
+               'Distinct from the <a href="/keyboard/altgr/windows">US international</a> variant.',
        ),
        description => [
                "Google UK-Extended keyboard layout table for Chrome OS",
                "with the AltGr modifier key.",
        ],
+       image => 'data/keyboard/thumb/chromebook-hp11.jpg',
+       imagealt => 'AltGr key on a HP Chromebook 11 G2',
 }