Maddy's SurfingKeys Configuration ================================= This is my configuration for the [SurfingKeys](https://github.com/brookhong/Surfingkeys) browser extension. Its primary features include - 129 [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 129 key mappings for 21 unique sites have been included which can help you perform some common actions:
global
MappingDescription
FOpen a link in non-active new tab
zfOpen link URL in vim editor
wScroll up
sScroll down
KScroll half page up
JScroll half page down
giEdit current URL with vim editor
giEdit current URL with vim editor
gIView image in new tab
ypCopy URL path of current page
yICopy Image URL
yOCopy page URL/Title as Org-mode link
yMCopy page URL/Title as Markdown link
yTDuplicate current tab (non-active new tab)
;seEdit Settings
gSOpen Chrome settings
=wLookup whois information for domain
=dLookup dns information for domain
=DLookup all information for domain
=cShow Google's cached version of page
=aShow Archive.org Wayback Machine for page
=oShow outline.com version of page
=rSubscribe to RSS feed for page
=sSpeed read page
;pdToggle PDF viewer from SurfingKeys
gxEClose tab to left
gxRClose tab to right
algolia.com
MappingDescription
<Space>aOpen search result
amazon.com
MappingDescription
<Space>fsFakespot
<Space>aView product
<Space>cAdd to Cart
<Space>RView Product Reviews
<Space>QView Product Q&A
<Space>AOpen Account page
<Space>COpen Cart page
<Space>OOpen Orders page
aur.archlinux.org
MappingDescription
<Space>aView package
behance.net
MappingDescription
<Space>sAppreciate project
<Space>bAdd project to collection
<Space>aView project
<Space>AView project (non-active new tab)
craigslist.org
MappingDescription
<Space>aView listing
dribbble.com
MappingDescription
<Space>sHeart Shot
<Space>aView shot
<Space>AView shot (non-active new tab)
<Space>vView attachment image
<Space>VYank attachment image source URL
<Space>zZoom shot
duckduckgo.com
MappingDescription
<Space>aOpen search result
<Space>AOpen search result (non-active new tab)
]]Show more results
<Space>gOpen search in Google
fonts.adobe.com
MappingDescription
<Space>aActivate font
<Space>sFavorite font
github.com
MappingDescription
<Space>AOpen repository Actions page
<Space>COpen repository Commits page
<Space>IOpen repository Issues page
<Space>POpen repository Pull Requests page
<Space>ROpen Repository page
<Space>SOpen repository Settings page
<Space>WOpen repository Wiki page
<Space>XOpen repository Security page
<Space>OOpen repository Owner's profile page
<Space>MOpen your profile page ('Me')
<Space>aView Repository
<Space>uView User
<Space>fView File
<Space>cView Commit
<Space>iView Issue
<Space>pView Pull Request
<Space>eView external link
guGo up one path in the URL (GitHub)
<Space>sToggle Star
<Space>yCopy Project Path
<Space>YCopy Project Path (including domain)
<Space>lToggle repo language stats
<Space>DView GoDoc for Project
<Space>HView RepoHealth Report for Project
<Space>raView live raw version of file
gitlab.com
MappingDescription
<Space>sToggle Star
<Space>yCopy Project Path
<Space>YCopy Project Path (including domain)
<Space>DView GoDoc for Project
news.ycombinator.com
MappingDescription
<Space>xCollapse comment
<Space>XCollapse next comment
<Space>sUpvote
<Space>SDownvote
<Space>aView post (link)
<Space>AView post (link and comments)
<Space>cView post (comments)
<Space>CView post (comments) (non-active new tab)
<Space>eView external link
gpGo to parent
]]Next page
[[Prev page
producthunt.com
MappingDescription
<Space>aView product (external)
<Space>vView product
<Space>sUpvote product
reddit.com
MappingDescription
<Space>xCollapse comment
<Space>XCollapse next comment
<Space>sUpvote
<Space>SDownvote
<Space>eExpand expando
<Space>aView post (link)
<Space>AView post (link) (non-active new tab)
<Space>cView post (comments)
<Space>CView post (comments) (non-active new tab)
stackoverflow.com
MappingDescription
<Space>aView question
twitter.com
MappingDescription
<Space>fFollow user
<Space>sLike tweet
<Space>RRetweet
<Space>cComment/Reply
<Space>tNew tweet
<Space>TTweet to
<Space>rLoad new tweets
<Space>gGoto user
vimeo.com
MappingDescription
<Space>FToggle fullscreen
wikipedia.org
MappingDescription
<Space>sToggle simple version of current article
<Space>aView page
<Space>eView external link
www.google.com
MappingDescription
<Space>aOpen search result
<Space>AOpen search result (non-active new tab)
<Space>dOpen search in DuckDuckGo
yelp.com
MappingDescription
<Space>fsFakespot
youtube.com
MappingDescription
AOpen video
COpen channel
gHGoto homepage
FToggle fullscreen
<Space>Play/pause
### 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.
Alias Name Domain Screenshots
D duckduckgo-lucky duckduckgo.com
G google-lucky www.google.com
af archforums bbs.archlinux.org
al archlinux www.archlinux.org
at alternativeTo alternativeto.net
au AUR aur.archlinux.org
aw archwiki wiki.archlinux.org
az amazon smile.amazon.com
cl craigslist www.craigslist.org
co crunchbase-orgs www.crunchbase.com
cp crunchbase-people www.crunchbase.com :framed_picture:
cs chromestore chrome.google.com
dd duckduckgo duckduckgo.com
de define onelook.com :framed_picture:
dh dockerhub hub.docker.com :framed_picture:
di duckduckgo-images duckduckgo.com
dm duckduckgo-maps duckduckgo.com
dn duckduckgo-news duckduckgo.com
do domainr domainr.com :framed_picture:
dv duckduckgo-videos duckduckgo.com
eb ebay www.ebay.com
ex exdocs hex.pm
fa firefox-addons addons.mozilla.org
fe firefox-extensions addons.mozilla.org
ft firefox-themes addons.mozilla.org
gd godoc godoc.org
gg golang golang.org
gh github github.com :framed_picture:
gi google-images www.google.com
go google www.google.com
gs go-search go-search.org
gw gowalker gowalker.org
ha hackage hackage.haskell.org
hd hexdocs hex.pm
hn hackernews news.ycombinator.com :framed_picture:
ho hoogle www.haskell.org :framed_picture:
hw haskellwiki wiki.haskell.org
hx hex hex.pm
hy hayoo hayoo.fh-wedel.de
jq jquery jquery.com
md mdn developer.mozilla.org :framed_picture:
no node nodejs.org
np npm www.npmjs.com :framed_picture:
ow owasp www.owasp.org
re reddit www.reddit.com
se stackexchange stackexchange.com
so stackoverflow stackoverflow.com
th thesaurus www.onelook.com :framed_picture:
vw vimwiki vim.fandom.com
wa wolframalpha www.wolframalpha.com :framed_picture::framed_picture:
wp wikipedia en.wikipedia.org
ws wikipedia-simple simple.wikipedia.org
wt wiktionary en.wiktionary.org
yp yelp www.yelp.com
yt youtube www.youtube.com :framed_picture:
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__
Option A (recommended): Configure SurfingKeys to automatically load the configuration file
Local File Access (Chrome/Chromium only) - __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.
Local Web Server (Chrome, Chromium, and Firefox) - __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.
Option B: Manually copy/paste into the SurfingKeys configuration form - __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.
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 ---------

Author

© 2017-2020 Maddison Hellstrom

License

Released under the MIT License