Concepts

Please make sure to understand the following basic webmacs concepts before further reading the documentation.

Commands, key bindings and keymaps

These are quite similar to the definitions found in the Emacs manual.

  • A command is a named action which can be done in the browser. For example, follow is the command that allows to start hinting links to navigate.

  • A key binding is a combination of key presses used to trigger commands. Key bindings are represented as in Emacs, for example C-x C-b means “holding the Control key while pressing x, then b on the keyboard.”

    Note

    The control key is called a modifier. There are three keyboard modifiers:

    • C represents the Control key.
    • M represents the Alt key.
    • S represents the Super key (often called the Windows key)

    Note

    A key binding can also be a single key press. For example, pressing f while in the webbuffer keymap will trigger the follow command.

  • A keymap is an object holding a mapping between key bindings and commands, so that a command can be triggered by pressing keyboard keys. Usually, there is one global keymap, and one active local keymap activated at the same time - the local keymap changes interactively depending on the context.

    Some important keymaps:

    Name Description
    global The global keymap is always active. It act as a fallback to other keymaps, which are considered local. Only one local keymap can be active at a time. A binding is first searched in the currently active local keymap, and if not found the global keymap is used. Only bindings with modifiers should be bound to it, else it will be impossible to edit text inside the browser.
    webbuffer Local keymap activated when a web buffer is focused. A web buffer is focused when there is no text editing, no caret browsing, or when the minibuffer input is not shown… It is enabled when no other local keymap is enabled.
    webcontent-edit Local keymap activated when a webcontent field (input, textarea, …) is focused.
    caret-browsing Local keymap activated when you are navigating the webbuffer with a caret.

Web buffers

A web buffer is like an Emacs buffer, but applying to a Web page. Buffers are like tabs in other browsers, except that they are not bound to any view or window.

Windows, views

Differing from Emacs terminology, a window actually is what we nowadays call a window, and views (sometimes called frames) correspond to the content of a window.