surfingkeys-conf/README.md

796 lines
37 KiB
Markdown

<!--
NOTICE:
This is an automatically generated file - Do not edit it directly.
The source file is README.tmpl.md
-->
Maddy's SurfingKeys Configuration
=================================
This is my configuration for the [SurfingKeys](https://github.com/brookhong/Surfingkeys) browser extension.
Its primary features include
- 139 [Site-Specific Key Mappings](#site-specific-key-mappings) which **automate common actions** on many popular websites
- 55 [Search Suggestion Engines](#search-suggestion-engines) providing **interactive search suggestions** from dozens of knowledge sources
Table of Contents
-----------------
1. [Site-Specific Key Mappings](#site-specific-key-mappings)
2. [Search Suggestion Engines](#search-suggestion-engines)
3. [Installation Instructions](#installation)
4. [Screenshots](#screenshots)
5. [Todo](#todo)
6. [License](#license)
Features
--------
### Site-Specific Key Mappings
139 key mappings for 22 unique
sites have been included which can help you perform some common actions:
<table>
<tbody>
<tr><th colspan="2"><strong>global</strong></th></tr><tr><td><strong>Mapping</strong></td><td><strong>Description</strong></td></tr>
<tr><td><code>F</code></td><td>Open a link in non-active new tab</td></tr>
<tr><td><code>zf</code></td><td>Open link URL in vim editor</td></tr>
<tr><td><code>w</code></td><td>Scroll up</td></tr>
<tr><td><code>s</code></td><td>Scroll down</td></tr>
<tr><td><code>K</code></td><td>Scroll half page up</td></tr>
<tr><td><code>J</code></td><td>Scroll half page down</td></tr>
<tr><td><code>gh</code></td><td>Scroll to element targeted by URL hash</td></tr>
<tr><td><code>gi</code></td><td>Edit current URL with vim editor</td></tr>
<tr><td><code>gi</code></td><td>Edit current URL with vim editor</td></tr>
<tr><td><code>gI</code></td><td>View image in new tab</td></tr>
<tr><td><code>yp</code></td><td>Copy URL path of current page</td></tr>
<tr><td><code>yI</code></td><td>Copy Image URL</td></tr>
<tr><td><code>yO</code></td><td>Copy page URL/Title as Org-mode link</td></tr>
<tr><td><code>yM</code></td><td>Copy page URL/Title as Markdown link</td></tr>
<tr><td><code>yT</code></td><td>Duplicate current tab (non-active new tab)</td></tr>
<tr><td><code>;se</code></td><td>Edit Settings</td></tr>
<tr><td><code>gS</code></td><td>Open Chrome settings</td></tr>
<tr><td><code>&#x3D;w</code></td><td>Lookup whois information for domain</td></tr>
<tr><td><code>&#x3D;d</code></td><td>Lookup dns information for domain</td></tr>
<tr><td><code>&#x3D;D</code></td><td>Lookup all information for domain</td></tr>
<tr><td><code>&#x3D;c</code></td><td>Show Google's cached version of page</td></tr>
<tr><td><code>&#x3D;a</code></td><td>Show Archive.org Wayback Machine for page</td></tr>
<tr><td><code>&#x3D;o</code></td><td>Show outline.com version of page</td></tr>
<tr><td><code>&#x3D;r</code></td><td>Subscribe to RSS feed for page</td></tr>
<tr><td><code>&#x3D;s</code></td><td>Speed read page</td></tr>
<tr><td><code>;pd</code></td><td>Toggle PDF viewer from SurfingKeys</td></tr>
<tr><td><code>gxE</code></td><td>Close tab to left</td></tr>
<tr><td><code>gxR</code></td><td>Close tab to right</td></tr>
<tr><td><code>\cgh</code></td><td>Open clipboard string as GitHub path (e.g. 'torvalds/linux')</td></tr>
<tr><th colspan="2"><a href="//algolia.com"><img src="./assets/favicons/algolia.com.ico" width="16px"> algolia.com</a></th></tr><tr><td><strong>Mapping</strong></td><td><strong>Description</strong></td></tr>
<tr><td><code>&lt;Space&gt;a</code></td><td>Open search result</td></tr>
<tr><th colspan="2"><a href="//amazon.com"><img src="./assets/favicons/amazon.com.ico" width="16px"> amazon.com</a></th></tr><tr><td><strong>Mapping</strong></td><td><strong>Description</strong></td></tr>
<tr><td><code>&lt;Space&gt;fs</code></td><td>Fakespot</td></tr>
<tr><td><code>&lt;Space&gt;a</code></td><td>View product</td></tr>
<tr><td><code>&lt;Space&gt;c</code></td><td>Add to Cart</td></tr>
<tr><td><code>&lt;Space&gt;R</code></td><td>View Product Reviews</td></tr>
<tr><td><code>&lt;Space&gt;Q</code></td><td>View Product Q&A</td></tr>
<tr><td><code>&lt;Space&gt;A</code></td><td>Open Account page</td></tr>
<tr><td><code>&lt;Space&gt;C</code></td><td>Open Cart page</td></tr>
<tr><td><code>&lt;Space&gt;O</code></td><td>Open Orders page</td></tr>
<tr><th colspan="2"><a href="//aur.archlinux.org"><img src="./assets/favicons/aur.archlinux.org.ico" width="16px"> aur.archlinux.org</a></th></tr><tr><td><strong>Mapping</strong></td><td><strong>Description</strong></td></tr>
<tr><td><code>&lt;Space&gt;a</code></td><td>View package</td></tr>
<tr><th colspan="2"><a href="//behance.net"><img src="./assets/favicons/behance.net.ico" width="16px"> behance.net</a></th></tr><tr><td><strong>Mapping</strong></td><td><strong>Description</strong></td></tr>
<tr><td><code>&lt;Space&gt;s</code></td><td>Appreciate project</td></tr>
<tr><td><code>&lt;Space&gt;b</code></td><td>Add project to collection</td></tr>
<tr><td><code>&lt;Space&gt;a</code></td><td>View project</td></tr>
<tr><td><code>&lt;Space&gt;A</code></td><td>View project (non-active new tab)</td></tr>
<tr><th colspan="2"><a href="//craigslist.org"><img src="./assets/favicons/craigslist.org.ico" width="16px"> craigslist.org</a></th></tr><tr><td><strong>Mapping</strong></td><td><strong>Description</strong></td></tr>
<tr><td><code>&lt;Space&gt;a</code></td><td>View listing</td></tr>
<tr><th colspan="2"><a href="//dribbble.com"><img src="./assets/favicons/dribbble.com.ico" width="16px"> dribbble.com</a></th></tr><tr><td><strong>Mapping</strong></td><td><strong>Description</strong></td></tr>
<tr><td><code>&lt;Space&gt;s</code></td><td>Heart Shot</td></tr>
<tr><td><code>&lt;Space&gt;a</code></td><td>View shot</td></tr>
<tr><td><code>&lt;Space&gt;A</code></td><td>View shot (non-active new tab)</td></tr>
<tr><td><code>&lt;Space&gt;v</code></td><td>View attachment image</td></tr>
<tr><td><code>&lt;Space&gt;V</code></td><td>Yank attachment image source URL</td></tr>
<tr><td><code>&lt;Space&gt;z</code></td><td>Zoom shot</td></tr>
<tr><th colspan="2"><a href="//duckduckgo.com"><img src="./assets/favicons/duckduckgo.com.ico" width="16px"> duckduckgo.com</a></th></tr><tr><td><strong>Mapping</strong></td><td><strong>Description</strong></td></tr>
<tr><td><code>&lt;Space&gt;a</code></td><td>Open search result</td></tr>
<tr><td><code>&lt;Space&gt;A</code></td><td>Open search result (non-active new tab)</td></tr>
<tr><td><code>]]</code></td><td>Show more results</td></tr>
<tr><td><code>&lt;Space&gt;g</code></td><td>Open search in Google</td></tr>
<tr><th colspan="2"><a href="//fonts.adobe.com"><img src="./assets/favicons/fonts.adobe.com.ico" width="16px"> fonts.adobe.com</a></th></tr><tr><td><strong>Mapping</strong></td><td><strong>Description</strong></td></tr>
<tr><td><code>&lt;Space&gt;a</code></td><td>Activate font</td></tr>
<tr><td><code>&lt;Space&gt;s</code></td><td>Favorite font</td></tr>
<tr><th colspan="2"><a href="//github.com"><img src="./assets/favicons/github.com.ico" width="16px"> github.com</a></th></tr><tr><td><strong>Mapping</strong></td><td><strong>Description</strong></td></tr>
<tr><td><code>&lt;Space&gt;A</code></td><td>Open repository Actions page</td></tr>
<tr><td><code>&lt;Space&gt;C</code></td><td>Open repository Commits page</td></tr>
<tr><td><code>&lt;Space&gt;I</code></td><td>Open repository Issues page</td></tr>
<tr><td><code>&lt;Space&gt;P</code></td><td>Open repository Pull Requests page</td></tr>
<tr><td><code>&lt;Space&gt;R</code></td><td>Open Repository page</td></tr>
<tr><td><code>&lt;Space&gt;S</code></td><td>Open repository Settings page</td></tr>
<tr><td><code>&lt;Space&gt;W</code></td><td>Open repository Wiki page</td></tr>
<tr><td><code>&lt;Space&gt;X</code></td><td>Open repository Security page</td></tr>
<tr><td><code>&lt;Space&gt;O</code></td><td>Open repository Owner's profile page</td></tr>
<tr><td><code>&lt;Space&gt;M</code></td><td>Open your profile page ('Me')</td></tr>
<tr><td><code>&lt;Space&gt;a</code></td><td>View Repository</td></tr>
<tr><td><code>&lt;Space&gt;u</code></td><td>View User</td></tr>
<tr><td><code>&lt;Space&gt;f</code></td><td>View File</td></tr>
<tr><td><code>&lt;Space&gt;c</code></td><td>View Commit</td></tr>
<tr><td><code>&lt;Space&gt;i</code></td><td>View Issue</td></tr>
<tr><td><code>&lt;Space&gt;p</code></td><td>View Pull Request</td></tr>
<tr><td><code>&lt;Space&gt;e</code></td><td>View external link</td></tr>
<tr><td><code>gu</code></td><td>Go up one path in the URL (GitHub)</td></tr>
<tr><td><code>&lt;Space&gt;s</code></td><td>Toggle Star</td></tr>
<tr><td><code>&lt;Space&gt;y</code></td><td>Copy Project Path</td></tr>
<tr><td><code>&lt;Space&gt;Y</code></td><td>Copy Project Path (including domain)</td></tr>
<tr><td><code>&lt;Space&gt;l</code></td><td>Toggle repo language stats</td></tr>
<tr><td><code>&lt;Space&gt;D</code></td><td>View GoDoc for Project</td></tr>
<tr><td><code>&lt;Space&gt;G</code></td><td>View on SourceGraph</td></tr>
<tr><td><code>&lt;Space&gt;ra</code></td><td>View live raw version of file</td></tr>
<tr><td><code>&lt;Space&gt;gcp</code></td><td>Open clipboard string as file path in repo</td></tr>
<tr><th colspan="2"><a href="//gitlab.com"><img src="./assets/favicons/gitlab.com.ico" width="16px"> gitlab.com</a></th></tr><tr><td><strong>Mapping</strong></td><td><strong>Description</strong></td></tr>
<tr><td><code>&lt;Space&gt;s</code></td><td>Toggle Star</td></tr>
<tr><td><code>&lt;Space&gt;y</code></td><td>Copy Project Path</td></tr>
<tr><td><code>&lt;Space&gt;Y</code></td><td>Copy Project Path (including domain)</td></tr>
<tr><td><code>&lt;Space&gt;D</code></td><td>View GoDoc for Project</td></tr>
<tr><th colspan="2"><a href="//home.nest.com"><img src="./assets/favicons/home.nest.com.ico" width="16px"> home.nest.com</a></th></tr><tr><td><strong>Mapping</strong></td><td><strong>Description</strong></td></tr>
<tr><td><code>&#x3D;</code></td><td>Increment temperature</td></tr>
<tr><td><code>-</code></td><td>Decrement temperature</td></tr>
<tr><td><code>&lt;Space&gt;h</code></td><td>Switch mode to Heat</td></tr>
<tr><td><code>&lt;Space&gt;c</code></td><td>Switch mode to Cool</td></tr>
<tr><td><code>&lt;Space&gt;r</code></td><td>Switch mode to Heat/Cool</td></tr>
<tr><td><code>&lt;Space&gt;o</code></td><td>Switch mode to Off</td></tr>
<tr><td><code>&lt;Space&gt;f</code></td><td>Switch fan On</td></tr>
<tr><td><code>&lt;Space&gt;F</code></td><td>Switch fan Off</td></tr>
<tr><th colspan="2"><a href="//news.ycombinator.com"><img src="./assets/favicons/news.ycombinator.com.ico" width="16px"> news.ycombinator.com</a></th></tr><tr><td><strong>Mapping</strong></td><td><strong>Description</strong></td></tr>
<tr><td><code>&lt;Space&gt;x</code></td><td>Collapse comment</td></tr>
<tr><td><code>&lt;Space&gt;X</code></td><td>Collapse next comment</td></tr>
<tr><td><code>&lt;Space&gt;s</code></td><td>Upvote</td></tr>
<tr><td><code>&lt;Space&gt;S</code></td><td>Downvote</td></tr>
<tr><td><code>&lt;Space&gt;a</code></td><td>View post (link)</td></tr>
<tr><td><code>&lt;Space&gt;A</code></td><td>View post (link and comments)</td></tr>
<tr><td><code>&lt;Space&gt;c</code></td><td>View post (comments)</td></tr>
<tr><td><code>&lt;Space&gt;C</code></td><td>View post (comments) (non-active new tab)</td></tr>
<tr><td><code>&lt;Space&gt;e</code></td><td>View external link</td></tr>
<tr><td><code>gp</code></td><td>Go to parent</td></tr>
<tr><td><code>]]</code></td><td>Next page</td></tr>
<tr><td><code>[[</code></td><td>Prev page</td></tr>
<tr><th colspan="2"><a href="//producthunt.com"><img src="./assets/favicons/producthunt.com.ico" width="16px"> producthunt.com</a></th></tr><tr><td><strong>Mapping</strong></td><td><strong>Description</strong></td></tr>
<tr><td><code>&lt;Space&gt;a</code></td><td>View product (external)</td></tr>
<tr><td><code>&lt;Space&gt;v</code></td><td>View product</td></tr>
<tr><td><code>&lt;Space&gt;s</code></td><td>Upvote product</td></tr>
<tr><th colspan="2"><a href="//reddit.com"><img src="./assets/favicons/reddit.com.ico" width="16px"> reddit.com</a></th></tr><tr><td><strong>Mapping</strong></td><td><strong>Description</strong></td></tr>
<tr><td><code>&lt;Space&gt;x</code></td><td>Collapse comment</td></tr>
<tr><td><code>&lt;Space&gt;X</code></td><td>Collapse next comment</td></tr>
<tr><td><code>&lt;Space&gt;s</code></td><td>Upvote</td></tr>
<tr><td><code>&lt;Space&gt;S</code></td><td>Downvote</td></tr>
<tr><td><code>&lt;Space&gt;e</code></td><td>Expand expando</td></tr>
<tr><td><code>&lt;Space&gt;a</code></td><td>View post (link)</td></tr>
<tr><td><code>&lt;Space&gt;A</code></td><td>View post (link) (non-active new tab)</td></tr>
<tr><td><code>&lt;Space&gt;c</code></td><td>View post (comments)</td></tr>
<tr><td><code>&lt;Space&gt;C</code></td><td>View post (comments) (non-active new tab)</td></tr>
<tr><th colspan="2"><a href="//stackoverflow.com"><img src="./assets/favicons/stackoverflow.com.ico" width="16px"> stackoverflow.com</a></th></tr><tr><td><strong>Mapping</strong></td><td><strong>Description</strong></td></tr>
<tr><td><code>&lt;Space&gt;a</code></td><td>View question</td></tr>
<tr><th colspan="2"><a href="//twitter.com"><img src="./assets/favicons/twitter.com.ico" width="16px"> twitter.com</a></th></tr><tr><td><strong>Mapping</strong></td><td><strong>Description</strong></td></tr>
<tr><td><code>&lt;Space&gt;f</code></td><td>Follow user</td></tr>
<tr><td><code>&lt;Space&gt;s</code></td><td>Like tweet</td></tr>
<tr><td><code>&lt;Space&gt;R</code></td><td>Retweet</td></tr>
<tr><td><code>&lt;Space&gt;c</code></td><td>Comment/Reply</td></tr>
<tr><td><code>&lt;Space&gt;T</code></td><td>New tweet</td></tr>
<tr><td><code>&lt;Space&gt;u</code></td><td>Goto user</td></tr>
<tr><td><code>&lt;Space&gt;t</code></td><td>Goto tweet</td></tr>
<tr><th colspan="2"><a href="//vimeo.com"><img src="./assets/favicons/vimeo.com.ico" width="16px"> vimeo.com</a></th></tr><tr><td><strong>Mapping</strong></td><td><strong>Description</strong></td></tr>
<tr><td><code>&lt;Space&gt;F</code></td><td>Toggle fullscreen</td></tr>
<tr><th colspan="2"><a href="//wikipedia.org"><img src="./assets/favicons/wikipedia.org.ico" width="16px"> wikipedia.org</a></th></tr><tr><td><strong>Mapping</strong></td><td><strong>Description</strong></td></tr>
<tr><td><code>&lt;Space&gt;s</code></td><td>Toggle simple version of current article</td></tr>
<tr><td><code>&lt;Space&gt;a</code></td><td>View page</td></tr>
<tr><td><code>&lt;Space&gt;e</code></td><td>View external link</td></tr>
<tr><td><code>&lt;Space&gt;R</code></td><td>View WikiRank for current article</td></tr>
<tr><th colspan="2"><a href="//www.google.com"><img src="./assets/favicons/www.google.com.ico" width="16px"> www.google.com</a></th></tr><tr><td><strong>Mapping</strong></td><td><strong>Description</strong></td></tr>
<tr><td><code>&lt;Space&gt;a</code></td><td>Open search result</td></tr>
<tr><td><code>&lt;Space&gt;A</code></td><td>Open search result (new tab)</td></tr>
<tr><td><code>&lt;Space&gt;d</code></td><td>Open search in DuckDuckGo</td></tr>
<tr><th colspan="2"><a href="//yelp.com"><img src="./assets/favicons/yelp.com.ico" width="16px"> yelp.com</a></th></tr><tr><td><strong>Mapping</strong></td><td><strong>Description</strong></td></tr>
<tr><td><code>&lt;Space&gt;fs</code></td><td>Fakespot</td></tr>
<tr><th colspan="2"><a href="//youtube.com"><img src="./assets/favicons/youtube.com.ico" width="16px"> youtube.com</a></th></tr><tr><td><strong>Mapping</strong></td><td><strong>Description</strong></td></tr>
<tr><td><code>A</code></td><td>Open video</td></tr>
<tr><td><code>C</code></td><td>Open channel</td></tr>
<tr><td><code>gH</code></td><td>Goto homepage</td></tr>
<tr><td><code>F</code></td><td>Toggle fullscreen</td></tr>
</tbody>
</table>
### Search Suggestion Engines
There are currently 55 search suggestion engines.
You can access a search suggestion prompt by pressing the search leader key, which is `a` by default, followed by the search engine alias.
For example, to open the Wikipedia suggestion engine, you would type `awp` while in normal mode.
<table>
<thead>
<th colspan=2>Alias</th>
<th>Name</th>
<th>Domain</th>
<th>Screenshots</th>
</thead>
<tbody>
<tr>
<td><a href="https://duckduckgo.com"><img src="./assets/favicons/duckduckgo.com.ico" width="16px"> </a></td>
<td><code>D</code></td>
<td>duckduckgo-lucky</td>
<td><a href="https://duckduckgo.com">duckduckgo.com</a></td>
<td></td>
</tr>
<tr>
<td><a href="https://www.google.com"><img src="./assets/favicons/www.google.com.ico" width="16px"> </a></td>
<td><code>G</code></td>
<td>google-lucky</td>
<td><a href="https://www.google.com">www.google.com</a></td>
<td></td>
</tr>
<tr>
<td><a href="https://bbs.archlinux.org"><img src="./assets/favicons/bbs.archlinux.org.ico" width="16px"> </a></td>
<td><code>af</code></td>
<td>archforums</td>
<td><a href="https://bbs.archlinux.org">bbs.archlinux.org</a></td>
<td></td>
</tr>
<tr>
<td><a href="https://www.archlinux.org"><img src="./assets/favicons/www.archlinux.org.ico" width="16px"> </a></td>
<td><code>al</code></td>
<td>archlinux</td>
<td><a href="https://www.archlinux.org">www.archlinux.org</a></td>
<td></td>
</tr>
<tr>
<td><a href="https://alternativeto.net"><img src="./assets/favicons/alternativeto.net.ico" width="16px"> </a></td>
<td><code>at</code></td>
<td>alternativeTo</td>
<td><a href="https://alternativeto.net">alternativeto.net</a></td>
<td></td>
</tr>
<tr>
<td><a href="https://aur.archlinux.org"><img src="./assets/favicons/aur.archlinux.org.ico" width="16px"> </a></td>
<td><code>au</code></td>
<td>AUR</td>
<td><a href="https://aur.archlinux.org">aur.archlinux.org</a></td>
<td></td>
</tr>
<tr>
<td><a href="https://wiki.archlinux.org"><img src="./assets/favicons/wiki.archlinux.org.ico" width="16px"> </a></td>
<td><code>aw</code></td>
<td>archwiki</td>
<td><a href="https://wiki.archlinux.org">wiki.archlinux.org</a></td>
<td></td>
</tr>
<tr>
<td><a href="https://smile.amazon.com"><img src="./assets/favicons/smile.amazon.com.ico" width="16px"> </a></td>
<td><code>az</code></td>
<td>amazon</td>
<td><a href="https://smile.amazon.com">smile.amazon.com</a></td>
<td></td>
</tr>
<tr>
<td><a href="https://www.craigslist.org"><img src="./assets/favicons/www.craigslist.org.ico" width="16px"> </a></td>
<td><code>cl</code></td>
<td>craigslist</td>
<td><a href="https://www.craigslist.org">www.craigslist.org</a></td>
<td></td>
</tr>
<tr>
<td><a href="https://www.crunchbase.com"><img src="./assets/favicons/www.crunchbase.com.ico" width="16px"> </a></td>
<td><code>co</code></td>
<td>crunchbase-orgs</td>
<td><a href="https://www.crunchbase.com">www.crunchbase.com</a></td>
<td></td>
</tr>
<tr>
<td><a href="https://www.crunchbase.com"><img src="./assets/favicons/www.crunchbase.com.ico" width="16px"> </a></td>
<td><code>cp</code></td>
<td>crunchbase-people</td>
<td><a href="https://www.crunchbase.com">www.crunchbase.com</a></td>
<td><a href="#crunchbase-people">:framed_picture:</a></td>
</tr>
<tr>
<td><a href="https://chrome.google.com"><img src="./assets/favicons/chrome.google.com.ico" width="16px"> </a></td>
<td><code>cs</code></td>
<td>chromestore</td>
<td><a href="https://chrome.google.com">chrome.google.com</a></td>
<td></td>
</tr>
<tr>
<td><a href="https://duckduckgo.com"><img src="./assets/favicons/duckduckgo.com.ico" width="16px"> </a></td>
<td><code>dd</code></td>
<td>duckduckgo</td>
<td><a href="https://duckduckgo.com">duckduckgo.com</a></td>
<td></td>
</tr>
<tr>
<td><a href="http://onelook.com"><img src="./assets/favicons/onelook.com.ico" width="16px"> </a></td>
<td><code>de</code></td>
<td>define</td>
<td><a href="http://onelook.com">onelook.com</a></td>
<td><a href="#define">:framed_picture:</a></td>
</tr>
<tr>
<td><a href="https://hub.docker.com"><img src="./assets/favicons/hub.docker.com.ico" width="16px"> </a></td>
<td><code>dh</code></td>
<td>dockerhub</td>
<td><a href="https://hub.docker.com">hub.docker.com</a></td>
<td><a href="#dockerhub">:framed_picture:</a></td>
</tr>
<tr>
<td><a href="https://duckduckgo.com"><img src="./assets/favicons/duckduckgo.com.ico" width="16px"> </a></td>
<td><code>di</code></td>
<td>duckduckgo-images</td>
<td><a href="https://duckduckgo.com">duckduckgo.com</a></td>
<td></td>
</tr>
<tr>
<td><a href="https://duckduckgo.com"><img src="./assets/favicons/duckduckgo.com.ico" width="16px"> </a></td>
<td><code>dm</code></td>
<td>duckduckgo-maps</td>
<td><a href="https://duckduckgo.com">duckduckgo.com</a></td>
<td></td>
</tr>
<tr>
<td><a href="https://duckduckgo.com"><img src="./assets/favicons/duckduckgo.com.ico" width="16px"> </a></td>
<td><code>dn</code></td>
<td>duckduckgo-news</td>
<td><a href="https://duckduckgo.com">duckduckgo.com</a></td>
<td></td>
</tr>
<tr>
<td><a href="https://domainr.com"><img src="./assets/favicons/domainr.com.ico" width="16px"> </a></td>
<td><code>do</code></td>
<td>domainr</td>
<td><a href="https://domainr.com">domainr.com</a></td>
<td><a href="#domainr">:framed_picture:</a></td>
</tr>
<tr>
<td><a href="https://duckduckgo.com"><img src="./assets/favicons/duckduckgo.com.ico" width="16px"> </a></td>
<td><code>dv</code></td>
<td>duckduckgo-videos</td>
<td><a href="https://duckduckgo.com">duckduckgo.com</a></td>
<td></td>
</tr>
<tr>
<td><a href="https://www.ebay.com"><img src="./assets/favicons/www.ebay.com.ico" width="16px"> </a></td>
<td><code>eb</code></td>
<td>ebay</td>
<td><a href="https://www.ebay.com">www.ebay.com</a></td>
<td></td>
</tr>
<tr>
<td><a href="https://hex.pm"><img src="./assets/favicons/hex.pm.ico" width="16px"> </a></td>
<td><code>ex</code></td>
<td>exdocs</td>
<td><a href="https://hex.pm">hex.pm</a></td>
<td></td>
</tr>
<tr>
<td><a href="https://addons.mozilla.org"><img src="./assets/favicons/addons.mozilla.org.ico" width="16px"> </a></td>
<td><code>fa</code></td>
<td>firefox-addons</td>
<td><a href="https://addons.mozilla.org">addons.mozilla.org</a></td>
<td></td>
</tr>
<tr>
<td><a href="https://addons.mozilla.org"><img src="./assets/favicons/addons.mozilla.org.ico" width="16px"> </a></td>
<td><code>fe</code></td>
<td>firefox-extensions</td>
<td><a href="https://addons.mozilla.org">addons.mozilla.org</a></td>
<td></td>
</tr>
<tr>
<td><a href="https://addons.mozilla.org"><img src="./assets/favicons/addons.mozilla.org.ico" width="16px"> </a></td>
<td><code>ft</code></td>
<td>firefox-themes</td>
<td><a href="https://addons.mozilla.org">addons.mozilla.org</a></td>
<td></td>
</tr>
<tr>
<td><a href="https://www.google.com"><img src="./assets/favicons/www.google.com.ico" width="16px"> </a></td>
<td><code>gI</code></td>
<td>google-reverse-image</td>
<td><a href="https://www.google.com">www.google.com</a></td>
<td></td>
</tr>
<tr>
<td><a href="https://godoc.org"><img src="./assets/favicons/godoc.org.ico" width="16px"> </a></td>
<td><code>gd</code></td>
<td>godoc</td>
<td><a href="https://godoc.org">godoc.org</a></td>
<td></td>
</tr>
<tr>
<td><a href="https://golang.org"><img src="./assets/favicons/golang.org.ico" width="16px"> </a></td>
<td><code>gg</code></td>
<td>golang</td>
<td><a href="https://golang.org">golang.org</a></td>
<td></td>
</tr>
<tr>
<td><a href="https://github.com"><img src="./assets/favicons/github.com.ico" width="16px"> </a></td>
<td><code>gh</code></td>
<td>github</td>
<td><a href="https://github.com">github.com</a></td>
<td><a href="#github">:framed_picture:</a></td>
</tr>
<tr>
<td><a href="https://www.google.com"><img src="./assets/favicons/www.google.com.ico" width="16px"> </a></td>
<td><code>gi</code></td>
<td>google-images</td>
<td><a href="https://www.google.com">www.google.com</a></td>
<td></td>
</tr>
<tr>
<td><a href="https://www.google.com"><img src="./assets/favicons/www.google.com.ico" width="16px"> </a></td>
<td><code>go</code></td>
<td>google</td>
<td><a href="https://www.google.com">www.google.com</a></td>
<td></td>
</tr>
<tr>
<td><a href="https://scholar.google.com"><img src="./assets/favicons/scholar.google.com.ico" width="16px"> </a></td>
<td><code>gs</code></td>
<td>google-scholar</td>
<td><a href="https://scholar.google.com">scholar.google.com</a></td>
<td></td>
</tr>
<tr>
<td><a href="https://gowalker.org"><img src="./assets/favicons/gowalker.org.ico" width="16px"> </a></td>
<td><code>gw</code></td>
<td>gowalker</td>
<td><a href="https://gowalker.org">gowalker.org</a></td>
<td></td>
</tr>
<tr>
<td><a href="https://hackage.haskell.org"><img src="./assets/favicons/hackage.haskell.org.ico" width="16px"> </a></td>
<td><code>ha</code></td>
<td>hackage</td>
<td><a href="https://hackage.haskell.org">hackage.haskell.org</a></td>
<td></td>
</tr>
<tr>
<td><a href="https://hex.pm"><img src="./assets/favicons/hex.pm.ico" width="16px"> </a></td>
<td><code>hd</code></td>
<td>hexdocs</td>
<td><a href="https://hex.pm">hex.pm</a></td>
<td></td>
</tr>
<tr>
<td><a href="https://news.ycombinator.com"><img src="./assets/favicons/news.ycombinator.com.ico" width="16px"> </a></td>
<td><code>hn</code></td>
<td>hackernews</td>
<td><a href="https://news.ycombinator.com">news.ycombinator.com</a></td>
<td><a href="#hackernews">:framed_picture:</a></td>
</tr>
<tr>
<td><a href="https://www.haskell.org"><img src="./assets/favicons/www.haskell.org.ico" width="16px"> </a></td>
<td><code>ho</code></td>
<td>hoogle</td>
<td><a href="https://www.haskell.org">www.haskell.org</a></td>
<td><a href="#hoogle">:framed_picture:</a></td>
</tr>
<tr>
<td><a href="https://wiki.haskell.org"><img src="./assets/favicons/wiki.haskell.org.ico" width="16px"> </a></td>
<td><code>hw</code></td>
<td>haskellwiki</td>
<td><a href="https://wiki.haskell.org">wiki.haskell.org</a></td>
<td></td>
</tr>
<tr>
<td><a href="https://hex.pm"><img src="./assets/favicons/hex.pm.ico" width="16px"> </a></td>
<td><code>hx</code></td>
<td>hex</td>
<td><a href="https://hex.pm">hex.pm</a></td>
<td></td>
</tr>
<tr>
<td><a href="https://jquery.com"><img src="./assets/favicons/jquery.com.ico" width="16px"> </a></td>
<td><code>jq</code></td>
<td>jquery</td>
<td><a href="https://jquery.com">jquery.com</a></td>
<td></td>
</tr>
<tr>
<td><a href="https://developer.mozilla.org"><img src="./assets/favicons/developer.mozilla.org.ico" width="16px"> </a></td>
<td><code>md</code></td>
<td>mdn</td>
<td><a href="https://developer.mozilla.org">developer.mozilla.org</a></td>
<td><a href="#mdn">:framed_picture:</a></td>
</tr>
<tr>
<td><a href="https://nodejs.org"><img src="./assets/favicons/nodejs.org.ico" width="16px"> </a></td>
<td><code>no</code></td>
<td>node</td>
<td><a href="https://nodejs.org">nodejs.org</a></td>
<td></td>
</tr>
<tr>
<td><a href="https://www.npmjs.com"><img src="./assets/favicons/www.npmjs.com.ico" width="16px"> </a></td>
<td><code>np</code></td>
<td>npm</td>
<td><a href="https://www.npmjs.com">www.npmjs.com</a></td>
<td><a href="#npm">:framed_picture:</a></td>
</tr>
<tr>
<td><a href="https://www.owasp.org"><img src="./assets/favicons/www.owasp.org.ico" width="16px"> </a></td>
<td><code>ow</code></td>
<td>owasp</td>
<td><a href="https://www.owasp.org">www.owasp.org</a></td>
<td></td>
</tr>
<tr>
<td><a href="https://www.reddit.com"><img src="./assets/favicons/www.reddit.com.ico" width="16px"> </a></td>
<td><code>re</code></td>
<td>reddit</td>
<td><a href="https://www.reddit.com">www.reddit.com</a></td>
<td></td>
</tr>
<tr>
<td><a href="https://stackexchange.com"><img src="./assets/favicons/stackexchange.com.ico" width="16px"> </a></td>
<td><code>se</code></td>
<td>stackexchange</td>
<td><a href="https://stackexchange.com">stackexchange.com</a></td>
<td></td>
</tr>
<tr>
<td><a href="https://stackoverflow.com"><img src="./assets/favicons/stackoverflow.com.ico" width="16px"> </a></td>
<td><code>so</code></td>
<td>stackoverflow</td>
<td><a href="https://stackoverflow.com">stackoverflow.com</a></td>
<td></td>
</tr>
<tr>
<td><a href="https://www.onelook.com"><img src="./assets/favicons/www.onelook.com.ico" width="16px"> </a></td>
<td><code>th</code></td>
<td>thesaurus</td>
<td><a href="https://www.onelook.com">www.onelook.com</a></td>
<td><a href="#thesaurus">:framed_picture:</a></td>
</tr>
<tr>
<td><a href="https://vim.fandom.com"><img src="./assets/favicons/vim.fandom.com.ico" width="16px"> </a></td>
<td><code>vw</code></td>
<td>vimwiki</td>
<td><a href="https://vim.fandom.com">vim.fandom.com</a></td>
<td></td>
</tr>
<tr>
<td><a href="http://www.wolframalpha.com"><img src="./assets/favicons/www.wolframalpha.com.ico" width="16px"> </a></td>
<td><code>wa</code></td>
<td>wolframalpha</td>
<td><a href="http://www.wolframalpha.com">www.wolframalpha.com</a></td>
<td><a href="#wolframalpha">:framed_picture:</a><a href="#wolframalpha-2">:framed_picture:</a></td>
</tr>
<tr>
<td><a href="https://en.wikipedia.org"><img src="./assets/favicons/en.wikipedia.org.ico" width="16px"> </a></td>
<td><code>wp</code></td>
<td>wikipedia</td>
<td><a href="https://en.wikipedia.org">en.wikipedia.org</a></td>
<td></td>
</tr>
<tr>
<td><a href="https://simple.wikipedia.org"><img src="./assets/favicons/simple.wikipedia.org.ico" width="16px"> </a></td>
<td><code>ws</code></td>
<td>wikipedia-simple</td>
<td><a href="https://simple.wikipedia.org">simple.wikipedia.org</a></td>
<td></td>
</tr>
<tr>
<td><a href="https://en.wiktionary.org"><img src="./assets/favicons/en.wiktionary.org.ico" width="16px"> </a></td>
<td><code>wt</code></td>
<td>wiktionary</td>
<td><a href="https://en.wiktionary.org">en.wiktionary.org</a></td>
<td></td>
</tr>
<tr>
<td><a href="https://www.yelp.com"><img src="./assets/favicons/www.yelp.com.ico" width="16px"> </a></td>
<td><code>yp</code></td>
<td>yelp</td>
<td><a href="https://www.yelp.com">www.yelp.com</a></td>
<td></td>
</tr>
<tr>
<td><a href="https://www.youtube.com"><img src="./assets/favicons/www.youtube.com.ico" width="16px"> </a></td>
<td><code>yt</code></td>
<td>youtube</td>
<td><a href="https://www.youtube.com">www.youtube.com</a></td>
<td><a href="#youtube">:framed_picture:</a></td>
</tr>
</tbody>
</table>
<!--
| Alias | Name | Domain | Screenshots |
| ----- | ---- | ------ | ----------- |
-->
Installation
------------
### Dependencies
Building `surfingkeys-conf` requires a few dependencies to be installed:
- __Surfingkeys__ `^0.9.40`
- __git__
- __node__
- __gulp__
### Building & Installing
1. __Clone this repository__
```shell
$ git clone http://github.com/b0o/surfingkeys-conf
$ cd surfingkeys-conf
```
2. __Install the NodeJS build dependencies__
```shell
$ npm install
```
3. __*(Optional)* Private API Key Configuration__
Some search suggestion engines require private API keys for access. These
keys are defined in `conf.priv.js`, which is not itself included in this repository.
An example configuration containing instructions on how to generate each API key
can be found in [conf.priv.example.js](./conf.priv.example.js).
Copy the example private configuration:
```shell
$ cp ./conf.priv.example.js ./conf.priv.js
```
Open `./conf.priv.js` in your favorite editor and follow the instructions inside:
```shell
$ vim ./conf.priv.js
```
4. __Gulp Build/Install__
```shell
$ gulp install # OR "gulp build" to build to ./build/surfingkeys.js without installing
```
This will build the final configuration file and place it at `~/.config/surfingkeys.js`.
If you already have a file in that location, make sure you back it up first!
5. __Load your configuration into the SurfingKeys Extension__
<details>
<summary><strong>Option A</strong> <em>(recommended)</em>: Configure SurfingKeys to automatically load the configuration file</summary>
<blockquote><details>
<summary><strong>Local File Access (Chrome/Chromium only)</strong></summary>
- __I.__ Visit `chrome://extensions/` and enable `Allow access to file URLs` for the Surfingkeys extension.
- __II.__ Open the SurfingKeys configuration page: `chrome-extension://mffcegbjcdejldmihkogmcnkgbbhioid/pages/options.html`.
- __III.__ Set the `Load settings from` option to point to the configuration file.
_Note: you must specify the full, absolute path; environment variables like `$HOME` or the tilde `~` won't work_:
- __Linux__: `file:///home/{USERNAME}/.config/surfingkeys.js` (replace `{USERNAME}` with your username)
- __macOS__: `file:///Users/{USERNAME}/.config/surfingkeys.js` (replace `{USERNAME}` with your username)
- __Windows__: `file://%Homedrive%%Homepath%/surfingkeys.js` (This is a guess, please correct me if I'm wrong)
- __IV.__ Hack Away! If you ever make a change to any of your configuration files in the future, simply run `gulp install` again and your
new configuration will automatically be loaded by SurfingKeys.
</details></blockquote>
<blockquote><details>
<summary><strong>Local Web Server (Chrome, Chromium, and Firefox)</strong></summary>
- __I.__ Run the configuration file server:
```shell
$ gulp serve-simple
```
Alternatively, you can use the `gulp serve` task, which automatically rebuilds the configuration file whenever a source file is modified.
- __II.__ Open the SurfingKeys configuration page:
Chrome: `chrome-extension://mffcegbjcdejldmihkogmcnkgbbhioid/pages/options.html`
Firefox: `moz-extension://7b04efeb-0b36-47f6-9f57-70293e5ee7b2/pages/options.html`
- __III.__ Set the `Load settings from` option to `http://localhost:9919`
- __IV.__ You will want to configure your system to automatically run `gulp serve-simple` from the repository directory on boot, otherwise
SurfingKeys will lose the settings as soon as the local web server is down.
If you run Linux with systemd, an [example user service](./surfingkeys-conf.service) is provided in this repo. You will need to modify
it to contain the proper path to your surfingkeys-conf repo.
- __V.__ Hack Away! If you ever make a change to any of your configuration files in the future, simply run `gulp build` again and your new
configuration will automatically be loaded by SurfingKeys.
- __Note:__ This method starts a web server on `localhost:9919`. Depending on your firewall configuration, other devices on your local network
(or the internet at large in the case of misconfigured router firewall) may be able to read your configuration file, including any private
API keys or other secrets you have configured in `conf.priv.js`. Proceed with caution.
</details></blockquote>
</details>
<details>
<summary><strong>Option B</strong>: Manually copy/paste into the SurfingKeys configuration form</summary>
- __I.__ Copy the contents of `./build/surfingkeys.js` (or `$HOME/.config/surfingkeys.js` if you ran `gulp install`)
- __II.__ Open the SurfingKeys configuration page:
Chrome: `chrome-extension://mffcegbjcdejldmihkogmcnkgbbhioid/pages/options.html`
Firefox: `moz-extension://7b04efeb-0b36-47f6-9f57-70293e5ee7b2/pages/options.html`
- __III.__ Paste into the text box, then press `save`
- __IV.__ Repeat steps 4 - 5 after any changes you make to any of your configuration files.
</details>
Screenshots
-----------
##### crunchbase-people
![crunchbase-people screenshot](./assets/screenshots/cp.png)
##### define
![define screenshot](./assets/screenshots/de.png)
##### dockerhub
![dockerhub screenshot](./assets/screenshots/dh.png)
##### domainr
![domainr screenshot](./assets/screenshots/do.png)
##### github
![github screenshot](./assets/screenshots/gh.png)
##### hackernews
![hackernews screenshot](./assets/screenshots/hn.png)
##### hoogle
![hoogle screenshot](./assets/screenshots/ho.png)
##### mdn
![mdn screenshot](./assets/screenshots/md.png)
##### npm
![npm screenshot](./assets/screenshots/np.png)
##### thesaurus
![thesaurus screenshot](./assets/screenshots/th.png)
##### wolframalpha
![wolframalpha screenshot](./assets/screenshots/wa-01.png)
##### wolframalpha 2
![wolframalpha screenshot](./assets/screenshots/wa-02.png)
##### youtube
![youtube screenshot](./assets/screenshots/yt.png)
Todo
----
- [ ] Include aliased sites in README
- [ ] Add `CHANGELOG.md` using [conventional-changelog](https://github.com/conventional-changelog/conventional-changelog)
- [ ] Improve code organization
- [ ] Ensure screenshots have a plain white background
- [ ] Add additional screenshots
- [x] Simplify installation process
- [x] Feed the kittens
Copyright
---------
<p><h4>Author</h4>&copy; 2017-2021 <a href="https://github.com/b0o">Maddison Hellstrom</a></p><p><h4>License</h4>Released under the <a href="./LICENSE">MIT License</a></p>