A keyboard input capturing utility in which any key can be a modifier key.

License: Apache-2.0

Language: CoffeeScript


Version 2.1.4

Keypress is a robust keyboard input capturing Javascript utility focused on input for games. For details and documentation, please visit

If you're using Keypress with Meteor, see the Meteor notes.

Copyright 2016 David Mauro
released under the Apache License, version 2.0

What's new




  • Added some simple jQuery proofing so you can pass in the result of a jQuery selector into the Listener's constructor. Thanks to mallocator for the request. Issue #89
  • Changed the default behavior of how sequence combos behavior. Most people probably would have considered this a bug, so I'm not considering this API breaking. Thanks to ronnyek for pointing the problem out in Issue #68.
  • Bower file cleaned up thanks to kkirsche. Pull request #97
  • Keys in FF/Gecko - and = fixed thanks to deanputney. Pull request #95




  • Fixed a bug unregistering combos using arrays of keys
  • Added ie8 compatibility shim. Thanks to barrkel. Issue #41
  • Fixed a bug targetting the semicolon key in Firefox. Thanks to mikekuehn.
  • Added commonJS module support. Issue #45


  • Fixed a bug that prevented combos from unregistering, and updated the docs for how to unregister properly. Thanks to pelly and g00fy-. Issue # 34.
  • Added AMD support. Issue #37.


  • Fixed a big ole bug with meta/cmd combos. Thanks to lexey111. Issue #29.
  • Fixed a bug with the Windows key being released on Windows systems. Issue #27.


  • Keypress now has a listener class that must be instantiated. The functions that were previously in the global window.keypress object are now public methods of the window.keypress.Listener class.
  • Each instance of a Keypress listener can be bound to a DOM element by passing in the element to the listener's constructor.
  • Combos now default to being ordered (the property is now called is_unordered and is false by default).
  • Combos' handlers preventDefault unless the handler returns true.
  • The "combo" public method is now called "simple_combo".
  • The basic combo helpers for simple, counting and sequence combos no longer have a third prevent_default optional parameter.
  • Debugging console logs can be enabled by setting keypress.debug to true.
  • All key event callbacks send a third argument specifying whether the event is firing again automatically because the key has remained pressed down.


  • Fix escape key bug. Issue #17.
  • Fix unregister bug. Issue #24.


  • Ensure that on_release is called for all combos, not just counting combos.
  • Fix bug that was causing is_ordered to be ignored.
  • Fixed an edge case for a counting combo's count not being reset.
  • Improve how key events are bound


  • Fixed combo matching to prevent performance issues as more keys are pressed.


  • Fixed a bug with exclusive combos not properly excluding each other in some cases.
  • Feature added to allow for combos that do not fire if unrelated keys are also pressed ("is_solitary" boolean).


  • Put negative edge in sequences.
  • See if we can do away with keyup_fired and count properties.

Project Statistics

Sourcerank 12
Repository Size 5.48 MB
Stars 3,151
Forks 322
Watchers 112
Open issues 27
Dependencies 2
Contributors 18
Tags 11
Last updated
Last pushed

Top Contributors See all

David Mauro Richard Zach Dan Dascalescu chencheng (云谦) Stephen Blott Dan Rocha Kevin Kirsche Mithgol Barry Kelly George Pîrlea John Pelly Mike Kuehn Steve Erickson Telesphore Beau West Valera Rozuvan Dean Putney

Packages Referencing this Repo

A robust keyboard input capturing Javascript utility focused on input for games. For details and ...
Latest release 2.1.4 - Published - 3.15K stars
WebJar for Keypress
Latest release 2.1.3 - Updated - 3.15K stars
KeyboardJS (official): easy to use keyboard wrapper. Advanced combos, overlap prevention, locales.
Latest release 0.4.2 - Published - 3.15K stars
For details and documentation, please visit This package insta...
Latest release 2.0.3 - Updated - 3.15K stars
Keypress (official): robust keyboard handling focused on games. Use Keypress, not window.keypress
Latest release 2.1.0 - Published - 3.15K stars
a robust keyboard input capturing Javascript utility focused on input for games. For details and ...
Latest release 2.1.5 - Updated - 3.15K stars

Recent Tags See all

v2.1.3 August 18, 2015
2.1.4 August 18, 2015
2.1.3 August 16, 2015
2.1.2 January 16, 2015
2.1.0 November 09, 2014
2.0.3 July 13, 2014
2.0.2 May 04, 2014
2.0.1 February 05, 2014
2.0 January 20, 2014
1.0.9 November 16, 2013
1.0.8 October 14, 2013

Interesting Forks See all

A keyboard input capturing utility in which any key can be a modifier key.
CoffeeScript - Last pushed - 1 stars

Something wrong with this page? Make a suggestion

Last synced: 2016-11-24 13:41:49 UTC

Login to resync this repository