// File: ~/.conkerorrc // Author: Collin J. Doering // Date: Mar 27, 2011 // REKAHSOFT-MINI // the default page for new buffers. homepage = "http://www.google.ca"; // load urls from the command line in new buffers instead // of new windows. url_remoting_fn = load_url_in_new_buffer; // load download buffers in the background in the current // window, instead of in new windows. download_buffer_automatic_open_target = OPEN_NEW_BUFFER_BACKGROUND; // save a keystroke when selecting a dom node by number. hints_auto_exit_delay = 500; hints_ambiguous_auto_exit_delay = 500; // display properties of the current selected node during // the hints interaction. hints_display_url_panel = true; // default directory for downloads and shell commands. cwd = get_home_directory(); //cwd.append("downloads"); // automatically handle some mime types internally. content_handlers.set("application/pdf", content_handler_save); // external programs for handling various mime types. external_content_handlers.set("application/pdf", "zathura"); external_content_handlers.set("video/*", "urxvtc -e mplayer"); // use emacsclient as external editor. editor_shell_command = "emacsclient"; // view source in your editor. view_source_use_external_editor = true; // let xkcd-mode put the funny alt text into the page. xkcd_add_title = true; // use session module require("session.js"); session_auto_save_auto_load = true; // Put history completion along side webjumps url_completion_use_history = true; // Setup some handy web jumps define_webjump("wolframalpha", "http://www.wolframalpha.com/input/?i=%s"); define_webjump("duckduckgo", "https://duckduckgo.com/?q=%s"); // Create some shortcuts to the webjumps above webjumps.ddg = webjumps.duckduckgo webjumps.wa = webjumps.wolframalpha // START SECTION: thanks to http://conkeror.org/Webjumps function chickadee_completer (input, cursor_position, conservative) { var completions = []; var content = yield send_http_request( load_spec({uri: "http://api.call-cc.org/cdoc/ajax/prefix?q="+ encodeURIComponent(input)})); if (content.responseText) { var parser = Cc["@mozilla.org/xmlextras/domparser;1"] .createInstance(Ci.nsIDOMParser); var doc = parser.parseFromString(content.responseText, "text/xml"); var res = doc.getElementsByTagName("li") for (let i = 0, n = res.length; i < n; ++i) { completions.push(res[i].textContent); } } yield co_return(prefix_completer($completions = completions) (input, cursor_position, conservative)); } define_webjump("chickadee", "http://api.call-cc.org/cdoc?q=%s&query-name=Lookup", $alternative = "http://api.call-cc.org/doc/", $completer = chickadee_completer); define_webjump("eggref4", "http://wiki.call-cc.org/eggref/4/%s", $alternative = "http://wiki.call-cc.org/chicken-projects/egg-index-4.html"); define_webjump("srfi", function (i) { return "http://srfi.schemers.org/srfi-" + i + "/srfi-" + i + ".html"; }); define_webjump("commandlinefu", function(term) { return 'http://www.commandlinefu.com/commands/matching/' + term.replace(/[^a-zA-Z0-9_\-]/g, '') .replace(/[\s\-]+/g, '-') + '/' + btoa(term); }, $argument = 'optional', $alternative = "http://www.commandlinefu.com/"); define_webjump("emacswiki", "http://www.google.com/cse?cx=004774160799092323420%3A6-ff2s0o6yi"+ "&q=%s&sa=Search&siteurl=emacswiki.org%2F", $alternative="http://www.emacswiki.org/"); define_webjump("savannah", "https://savannah.gnu.org/search/?words=%s&type_of_search=soft"); define_webjump("youtube", "http://www.youtube.com/results?search_query=%s&search=Search"); // END SECTION // Do a google search if a webjump is not recognized read_url_handler_list = [read_url_make_default_webjump_handler("duckduckgo")]; // recognize urls a little diffently (allow one worded default webjumps) function possibly_valid_url (str) { return (/[\.\/:]/.test(str)) && !(/\S\s+\S/.test(str)) && !(/^\s*$/.test(str)); } // turn off mode line mode_line_mode(false); // force scrolling bars so that incremental search (isearch) works and mousewheel scrolling function enable_scrollbars (buffer) { buffer.top_frame.scrollbars.visible = true; } add_hook("create_buffer_late_hook", enable_scrollbars); // Turn on password management in XUL runner session_pref("signon.rememberSignons", true); session_pref("signon.expireMasterPassword", false); session_pref("signon.SignonFileName", "signons.txt"); Cc["@mozilla.org/login-manager;1"].getService(Ci.nsILoginManager); // init // Some keybindings i like from firefox + pentadactyl, and luakit define_key(content_buffer_normal_keymap, "C-f", "buffer-next"); define_key(content_buffer_normal_keymap, "C-b", "buffer-previous"); define_key(content_buffer_normal_keymap, "j", "cmd_scrollLineDown"); define_key(content_buffer_normal_keymap, "k", "cmd_scrollLineUp"); define_key(content_buffer_normal_keymap, "J", "follow-new-buffer-background"); define_key(default_global_keymap, "C-x C-b", "switch-to-buffer"); // Some code thanks to retroj on #conkeror@irc.freenode.net define_browser_object_class( "history-url", null, function (I, prompt) { check_buffer (I.buffer, content_buffer); var result = yield I.buffer.window.minibuffer.read_url( $prompt = prompt, $use_webjumps = false, $use_history = true, $use_bookmarks = false); yield co_return (result); }, $hint = "choose url from history"); interactive("find-url-from-history", "Find a page from history in the current buffer", "find-url", $browser_object = browser_object_history_url); interactive("find-url-from-history-new-buffer", "Find a page from history in the current buffer", "find-url-new-buffer", $browser_object = browser_object_history_url); function history_clear () { var history = Cc["@mozilla.org/browser/nav-history-service;1"] .getService(Ci.nsIBrowserHistory); history.removeAllPages(); } interactive("history-clear", "Clear the history.", history_clear); // Disable whitelist (Causes extensions from unknown/unsigned sites to silently fail if not enabled!) session_pref("xpinstall.whitelist.required", false);