duckduckgo_anchor_keymap: remove binding of duckduckgo-follow-current (return)
[conkeror.git] / modules / page-modes / duckduckgo.js
blob2d08328de7708560c58eee972e5354b0e82ff031
1 /**
2  * (C) Copyright 2012 John J. Foerch
3  *
4  * Use, modification, and distribution are subject to the terms specified in the
5  * COPYING file.
6 **/
8 require("content-buffer.js");
10 define_keymap("duckduckgo_keymap", $display_name = "duckduckgo");
11 define_keymap("duckduckgo_anchor_keymap", $display_name = "duckduckgo-anchor");
12 define_keymap("duckduckgo_select_keymap", $display_name = "duckduckgo-select");
14 function duckduckgo_call_command (buffer, command) {
15     var s = Components.utils.Sandbox(buffer.top_frame);
16     s.window = buffer.top_frame.wrappedJSObject;
17     s.document = buffer.document.wrappedJSObject;
18     Components.utils.evalInSandbox("window."+command+"()", s);
21 function duckduckgo_command (command) {
22     return function (I) {
23         duckduckgo_call_command(I.buffer, command);
24     };
27 // The bindings were found in <http://duckduckgo.com/d676.js>.  Each one
28 // corresponds to a call to 'new YAHOO.util.KeyListener(...)', from which
29 // the keycode and function name can be gotten.
31 interactive("duckduckgo-down",
32     "Calls DuckDuckGo command.",
33     duckduckgo_command("nkda"));
35 interactive("duckduckgo-up",
36     "Calls DuckDuckGo command.",
37     duckduckgo_command("nkua"));
39 interactive("duckduckgo-focus-search",
40     "Calls DuckDuckGo command.",
41     duckduckgo_command("nks"));
43 interactive("duckduckgo-related-topics",
44     "Calls DuckDuckGo command.",
45     duckduckgo_command("nkr"));
47 interactive("duckduckgo-main-results",
48     "Calls DuckDuckGo command.",
49     duckduckgo_command("nkm"));
51 interactive("duckduckgo-bang-dropdown",
52     "Calls DuckDuckGo command.",
53     duckduckgo_command("nkex"));
55 interactive("duckduckgo-domain-search",
56     "Calls DuckDuckGo command.",
57     duckduckgo_command("nkd"));
59 interactive("duckduckgo-follow-current",
60     "Calls DuckDuckGo command.",
61     alternates(duckduckgo_command("nke"),
62                duckduckgo_command("nkn")));
64 define_key(duckduckgo_keymap, "j", "duckduckgo-down");
65 define_key(duckduckgo_keymap, "k", "duckduckgo-up");
66 define_key(duckduckgo_keymap, "down", "duckduckgo-down");
67 define_key(duckduckgo_keymap, "up", "duckduckgo-up");
68 define_key(duckduckgo_keymap, "r", "duckduckgo-related-topics");
69 define_key(duckduckgo_keymap, "m", "duckduckgo-main-results");
70 define_key(duckduckgo_keymap, "/", "duckduckgo-focus-search");
71 define_key(duckduckgo_keymap, "!", "duckduckgo-bang-dropdown");
72 define_key(duckduckgo_keymap, "d", "duckduckgo-domain-search");
73 define_key(duckduckgo_select_keymap, "return", "duckduckgo-follow-current");
75 define_keymaps_page_mode("duckduckgo-mode",
76     build_url_regexp($domain = "duckduckgo"),
77     { normal: duckduckgo_keymap,
78       anchor: duckduckgo_anchor_keymap,
79       select: duckduckgo_select_keymap },
80     $display_name = "DuckDuckGo");
82 page_mode_activate(duckduckgo_mode);
84 provide("duckduckgo");