   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
 - HTML code
 - QEMU QKeyCode
 - Sun KBD
 - Apple ADB
 - NeXT Cube

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
 - Rust


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

