5 use Shiar_Sheet::KeyboardChars 'kbchars';
8 ! ๐ @ ๐ # ๐
$ ๐ % ๐ ^ ๐ & ๐ * ๐ ( ๐ ) ๐ _ ๐ + ๐
9 1 โ 2 โ 3 โ 4 โ 5 โ 6 โ 7 โ 8 โ 9 โ 0 โ - โ = โ
13 +- โ += โฅ ++ โฆ +_ โฃ
14 ) โบ +) โน 0 โป +6 โ +0 โผ ^ โ 6 โ
15 +! โ +1 โ +@ โก +2 โ +# โ +3 โ
16 - โ = โ _ โ + โ +^ โ
18 q โ w โ e โ Q โ W โ E โ +q โค +w โฒ +e โฅ +Q โธ +W โณ +E โน
19 a โ s โ d โ A โ S โ D โ +a โ +s โ +d โถ +A โ +S โ +D โท
20 z โ x โ c โ Z โ X โ C โ +z โฃ +x โผ +c โข +Z โบ +X โฝ +C โฟ
21 1 โคก 2 โ 3 โคข ! โ @ โ # โบ
23 r โ t โฌ y โ R โ T โฆ Y โ +u โญ +i โท +o โฎ
24 f โ g โผ h โค F โ G โฌ H โฃ +j โถ +k ๐ฎฏ +l โด
25 v โ b โด n โ V โ B โฉ N โ +m โฐ +, โต +. โฏ
26 4 โ 5 โ $ โ % โ
27 { โฏ | โฎ \\ ยท P โฐ } โฑ +| โ +" โ
29 +[ โ +4 โ +$ โ +\\ โ +5 โ +% โ
31 +r โ +R โ +t โค +T โฅ +y โ +Y โ
32 +f โ +F โ +g โช +G โซ +h โก +H โข
33 +v โ +V โ +b โง +B โจ +n โ +N โ
36 > โ . โ , โ M โ m โ
37 l โ ( โ k โ & โ j โ ; โ : โ +; ๐ฎ +: ๐ฎ
38 O โ o โ i โ U โ u โ / โ ? โ +/ ๐ฎ +? ๐ฎ
40 +p ๐ฎ +] ๐ฎ +8 ๐ฎ +* ๐ฎ +{ ๐ฎ
41 I ๐ญฏ < ๐ญญ J ๐ญฎ L ๐ญฌ * ๐ฎ K ๐ฎ
43 +U ๐ฎฃ +I ๐ฎฆ +O ๐ฎข +7 ๐ฎซ +9 ๐ฎช
44 +J ๐ฎฅ +K ๐ฎฎ +L ๐ฎค +P ๐ฎจ +} ๐ฎฉ
45 +M ๐ฎก +< ๐ฎง +> ๐ฎ +& ๐ฎฌ +( ๐ฎญ
48 $rows{' '} = "\N{FIGURE SPACE}";
50 my $groups = kbchars(\%rows);
54 # lower cp437 representations from charset-encoding excluding BEL/BS/CR/LF
55 (map {$_ => 'g3'} split //, 'โบโปโฅโฆโฃโ โโโโซโผโบโโโผยถยงโฌโจโโโโโโโฒโผ'),
56 # upper characters converted to unicode
57 (map {$_ => 'g4'} split //, decode('cp437', pack 'C*', 127..255)),
58 (map {$_ => 'g2'} split //, decode('cp850', pack 'C*', 127..255)),
61 while (my ($k, $c) = each %rows) {
62 $groups->{def}{''}{$k} = $cpcompat{$c} // (
63 $c =~ /\p{In=1.1}/ ? 'g5' :
64 $c =~ /\p{In=6.0}/ ? 'g6' :
65 $c =~ /[\x{1FB00}-\x{1FBFF}]/ ? 'g7' : # Age=V13.0
73 title => 'Unicode semigraphics',
74 category => 'specialized',
76 sprintf('Keyboard mode to %s draw character graphics.',
77 '<span title="without requiring a specialised editor">manually</span>',
79 'Inspired by <a href="/keyboard/altgr/msx-graph">MSX graph</a> mode,',
80 'but reimagined for modern Unicode coverage.',
81 'Freely available as <a href="/keyboard/symbols/unigraph">xorg symbols</a> export.',
85 g2 => ['cp850' => 'shared international repetoire in most DOS code pages'],
86 g3 => ['historic' => 'extended graphics presentations of control characters in cp437 ea'],
87 g4 => ['cp437' => '<em>ANSI art</em> drawing glyphs in English code page 437 (OEM-US)'],
88 g5 => ['standard' => 'gathered in the original Unicode release in 1993'],
89 g6 => ['extended' => 'later additions accumulated within a decade, mostly Unicode 3.2'],
90 g7 => ['rare' => 'exceptional <em>symbols for legacy computing</em> in Unicode since <abbr title="Unicode 13.0">2020</abbr>'],