X-Git-Url: http://git.shiar.net/sheet.git/blobdiff_plain/49ffae7e96c2b8e25a872c26d91e5b8443729371..382c3a9fa1e25c7665ee16f0115998bb226dfbae:/keyboard/altgr/unigraph.eng.inc.pl diff --git a/keyboard/altgr/unigraph.eng.inc.pl b/keyboard/altgr/unigraph.eng.inc.pl new file mode 100644 index 0000000..03e5161 --- /dev/null +++ b/keyboard/altgr/unigraph.eng.inc.pl @@ -0,0 +1,89 @@ +use utf8; +use strict; +use warnings; +use Shiar_Sheet::KeyboardChars 'kbchars'; + +my %rows = qw{ + +! 🐀 +@ 🐂 +# 🐅 +$ 🐇 +% 🐉 +^ 🐍 +& 🐎 +* 🐐 +( 🐒 +) 🐓 +_ 🐕 ++ 🐖 + +1 ♙ +2 ♖ +3 ♘ +4 ♗ +5 ♕ +6 ♔ +7 ♚ +8 ♛ +9 ♝ +0 ♞ +- ♜ += ♟ + + $ ○ 4 ● % □ 5 ■ ^ ☆ 6 ★ \{ ☓ + & ♠ * ♥ ( ♦ ) ♣ + - ☺ _ ☹ = ☻ + = ☼ + ☀ + + q ↖ w ↑ e ↗ Q ⇖ W ⇑ E ⇗ +q ◤ +w ▲ +e ◥ +Q ◸ +W △ +E ◹ + a ← s ↔ d → A ⇐ S ⇔ D ⇒ +a ◀ +s ◆ +d ▶ +A ◁ +S ◇ +D ▷ + z ↙ x ↓ c ↘ Z ⇙ X ⇓ C ⇘ +z ◣ +x ▼ +c ◢ +Z ◺ +X ▽ +C ◿ + 1 ⤡ 2 ↕ 3 ⤢ ! ◄ @ ⇕ # ► + + r ┌ t ┬ y ┐ R ╔ T ╦ Y ╗ + f ├ g ┼ h ┤ F ╠ G ╬ H ╣ + v └ b ┴ n ┘ V ╚ B ╩ N ╝ + ' ─ \ │ " ═ | ║ +' ╌ +\ ╎ +" ┈ +| ┊ + + +r ╒ +R ╓ +t ╤ +T ╥ +y ╕ +Y ╖ + +f ╞ +F ╟ +g ╪ +G ╫ +h ╡ +H ╢ + +v ╘ +V ╙ +b ╧ +B ╨ +n ╛ +N ╜ + + > ▛ . ▘ , ▀ M ▜ m ▝ + l ▌ L ▚ k █ J ▞ j ▐ ; ▎ : ▊ +; 🮇 +: 🮊 + O ▙ o ▖ i ▄ U ▟ u ▗ / ▂ ? ▆ +/ 🮂 +? 🮅 + 7 ░ 8 ▒ 9 ▓ + I 🮙 K 🮖 < 🮘 + + +i 🭯 +, 🭭 +j 🭮 +l 🭬 +[ 🮚 +k 🮛 + +u ╭ +o ╮ +m ╰ +. ╯ + + +U 🮣 +I 🮦 +O 🮢 + +J 🮥 +K 🮮 +L 🮤 + +M 🮡 +< 🮧 +> 🮠 + p ╱ [ ╳ ] ╲ + P 🮨 \} 🮩 +p 🮫 +] 🮪 +P 🮬 +\} 🮭 +}; +$rows{' '} = "\N{FIGURE SPACE}"; + +# remaining candidates: ┄┆ 🮗 🮕 ♤♧♡♢ ⚐⚑ ✓✔ ✗✘ ▬ + +my $groups = kbchars(\%rows); + +use Encode 'decode'; +my %cpcompat = ( + # lower cp437 representations from charset-encoding excluding BEL/BS/CR/LF + (map {$_ => 'g3'} split //, '☺☻♥♦♣♠○♂♀♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼'), + # upper characters converted to unicode + (map {$_ => 'g4'} split //, decode('cp437', pack 'C*', 127..255)), + (map {$_ => 'g2'} split //, decode('cp850', pack 'C*', 127..255)), +); + +while (my ($k, $c) = each %rows) { + $groups->{def}{''}{$k} = $cpcompat{$c} // ( + $c =~ /\p{In=1.1}/ ? 'g5' : + $c =~ /\p{In=6.0}/ ? 'g6' : + $c =~ /[\x{1FB00}-\x{1FBFF}]/ ? 'g7' : # Age=V13.0 + 'g0' + ); +} + ++{ + %{ $groups }, + version => '1.0', + title => 'Unicode semigraphics', + category => 'specialized', + intro => join("\n", + sprintf('Keyboard mode to %s draw character graphics.', + 'manually', + ), + 'Inspired by MSX graph mode,', + 'but reimagined for modern Unicode coverage.', + ), + moderows => '5421-21', + flag => { + g2 => ['cp850' => 'shared international repetoire in most DOS code pages'], + g3 => ['historic' => 'extended graphics presentations of control characters in cp437 ea'], + g4 => ['cp437' => 'ANSI art drawing glyphs in English code page 437 (OEM-US)'], + g5 => ['standard' => 'gathered in the original Unicode release in 1993'], + g6 => ['extended' => 'later additions accumulated within a decade, mostly Unicode 3.2'], + g7 => ['rare' => 'exceptional symbols for legacy computing in Unicode since 2020'], + }, +}