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}{''}{$_}[0] .= ' ext' for keys %xkb;
+$groups->{flag}{ext} = ['xkb', 'unofficial extensions added in Linux (Gnome, KDE)'];
+{
- %{ do 'keyboard/altgr/groups.inc.pl' },
- title => 'altgr',
- version => '1.3',
+ %{$groups},
+ title => 'Windows AltGr',
+ category => '1/latin/windows/xorg',
+ version => '1.4',
intro => join("\n",
- 'Special <a href="/unicode">characters</a> returned with the AltGr modifier',
- 'for the Windows US international layout.',
- 'Similar to <a href="/keyboard/altgr/macos">Apple</a> options.',
+ 'Resulting <a href="/unicode">selection</a> of <a href="/charset">Unicode</a> characters',
+ 'while pressing the AltGr modifier',
+ 'with the Windows US international layout.',
+ 'Macs have <a href="/keyboard/altgr/macos">option</a> options instead.',
),
description => [
"Windows US international keyboard layout table",
"with the AltGr modifier key.",
],
- image => 'keyboard/altgr/ibmmkey.jpg',
- moderows => '21-',
+ image => 'data/keyboard/thumb/ku2971b-usint.jpg',
+ imagealt => 'AltGr on a KeyboardCompany KU2971B with USA International keycaps',
}