welcome: please sign in
location: BreakingChanges

This page is about changes to Conkeror that may make it necessary for you to update your rc, or that change UI behavior in a non-trivial way. We recommend subscribing to this page, so that you will be notified by email of important changes to Conkeror.


February 4, 2016

Conkeror now requires Xulrunner 2.0 (Firefox 4) or greater.

May 1, 2014

The keyword $match_required was renamed to $require_match. (Following Emacs convention.)

Completers are now instantiated with the new keyword, so calls like "all_word_completer(...)" become "new all_word_completer(...)".

javascript_completer no longer treats the current buffer or window as special. Instead of taking a buffer as its argument, it takes any object, and that object is the scope from which it draws completions.

define_webjump keyword $description was renamed to $doc.

define_webjump keyword $argument has been removed. It was found unnecessary for this value to be provided explicitly by webjumps, as it can be derived from other webjump properties.

get_shell_command_completer replaced by shell_command_completer (instantiated with new).

'require_match' is now a property of webjumps instead of a property of completions objects. Further discussion of this change is here below:

December 5, 2012

Spellchecking is no longer enabled by default. To allow Gecko to decorate your text boxes with red marks, put the following in your rc:

session_pref("layout.spellcheckDefault", 1);

December 2, 2012

The deprecated procedures add_delicious_webjumps and add_lastfm_webjumps have now been removed. Use define_delicious_webjumps and define_lastfm_webjumps instead.

April 6, 2012

hints-minibuffer-annotation-mode is now enabled by default. To disable:


March 10, 2012

Variable hints_display_url_panel removed. Instead of the url-panel, Conkeror now has hints-minibuffer-annotation-mode. To use it:


February 15, 2012

buffer_loaded_hook now fires only for the main document of the buffer, not documents in subframes.

February 12, 2012

The test property of page-mode objects is now an array.

January 31, 2012

January 29, 2012

January 27, 2012

January 5, 2012

clusty webjump removed. clusty no longer exists.

October 13, 2011

Conkeror now depends on XULRunner 1.9.1 or higher.

September 23, 2011

The copy command now copies the action attribute of the form when called on a submit button.

September 22, 2011

Google-maps: changed bindings '+' and '-' to 'C-c +' and 'C-c -', because it is poor practice to override basic browsing keys then they are still clearly useful on the site in question.

September 16, 2011

Renamed get_file_in_path to find_file_in_path.

September 6, 2011

Formfill is now enabled by default. To turn it off, do: session_pref("browser.formfill.enable", false);

September 5, 2011

youtube_scrape_function and associated helpers removed.


Note: after version 0.9.3, the Conkeror project switched to a more traditional version number scheme. There was one final milestone in the old system, called 0.9.4, then we began preparing for a 1.0 release. Consequently, as you read this page, the meaning of version numbers changes at this point. Under the old system (below this paragraph on this page), the listed changes took place during that version. For example, the changes under the head 0.9.3 took place while Conkeror's version was 0.9.3. Under the new system (above this paragraph), the listed changes took place in the runup to the release of the listed version.


January 6, 2011

In the new-tabs module, the widgets that show the buffer index in each tab now have the class "tab2-index" instead of "tab2-icon". This change affects anybody who has written a theme which styles the new-tabs tab bar.

December 31, 2010

December 29, 2010

December 20, 2010

Reddit-mode is no longer loaded by default. Consensus was that it is a confusing mode, mainly because of how it overrides several default browser objects. If you use this mode, you will now need to load it by putting the following in your rc:


December 6, 2010

The environment variable 'HOME' is now checked on Windows, in get_home_directory. This counts as a breaking change because windows users who happen to have this variable set may now need to adjust their setup, as Conkeror will look for the rc in 'HOME' before it looks in 'USERPROFILE' or 'HOMEDRIVE'+'HOMEPATH'.

November 5, 2010

Module search-engine.js replaced by opensearch.js. API for defining opensearch webjumps has changed to be more conventional. Opensearch webjumps can now be defined like either of the following:

define_opensearch_webjump("foo", make_file("/opensearch/files/foo.xml"));

define_opensearch_webjump("foo", "foo.xml");

November 3, 2010

The browser object browser-object-links, which is used by follow, copy, etc, no longer matches anchors which do not have an href attribute.

October 12, 2010

The eval-expression command (M-:) now evaluates directly in application scope. This lets you do things like set user variables and define functions without fully qualifying names with "conkeror.".

October 9, 2010

Page-modes no longer bind alternative keys for keys that they shadow in the normal keymaps. These were bindings like 'C-c f' for follow, etc. The key C-z can now be used as a prefix to access bindings that are shadowed by a page-mode keymap.


September 26, 2010

Input-modes removed. Instead of an input-mode display in the minibuffer, there is now a keymaps-display.

overlink_mode rewritten

September 17, 2010

Hinting now performs a case-sensitive match if the user's text includes upper-case letters.

September 15, 2010

Renamed stackoverflow-mode to stackexchange-mode.

June 24, 2010

define_key(minibuffer_base_keymap, "C-l", "minibuffer-forward-char");
define_key(content_buffer_text_keymap, "C-l", "forward-char");

to this:

define_key(text_keymap, "C-l", "forward-char");

May 19, 2010

Due to a change in Mozilla as of XULRunner 1.9.3a5pre, Conkeror's feature of automatically loading glue code for extensions is no longer possible. This means that when you have one of the previously supported extensions installed, you will no longer automatically have Conkeror commands for using the extension. The extensions that were previously supported in this way were adblockplus, dom-inspector, noscript, and venkman. If you have any of these extensions installed, you will now have to load the glue module from your rc, with a line like the following, substituting in the appropriate module name:


With some of these modules, loading the module when the extension is not installed could result in an error, so to be safe, you could wrap the call to 'require' in a try/catch block:

try { require("dom-inspector"); } catch (e) {}

Further information: http://bugs.conkeror.org/issue272

May 8, 2010

The variable download_buffer_automatic_open_target can no longer be an array of two targets. This is a reversion from 2009-06-07 back to how it was before. The behavior of the download-show command is now configured independently of this variable. To configure download-show, use set_handler and alternates. The following handlers are provided: download_show_new_window, download_show_new_buffer, download_show_new_buffer_background. The default handler of download_show is alternates(download_show_new_buffer, download_show_new_window).

April 6, 2010

Function load_rc no longer supports loading arbitrary js files. Use load instead.

Function load_rc_file removed. Use load instead.

April 5, 2010

The module casual-spelling now loads into the scope casual_spelling. Its functions and variables were renamed accordingly.

March 22, 2010

call_after_load now takes a feature name, not a filename. In general this simply means trimming off any ".js" extension.

Modules should have an in_module assertion as their first expression. For modules to be loaded directly into application scope, it should be in_module(null);

Modules should have as their last expression a provide call, like provide("feature"); where "feature" is the name of the feature provided by the module.


March 7, 2010

emacswiki webjump removed. better version posted on Webjumps.

February 28, 2010

M-< and home keys now scroll to the top left corner of the buffer.

February 25, 2010

minibuffer.read_url now returns a load_spec instead of a simple string.

February 21, 2010

The command confirm-quit has been removed. To have a quit confirmation, put the following in your rc:

         function () {
             var w = get_recent_conkeror_window();
             var result = (w == null) ||
                 "y" == (yield w.minibuffer.read_single_character_option(
                     $prompt = "Quit Conkeror? (y/n)",
                     $options = ["y", "n"]));
             yield co_return(result);

November 22, 2009

Youtube scraper functions renamed to more accurate names. This affects anyone who has customized youtube_scrape_function in his or her rc.

Also, a scraper youtube_scrape_1080p was added.

November 19, 2009

Gitweb summary webjumps are now implemented as index webjumps. The webjump-get-index command and index_webjumps_directory variable are used rather than the previous gitweb equivalents. Existing gitweb opml files can be moved to the new locations using something like:

cd ~/.conkerorrc
mkdir index-webjumps
for f in gitweb-webjumps-opml/*.opml; do
  mv $f index-webjumps/$(basename $f .opml).index
rmdir gitweb-webjumps-opml

The $completer option is no longer available.

November 6, 2009

hints_auto_exit_delay = 500;

hints_ambiguous_auto_exit_delay = 500;

November 5, 2009

November 3, 2009


define_key(content_buffer_anchor_keymap, "d", "follow",
           $browser_object = browser_object_focused_element);

October 20, 2009

October 12, 2009

external_content_handlers.set("application/pdf", "xpdf");
external_content_handlers.set("image/*", "display");

0.9 and earlier

September 22, 2009

September 1, 2009

August 30, 2009

August 26, 2009

August 24, 2009

August 12, 2009

June 6, 2009

June 5, 2009

April 27, 2009

Reddit-mode no longer automatically goes to the next (or previous) page when the end of the link list is reached. To get the old behavior back, put the following in your rc:

reddit_end_behavior = 'page';

March 20, 2009

In order to make Conkeror compatible with native toolkit theming, Conkeror's themes have undergone a big rewrite.

From now on, the right way to change Conkeror's gui colors is to do so at the OS level, for example, with a GTK theme.

February 20, 2009

browser_prevent_automatic_form_focus_mode is no longer enabled by default. To use it, put the following in your rc:


February 8, 2009

The alternative url (which is used when no argument is supplied by the user when invoking a webjump) should now be specified explicitly using the $alternative keyword to define_webjump. The previous method of specifying the handler as an array of two strings was peculiar and has been removed.

Please change webjumps like


January 28, 2009

The command change-current-directory was renamed to change-directory.

January 8, 2009

The -cwd command-line argument (which allowed setting the cwd for new buffers created), and would typically be used via the syntax -cwd $PWD, has been removed.

Instead, the cwd is obtained automatically, so there is no need to specify it explicitly anymore.

January 1, 2009

define_wikipedia_webjumps now names webjumps with the prefix wikipedia- by default. To get the old behavior back, do:

wikipedia_webjumps_format = "%s";

The "ALL" cookie was removed from the call style of define_wikipedia_webjumps. Now, define_wikipedia_webjumps defines all webjumps when called with no args.

December 31, 2008

The alias add_webjump was removed. Please use define_webjump.

The $no_argument keyword to define_webjump was replaced by $argument, and the term "maybe" was replaced by "optional". See WritingWebjumps for more details.

December 23, 2008

String webjumps must now include an url scheme. For example, a webjump to "www.example.com" will no longer work. It has to be "http://www.example.com". This is to properly support auto-generation of the "alternative" webjump when a string webjump is called without an argument.

December 22, 2008

There will be temporary breakage of the describe-bindings command while key categories are re-implemented as command categories.

The call form of define_sticky_modifier has changed. The second argument should now be a string containing just the letters representing the modifiers. For example, the string "CM" would represent Control and Meta.

define_key no longer accepts the keyword $category.

The names of some keys in the call form of define_key have changed. With the exception of "space", all punctuation characters are now given as the characters themselves, rather than the name of the character. Also, characters such as "*" can now be given directly instead of the old form "S-8".

save_uri in save.js now uses the cache by default. This affects the behavior of all of the save commands.

December 18, 2008

xkcd-mode: no longer insert title by default. The variable xkcd_add_title now controls this behavior. To make xkcd-mode add the title text below the comic, put this in your rc:

This change was made because it is a reasonable expectation that under default configuration, conkeror should display all web pages as intended by their authors. Since xkcd-mode has an additional feature (follow-next and follow-previous patterns for navigating xkcd) which is non-breaking, it seemed best to keep this page mode as one that loads by default, but to make its content-editing feature one that must be explicitly enabled by the user.

October 27, 2008

Conkeror no longer loads gmail-mode automatically. This default was changed because gmail mode changes so many key bindings that it renders the browser practically unusable without a mouse, for people who do not know all of gmail's special key bindings. To enable gmail-mode in your rc, do the following:

October 27, 2008

The functions open_in_browser and browser_element_follow were removed. If you use these function in your rc, you can replace all calls to it with calls to browser_object_follow. However, most direct uses of this in the rc are now unnecessary, because interactive commands can now inherit their behavior from existing commands, such as follow.

September 15, 2008

Caret-mode no longer clears the selection when enabled. This was to make it possible to modify an existing selection with caret-mode. The old behavior should be able to be duplicated via caret_mode_enable_hook. If anyone does up such code, please post it here.

September 15, 2008

The copy command now focuses focus-able elements.

September 11-12, 2008

The docstring and handler arguments of the function interactive are now positional. Null may be passed for the docstring. This change affects anyone defining commands in their rc.

September 10, 2008

Conkeror now loads .conkerorrc in the user's home directory as the default rc if the preference conkeror.rcfile is not set. Conkeror can be made to not try to load any rc by setting the preference conkeror.rcfile to the empty string. See Conkeror RC for more details.

August 21, 2008

Changed interactive declaration form, and key binding form, for prefix commands such as universal argument and the browser-object-classes.

August 19, 2008

The auxiliary program spawn-process-helper was renamed to conkeror-spawn-helper so that its name can identify what package it belongs to when installed to a system bin directory.

August 14, 2008

Previously, isearch would always start from the top of the viewport. Now it starts from the location of the caret, when that exists. Typical situations when the caret will have a location are: when you have used caret-mode to place the caret somewhere; when you have made a selection; when you have previously performed an isearch. Note: the caret need not be visible to have a location. To clear to location of the caret, use the unfocus command, which is normally bound to escape. This change in behavior was made to accomodate vi-style non-interactive isearch repeat (the relevant commads are isearch-continue-forward and isearch-continue-backward).

June 3, 2008

The command line switches -e and -f now suppress the default action, meaning that you do not need to give -batch on the command line with either of these switches to prevent a homepage window from opening.

April 12, 2008

tab-bar.js is no longer loaded by default. tab-bar.js now automatically enables tab-bar-mode when loaded. To turn on tab-bar-mode, put this in your rc:

Conkeror.org: BreakingChanges (last edited 2016-02-05 03:13:53 by scottjad)