How sata1000000/vimium-o works
Vimium-O is an Obsidian plugin for keyboard-driven navigation and interaction. Key events enter through the plugin’s document listeners and are routed to scrolling, clickable-element hints, workspace navigation, marks, and search; feature-specific modals support bookmark, tab, and mark selection. Search bridges a custom HUD to Obsidian’s native find UI, while marks retain scroll positions for later jumps. The README documents additional tab, history, file, and command actions. Some implementations were not sampled, so their nodes use supported directory paths and uncertain call wiring is omitted.
Main entry points: KeyboardRouter.ts Keyboard router · main.ts Plugin lifecycle · MarkManager.ts Scroll marks · SearchManager.ts Find manager
Components 16
Plugin entry
- Plugin lifecycle
src/main.ts - Keyboard router
src/logic/KeyboardRouter.ts
Keyboard navigation
- Scroll and zoom
src/logic/ScrollEngine.ts - Clickable hints
src/logic/HintManager.ts - Workspace navigation
src/logic/WorkspaceNavigator.ts
Search and marks
- Scroll marks
src/logic/MarkManager.ts - Mark finder
src/modals/MarkSearch.ts - Find manager
src/logic/SearchManager.ts - Find HUD
src/modals/TextSearch.ts
Workspace tools
- Bookmark finder
src/modals/BookmarkSearch.ts - Tab finder
src/modals/TabSearch.ts - Help modal
src/modals/Help.ts
Configuration
- Settings tab
src/settings.ts - Plugin settings data
Other components
- Keyboard user
- Obsidian app
Connections 24
- Keyboard user → Plugin lifecycle: presses keys
- Plugin lifecycle → Keyboard router: routes key events
- Plugin lifecycle → Find manager: routes find keys
- Plugin lifecycle → Scroll marks: draws marks
- Plugin lifecycle → Settings tab: registers settings
- Plugin lifecycle → Obsidian app: loads and saves settings
- Keyboard router → Scroll and zoom: controls scrolling
- Keyboard router → Clickable hints: shows hints
- Keyboard router → Workspace navigation: handles navigation
- Keyboard router → Scroll marks: handles mark keys
- Keyboard router → Bookmark finder: opens finder
- Keyboard router → Tab finder: opens finder
- Keyboard router → Help modal: opens help
- Keyboard router → Obsidian app: runs workspace commands
- Find manager → Find HUD: creates HUD
- Find manager → Obsidian app: syncs native find
- Find HUD → Find manager: syncs query
- Scroll marks → Mark finder: opens mark finder
- Mark finder → Scroll marks: jumps or deletes
- Scroll marks → Obsidian app: opens marked file
- Bookmark finder → Obsidian app: opens bookmark
- Tab finder → Obsidian app: switches tab
- Settings tab → Plugin lifecycle: updates settings
- Plugin lifecycle → Plugin settings data: persists settings