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 ü æ
);
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)'];

+{
	%{$groups},
	title => 'Windows AltGr',
	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',
		'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 => 'data/keyboard/thumb/ku2971b-usint.jpg',
	imagealt => 'AltGr on a KeyboardCompany KU2971B with USA International keycaps',
}
