Keyboard Support

Contact and Search

Keyman.com Homepage

Header bottom

Keyman.com

Other versions
Version 17.0 (current version)Version 16.0Version 15.0Version 14.0Version 13.0Version 12.0Version 11.0Version 10.0

On this page

Keyman Package Metadata files

Used by:
Keyman applications on all platforms except web.
Description:
The files kmp.inf and kmp.json are metadata for a Keyman package file.
Details:
When Keyman Developer compiles a Keyman package source file (.KPS), it creates and automatically adds kmp.inf and kmp.json into the Keyman Package file (.KMP).
Keyman mobile products use kmp.json to install the touch keyboards (.JS) in the package.
Keyman Desktop 10.0 also uses kmp.json to install the keyboards (.KMX) in the package.
Older versions of Keyman use kmp.inf, a parallel format of the package metadata. Note: the lexical model compiler does not add kmp.inf
Package purposes:
A Keyman Package file can be used to distribute keyboards (most common), lexical models, or user interface localizations for Keyman Desktop.

KMP.JSON

The package object

The kmp.json file is a base object described as

system
Object
System object.
options
Object
An Options object.
startMenu
Object
Start Menu object.
info
Object
Info object.
files
Object
Array of objects, each containing a name and description of each file in in the package
keyboards
Object
Array of Keyboard objects.
lexicalModels
Object
Array of LexicalModel objects.

The System object

The System object is used by Keyman Desktop to install keyboards

keymanDeveloperVersion
string
The version of Keyman Developer used to create the package file. If undefined, use '0.0.0.0'
fileVersion,
string

The Options object

The Options object is used by Keyman Desktop to install keyboards

readmeFile
string
The file for the keyboard package documentation
graphicFile
string
The image associated with the keyboard package.

The Start Menu object

The StartMenu object is used by Keyman Desktop to install windows

folder
string
The folder that Keyman Desktop will create
items
Array
An array of Item objects

The Item Object

The Item object

name
string
The item name
filename
string
The filename of the item
location
string
The location for Keyman Desktop to place the item

The Info object

The Info object describes the Keyman package

name
string
The Keyman package name
version
string
The version number of the package in dotted number format. Defaults to '1.0' if missing
copyright
string optional
Copyright information
author
string optional
The Keyman package author and email address
website
string optional
Description and URL for additional Keyboard package documentation

The Keyboard object

The Keyboard object describes an individual keyboard in the Keyman package. A package cannot contain both lexical models and keyboards.

name
string
Name of keyboard
id
string
ID of the keyboard, always matches the filename of the keyboard
rtl
boolean optional
true if the keyboard targets a right-to-left script. false if absent.
version
string
version number of the keyboard in dotted number format. Defaults to '1.0' if missing
languages
Array
An array of Language objects linked to the keyboard.
displayFont
string optional
The filename of the font for input fields (and OSK, if oskFont is not present).
oskFont
string optional
The filename of the font for the OSK

The Language object

The Language object describes the language that can be typed with the keyboard

name
string
The name of the language
id
string
BCP 47 language code

The LexicalModel object

The LexicalModel object describes an individual model in the Keyman package. A package cannot contain both lexical models and keyboards.

name
string
Name of model
id
string
ID of the model, always matches the filename of the model
rtl
boolean optional
true if the model targets a right-to-left script. false if absent.
version
string
version number of the model in dotted number format.
languages
Array
An array of Language objects linked to the model.