welcome: please sign in
location: PageModes

1. Overview

Page modes, in the spirit of Emacs major modes and GreaseMonkey scripts, allow site-specific functionality to be implemented in Conkeror.

2. Loading, Activating, Deactivating

When we talk about page modes, there are three terms that we would do well not to confuse: loading, activating, and enabling.

Loading

Loading a page-mode means evaluating the module that contains a page-mode, usually by calling require on its file.

Activating

Activating a page-mode means calling page_mode_activate on a loaded page-mode, thus causing it to auto-enable when we visit a covered site. The opposite of activating is deactivating, which is calling page_mode_deactivate on a loaded page-mode to prevent it from auto-enabling.

Enabling
Enabling a page-mode is when you turn a page-mode on, to have an effect on the current buffer. Activated page-modes are enabled automatically when a covered page is visited.

Some page-modes are loaded by default, and some page-modes, when loaded, are auto-activated. To deactivate a loaded page-mode, call page_mode_deactivate on it, like this:

page_mode_deactivate(xkcd_mode);

To activate a loaded page-mode, call page_mode_activate on it, like this:

page_mode_activate(xkcd_mode);

To load a non-default page-mode, call require on its module name, like this:

require("duckduckgo");

To find out how to prevent a default page-mode from being loaded, see Modules.

3. Changing Coverage

It is not only possible, but easy, to change the coverage of a page-mode, for instance, to add a site to have it auto-enable for. The 'test' property of a page-mode is an array that can be pushed and popped to customize the coverage of the page-mode.

some_mode.test.push(build_url_regexp($domain = "example"));

4. Note About Key Bindings

Some page modes bind keys that override important Conkeror bindings like f and g. When such a page mode is in effect, you can still access shadowed bindings by using the prefix key C-z. For example, to call the follow command when gmail-mode is in effect, press C-z f.

5. Modes

Conkeror.org: PageModes (last edited 2013-10-27 20:32:30 by BruceConnor)