Skip to content

KMP Metadata File (kmp.inf and kmp.json)

Marc Durdin edited this page Jan 31, 2019 · 4 revisions

kmp.inf is based on the INI format.

NOTE: Replaced by https://help.keyman.com/developer/11.0/reference/file-types/metadata

kmp.json is a parallel format but in a more easily parseable JSON format. (Schema)

Fields

[Package]

Version

Required: Yes
Type: Float
Float: Version number of Keyman Developer/Desktop
Example: Version=7.0

GraphicFile

Type: String
String: Name of image to be shown during installation
Example: GraphicFile=khm.jpg

[Fonts]

Filename

Type: String
String: Face name of font
Example: KhmerOS.ttf=Khmer OS

[Info]

Name

Required: Yes
Type: String,String
String: Package Name
String: Empty string (for legacy support)
Example: Name="NiDa Khmer",""

Version

Type: String,String
String: Version number of package in dotted number format. Defaults to "1.0" if missing.
String: Empty string (for legacy support)
Example: Version="1.1",""

Copyright

Type: String
String Copyright information
Example: Copyright="© 2006 State Library of Victoria"

Author

Type: String,String
String: Name
String: Email address
Example: Author="John Doe","mailto:[email protected]"

WebSite

Type: String,String
String: Description of URL
String: URL associated with keyboard
Example: WebSite="Sample Keyboard Home","https://samplekeyboard.com"

[Files]

i

There is one key for each file in the KMP. i is zero indexed.

Type: String,String,Integer
String: Description of file
String: Filename in package
Integer: 0 (for legacy support)
Example:

0="File khmer10.kvk","khmer10.kvk",0
1="Keyboard NiDA Khmer","khmer10.kmx",0
2="Package information","kmp.inf",0

[Keyboardi]

There is one section for each keyboard in the KMP and i is zero-indexed. For example, [Keyboard0], [Keyboard1], [Keyboard2], etc.

Name

Required: Yes
Type: String
String: The human readable name of the keyboard. This will usually differ from the ID.
Example: name=Khmer (NiDA)

ID

Required: Yes
Type: String
String: The identifier for the keyboard, equivalent to filename prefix (excluding version).
Example: ID=kbdkhmr
This would then match kbdkhmr.kmx, kbdkhmr.kldml, kbdkhmr-1.1.js

Version

Required: Yes
Type: String
String: Version of the keyboard
Example: Version=1.1

RTL

Required: No
Type: Boolean
String: True (1) if the keyboard is RTL
Example: Version=1

Languagei

There is one key for each language that the keyboard supports. i is zero-indexed.

Required: At least 1
Type: String,String
String: Lower case full BCP 47 language tag
String: Description of language name
Example:

Language0=km,Central Khmer
Language1=har-Latn,Harari with Latin script

OSKFont

Type: String
String: Filename of .ttf used for the on-screen keyboard.
Example: OSKFont=KhmerOS.ttf

DisplayFont

Type: String
String: Filename of .ttf used for display text within the mobile app.
Example: DisplayFont=KhmerOS.ttf

Clone this wiki locally