# displaymap.schema.json This mapping file provides data for remapping the touch layout and visual keyboard key caps. The primary purpose of this file is to provide a pathway for consistent display of diacritics and other unattached marks which may be displayed on the keyboard by use of a special font with formatted glyphs in the Private Use Area, which will have consistent display across all platforms and not rely on platform-specific or font-specific rendering behaviors. This file can be generated by `kmc analyze osk-char-use` command, or hand crafted. The compiler uses only the `str` and `pua` values in the file, although there may be additional data in the file provided for reference purposes. The file should have the following structure, in this example, mapping the Unicode values `U+17BB U+17C7` (ុះ) to the Private Use Area code `U+F19F`: ```json { "map": [ { "pua": "F19F", "str": "ុះ", "unicode": "17BB 17C7", "usages": [ "khmer_angkor.kvks", "khmer_angkor.keyman-touch-layout" ] }, ... ] } ``` The file can be passed without modification to the [ttkbdfont.py script][2] (unsupported) to generate a Kbd font. The font may need some manual editing as insertion of dotted circle (`U+25CC`) as a base may not always be possible automatically, and combined marks may not render as a cluster in some scenarios. The open source tool [FontForge][3] is suitable for making these kinds of minor adjustments to the generated font. ## Standard conventions for use of displayMaps In the Keyman keyboards repository, the PUA range used should start at `U+F100`. `&displayMap` JSON files should be named `Kbd