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.

431 lines
18 KiB

Add a lot more data to info.json (#13366) * add some split data to info.json * add tags * add half of config_options.md to info.json * add support for designating master split * sort out split transport and primary * fix bad data in UNUSED_PINS * fixup custom transport * wip * allow for setting split right half keyboard matrix * add SPLIT_USB_DETECT * minor cleanup * fix an erroneous message * rework split.usb_detect * adding missing rgblight vars to info.json * add mouse_key to info.json * add all remaining options from docs/config_options.md * fix audio voices * qmk info: Change text output to use dotted notation * tweak layout output * resolve alias names * break out some functions to make flake8 happy * add a field for bootloader instructions * qmk generate-info-json: add a write-to-file argument Adds an argument that instructs qmk generate-info-json to write the output to a file instead of just to the terminal. * -arg_only, +action Because it was never my intention that one would have to specify a value for the argument that enables writing the file. * Bring qmk generate-info-json inline with other generate commands * pytest fixup * fix esca/getawayvan * fix data driven errors for bpiphany converters * features.force_nkro -> usb.force_nkro * split.primary->split.main * fix esca/getawayvan_f042 * fix the bpiphany converters for real * fix bpiphany/tiger_lily * Apply suggestions from code review Co-authored-by: Nick Brassel <nick@tzarc.org> * fix generate-api errors * fix matrix pin extraction for split boards * fix ploopyco/trackball_nano/rev1_001 Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> Co-authored-by: Nick Brassel <nick@tzarc.org>
2 years ago
2 years ago
Add a lot more data to info.json (#13366) * add some split data to info.json * add tags * add half of config_options.md to info.json * add support for designating master split * sort out split transport and primary * fix bad data in UNUSED_PINS * fixup custom transport * wip * allow for setting split right half keyboard matrix * add SPLIT_USB_DETECT * minor cleanup * fix an erroneous message * rework split.usb_detect * adding missing rgblight vars to info.json * add mouse_key to info.json * add all remaining options from docs/config_options.md * fix audio voices * qmk info: Change text output to use dotted notation * tweak layout output * resolve alias names * break out some functions to make flake8 happy * add a field for bootloader instructions * qmk generate-info-json: add a write-to-file argument Adds an argument that instructs qmk generate-info-json to write the output to a file instead of just to the terminal. * -arg_only, +action Because it was never my intention that one would have to specify a value for the argument that enables writing the file. * Bring qmk generate-info-json inline with other generate commands * pytest fixup * fix esca/getawayvan * fix data driven errors for bpiphany converters * features.force_nkro -> usb.force_nkro * split.primary->split.main * fix esca/getawayvan_f042 * fix the bpiphany converters for real * fix bpiphany/tiger_lily * Apply suggestions from code review Co-authored-by: Nick Brassel <nick@tzarc.org> * fix generate-api errors * fix matrix pin extraction for split boards * fix ploopyco/trackball_nano/rev1_001 Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> Co-authored-by: Nick Brassel <nick@tzarc.org>
2 years ago
2 years ago
Add a lot more data to info.json (#13366) * add some split data to info.json * add tags * add half of config_options.md to info.json * add support for designating master split * sort out split transport and primary * fix bad data in UNUSED_PINS * fixup custom transport * wip * allow for setting split right half keyboard matrix * add SPLIT_USB_DETECT * minor cleanup * fix an erroneous message * rework split.usb_detect * adding missing rgblight vars to info.json * add mouse_key to info.json * add all remaining options from docs/config_options.md * fix audio voices * qmk info: Change text output to use dotted notation * tweak layout output * resolve alias names * break out some functions to make flake8 happy * add a field for bootloader instructions * qmk generate-info-json: add a write-to-file argument Adds an argument that instructs qmk generate-info-json to write the output to a file instead of just to the terminal. * -arg_only, +action Because it was never my intention that one would have to specify a value for the argument that enables writing the file. * Bring qmk generate-info-json inline with other generate commands * pytest fixup * fix esca/getawayvan * fix data driven errors for bpiphany converters * features.force_nkro -> usb.force_nkro * split.primary->split.main * fix esca/getawayvan_f042 * fix the bpiphany converters for real * fix bpiphany/tiger_lily * Apply suggestions from code review Co-authored-by: Nick Brassel <nick@tzarc.org> * fix generate-api errors * fix matrix pin extraction for split boards * fix ploopyco/trackball_nano/rev1_001 Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> Co-authored-by: Nick Brassel <nick@tzarc.org>
2 years ago
Add a lot more data to info.json (#13366) * add some split data to info.json * add tags * add half of config_options.md to info.json * add support for designating master split * sort out split transport and primary * fix bad data in UNUSED_PINS * fixup custom transport * wip * allow for setting split right half keyboard matrix * add SPLIT_USB_DETECT * minor cleanup * fix an erroneous message * rework split.usb_detect * adding missing rgblight vars to info.json * add mouse_key to info.json * add all remaining options from docs/config_options.md * fix audio voices * qmk info: Change text output to use dotted notation * tweak layout output * resolve alias names * break out some functions to make flake8 happy * add a field for bootloader instructions * qmk generate-info-json: add a write-to-file argument Adds an argument that instructs qmk generate-info-json to write the output to a file instead of just to the terminal. * -arg_only, +action Because it was never my intention that one would have to specify a value for the argument that enables writing the file. * Bring qmk generate-info-json inline with other generate commands * pytest fixup * fix esca/getawayvan * fix data driven errors for bpiphany converters * features.force_nkro -> usb.force_nkro * split.primary->split.main * fix esca/getawayvan_f042 * fix the bpiphany converters for real * fix bpiphany/tiger_lily * Apply suggestions from code review Co-authored-by: Nick Brassel <nick@tzarc.org> * fix generate-api errors * fix matrix pin extraction for split boards * fix ploopyco/trackball_nano/rev1_001 Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> Co-authored-by: Nick Brassel <nick@tzarc.org>
2 years ago
Add a lot more data to info.json (#13366) * add some split data to info.json * add tags * add half of config_options.md to info.json * add support for designating master split * sort out split transport and primary * fix bad data in UNUSED_PINS * fixup custom transport * wip * allow for setting split right half keyboard matrix * add SPLIT_USB_DETECT * minor cleanup * fix an erroneous message * rework split.usb_detect * adding missing rgblight vars to info.json * add mouse_key to info.json * add all remaining options from docs/config_options.md * fix audio voices * qmk info: Change text output to use dotted notation * tweak layout output * resolve alias names * break out some functions to make flake8 happy * add a field for bootloader instructions * qmk generate-info-json: add a write-to-file argument Adds an argument that instructs qmk generate-info-json to write the output to a file instead of just to the terminal. * -arg_only, +action Because it was never my intention that one would have to specify a value for the argument that enables writing the file. * Bring qmk generate-info-json inline with other generate commands * pytest fixup * fix esca/getawayvan * fix data driven errors for bpiphany converters * features.force_nkro -> usb.force_nkro * split.primary->split.main * fix esca/getawayvan_f042 * fix the bpiphany converters for real * fix bpiphany/tiger_lily * Apply suggestions from code review Co-authored-by: Nick Brassel <nick@tzarc.org> * fix generate-api errors * fix matrix pin extraction for split boards * fix ploopyco/trackball_nano/rev1_001 Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> Co-authored-by: Nick Brassel <nick@tzarc.org>
2 years ago
Add a lot more data to info.json (#13366) * add some split data to info.json * add tags * add half of config_options.md to info.json * add support for designating master split * sort out split transport and primary * fix bad data in UNUSED_PINS * fixup custom transport * wip * allow for setting split right half keyboard matrix * add SPLIT_USB_DETECT * minor cleanup * fix an erroneous message * rework split.usb_detect * adding missing rgblight vars to info.json * add mouse_key to info.json * add all remaining options from docs/config_options.md * fix audio voices * qmk info: Change text output to use dotted notation * tweak layout output * resolve alias names * break out some functions to make flake8 happy * add a field for bootloader instructions * qmk generate-info-json: add a write-to-file argument Adds an argument that instructs qmk generate-info-json to write the output to a file instead of just to the terminal. * -arg_only, +action Because it was never my intention that one would have to specify a value for the argument that enables writing the file. * Bring qmk generate-info-json inline with other generate commands * pytest fixup * fix esca/getawayvan * fix data driven errors for bpiphany converters * features.force_nkro -> usb.force_nkro * split.primary->split.main * fix esca/getawayvan_f042 * fix the bpiphany converters for real * fix bpiphany/tiger_lily * Apply suggestions from code review Co-authored-by: Nick Brassel <nick@tzarc.org> * fix generate-api errors * fix matrix pin extraction for split boards * fix ploopyco/trackball_nano/rev1_001 Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> Co-authored-by: Nick Brassel <nick@tzarc.org>
2 years ago
Add a lot more data to info.json (#13366) * add some split data to info.json * add tags * add half of config_options.md to info.json * add support for designating master split * sort out split transport and primary * fix bad data in UNUSED_PINS * fixup custom transport * wip * allow for setting split right half keyboard matrix * add SPLIT_USB_DETECT * minor cleanup * fix an erroneous message * rework split.usb_detect * adding missing rgblight vars to info.json * add mouse_key to info.json * add all remaining options from docs/config_options.md * fix audio voices * qmk info: Change text output to use dotted notation * tweak layout output * resolve alias names * break out some functions to make flake8 happy * add a field for bootloader instructions * qmk generate-info-json: add a write-to-file argument Adds an argument that instructs qmk generate-info-json to write the output to a file instead of just to the terminal. * -arg_only, +action Because it was never my intention that one would have to specify a value for the argument that enables writing the file. * Bring qmk generate-info-json inline with other generate commands * pytest fixup * fix esca/getawayvan * fix data driven errors for bpiphany converters * features.force_nkro -> usb.force_nkro * split.primary->split.main * fix esca/getawayvan_f042 * fix the bpiphany converters for real * fix bpiphany/tiger_lily * Apply suggestions from code review Co-authored-by: Nick Brassel <nick@tzarc.org> * fix generate-api errors * fix matrix pin extraction for split boards * fix ploopyco/trackball_nano/rev1_001 Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> Co-authored-by: Nick Brassel <nick@tzarc.org>
2 years ago
Add a lot more data to info.json (#13366) * add some split data to info.json * add tags * add half of config_options.md to info.json * add support for designating master split * sort out split transport and primary * fix bad data in UNUSED_PINS * fixup custom transport * wip * allow for setting split right half keyboard matrix * add SPLIT_USB_DETECT * minor cleanup * fix an erroneous message * rework split.usb_detect * adding missing rgblight vars to info.json * add mouse_key to info.json * add all remaining options from docs/config_options.md * fix audio voices * qmk info: Change text output to use dotted notation * tweak layout output * resolve alias names * break out some functions to make flake8 happy * add a field for bootloader instructions * qmk generate-info-json: add a write-to-file argument Adds an argument that instructs qmk generate-info-json to write the output to a file instead of just to the terminal. * -arg_only, +action Because it was never my intention that one would have to specify a value for the argument that enables writing the file. * Bring qmk generate-info-json inline with other generate commands * pytest fixup * fix esca/getawayvan * fix data driven errors for bpiphany converters * features.force_nkro -> usb.force_nkro * split.primary->split.main * fix esca/getawayvan_f042 * fix the bpiphany converters for real * fix bpiphany/tiger_lily * Apply suggestions from code review Co-authored-by: Nick Brassel <nick@tzarc.org> * fix generate-api errors * fix matrix pin extraction for split boards * fix ploopyco/trackball_nano/rev1_001 Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> Co-authored-by: Nick Brassel <nick@tzarc.org>
2 years ago
Add a lot more data to info.json (#13366) * add some split data to info.json * add tags * add half of config_options.md to info.json * add support for designating master split * sort out split transport and primary * fix bad data in UNUSED_PINS * fixup custom transport * wip * allow for setting split right half keyboard matrix * add SPLIT_USB_DETECT * minor cleanup * fix an erroneous message * rework split.usb_detect * adding missing rgblight vars to info.json * add mouse_key to info.json * add all remaining options from docs/config_options.md * fix audio voices * qmk info: Change text output to use dotted notation * tweak layout output * resolve alias names * break out some functions to make flake8 happy * add a field for bootloader instructions * qmk generate-info-json: add a write-to-file argument Adds an argument that instructs qmk generate-info-json to write the output to a file instead of just to the terminal. * -arg_only, +action Because it was never my intention that one would have to specify a value for the argument that enables writing the file. * Bring qmk generate-info-json inline with other generate commands * pytest fixup * fix esca/getawayvan * fix data driven errors for bpiphany converters * features.force_nkro -> usb.force_nkro * split.primary->split.main * fix esca/getawayvan_f042 * fix the bpiphany converters for real * fix bpiphany/tiger_lily * Apply suggestions from code review Co-authored-by: Nick Brassel <nick@tzarc.org> * fix generate-api errors * fix matrix pin extraction for split boards * fix ploopyco/trackball_nano/rev1_001 Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> Co-authored-by: Nick Brassel <nick@tzarc.org>
2 years ago
Add a lot more data to info.json (#13366) * add some split data to info.json * add tags * add half of config_options.md to info.json * add support for designating master split * sort out split transport and primary * fix bad data in UNUSED_PINS * fixup custom transport * wip * allow for setting split right half keyboard matrix * add SPLIT_USB_DETECT * minor cleanup * fix an erroneous message * rework split.usb_detect * adding missing rgblight vars to info.json * add mouse_key to info.json * add all remaining options from docs/config_options.md * fix audio voices * qmk info: Change text output to use dotted notation * tweak layout output * resolve alias names * break out some functions to make flake8 happy * add a field for bootloader instructions * qmk generate-info-json: add a write-to-file argument Adds an argument that instructs qmk generate-info-json to write the output to a file instead of just to the terminal. * -arg_only, +action Because it was never my intention that one would have to specify a value for the argument that enables writing the file. * Bring qmk generate-info-json inline with other generate commands * pytest fixup * fix esca/getawayvan * fix data driven errors for bpiphany converters * features.force_nkro -> usb.force_nkro * split.primary->split.main * fix esca/getawayvan_f042 * fix the bpiphany converters for real * fix bpiphany/tiger_lily * Apply suggestions from code review Co-authored-by: Nick Brassel <nick@tzarc.org> * fix generate-api errors * fix matrix pin extraction for split boards * fix ploopyco/trackball_nano/rev1_001 Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> Co-authored-by: Nick Brassel <nick@tzarc.org>
2 years ago
Add a lot more data to info.json (#13366) * add some split data to info.json * add tags * add half of config_options.md to info.json * add support for designating master split * sort out split transport and primary * fix bad data in UNUSED_PINS * fixup custom transport * wip * allow for setting split right half keyboard matrix * add SPLIT_USB_DETECT * minor cleanup * fix an erroneous message * rework split.usb_detect * adding missing rgblight vars to info.json * add mouse_key to info.json * add all remaining options from docs/config_options.md * fix audio voices * qmk info: Change text output to use dotted notation * tweak layout output * resolve alias names * break out some functions to make flake8 happy * add a field for bootloader instructions * qmk generate-info-json: add a write-to-file argument Adds an argument that instructs qmk generate-info-json to write the output to a file instead of just to the terminal. * -arg_only, +action Because it was never my intention that one would have to specify a value for the argument that enables writing the file. * Bring qmk generate-info-json inline with other generate commands * pytest fixup * fix esca/getawayvan * fix data driven errors for bpiphany converters * features.force_nkro -> usb.force_nkro * split.primary->split.main * fix esca/getawayvan_f042 * fix the bpiphany converters for real * fix bpiphany/tiger_lily * Apply suggestions from code review Co-authored-by: Nick Brassel <nick@tzarc.org> * fix generate-api errors * fix matrix pin extraction for split boards * fix ploopyco/trackball_nano/rev1_001 Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> Co-authored-by: Nick Brassel <nick@tzarc.org>
2 years ago
Add a lot more data to info.json (#13366) * add some split data to info.json * add tags * add half of config_options.md to info.json * add support for designating master split * sort out split transport and primary * fix bad data in UNUSED_PINS * fixup custom transport * wip * allow for setting split right half keyboard matrix * add SPLIT_USB_DETECT * minor cleanup * fix an erroneous message * rework split.usb_detect * adding missing rgblight vars to info.json * add mouse_key to info.json * add all remaining options from docs/config_options.md * fix audio voices * qmk info: Change text output to use dotted notation * tweak layout output * resolve alias names * break out some functions to make flake8 happy * add a field for bootloader instructions * qmk generate-info-json: add a write-to-file argument Adds an argument that instructs qmk generate-info-json to write the output to a file instead of just to the terminal. * -arg_only, +action Because it was never my intention that one would have to specify a value for the argument that enables writing the file. * Bring qmk generate-info-json inline with other generate commands * pytest fixup * fix esca/getawayvan * fix data driven errors for bpiphany converters * features.force_nkro -> usb.force_nkro * split.primary->split.main * fix esca/getawayvan_f042 * fix the bpiphany converters for real * fix bpiphany/tiger_lily * Apply suggestions from code review Co-authored-by: Nick Brassel <nick@tzarc.org> * fix generate-api errors * fix matrix pin extraction for split boards * fix ploopyco/trackball_nano/rev1_001 Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> Co-authored-by: Nick Brassel <nick@tzarc.org>
2 years ago
Add a lot more data to info.json (#13366) * add some split data to info.json * add tags * add half of config_options.md to info.json * add support for designating master split * sort out split transport and primary * fix bad data in UNUSED_PINS * fixup custom transport * wip * allow for setting split right half keyboard matrix * add SPLIT_USB_DETECT * minor cleanup * fix an erroneous message * rework split.usb_detect * adding missing rgblight vars to info.json * add mouse_key to info.json * add all remaining options from docs/config_options.md * fix audio voices * qmk info: Change text output to use dotted notation * tweak layout output * resolve alias names * break out some functions to make flake8 happy * add a field for bootloader instructions * qmk generate-info-json: add a write-to-file argument Adds an argument that instructs qmk generate-info-json to write the output to a file instead of just to the terminal. * -arg_only, +action Because it was never my intention that one would have to specify a value for the argument that enables writing the file. * Bring qmk generate-info-json inline with other generate commands * pytest fixup * fix esca/getawayvan * fix data driven errors for bpiphany converters * features.force_nkro -> usb.force_nkro * split.primary->split.main * fix esca/getawayvan_f042 * fix the bpiphany converters for real * fix bpiphany/tiger_lily * Apply suggestions from code review Co-authored-by: Nick Brassel <nick@tzarc.org> * fix generate-api errors * fix matrix pin extraction for split boards * fix ploopyco/trackball_nano/rev1_001 Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> Co-authored-by: Nick Brassel <nick@tzarc.org>
2 years ago
Add a lot more data to info.json (#13366) * add some split data to info.json * add tags * add half of config_options.md to info.json * add support for designating master split * sort out split transport and primary * fix bad data in UNUSED_PINS * fixup custom transport * wip * allow for setting split right half keyboard matrix * add SPLIT_USB_DETECT * minor cleanup * fix an erroneous message * rework split.usb_detect * adding missing rgblight vars to info.json * add mouse_key to info.json * add all remaining options from docs/config_options.md * fix audio voices * qmk info: Change text output to use dotted notation * tweak layout output * resolve alias names * break out some functions to make flake8 happy * add a field for bootloader instructions * qmk generate-info-json: add a write-to-file argument Adds an argument that instructs qmk generate-info-json to write the output to a file instead of just to the terminal. * -arg_only, +action Because it was never my intention that one would have to specify a value for the argument that enables writing the file. * Bring qmk generate-info-json inline with other generate commands * pytest fixup * fix esca/getawayvan * fix data driven errors for bpiphany converters * features.force_nkro -> usb.force_nkro * split.primary->split.main * fix esca/getawayvan_f042 * fix the bpiphany converters for real * fix bpiphany/tiger_lily * Apply suggestions from code review Co-authored-by: Nick Brassel <nick@tzarc.org> * fix generate-api errors * fix matrix pin extraction for split boards * fix ploopyco/trackball_nano/rev1_001 Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> Co-authored-by: Nick Brassel <nick@tzarc.org>
2 years ago
  1. {
  2. "$schema": "http://json-schema.org/draft-07/schema#",
  3. "$id": "qmk.keyboard.v1",
  4. "title": "Keyboard Information",
  5. "type": "object",
  6. "properties": {
  7. "keyboard_name": {"$ref": "qmk.definitions.v1#/text_identifier"},
  8. "maintainer": {"$ref": "qmk.definitions.v1#/text_identifier"},
  9. "manufacturer": {"$ref": "qmk.definitions.v1#/text_identifier"},
  10. "url": {
  11. "type": "string",
  12. "format": "uri"
  13. },
  14. "processor": {
  15. "type": "string",
  16. "enum": ["cortex-m0", "cortex-m0plus", "cortex-m3", "cortex-m4", "MKL26Z64", "MK20DX128", "MK20DX256", "MK66F18", "STM32F042", "STM32F072", "STM32F103", "STM32F303", "STM32F401", "STM32F407", "STM32F411", "STM32F446", "STM32G431", "STM32G474", "STM32L412", "STM32L422", "STM32L433", "STM32L443", "atmega16u2", "atmega32u2", "atmega16u4", "atmega32u4", "at90usb162", "at90usb646", "at90usb647", "at90usb1286", "at90usb1287", "atmega32a", "atmega328p", "atmega328", "attiny85", "unknown"]
  17. },
  18. "audio": {
  19. "type": "object",
  20. "additionalProperties": false,
  21. "properties": {
  22. "alt_as_negative": {"type": "boolean"},
  23. "clicky": {
  24. "type": "object",
  25. "additionalProperties": false,
  26. "properties": {
  27. "enabled": {"type": "boolean"},
  28. "frequency": {
  29. "type": "object",
  30. "additionalProperties": false,
  31. "properties": {
  32. "default": {"$ref": "qmk.definitions.v1#/signed_decimal"},
  33. "factor": {"$ref": "qmk.definitions.v1#/signed_decimal"},
  34. "max": {"$ref": "qmk.definitions.v1#/signed_decimal"},
  35. "min": {"$ref": "qmk.definitions.v1#/signed_decimal"},
  36. "randomness": {"$ref": "qmk.definitions.v1#/signed_decimal"}
  37. }
  38. },
  39. "delay": {"$ref": "qmk.definitions.v1#/signed_int"}
  40. }
  41. },
  42. "dac": {
  43. "type": "object",
  44. "additionalProperties": false,
  45. "properties": {
  46. "sample_waveform": {
  47. "default": "sine",
  48. "type": "string",
  49. "enum": ["sine", "square", "trapezoid", "triangle"]
  50. },
  51. "channel": {"$ref": "qmk.definitions.v1#/unsigned_int"},
  52. }
  53. },
  54. "driver": {
  55. "type": "string",
  56. "enum": ["dac_basic", "dac_additive", "pwm_hardware", "pwm_software"],
  57. },
  58. "init_delay": {"type": "boolean"},
  59. "music_mode": {
  60. "type": "object",
  61. "additionalProperties": false,
  62. "properties": {
  63. "enabled": {"type": "boolean"},
  64. "pitch_standard": {"$ref": "qmk.definitions.v1#/signed_decimal"}
  65. }
  66. },
  67. "pins": {"$ref": "qmk.definitions.v1#/mcu_pin_array"},
  68. "pwm": {
  69. "type": "object",
  70. "additionalProperties": false,
  71. "properties": {
  72. "channel": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
  73. "driver": {
  74. "default": "PWMD1",
  75. "type": "string",
  76. "enum": ["PWMD1", "PWMD2", "PWMD3", "PWMD4", "PWMD5"]
  77. },
  78. "pal_mode": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
  79. }
  80. },
  81. "sendstring_bell": {"type": "boolean"},
  82. "tempo": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
  83. "tone_multiplexing": {
  84. "type": "object",
  85. "additionalProperties": false,
  86. "properties": {
  87. "default_rate": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
  88. "enabled": {"type": "boolean"}
  89. }
  90. },
  91. "voices": {"type": "boolean"}
  92. }
  93. },
  94. "backlight": {
  95. "type": "object",
  96. "additionalProperties": false,
  97. "properties": {
  98. "breathing": {"type": "boolean"},
  99. "breathing_period": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
  100. "levels": {
  101. "type": "number",
  102. "min": 1,
  103. "max": 31,
  104. "multipleOf": 1
  105. },
  106. "pin": {"$ref": "qmk.definitions.v1#/mcu_pin"}
  107. }
  108. },
  109. "bluetooth": {
  110. "type": "object",
  111. "additionalProperties": false,
  112. "properties": {
  113. "driver": {
  114. "type": "string",
  115. "enum": ["AdafruitBLE", "RN42"]
  116. },
  117. "lto": {"type": "boolean"},
  118. }
  119. },
  120. "board": {
  121. "type": "string",
  122. "minLength": 2,
  123. "pattern": "^[a-zA-Z_][0-9a-zA-Z_]*$"
  124. },
  125. "bootloader": {
  126. "type": "string",
  127. "enum": ["atmel-dfu", "bootloadHID", "caterina", "halfkay", "kiibohd", "lufa-dfu", "lufa-ms", "micronucleus", "qmk-dfu", "qmk-hid", "stm32-dfu", "stm32duino", "unknown", "USBasp", "tinyuf2"],
  128. },
  129. "bootloader_instructions": {
  130. "type": "string",
  131. "description": "Instructions for putting the keyboard into a mode that allows for firmware flashing."
  132. },
  133. "build": {
  134. "type": "object",
  135. "additionalProperties": false,
  136. "properties": {
  137. "debounce_type": {
  138. "type": "string",
  139. "enum": ["custom", "eager_pk", "eager_pr", "sym_defer_pk", "sym_eager_pk"]
  140. },
  141. "firmware_format": {
  142. "type": "string",
  143. "enum": ["bin", "hex", "uf2"]
  144. },
  145. "lto": {"type": "boolean"},
  146. }
  147. },
  148. "diode_direction": {
  149. "type": "string",
  150. "enum": ["COL2ROW", "ROW2COL"]
  151. },
  152. "debounce": {"$ref": "qmk.definitions.v1#/unsigned_int"},
  153. "combo": {
  154. "type": "object",
  155. "properties": {
  156. "count": {"$ref": "qmk.definitions.v1#/unsigned_int"},
  157. "term": {"$ref": "qmk.definitions.v1#/unsigned_int"}
  158. }
  159. },
  160. "community_layouts": {
  161. "type": "array",
  162. "items": {"$ref": "qmk.definitions.v1#/filename"}
  163. },
  164. "features": {"$ref": "qmk.definitions.v1#/boolean_array"},
  165. "indicators": {
  166. "type": "object",
  167. "properties": {
  168. "caps_lock": {"$ref": "qmk.definitions.v1#/mcu_pin"},
  169. "num_lock": {"$ref": "qmk.definitions.v1#/mcu_pin"},
  170. "scroll_lock": {"$ref": "qmk.definitions.v1#/mcu_pin"}
  171. }
  172. },
  173. "layout_aliases": {
  174. "type": "object",
  175. "additionalProperties": {"$ref": "qmk.definitions.v1#/layout_macro"}
  176. },
  177. "layouts": {
  178. "type": "object",
  179. "additionalProperties": {
  180. "type": "object",
  181. "additionalProperties": false,
  182. "properties": {
  183. "filename": {
  184. "type": "string"
  185. },
  186. "c_macro": {
  187. "type": "boolean"
  188. },
  189. "key_count": {"$ref": "qmk.definitions.v1#/key_unit"},
  190. "layout": {
  191. "type": "array",
  192. "items": {
  193. "type": "object",
  194. "additionalProperties": false,
  195. "properties": {
  196. "label": {"type": "string"},
  197. "matrix": {
  198. "type": "array",
  199. "minItems": 2,
  200. "maxItems": 2,
  201. "items": {
  202. "type": "number",
  203. "min": 0,
  204. "multipleOf": 1
  205. }
  206. },
  207. "key_count": {"$ref": "qmk.definitions.v1#/key_unit"},
  208. "r": {"$ref": "qmk.definitions.v1#/unsigned_decimal"},
  209. "rx": {"$ref": "qmk.definitions.v1#/unsigned_decimal"},
  210. "ry": {"$ref": "qmk.definitions.v1#/unsigned_decimal"},
  211. "h": {"$ref": "qmk.definitions.v1#/key_unit"},
  212. "w": {"$ref": "qmk.definitions.v1#/key_unit"},
  213. "x": {"$ref": "qmk.definitions.v1#/key_unit"},
  214. "y": {"$ref": "qmk.definitions.v1#/key_unit"}
  215. }
  216. }
  217. }
  218. }
  219. }
  220. },
  221. "leader_key": {
  222. "type": "object",
  223. "properties": {
  224. "timing": {"type": "boolean"},
  225. "strict_processing": {"type": "boolean"},
  226. "timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"}
  227. }
  228. },
  229. "matrix_pins": {
  230. "type": "object",
  231. "additionalProperties": false,
  232. "properties": {
  233. "custom": {"type": "boolean"},
  234. "custom_lite": {"type": "boolean"},
  235. "ghost": {"type": "boolean"},
  236. "io_delay": {"$ref": "qmk.definitions.v1#/unsigned_int"},
  237. "direct": {
  238. "type": "array",
  239. "items": {"$ref": "qmk.definitions.v1#/mcu_pin_array"}
  240. },
  241. "cols": {"$ref": "qmk.definitions.v1#/mcu_pin_array"},
  242. "rows": {"$ref": "qmk.definitions.v1#/mcu_pin_array"},
  243. "unused": {"$ref": "qmk.definitions.v1#/mcu_pin_array"}
  244. }
  245. },
  246. "mouse_key": {
  247. "type": "object",
  248. "properties": {
  249. "enabled": {"type": "boolean"},
  250. "delay": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}
  251. "interval": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}
  252. "max_speed": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}
  253. "time_to_max": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}
  254. "wheel_delay": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}
  255. }
  256. },
  257. "oneshot": {
  258. "type": "object",
  259. "properties": {
  260. "tap_toggle": {"$ref": "qmk.definitions.v1#/unsigned_int"},
  261. "timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"}
  262. }
  263. },
  264. "rgblight": {
  265. "type": "object",
  266. "additionalProperties": false,
  267. "properties": {
  268. "animations": {
  269. "type": "object",
  270. "additionalProperties": {
  271. "type": "boolean"
  272. }
  273. },
  274. "brightness_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"},
  275. "hue_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"},
  276. "layers": {
  277. "type": "object",
  278. "additionalProperties": false,
  279. "properties": {
  280. "blink": {"type": "boolean"},
  281. "enabled": {"type": "boolean"},
  282. "max": {
  283. "type": "number",
  284. "min": 1,
  285. "max": 32,
  286. "multipleOf": 1
  287. },
  288. "override_rgb": {"type": "boolean"}
  289. }
  290. },
  291. "led_count": {"$ref": "qmk.definitions.v1#/unsigned_int"},
  292. "max_brightness": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
  293. "pin": {"$ref": "qmk.definitions.v1#/mcu_pin"},
  294. "rgbw": {"type": "boolean"},
  295. "saturation_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"},
  296. "sleep": {"type": "boolean"},
  297. "split": {"type": "boolean"},
  298. "split_count": {
  299. "type": "array",
  300. "minLength": 2,
  301. "maxLength": 2,
  302. "items": {"$ref": "qmk.definitions.v1#/unsigned_int"}
  303. }
  304. }
  305. },
  306. "split": {
  307. "type": "object",
  308. "additionalProperties": false,
  309. "properties": {
  310. "enabled": {"type": "boolean"},
  311. "matrix_grid": {
  312. "type": "array",
  313. "items": {"$ref": "qmk.definitions.v1#/mcu_pin"}
  314. },
  315. "matrix_pins": {
  316. "type": "object",
  317. "additionalProperties": false,
  318. "properties": {
  319. "right": {
  320. "type": "object",
  321. "additionalProperties": false,
  322. "properties": {
  323. "direct": {
  324. "type": "array",
  325. "items": {"$ref": "qmk.definitions.v1#/mcu_pin_array"}
  326. },
  327. "cols": {"$ref": "qmk.definitions.v1#/mcu_pin_array"},
  328. "rows": {"$ref": "qmk.definitions.v1#/mcu_pin_array"},
  329. "unused": {"$ref": "qmk.definitions.v1#/mcu_pin_array"}
  330. }
  331. }
  332. }
  333. },
  334. "main": {
  335. "type": "string",
  336. "enum": ["eeprom", "left", "matrix_grid", "pin", "right"]
  337. },
  338. "soft_serial_pin": {"$ref": "qmk.definitions.v1#/mcu_pin"},
  339. "soft_serial_speed": {
  340. "type": "number",
  341. "min": 0,
  342. "max": 5,
  343. "multipleOf": 1
  344. },
  345. "transport": {
  346. "type": "object",
  347. "additionalProperties": false,
  348. "properties": {
  349. "protocol": {
  350. "type": "string",
  351. "enum": ["custom", "i2c", "serial", "serial_usart"]
  352. },
  353. "sync_matrix_state": {"type": "boolean"},
  354. "sync_modifiers": {"type": "boolean"}
  355. }
  356. },
  357. "usb_detect": {
  358. "type": "object",
  359. "additionalProperties": false,
  360. "properties": {
  361. "enabled": {"type": "boolean"},
  362. "polling_interval": {"$ref": "qmk.definitions.v1#/unsigned_int"},
  363. "timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"}
  364. }
  365. }
  366. }
  367. },
  368. "tags": {
  369. "type": "array",
  370. "items": {"type": "string"}
  371. },
  372. "tapping": {
  373. "type": "object",
  374. "properties": {
  375. "force_hold": {"type": "boolean"},
  376. "force_hold_per_key": {"type": "boolean"},
  377. "ignore_mod_tap_interrupt": {"type": "boolean"},
  378. "ignore_mod_tap_interrupt_per_key": {"type": "boolean"},
  379. "permissive_hold": {"type": "boolean"},
  380. "permissive_hold_per_key": {"type": "boolean"},
  381. "retro": {"type": "boolean"},
  382. "retro_per_key": {"type": "boolean"},
  383. "term": {"$ref": "qmk.definitions.v1#/unsigned_int"},
  384. "term_per_key": {"type": "boolean"},
  385. "toggle": {"$ref": "qmk.definitions.v1#/unsigned_int"},
  386. }
  387. },
  388. "usb": {
  389. "type": "object",
  390. "additionalProperties": false,
  391. "properties": {
  392. "device_ver": {"$ref": "qmk.definitions.v1#/hex_number_4d"},
  393. "force_nkro": {"type": "boolean"},
  394. "pid": {"$ref": "qmk.definitions.v1#/hex_number_4d"},
  395. "vid": {"$ref": "qmk.definitions.v1#/hex_number_4d"},
  396. "max_power": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
  397. "no_startup_check": {"type": "boolean"},
  398. "polling_interval": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
  399. "shared_endpoint": {
  400. "type": "object",
  401. "additionalProperties": false,
  402. "properties": {
  403. "keyboard": {"type": "boolean"},
  404. "mouse": {"type": "boolean"}
  405. }
  406. },
  407. "suspend_wakeup_delay": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
  408. "wait_for": {"type": "boolean"},
  409. }
  410. },
  411. "qmk": {
  412. "type": "object",
  413. "additionalProperties": false,
  414. "properties": {
  415. "keys_per_scan": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
  416. "tap_keycode_delay": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
  417. "tap_capslock_delay": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
  418. }
  419. },
  420. "qmk_lufa_bootloader": {
  421. "type": "object",
  422. "additionalProperties": false,
  423. "properties": {
  424. "esc_output": {"$ref": "qmk.definitions.v1#/mcu_pin"},
  425. "esc_input": {"$ref": "qmk.definitions.v1#/mcu_pin"},
  426. "led": {"$ref": "qmk.definitions.v1#/mcu_pin"},
  427. "speaker": {"$ref": "qmk.definitions.v1#/mcu_pin"}
  428. }
  429. }
  430. }
  431. }