node package manager


map ev.keyCode to human names


virtual keyCode to human name mapping. let's team up to quash all of the keyCode inconsistencies that we can!

var vkey = require('vkey')
document.body.addEventListener('keydown', function(ev) {
}, false)

cobbled together from Benvie's Keyboard and MDN.

contributing / making life better for everyone

EASY MODE, Step 0: Visit the test page. Go to Step 2.

Step 1: get the repo and run the test site.

$ git clone git://
$ cd vkey.git
$ npm install --dev .
$ npm start
$ # open localhost:3030

Step 2: open the site in all the browsers you have at your command! mash keys! note inconsistencies!

Step 3: open an issue with:

  1. your operating system
  2. the browser + version
  3. (as best as you can describe), what kind of keyboard you're using. images welcome! crude drawings of keyboards less welcome, but still a little welcome.
  4. what key you pressed
  5. what result you expected
  6. what result you got

Step 3, HARD MODE: open a pull request with all of the above, and a minimally invasive fix!

deviations thus far

  • meta left and right are reduced to <meta>, because no one really seems to support it correctly.
  • <unk> is coerced to <menu> on OSX, since it has no idea what that button is (using a dell keyboard.)