Skip to content

Instantly share code, notes, and snippets.

@mooz
Created January 16, 2012 08:46
Show Gist options
  • Save mooz/1619782 to your computer and use it in GitHub Desktop.
Save mooz/1619782 to your computer and use it in GitHub Desktop.
site-local-keymap-settings.ks.js
// Insert codes below into PRESERVE area of your .keysnail.js file.
(function () {
var local = {};
plugins.options["site_locak_keymap.local_keymap"] = local;
function fake(k, i, type) function () { key.feed(k, i, type); };
function pass(k, i, type) [k, fake(k, i, type)];
function ignore(k) [k, null];
function passThenFocus(k, i, selector, type) {
return [k, function () {
key.feed(k, i, type);
let elem = content.document.querySelector(selector);
if (elem) elem.focus();
}];
}
local["^https?://mail.google.com/mail/"] = [
passThenFocus(['g', 'i'], 3, "#canvas_frame"),
passThenFocus(['g', 's'], 3, "#canvas_frame"),
passThenFocus(['g', 't'], 3, "#canvas_frame"),
passThenFocus(['g', 'd'], 3, "#canvas_frame"),
passThenFocus(['g', 'a'], 3, "#canvas_frame"),
passThenFocus(['g', 'b'], 3, "#canvas_frame"),
passThenFocus(['g', 'c'], 3, "#canvas_frame"),
passThenFocus(['g', 'k'], 3, "#canvas_frame"),
// thread list
pass(['*', 'a'], 3),
pass(['*', 'n'], 3),
pass(['*', 'r'], 3),
pass(['*', 'u'], 3),
pass(['*', 's'], 3),
pass(['*', 't'], 3),
// navigation
ignore('u'),
ignore('k'),
ignore('j'),
ignore('k'),
ignore('o'),
ignore('p'),
ignore('n'),
// application
ignore('c'),
ignore('/'),
ignore('q'),
ignore('?'),
// manipulation
ignore('x'),
ignore('s'),
ignore('y'),
// ignore('e'),
ignore('m'),
ignore('!'),
ignore('#'),
ignore('r'),
ignore('R'),
ignore('a'),
ignore('A'),
ignore('f'),
ignore('F'),
ignore('N'),
pass(['<tab>', 'RET'], 3),
ignore('ESC'),
ignore(']'),
ignore('['),
ignore('z'),
ignore('.'),
ignore('I'),
ignore('U'),
ignore('C-s'),
ignore('T')
];
local["^http://www.google.(co.jp|com)/reader/view/"] = [
// jump
pass(["g", "h"]),
pass(["g", "a"]),
pass(["g", "s"]),
pass(["g", "S"]),
pass(["g", "u"]),
pass(["g", "t"]),
pass(["g", "T"]),
pass(["g", "d"]),
pass(["g", "f"]),
pass(["g", "F"]),
pass(["g", "c"]),
pass(["g", "C"]),
pass(["g", "e"]),
pass(["g", "p"]),
// navigation
ignore("j"),
ignore("k"),
ignore("n"),
ignore("p"),
ignore("N"),
ignore("P"),
ignore("X"),
ignore("o"),
// item
ignore("s"),
ignore("L"),
ignore("t"),
ignore("e"),
ignore("f"),
ignore("S"),
ignore("d"),
ignore("v"),
ignore("c"),
ignore("C"),
ignore("m"),
ignore("A"),
ignore("T"),
// application
ignore("u"),
ignore("1"),
ignore("2"),
ignore("/"),
ignore("a"),
ignore("="),
ignore("-")
];
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment