keyboard/altgr/windows: xorg extensions added in 2023
[sheet.git] / keyboard / altgr / windows.eng.inc.pl
index 23353a5fa11ad03f49354a22fe0dbacd7e1b7976..eb021b7148b8e8323594f81c2b3a01ba0108c204 100644 (file)
@@ -1,20 +1,88 @@
 use utf8;
 use strict;
 use warnings;
+use Shiar_Sheet::KeyboardChars 'kbchars';
+
 my @az = ('A'..'Z', 'a'..'z');
 my @letters = qw(
        Á B ¢ Ð É F G H Í J Œ Ø µ Ñ Ó Ö Ä ® § Þ Ú V Å X Ü Æ
        á b © ð é f g h í j œ ø µ ñ ó ö ä ® ß þ ú v å x ü æ
 );
-our %rows = map {
-       ($az[$_] eq $letters[$_]) ? () :
-       ($az[$_] => $letters[$_])
-} 0 .. $#az;
+my %xkb = (
+       '@' => "\N{COMBINING DOUBLE ACUTE ACCENT}",
+       '#' => "\N{COMBINING MACRON}",
+       '&' => "\N{COMBINING HORN}",
+       '*' => "\N{COMBINING OGONEK}",
+       '(' => "\N{COMBINING BREVE}",
+       ')' => "\N{COMBINING RING ABOVE}",
+       '_' => "\N{COMBINING DOT BELOW}",
+       '>' => "\N{COMBINING CARON}",
+       '.' => "\N{COMBINING DOT ABOVE}",
+       '?' => "\N{COMBINING HOOK ABOVE}",
+       # 1.7~39 (2009-06-12)
+       '%' => "\N{COMBINING CEDILLA}",
+       # 2.38~16 (2023-01-13)
+       'R' => '™',
+       # 2.39~101 (2023-03-17)
+       'f' => 'ë',
+       'F' => 'Ë',
+       'j' => 'ï',
+       'J' => 'Ï',
+       # 2.39~96 (2023-03-21)
+       'M' => '±',
+       # 2.40~122 (2023-06-11)
+       'x' => '·',
+       'X' => "\N{COMBINING SHORT SOLIDUS OVERLAY}", # dead_stroke (slash ø, bar ʉ, stroke ł)
+);
+
+my %rows = (
+       '~' => "\N{COMBINING TILDE}",
+       '`' => "\N{COMBINING GRAVE ACCENT}",
+       '!' => '¹',
+       '1' => '¡',
+       '2' => '²',
+       '3' => '³',
+       '$' => '£',
+       '4' => '¤',
+       '5' => '€',
+       '^' => "\N{COMBINING CIRCUMFLEX ACCENT}",
+       '6' => '¼',
+       '7' => '½',
+       '8' => '¾',
+       '9' => '‘',
+       '0' => '’',
+       '-' => '¥',
+       '+' => '÷',
+       '=' => '×',
+       '{' => '“',
+       '}' => '”',
+       '[' => '«',
+       ']' => '»',
+       ':' => '°',
+       ';' => '¶',
+       "'" => "\N{COMBINING ACUTE ACCENT}",
+       '"' => "\N{COMBINING DIAERESIS}",
+       '<' => 'Ç',
+       ',' => 'ç',
+       '/' => '¿',
+       '|' => '¦',
+       '\\'=> '¬',
+       (map {
+               ($az[$_] eq $letters[$_]) ? () :
+               ($az[$_] => $letters[$_])
+       } 0 .. $#az),
+       %xkb,
+);
+
+my $groups = kbchars(\%rows);
+$groups->{def}{''}{$_} .= ' ext' for keys %xkb;
+$groups->{flag}{ext} = ['xkb', 'unofficial extensions added in Linux (Gnome, KDE)'];
 
 +{
-       %{ do 'keyboard/altgr/groups.inc.pl' },
+       %{$groups},
        title => 'Windows AltGr',
-       version => '1.3',
+       category => '1/latin/windows/xorg',
+       version => '1.4',
        intro => join("\n",
                'Resulting <a href="/unicode">selection</a> of <a href="/charset">Unicode</a> characters',
                'while pressing the AltGr modifier',
@@ -25,6 +93,6 @@ our %rows = map {
                "Windows US international keyboard layout table",
                "with the AltGr modifier key.",
        ],
-       image => 'keyboard/altgr/ibm-m.jpg',
-       moderows => '21-',
+       image => 'data/keyboard/thumb/ku2971b-usint.jpg',
+       imagealt => 'AltGr on a KeyboardCompany KU2971B with USA International keycaps',
 }