Browser extension that adds configurable keyboard shortcuts to Google search, Youtube, Github, Amazon, Google Scholar, and Startpage.
- Lightweight
- Supports Chrome, Firefox, and pre-Chromium Edge
- Extensive Google keyboard shortcuts including:
- Selecting results
- Opening results in the background or foreground
- Navigating to other sections (maps/news/videos/etc)
- Navigating to the next/previous result page
- Changing time restrictions
- Support for navigating cards such as Top Stories, Twitter, and videos
- All keyboard shortcuts can be changed
- Settings are synched between devices with the same browser profile
- Supports both key combos and key sequences
- Experimental and optional support for Youtube, Startpage, Google Scholar, Github, and Amazon.com (needs to be enabled in the options). Note that the extension does not have permissions for these optional websites unless you explicitly enable them.
Install from the Chrome Web Store.
See below for downloading a release and installing it manually (not recommended since you won't get updates automatically).
- Download the latest release from https://github.com/infokiller/web-search-navigator/releases
- Extract the zip file to any directory you'd like, though you need to make sure the directory is not deleted while you want to use the extension
- Go to extensions page in Chrome (URL:
chrome://extensions
) - Enable developer mode if needed
- Disable other existing instances of Web Search Navigator (from the store or from loading another unpacked version)
- Click "Load Unpacked" and select the directory you extracted the release zip into
Install from the Add-ons for Firefox.
Install from the Microsoft Store.
Note: All shortcuts can be customized to your liking via options.
↓
/j
: Select next search result↑
/k
: Select previous previous result/
/Escape
: Focus on input search boxEnter
/Space
: Navigate to selected resultCtrl+Enter
/⌘+Enter
/Ctrl+Space
: Open selected result in background tabCtrl+Shift+Enter
/⌘+Shift+Enter
/Ctrl+Shift+Space
: Open selected result in new window/tab←
/h
: Navigate to previous search result page→
/l
: Navigate to next search result pagea
/s
: Navigate to All tab (= default search tab)i
: Navigate to images tabv
: Navigate to videos tabm
: Navigate to maps tabn
: Navigate to news tabalt+s
: Navigate to shopping tabb
: Navigate to books tabalt+l
: Navigate to flights tabf
: Navigate to financial tabz h
: Filter results by past hourz d
: Filter results by past 24 hours (day)z w
: Filter results by past weekz m
: Filter results by past monthz y
: Filter results by past yearz z
: Turn off filter (show all results)z s
: Toggle sort by date/relevance (only when filtering)
We use a coding style based on Google's that is enforced with eslint. Please try to write your code in a similar style, and run eslint before sending a pull request.
We use yarn package manager for dependency management and gulp for building. To build the extension for development run:
yarn install && yarn build
The extension will be deployed directly to the src
directory.
The easiest way to run the built extension is to use web-ext
which will run a separate it in a separate browser profile. From the project root directory:
# Replace '--target chromium' with "--target firefox-desktop" for Firefox.
yarn run web-ext run --source-dir src --start-url 'https://www.google.com/search?q=whatever' --target chromium
Alternatively, you can load this directory as an unpacked extensions to your browser.
It would be better to deploy for example to build/deploy
and add gulp-watch
to update the deployed files
automatically. However when done so the browser's (Chrome) auto-reload extension gets broken and one has to reload the
extension manually on every change. Hence the src
directory is used for the convenience.
To build a bundle consumable by the browser with minified dependencies:
# Replace make-chrome.sh with make-firefox.sh for Firefox
yarn install && yarn build --env production && ./tools/make-chrome.sh
Then, upload the bundle to the browser store from ./build/chrome/package.zip
/./build/firefox/package.zip
.
See a reference commit with minimal changes for amazon.com. Specific steps:
- Add the required URLs to the
optional_permissions
key insrc/manifest.json
- Add a checkbox for enabling it to
src/options_page.html
(copy an existing one and modify it) - Add code to
src/options_page.js
for handling the permission request - Add a new class to
src/search_engines.js
with the required properties. See the documentation at the top of the file and use the other search engines classes in that file as a reference. - Add a class instance to
searchEngines
.
See PRIVACY_POLICY.md.
This project is not affiliated with Google LLC.
©2020 Google LLC All rights reserved. Google™ search is a trademark of Google LLC.