map ev.keyCode to human names
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information. fix some README errors Feb 1, 2013
index.js remove duplicate key and add 'use strict' Dec 1, 2016
package.json 1.0.1 Dec 28, 2016
test.js fix message Jan 31, 2013


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.)