Overview

Conkeror has a sophisticated keyboard interface for interacting with web content. Unfortunately, in this area, power comes at the price of some complexity. Conkeror's keymap system may seem more complex than that of its mentor software, Emacs, but this complexity is unavoidable given the complexity of the GUI-web environment that Conkeror must deal with. For example, there must be a set of key bindings for use in text boxes, and another for checkboxes, a set for viewing web pages, and another for non-webpage buffers. In fact many keymaps for the many different contexts of focus that the user can be in. When you want to bind a command so it is available in suitable contexts, you need to pick the proper keymap to bind it in. In this article, we will try to describe all of the available keymaps to help you select the right one.

At any moment a Conkeror window has a stack of current keymaps, with the keymaps most specific to the context at the top, and the most general at the bottom. Which keymaps are present in this stack is partly static and partly dynamic. For example, content_buffer_normal_keymap has a parent link to default_global_keymap. Binding lookups in the one will always fall through to the other. This is a static link. On the other hand, the relationship between content_buffer_checkbox_keymap and content_buffer_form_keymap is dynamic. If a checkbox is focused, content_buffer_checkbox_keymap will be active, but content_buffer_form_keymap will only be active if that checkbox is inside of an html:form.