mirror of
https://github.com/keymanapp/keyman.git
synced 2026-11-09 09:27:32 +00:00
170 lines
4.4 KiB
JSON
170 lines
4.4 KiB
JSON
{
|
|
"$schema": "http://json-schema.org/schema#",
|
|
"$ref": "#/definitions/touch-layout",
|
|
"$comment": "Version: 16.0",
|
|
"description": "A Keyman Touch Layout file, per version 16.0, clean spec, no legacy data or types",
|
|
|
|
"definitions": {
|
|
"touch-layout": {
|
|
"type": "object",
|
|
"properties": {
|
|
"tablet": { "$ref": "#/definitions/platform" },
|
|
"phone": { "$ref": "#/definitions/platform" },
|
|
"desktop": { "$ref": "#/definitions/platform" }
|
|
},
|
|
"minProperties": 1,
|
|
"additionalProperties": false
|
|
},
|
|
|
|
"platform": {
|
|
"type": "object",
|
|
"properties": {
|
|
"font": { "$ref": "#/definitions/font-spec" },
|
|
"fontsize": { "$ref": "#/definitions/fontsize-spec" },
|
|
"layer": { "$ref": "#/definitions/layers" },
|
|
"displayUnderlying": { "type": "boolean" },
|
|
"defaultHint": { "type": "string", "enum": ["none","dot","longpress","multitap","flick","flick-n","flick-ne","flick-e","flick-se","flick-s","flick-sw","flick-w","flick-nw"] }
|
|
},
|
|
"required": ["layer"],
|
|
"additionalProperties": false
|
|
},
|
|
|
|
"layers": {
|
|
"type": "array",
|
|
"items": { "$ref": "#/definitions/layer" },
|
|
"minItems": 1
|
|
},
|
|
|
|
"layer": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": { "$ref": "#/definitions/layer-id" },
|
|
"row": { "$ref": "#/definitions/rows" }
|
|
},
|
|
"required": ["id", "row"],
|
|
"additionalProperties": false
|
|
},
|
|
|
|
"layer-id": {
|
|
"type": "string",
|
|
"pattern": "^[a-zA-Z0-9_-]+$"
|
|
},
|
|
|
|
"rows": {
|
|
"type": "array",
|
|
"items": { "$ref": "#/definitions/row" },
|
|
"minItems": 1
|
|
},
|
|
|
|
"row": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": { "$ref": "#/definitions/row-id" },
|
|
"key": { "$ref": "#/definitions/keys" }
|
|
},
|
|
"required": ["id", "key"],
|
|
"additionalProperties": false
|
|
},
|
|
|
|
"row-id": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 100
|
|
},
|
|
|
|
"keys": {
|
|
"type": "array",
|
|
"items": { "$ref": "#/definitions/key" },
|
|
"minItems": 1
|
|
},
|
|
|
|
"key": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": { "$ref": "#/definitions/key-id" },
|
|
"text": { "type": "string" },
|
|
"layer": { "$ref": "#/definitions/layer-id" },
|
|
"nextlayer": { "$ref": "#/definitions/layer-id" },
|
|
"font": { "$ref": "#/definitions/font-spec" },
|
|
"fontsize": { "$ref": "#/definitions/fontsize-spec" },
|
|
"sp": { "$ref": "#/definitions/key-sp" },
|
|
"pad": { "$ref" : "#/definitions/key-pad" },
|
|
"width": { "$ref" : "#/definitions/key-width" },
|
|
"sk": { "$ref": "#/definitions/subkeys" },
|
|
"flick": { "$ref": "#/definitions/flick" },
|
|
"multitap": { "$ref": "#/definitions/subkeys" },
|
|
"hint": { "type": "string" }
|
|
},
|
|
"anyOf": [
|
|
{"required": ["id"]},
|
|
{"required": ["sp"]},
|
|
{"required": ["sk"]},
|
|
{"required": ["flick"]},
|
|
{"required": ["multitap"]}
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
|
|
"key-id": {
|
|
"type": "string",
|
|
"pattern": "^[TKUtku]_[a-zA-Z0-9_]+$"
|
|
},
|
|
|
|
"key-sp": {
|
|
"type": "integer",
|
|
"enum": [0, 1, 2, 8, 9, 10]
|
|
},
|
|
|
|
"key-pad": {
|
|
"type": "number",
|
|
"minimum": 0,
|
|
"maximum": 100000
|
|
},
|
|
|
|
"key-width": {
|
|
"type": "number",
|
|
"minimum": 0,
|
|
"maximum": 100000
|
|
},
|
|
|
|
"subkeys": {
|
|
"type": "array",
|
|
"items": { "$ref": "#/definitions/subkey" },
|
|
"minItems": 1
|
|
},
|
|
|
|
"subkey": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": { "$ref": "#/definitions/key-id" },
|
|
"text": { "type": "string" },
|
|
"layer": { "$ref": "#/definitions/layer-id" },
|
|
"nextlayer": { "$ref": "#/definitions/layer-id" },
|
|
"font": { "$ref": "#/definitions/font-spec" },
|
|
"fontsize": { "$ref": "#/definitions/fontsize-spec" },
|
|
"sp": { "$ref": "#/definitions/key-sp" },
|
|
"pad": { "$ref" : "#/definitions/key-pad" },
|
|
"width": { "$ref" : "#/definitions/key-width" }
|
|
},
|
|
"required": ["id"],
|
|
"additionalProperties": false
|
|
},
|
|
|
|
"flick": {
|
|
"type": "object",
|
|
"patternProperties": {
|
|
"^(n|s|e|w|ne|nw|se|sw)$": { "$ref": "#/definitions/subkey" }
|
|
},
|
|
"minProperties": 1,
|
|
"additionalProperties": false
|
|
},
|
|
|
|
"font-spec": {
|
|
"type": "string"
|
|
},
|
|
|
|
"fontsize-spec": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|