This project is being actively maintained. I will make sure it continues to function and will also add commands when the extension API is expanded. I will respond to and categorize issues and review and merge pull requests.
Please do contribute! I'm not planning on working on the below items. Open an issue or WIP pull request if you'd like to be pointed in the right direction on how to implement something.
- save command history and display on options page along with usage statistics/graphs
- enable scrolling past 5th suggestion
- allow clicking on and reordering saved session icons and rows of icons
- allow omnibox keyword interaction, eg
f extract google.com
- remember what keys people press and what action they take to improve future suggestions
- refactor popup into a backbone app
- take logic out of templates
- remove custom compilation system - make modules and require them
- make icons fade to transparent
- when url has highest score, title is still text-match emboldened
- allow for multiple search terms for extract, close, etc.
- show entered capital letters
- filter exts/apps when
mayDisable
is false andcmd
is disable - make cross-browser with Crossrider
- put tips based on past usage (eg 'try out saving your session') in the broswer action tooltip and options page
- class system for different types of suggestions
- write tests, need to mock chrome api for some parts
"kill": {
"suggested_key": {
"default": "Alt+Shift+K"
}
}
The extension code is in src/
. There is one background script, which along with the options page and action page has access to the extension's local storage and chrome extension API. The background script also maintains sessions state by making changes to local storage and the f.sessions
global variable in each tab. The options page provides an interface to change sessions and the Ferro keyboard shortcut, and it updates each tab's f.sessions
and f.shortcut
variables (via requests to the background) as well as saving the changes to localStorage
.
commands:
defines available commandschrome-pages:
lists the specialabout:
andchrome://
pageskeys:
lists the special keys Ferro recognizesoptions:
Coffeecup template of the extension's options page, converted to HTML before packagingoptions-backbone:
the Backbone.js application thatoptions
loadspopup:
Coffeecup template of the main UItemplate-loader
: loads popup and sets up Easter egg
Since in all my wisdom I didn't use classes, types.txt
lists the fields of different types of suggestions.
- Nicholas Jitkoff and the Quicksilver development community for Quicksilver, which inspired Ferro
- Joseph Schmitt for Snipe extension, which also inspired Ferro
- Jeremy Ashkenas for CoffeeScript
- DocumentCloud for Underscore
- Joshaven Potter for the string_score Javascript library
- Stallman and Steele for Emacs
- Jobs for my Macbook Pro
- Page and Brin for Chrome :-)