// Global configuration {{{ // Built-in {{{ // Don't let kill-buffer close the window can_kill_last_buffer = false; // don't use a new window for the download buffer download_buffer_automatic_open_target = [OPEN_NEW_BUFFER_BACKGROUND, OPEN_NEW_WINDOW]; // display the url before going to it in hints mode hints_display_url_panel = true; // don't use a homepage homepage = "about:blank"; // keep the found item selected after search mode ends isearch_keep_selection = true; // always use autocompletion in the minibuffer minibuffer_auto_complete_default = true; // T and O shouldn't leave the url highlighted minibuffer_read_url_select_initial = false; // use bookmarks rather than history for url completion (history gets included // anyway though) url_completion_use_bookmarks = false; url_completion_use_history = true; // use a single window, even when external programs open a url in conkeror url_remoting_fn = load_url_in_new_buffer; // }}} // Custom {{{ // Proxy information proxy_server_default = "127.0.0.1"; proxy_port_default = 8118; // }}} // }}} // Helper functions {{{ function set_proxy_session (window, server, port) { // {{{ if (server == "N") { session_pref ('network.proxy.type', 0); //direct connection window.minibuffer.message ("Direction connection to the internet enabled for this session"); } else { if (!server) server = proxy_server_default; if (!port) port = proxy_port_default; session_pref ('network.proxy.ftp', server); session_pref ('network.proxy.gopher', server); session_pref ('network.proxy.http', server); session_pref ('network.proxy.socks', server); session_pref ('network.proxy.ssl', server); session_pref ('network.proxy.ftp_port', port); session_pref ('network.proxy.gopher_port', port); session_pref ('network.proxy.http_port', port); session_pref ('network.proxy.socks_port', port); session_pref ('network.proxy.ssl_port', port); session_pref ('network.proxy.share_proxy_settings', 'true'); session_pref ('network.proxy.type', 1); window.minibuffer.message ("All protocols using "+server+":"+port+" for this session"); } } // }}} // }}} // Plugins {{{ require("clicks-in-new-buffer.js"); // {{{ // open new tabs in the background clicks_in_new_buffer_target = OPEN_NEW_BUFFER_BACKGROUND; // }}} require("new-tabs.js"); // {{{ // }}} require("page-modes/wikipedia.js"); // {{{ // automatically follow "did you mean" links on wikipedia search pages wikipedia_enable_didyoumean = true; // }}} require("session.js"); // {{{ // automatically load saved session on startup session_auto_save_auto_load = true; // }}} // }}} // Additional commands {{{ interactive("copy-current-url", // {{{ "Copy the current buffer's URL to the clipboard", function(I) { var text = I.window.buffers.current.document.location.href; writeToClipboard(text); I.window.minibuffer.message("Copied: " + text); }); // }}} interactive("q", // {{{ "Quit Conkeror", "quit"); // }}} interactive("set-proxy-session", // {{{ "set the proxy server for all protocols for this session only", function (I) { set_proxy_session( I.window, (yield I.minibuffer.read( $prompt = "server ["+proxy_server_default+"] or N: " )), (yield I.minibuffer.read( $prompt = "port ["+proxy_port_default+"]: " )) ); }); // }}} define_browser_object_class("root-url", // {{{ "Browser object which returns the root of a URL.", function(I, prompt) { return url_path_trim(I.buffer.current_uri.spec); }); // }}} interactive("root", // {{{ "Go to the root of the current URL", "find-url", $browser_object = browser_object_root_url); // }}} interactive("find-alternate-url-new-buffer", // {{{ "Edit the current URL in the minibuffer, to open in a new buffer", "find-url-new-buffer", $browser_object = browser_object_alternate_url, $prompt = "Find url"); // }}} // }}} // Webjumps {{{ define_webjump("imdb", "http://imdb.com/find?q=%s"); define_webjump("cpan", "http://search.cpan.org/search?query=%s&mode=all"); define_webjump("youtube", "http://www.youtube.com/results?search_query=%s&search=Search"); define_webjump("de", "http://pda.leo.org/?lp=ende&lang=de&searchLoc=0&cmpType=relaxed&relink=on§Hdr=off&spellToler=std&search=%s"); define_webjump("hi", "http://shabdkosh.com/s?e=%s"); define_webjump("trans", "http://translate.google.com/translate_t#auto|en|%s"); define_webjump("github", "http://github.com/%s"); define_webjump("e2", "http://everything2.com/index.pl?node=%s&searchy=search"); define_webjump("man", "http://tozt.net/cgi-bin/man/man2html?query=%s"); // XXX: this isn't officially supported, but it works for now webjumps["g"] = webjumps["google"]; webjumps["gl"] = webjumps["lucky"]; webjumps["urban"] = webjumps["slang"]; // }}} // Keybindings {{{ // commands are in modules/commands.js undefine_key(content_buffer_normal_keymap, "b"); undefine_key(content_buffer_normal_keymap, "g"); undefine_key(content_buffer_normal_keymap, "G"); undefine_key(content_buffer_normal_keymap, "u"); undefine_key(download_buffer_keymap, "d"); undefine_key(download_buffer_keymap, "p"); undefine_key(download_buffer_keymap, "o"); define_key(download_buffer_keymap, "space", "download-pause-or-resume"); define_key(download_buffer_keymap, "C-c", "download-cancel"); define_key(download_buffer_keymap, "t", "find-url-new-buffer"); define_key(download_buffer_keymap, "P", "paste-url-new-buffer"); define_key(content_buffer_normal_keymap, "L", "forward"); define_key(content_buffer_normal_keymap, "M-right", "forward"); define_key(content_buffer_normal_keymap, "H", "back"); define_key(content_buffer_normal_keymap, "M-left", "back"); define_key(content_buffer_normal_keymap, "g u", "up"); define_key(content_buffer_normal_keymap, "g U", "root"); define_key(content_buffer_normal_keymap, "o", "find-url"); define_key(content_buffer_normal_keymap, "O", "find-alternate-url"); define_key(content_buffer_normal_keymap, "t", "find-url-new-buffer"); define_key(content_buffer_normal_keymap, "T", "find-alternate-url-new-buffer"); define_key(content_buffer_normal_keymap, "k", "cmd_scrollLineUp"); define_key(content_buffer_normal_keymap, "j", "cmd_scrollLineDown"); define_key(content_buffer_normal_keymap, "h", "cmd_scrollLeft"); define_key(content_buffer_normal_keymap, "l", "cmd_scrollRight"); define_key(content_buffer_normal_keymap, "g g", "cmd_scrollTop"); define_key(content_buffer_normal_keymap, "G", "cmd_scrollBottom"); // XXX: these appear to not work yet define_key(content_buffer_normal_keymap, "0", "cmd_scrollBeginLine"); define_key(content_buffer_normal_keymap, "$", "cmd_scrollEndLine"); define_key(content_buffer_normal_keymap, "n", "isearch-continue-forward"); define_key(content_buffer_normal_keymap, "N", "isearch-continue-backward"); define_key(content_buffer_normal_keymap, "p", "paste-url"); define_key(content_buffer_normal_keymap, "P", "paste-url-new-buffer"); define_key(content_buffer_normal_keymap, "y", "copy-current-url"); define_key(content_buffer_normal_keymap, "C-c", "stop-loading"); define_key(content_buffer_normal_keymap, "C-[", "unfocus"); define_key(content_buffer_normal_keymap, "C-v", "quote-next-input-mode"); define_key(content_buffer_normal_keymap, "C-M-v", "quote-input-mode"); define_key(default_global_keymap, "d", "kill-current-buffer"); //define_key(default_global_keymap, "u", "undo-kill-buffer"); define_key(default_global_keymap, "/", "isearch-forward"); define_key(default_global_keymap, "?", "isearch-backward"); define_key(default_global_keymap, "b", "switch-to-buffer"); define_key(default_global_keymap, ":", "execute-extended-command"); define_key(default_global_keymap, "C-tab", "buffer-next"); define_key(default_global_keymap, "C-S-tab", "buffer-previous"); define_key(default_global_keymap, "g t", "buffer-next"); define_key(default_global_keymap, "g T", "buffer-previous"); // }}} // Hooks {{{ add_hook("window_initialize_hook", set_proxy_session); // }}} /* * TODO: * - make isearch wrap around * - undo close tab (undo-kill-buffer?) * - there might be an easier way to do copy-current-url, using "0" or * something? check this out * - smarter webjumps - cpan should go to the first search result * - default webjump should trigger on dns lookup failure * - reimplement flashblock maybe? * - session stuff doesn't save tab history */ // vim:ft=javascript: