keys: replace omni-present escape keys
authorMischa POSLAWSKY <perl@shiar.org>
Mon, 26 Mar 2012 15:30:05 +0000 (17:30 +0200)
committerMischa POSLAWSKY <perl@shiar.org>
Tue, 10 Apr 2012 01:03:24 +0000 (03:03 +0200)
Instead of hardcoding the esc key in html, implement it as a standard row.

12 files changed:
Shiar_Sheet/Keyboard.pm
less.inc.pl
less.plp
mplayer.inc.pl
mplayer.plp
mutt.inc.pl
mutt.plp
nethack.plp
readline.plp
vi.eng.inc.pl
vi.inc.pl
vimperator.plp

index c5ab016..2cbaffe 100644 (file)
@@ -128,7 +128,7 @@ sub print_rows {
                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};
 
index dcd6512..0fdedf6 100644 (file)
@@ -2,6 +2,8 @@ use utf8;
 { # less v418
 
 '' => {
+       "\e"=> ['mo mode^[', "alt$sign{_}/meta"],
+
        'b' => ['pm more'],
        '^b'=> 'b',
        'd' => ['pm more'],
@@ -65,6 +67,7 @@ use utf8;
 },
 
 '^[' => { # esc
+       "\e"=> ['mo mode', 'noop'],
        'n' => ['co'],
        'N' => ['co'],
        'u' => ['ci'],
@@ -76,11 +79,13 @@ use utf8;
 },
 
 #'^x' => {
+#      "\e"=> ['mo mode', 'noop'],
 #      '^x' => "'",
 #      '^v' => ':e',
 #},
 
 ':' => {
+       "\e"=> ['mo mode', 'noop'],
        'd' => ['mo'],
        'e' => ['mo'],
        'f' => '=',
@@ -92,6 +97,7 @@ use utf8;
 },
 
 '-' => {
+       "\e"=> ['mo mode', 'noop'],
        'a' => ['co'],
        'b' => ['mo arg'],
        'B' => ['mo'],
index 52ca471..b363203 100644 (file)
--- a/less.plp
+++ b/less.plp
@@ -23,29 +23,6 @@ Html({
 
 <ul id="rows">
 
-<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 $@;
index f0874e0..e07b78c 100644 (file)
@@ -2,6 +2,7 @@ use utf8;
 {
 
 '' => {
+       "\e"=> 'q',
        '[' => ['mo'],
        ']' => ['mo'],
        '{' => ['mo'],
index ef31e6b..689ee84 100644 (file)
@@ -22,13 +22,6 @@ Html({
 
 <ul id="rows">
 
-<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 $@;
index 21ca05b..90185c9 100644 (file)
@@ -1,6 +1,8 @@
 use utf8;
 
 my %common = (
+       "\e"=> ['me mode', '+'],
+
        'H' => ['pm'], # top-page
        'j' => ['pm'], # next-entry, next-undeleted
        'k' => ['pm'], # previous-entry, previous-undeleted
@@ -151,6 +153,7 @@ my %common = (
 }, # compose
 
 w => {
+       "\e"=> ['me mode', '+'],
        'D' => ['co'],
        'd' => 'wD',
        'N' => ['co'],
@@ -164,6 +167,7 @@ w => {
 }, # flag
 
 '/~' => {
+       "\e"=> ['me mode', '+'],
        A => [undef],
        b => ['X arg'],
        B => ['arg'],
index f3909fe..3ce3d02 100644 (file)
--- a/mutt.plp
+++ b/mutt.plp
@@ -22,13 +22,6 @@ Html({
 
 <ul id="rows">
 
-<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 $@;
index 3115e28..7e46c37 100644 (file)
@@ -22,18 +22,13 @@ Html({
 
 <ul id="rows">
 
-<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);
+$_->{"\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]);
 :>
index a7be846..6d8c499 100644 (file)
@@ -22,12 +22,6 @@ Html({
 
 <ul id="rows">
 
-<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 $@;
index e4f99e6..a4c1d7e 100644 (file)
@@ -127,7 +127,7 @@ key => {
 'g8' => ["char hex val$sign{_}ue$sign{_}s"],
 'g0' => ["virtual bol"],
 'g-' => ["earlier undo"],
-'g^['=> ["esc"],
+"g\e"=> ["normal mode"],
 'g]' => ["go to tselect"],
 'g^]'=> ["go to tjump"],
 'g;' => ["to prev change pos"],
@@ -172,7 +172,7 @@ key => {
 'gw' => ["for$sign{_}mat still"],
 'gx' => ["Netrw$sign{_}BrowseX"],
 
-'Z^['=> ["esc"],
+"Z\e"=> ["normal mode"],
 'ZQ' => [" :q! (force)"],
 'ZZ' => [" :wq (write)"],
 
@@ -181,7 +181,7 @@ key => {
 'z-' => ["line at bottom bol", "don't (-) see any further"],
 'z=' => ["sug$sign{_}gest spell$sign{_}ing"],
 'z.' => ["line at center bol"],
-'z^['=> ["esc"],
+"z\e"=> ["normal mode"],
 
 'za' => ["toggle fold"],
 'zA' => ["toggle fold rec$sign{_}urs$sign{_}ive$sign{_}ly"],
@@ -228,7 +228,7 @@ key => {
 '[/' => ["start of C com$sign{_}m$sign{_}ent"],
 '[{' => ["previous open {"],
 '[[' => ["section back$sign{_}ward$sign{_}s"],
-'[^['=> ["esc"],
+"[\e"=> ["normal mode"],
 '[]' => [qq'<span style="font-variant:small-caps">section</span> back$sign{_}ward$sign{_}s'],
 
 '[c' => ["start of change backw$sign{_}ards"],
@@ -250,7 +250,7 @@ key => {
 '])' => ["next open )"],
 ']/' => ["end of C com$sign{_}m$sign{_}ent"],
 '][' => [qq'<span style="font-variant:small-caps">section</span> forw$sign{_}ard'],
-']^['=> ["esc"],
+"]\e"=> ["normal mode"],
 ']]' => ["section forw$sign{_}ard"],
 ']}' => ["next open }"],
 
@@ -274,7 +274,7 @@ key => {
 '^w+' => ["height incr$sign{_}ease"],
 '^w-' => ["height decr$sign{_}ease"],
 '^w=' => ["same height"],
-'^w^['=> ["esc"],
+"^w\e"=> ["normal mode"],
 '^w]' => ["split, to tag"],
 '^w}' => ["pre$sign{_}view tag"],
 '^w|' => ["set width"],
@@ -310,7 +310,7 @@ key => {
 '^wx' => ["ex$sign{_}chan$sign{_}ge"],
 '^wz' => ["close pre$sign{_}view"],
 
-'^wg^['=> ["esc"],
+"^wg\e"=> ["normal mode"],
 '^wg]' => ["split, :ts$sign{_}elect"],
 '^wg}' => [":ptj$sign{_}ump to tag"],
 '^wg^]'=> ["split, :tj$sign{_}ump"],
@@ -323,7 +323,7 @@ key => {
 'v=' => ["re$sign{_}ind$sign{_}ent"],
 'v>' => ["ind$sign{_}ent"],
 'v~' => ["toggle case"],
-'v^['=> ["esc"],
+"v\e"=> ["normal mode"],
 'v^]'=> ["jump to tag"],
 
 'va' => ["ex$sign{_}tend area"],
@@ -355,7 +355,7 @@ key => {
 'vy' => ["yank area"],
 'vY' => ["yank lines"],
 
-'vg^['=> ["esc"],
+"vg\e"=> ["visual mode"],
 'vg?' => ["rot13 encode"],
 'vgJ' => ["join literal$sign{_}ly"],
 'vgq' => ["for$sign{_}mat"],
@@ -364,7 +364,7 @@ key => {
 "va'" => ["quoted string"],
 'va<' => ["&lt;&gt; block"],
 'va[' => ["[] block"],
-'va^['=> ["esc"],
+"va\e"=> ["visual mode"],
 
 'vab' => ["() block"],
 'vaB' => ["{} Block"],
@@ -388,7 +388,7 @@ key => {
 
 'i^@' => ["last insert"],
 'i^^' => ["toggle :lmap usag$sign{_}e"],
-'i^[' => ["esc"],
+"i\e" => ["normal mode"],
 'i^]' => ["abbrev$sign{_}iate"],
 'i^_' => ["toggle lang$sign{_}uage"],
 
@@ -417,12 +417,13 @@ key => {
 '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^x^[' => ["esc"],
+"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"],
index 02465d8..d0c259f 100644 (file)
--- a/vi.inc.pl
+++ b/vi.inc.pl
@@ -2,7 +2,6 @@ use utf8;
 {
 
 '' => {
-       "\e"=> ["mo mode"],
        '~' => ["co undo"],
        '!' => ["co argm undo modec"],
        '@' => ["co arg undo"],
@@ -122,6 +121,8 @@ use utf8;
 g => {
        lead => "g",
 
+       "\e"=> ["mo mode"],
+
        '~' => ["co argm ext vim6"],
        '@' => ["co ext vim7 new"],
        '#' => ["pm ext vim6"],
@@ -184,7 +185,8 @@ g => {
 Z => {
        lead => "Z",
 
-       '^['=> ["mo mode"],
+       "\e"=> ["mo mode"],
+       '^['=> "\e",
 
        'Q' => ["co ext vim6"],
        'Z' => ["co"],
@@ -193,12 +195,14 @@ Z => {
 z => {
        lead => "z",
 
+       "\e"=> ["mo mode"],
+
        '^' => ["po"],
        '+' => ["po"],
        '-' => ["po"],
        '=' => ["co ext vim7 new"],
        '.' => ["po"],
-       '^['=> ["mo mode"],
+       '^['=> "\e",
 
        'a' => ["co ext vim6 folding"],
        'A' => ["co ext vim6 folding"],
@@ -243,6 +247,8 @@ z => {
 '[' => {
        lead => "[",
 
+       "\e"=> ["mo mode"],
+
        "`" => ["pm ext vim6"],
        '#' => ["pm"],
        '(' => ["pm"],
@@ -251,7 +257,7 @@ z => {
        "'" => "[` ^", # ext vim6
        '{' => ["pm"],
        '[' => ["pm"],
-       '^['=> ["mo mode"],
+       '^['=> "\e",
        ']' => ["pm"],
 
        'c' => ["pm"],
@@ -273,6 +279,8 @@ z => {
 ']' => {
        lead => "]",
 
+       "\e"=> ["mo mode"],
+
        "`" => ["pm ext vim6"],
        '#' => ["pm"],
        ')' => ["pm"],
@@ -280,7 +288,7 @@ z => {
        "'" => "]` ^", # ext vim6
        '/' => ["pm"],
        '[' => ["pm"],
-       '^['=> ["mo mode"],
+       '^['=> "\e",
        ']' => ["pm"],
        '}' => ["pm"],
 
@@ -303,6 +311,8 @@ z => {
 '^w' => {
        lead => $ascii ? "'w"  : "ŵ",
 
+       "\e"=> ["mo mode"],
+
        '<' => ["po"],
        '>' => ["po"],
        '^' => ["co"],
@@ -310,7 +320,7 @@ z => {
        '+' => ["po"],
        '-' => ["po"],
        '=' => ["po"],
-       '^['=> ["mo mode"],
+       '^['=> "\e",
        ']' => ["po"],
        '}' => ["po"],
        '|' => ["po"],
@@ -351,7 +361,8 @@ z => {
 '^wg' => {
        lead => $ascii ? "'wg" : "ŵg",
 
-       '^['=> ["mo mode"],
+       "\e"=> ["mo mode"],
+       '^['=> "\e",
        ']' => ["po"],
        '}' => ["po"],
        '^]'=> ["po"],
@@ -360,13 +371,15 @@ z => {
 }, # mode ^w g
 
 v => {
+       "\e"=> ["mo mode"],
+
        '!' => ["co"],
        ':' => ["mo modec"],
        '<' => ["co"],
        '=' => ['co undo'],
        '>' => ['co'],
        '~' => ["co ext vim6"],
-       '^['=> ["mo mode"],
+       '^['=> "\e",
        '^]'=> ["po"],
        '^\\'=>'^\\',
 
@@ -415,7 +428,9 @@ v => {
 vg => {
        lead => "g",
 
-       '^['=> ["mv modev"],
+       "\e"=> ["mv modev"],
+
+       '^['=> "\e",
        '?' => ["co ext vim6"],
        'J' => ['co ext vim6'],
        'q' => ["co ext vim6"],
@@ -424,6 +439,8 @@ vg => {
 }, # mode v g
 
 va => {
+       "\e"=> ["mv modev"],
+
        '(' => 'vab',
        ')' => 'vab',
        '`' => "va'",
@@ -433,7 +450,7 @@ va => {
        '>' => 'va&lt;',
        '[' => ['pm ext vim6'],
        '{' => 'vaB',
-       '^['=> ['mv modev'],
+       '^['=> "\e",
        ']' => 'va[',
        '}' => 'vaB',
 
@@ -473,9 +490,11 @@ va => {
 #}, # mode c
 
 i => {
+       "\e" => ["mo mode"],
+
        '^@' => ["co"],
        '^^' => ["co ext vim6"],
-       '^[' => ["mo mode"],
+       '^['=> "\e",
        '^]' => ["co ext vim6"],
        '^_' => ["co ext vim6"],
        '^\\'=>'^\\',
@@ -511,6 +530,8 @@ i => {
 'i^g' => {
        lead => $ascii ? "'g"  : "ĝ",
 
+       "\e"=> ['mi modei'],
+
        'k' => ['pm'],
        'j' => ['pm'],
        'u' => ['co'],
@@ -520,7 +541,9 @@ i => {
 '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"],
index b54417d..74846f5 100644 (file)
@@ -23,17 +23,12 @@ Html({
 
 <ul id="rows">
 
-<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';
+$_->{"\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});