<: # included from keyboard.plp use 5.014; use warnings; use utf8; my @incs = glob 'keyboard/altgr/*.eng.inc.pl'; Html({ title => "altgr keyboard cheat sheets", version => '1.2', description => [ "Overview of alternate keyboard modes,", "offering extended Unicode characters if a modifier key", "(such as AltGr or option) is pressed.", ], keywords => [qw' sheet cheat reference overview keyboard altgr option '], image => 'data/keyboard/thumb/ibm-m.jpg', stylesheet => [qw( light dark circus mono red )], data => ['keyboard/altgr/index.inc.plp', @incs], raw => <<'.', . }); :>

Extended keyboards

Overview of available key layouts with AltGr or similar modifier keys.

<: my @sample = split /(? qq{\N{TOP HAT}}, windows => qq{\x{1FA9F}}, # \N{WINDOW} macos => qq{\N{RED APPLE}}, xorg => qq{\N{PENGUIN}}, ); printf '
', @sample ? 'section' : 'gallery'; if (@sample) { print ''; print ''; } my %idx = map {s/\Q.inc.pl\E$//; ($_ => eval{ Data($_) })} @incs; my $most = max(map { scalar keys %{$_->{def}{''}} } values %idx); for my $inc (sort { $idx{$a}{category} cmp $idx{$b}{category} || $a cmp $b } keys %idx) { print @sample ? ''; } } print '
'; print "$_" for @sample; say '
' : '
'; printf '', $inc =~ s/\.eng$//r; my $table = $idx{$inc}; my $title = $table && $table->{title} || $inc; unless (@sample) { if ($table and my $img = $table->{image}) { EscapeHTML $name = $table->{imagealt} // $img =~ m{.*/([^/.]*)}; print qq{$name}; } printf '
%s
', $title; say '
'; } else { print $title; print '', "\n\t"; my $keys = Shiar_Sheet::Keyboard->new($table); for my $mode ($keys->{mode} ? sort keys %{ $keys->{mode} } : '') { my %inventory; $inventory{ s/ (?!ext).*//r }++ for values %{ $keys->{def}{$mode} }; print ''; print "" for $keys->{key}{$mode} =~ s/\s.*//r || (); for my $g (sort keys %inventory) { printf ' %s', $g, $_/$most*100, $_, join(' ', map { $keys->{flag}{$_}[0] || 'extra' # legend label of each class } reverse split / /, $g) for $inventory{$g}; } say ''; } print "\t
"; print join ' ', map { $caticon{$_} // () } split m{/}, $keys->{category}; say ''; $keys->print_key('', $_, $keys->{def}{''}{$_} // 'ni') for @sample; say '
' if @sample; :>