Giter VIP home page Giter VIP logo

web-search-navigator's Introduction

Logo Web Search Navigator

CodeFactor

Browser extension that adds configurable keyboard shortcuts to Google search, Youtube, Github, Amazon, Google Scholar, and Startpage.

Demo flow

Table of contents

Features

  • 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.

Installation

Chrome

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).

Installing from a release

  1. Download the latest release from https://github.com/infokiller/web-search-navigator/releases
  2. 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
  3. Go to extensions page in Chrome (URL: chrome://extensions)
  4. Enable developer mode if needed
  5. Disable other existing instances of Web Search Navigator (from the store or from loading another unpacked version)
  6. Click "Load Unpacked" and select the directory you extracted the release zip into

Firefox

Install from the Add-ons for Firefox.

Edge

Install from the Microsoft Store.

Keybindings

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 box
  • Enter/Space: Navigate to selected result
  • Ctrl+Enter/⌘+Enter/Ctrl+Space: Open selected result in background tab
  • Ctrl+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 page
  • a/s: Navigate to All tab (= default search tab)
  • i: Navigate to images tab
  • v: Navigate to videos tab
  • m: Navigate to maps tab
  • n: Navigate to news tab
  • alt+s: Navigate to shopping tab
  • b: Navigate to books tab
  • alt+l: Navigate to flights tab
  • f: Navigate to financial tab
  • z h: Filter results by past hour
  • z d: Filter results by past 24 hours (day)
  • z w: Filter results by past week
  • z m: Filter results by past month
  • z y: Filter results by past year
  • z z: Turn off filter (show all results)
  • z s: Toggle sort by date/relevance (only when filtering)

Development

Coding style

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.

Building for development

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.

Building a release

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.

Adding a new search engine

See a reference commit with minimal changes for amazon.com. Specific steps:

  • Add the required URLs to the optional_permissions key in src/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.

Privacy policy

See PRIVACY_POLICY.md.

Trademarks notice

This project is not affiliated with Google LLC.

©2020 Google LLC All rights reserved. Google™ search is a trademark of Google LLC.

web-search-navigator's People

Contributors

infokiller avatar mancze avatar dependabot-preview[bot] avatar rik-smeets avatar alexbarrett avatar dependabot-support avatar tkroll avatar edibegovic avatar bastiankubaile avatar gilhanan avatar gazorby avatar jayoh-dev avatar beracira avatar mauforonda avatar olsonpm avatar hristo2612 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.