michix/modal-browsing
1
0
Fork
You've already forked modal-browsing
0
Extension for Microsoft Edge to provide basic modal browsing capabilities while requiring a minimal set of permissions.
  • JavaScript 89.6%
  • HTML 8.4%
  • Shell 2%
2026年06月22日 21:30:39 +02:00
icons Initial commit 2026年02月25日 20:34:21 +01:00
AGENTS.md Improvements 3 ( #7 ) 2026年04月11日 12:36:21 +02:00
background.js feat: adds shortcuts cl, cr, and co to close tabs 2026年06月13日 16:05:44 +02:00
CHANGELOG.md fix: after closing other tabs with co, the search tab dialog (o) is not opened anymore 2026年06月22日 21:28:06 +02:00
content.js fix: after closing other tabs with co, the search tab dialog (o) is not opened anymore 2026年06月22日 21:28:06 +02:00
LICENSE chore: changed license to MIT 2026年03月07日 11:45:58 +01:00
manifest.json Version 1.6.0 2026年06月22日 21:30:39 +02:00
popup.html feat: copies an AsciiDoc link of the page using the title to the clipboard with yla 2026年04月19日 11:21:07 +02:00
popup.js Initial commit 2026年02月25日 20:34:21 +01:00
README.md fix: updates README and permissions (removes storage) 2026年05月15日 14:12:07 +02:00
release.sh Improvements 3 ( #7 ) 2026年04月11日 12:36:21 +02:00

ModalBrowsing

A lightweight browser extension for Microsoft Edge that provides modal keyboard navigation for web pages with minimal permissions. Navigate the web with Vim-style keybindings without sacrificing your privacy.

I am not an expert in JavaScript nor in Browser extensions. This project was only possible due to the support of AI and opencode. I would have not taken this effort if I were allowed to use Vimium (which is not possible due to compliance requirements and the many permissions, Vimium needs for certain features).

You can find this extension in the Microsoft Edge-Add-Ons store.

Features

  • Vim-inspired keybindings for efficient web browsing
  • Modal navigation - keyboard shortcuts work in "normal mode" (outside input fields)
    • Press i to focus an input field and enter "insert mode"
    • Press Esc from any input field to return to "normal mode"
  • Minimal permissions - only requests what is needed, no access to:
    • Browse history
    • Files
    • All sites data
    • Personal information
  • Easy toggle - enable/disable via popup

Keyboard Shortcuts

Scrolling

  • j - Scroll down
  • k - Scroll up
  • h - Scroll left
  • l - Scroll right
  • d - Scroll down (large step)
  • u - Scroll up (large step)
  • Ctrl-d - Scroll down (half page)
  • Ctrl-u - Scroll up (half page)

Navigation

  • gg - Go to top of page
  • G (Shift+g) - Go to bottom of page
  • J (Shift+j) - Switch to left tab
  • K (Shift+k) - Switch to right tab
  • < - Move current tab to the left
  • > - Move current tab to the right
  • gt - Move current tab to a tab group (auto-moves if only one group, otherwise shows picker)
  • Ctrl-o - Go backward in tab activation history
  • Ctrl-i - Go forward in tab activation history
  • H (Shift+h) - Go back in browser history
  • L (Shift+l) - Go forward in browser history
  • r - Reload current page
  • o - Open omnibar (search open tabs or enter a URL)
  • t - Open new tab
  • x - Close current tab
  • X (Shift+x) - Reopen last closed tab

Other

  • f - Show hints for clickable elements (links, buttons) and activate them
  • F (Shift+f) - Show hints for clickable elements and open links in new tab
  • yy - Copy current page URL to clipboard
  • yf - Show hints for links and copy selected link URL to clipboard
  • yt - Copy current page title to clipboard
  • ylm - Copy current page as markdown link [title](url)
  • yla - Copy current page as AsciiDoc link url[title]
  • i - Focus first input field on page
  • / - Search page (type query, Enter/Shift+Enter to navigate matches)
  • n - Jump to next search match
  • N (Shift+n) - Jump to previous search match
  • ? - Show keyboard shortcuts help overlay
  • Esc - Close search / exit input field to normal mode / unfocus element / exit link hint mode

Installation

Microsoft Edge (and other Chromium browsers)

  1. Download or clone this repository
  2. Open Microsoft Edge and navigate to edge://extensions/
  3. Enable "Developer mode" in the bottom-left corner
  4. Click "Load unpacked"
  5. Select the extension folder
  6. The extension icon should appear in your toolbar

Icons

The extension includes icon files with a nautical ship wheel design and hjkl directional keys:

  • icons/icon16.png (16x16 pixels)
  • icons/icon48.png (48x48 pixels)
  • icons/icon128.png (128x128 pixels)

The icons are already included and ready to use.

Distribution

In order to pubsh the extension, you need to ZIP it without the directory. In the project directory please execute:

zip -r ../modal-browsing.zip *.js LICENSE *.json *.html icons

Privacy

This extension is built with privacy in mind:

  • No tracking - zero telemetry or analytics
  • Minimal permissions - only activeTab, storage, tabs, tabGroups, and clipboardWrite
  • No external requests - all code runs locally
  • No data collection - your browsing history stays private

Development

Project Structure

.
├── manifest.json # Extension configuration
├── content.js # Main keyboard handling logic
├── popup.html # Extension popup UI
├── popup.js # Popup functionality
├── icons/ # Extension icons
└── README.md # This file

Future Enhancements

  • Customizable keybindings via settings page
  • Additional link hint modes (open in background tab, download link, etc.)

Justification for permissions

activeTab

This is required to query information about the active tab (e.g., the URL) and to be able to display the help popup.

tabs

This is required to be able to navigate between tabs usind <ctrl-i> and <ctrl-o> and for moving the current to a tab group selected using gt.

clipboardWrite

This is required for copying the current URL or a markdown/asciidoc link to the clipboard.

tabGroups

This is required for moving the current to a tab group selected using gt.

Contributing

Contributions are welcome! Please feel free to submit issues or pull requests.

License

Apache License Version 2.0 - feel free to use and modify as needed.