Switch branches/tags
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
61 lines (42 sloc) 1.43 KB


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.