node package manager
Easy collaboration. Discover, share, and reuse code in your team. Create a free org ยป



This library converts among X11 keysyms, unicodes, and string names in node.js.

Why would anybody want to do that? Why indeed, dear reader. Why indeed.


  • fromKeysym - look up a record from an integral keysym
  • fromUnicode - look up a record from its integral unicode position
  • fromName - look up a record by name

You can also get at all the records at require('keysym').records.

Record Format

Records are just hashes with fields: keysym, unicode, status, ane name. These fields come directly from keysyms.txt, except keysym and unicode are converted from hexadecimal strings to integers.


Look up keysym records from a unicode position

var ks = require('keysym');

Output: [ { keysym: 65288 , unicode: 8 , status: 'f' , names: [ 'BackSpace' ] } ]


To install with npm:

npm install keysym

To run the tests with expresso:



This module is basically just a thin wrapper around a public domain keysym dataset compiled by Markus G. Kuhn.

Specifically, it's from this file.