Fannon / search-bookmarks-history-and-tabs

Browser extension to search and navigate browser tabs, local bookmarks and history.
MIT License
181 stars 8 forks source link
bookmark bookmarks browserhistory chrome-extension search tabs-management tagging

Search Bookmarks, History and Browser Tabs

🔎 Browser extension to (fuzzy) search and navigate bookmarks, history and open tabs.

Installation via Store

Features

This extension does not collect any data nor does it make any external requests (see Privacy).

It supports two different search approaches:

With this extension you can also tag your bookmarks including auto completions. The tags are considered when searching and can be used for navigation.

The extension is very customizable (see user options) and has a dark / light theme that is selected based on your system settings (see prefers-color-scheme). It's also very lightweight (< 150kb JavaScript, including dependencies).

💡 Have a look at the Tips & Tricks collection.

🗎 For a list of recent changes, see CHANGELOG.md.

Screenshots & Demo

Demo Animation

User Documentation

User Configuration

The extension is highly customizable. Finding and setting options is a bit technical, though.

The user options are written in YAML or JSON notation.

For now, there is no nice options overview, so you have to find them in the popup/js/model/options.js file in the defaultOptions object. From there you can see the available options, their names, default values and descriptions.

When defining your custom config, you only need to define the options that you want to overwrite from the defaults.

âš  The options are not validated properly. Please make sure to use them correctly.
If something breaks, consider resetting your options.

An exemplary user config can look like the following example:

searchStrategy: fuzzy
displayVisitCounter: true
historyMaxItems: 2048 # Increase max number of browser history items to load

If you have troubles with performance, here are a few options that might help. Feel free to pick & choose and tune the values to your situation. In particular historyMaxItems and how many bookmarks you have will impact init and search performance.

Here is a suggestion for low-performance machines:

searchStrategy: precise # Precise search is faster than fuzzy search.
searchMinMatchCharLength: 2 # Start searching only when at least 2 characters are entered
displaySearchMatchHighlight: false, # Not highlighting search matches improves render performance.
searchMaxResults: 20 # Number of search results can be further limited
historyMaxItems: 512 # Number of browser history items can be further reduced

Or a more advanced example:

searchStrategy: precise
historyDaysAgo: 14
historyMaxItems: 2048
historyIgnoreList:
  - extension://
  - http://localhost
  - http://127.0.0.1
colorStripeWidth: 4 # Customize width of search result color stripe
scoreTabBaseScore: 70 # customize base score for open tabs
searchEngineChoices:
  - name: Google
    urlPrefix: https://google.com/search?q=
customSearchEngines:
  - alias: ['g', 'google']
    name: Google
    urlPrefix: https://www.google.com/search?q=$s
    blank: https://www.google.com
  - alias: d
    name: dict.cc
    urlPrefix: https://www.dict.cc/?s=$s
  - alias: [gh, github]
    name: GitHub
    urlPrefix: https://github.com/search?q=$s
    blank: https://github.com
  - alias: npm
    name: NPM
    urlPrefix: https://www.npmjs.com/search?q=$s
    blank: https://www.npmjs.com
debug: true # Print information about loading time / statistics in dev console

In case of making multilingual searching (CJK) correctly, you may need to tweak uFuzzy options via option ufuzzyOptions, for example:

# make CJK chars work for fuzzy search
uFuzzyOptions:
  interSplit: (p{Unified_Ideograph=yes})+

Scoring System

The scoring systems works roughly the following:

For a description of the scoring options and what they do, please see popup/js/model/options.js.

Privacy / Data Protection

This extension is built to respect your privacy:

Local Development

Install and Build

Prerequisite: Node.js

# install dependencies
npm install

# build extension
npm run build

The source code for the extension can be found in popup/ (HTML, CSS, JS and libs).

The built extensions can be found

Developer Installation

Developer Workflow

Credits

This extension makes use of the following helpful open-source projects (thanks!):

Feedback and Ideas

Please create a GitHub issue to give your feedback. All ideas, suggestions or bug reports are welcome.