aboutsummaryrefslogtreecommitdiff
path: root/data
diff options
context:
space:
mode:
Diffstat (limited to 'data')
-rw-r--r--data/constants/keycodes/keycodes_0.0.7.hjson7
-rw-r--r--data/constants/module_hooks/0.1.0.hjson25
-rw-r--r--data/constants/module_hooks/1.0.0.hjson26
-rw-r--r--data/schemas/community_module.jsonschema17
-rw-r--r--data/schemas/keyboard.jsonschema17
-rw-r--r--data/schemas/keymap.jsonschema6
6 files changed, 93 insertions, 5 deletions
diff --git a/data/constants/keycodes/keycodes_0.0.7.hjson b/data/constants/keycodes/keycodes_0.0.7.hjson
new file mode 100644
index 0000000000..52e1a50443
--- /dev/null
+++ b/data/constants/keycodes/keycodes_0.0.7.hjson
@@ -0,0 +1,7 @@
+{
+ "ranges": {
+ "0x77C0/0x003F": {
+ "define": "QK_COMMUNITY_MODULE"
+ }
+ }
+}
diff --git a/data/constants/module_hooks/0.1.0.hjson b/data/constants/module_hooks/0.1.0.hjson
new file mode 100644
index 0000000000..c77f4c297e
--- /dev/null
+++ b/data/constants/module_hooks/0.1.0.hjson
@@ -0,0 +1,25 @@
+{
+ keyboard_pre_init: {
+ ret_type: void
+ args: void
+ }
+ keyboard_post_init: {
+ ret_type: void
+ args: void
+ }
+ pre_process_record: {
+ ret_type: bool
+ args: uint16_t keycode, keyrecord_t *record
+ call_params: keycode, record
+ }
+ process_record: {
+ ret_type: bool
+ args: uint16_t keycode, keyrecord_t *record
+ call_params: keycode, record
+ }
+ post_process_record: {
+ ret_type: void
+ args: uint16_t keycode, keyrecord_t *record
+ call_params: keycode, record
+ }
+}
diff --git a/data/constants/module_hooks/1.0.0.hjson b/data/constants/module_hooks/1.0.0.hjson
new file mode 100644
index 0000000000..4e7bf30412
--- /dev/null
+++ b/data/constants/module_hooks/1.0.0.hjson
@@ -0,0 +1,26 @@
+{
+ housekeeping_task: {
+ ret_type: void
+ args: void
+ }
+ suspend_power_down: {
+ ret_type: void
+ args: void
+ }
+ suspend_wakeup_init: {
+ ret_type: void
+ args: void
+ }
+ shutdown: {
+ ret_type: bool
+ args: bool jump_to_bootloader
+ call_params: jump_to_bootloader
+ }
+ process_detected_host_os: {
+ ret_type: bool
+ args: os_variant_t os
+ call_params: os
+ guard: defined(OS_DETECTION_ENABLE)
+ header: os_detection.h
+ }
+}
diff --git a/data/schemas/community_module.jsonschema b/data/schemas/community_module.jsonschema
new file mode 100644
index 0000000000..a3474476df
--- /dev/null
+++ b/data/schemas/community_module.jsonschema
@@ -0,0 +1,17 @@
+{
+ "$schema": "https://json-schema.org/draft/2020-12/schema#",
+ "$id": "qmk.community_module.v1",
+ "title": "Community Module Information",
+ "type": "object",
+ "required": ["module_name", "maintainer"]
+ "properties": {
+ "module_name": {"$ref": "qmk.definitions.v1#/text_identifier"},
+ "maintainer": {"$ref": "qmk.definitions.v1#/text_identifier"},
+ "url": {
+ "type": "string",
+ "format": "uri"
+ },
+ "keycodes": {"$ref": "qmk.definitions.v1#/keycode_decl_array"},
+ "features": {"$ref": "qmk.keyboard.v1#/definitions/features_config"},
+ }
+}
diff --git a/data/schemas/keyboard.jsonschema b/data/schemas/keyboard.jsonschema
index 8b6cc7032b..9b63f62d45 100644
--- a/data/schemas/keyboard.jsonschema
+++ b/data/schemas/keyboard.jsonschema
@@ -31,6 +31,11 @@
"pins": {"$ref": "qmk.definitions.v1#/mcu_pin_array"}
}
}
+ "features_config": {
+ "$ref": "qmk.definitions.v1#/boolean_array",
+ "propertyNames": {"$ref": "qmk.definitions.v1#/snake_case"},
+ "not": {"required": ["lto"]}
+ },
},
"type": "object",
"not": {"required": ["vendorId", "productId"]}, // reject via keys...
@@ -328,11 +333,7 @@
"enabled": {"type": "boolean"}
}
},
- "features": {
- "$ref": "qmk.definitions.v1#/boolean_array",
- "propertyNames": {"$ref": "qmk.definitions.v1#/snake_case"},
- "not": {"required": ["lto"]}
- },
+ "features": { "$ref": "#/definitions/features_config" },
"indicators": {
"type": "object",
"properties": {
@@ -467,6 +468,12 @@
"rows": {"$ref": "qmk.definitions.v1#/mcu_pin_array"}
}
},
+ "modules": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
"mouse_key": {
"type": "object",
"properties": {
diff --git a/data/schemas/keymap.jsonschema b/data/schemas/keymap.jsonschema
index e967e45c53..b92a536c2c 100644
--- a/data/schemas/keymap.jsonschema
+++ b/data/schemas/keymap.jsonschema
@@ -71,6 +71,12 @@
"config": {"$ref": "qmk.keyboard.v1"},
"notes": {
"type": "string"
+ },
+ "modules": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
}
}
}