No description
Find a file
2026-07-18 16:54:42 +02:00
.github/workflows feat: prepare Vimium Navigation community release 2026-07-18 16:25:11 +02:00
tests feat: prepare Vimium Navigation community release 2026-07-18 16:25:11 +02:00
.gitignore feat: prepare Vimium Navigation community release 2026-07-18 16:25:11 +02:00
CHANGELOG.md feat: prepare Vimium Navigation community release 2026-07-18 16:25:11 +02:00
esbuild.config.mjs feat: prepare Vimium Navigation community release 2026-07-18 16:25:11 +02:00
eslint.config.mjs feat: prepare Vimium Navigation community release 2026-07-18 16:25:11 +02:00
key-engine.d.mts feat: prepare Vimium Navigation community release 2026-07-18 16:25:11 +02:00
key-engine.mjs feat: prepare Vimium Navigation community release 2026-07-18 16:25:11 +02:00
LICENSE feat: prepare Vimium Navigation community release 2026-07-18 16:25:11 +02:00
main.ts feat: prepare Vimium Navigation community release 2026-07-18 16:25:11 +02:00
manifest.json feat: prepare Vimium Navigation community release 2026-07-18 16:25:11 +02:00
package.json feat: prepare Vimium Navigation community release 2026-07-18 16:25:11 +02:00
pnpm-lock.yaml feat: prepare Vimium Navigation community release 2026-07-18 16:25:11 +02:00
pnpm-workspace.yaml feat: prepare Vimium Navigation community release 2026-07-18 16:25:11 +02:00
README.md docs: add community plugin download link 2026-07-18 16:54:42 +02:00
SECURITY.md feat: prepare Vimium Navigation community release 2026-07-18 16:25:11 +02:00
styles.css feat: prepare Vimium Navigation community release 2026-07-18 16:25:11 +02:00
tsconfig.json feat: prepare Vimium Navigation community release 2026-07-18 16:25:11 +02:00
versions.json feat: prepare Vimium Navigation community release 2026-07-18 16:25:11 +02:00

Vimium Navigation

Keyboard-first, modal navigation for Obsidian, inspired by Vimium.

Vimium Navigation starts in Normal mode, where printable keys control the interface instead of editing your note. Press i to enter Insert mode, or click any editable field to enter Insert mode automatically. Press Esc to return to Normal mode.

Features

  • Scroll notes and views with Vim-style keys.
  • Show compact keyboard hints over visible links, buttons, tabs, ribbon controls, and sidebar items.
  • Search and open notes without leaving the keyboard.
  • Navigate note history and workspace tabs.
  • Find text in the active note with /, n, and N.
  • Copy and open obsidian:// note links through the clipboard.
  • Follow the active vault theme and accent color.
  • Configure scrolling, hint characters, and the mode badge.

Shortcuts

Press ? in Normal mode to open the complete in-app reference.

Keys Action
j / k Scroll down / up
h / l Scroll left / right
gg / G Scroll to top / bottom
d / u Scroll half a page down / up
f / F Follow a visible target / open a note target in a new tab
i / Esc Enter Insert / Normal mode
gi Focus the first editable field
/ Find in the active note
n / N Next / previous match
o / O Search notes / open in a new tab
b / B Open a note / open in a new tab
T Search open workspace tabs
H / L Previous / next note in plugin history
t Open a new workspace tab
J / K Previous / next workspace tab
g0 / g$ First / last workspace tab
yt Duplicate the current note tab
x / X Close / restore a note tab
yy Copy the current note's obsidian:// URL
p / P Open a clipboard note link / open in a new tab
r Reload the active note

Browser-specific concepts are mapped to native Obsidian equivalents: browser tabs become workspace tabs, URLs and bookmarks become notes, and link hints include Obsidian controls.

Installation

Requires Obsidian 1.5.0 or newer.

Community plugins

Vimium Navigation is available in the official Obsidian Community Plugins directory. You can download and install it from the Vimium Navigation community page.

  1. Open Settings → Community plugins.
  2. Select Browse and search for Vimium Navigation.
  3. Select Install, then Enable.

Manual installation

Download main.js, manifest.json, and styles.css from the latest GitHub release. Place them in:

<vault>/.obsidian/plugins/vimium-navigation/

Reload Obsidian, then enable Vimium Navigation under Community plugins.

Settings

  • Smooth scrolling controls animated scrolling.
  • Scroll step controls the distance moved by j, k, h, and l.
  • Hint characters controls the alphabet used for link labels.
  • Show mode badge toggles the Normal/Insert indicator.

Privacy and security

Vimium Navigation:

  • Does not collect telemetry or analytics.
  • Does not make network requests.
  • Does not require an account or paid service.
  • Does not display advertising.
  • Does not read or write files outside the standard Obsidian APIs.
  • Uses clipboard access only when you invoke yy, p, or P.

Settings are stored through Obsidian's plugin data API.

Development

Requirements: Node.js 18 or newer and pnpm.

pnpm install
pnpm check

Useful commands:

pnpm dev      # watch and rebuild main.js
pnpm test     # run key-sequence tests
pnpm build    # type-check and create a minified production bundle

The repository intentionally ignores main.js; compiled files are attached to GitHub releases.

Release process

  1. Update the version in manifest.json, package.json, and versions.json.
  2. Commit and push the source.
  3. Create and push a tag matching the manifest version exactly, without a v prefix—for example 0.1.0.
  4. The release workflow verifies, builds, and attaches main.js, manifest.json, and styles.css to a GitHub release.

Acknowledgements

This independent project is inspired by the keyboard model of the Vimium browser extension. It is not affiliated with or endorsed by the Vimium or Obsidian projects.

License

MIT