   Key code / scan code / key symbol mapping database
   ==================================================

This module provides a database that maps between different
key code / scan code / key symbol sets:

 - Linux evdev
 - OS-X
 - AT Set 1
 - AT Set 2
 - AT Set 3
 - XT
 - Linux XT KBD driver
 - USB HID
 - Win32
 - XWin XT
 - XKBD XT
 - Xorg Evdev
 - Xorg KBD
 - Xorg OS-X
 - XOrg Cygwin
 - RFB

Licensing
---------

The contents of this package are dual licensed under the terms of:

 - GNU General Public License (version 2 or later)
 - 3-clause BSD License

The output files generated by keymap-gen may be distributed & used under
the terms of either of the above licenses.

Data formats
------------

The following output formats are possible

 - Code map

   An array mapping between key code sets values

   Indexes in the array are values from the source code set.
   Entries in the array are values from the target code set


 - Code table

   An array listing all values in a key code set

   Indexes in the array are simply a numeric counter
   Entries in the array are values from the key code set

   The size of the array matches the total number of entries in
   the keycode database.


 - Name map

   An array mapping between key code sets values and names

   Indexes in the array are values from the source code set
   Entries in the array are names from the target code set


 - Name table

   An array listing all names in a key code set

   Indexes in the array are simply a numeric counter
   Entries in the array are values from the key code set

   The size of the array matches the total number of entries in
   the keycode database.


Output languages
----------------

The tool is capable of generating data tables for the following
programming languages / environments

 - Standard C
 - GLib2 (standard C, but with GLib2 data types)
 - Python
 - Perl


Usage
-----

Map values from AT Set 1 to USB HID, generating tables for the
C programming language

 $ keymap-gen --lang stdc code-map data/keymaps.csv atset1 usb

Generate a tables of names for Linux key codes, OS-X key codes,
in python - equivalent array indexes map between the two sets.
A variable name override is used

 $ keymap-gen --varname linux_keycodes --lang stdc \
              code-table data/keymaps.csv linux
 $ keymap-gen --varname osx_keycodes --lang stdc \
              code-table data/keymaps.csv os-x

Generate a mapping from XOrg XWin values to Win32 names

 $ keymap-gen --lang perl name-map data/keymaps.csv xorgxwin win32

Generate a table of names for Linux key codes in Perl

 $ keymap-gen --lang perl name-table data/keymaps.csv linux

