no warnings 'uninitialized'; # save some useless checks for more legible code
use Carp;
-our $VERSION = '1.01';
+our $VERSION = '1.02';
-my @casedesc = qw(ctrl shift);
+my @casedesc = (undef, qw/shift ctrl meta/, 'shift meta');
my @rowdesc = qw(numeric top home bottom);
my %keyrows = do 'keys.inc.pl';
+# add first two cases of each row again with each char prepended by + (alt)
+push @$_, map { [map {"+$_"} @$_] } @$_[0,1] for map {@$_} values %keyrows;
my %keytrans = qw(
^@ NUL ^a SOH ^b STX ^c ETX ^d EOT ^e ENQ ^f ACK ^g BEL
sub escapeclass {
local $_ = shift;
s/\^/_c/g;
+ s/\+/_m/g;
s/\[/_sbo/g;
s/\]/_sbc/g;
s/^$/_/;
my $self = shift;
my ($key, $ancestry) = @_;
- $key =~ s/(\S*?)(\^?\S)($|\s.*)/$2/;
+ $key =~ s/(\S*?)(\+?\^?\S)($|\s.*)/$2/;
my $mode = $1;
my $keyinfo = $self->{keys}->{$mode}->{$key};
ul.keys li[onclick]:hover { /* link */
cursor: pointer;
}
+ul.keys.meta li b,
ul.keys.ctrl li b,
ul.keys.lead li b { /* char with ctrl or leading key */
font-size: 100%; /* space is too limited for 2+ double-sized chars */
line-height: 5ex; /* keep double height though */
}
+ul.keys.meta li b small,
ul.keys.ctrl li b small { /* meta key indicator */
font-size: 70%;
font-weight: normal; /* nice and subtle */