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