keyboard/altgr/unigraph: secret zoo of mnemonic animals
authorMischa POSLAWSKY <perl@shiar.org>
Thu, 21 Mar 2024 23:13:04 +0000 (00:13 +0100)
committerMischa POSLAWSKY <perl@shiar.org>
Mon, 22 Apr 2024 22:49:57 +0000 (00:49 +0200)
Experiment to fit all present Unicode animals on a minimal 30 keys layout.

keyboard/altgr/unigraph.eng.inc.pl
keyboard/altgr/zoo.eng.inc.pl [new file with mode: 0644]

index f6061321aecd86ec16e6982439ca9fd01379473d..696b70aa32795ce33bd5fef5879aed2d0c9df4f0 100644 (file)
@@ -66,6 +66,7 @@ while (my ($k, $c) = each %rows) {
                'g0'
        );
 }
+$groups->{def}{''}{')'} .= ' linkkeyboard/altgr/zoo';
 
 +{
        %{ $groups },
diff --git a/keyboard/altgr/zoo.eng.inc.pl b/keyboard/altgr/zoo.eng.inc.pl
new file mode 100644 (file)
index 0000000..e54380e
--- /dev/null
@@ -0,0 +1,153 @@
+use utf8;
+use strict;
+use warnings;
+no  warnings 'qw';
+use Shiar_Sheet::KeyboardChars 'kbchars';
+
+my %rows = qw(
+       ;  🐔
+       :  🐓
+       +; 🦢swan??
+       +; 🐤
+       +: 🐥
+       a  🐒Apey_monkey
+       A  🐜Ant
+       +a 🕷Arachnid
+       +A 🐵Apey_face
+       b  🐇Bunny
+       B  🐦Bird
+       +b 🦡Badger
+       +B 🐰Bunny_face
+       c  🐈Cat
+       C  🐊CroC
+       +c 🦀Crab
+       +C 🐱Cat_face
+       d  🐕Dog
+       D  🦆Duck
+       +d 🦌Deer_cerVid_Ungulate??
+       +d 🐩pooDle_Dog
+       +D 🐶Dog_face
+       e  🐘Elephant
+       E  🦅Eagle
+       +e 🦣Elder_Elephant_or_mammoth
+       +E 🐹Eee!_hamstEr_face
+       f  🐟Fish
+       F  🪰Fly
+       +f 🦩Flamingo
+       +F 🐸Frog_Face
+       g  🐐Goat
+       G  🦍Gorilla
+       +g 🪿Goose
+       +G 🦒Giraffe_face
+       h  🐎Horse
+       H  🐝Honeybee
+       +h 🦔HedgeHog
+       +H 🐴Horse_face
+       i  🐛Insect
+       I  🐞ladIbug_Insect
+       +i 🐿chIpmunk
+       +I 🦄unIcorn_face
+       j  🪼Jelly
+       J  🐬Jumping_dolphin
+       +j 🦐Jrimp
+       k  🐨Koala
+       K  🦨sKunK
+       +k 🦘Kangaroo
+       l  🦎Lizard
+       L  🦙LLama
+       +l 🐆Leopard
+       +L 🦁Lion_face
+       m  🐄Moo
+       M  🐁Mouse
+       +m 🦠Microbe
+       +M 🐮Moo_face
+       n  🐌sNail
+       N  🦛Nile_hippo
+       +n 🦞Nephropid_lobster
+       o  🦉Owl
+       O  🦦Otter
+       +o 🦧Orangutan
+       +O 🫎mOOOse
+       p  🐖Pig
+       P  🐧Penguin
+       +p 🦜Parrot
+       +P 🐷Pig_face
+       [  🦝raccoon_trash_Panda
+       {  🐗wild_Pig
+       +{ 🐼Panda_face
+       +[ 🐡blowfish??
+       q  🦑sQuid
+       Q  🦟Mosquito
+       +q 🦚peaQoQ
+       r  🐀Rat
+       R  🦏Rhino
+       +r 🪳Roach
+       +R 🐭Rodent_face
+       s  🐍SSSnail
+       S  🦈Shark
+       +s 🦂Scorpion
+       +S 🦭Seal_face
+       t  🐢TurTle
+       T  🐅Tiger
+       +t 🦃Turkey
+       +T 🐯Tiger_face
+       u  🐙octopUs
+       U  🐫hUmped_camel
+       +u 🐪hUmped_dromedary
+       +U 🐻Ursus_face
+       v  🦇Vampiric_bat
+       V  🕊doVe
+       +v 🦫beaVer
+       w  🐋Whale
+       W  🪱Worm
+       +w 🐃Water_buffalo
+       +W 🐺Wolf_face
+       x  🦖reX
+       X  🐂oX
+       +x 🦤eXtinct_dodo
+       +X 🦊foX_face
+       y  🦋butterflY
+       Y  🦪oYster
+       +y 🦬bYson
+       z  🐑zzz_sheep
+       Z  🐏zzz_ram
+       +z 🦥Zzzloth
+       +Z 🦓Zebra_face
+       ]  🐉dragon
+       }  🦕sauropod
+       +] 🪸coral??
+       +} 🐲dragon_face
+);
+s/.\K/\n/, y/_/ / for values %rows;
+
+#      🐠tropical_fish
+
+my $groups = kbchars(\%rows);
+
+while (my ($k, $c) = each %rows) {
+       $c =~ s/\n.*//;
+       $groups->{def}{''}{$k} = (
+               $c =~ /\p{In=1.1}/ ? 'g2' :
+               $c =~ /\p{In=6.0}/ ? 'g3' :
+               $c =~ /\p{In=8.0}/ ? 'g4' :
+               $c =~ /\p{In=10.0}/ ? 'g5' :
+               $c =~ /\p{In=10.0}/ ? 'g6' :
+               'g7'
+       );
+}
+
++{
+       %{ $groups },
+       version => '1.0',
+       title => 'Unicode animals',
+       category => 'specialized',
+       intro => join("\n",
+       ),
+       moderows => '5421-1',
+       flag => {
+               g3 => ['initial'  => 'initial emoji in Unicode 6.0'],
+               g4 => ['8.0'      => ''],
+               g5 => ['10.0'     => ''],
+               g7 => ['later'    => 'Unicode 11.0 or above'],
+       },
+}