The main way of extending Conkeror is by writing modes. Modes come in many types, to fill many roles. This page will give an overview of the different types of modes, and name some examples of each type.

1. Buffer Mode

A buffer-mode is a type of mode that can be enabled and disabled per-buffer, and whose effects are confined to an individual buffer. Some buffer-modes' function is to install a temporary keymap, like quote-mode and quote-next-mode. Other buffer-modes do more, like caret-mode.

2. Namespaces

(Is this the right page for this? Please move if not, delete this query if so)

To give your module its own namespace, give the file the extension .jsx

<df_> what is special about jsx?
<retroj> it gets its own namespace instead of being loaded into conkeror's global
namespace. when conkeror loads a jsx, it makes a context based on the filename,
like conkeror.casual_spelling
<df_> so it's still standard js?
<retroj> yes
<df_> thanks

3. Global Mode

browser_prevent_automatic_form_focus_mode

clicks_in_new_buffer_mode

daemon_mode

global_overlay_keymap_mode

overlink_mode

tab_bar_mode

note: this mode currently has two implementations. tab-bar.js and new-tabs.js.