All Projects → ferro → ferro

ferro / ferro

Licence: other
Do stuff with your keyboard in Chrome

Programming Languages

coffeescript
4710 projects
CSS
56736 projects
javascript
184084 projects - #8 most used programming language
Sass
350 projects
ruby
36898 projects - #4 most used programming language
HTML
75241 projects

Ferro

Our old website (Heroku stopped supporting our buildpack)

Here's a nice-looking alternative, although with fewer functions: https://www.tabbs.pro/

TODO

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 and cmd 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

When the manifest command limit of 4 is lifted

	"kill": {
	    "suggested_key": {
		"default": "Alt+Shift+K"
	    }
	}

Code Structure

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 commands
  • chrome-pages: lists the special about: and chrome:// pages
  • keys: lists the special keys Ferro recognizes
  • options: Coffeecup template of the extension's options page, converted to HTML before packaging
  • options-backbone: the Backbone.js application that options loads
  • popup: Coffeecup template of the main UI
  • template-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.

Credits

  • 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 :-)
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].