Why Vimma
Extensions get as far as the page. Vimma starts where they stop.
Vimium and Tridactyl are great, and they are where Vimma comes from. But an extension is a guest: Firefox decides where it may run and what it may touch.
- Your keys work where extensions can't. Extensions are switched off on the add-ons store,
about:pages and the new tab page, so your keys die exactly when you need to get away. In Vimma, j, f and ctrl+b work there too, because the keymap is part of the browser. - Sites can't take your keys. Gmail, GitHub and Google Docs grab keys for themselves, and an extension has to fight them for each one. Vimma sees your key first and decides, so f gives you link hints even on GitHub. When you're typing in a text field, insert mode passes everything but ctrl+b and Esc through.
- One keymap for the whole browser. A tab strip from one extension, containers from another, a Vim layer from a third: three keymaps that don't know about each other, plus Firefox's own shortcuts underneath. Vimma has one: tabs, split panes, workspaces, bookmarks and the URL bar all answer to ctrl+b and Vim motions, and none of Firefox's defaults collide with it.
- Things no extension can do. Tiling panes with tmux layouts and a status bar that always tells you the mode: these change the browser itself, which the extension API doesn't allow.
- One file, every key yours. Your keymap is in a single
config.tomlthat reloads when you save. Rebind any key, and, on Omarchy, follow your desktop's theme live. - Fewer strangers with access to every page. A Vim extension needs permission to read and change every site you visit. In Vimma that code is part of the browser itself: open source, tested, and scanned on every change.
Still Firefox underneath: same engine, same add-ons, and Vimma is rebased onto each Firefox security release and tested automatically within hours.