Bacontrap
Mousetrap inspired keyboard shortcuts implemented with Bacon.js.
Unlike Mousetrap, Bacontrap is not a standalone library: Bacon.js and jQuery/Zepto are dependencies. Since these provide functionality for Bacontrap, the library itself is even smaller than Mousetrap.
Installation
Via NPM:
$ npm install bacontrap --save
Usage
const Bacontrap = ;Bacontrap;Bacontrap;Bacontrap; // combinationsBacontrap; Bacontrap; // gmail style sequencesBacontrap;Bacontrap; // shift+letter = LETTERBacontrap;Bacontrap; // konami code!Bacontrap;
Hacking
The build process runs on gulp. Assuming npm is installed, dependencies can be installed by running
$ npm install
After that, you can run use local gulp from ./node_modules/.bin/gulp
or
have it installed globally with
$ npm install -g gulp
Then you should be able to run tests with
$ gulp test
To continously run tests after file changes use
$ gulp watch
There's also a gulp task for compiling distributable JS files.
$ gulp dist
TODO
- Test with Internet Explorer
- Escape as modifier key
- Maybe support for different key events (keydown/keyup)
- Keyboard shortcuts using cmd/ctrl are not triggered on Google Chrome, but using these is probably a bad idea anyway
- Pressing modifier keys do not interrupt shortcut sequences