aboutsummaryrefslogtreecommitdiff
path: root/data
diff options
context:
space:
mode:
Diffstat (limited to 'data')
-rw-r--r--data/constants/keycodes/extras/keycodes_belgian_0.0.1.hjson2
-rw-r--r--data/constants/keycodes/extras/keycodes_bepo_0.0.1.hjson2
-rw-r--r--data/constants/keycodes/extras/keycodes_brazilian_abnt2_0.0.1.hjson2
-rw-r--r--data/constants/keycodes/extras/keycodes_canadian_multilingual_0.0.1.hjson2
-rw-r--r--data/constants/keycodes/extras/keycodes_colemak_0.0.1.hjson2
-rw-r--r--data/constants/keycodes/extras/keycodes_croatian_0.0.1.hjson2
-rw-r--r--data/constants/keycodes/extras/keycodes_czech_0.0.1.hjson2
-rw-r--r--data/constants/keycodes/extras/keycodes_danish_0.0.1.hjson2
-rw-r--r--data/constants/keycodes/extras/keycodes_dvorak_0.0.1.hjson2
-rw-r--r--data/constants/keycodes/extras/keycodes_dvorak_fr_0.0.1.hjson2
-rw-r--r--data/constants/keycodes/extras/keycodes_dvorak_programmer_0.0.1.hjson2
-rw-r--r--data/constants/keycodes/extras/keycodes_estonian_0.0.1.hjson2
-rw-r--r--data/constants/keycodes/extras/keycodes_eurkey_0.0.1.hjson2
-rw-r--r--data/constants/keycodes/extras/keycodes_finnish_0.0.1.hjson2
-rw-r--r--data/constants/keycodes/extras/keycodes_french_0.0.1.hjson2
-rw-r--r--data/constants/keycodes/extras/keycodes_french_afnor_0.0.1.hjson2
-rw-r--r--data/constants/keycodes/extras/keycodes_french_mac_iso_0.0.1.hjson2
-rw-r--r--data/constants/keycodes/extras/keycodes_german_0.0.1.hjson2
-rw-r--r--data/constants/keycodes/extras/keycodes_german_mac_iso_0.0.1.hjson2
-rw-r--r--data/constants/keycodes/extras/keycodes_greek_0.0.1.hjson2
-rw-r--r--data/constants/keycodes/extras/keycodes_hebrew_0.0.1.hjson2
-rw-r--r--data/constants/keycodes/extras/keycodes_hungarian_0.0.1.hjson2
-rw-r--r--data/constants/keycodes/extras/keycodes_icelandic_0.0.1.hjson2
-rw-r--r--data/constants/keycodes/extras/keycodes_irish_0.0.1.hjson2
-rw-r--r--data/constants/keycodes/extras/keycodes_italian_0.0.1.hjson2
-rw-r--r--data/constants/keycodes/extras/keycodes_italian_mac_ansi_0.0.1.hjson2
-rw-r--r--data/constants/keycodes/extras/keycodes_italian_mac_iso_0.0.1.hjson2
-rw-r--r--data/constants/keycodes/extras/keycodes_japanese_0.0.1.hjson2
-rw-r--r--data/constants/keycodes/extras/keycodes_korean_0.0.1.hjson2
-rw-r--r--data/constants/keycodes/extras/keycodes_latvian_0.0.1.hjson2
-rw-r--r--data/constants/keycodes/extras/keycodes_lithuanian_azerty_0.0.1.hjson2
-rw-r--r--data/constants/keycodes/extras/keycodes_lithuanian_qwerty_0.0.1.hjson2
-rw-r--r--data/constants/keycodes/extras/keycodes_neo2_0.0.1.hjson2
-rw-r--r--data/constants/keycodes/extras/keycodes_nordic_0.0.1.hjson2
-rw-r--r--data/constants/keycodes/extras/keycodes_norman_0.0.1.hjson2
-rw-r--r--data/constants/keycodes/extras/keycodes_norwegian_0.0.1.hjson2
-rw-r--r--data/constants/keycodes/extras/keycodes_plover_0.0.1.hjson2
-rw-r--r--data/constants/keycodes/extras/keycodes_plover_dvorak_0.0.1.hjson2
-rw-r--r--data/constants/keycodes/extras/keycodes_polish_0.0.1.hjson2
-rw-r--r--data/constants/keycodes/extras/keycodes_portuguese_0.0.1.hjson2
-rw-r--r--data/constants/keycodes/extras/keycodes_portuguese_mac_iso_0.0.1.hjson2
-rw-r--r--data/constants/keycodes/extras/keycodes_romanian_0.0.1.hjson2
-rw-r--r--data/constants/keycodes/extras/keycodes_russian_0.0.1.hjson2
-rw-r--r--data/constants/keycodes/extras/keycodes_serbian_0.0.1.hjson2
-rw-r--r--data/constants/keycodes/extras/keycodes_serbian_latin_0.0.1.hjson2
-rw-r--r--data/constants/keycodes/extras/keycodes_slovak_0.0.1.hjson2
-rw-r--r--data/constants/keycodes/extras/keycodes_slovenian_0.0.1.hjson2
-rw-r--r--data/constants/keycodes/extras/keycodes_spanish_0.0.1.hjson2
-rw-r--r--data/constants/keycodes/extras/keycodes_spanish_dvorak_0.0.1.hjson2
-rw-r--r--data/constants/keycodes/extras/keycodes_spanish_latin_america_0.0.1.hjson2
-rw-r--r--data/constants/keycodes/extras/keycodes_swedish_0.0.1.hjson2
-rw-r--r--data/constants/keycodes/extras/keycodes_swedish_mac_ansi_0.0.1.hjson2
-rw-r--r--data/constants/keycodes/extras/keycodes_swedish_mac_iso_0.0.1.hjson2
-rw-r--r--data/constants/keycodes/extras/keycodes_swedish_pro_mac_ansi_0.0.1.hjson2
-rw-r--r--data/constants/keycodes/extras/keycodes_swedish_pro_mac_iso_0.0.1.hjson2
-rw-r--r--data/constants/keycodes/extras/keycodes_swiss_de_0.0.1.hjson2
-rw-r--r--data/constants/keycodes/extras/keycodes_swiss_fr_0.0.1.hjson2
-rw-r--r--data/constants/keycodes/extras/keycodes_turkish_f_0.0.1.hjson2
-rw-r--r--data/constants/keycodes/extras/keycodes_turkish_q_0.0.1.hjson2
-rw-r--r--data/constants/keycodes/extras/keycodes_uk_0.0.1.hjson2
-rw-r--r--data/constants/keycodes/extras/keycodes_ukrainian_0.0.1.hjson2
-rw-r--r--data/constants/keycodes/extras/keycodes_us_extended_0.0.1.hjson2
-rw-r--r--data/constants/keycodes/extras/keycodes_us_international_0.0.1.hjson2
-rw-r--r--data/constants/keycodes/extras/keycodes_us_international_linux_0.0.1.hjson2
-rw-r--r--data/constants/keycodes/extras/keycodes_workman_0.0.1.hjson2
-rw-r--r--data/constants/keycodes/extras/keycodes_workman_zxcvm_0.0.1.hjson2
-rw-r--r--data/constants/keycodes/keycodes_0.0.1.hjson2
-rw-r--r--data/constants/keycodes/keycodes_0.0.1_joystick.hjson2
-rw-r--r--data/constants/keycodes/keycodes_0.0.1_magic.hjson2
-rw-r--r--data/constants/keycodes/keycodes_0.0.1_programmable_button.hjson2
-rw-r--r--data/constants/keycodes/keycodes_0.0.1_sequencer.hjson2
-rw-r--r--data/constants/keycodes/keycodes_0.0.2_basic.hjson2
-rw-r--r--data/constants/keycodes/keycodes_0.0.2_magic.hjson2
-rw-r--r--data/constants/keycodes/keycodes_0.0.2_sequencer.hjson2
-rw-r--r--data/constants/module_hooks/1.1.0.hjson55
-rw-r--r--data/constants/module_hooks/1.1.1.hjson3
-rw-r--r--data/mappings/info_config.hjson6
-rw-r--r--data/mappings/info_defaults.hjson74
-rw-r--r--data/mappings/info_rules.hjson4
-rw-r--r--data/mappings/keyboard_aliases.hjson23
-rw-r--r--data/schemas/api_keyboard.jsonschema6
-rw-r--r--data/schemas/community_module.jsonschema11
-rw-r--r--data/schemas/keyboard.jsonschema323
-rw-r--r--data/schemas/keycodes.jsonschema4
-rw-r--r--data/schemas/keymap.jsonschema16
-rw-r--r--data/schemas/user_repo_v0.jsonschema4
-rw-r--r--data/schemas/user_repo_v1.jsonschema6
-rw-r--r--data/schemas/user_repo_v1_1.jsonschema8
-rw-r--r--data/templates/keyboard/keyboard.json2
89 files changed, 431 insertions, 262 deletions
diff --git a/data/constants/keycodes/extras/keycodes_belgian_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_belgian_0.0.1.hjson
index d2b8c1d7d9..11b68d16a0 100644
--- a/data/constants/keycodes/extras/keycodes_belgian_0.0.1.hjson
+++ b/data/constants/keycodes/extras/keycodes_belgian_0.0.1.hjson
@@ -372,4 +372,4 @@
"label": "~",
}
}
-} \ No newline at end of file
+}
diff --git a/data/constants/keycodes/extras/keycodes_bepo_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_bepo_0.0.1.hjson
index 713f3f2829..7a9dea9d13 100644
--- a/data/constants/keycodes/extras/keycodes_bepo_0.0.1.hjson
+++ b/data/constants/keycodes/extras/keycodes_bepo_0.0.1.hjson
@@ -629,4 +629,4 @@
"label": "(narrow non-breaking space)",
}
}
-} \ No newline at end of file
+}
diff --git a/data/constants/keycodes/extras/keycodes_brazilian_abnt2_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_brazilian_abnt2_0.0.1.hjson
index 17006a64df..e28970ed33 100644
--- a/data/constants/keycodes/extras/keycodes_brazilian_abnt2_0.0.1.hjson
+++ b/data/constants/keycodes/extras/keycodes_brazilian_abnt2_0.0.1.hjson
@@ -376,4 +376,4 @@
"label": "₢",
}
}
-} \ No newline at end of file
+}
diff --git a/data/constants/keycodes/extras/keycodes_canadian_multilingual_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_canadian_multilingual_0.0.1.hjson
index bfe5d5b54c..a663088e22 100644
--- a/data/constants/keycodes/extras/keycodes_canadian_multilingual_0.0.1.hjson
+++ b/data/constants/keycodes/extras/keycodes_canadian_multilingual_0.0.1.hjson
@@ -638,4 +638,4 @@
"label": "÷",
}
}
-} \ No newline at end of file
+}
diff --git a/data/constants/keycodes/extras/keycodes_colemak_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_colemak_0.0.1.hjson
index 1dc091584b..0bf0f3b221 100644
--- a/data/constants/keycodes/extras/keycodes_colemak_0.0.1.hjson
+++ b/data/constants/keycodes/extras/keycodes_colemak_0.0.1.hjson
@@ -299,4 +299,4 @@
"label": "?",
}
}
-} \ No newline at end of file
+}
diff --git a/data/constants/keycodes/extras/keycodes_croatian_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_croatian_0.0.1.hjson
index 82632aa637..50464921fa 100644
--- a/data/constants/keycodes/extras/keycodes_croatian_0.0.1.hjson
+++ b/data/constants/keycodes/extras/keycodes_croatian_0.0.1.hjson
@@ -400,4 +400,4 @@
"label": "§",
}
}
-} \ No newline at end of file
+}
diff --git a/data/constants/keycodes/extras/keycodes_czech_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_czech_0.0.1.hjson
index 9cfb88c489..8b1572bfcb 100644
--- a/data/constants/keycodes/extras/keycodes_czech_0.0.1.hjson
+++ b/data/constants/keycodes/extras/keycodes_czech_0.0.1.hjson
@@ -432,4 +432,4 @@
"label": "*",
}
}
-} \ No newline at end of file
+}
diff --git a/data/constants/keycodes/extras/keycodes_danish_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_danish_0.0.1.hjson
index fffcd9f9ad..0e8f7a75c6 100644
--- a/data/constants/keycodes/extras/keycodes_danish_0.0.1.hjson
+++ b/data/constants/keycodes/extras/keycodes_danish_0.0.1.hjson
@@ -356,4 +356,4 @@
"label": "µ",
}
}
-} \ No newline at end of file
+}
diff --git a/data/constants/keycodes/extras/keycodes_dvorak_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_dvorak_0.0.1.hjson
index 534f99c8e6..485d86aa21 100644
--- a/data/constants/keycodes/extras/keycodes_dvorak_0.0.1.hjson
+++ b/data/constants/keycodes/extras/keycodes_dvorak_0.0.1.hjson
@@ -299,4 +299,4 @@
"label": ":",
}
}
-} \ No newline at end of file
+}
diff --git a/data/constants/keycodes/extras/keycodes_dvorak_fr_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_dvorak_fr_0.0.1.hjson
index 70c0b3c0aa..69ce14486e 100644
--- a/data/constants/keycodes/extras/keycodes_dvorak_fr_0.0.1.hjson
+++ b/data/constants/keycodes/extras/keycodes_dvorak_fr_0.0.1.hjson
@@ -314,4 +314,4 @@
"label": "@",
}
}
-} \ No newline at end of file
+}
diff --git a/data/constants/keycodes/extras/keycodes_dvorak_programmer_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_dvorak_programmer_0.0.1.hjson
index 8a70dae7ef..6fa9868e4c 100644
--- a/data/constants/keycodes/extras/keycodes_dvorak_programmer_0.0.1.hjson
+++ b/data/constants/keycodes/extras/keycodes_dvorak_programmer_0.0.1.hjson
@@ -299,4 +299,4 @@
"label": "\"",
}
}
-} \ No newline at end of file
+}
diff --git a/data/constants/keycodes/extras/keycodes_estonian_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_estonian_0.0.1.hjson
index bbf7512581..276d3fe664 100644
--- a/data/constants/keycodes/extras/keycodes_estonian_0.0.1.hjson
+++ b/data/constants/keycodes/extras/keycodes_estonian_0.0.1.hjson
@@ -364,4 +364,4 @@
"label": "ž",
}
}
-} \ No newline at end of file
+}
diff --git a/data/constants/keycodes/extras/keycodes_eurkey_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_eurkey_0.0.1.hjson
index 9ff217cff2..9b4fa33053 100644
--- a/data/constants/keycodes/extras/keycodes_eurkey_0.0.1.hjson
+++ b/data/constants/keycodes/extras/keycodes_eurkey_0.0.1.hjson
@@ -593,4 +593,4 @@
"label": "…",
}
}
-} \ No newline at end of file
+}
diff --git a/data/constants/keycodes/extras/keycodes_finnish_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_finnish_0.0.1.hjson
index b284192962..a4d3c99a6f 100644
--- a/data/constants/keycodes/extras/keycodes_finnish_0.0.1.hjson
+++ b/data/constants/keycodes/extras/keycodes_finnish_0.0.1.hjson
@@ -356,4 +356,4 @@
"label": "µ",
}
}
-} \ No newline at end of file
+}
diff --git a/data/constants/keycodes/extras/keycodes_french_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_french_0.0.1.hjson
index 8ba7b35d2e..351dfe89d8 100644
--- a/data/constants/keycodes/extras/keycodes_french_0.0.1.hjson
+++ b/data/constants/keycodes/extras/keycodes_french_0.0.1.hjson
@@ -364,4 +364,4 @@
"label": "¤",
}
}
-} \ No newline at end of file
+}
diff --git a/data/constants/keycodes/extras/keycodes_french_afnor_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_french_afnor_0.0.1.hjson
index 90981d085d..92646c4de8 100644
--- a/data/constants/keycodes/extras/keycodes_french_afnor_0.0.1.hjson
+++ b/data/constants/keycodes/extras/keycodes_french_afnor_0.0.1.hjson
@@ -620,4 +620,4 @@
"label": "≠",
}
}
-} \ No newline at end of file
+}
diff --git a/data/constants/keycodes/extras/keycodes_french_mac_iso_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_french_mac_iso_0.0.1.hjson
index b698018d5b..bb924e9852 100644
--- a/data/constants/keycodes/extras/keycodes_french_mac_iso_0.0.1.hjson
+++ b/data/constants/keycodes/extras/keycodes_french_mac_iso_0.0.1.hjson
@@ -673,4 +673,4 @@
"label": "±",
}
}
-} \ No newline at end of file
+}
diff --git a/data/constants/keycodes/extras/keycodes_german_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_german_0.0.1.hjson
index a1cfd44956..015438abb2 100644
--- a/data/constants/keycodes/extras/keycodes_german_0.0.1.hjson
+++ b/data/constants/keycodes/extras/keycodes_german_0.0.1.hjson
@@ -356,4 +356,4 @@
"label": "µ",
}
}
-} \ No newline at end of file
+}
diff --git a/data/constants/keycodes/extras/keycodes_german_mac_iso_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_german_mac_iso_0.0.1.hjson
index 366ed5b9d1..fa3b8d67b5 100644
--- a/data/constants/keycodes/extras/keycodes_german_mac_iso_0.0.1.hjson
+++ b/data/constants/keycodes/extras/keycodes_german_mac_iso_0.0.1.hjson
@@ -653,4 +653,4 @@
"label": "—",
}
}
-} \ No newline at end of file
+}
diff --git a/data/constants/keycodes/extras/keycodes_greek_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_greek_0.0.1.hjson
index 9c7f8796bf..b61a317b19 100644
--- a/data/constants/keycodes/extras/keycodes_greek_0.0.1.hjson
+++ b/data/constants/keycodes/extras/keycodes_greek_0.0.1.hjson
@@ -388,4 +388,4 @@
"label": "©",
}
}
-} \ No newline at end of file
+}
diff --git a/data/constants/keycodes/extras/keycodes_hebrew_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_hebrew_0.0.1.hjson
index b519229f35..aaf0563623 100644
--- a/data/constants/keycodes/extras/keycodes_hebrew_0.0.1.hjson
+++ b/data/constants/keycodes/extras/keycodes_hebrew_0.0.1.hjson
@@ -344,4 +344,4 @@
"label": "÷",
}
}
-} \ No newline at end of file
+}
diff --git a/data/constants/keycodes/extras/keycodes_hungarian_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_hungarian_0.0.1.hjson
index d4fc908dc0..e7ae0d340c 100644
--- a/data/constants/keycodes/extras/keycodes_hungarian_0.0.1.hjson
+++ b/data/constants/keycodes/extras/keycodes_hungarian_0.0.1.hjson
@@ -432,4 +432,4 @@
"label": "*",
}
}
-} \ No newline at end of file
+}
diff --git a/data/constants/keycodes/extras/keycodes_icelandic_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_icelandic_0.0.1.hjson
index f4d6025a77..59478a1018 100644
--- a/data/constants/keycodes/extras/keycodes_icelandic_0.0.1.hjson
+++ b/data/constants/keycodes/extras/keycodes_icelandic_0.0.1.hjson
@@ -352,4 +352,4 @@
"label": "µ",
}
}
-} \ No newline at end of file
+}
diff --git a/data/constants/keycodes/extras/keycodes_irish_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_irish_0.0.1.hjson
index 94e553469e..99487a5b90 100644
--- a/data/constants/keycodes/extras/keycodes_irish_0.0.1.hjson
+++ b/data/constants/keycodes/extras/keycodes_irish_0.0.1.hjson
@@ -352,4 +352,4 @@
"label": "´ (dead)",
}
}
-} \ No newline at end of file
+}
diff --git a/data/constants/keycodes/extras/keycodes_italian_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_italian_0.0.1.hjson
index 951c564f62..8b859d6de8 100644
--- a/data/constants/keycodes/extras/keycodes_italian_0.0.1.hjson
+++ b/data/constants/keycodes/extras/keycodes_italian_0.0.1.hjson
@@ -361,4 +361,4 @@
"label": "}",
}
}
-} \ No newline at end of file
+}
diff --git a/data/constants/keycodes/extras/keycodes_italian_mac_ansi_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_italian_mac_ansi_0.0.1.hjson
index 328755ca67..551f094974 100644
--- a/data/constants/keycodes/extras/keycodes_italian_mac_ansi_0.0.1.hjson
+++ b/data/constants/keycodes/extras/keycodes_italian_mac_ansi_0.0.1.hjson
@@ -681,4 +681,4 @@
"label": "—",
}
}
-} \ No newline at end of file
+}
diff --git a/data/constants/keycodes/extras/keycodes_italian_mac_iso_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_italian_mac_iso_0.0.1.hjson
index 4beccd804a..aed90f203d 100644
--- a/data/constants/keycodes/extras/keycodes_italian_mac_iso_0.0.1.hjson
+++ b/data/constants/keycodes/extras/keycodes_italian_mac_iso_0.0.1.hjson
@@ -685,4 +685,4 @@
"label": "—",
}
}
-} \ No newline at end of file
+}
diff --git a/data/constants/keycodes/extras/keycodes_japanese_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_japanese_0.0.1.hjson
index d95712abd9..779eef8a84 100644
--- a/data/constants/keycodes/extras/keycodes_japanese_0.0.1.hjson
+++ b/data/constants/keycodes/extras/keycodes_japanese_0.0.1.hjson
@@ -327,4 +327,4 @@
"label": "_",
}
}
-} \ No newline at end of file
+}
diff --git a/data/constants/keycodes/extras/keycodes_korean_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_korean_0.0.1.hjson
index 5ee19c9e4e..8e04d8ed2a 100644
--- a/data/constants/keycodes/extras/keycodes_korean_0.0.1.hjson
+++ b/data/constants/keycodes/extras/keycodes_korean_0.0.1.hjson
@@ -307,4 +307,4 @@
"label": "?",
}
}
-} \ No newline at end of file
+}
diff --git a/data/constants/keycodes/extras/keycodes_latvian_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_latvian_0.0.1.hjson
index ab80f0fdd9..510a2c83a7 100644
--- a/data/constants/keycodes/extras/keycodes_latvian_0.0.1.hjson
+++ b/data/constants/keycodes/extras/keycodes_latvian_0.0.1.hjson
@@ -437,4 +437,4 @@
"label": "¨ (dead)",
}
}
-} \ No newline at end of file
+}
diff --git a/data/constants/keycodes/extras/keycodes_lithuanian_azerty_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_lithuanian_azerty_0.0.1.hjson
index dfb527878e..f6140d7f93 100644
--- a/data/constants/keycodes/extras/keycodes_lithuanian_azerty_0.0.1.hjson
+++ b/data/constants/keycodes/extras/keycodes_lithuanian_azerty_0.0.1.hjson
@@ -372,4 +372,4 @@
"label": "\\",
}
}
-} \ No newline at end of file
+}
diff --git a/data/constants/keycodes/extras/keycodes_lithuanian_qwerty_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_lithuanian_qwerty_0.0.1.hjson
index a4ea30d592..2ab6f83c94 100644
--- a/data/constants/keycodes/extras/keycodes_lithuanian_qwerty_0.0.1.hjson
+++ b/data/constants/keycodes/extras/keycodes_lithuanian_qwerty_0.0.1.hjson
@@ -365,4 +365,4 @@
"label": "+",
}
}
-} \ No newline at end of file
+}
diff --git a/data/constants/keycodes/extras/keycodes_neo2_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_neo2_0.0.1.hjson
index 980bddbf7a..88ede311a6 100644
--- a/data/constants/keycodes/extras/keycodes_neo2_0.0.1.hjson
+++ b/data/constants/keycodes/extras/keycodes_neo2_0.0.1.hjson
@@ -214,4 +214,4 @@
"label": "(layer 4)",
}
}
-} \ No newline at end of file
+}
diff --git a/data/constants/keycodes/extras/keycodes_nordic_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_nordic_0.0.1.hjson
index fb3d1bc84b..8536a004de 100644
--- a/data/constants/keycodes/extras/keycodes_nordic_0.0.1.hjson
+++ b/data/constants/keycodes/extras/keycodes_nordic_0.0.1.hjson
@@ -113,4 +113,4 @@
"key": "NO_MU"
}
}
-} \ No newline at end of file
+}
diff --git a/data/constants/keycodes/extras/keycodes_norman_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_norman_0.0.1.hjson
index 98ea7e6aab..45cd26ae1c 100644
--- a/data/constants/keycodes/extras/keycodes_norman_0.0.1.hjson
+++ b/data/constants/keycodes/extras/keycodes_norman_0.0.1.hjson
@@ -299,4 +299,4 @@
"label": "?",
}
}
-} \ No newline at end of file
+}
diff --git a/data/constants/keycodes/extras/keycodes_norwegian_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_norwegian_0.0.1.hjson
index 4e8cbb5d0e..0cc79c5631 100644
--- a/data/constants/keycodes/extras/keycodes_norwegian_0.0.1.hjson
+++ b/data/constants/keycodes/extras/keycodes_norwegian_0.0.1.hjson
@@ -352,4 +352,4 @@
"label": "µ",
}
}
-} \ No newline at end of file
+}
diff --git a/data/constants/keycodes/extras/keycodes_plover_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_plover_0.0.1.hjson
index fb00ef0c62..78cfe9dd41 100644
--- a/data/constants/keycodes/extras/keycodes_plover_0.0.1.hjson
+++ b/data/constants/keycodes/extras/keycodes_plover_0.0.1.hjson
@@ -83,4 +83,4 @@
"key": "PV_U"
}
}
-} \ No newline at end of file
+}
diff --git a/data/constants/keycodes/extras/keycodes_plover_dvorak_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_plover_dvorak_0.0.1.hjson
index 9656dd9821..8e1fe29f8b 100644
--- a/data/constants/keycodes/extras/keycodes_plover_dvorak_0.0.1.hjson
+++ b/data/constants/keycodes/extras/keycodes_plover_dvorak_0.0.1.hjson
@@ -70,4 +70,4 @@
"key": "PD_U"
}
}
-} \ No newline at end of file
+}
diff --git a/data/constants/keycodes/extras/keycodes_polish_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_polish_0.0.1.hjson
index 609011b1f7..f09f2c9b64 100644
--- a/data/constants/keycodes/extras/keycodes_polish_0.0.1.hjson
+++ b/data/constants/keycodes/extras/keycodes_polish_0.0.1.hjson
@@ -352,4 +352,4 @@
"label": "Ń",
}
}
-} \ No newline at end of file
+}
diff --git a/data/constants/keycodes/extras/keycodes_portuguese_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_portuguese_0.0.1.hjson
index c8e43065d2..ec773ddbb5 100644
--- a/data/constants/keycodes/extras/keycodes_portuguese_0.0.1.hjson
+++ b/data/constants/keycodes/extras/keycodes_portuguese_0.0.1.hjson
@@ -352,4 +352,4 @@
"label": "€",
}
}
-} \ No newline at end of file
+}
diff --git a/data/constants/keycodes/extras/keycodes_portuguese_mac_iso_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_portuguese_mac_iso_0.0.1.hjson
index b1c9aaad98..503a3e92a6 100644
--- a/data/constants/keycodes/extras/keycodes_portuguese_mac_iso_0.0.1.hjson
+++ b/data/constants/keycodes/extras/keycodes_portuguese_mac_iso_0.0.1.hjson
@@ -617,4 +617,4 @@
"label": "–",
}
}
-} \ No newline at end of file
+}
diff --git a/data/constants/keycodes/extras/keycodes_romanian_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_romanian_0.0.1.hjson
index 42b1e89d3b..f388523146 100644
--- a/data/constants/keycodes/extras/keycodes_romanian_0.0.1.hjson
+++ b/data/constants/keycodes/extras/keycodes_romanian_0.0.1.hjson
@@ -441,4 +441,4 @@
"label": "»",
}
}
-} \ No newline at end of file
+}
diff --git a/data/constants/keycodes/extras/keycodes_russian_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_russian_0.0.1.hjson
index d83fc0f61f..41904be634 100644
--- a/data/constants/keycodes/extras/keycodes_russian_0.0.1.hjson
+++ b/data/constants/keycodes/extras/keycodes_russian_0.0.1.hjson
@@ -288,4 +288,4 @@
"label": "₽",
}
}
-} \ No newline at end of file
+}
diff --git a/data/constants/keycodes/extras/keycodes_serbian_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_serbian_0.0.1.hjson
index 98957930a0..3ddd7f15df 100644
--- a/data/constants/keycodes/extras/keycodes_serbian_0.0.1.hjson
+++ b/data/constants/keycodes/extras/keycodes_serbian_0.0.1.hjson
@@ -304,4 +304,4 @@
"label": "€",
}
}
-} \ No newline at end of file
+}
diff --git a/data/constants/keycodes/extras/keycodes_serbian_latin_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_serbian_latin_0.0.1.hjson
index ca4746b646..eec0877aa7 100644
--- a/data/constants/keycodes/extras/keycodes_serbian_latin_0.0.1.hjson
+++ b/data/constants/keycodes/extras/keycodes_serbian_latin_0.0.1.hjson
@@ -404,4 +404,4 @@
"label": "§",
}
}
-} \ No newline at end of file
+}
diff --git a/data/constants/keycodes/extras/keycodes_slovak_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_slovak_0.0.1.hjson
index 14eb4b783a..dbf39b5f49 100644
--- a/data/constants/keycodes/extras/keycodes_slovak_0.0.1.hjson
+++ b/data/constants/keycodes/extras/keycodes_slovak_0.0.1.hjson
@@ -440,4 +440,4 @@
"label": "}",
}
}
-} \ No newline at end of file
+}
diff --git a/data/constants/keycodes/extras/keycodes_slovenian_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_slovenian_0.0.1.hjson
index fd1a4eb4fc..d264d3d392 100644
--- a/data/constants/keycodes/extras/keycodes_slovenian_0.0.1.hjson
+++ b/data/constants/keycodes/extras/keycodes_slovenian_0.0.1.hjson
@@ -400,4 +400,4 @@
"label": "§",
}
}
-} \ No newline at end of file
+}
diff --git a/data/constants/keycodes/extras/keycodes_spanish_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_spanish_0.0.1.hjson
index db3b068e97..9656e35674 100644
--- a/data/constants/keycodes/extras/keycodes_spanish_0.0.1.hjson
+++ b/data/constants/keycodes/extras/keycodes_spanish_0.0.1.hjson
@@ -356,4 +356,4 @@
"label": "}",
}
}
-} \ No newline at end of file
+}
diff --git a/data/constants/keycodes/extras/keycodes_spanish_dvorak_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_spanish_dvorak_0.0.1.hjson
index 39119a6a91..fa0a93ff85 100644
--- a/data/constants/keycodes/extras/keycodes_spanish_dvorak_0.0.1.hjson
+++ b/data/constants/keycodes/extras/keycodes_spanish_dvorak_0.0.1.hjson
@@ -356,4 +356,4 @@
"label": "}",
}
}
-} \ No newline at end of file
+}
diff --git a/data/constants/keycodes/extras/keycodes_spanish_latin_america_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_spanish_latin_america_0.0.1.hjson
index fb1de29e6e..51ad69a55a 100644
--- a/data/constants/keycodes/extras/keycodes_spanish_latin_america_0.0.1.hjson
+++ b/data/constants/keycodes/extras/keycodes_spanish_latin_america_0.0.1.hjson
@@ -340,4 +340,4 @@
"label": "`",
}
}
-} \ No newline at end of file
+}
diff --git a/data/constants/keycodes/extras/keycodes_swedish_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_swedish_0.0.1.hjson
index 6db71ea241..f538a81bd9 100644
--- a/data/constants/keycodes/extras/keycodes_swedish_0.0.1.hjson
+++ b/data/constants/keycodes/extras/keycodes_swedish_0.0.1.hjson
@@ -356,4 +356,4 @@
"label": "µ",
}
}
-} \ No newline at end of file
+}
diff --git a/data/constants/keycodes/extras/keycodes_swedish_mac_ansi_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_swedish_mac_ansi_0.0.1.hjson
index ab7c3ad8d1..59f0173e89 100644
--- a/data/constants/keycodes/extras/keycodes_swedish_mac_ansi_0.0.1.hjson
+++ b/data/constants/keycodes/extras/keycodes_swedish_mac_ansi_0.0.1.hjson
@@ -639,4 +639,4 @@
"label": "—",
}
}
-} \ No newline at end of file
+}
diff --git a/data/constants/keycodes/extras/keycodes_swedish_mac_iso_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_swedish_mac_iso_0.0.1.hjson
index cafd815776..cf2c0d9fdf 100644
--- a/data/constants/keycodes/extras/keycodes_swedish_mac_iso_0.0.1.hjson
+++ b/data/constants/keycodes/extras/keycodes_swedish_mac_iso_0.0.1.hjson
@@ -637,4 +637,4 @@
"label": "—",
}
}
-} \ No newline at end of file
+}
diff --git a/data/constants/keycodes/extras/keycodes_swedish_pro_mac_ansi_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_swedish_pro_mac_ansi_0.0.1.hjson
index c82c79c711..911cbc2be8 100644
--- a/data/constants/keycodes/extras/keycodes_swedish_pro_mac_ansi_0.0.1.hjson
+++ b/data/constants/keycodes/extras/keycodes_swedish_pro_mac_ansi_0.0.1.hjson
@@ -639,4 +639,4 @@
"label": "—",
}
}
-} \ No newline at end of file
+}
diff --git a/data/constants/keycodes/extras/keycodes_swedish_pro_mac_iso_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_swedish_pro_mac_iso_0.0.1.hjson
index 4555739ccd..d8e532f792 100644
--- a/data/constants/keycodes/extras/keycodes_swedish_pro_mac_iso_0.0.1.hjson
+++ b/data/constants/keycodes/extras/keycodes_swedish_pro_mac_iso_0.0.1.hjson
@@ -637,4 +637,4 @@
"label": "—",
}
}
-} \ No newline at end of file
+}
diff --git a/data/constants/keycodes/extras/keycodes_swiss_de_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_swiss_de_0.0.1.hjson
index ae260a5e56..e4a5f91158 100644
--- a/data/constants/keycodes/extras/keycodes_swiss_de_0.0.1.hjson
+++ b/data/constants/keycodes/extras/keycodes_swiss_de_0.0.1.hjson
@@ -376,4 +376,4 @@
"label": "\\",
}
}
-} \ No newline at end of file
+}
diff --git a/data/constants/keycodes/extras/keycodes_swiss_fr_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_swiss_fr_0.0.1.hjson
index 83fb86e49c..e518658314 100644
--- a/data/constants/keycodes/extras/keycodes_swiss_fr_0.0.1.hjson
+++ b/data/constants/keycodes/extras/keycodes_swiss_fr_0.0.1.hjson
@@ -376,4 +376,4 @@
"label": "\\",
}
}
-} \ No newline at end of file
+}
diff --git a/data/constants/keycodes/extras/keycodes_turkish_f_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_turkish_f_0.0.1.hjson
index 2689f10dbe..0f527e04d6 100644
--- a/data/constants/keycodes/extras/keycodes_turkish_f_0.0.1.hjson
+++ b/data/constants/keycodes/extras/keycodes_turkish_f_0.0.1.hjson
@@ -477,4 +477,4 @@
"label": "º",
}
}
-} \ No newline at end of file
+}
diff --git a/data/constants/keycodes/extras/keycodes_turkish_q_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_turkish_q_0.0.1.hjson
index e00cee9ce3..e736bb52a2 100644
--- a/data/constants/keycodes/extras/keycodes_turkish_q_0.0.1.hjson
+++ b/data/constants/keycodes/extras/keycodes_turkish_q_0.0.1.hjson
@@ -372,4 +372,4 @@
"label": "` (dead)",
}
}
-} \ No newline at end of file
+}
diff --git a/data/constants/keycodes/extras/keycodes_uk_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_uk_0.0.1.hjson
index 006bf5c59e..aa97e11fa9 100644
--- a/data/constants/keycodes/extras/keycodes_uk_0.0.1.hjson
+++ b/data/constants/keycodes/extras/keycodes_uk_0.0.1.hjson
@@ -350,4 +350,4 @@
"label": "Á"
}
}
-} \ No newline at end of file
+}
diff --git a/data/constants/keycodes/extras/keycodes_ukrainian_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_ukrainian_0.0.1.hjson
index 2e8629f58b..3596dc14e0 100644
--- a/data/constants/keycodes/extras/keycodes_ukrainian_0.0.1.hjson
+++ b/data/constants/keycodes/extras/keycodes_ukrainian_0.0.1.hjson
@@ -292,4 +292,4 @@
"label": "ґ",
}
}
-} \ No newline at end of file
+}
diff --git a/data/constants/keycodes/extras/keycodes_us_extended_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_us_extended_0.0.1.hjson
index ecac6ca161..15b21dd526 100644
--- a/data/constants/keycodes/extras/keycodes_us_extended_0.0.1.hjson
+++ b/data/constants/keycodes/extras/keycodes_us_extended_0.0.1.hjson
@@ -585,4 +585,4 @@
"label": "̉ (dead)",
}
}
-} \ No newline at end of file
+}
diff --git a/data/constants/keycodes/extras/keycodes_us_international_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_us_international_0.0.1.hjson
index 36a574a4ad..34328be8b8 100644
--- a/data/constants/keycodes/extras/keycodes_us_international_0.0.1.hjson
+++ b/data/constants/keycodes/extras/keycodes_us_international_0.0.1.hjson
@@ -505,4 +505,4 @@
"label": "¢",
}
}
-} \ No newline at end of file
+}
diff --git a/data/constants/keycodes/extras/keycodes_us_international_linux_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_us_international_linux_0.0.1.hjson
index d6bdf2e02d..fcf848dd87 100644
--- a/data/constants/keycodes/extras/keycodes_us_international_linux_0.0.1.hjson
+++ b/data/constants/keycodes/extras/keycodes_us_international_linux_0.0.1.hjson
@@ -573,4 +573,4 @@
"label": "̉ (dead)",
}
}
-} \ No newline at end of file
+}
diff --git a/data/constants/keycodes/extras/keycodes_workman_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_workman_0.0.1.hjson
index 27471a15e4..14220e560e 100644
--- a/data/constants/keycodes/extras/keycodes_workman_0.0.1.hjson
+++ b/data/constants/keycodes/extras/keycodes_workman_0.0.1.hjson
@@ -299,4 +299,4 @@
"label": "?",
}
}
-} \ No newline at end of file
+}
diff --git a/data/constants/keycodes/extras/keycodes_workman_zxcvm_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_workman_zxcvm_0.0.1.hjson
index 86f6a5bffb..f05ec1a3ea 100644
--- a/data/constants/keycodes/extras/keycodes_workman_zxcvm_0.0.1.hjson
+++ b/data/constants/keycodes/extras/keycodes_workman_zxcvm_0.0.1.hjson
@@ -299,4 +299,4 @@
"label": "?",
}
}
-} \ No newline at end of file
+}
diff --git a/data/constants/keycodes/keycodes_0.0.1.hjson b/data/constants/keycodes/keycodes_0.0.1.hjson
index 7ba1ecf201..c40baf13dc 100644
--- a/data/constants/keycodes/keycodes_0.0.1.hjson
+++ b/data/constants/keycodes/keycodes_0.0.1.hjson
@@ -93,4 +93,4 @@
"key": "SAFE_RANGE"
}
}
-} \ No newline at end of file
+}
diff --git a/data/constants/keycodes/keycodes_0.0.1_joystick.hjson b/data/constants/keycodes/keycodes_0.0.1_joystick.hjson
index 0bda7c29f3..b851d72eef 100644
--- a/data/constants/keycodes/keycodes_0.0.1_joystick.hjson
+++ b/data/constants/keycodes/keycodes_0.0.1_joystick.hjson
@@ -225,4 +225,4 @@
]
}
}
-} \ No newline at end of file
+}
diff --git a/data/constants/keycodes/keycodes_0.0.1_magic.hjson b/data/constants/keycodes/keycodes_0.0.1_magic.hjson
index 7ee1f2bce9..0e3e8dc55f 100644
--- a/data/constants/keycodes/keycodes_0.0.1_magic.hjson
+++ b/data/constants/keycodes/keycodes_0.0.1_magic.hjson
@@ -246,4 +246,4 @@
]
}
}
-} \ No newline at end of file
+}
diff --git a/data/constants/keycodes/keycodes_0.0.1_programmable_button.hjson b/data/constants/keycodes/keycodes_0.0.1_programmable_button.hjson
index 645bcd6a39..7d031728a6 100644
--- a/data/constants/keycodes/keycodes_0.0.1_programmable_button.hjson
+++ b/data/constants/keycodes/keycodes_0.0.1_programmable_button.hjson
@@ -225,4 +225,4 @@
]
}
}
-} \ No newline at end of file
+}
diff --git a/data/constants/keycodes/keycodes_0.0.1_sequencer.hjson b/data/constants/keycodes/keycodes_0.0.1_sequencer.hjson
index 039d09b2fa..85844ae99c 100644
--- a/data/constants/keycodes/keycodes_0.0.1_sequencer.hjson
+++ b/data/constants/keycodes/keycodes_0.0.1_sequencer.hjson
@@ -37,4 +37,4 @@
"key": "SQ_SCLR"
}
}
-} \ No newline at end of file
+}
diff --git a/data/constants/keycodes/keycodes_0.0.2_basic.hjson b/data/constants/keycodes/keycodes_0.0.2_basic.hjson
index 2b5df85d99..d9cefe7e93 100644
--- a/data/constants/keycodes/keycodes_0.0.2_basic.hjson
+++ b/data/constants/keycodes/keycodes_0.0.2_basic.hjson
@@ -17,4 +17,4 @@
]
}
}
-} \ No newline at end of file
+}
diff --git a/data/constants/keycodes/keycodes_0.0.2_magic.hjson b/data/constants/keycodes/keycodes_0.0.2_magic.hjson
index 81758975e3..2fc8ba038d 100644
--- a/data/constants/keycodes/keycodes_0.0.2_magic.hjson
+++ b/data/constants/keycodes/keycodes_0.0.2_magic.hjson
@@ -248,4 +248,4 @@
]
}
}
-} \ No newline at end of file
+}
diff --git a/data/constants/keycodes/keycodes_0.0.2_sequencer.hjson b/data/constants/keycodes/keycodes_0.0.2_sequencer.hjson
index eedaed166c..445a2c9328 100644
--- a/data/constants/keycodes/keycodes_0.0.2_sequencer.hjson
+++ b/data/constants/keycodes/keycodes_0.0.2_sequencer.hjson
@@ -66,4 +66,4 @@
]
}
}
-} \ No newline at end of file
+}
diff --git a/data/constants/module_hooks/1.1.0.hjson b/data/constants/module_hooks/1.1.0.hjson
new file mode 100644
index 0000000000..b50dad6a66
--- /dev/null
+++ b/data/constants/module_hooks/1.1.0.hjson
@@ -0,0 +1,55 @@
+{
+ pointing_device_init: {
+ ret_type: void
+ args: void
+ guard: defined(POINTING_DEVICE_ENABLE)
+ }
+ pointing_device_task: {
+ ret_type: report_mouse_t
+ args: report_mouse_t mouse_report
+ call_params: mouse_report
+ guard: defined(POINTING_DEVICE_ENABLE)
+ header: report.h
+ }
+ rgb_matrix_indicators: {
+ ret_type: bool
+ args: void
+ guard: defined(RGB_MATRIX_ENABLE)
+ header: rgb_matrix.h
+ }
+ rgb_matrix_indicators_advanced: {
+ ret_type: bool
+ args: uint8_t led_min, uint8_t led_max
+ call_params: led_min, led_max
+ guard: defined(RGB_MATRIX_ENABLE)
+ header: rgb_matrix.h
+ }
+ led_matrix_indicators: {
+ ret_type: bool
+ args: void
+ guard: defined(LED_MATRIX_ENABLE)
+ header: led_matrix.h
+ }
+ led_matrix_indicators_advanced: {
+ ret_type: bool
+ args: uint8_t led_min, uint8_t led_max
+ call_params: led_min, led_max
+ guard: defined(LED_MATRIX_ENABLE)
+ header: led_matrix.h
+ }
+ default_layer_state_set: {
+ ret_type: layer_state_t
+ args: layer_state_t state
+ call_params: state
+ guard: !defined(NO_ACTION_LAYER)
+ header: action_layer.h
+ }
+ layer_state_set: {
+ ret_type: layer_state_t
+ args: layer_state_t state
+ call_params: state
+ guard: !defined(NO_ACTION_LAYER)
+ header: action_layer.h
+ }
+
+}
diff --git a/data/constants/module_hooks/1.1.1.hjson b/data/constants/module_hooks/1.1.1.hjson
new file mode 100644
index 0000000000..49f5d0d5d0
--- /dev/null
+++ b/data/constants/module_hooks/1.1.1.hjson
@@ -0,0 +1,3 @@
+{
+ // This version exists to signify addition of LED/RGB effect support.
+}
diff --git a/data/mappings/info_config.hjson b/data/mappings/info_config.hjson
index b643553b52..e4def1a4d7 100644
--- a/data/mappings/info_config.hjson
+++ b/data/mappings/info_config.hjson
@@ -64,6 +64,9 @@
"WEAR_LEVELING_BACKING_SIZE": {"info_key": "eeprom.wear_leveling.backing_size", "value_type": "int", "to_json": false},
"WEAR_LEVELING_LOGICAL_SIZE": {"info_key": "eeprom.wear_leveling.logical_size", "value_type": "int", "to_json": false},
+ // host
+ "NKRO_DEFAULT_ON": {"info_key": "host.default.nkro", "value_type": "bool"},
+
// Layer locking
"LAYER_LOCK_IDLE_TIMEOUT": {"info_key": "layer_lock.timeout", "value_type": "int"},
@@ -201,6 +204,7 @@
// Tapping
"CHORDAL_HOLD": {"info_key": "tapping.chordal_hold", "value_type": "flag"},
+ "FLOW_TAP_TERM": {"info_key": "tapping.flow_tap_term", "value_type": "int"},
"HOLD_ON_OTHER_KEY_PRESS": {"info_key": "tapping.hold_on_other_key_press", "value_type": "flag"},
"HOLD_ON_OTHER_KEY_PRESS_PER_KEY": {"info_key": "tapping.hold_on_other_key_press_per_key", "value_type": "flag"},
"PERMISSIVE_HOLD": {"info_key": "tapping.permissive_hold", "value_type": "flag"},
@@ -214,7 +218,6 @@
"TAPPING_TOGGLE": {"info_key": "tapping.toggle", "value_type": "int"},
// USB
- "FORCE_NKRO": {"info_key": "usb.force_nkro", "value_type": "flag"},
"USB_MAX_POWER_CONSUMPTION": {"info_key": "usb.max_power", "value_type": "int"},
"USB_POLLING_INTERVAL_MS": {"info_key": "usb.polling_interval", "value_type": "int"},
"USB_SUSPEND_WAKEUP_DELAY": {"info_key": "usb.suspend_wakeup_delay", "value_type": "int"},
@@ -252,6 +255,7 @@
"PRODUCT": {"info_key": "keyboard_name", "warn_duplicate": false, "value_type": "str", "deprecated": true, "replace_with": "`keyboard_name` in info.json"},
"PRODUCT_ID": {"info_key": "usb.pid", "value_type": "hex", "deprecated": true, "replace_with": "`usb.pid` in info.json"},
"VENDOR_ID": {"info_key": "usb.vid", "value_type": "hex", "deprecated": true, "replace_with": "`usb.vid` in info.json"},
+ "FORCE_NKRO": {"info_key": "usb.force_nkro", "value_type": "flag", "deprecated": true, "replace_with": "`host.default.nkro` in info.json"},
// Items we want flagged in lint
"VIAL_KEYBOARD_UID": {"info_key": "_invalid.vial_uid", "invalid": true},
diff --git a/data/mappings/info_defaults.hjson b/data/mappings/info_defaults.hjson
new file mode 100644
index 0000000000..b33cb4fa1f
--- /dev/null
+++ b/data/mappings/info_defaults.hjson
@@ -0,0 +1,74 @@
+{
+ "bootmagic": {
+ "matrix": [0, 0]
+ },
+ "backlight": {
+ "default": {
+ "on": true
+ },
+ "breathing_period": 6,
+ "levels": 3,
+ "on_state": 1
+ },
+ "debounce": 5,
+ "features": {
+ "command": false,
+ "console": false
+ },
+ "indicators": {
+ "on_state": 1
+ },
+ "led_matrix": {
+ "default": {
+ "animation": "solid",
+ "on": true,
+ "val": 255,
+ "speed": 128
+ },
+ "led_flush_limit": 16,
+ "max_brightness": 255,
+ "sleep": false,
+ "speed_steps": 16,
+ "val_steps": 16
+ },
+ "rgblight": {
+ "default": {
+ "animation": "static_light",
+ "on": true,
+ "hue": 0,
+ "sat": 255,
+ "val": 255,
+ "speed": 0
+ },
+ "brightness_steps": 17,
+ "hue_steps": 8,
+ "max_brightness": 255,
+ "saturation_steps": 17,
+ "sleep": false
+ },
+ "rgb_matrix": {
+ "default": {
+ "animation": "cycle_left_right",
+ "on": true,
+ "hue": 0,
+ "sat": 255,
+ "val": 255,
+ "speed": 128
+ },
+ "hue_steps": 8,
+ "led_flush_limit": 16,
+ "max_brightness": 255,
+ "sat_steps": 16,
+ "sleep": false,
+ "speed_steps": 16,
+ "val_steps": 16
+ },
+ "split": {
+ "serial": {
+ "driver": "bitbang"
+ }
+ },
+ "ws2812": {
+ "driver": "bitbang"
+ }
+}
diff --git a/data/mappings/info_rules.hjson b/data/mappings/info_rules.hjson
index 00685b5b5f..238957f170 100644
--- a/data/mappings/info_rules.hjson
+++ b/data/mappings/info_rules.hjson
@@ -53,8 +53,8 @@
"WS2812_DRIVER": {"info_key": "ws2812.driver"},
// Items we want flagged in lint
- "CTPC": {"info_key": "_deprecated.ctpc", "deprecated": true, "replace_with": "CONVERT_TO=proton_c"},
- "CONVERT_TO_PROTON_C": {"info_key": "_deprecated.ctpc", "deprecated": true, "replace_with": "CONVERT_TO=proton_c"},
"DEFAULT_FOLDER": {"info_key": "_deprecated.default_folder", "deprecated": true},
+ "CTPC": {"info_key": "_invalid.ctpc", "invalid": true, "replace_with": "CONVERT_TO=proton_c"},
+ "CONVERT_TO_PROTON_C": {"info_key": "_invalid.ctpc", "invalid": true, "replace_with": "CONVERT_TO=proton_c"},
"VIAL_ENABLE": {"info_key": "_invalid.vial", "invalid": true}
}
diff --git a/data/mappings/keyboard_aliases.hjson b/data/mappings/keyboard_aliases.hjson
index b601a42761..86850af7a4 100644
--- a/data/mappings/keyboard_aliases.hjson
+++ b/data/mappings/keyboard_aliases.hjson
@@ -146,6 +146,9 @@
"daisy": {
"target": "ktec/daisy"
},
+ "deemen17/de60": {
+ "target": "deemen17/de60/r1"
+ },
"dp3000": {
"target": "dp3000/rev1"
},
@@ -347,6 +350,9 @@
"keycapsss/plaid_pad": {
"target": "keycapsss/plaid_pad/rev1"
},
+ "keyten/kt60hs_t": {
+ "target": "keyten/kt60hs_t/v1"
+ },
"kira75": {
"target": "kira/kira75"
},
@@ -581,6 +587,9 @@
"ploopyco/trackball": {
"target": "ploopyco/trackball/rev1_005"
},
+ "plywrks/ply8x": {
+ "target": "plywrks/ply8x/solder"
+ },
"polilla": {
"target": "polilla/rev1"
},
@@ -1033,7 +1042,7 @@
"target": "kprepublic/bm68hsrgb/rev1"
},
"late9/rev1": {
- "target": "rookiebwoy/late9/rev1"
+ "target": "ivndbt/late9/rev1"
},
"latin17rgb": {
"target": "latincompass/latin17rgb"
@@ -1198,7 +1207,7 @@
"target": "spaceholdings/nebula68b"
},
"neopad/rev1": {
- "target": "rookiebwoy/neopad/rev1"
+ "target": "ivndbt/neopad/rev1"
},
"niu_mini": {
"target": "kbdfans/niu_mini"
@@ -2095,10 +2104,16 @@
"target": "rmi_kb/wete/v2"
},
"rookiebwoy/late9": {
- "target": "rookiebwoy/late9/rev1"
+ "target": "ivndbt/late9/rev1"
},
"rookiebwoy/neopad": {
- "target": "rookiebwoy/neopad/rev1"
+ "target": "ivndbt/neopad/rev1"
+ },
+ "ivndbt/late9": {
+ "target": "ivndbt/late9/rev1"
+ },
+ "ivndbt/neopad": {
+ "target": "ivndbt/neopad/rev1"
},
"rura66": {
"target": "rura66/rev1"
diff --git a/data/schemas/api_keyboard.jsonschema b/data/schemas/api_keyboard.jsonschema
index 6a30b5d990..a3b7872ee0 100644
--- a/data/schemas/api_keyboard.jsonschema
+++ b/data/schemas/api_keyboard.jsonschema
@@ -1,7 +1,7 @@
{
"$id": "qmk.api.keyboard.v1",
"allOf": [
- {"$ref": "qmk.keyboard.v1"},
+ {"$ref": "./keyboard.jsonschema#"},
{
"properties": {
"keymaps": {
@@ -10,8 +10,8 @@
"url": {"type": "string"}
}
},
- "parse_errors": {"$ref": "qmk.definitions.v1#/string_array"},
- "parse_warnings": {"$ref": "qmk.definitions.v1#/string_array"},
+ "parse_errors": {"$ref": "./definitions.jsonschema#/string_array"},
+ "parse_warnings": {"$ref": "./definitions.jsonschema#/string_array"},
"processor_type": {"type": "string"},
"protocol": {"type": "string"},
"keyboard_folder": {"type": "string"},
diff --git a/data/schemas/community_module.jsonschema b/data/schemas/community_module.jsonschema
index a3474476df..92981ceb5c 100644
--- a/data/schemas/community_module.jsonschema
+++ b/data/schemas/community_module.jsonschema
@@ -3,15 +3,16 @@
"$id": "qmk.community_module.v1",
"title": "Community Module Information",
"type": "object",
- "required": ["module_name", "maintainer"]
+ "required": ["module_name", "maintainer"],
"properties": {
- "module_name": {"$ref": "qmk.definitions.v1#/text_identifier"},
- "maintainer": {"$ref": "qmk.definitions.v1#/text_identifier"},
+ "module_name": {"$ref": "./definitions.jsonschema#/text_identifier"},
+ "maintainer": {"$ref": "./definitions.jsonschema#/text_identifier"},
+ "license": {"type": "string"},
"url": {
"type": "string",
"format": "uri"
},
- "keycodes": {"$ref": "qmk.definitions.v1#/keycode_decl_array"},
- "features": {"$ref": "qmk.keyboard.v1#/definitions/features_config"},
+ "keycodes": {"$ref": "./definitions.jsonschema#/keycode_decl_array"},
+ "features": {"$ref": "./keyboard.jsonschema#/definitions/features_config"}
}
}
diff --git a/data/schemas/keyboard.jsonschema b/data/schemas/keyboard.jsonschema
index 9b63f62d45..3aa259605e 100644
--- a/data/schemas/keyboard.jsonschema
+++ b/data/schemas/keyboard.jsonschema
@@ -17,9 +17,9 @@
"additionalProperties": false,
"required": ["pin_a", "pin_b"],
"properties": {
- "pin_a": {"$ref": "qmk.definitions.v1#/mcu_pin"},
- "pin_b": {"$ref": "qmk.definitions.v1#/mcu_pin"},
- "resolution": {"$ref": "qmk.definitions.v1#/unsigned_int"}
+ "pin_a": {"$ref": "./definitions.jsonschema#/mcu_pin"},
+ "pin_b": {"$ref": "./definitions.jsonschema#/mcu_pin"},
+ "resolution": {"$ref": "./definitions.jsonschema#/unsigned_int"}
}
}
}
@@ -28,22 +28,22 @@
"dip_switch_config": {
"type": "object",
"properties": {
- "pins": {"$ref": "qmk.definitions.v1#/mcu_pin_array"}
+ "pins": {"$ref": "./definitions.jsonschema#/mcu_pin_array"}
}
- }
+ },
"features_config": {
- "$ref": "qmk.definitions.v1#/boolean_array",
- "propertyNames": {"$ref": "qmk.definitions.v1#/snake_case"},
+ "$ref": "./definitions.jsonschema#/boolean_array",
+ "propertyNames": {"$ref": "./definitions.jsonschema#/snake_case"},
"not": {"required": ["lto"]}
- },
+ }
},
"type": "object",
"not": {"required": ["vendorId", "productId"]}, // reject via keys...
"properties": {
- "keyboard_name": {"$ref": "qmk.definitions.v1#/text_identifier"},
- "keyboard_folder": {"$ref": "qmk.definitions.v1#/keyboard"},
- "maintainer": {"$ref": "qmk.definitions.v1#/text_identifier"},
- "manufacturer": {"$ref": "qmk.definitions.v1#/text_identifier"},
+ "keyboard_name": {"$ref": "./definitions.jsonschema#/text_identifier"},
+ "keyboard_folder": {"$ref": "./definitions.jsonschema#/keyboard"},
+ "maintainer": {"$ref": "./definitions.jsonschema#/text_identifier"},
+ "manufacturer": {"$ref": "./definitions.jsonschema#/text_identifier"},
"url": {
"type": "string",
"format": "uri"
@@ -84,6 +84,7 @@
"STM32F407",
"STM32F411",
"STM32F446",
+ "STM32G0B1",
"STM32G431",
"STM32G474",
"STM32H723",
@@ -118,8 +119,8 @@
"type": "object",
"additionalProperties": false,
"properties": {
- "data_pin": {"$ref": "qmk.definitions.v1#/mcu_pin"},
- "clock_pin": {"$ref": "qmk.definitions.v1#/mcu_pin"},
+ "data_pin": {"$ref": "./definitions.jsonschema#/mcu_pin"},
+ "clock_pin": {"$ref": "./definitions.jsonschema#/mcu_pin"},
"default_brightness": {
"type": "integer",
"minimum": 0,
@@ -144,13 +145,13 @@
"enum": ["dac_additive", "dac_basic", "pwm_software", "pwm_hardware"]
},
"macro_beep": {"type": "boolean"},
- "pins": {"$ref": "qmk.definitions.v1#/mcu_pin_array"},
+ "pins": {"$ref": "./definitions.jsonschema#/mcu_pin_array"},
"power_control": {
"type": "object",
"additionalProperties": false,
"properties": {
- "on_state": {"$ref": "qmk.definitions.v1#/bit"},
- "pin": {"$ref": "qmk.definitions.v1#/mcu_pin"}
+ "on_state": {"$ref": "./definitions.jsonschema#/bit"},
+ "pin": {"$ref": "./definitions.jsonschema#/mcu_pin"}
}
},
"voices": {"type": "boolean"}
@@ -170,20 +171,20 @@
"properties": {
"on": {"type": "boolean"},
"breathing": {"type": "boolean"},
- "brightness": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}
+ "brightness": {"$ref": "./definitions.jsonschema#/unsigned_int_8"}
}
},
"breathing": {"type": "boolean"},
- "breathing_period": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
+ "breathing_period": {"$ref": "./definitions.jsonschema#/unsigned_int_8"},
"levels": {
"type": "integer",
"minimum": 1,
"maximum": 31
},
- "max_brightness": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
- "pin": {"$ref": "qmk.definitions.v1#/mcu_pin"},
- "pins": {"$ref": "qmk.definitions.v1#/mcu_pin_array"},
- "on_state": {"$ref": "qmk.definitions.v1#/bit"},
+ "max_brightness": {"$ref": "./definitions.jsonschema#/unsigned_int_8"},
+ "pin": {"$ref": "./definitions.jsonschema#/mcu_pin"},
+ "pins": {"$ref": "./definitions.jsonschema#/mcu_pin_array"},
+ "on_state": {"$ref": "./definitions.jsonschema#/bit"},
"as_caps_lock": {"type": "boolean"}
}
},
@@ -268,7 +269,7 @@
"type": "string",
"enum": ["COL2ROW", "ROW2COL"]
},
- "debounce": {"$ref": "qmk.definitions.v1#/unsigned_int"},
+ "debounce": {"$ref": "./definitions.jsonschema#/unsigned_int"},
"caps_word": {
"type": "object",
"additionalProperties": false,
@@ -276,20 +277,20 @@
"enabled": {"type": "boolean"},
"both_shifts_turns_on": {"type": "boolean"},
"double_tap_shift_turns_on": {"type": "boolean"},
- "idle_timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"},
+ "idle_timeout": {"$ref": "./definitions.jsonschema#/unsigned_int"},
"invert_on_shift": {"type": "boolean"}
}
},
"combo": {
"type": "object",
"properties": {
- "count": {"$ref": "qmk.definitions.v1#/unsigned_int"},
- "term": {"$ref": "qmk.definitions.v1#/unsigned_int"}
+ "count": {"$ref": "./definitions.jsonschema#/unsigned_int"},
+ "term": {"$ref": "./definitions.jsonschema#/unsigned_int"}
}
},
"community_layouts": {
"type": "array",
- "items": {"$ref": "qmk.definitions.v1#/filename"}
+ "items": {"$ref": "./definitions.jsonschema#/filename"}
},
"dip_switch": {
"$ref": "#/definitions/dip_switch_config",
@@ -319,10 +320,10 @@
"properties": {
"driver": {
"type": "string",
- "enum": ["custom", "embedded_flash", "legacy", "rp2040_flash", "spi_flash"]
+ "enum": ["none", "custom", "embedded_flash", "legacy", "rp2040_flash", "spi_flash"]
},
- "backing_size": {"$ref": "qmk.definitions.v1#/unsigned_int"},
- "logical_size": {"$ref": "qmk.definitions.v1#/unsigned_int"}
+ "backing_size": {"$ref": "./definitions.jsonschema#/unsigned_int"},
+ "logical_size": {"$ref": "./definitions.jsonschema#/unsigned_int"}
}
}
}
@@ -337,12 +338,12 @@
"indicators": {
"type": "object",
"properties": {
- "caps_lock": {"$ref": "qmk.definitions.v1#/mcu_pin"},
- "num_lock": {"$ref": "qmk.definitions.v1#/mcu_pin"},
- "scroll_lock": {"$ref": "qmk.definitions.v1#/mcu_pin"},
- "compose": {"$ref": "qmk.definitions.v1#/mcu_pin"},
- "kana": {"$ref": "qmk.definitions.v1#/mcu_pin"},
- "on_state": {"$ref": "qmk.definitions.v1#/bit"}
+ "caps_lock": {"$ref": "./definitions.jsonschema#/mcu_pin"},
+ "num_lock": {"$ref": "./definitions.jsonschema#/mcu_pin"},
+ "scroll_lock": {"$ref": "./definitions.jsonschema#/mcu_pin"},
+ "compose": {"$ref": "./definitions.jsonschema#/mcu_pin"},
+ "kana": {"$ref": "./definitions.jsonschema#/mcu_pin"},
+ "on_state": {"$ref": "./definitions.jsonschema#/bit"}
}
},
"joystick": {
@@ -350,20 +351,20 @@
"properties": {
"enabled": {"type": "boolean"},
"driver": {"type": "string"},
- "button_count": {"$ref": "qmk.definitions.v1#/unsigned_int"},
- "axis_resolution": {"$ref": "qmk.definitions.v1#/unsigned_int"},
+ "button_count": {"$ref": "./definitions.jsonschema#/unsigned_int"},
+ "axis_resolution": {"$ref": "./definitions.jsonschema#/unsigned_int"},
"axes": {
"type": "object",
- "propertyNames": {"enum": ["x", "y", "z", "rx", "ry", "rz"]}
+ "propertyNames": {"enum": ["x", "y", "z", "rx", "ry", "rz"]},
"additionalProperties": {
"oneOf": [
{
"type": "object",
"properties": {
- "input_pin": {"$ref": "qmk.definitions.v1#/mcu_pin"},
- "low": {"$ref": "qmk.definitions.v1#/unsigned_int"},
- "rest": {"$ref": "qmk.definitions.v1#/unsigned_int"},
- "high": {"$ref": "qmk.definitions.v1#/unsigned_int"}
+ "input_pin": {"$ref": "./definitions.jsonschema#/mcu_pin"},
+ "low": {"$ref": "./definitions.jsonschema#/unsigned_int"},
+ "rest": {"$ref": "./definitions.jsonschema#/unsigned_int"},
+ "high": {"$ref": "./definitions.jsonschema#/unsigned_int"}
}
},
{
@@ -375,20 +376,20 @@
}
}
},
- "keycodes": {"$ref": "qmk.definitions.v1#/keycode_decl_array"},
+ "keycodes": {"$ref": "./definitions.jsonschema#/keycode_decl_array"},
"layer_lock": {
"type": "object",
"properties": {
- "timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"}
+ "timeout": {"$ref": "./definitions.jsonschema#/unsigned_int"}
}
},
"layout_aliases": {
"type": "object",
- "additionalProperties": {"$ref": "qmk.definitions.v1#/layout_macro"}
+ "additionalProperties": {"$ref": "./definitions.jsonschema#/layout_macro"}
},
"layouts": {
"type": "object",
- "propertyNames": {"$ref": "qmk.definitions.v1#/layout_macro"},
+ "propertyNames": {"$ref": "./definitions.jsonschema#/layout_macro"},
"additionalProperties": {
"type": "object",
"additionalProperties": false,
@@ -403,7 +404,7 @@
"additionalProperties": false,
"required": ["x", "y"],
"properties": {
- "encoder": {"$ref": "qmk.definitions.v1#/unsigned_int"},
+ "encoder": {"$ref": "./definitions.jsonschema#/unsigned_int"},
"label": {
"type": "string",
"pattern": "^[^\\n]*$"
@@ -417,13 +418,13 @@
"minimum": 0
}
},
- "r": {"$ref": "qmk.definitions.v1#/signed_decimal"},
- "rx": {"$ref": "qmk.definitions.v1#/unsigned_decimal"},
- "ry": {"$ref": "qmk.definitions.v1#/unsigned_decimal"},
- "h": {"$ref": "qmk.definitions.v1#/key_unit"},
- "w": {"$ref": "qmk.definitions.v1#/key_unit"},
- "x": {"$ref": "qmk.definitions.v1#/key_unit"},
- "y": {"$ref": "qmk.definitions.v1#/key_unit"},
+ "r": {"$ref": "./definitions.jsonschema#/signed_decimal"},
+ "rx": {"$ref": "./definitions.jsonschema#/unsigned_decimal"},
+ "ry": {"$ref": "./definitions.jsonschema#/unsigned_decimal"},
+ "h": {"$ref": "./definitions.jsonschema#/key_unit"},
+ "w": {"$ref": "./definitions.jsonschema#/key_unit"},
+ "x": {"$ref": "./definitions.jsonschema#/key_unit"},
+ "y": {"$ref": "./definitions.jsonschema#/key_unit"},
"hand": {
"type": "string",
"enum": ["L", "R", "*"]
@@ -443,12 +444,24 @@
}
}
},
+ "host": {
+ "type": "object",
+ "properties": {
+ "default": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "nkro": {"type": "boolean"}
+ }
+ }
+ }
+ },
"leader_key": {
"type": "object",
"properties": {
"timing": {"type": "boolean"},
"strict_processing": {"type": "boolean"},
- "timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"}
+ "timeout": {"$ref": "./definitions.jsonschema#/unsigned_int"}
}
},
"matrix_pins": {
@@ -458,14 +471,14 @@
"custom": {"type": "boolean"},
"custom_lite": {"type": "boolean"},
"ghost": {"type": "boolean"},
- "input_pressed_state": {"$ref": "qmk.definitions.v1#/unsigned_int"},
- "io_delay": {"$ref": "qmk.definitions.v1#/unsigned_int"},
+ "input_pressed_state": {"$ref": "./definitions.jsonschema#/unsigned_int"},
+ "io_delay": {"$ref": "./definitions.jsonschema#/unsigned_int"},
"direct": {
"type": "array",
- "items": {"$ref": "qmk.definitions.v1#/mcu_pin_array"}
+ "items": {"$ref": "./definitions.jsonschema#/mcu_pin_array"}
},
- "cols": {"$ref": "qmk.definitions.v1#/mcu_pin_array"},
- "rows": {"$ref": "qmk.definitions.v1#/mcu_pin_array"}
+ "cols": {"$ref": "./definitions.jsonschema#/mcu_pin_array"},
+ "rows": {"$ref": "./definitions.jsonschema#/mcu_pin_array"}
}
},
"modules": {
@@ -478,18 +491,18 @@
"type": "object",
"properties": {
"enabled": {"type": "boolean"},
- "delay": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
- "interval": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
- "max_speed": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
- "time_to_max": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
- "wheel_delay": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}
+ "delay": {"$ref": "./definitions.jsonschema#/unsigned_int_8"},
+ "interval": {"$ref": "./definitions.jsonschema#/unsigned_int_8"},
+ "max_speed": {"$ref": "./definitions.jsonschema#/unsigned_int_8"},
+ "time_to_max": {"$ref": "./definitions.jsonschema#/unsigned_int_8"},
+ "wheel_delay": {"$ref": "./definitions.jsonschema#/unsigned_int_8"}
}
},
"oneshot": {
"type": "object",
"properties": {
- "tap_toggle": {"$ref": "qmk.definitions.v1#/unsigned_int"},
- "timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"}
+ "tap_toggle": {"$ref": "./definitions.jsonschema#/unsigned_int"},
+ "timeout": {"$ref": "./definitions.jsonschema#/unsigned_int"}
}
},
"led_matrix": {
@@ -497,7 +510,7 @@
"properties": {
"animations": {
"type": "object",
- "propertyNames": {"$ref": "qmk.definitions.v1#/snake_case"},
+ "propertyNames": {"$ref": "./definitions.jsonschema#/snake_case"},
"additionalProperties": {"type": "boolean"}
},
"default": {
@@ -506,8 +519,8 @@
"properties": {
"on": {"type": "boolean"},
"animation": {"type": "string"},
- "val": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
- "speed": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}
+ "val": {"$ref": "./definitions.jsonschema#/unsigned_int_8"},
+ "speed": {"$ref": "./definitions.jsonschema#/unsigned_int_8"}
}
},
"driver": {
@@ -533,27 +546,28 @@
"type": "array",
"minItems": 2,
"maxItems": 2,
- "items": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}
- },
- "max_brightness": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
- "timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"},
- "val_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"},
- "speed_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"},
- "led_flush_limit": {"$ref": "qmk.definitions.v1#/unsigned_int"},
- "led_process_limit": {"$ref": "qmk.definitions.v1#/unsigned_int"},
+ "items": {"$ref": "./definitions.jsonschema#/unsigned_int_8"}
+ },
+ "max_brightness": {"$ref": "./definitions.jsonschema#/unsigned_int_8"},
+ "timeout": {"$ref": "./definitions.jsonschema#/unsigned_int"},
+ "val_steps": {"$ref": "./definitions.jsonschema#/unsigned_int"},
+ "speed_steps": {"$ref": "./definitions.jsonschema#/unsigned_int"},
+ "led_flush_limit": {"$ref": "./definitions.jsonschema#/unsigned_int"},
+ "led_process_limit": {"$ref": "./definitions.jsonschema#/unsigned_int"},
"react_on_keyup": {"type": "boolean"},
"sleep": {"type": "boolean"},
"split_count": {
"type": "array",
"minItems": 2,
"maxItems": 2,
- "items": {"$ref": "qmk.definitions.v1#/unsigned_int"}
+ "items": {"$ref": "./definitions.jsonschema#/unsigned_int"}
},
"layout": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
+ "required": ["x", "y"],
"properties": {
"matrix": {
"type": "array",
@@ -564,9 +578,9 @@
"minimum": 0
}
},
- "x": {"$ref": "qmk.definitions.v1#/unsigned_int"},
- "y": {"$ref": "qmk.definitions.v1#/unsigned_int"},
- "flags": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}
+ "x": {"$ref": "./definitions.jsonschema#/unsigned_int"},
+ "y": {"$ref": "./definitions.jsonschema#/unsigned_int"},
+ "flags": {"$ref": "./definitions.jsonschema#/unsigned_int_8"}
}
}
}
@@ -577,7 +591,7 @@
"properties": {
"animations": {
"type": "object",
- "propertyNames": {"$ref": "qmk.definitions.v1#/snake_case"},
+ "propertyNames": {"$ref": "./definitions.jsonschema#/snake_case"},
"additionalProperties": {"type": "boolean"}
},
"default": {
@@ -586,10 +600,10 @@
"properties": {
"on": {"type": "boolean"},
"animation": {"type": "string"},
- "hue": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
- "sat": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
- "val": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
- "speed": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}
+ "hue": {"$ref": "./definitions.jsonschema#/unsigned_int_8"},
+ "sat": {"$ref": "./definitions.jsonschema#/unsigned_int_8"},
+ "val": {"$ref": "./definitions.jsonschema#/unsigned_int_8"},
+ "speed": {"$ref": "./definitions.jsonschema#/unsigned_int_8"}
}
},
"driver": {
@@ -617,29 +631,30 @@
"type": "array",
"minItems": 2,
"maxItems": 2,
- "items": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}
- },
- "max_brightness": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
- "timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"},
- "hue_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"},
- "sat_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"},
- "val_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"},
- "speed_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"},
- "led_flush_limit": {"$ref": "qmk.definitions.v1#/unsigned_int"},
- "led_process_limit": {"$ref": "qmk.definitions.v1#/unsigned_int"},
+ "items": {"$ref": "./definitions.jsonschema#/unsigned_int_8"}
+ },
+ "max_brightness": {"$ref": "./definitions.jsonschema#/unsigned_int_8"},
+ "timeout": {"$ref": "./definitions.jsonschema#/unsigned_int"},
+ "hue_steps": {"$ref": "./definitions.jsonschema#/unsigned_int"},
+ "sat_steps": {"$ref": "./definitions.jsonschema#/unsigned_int"},
+ "val_steps": {"$ref": "./definitions.jsonschema#/unsigned_int"},
+ "speed_steps": {"$ref": "./definitions.jsonschema#/unsigned_int"},
+ "led_flush_limit": {"$ref": "./definitions.jsonschema#/unsigned_int"},
+ "led_process_limit": {"$ref": "./definitions.jsonschema#/unsigned_int"},
"react_on_keyup": {"type": "boolean"},
"sleep": {"type": "boolean"},
"split_count": {
"type": "array",
"minItems": 2,
"maxItems": 2,
- "items": {"$ref": "qmk.definitions.v1#/unsigned_int"}
+ "items": {"$ref": "./definitions.jsonschema#/unsigned_int"}
},
"layout": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
+ "required": ["x", "y"],
"properties": {
"matrix": {
"type": "array",
@@ -650,9 +665,9 @@
"minimum": 0
}
},
- "x": {"$ref": "qmk.definitions.v1#/unsigned_int"},
- "y": {"$ref": "qmk.definitions.v1#/unsigned_int"},
- "flags": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}
+ "x": {"$ref": "./definitions.jsonschema#/unsigned_int"},
+ "y": {"$ref": "./definitions.jsonschema#/unsigned_int"},
+ "flags": {"$ref": "./definitions.jsonschema#/unsigned_int_8"}
}
}
}
@@ -664,27 +679,27 @@
"properties": {
"animations": {
"type": "object",
- "propertyNames": {"$ref": "qmk.definitions.v1#/snake_case"},
+ "propertyNames": {"$ref": "./definitions.jsonschema#/snake_case"},
"additionalProperties": {"type": "boolean"}
},
- "brightness_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"},
+ "brightness_steps": {"$ref": "./definitions.jsonschema#/unsigned_int"},
"default": {
"type": "object",
"additionalProperties": false,
"properties": {
"on": {"type": "boolean"},
"animation": {"type": "string"},
- "hue": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
- "sat": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
- "val": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
- "speed": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}
+ "hue": {"$ref": "./definitions.jsonschema#/unsigned_int_8"},
+ "sat": {"$ref": "./definitions.jsonschema#/unsigned_int_8"},
+ "val": {"$ref": "./definitions.jsonschema#/unsigned_int_8"},
+ "speed": {"$ref": "./definitions.jsonschema#/unsigned_int_8"}
}
},
"driver": {
"type": "string",
"enum": ["apa102", "custom", "ws2812"]
},
- "hue_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"},
+ "hue_steps": {"$ref": "./definitions.jsonschema#/unsigned_int"},
"layers": {
"type": "object",
"additionalProperties": false,
@@ -699,29 +714,29 @@
"override_rgb": {"type": "boolean"}
}
},
- "led_count": {"$ref": "qmk.definitions.v1#/unsigned_int"},
+ "led_count": {"$ref": "./definitions.jsonschema#/unsigned_int"},
"led_map": {
"type": "array",
"minItems": 2,
- "items": {"$ref": "qmk.definitions.v1#/unsigned_int"}
+ "items": {"$ref": "./definitions.jsonschema#/unsigned_int"}
},
- "max_brightness": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
+ "max_brightness": {"$ref": "./definitions.jsonschema#/unsigned_int_8"},
"pin": {
- "$ref": "qmk.definitions.v1#/mcu_pin",
+ "$ref": "./definitions.jsonschema#/mcu_pin",
"$comment": "Deprecated: use ws2812.pin instead"
},
"rgbw": {
"type": "boolean",
"$comment": "Deprecated: use ws2812.rgbw instead"
},
- "saturation_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"},
+ "saturation_steps": {"$ref": "./definitions.jsonschema#/unsigned_int"},
"sleep": {"type": "boolean"},
"split": {"type": "boolean"},
"split_count": {
"type": "array",
"minItems": 2,
"maxItems": 2,
- "items": {"$ref": "qmk.definitions.v1#/unsigned_int"}
+ "items": {"$ref": "./definitions.jsonschema#/unsigned_int"}
}
}
},
@@ -730,8 +745,8 @@
"additionalProperties": false,
"properties": {
"enabled": {"type": "boolean"},
- "unlock_timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"},
- "idle_timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"},
+ "unlock_timeout": {"$ref": "./definitions.jsonschema#/unsigned_int"},
+ "idle_timeout": {"$ref": "./definitions.jsonschema#/unsigned_int"},
"unlock_sequence": {
"type": "array",
"minItems": 1,
@@ -765,8 +780,8 @@
"properties": {
"enabled": {"type": "boolean"},
"mouse_enabled": {"type": "boolean"},
- "clock_pin": {"$ref": "qmk.definitions.v1#/mcu_pin"},
- "data_pin": {"$ref": "qmk.definitions.v1#/mcu_pin"},
+ "clock_pin": {"$ref": "./definitions.jsonschema#/mcu_pin"},
+ "data_pin": {"$ref": "./definitions.jsonschema#/mcu_pin"},
"driver": {
"type": "string",
"enum": ["busywait", "interrupt", "usart", "vendor"]
@@ -803,11 +818,11 @@
"properties": {
"direct": {
"type": "array",
- "items": {"$ref": "qmk.definitions.v1#/mcu_pin_array"}
+ "items": {"$ref": "./definitions.jsonschema#/mcu_pin_array"}
},
- "cols": {"$ref": "qmk.definitions.v1#/mcu_pin_array"},
- "rows": {"$ref": "qmk.definitions.v1#/mcu_pin_array"},
- "unused": {"$ref": "qmk.definitions.v1#/mcu_pin_array"}
+ "cols": {"$ref": "./definitions.jsonschema#/mcu_pin_array"},
+ "rows": {"$ref": "./definitions.jsonschema#/mcu_pin_array"},
+ "unused": {"$ref": "./definitions.jsonschema#/mcu_pin_array"}
}
}
}
@@ -834,16 +849,16 @@
"type": "object",
"additionalProperties": false,
"properties": {
- "pin": {"$ref": "qmk.definitions.v1#/mcu_pin"},
+ "pin": {"$ref": "./definitions.jsonschema#/mcu_pin"},
"matrix_grid": {
- "$ref": "qmk.definitions.v1#/mcu_pin_array",
+ "$ref": "./definitions.jsonschema#/mcu_pin_array",
"minItems": 2,
"maxItems": 2
}
}
},
"soft_serial_pin": {
- "$ref": "qmk.definitions.v1#/mcu_pin",
+ "$ref": "./definitions.jsonschema#/mcu_pin",
"$comment": "Deprecated: use split.serial.pin instead"
},
"soft_serial_speed": {
@@ -859,7 +874,7 @@
"type": "string",
"enum": ["bitbang", "usart", "vendor"]
},
- "pin": {"$ref": "qmk.definitions.v1#/mcu_pin"}
+ "pin": {"$ref": "./definitions.jsonschema#/mcu_pin"}
}
},
"transport": {
@@ -887,7 +902,7 @@
}
},
"watchdog": {"type": "boolean"},
- "watchdog_timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"},
+ "watchdog_timeout": {"$ref": "./definitions.jsonschema#/unsigned_int"},
"sync_matrix_state": {
"type": "boolean",
"$comment": "Deprecated: use sync.matrix_state instead"
@@ -903,8 +918,8 @@
"additionalProperties": false,
"properties": {
"enabled": {"type": "boolean"},
- "polling_interval": {"$ref": "qmk.definitions.v1#/unsigned_int"},
- "timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"}
+ "polling_interval": {"$ref": "./definitions.jsonschema#/unsigned_int"},
+ "timeout": {"$ref": "./definitions.jsonschema#/unsigned_int"}
}
},
"main": {
@@ -914,7 +929,7 @@
},
"matrix_grid": {
"type": "array",
- "items": {"$ref": "qmk.definitions.v1#/mcu_pin"},
+ "items": {"$ref": "./definitions.jsonschema#/mcu_pin"},
"$comment": "Deprecated: use split.handedness.matrix_grid instead"
}
}
@@ -936,9 +951,9 @@
"permissive_hold_per_key": {"type": "boolean"},
"retro": {"type": "boolean"},
"retro_per_key": {"type": "boolean"},
- "term": {"$ref": "qmk.definitions.v1#/unsigned_int"},
+ "term": {"$ref": "./definitions.jsonschema#/unsigned_int"},
"term_per_key": {"type": "boolean"},
- "toggle": {"$ref": "qmk.definitions.v1#/unsigned_int"}
+ "toggle": {"$ref": "./definitions.jsonschema#/unsigned_int"}
}
},
"usb": {
@@ -946,16 +961,20 @@
"additionalProperties": false,
"properties": {
"device_ver": {
- "$ref": "qmk.definitions.v1#/hex_number_4d",
+ "$ref": "./definitions.jsonschema#/hex_number_4d",
"$comment": "Deprecated: use device_version instead"
},
- "device_version": {"$ref": "qmk.definitions.v1#/bcd_version"},
- "force_nkro": {"type": "boolean"},
- "pid": {"$ref": "qmk.definitions.v1#/hex_number_4d"},
- "vid": {"$ref": "qmk.definitions.v1#/hex_number_4d"},
- "max_power": {"$ref": "qmk.definitions.v1#/unsigned_int"},
+ "device_version": {"$ref": "./definitions.jsonschema#/bcd_version"},
+ "force_nkro": {
+ "type": "boolean",
+ "$comment": "Deprecated: use host.default.nkro instead"
+
+ },
+ "pid": {"$ref": "./definitions.jsonschema#/hex_number_4d"},
+ "vid": {"$ref": "./definitions.jsonschema#/hex_number_4d"},
+ "max_power": {"$ref": "./definitions.jsonschema#/unsigned_int"},
"no_startup_check": {"type": "boolean"},
- "polling_interval": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
+ "polling_interval": {"$ref": "./definitions.jsonschema#/unsigned_int_8"},
"shared_endpoint": {
"type": "object",
"additionalProperties": false,
@@ -964,7 +983,7 @@
"mouse": {"type": "boolean"}
}
},
- "suspend_wakeup_delay": {"$ref": "qmk.definitions.v1#/unsigned_int"},
+ "suspend_wakeup_delay": {"$ref": "./definitions.jsonschema#/unsigned_int"},
"wait_for_enumeration": {"type": "boolean"}
}
},
@@ -972,9 +991,9 @@
"type": "object",
"additionalProperties": false,
"properties": {
- "keys_per_scan": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
- "tap_keycode_delay": {"$ref": "qmk.definitions.v1#/unsigned_int"},
- "tap_capslock_delay": {"$ref": "qmk.definitions.v1#/unsigned_int"},
+ "keys_per_scan": {"$ref": "./definitions.jsonschema#/unsigned_int_8"},
+ "tap_keycode_delay": {"$ref": "./definitions.jsonschema#/unsigned_int"},
+ "tap_capslock_delay": {"$ref": "./definitions.jsonschema#/unsigned_int"},
"locking": {
"type": "object",
"additionalProperties": false,
@@ -989,10 +1008,10 @@
"type": "object",
"additionalProperties": false,
"properties": {
- "esc_output": {"$ref": "qmk.definitions.v1#/mcu_pin"},
- "esc_input": {"$ref": "qmk.definitions.v1#/mcu_pin"},
- "led": {"$ref": "qmk.definitions.v1#/mcu_pin"},
- "speaker": {"$ref": "qmk.definitions.v1#/mcu_pin"}
+ "esc_output": {"$ref": "./definitions.jsonschema#/mcu_pin"},
+ "esc_input": {"$ref": "./definitions.jsonschema#/mcu_pin"},
+ "led": {"$ref": "./definitions.jsonschema#/mcu_pin"},
+ "speaker": {"$ref": "./definitions.jsonschema#/mcu_pin"}
}
},
"ws2812": {
@@ -1003,10 +1022,10 @@
"type": "string",
"enum": ["bitbang", "custom", "i2c", "pwm", "spi", "vendor"]
},
- "pin": {"$ref": "qmk.definitions.v1#/mcu_pin"},
+ "pin": {"$ref": "./definitions.jsonschema#/mcu_pin"},
"rgbw": {"type": "boolean"},
- "i2c_address": {"$ref": "qmk.definitions.v1#/hex_number_2d"},
- "i2c_timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"}
+ "i2c_address": {"$ref": "./definitions.jsonschema#/hex_number_2d"},
+ "i2c_timeout": {"$ref": "./definitions.jsonschema#/unsigned_int"}
}
}
}
diff --git a/data/schemas/keycodes.jsonschema b/data/schemas/keycodes.jsonschema
index df6ce95a83..0f9dfc763e 100644
--- a/data/schemas/keycodes.jsonschema
+++ b/data/schemas/keycodes.jsonschema
@@ -30,10 +30,10 @@
"keycodes": {
"type": "object",
"propertyNames": {
- "$ref": "qmk.definitions.v1#/hex_number_4d"
+ "$ref": "./definitions.jsonschema#/hex_number_4d"
},
"additionalProperties": {
- "type": "object", // use 'qmk.definitions.v1#/keycode_decl' when problem keycodes are removed
+ "type": "object", // use './definitions.jsonschema#/keycode_decl' when problem keycodes are removed
"required": [
"key"
],
diff --git a/data/schemas/keymap.jsonschema b/data/schemas/keymap.jsonschema
index b92a536c2c..99aeaa6b6c 100644
--- a/data/schemas/keymap.jsonschema
+++ b/data/schemas/keymap.jsonschema
@@ -10,10 +10,10 @@
"minLength": 1,
"pattern": "^[a-z][0-9a-z_]*$"
},
- "host_language": {"$ref": "qmk.definitions.v1#/text_identifier"},
- "keyboard": {"$ref": "qmk.definitions.v1#/text_identifier"},
- "keymap": {"$ref": "qmk.definitions.v1#/text_identifier"},
- "layout": {"$ref": "qmk.definitions.v1#/layout_macro"},
+ "host_language": {"$ref": "./definitions.jsonschema#/text_identifier"},
+ "keyboard": {"$ref": "./definitions.jsonschema#/text_identifier"},
+ "keymap": {"$ref": "./definitions.jsonschema#/text_identifier"},
+ "layout": {"$ref": "./definitions.jsonschema#/layout_macro"},
"layers": {
"type": "array",
"items": {
@@ -55,11 +55,11 @@
"keycodes": {
"type": "array",
"items": {
- "$ref": "qmk.definitions.v1#/text_identifier"
+ "$ref": "./definitions.jsonschema#/text_identifier"
}
},
"duration": {
- "$ref": "qmk.definitions.v1#/unsigned_int"
+ "$ref": "./definitions.jsonschema#/unsigned_int"
}
}
}
@@ -67,8 +67,8 @@
}
}
},
- "keycodes": {"$ref": "qmk.definitions.v1#/keycode_decl_array"},
- "config": {"$ref": "qmk.keyboard.v1"},
+ "keycodes": {"$ref": "./definitions.jsonschema#/keycode_decl_array"},
+ "config": {"$ref": "./keyboard.jsonschema#"},
"notes": {
"type": "string"
},
diff --git a/data/schemas/user_repo_v0.jsonschema b/data/schemas/user_repo_v0.jsonschema
index b18ac50428..58d955abe2 100644
--- a/data/schemas/user_repo_v0.jsonschema
+++ b/data/schemas/user_repo_v0.jsonschema
@@ -8,7 +8,7 @@
],
"properties": {
"userspace_version": {
- "type": "string",
- },
+ "type": "string"
+ }
}
}
diff --git a/data/schemas/user_repo_v1.jsonschema b/data/schemas/user_repo_v1.jsonschema
index 69a59bce00..07c61d0fea 100644
--- a/data/schemas/user_repo_v1.jsonschema
+++ b/data/schemas/user_repo_v1.jsonschema
@@ -6,10 +6,10 @@
"definitions": {
"build_target": {
"oneOf": [
- {"$ref": "qmk.definitions.v1#/keyboard_keymap_tuple"},
- {"$ref": "qmk.definitions.v1#/json_file_path"}
+ {"$ref": "./definitions.jsonschema#/keyboard_keymap_tuple"},
+ {"$ref": "./definitions.jsonschema#/json_file_path"}
]
- },
+ }
},
"required": [
"userspace_version",
diff --git a/data/schemas/user_repo_v1_1.jsonschema b/data/schemas/user_repo_v1_1.jsonschema
index 5a7ccce063..cd6d89ad81 100644
--- a/data/schemas/user_repo_v1_1.jsonschema
+++ b/data/schemas/user_repo_v1_1.jsonschema
@@ -6,11 +6,11 @@
"definitions": {
"build_target": {
"oneOf": [
- {"$ref": "qmk.definitions.v1#/keyboard_keymap_tuple"},
- {"$ref": "qmk.definitions.v1#/keyboard_keymap_env"},
- {"$ref": "qmk.definitions.v1#/json_file_path"}
+ {"$ref": "./definitions.jsonschema#/keyboard_keymap_tuple"},
+ {"$ref": "./definitions.jsonschema#/keyboard_keymap_env"},
+ {"$ref": "./definitions.jsonschema#/json_file_path"}
]
- },
+ }
},
"required": [
"userspace_version",
diff --git a/data/templates/keyboard/keyboard.json b/data/templates/keyboard/keyboard.json
index 94085d7f5a..87aa853cbb 100644
--- a/data/templates/keyboard/keyboard.json
+++ b/data/templates/keyboard/keyboard.json
@@ -14,8 +14,6 @@
},
"features": {
"bootmagic": true,
- "command": false,
- "console": false,
"extrakey": true,
"mousekey": true,
"nkro": true