Instead of hardcoding the esc key in html, implement it as a standard row.
12 files changed:
my $keyrow = $row < 0 ? [["\e"]] : $keyrows{$self->{map}}->[$row];
printf qq{<li class="row row%d"><ul>\n}, $row+1;
my $keyrow = $row < 0 ? [["\e"]] : $keyrows{$self->{map}}->[$row];
printf qq{<li class="row row%d"><ul>\n}, $row+1;
- for my $basemode ($row < 0 ? '' : @modes) {
+ for my $basemode (@modes) {
my @moderows = split /\s+/,
defined $moderows{$basemode} ? $moderows{$basemode} : $moderows{-DEFAULT};
my @moderows = split /\s+/,
defined $moderows{$basemode} ? $moderows{$basemode} : $moderows{-DEFAULT};
+ "\e"=> ['mo mode^[', "alt$sign{_}/meta"],
+
'b' => ['pm more'],
'^b'=> 'b',
'd' => ['pm more'],
'b' => ['pm more'],
'^b'=> 'b',
'd' => ['pm more'],
+ "\e"=> ['mo mode', 'noop'],
'n' => ['co'],
'N' => ['co'],
'u' => ['ci'],
'n' => ['co'],
'N' => ['co'],
'u' => ['ci'],
+# "\e"=> ['mo mode', 'noop'],
# '^x' => "'",
# '^v' => ':e',
#},
':' => {
# '^x' => "'",
# '^v' => ':e',
#},
':' => {
+ "\e"=> ['mo mode', 'noop'],
'd' => ['mo'],
'e' => ['mo'],
'f' => '=',
'd' => ['mo'],
'e' => ['mo'],
'f' => '=',
+ "\e"=> ['mo mode', 'noop'],
'a' => ['co'],
'b' => ['mo arg'],
'B' => ['mo'],
'a' => ['co'],
'b' => ['mo arg'],
'B' => ['mo'],
-<li class="row"><ul>
- <li>
- <ul class="keys omni">
- <li class="mo chr27" onclick="setmode('mode_c_sbo')"><b>Esc</b> alt<:=$sign{_}:>/meta
- </ul>
- <li class="mode mode_c_sbo">
- <ul class="keys omni">
- <li class="mo chr27" onclick="setmode()"><b>Esc</b> noop
- </ul>
- <li class="mode mode:">
- <ul class="keys omni">
- <li class="mo chr27" onclick="setmode()"><b>Esc</b> noop
- </ul>
- <li class="mode mode-">
- <ul class="keys omni">
- <li class="mo chr27" onclick="setmode()"><b>Esc</b> noop
- </ul>
- <li class="mode mode^x">
- <ul class="keys omni">
- <li class="mo chr27" onclick="setmode()"><b>Esc</b> noop
- </ul>
- </ul>
-
<:
use Shiar_Sheet::Keyboard 2;
my $info = do 'less.eng.inc.pl' or die $@;
<:
use Shiar_Sheet::Keyboard 2;
my $info = do 'less.eng.inc.pl' or die $@;
'[' => ['mo'],
']' => ['mo'],
'{' => ['mo'],
'[' => ['mo'],
']' => ['mo'],
'{' => ['mo'],
-<li class="row">
- <ul class="keys omni">
- <li class="mo chr27" onclick="setmode()"><b>Esc</b> q
- <!-- not as static anymore, but never bothered; just see ^[ -->
- </ul>
-</li>
-
<:
use Shiar_Sheet::Keyboard 2;
my $info = do 'mplayer.eng.inc.pl' or die $@;
<:
use Shiar_Sheet::Keyboard 2;
my $info = do 'mplayer.eng.inc.pl' or die $@;
+ "\e"=> ['me mode', '+'],
+
'H' => ['pm'], # top-page
'j' => ['pm'], # next-entry, next-undeleted
'k' => ['pm'], # previous-entry, previous-undeleted
'H' => ['pm'], # top-page
'j' => ['pm'], # next-entry, next-undeleted
'k' => ['pm'], # previous-entry, previous-undeleted
+ "\e"=> ['me mode', '+'],
'D' => ['co'],
'd' => 'wD',
'N' => ['co'],
'D' => ['co'],
'd' => 'wD',
'N' => ['co'],
+ "\e"=> ['me mode', '+'],
A => [undef],
b => ['X arg'],
B => ['arg'],
A => [undef],
b => ['X arg'],
B => ['arg'],
-<li class="row">
- <ul class="keys omni">
- <li class="me chr27" onclick="setmode()"><b>Esc</b> +
- <!-- not as static anymore, but never bothered; just see ^[ -->
- </ul>
-</li>
-
<:
use Shiar_Sheet::Keyboard 2;
my $info = do 'mutt.eng.inc.pl' or die $@;
<:
use Shiar_Sheet::Keyboard 2;
my $info = do 'mutt.eng.inc.pl' or die $@;
-<li class="row">
- <ul class="keys omni">
- <li class="me chr27" onclick="setmode()"><b>Esc</b>
- <!-- static reset button, even though it's not (officially) in the game -->
- </ul>
-</li>
-
<:
use Shiar_Sheet::Keyboard 2;
my $info = do 'nethack.eng.inc.pl' or die $@;
$info->{def} = do 'nethack.inc.pl';
my $keys = Shiar_Sheet::Keyboard->new($info);
<:
use Shiar_Sheet::Keyboard 2;
my $info = do 'nethack.eng.inc.pl' or die $@;
$info->{def} = do 'nethack.inc.pl';
my $keys = Shiar_Sheet::Keyboard->new($info);
+$_->{"\e"} = ['me mode'] for values %{ $info->{def} };
+ # static reset button, even though it's not (officially) in the game
$keys->map($get{map}) or undef $get{map};
$keys->print_rows($get{rows} || '4321-421', [3,2,1,0]);
:>
$keys->map($get{map}) or undef $get{map};
$keys->print_rows($get{rows} || '4321-421', [3,2,1,0]);
:>
-<li class="row">
- <ul class="keys omni">
- <li class="me" onclick="setmode()"><b>Esc</b> +
- </ul>
-</li>
-
<:
use Shiar_Sheet::Keyboard 2;
my $info = do 'readline.eng.inc.pl' or die $@;
<:
use Shiar_Sheet::Keyboard 2;
my $info = do 'readline.eng.inc.pl' or die $@;
'g8' => ["char hex val$sign{_}ue$sign{_}s"],
'g0' => ["virtual bol"],
'g-' => ["earlier undo"],
'g8' => ["char hex val$sign{_}ue$sign{_}s"],
'g0' => ["virtual bol"],
'g-' => ["earlier undo"],
+"g\e"=> ["normal mode"],
'g]' => ["go to tselect"],
'g^]'=> ["go to tjump"],
'g;' => ["to prev change pos"],
'g]' => ["go to tselect"],
'g^]'=> ["go to tjump"],
'g;' => ["to prev change pos"],
'gw' => ["for$sign{_}mat still"],
'gx' => ["Netrw$sign{_}BrowseX"],
'gw' => ["for$sign{_}mat still"],
'gx' => ["Netrw$sign{_}BrowseX"],
+"Z\e"=> ["normal mode"],
'ZQ' => [" :q! (force)"],
'ZZ' => [" :wq (write)"],
'ZQ' => [" :q! (force)"],
'ZZ' => [" :wq (write)"],
'z-' => ["line at bottom bol", "don't (-) see any further"],
'z=' => ["sug$sign{_}gest spell$sign{_}ing"],
'z.' => ["line at center bol"],
'z-' => ["line at bottom bol", "don't (-) see any further"],
'z=' => ["sug$sign{_}gest spell$sign{_}ing"],
'z.' => ["line at center bol"],
+"z\e"=> ["normal mode"],
'za' => ["toggle fold"],
'zA' => ["toggle fold rec$sign{_}urs$sign{_}ive$sign{_}ly"],
'za' => ["toggle fold"],
'zA' => ["toggle fold rec$sign{_}urs$sign{_}ive$sign{_}ly"],
'[/' => ["start of C com$sign{_}m$sign{_}ent"],
'[{' => ["previous open {"],
'[[' => ["section back$sign{_}ward$sign{_}s"],
'[/' => ["start of C com$sign{_}m$sign{_}ent"],
'[{' => ["previous open {"],
'[[' => ["section back$sign{_}ward$sign{_}s"],
+"[\e"=> ["normal mode"],
'[]' => [qq'<span style="font-variant:small-caps">section</span> back$sign{_}ward$sign{_}s'],
'[c' => ["start of change backw$sign{_}ards"],
'[]' => [qq'<span style="font-variant:small-caps">section</span> back$sign{_}ward$sign{_}s'],
'[c' => ["start of change backw$sign{_}ards"],
'])' => ["next open )"],
']/' => ["end of C com$sign{_}m$sign{_}ent"],
'][' => [qq'<span style="font-variant:small-caps">section</span> forw$sign{_}ard'],
'])' => ["next open )"],
']/' => ["end of C com$sign{_}m$sign{_}ent"],
'][' => [qq'<span style="font-variant:small-caps">section</span> forw$sign{_}ard'],
+"]\e"=> ["normal mode"],
']]' => ["section forw$sign{_}ard"],
']}' => ["next open }"],
']]' => ["section forw$sign{_}ard"],
']}' => ["next open }"],
'^w+' => ["height incr$sign{_}ease"],
'^w-' => ["height decr$sign{_}ease"],
'^w=' => ["same height"],
'^w+' => ["height incr$sign{_}ease"],
'^w-' => ["height decr$sign{_}ease"],
'^w=' => ["same height"],
+"^w\e"=> ["normal mode"],
'^w]' => ["split, to tag"],
'^w}' => ["pre$sign{_}view tag"],
'^w|' => ["set width"],
'^w]' => ["split, to tag"],
'^w}' => ["pre$sign{_}view tag"],
'^w|' => ["set width"],
'^wx' => ["ex$sign{_}chan$sign{_}ge"],
'^wz' => ["close pre$sign{_}view"],
'^wx' => ["ex$sign{_}chan$sign{_}ge"],
'^wz' => ["close pre$sign{_}view"],
+"^wg\e"=> ["normal mode"],
'^wg]' => ["split, :ts$sign{_}elect"],
'^wg}' => [":ptj$sign{_}ump to tag"],
'^wg^]'=> ["split, :tj$sign{_}ump"],
'^wg]' => ["split, :ts$sign{_}elect"],
'^wg}' => [":ptj$sign{_}ump to tag"],
'^wg^]'=> ["split, :tj$sign{_}ump"],
'v=' => ["re$sign{_}ind$sign{_}ent"],
'v>' => ["ind$sign{_}ent"],
'v~' => ["toggle case"],
'v=' => ["re$sign{_}ind$sign{_}ent"],
'v>' => ["ind$sign{_}ent"],
'v~' => ["toggle case"],
+"v\e"=> ["normal mode"],
'v^]'=> ["jump to tag"],
'va' => ["ex$sign{_}tend area"],
'v^]'=> ["jump to tag"],
'va' => ["ex$sign{_}tend area"],
'vy' => ["yank area"],
'vY' => ["yank lines"],
'vy' => ["yank area"],
'vY' => ["yank lines"],
+"vg\e"=> ["visual mode"],
'vg?' => ["rot13 encode"],
'vgJ' => ["join literal$sign{_}ly"],
'vgq' => ["for$sign{_}mat"],
'vg?' => ["rot13 encode"],
'vgJ' => ["join literal$sign{_}ly"],
'vgq' => ["for$sign{_}mat"],
"va'" => ["quoted string"],
'va<' => ["<> block"],
'va[' => ["[] block"],
"va'" => ["quoted string"],
'va<' => ["<> block"],
'va[' => ["[] block"],
+"va\e"=> ["visual mode"],
'vab' => ["() block"],
'vaB' => ["{} Block"],
'vab' => ["() block"],
'vaB' => ["{} Block"],
'i^@' => ["last insert"],
'i^^' => ["toggle :lmap usag$sign{_}e"],
'i^@' => ["last insert"],
'i^^' => ["toggle :lmap usag$sign{_}e"],
+"i\e" => ["normal mode"],
'i^]' => ["abbrev$sign{_}iate"],
'i^_' => ["toggle lang$sign{_}uage"],
'i^]' => ["abbrev$sign{_}iate"],
'i^_' => ["toggle lang$sign{_}uage"],
'i^y' => ["ins char above"],
'i^z' => [":sus$sign{_}pend in <em>im</em>"],
'i^y' => ["ins char above"],
'i^z' => [":sus$sign{_}pend in <em>im</em>"],
+"i^g\e"=> ["insert mode"],
'i^gk' => ["$sign{up} start col$sign{_}umn"],
'i^gj' => ["$sign{down} start col$sign{_}umn"],
'i^gu' => ["break undo seq$sign{_}uence"],
# other i^g keys (even esc) are not recognized
'i^gk' => ["$sign{up} start col$sign{_}umn"],
'i^gj' => ["$sign{down} start col$sign{_}umn"],
'i^gu' => ["break undo seq$sign{_}uence"],
# other i^g keys (even esc) are not recognized
+"i^x\e" => ["normal mode"],
'i^x^]' => ["tag comp$sign{_}l$sign{_}et$sign{_}e"],
'i^x^d' => ["def$sign{_}ine compl$sign{_}et$sign{_}e"],
'i^x^e' => ["window up"],
'i^x^]' => ["tag comp$sign{_}l$sign{_}et$sign{_}e"],
'i^x^d' => ["def$sign{_}ine compl$sign{_}et$sign{_}e"],
'i^x^e' => ["window up"],
'~' => ["co undo"],
'!' => ["co argm undo modec"],
'@' => ["co arg undo"],
'~' => ["co undo"],
'!' => ["co argm undo modec"],
'@' => ["co arg undo"],
'~' => ["co argm ext vim6"],
'@' => ["co ext vim7 new"],
'#' => ["pm ext vim6"],
'~' => ["co argm ext vim6"],
'@' => ["co ext vim7 new"],
'#' => ["pm ext vim6"],
+ "\e"=> ["mo mode"],
+ '^['=> "\e",
'Q' => ["co ext vim6"],
'Z' => ["co"],
'Q' => ["co ext vim6"],
'Z' => ["co"],
'^' => ["po"],
'+' => ["po"],
'-' => ["po"],
'=' => ["co ext vim7 new"],
'.' => ["po"],
'^' => ["po"],
'+' => ["po"],
'-' => ["po"],
'=' => ["co ext vim7 new"],
'.' => ["po"],
'a' => ["co ext vim6 folding"],
'A' => ["co ext vim6 folding"],
'a' => ["co ext vim6 folding"],
'A' => ["co ext vim6 folding"],
"`" => ["pm ext vim6"],
'#' => ["pm"],
'(' => ["pm"],
"`" => ["pm ext vim6"],
'#' => ["pm"],
'(' => ["pm"],
"'" => "[` ^", # ext vim6
'{' => ["pm"],
'[' => ["pm"],
"'" => "[` ^", # ext vim6
'{' => ["pm"],
'[' => ["pm"],
']' => ["pm"],
'c' => ["pm"],
']' => ["pm"],
'c' => ["pm"],
"`" => ["pm ext vim6"],
'#' => ["pm"],
')' => ["pm"],
"`" => ["pm ext vim6"],
'#' => ["pm"],
')' => ["pm"],
"'" => "]` ^", # ext vim6
'/' => ["pm"],
'[' => ["pm"],
"'" => "]` ^", # ext vim6
'/' => ["pm"],
'[' => ["pm"],
']' => ["pm"],
'}' => ["pm"],
']' => ["pm"],
'}' => ["pm"],
'^w' => {
lead => $ascii ? "'w" : "ŵ",
'^w' => {
lead => $ascii ? "'w" : "ŵ",
'<' => ["po"],
'>' => ["po"],
'^' => ["co"],
'<' => ["po"],
'>' => ["po"],
'^' => ["co"],
'+' => ["po"],
'-' => ["po"],
'=' => ["po"],
'+' => ["po"],
'-' => ["po"],
'=' => ["po"],
']' => ["po"],
'}' => ["po"],
'|' => ["po"],
']' => ["po"],
'}' => ["po"],
'|' => ["po"],
'^wg' => {
lead => $ascii ? "'wg" : "ŵg",
'^wg' => {
lead => $ascii ? "'wg" : "ŵg",
+ "\e"=> ["mo mode"],
+ '^['=> "\e",
']' => ["po"],
'}' => ["po"],
'^]'=> ["po"],
']' => ["po"],
'}' => ["po"],
'^]'=> ["po"],
'!' => ["co"],
':' => ["mo modec"],
'<' => ["co"],
'=' => ['co undo'],
'>' => ['co'],
'~' => ["co ext vim6"],
'!' => ["co"],
':' => ["mo modec"],
'<' => ["co"],
'=' => ['co undo'],
'>' => ['co'],
'~' => ["co ext vim6"],
'^]'=> ["po"],
'^\\'=>'^\\',
'^]'=> ["po"],
'^\\'=>'^\\',
+ "\e"=> ["mv modev"],
+
+ '^['=> "\e",
'?' => ["co ext vim6"],
'J' => ['co ext vim6'],
'q' => ["co ext vim6"],
'?' => ["co ext vim6"],
'J' => ['co ext vim6'],
'q' => ["co ext vim6"],
'(' => 'vab',
')' => 'vab',
'`' => "va'",
'(' => 'vab',
')' => 'vab',
'`' => "va'",
'>' => 'va<',
'[' => ['pm ext vim6'],
'{' => 'vaB',
'>' => 'va<',
'[' => ['pm ext vim6'],
'{' => 'vaB',
']' => 'va[',
'}' => 'vaB',
']' => 'va[',
'}' => 'vaB',
'^@' => ["co"],
'^^' => ["co ext vim6"],
'^@' => ["co"],
'^^' => ["co ext vim6"],
'^]' => ["co ext vim6"],
'^_' => ["co ext vim6"],
'^\\'=>'^\\',
'^]' => ["co ext vim6"],
'^_' => ["co ext vim6"],
'^\\'=>'^\\',
'i^g' => {
lead => $ascii ? "'g" : "ĝ",
'i^g' => {
lead => $ascii ? "'g" : "ĝ",
'k' => ['pm'],
'j' => ['pm'],
'u' => ['co'],
'k' => ['pm'],
'j' => ['pm'],
'u' => ['co'],
'i^x' => {
lead => $ascii ? "'x" : "x̂",
'i^x' => {
lead => $ascii ? "'x" : "x̂",
- '^[' => ["mo mode"], # yes, it really leaves insert mode
+ "\e" => ["mo mode"], # yes, it really leaves insert mode
+
+ '^['=> "\e",
'^]' => ['co'],
'^d' => ['co'],
'^e' => ["po"],
'^]' => ['co'],
'^d' => ['co'],
'^e' => ["po"],
-<li class="row">
- <ul class="keys omni">
- <li class="mv chr27" onclick="setmode()"><b>Esc</b> normal mode
- <!-- not as static anymore, but never bothered; just see ^[ -->
- </ul>
-</li>
-
<:
use Shiar_Sheet::Keyboard 2;
my $info = do 'vimperator.eng.inc.pl' or die $@;
$info->{def} = do 'vimperator.inc.pl';
<:
use Shiar_Sheet::Keyboard 2;
my $info = do 'vimperator.eng.inc.pl' or die $@;
$info->{def} = do 'vimperator.inc.pl';
+$_->{"\e"} = ['mv mode', "normal mode"] for values %{ $info->{def} };
+delete $info->{def}->{''}->{"\e"};
my $keys = Shiar_Sheet::Keyboard->new($info);
$keys->map($get{map}) or undef $get{map};
$keys->print_rows($get{rows});
my $keys = Shiar_Sheet::Keyboard->new($info);
$keys->map($get{map}) or undef $get{map};
$keys->print_rows($get{rows});