4 use Shiar_Sheet::KeyboardChars 'kbchars';
9 '3' => "\N{COMBINING GRAVE ACCENT}",
10 '4' => "\N{COMBINING ACUTE ACCENT}",
11 '5' => "\N{COMBINING BREVE}",
12 '6' => "\N{COMBINING RING ABOVE}",
13 '7' => "\N{COMBINING CIRCUMFLEX ACCENT}",
14 '8' => "\N{COMBINING CARON}",
15 '9' => "\N{COMBINING DOT ABOVE}",
16 '0' => "\N{COMBINING DIAERESIS}",
17 '-' => "\N{COMBINING MACRON}",
18 '=' => "\N{COMBINING TILDE}",
26 'r' => "\N{COMBINING CEDILLA}",
27 't' => "\N{COMBINING BREVE BELOW}",
28 'y' => "\N{COMBINING RING BELOW}",
29 'u' => "\N{COMBINING CIRCUMFLEX ACCENT BELOW}",
30 'i' => "\N{COMBINING CARON BELOW}",
31 'o' => "\N{COMBINING DOT BELOW}",
32 'p' => "\N{COMBINING DIAERESIS BELOW}",
33 '[' => "\N{COMBINING MACRON BELOW}",
34 ']' => "\N{COMBINING TILDE BELOW}",
55 'm' => "\N{MICRO SIGN}",
62 qw[ ! 1 @ 2 # 3 $ 4 % 5 ^ 6 & 7 * 8 ( 9 ) 0 _ - + = ],
63 qw( { [ } ] " ' | \ < , > . ? / ` 3 ~ = ),
64 (map {uc, lc} qw[ r t y u i o p h j m ]),
67 my $groups = kbchars(\%rows);
68 $groups->{flag}{ext} = ['alias', 'identical results from unshifted key'];
69 while (my ($alias, $target) = each %shift) {
70 # copy alias to shifted
71 $groups->{key}{$alias} = $groups->{key}{$target};
72 $groups->{def}{''}{$alias} = $groups->{def}{''}{$target}.' ext';
74 $groups->{def}{''}{$_} =~ s/g7/g4/ for qw( ! < > ? ); # similar punctuation
80 category => 'legacy/latin',
82 "International US English developed for the OLPC project,",
83 'providing mostly European',
84 '<a href="/unicode">Unicode</a> characters while pressing AltGr,',
85 'entirely different from the <a href="/keyboard/altgr/windows">Windows</a>',
86 'or <a href="/keyboard/altgr/macos">MacOS</a> maps.',
89 "OLPC keyboard layout table",
90 "with the AltGr modifier key:",
91 "provides common western European letters and symbols,",
92 "and various combining accents above and below.",
94 image => 'data/keyboard/thumb/olpc.jpg',
95 imagealt => 'AltGr on the OLPC XO Laptop',