keymap.jsonschema 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  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. "enum": ["elite_pi", "proton_c", "kb2040", "promicro_rp2040", "blok", "bit_c_pro", "stemcell", "bonsai_c4"]
  11. },
  12. "host_language": {"$ref": "qmk.definitions.v1#/text_identifier"},
  13. "keyboard": {"$ref": "qmk.definitions.v1#/text_identifier"},
  14. "keymap": {"$ref": "qmk.definitions.v1#/text_identifier"},
  15. "layout": {"$ref": "qmk.definitions.v1#/layout_macro"},
  16. "layers": {
  17. "type": "array",
  18. "items": {
  19. "type": "array",
  20. "items": {"type": "string"}
  21. }
  22. },
  23. "macros": {
  24. "type": "array",
  25. "items": {
  26. "type": "array",
  27. "items": {
  28. "oneOf": [
  29. {
  30. "type": "string"
  31. },
  32. {
  33. "type": "object",
  34. "additionalProperties": false,
  35. "properties": {
  36. "action": {
  37. "type": "string",
  38. "enum": ["beep", "delay", "down", "tap", "up"]
  39. },
  40. "keycodes": {
  41. "type": "array",
  42. "items": {
  43. "$ref": "qmk.definitions.v1#/text_identifier"
  44. }
  45. },
  46. "duration": {
  47. "$ref": "qmk.definitions.v1#/unsigned_int"
  48. }
  49. }
  50. }
  51. ]
  52. }
  53. }
  54. },
  55. "config": {"$ref": "qmk.keyboard.v1"},
  56. "notes": {
  57. "type": "string"
  58. }
  59. },
  60. "required": [
  61. "keyboard",
  62. "layout",
  63. "layers"
  64. ]
  65. }