You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

81 lines
2.7 KiB

  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": "qmk.definitions.v1#/text_identifier"},
  14. "keyboard": {"$ref": "qmk.definitions.v1#/text_identifier"},
  15. "keymap": {"$ref": "qmk.definitions.v1#/text_identifier"},
  16. "layout": {"$ref": "qmk.definitions.v1#/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. "macros": {
  39. "type": "array",
  40. "items": {
  41. "type": "array",
  42. "items": {
  43. "oneOf": [
  44. {
  45. "type": "string"
  46. },
  47. {
  48. "type": "object",
  49. "additionalProperties": false,
  50. "properties": {
  51. "action": {
  52. "type": "string",
  53. "enum": ["beep", "delay", "down", "tap", "up"]
  54. },
  55. "keycodes": {
  56. "type": "array",
  57. "items": {
  58. "$ref": "qmk.definitions.v1#/text_identifier"
  59. }
  60. },
  61. "duration": {
  62. "$ref": "qmk.definitions.v1#/unsigned_int"
  63. }
  64. }
  65. }
  66. ]
  67. }
  68. }
  69. },
  70. "keycodes": {"$ref": "qmk.definitions.v1#/keycode_decl_array"},
  71. "config": {"$ref": "qmk.keyboard.v1"},
  72. "notes": {
  73. "type": "string"
  74. }
  75. },
  76. "required": [
  77. "keyboard",
  78. "layout",
  79. "layers"
  80. ]
  81. }