5 use Shiar_Sheet::KeyboardChars 'kbchars';
9 'b' => "๐บ\nBeer mug",
10 'c' => "โ\nCoffee Cup",
12 'e' => "๐ง\nE-mail",
13 'f' => "๐น\nFlower",
16 'i' => "๐ก\nIlluminating Idea",
18 'l' => "โค๏ธ\nLove heart",
19 'm' => "๐ฅ\nMSN Messenger icon",
20 'n' => "๐\nNo, thumbs down",
21 'o' => "โฐ\nO' clock",
22 'p' => "๐ท\nPhoto camera",
23 's' => "๐\nSleeping half-moon", # no lowercase?
24 't' => "๐\nTelephone receiver",
25 'u' => "๐\nUn-heart",
26 'w' => "๐ฅ\nWilted rose",
28 'y' => "๐\nYes, thumbs up",
30 '~' => "๐ฅ\nfilmstrip",
31 '@' => "๐ฑ\ncat face",
32 '6' => "๐\n666 devil",
33 '^' => "๐\nbirthday cake",
34 '&' => "๐ถ\ndog face",
35 '8' => "โช\n8th note",
37 '{' => "๐ค\nleft hug", # hugging face
38 '}' => "๐ซ\nright hug", # people hugging
40 $literal{$_} .= " (\u$_)" for keys %literal;
41 $_ = ['g2', $_] for values %literal;
44 'D' => ['g4', "๐\nopen-mouthed :-D"],
45 'O' => ['g4', "๐ฒ\nsurprised :-O"],
46 'P' => ['g4', "๐\ntongue out :-P"],
47 'S' => ['g4', "๐\nconfused :-S"],
48 'Z' => ['g5', "๐ฉ\nsleepy |-)"],
49 '(' => ['g4', "โน\nsad :-("],
50 ')' => ['g4', "โบ\nhappy :-)"],
51 '[' => ['g4', "๐ฆ\nbat :-["],
52 '<' => ['g4', "๐ฅณ\nparty <:o)"],
53 '\\'=> ['g5', "๐\ndisappointed :-|"],
54 "'" => ['g4', "๐ญ\ncrying :'("],
55 ';' => ['g4', "๐\nwinking ;-)"],
56 '@' => ['g4', "๐ \nangry :-@"],
57 '#' => ['g4', "๐ค\ndon't tell :-#"],
58 '$' => ['g4', "๐ณ\nembarrased :-\$"],
59 '+' => ['g4', "๐คข\nsick +o("],
60 #'^' => ['g4', "๐คจ\nsarcastic ^o)"],
61 #'*' => ['g5', "๐\nthinking *-)"],
63 'j' => ['g5', "โ\numbrella lookalike (um)"],
64 '0' => ['g5', "โฝ\nsoccer ball (so)"],
65 '>' => ['g5', "๐\npizza slice (pi)"],
66 'I' => ['g5', "๐\nisland with palm tree (ip)"],
67 'C' => ['g5', "๐ป \ndesktop computer (co)"],
68 '3' => ['g5', "๐ฑ\n:3 cat face (@)"],
69 'T' => ['g5', "โ๏ธ\nsTormy cloud (st)"],
70 #'B' => ['g5', "๐\nsheep (bah)"],
71 #'@' => ['g5', "๐\nsnail (sn)"],
72 #'M' => ['g5', "๐ฐ\nmoney (mo)"],
73 '9' => ['g5', "๐\nbowl (||)"],
76 'M' => ['g6', "๐ค\n\\m/"],
77 'v' => ['g6', "๐ฉ\npoo ~@~"],
78 ']' => ['g6', "๐ค\nrobot [:|]"],
79 '{' => ['g6', "๐ฅธ\nmustache :{"],
80 'X' => ['g6', "๐\nkiss :-x"],
81 ':' => ['g6', "๐ท\npig :(:)"],
82 'V' => ['g6', "๐ฆ\ncrab V.v.V"],
83 '|' => ['g5', "๐\nstraight :-|"],
84 '%' => ['g6', "โฏ\nyin-yang (%)"],
87 '"' => ['g7', "๐\ntears of joy '^^'"],
88 '/' => ['g7', "๐คฃ\nrofl"],
89 '5' => ['g7', "๐\nhigh 5 or folded hands"],
90 ',' => ['g7', "๐\nparty popper"],
91 'L' => ['g7', "๐\nLove eyes"],
92 'F' => ['g7', "๐ฅ\nFire"],
93 '`' => ['g7', "โจ\nsparkles"],
94 '=' => ['g7', "๐\nclap"],
95 '2' => ['g7', "โ๏ธ\n2 fingers"],
96 'E' => ['g7', "๐\nsee no Evil monkey"],
97 'B' => ['g7', "๐ป\nBeer mugs"],
98 '!' => ['g7', "๐\neggplant!"],
101 my %rows = (%literal, %more);
105 title => 'MessengerMoji',
106 category => 'specialized',
108 'Single key access to emoji shorthands',
109 'from the legacy <a href="/emoji#msn">MSN</a> app.',
112 tableclass => 'keys big',
114 def => {'' => \%rows},
116 g2 => ['literal', "exact (X) letter equivalent"],
117 g4 => ['part', "significant character in the original code"],
118 g5 => ['moved', "included by a different mnemonic"],
119 g6 => ['foreign', "copied from a contemporary Gmail smiley"],
120 g7 => ['unicode', "popular modern character introduced later"],