qmk_firmware

QMK firmware for my keyboards (Corne, Sweep Ferris) and trackball (Ploopy Adept)
Log | Files | Refs | Submodules | LICENSE

keymap.jsonschema (3136B)


      1 {
      2     "$schema": "https://json-schema.org/draft/2020-12/schema#",
      3     "$id": "qmk.keymap.v1",
      4     "title": "Keymap Information",
      5     "type": "object",
      6     "properties": {
      7         "author": {"type": "string"},
      8         "converter": {
      9             "type": "string",
     10             "minLength": 1,
     11             "pattern": "^[a-z][0-9a-z_]*$"
     12         },
     13         "host_language": {"$ref": "./definitions.jsonschema#/text_identifier"},
     14         "keyboard": {"$ref": "./definitions.jsonschema#/text_identifier"},
     15         "keymap": {"$ref": "./definitions.jsonschema#/text_identifier"},
     16         "layout": {"$ref": "./definitions.jsonschema#/layout_macro"},
     17         "layers": {
     18             "type": "array",
     19             "items": {
     20                 "type": "array",
     21                 "items": {"type": "string"}
     22             }
     23         },
     24         "encoders": {
     25             "type": "array",
     26             "items": {
     27                 "type": "array",
     28                 "items": {
     29                     "type": "object",
     30                     "required": ["ccw", "cw"],
     31                     "properties": {
     32                         "ccw": {"type": "string"},
     33                         "cw": {"type": "string"}
     34                     }
     35                 }
     36             }
     37         },
     38         "dip_switches": {
     39             "type": "array",
     40             "items": {
     41                 "type": "object",
     42                 "required": ["on", "off"],
     43                 "properties": {
     44                     "on": {"type": "string"},
     45                     "off": {"type": "string"}
     46                 }
     47             }
     48         },
     49         "macros": {
     50             "type": "array",
     51             "items": {
     52                 "type": "array",
     53                 "items": {
     54                     "oneOf": [
     55                         {
     56                             "type": "string"
     57                         },
     58                         {
     59                             "type": "object",
     60                             "additionalProperties": false,
     61                             "properties": {
     62                                 "action": {
     63                                     "type": "string",
     64                                     "enum": ["beep", "delay", "down", "tap", "up"]
     65                                 },
     66                                 "keycodes": {
     67                                     "type": "array",
     68                                     "items": {
     69                                         "$ref": "./definitions.jsonschema#/text_identifier"
     70                                     }
     71                                 },
     72                                 "duration": {
     73                                     "$ref": "./definitions.jsonschema#/unsigned_int"
     74                                 }
     75                             }
     76                         }
     77                     ]
     78                 }
     79             }
     80         },
     81         "keycodes": {"$ref": "./definitions.jsonschema#/keycode_decl_array"},
     82         "config": {"$ref": "./keyboard.jsonschema#"},
     83         "notes": {
     84             "type": "string"
     85         },
     86         "modules": {
     87             "type": "array",
     88             "items": {
     89                 "type": "string"
     90             }
     91         }
     92     }
     93 }