aboutsummaryrefslogtreecommitdiffstats
path: root/lib/mousetrap/README.md
diff options
context:
space:
mode:
authorTeddy Wing2015-05-23 16:21:38 -0400
committerTeddy Wing2015-05-23 16:21:38 -0400
commit3a09e4dd09a6af3b228fcda68aa0709626b5ee51 (patch)
treea434d76ccae2a55cfe4f4c0215a99017de4bba33 /lib/mousetrap/README.md
parent6183a0bb3caf4805ed4242a4ac104b9890db3601 (diff)
downloadPeniquitous-3a09e4dd09a6af3b228fcda68aa0709626b5ee51.tar.bz2
Set up Bower. Install Mousetrap.
* Create limited bower.json file * Create .bowerrc that tells Bower to use the `lib` directory * Install Mousetrap for key events
Diffstat (limited to 'lib/mousetrap/README.md')
-rw-r--r--lib/mousetrap/README.md102
1 files changed, 102 insertions, 0 deletions
diff --git a/lib/mousetrap/README.md b/lib/mousetrap/README.md
new file mode 100644
index 0000000..67c1321
--- /dev/null
+++ b/lib/mousetrap/README.md
@@ -0,0 +1,102 @@
+# Mousetrap
+
+Mousetrap is a simple library for handling keyboard shortcuts in Javascript.
+
+It is licensed under the Apache 2.0 license.
+
+It is around **2kb** minified and gzipped and **4.5kb** minified, has no external dependencies, and has been tested in the following browsers:
+
+- Internet Explorer 6+
+- Safari
+- Firefox
+- Chrome
+
+It has support for ``keypress``, ``keydown``, and ``keyup`` events on specific keys, keyboard combinations, or key sequences.
+
+If you would like to donate to help support Mousetrap development use [Gittip](https://www.gittip.com/ccampbell).
+
+## Getting started
+
+1. Include mousetrap on your page before the closing ``</body>`` tag
+
+ ```html
+ <script src="/path/to/mousetrap.min.js"></script>
+ ```
+
+2. Add some keyboard events to listen for
+
+ ```html
+ <script>
+ // single keys
+ Mousetrap.bind('4', function() { console.log('4'); });
+ Mousetrap.bind("?", function() { console.log('show shortcuts!'); });
+ Mousetrap.bind('esc', function() { console.log('escape'); }, 'keyup');
+
+ // combinations
+ Mousetrap.bind('command+shift+k', function() { console.log('command shift k'); });
+
+ // map multiple combinations to the same callback
+ Mousetrap.bind(['command+k', 'ctrl+k'], function() {
+ console.log('command k or control k');
+
+ // return false to prevent default browser behavior
+ // and stop event from bubbling
+ return false;
+ });
+
+ // gmail style sequences
+ Mousetrap.bind('g i', function() { console.log('go to inbox'); });
+ Mousetrap.bind('* a', function() { console.log('select all'); });
+
+ // konami code!
+ Mousetrap.bind('up up down down left right left right b a enter', function() {
+ console.log('konami code');
+ });
+ </script>
+ ```
+
+## Why Mousetrap?
+
+There are a number of other similar libraries out there so what makes this one different?
+
+- There are no external dependencies, no framework is required
+- You are not limited to ``keydown`` events (You can specify ``keypress``, ``keydown``, or ``keyup`` or let Mousetrap choose for you).
+- You can bind key events directly to special keys such as ``?`` or ``*`` without having to specify ``shift+/`` or ``shift+8`` which are not consistent across all keyboards
+- It works with international keyboard layouts
+- You can bind Gmail like key sequences in addition to regular keys and key combinations
+- You can programatically trigger key events with the ``trigger()`` method
+- It works with the numeric keypad on your keyboard
+- The code is well documented/commented
+
+## Tests
+
+Unit tests run via <a href="http://mochajs.org/" target="_blank">mocha</a>.
+
+### Running in browser
+
+Download the repo and go to `tests/mousetrap.html` in your browser.
+
+### Running with Grunt and PhantomJS
+
+1. Install grunt-cli
+
+ ```bash
+ npm install -g grunt-cli
+ ```
+
+2. Install npm packages
+
+ ```bash
+ cd /path/to/repo
+ npm install
+ ```
+
+3. Run tests
+
+ ```bash
+ grunt mocha
+ ```
+
+## Documentation
+
+Full documentation can be found at https://craig.is/killing/mice