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.hjson596
-rw-r--r--data/constants/keycodes/extras/keycodes_farsi_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/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/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.hjson8
-rw-r--r--data/mappings/info_defaults.hjson74
-rw-r--r--data/mappings/info_rules.hjson5
-rw-r--r--data/mappings/keyboard_aliases.hjson759
-rw-r--r--data/schemas/api_keyboard.jsonschema6
-rw-r--r--data/schemas/community_module.jsonschema18
-rw-r--r--data/schemas/keyboard.jsonschema338
-rw-r--r--data/schemas/keycodes.jsonschema4
-rw-r--r--data/schemas/keymap.jsonschema22
-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
93 files changed, 1858 insertions, 256 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
new file mode 100644
index 0000000000..9b4fa33053
--- /dev/null
+++ b/data/constants/keycodes/extras/keycodes_eurkey_0.0.1.hjson
@@ -0,0 +1,596 @@
+{
+ "aliases": {
+/*
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
+ * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ │
+ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
+ * │ │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │
+ * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
+ * │ │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ │
+ * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤
+ * │ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ │
+ * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
+ * │ │ │ │ │ │ │ │ │
+ * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
+ */
+ "KC_GRV": {
+ "key": "EU_GRV",
+ "label": "`",
+ }
+ "KC_1": {
+ "key": "EU_1",
+ "label": "1",
+ }
+ "KC_2": {
+ "key": "EU_2",
+ "label": "2",
+ }
+ "KC_3": {
+ "key": "EU_3",
+ "label": "3",
+ }
+ "KC_4": {
+ "key": "EU_4",
+ "label": "4",
+ }
+ "KC_5": {
+ "key": "EU_5",
+ "label": "5",
+ }
+ "KC_6": {
+ "key": "EU_6",
+ "label": "6",
+ }
+ "KC_7": {
+ "key": "EU_7",
+ "label": "7",
+ }
+ "KC_8": {
+ "key": "EU_8",
+ "label": "8",
+ }
+ "KC_9": {
+ "key": "EU_9",
+ "label": "9",
+ }
+ "KC_0": {
+ "key": "EU_0",
+ "label": "0",
+ }
+ "KC_MINS": {
+ "key": "EU_MINS",
+ "label": "-",
+ }
+ "KC_EQL": {
+ "key": "EU_EQL",
+ "label": "=",
+ }
+ "KC_Q": {
+ "key": "EU_Q",
+ "label": "Q",
+ }
+ "KC_W": {
+ "key": "EU_W",
+ "label": "W",
+ }
+ "KC_E": {
+ "key": "EU_E",
+ "label": "E",
+ }
+ "KC_R": {
+ "key": "EU_R",
+ "label": "R",
+ }
+ "KC_T": {
+ "key": "EU_T",
+ "label": "T",
+ }
+ "KC_Y": {
+ "key": "EU_Y",
+ "label": "Y",
+ }
+ "KC_U": {
+ "key": "EU_U",
+ "label": "U",
+ }
+ "KC_I": {
+ "key": "EU_I",
+ "label": "I",
+ }
+ "KC_O": {
+ "key": "EU_O",
+ "label": "O",
+ }
+ "KC_P": {
+ "key": "EU_P",
+ "label": "P",
+ }
+ "KC_LBRC": {
+ "key": "EU_LBRC",
+ "label": "[",
+ }
+ "KC_RBRC": {
+ "key": "EU_RBRC",
+ "label": "]",
+ }
+ "KC_BSLS": {
+ "key": "EU_BSLS",
+ "label": "\\",
+ }
+ "KC_A": {
+ "key": "EU_A",
+ "label": "A",
+ }
+ "KC_S": {
+ "key": "EU_S",
+ "label": "S",
+ }
+ "KC_D": {
+ "key": "EU_D",
+ "label": "D",
+ }
+ "KC_F": {
+ "key": "EU_F",
+ "label": "F",
+ }
+ "KC_G": {
+ "key": "EU_G",
+ "label": "G",
+ }
+ "KC_H": {
+ "key": "EU_H",
+ "label": "H",
+ }
+ "KC_J": {
+ "key": "EU_J",
+ "label": "J",
+ }
+ "KC_K": {
+ "key": "EU_K",
+ "label": "K",
+ }
+ "KC_L": {
+ "key": "EU_L",
+ "label": "L",
+ }
+ "KC_SCLN": {
+ "key": "EU_SCLN",
+ "label": ";",
+ }
+ "KC_QUOT": {
+ "key": "EU_QUOT",
+ "label": "'",
+ }
+ "KC_Z": {
+ "key": "EU_Z",
+ "label": "Z",
+ }
+ "KC_X": {
+ "key": "EU_X",
+ "label": "X",
+ }
+ "KC_C": {
+ "key": "EU_C",
+ "label": "C",
+ }
+ "KC_V": {
+ "key": "EU_V",
+ "label": "V",
+ }
+ "KC_B": {
+ "key": "EU_B",
+ "label": "B",
+ }
+ "KC_N": {
+ "key": "EU_N",
+ "label": "N",
+ }
+ "KC_M": {
+ "key": "EU_M",
+ "label": "M",
+ }
+ "KC_COMM": {
+ "key": "EU_COMM",
+ "label": ",",
+ }
+ "KC_DOT": {
+ "key": "EU_DOT",
+ "label": ".",
+ }
+ "KC_SLSH": {
+ "key": "EU_SLSH",
+ "label": "/",
+ }
+/* Shifted symbols
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
+ * │ ~ │ ! │ @ │ # │ $ │ % │ ^ │ & │ * │ ( │ ) │ _ │ + │ │
+ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
+ * │ │ │ │ │ │ │ │ │ │ │ │ { │ } │ | │
+ * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
+ * │ │ │ │ │ │ │ │ │ │ │ : │ " │ │
+ * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤
+ * │ │ │ │ │ │ │ │ │ < │ > │ ? │ │
+ * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
+ * │ │ │ │ │ │ │ │ │
+ * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
+ */
+ "S(EU_GRV)": {
+ "key": "EU_TILD",
+ "label": "~",
+ }
+ "S(EU_1)": {
+ "key": "EU_EXLM",
+ "label": "!",
+ }
+ "S(EU_2)": {
+ "key": "EU_AT",
+ "label": "@",
+ }
+ "S(EU_3)": {
+ "key": "EU_HASH",
+ "label": "#",
+ }
+ "S(EU_4)": {
+ "key": "EU_DLR",
+ "label": "$",
+ }
+ "S(EU_5)": {
+ "key": "EU_PERC",
+ "label": "%",
+ }
+ "S(EU_6)": {
+ "key": "EU_CIRC",
+ "label": "^",
+ }
+ "S(EU_7)": {
+ "key": "EU_AMPR",
+ "label": "&",
+ }
+ "S(EU_8)": {
+ "key": "EU_ASTR",
+ "label": "*",
+ }
+ "S(EU_9)": {
+ "key": "EU_LPRN",
+ "label": "(",
+ }
+ "S(EU_0)": {
+ "key": "EU_RPRN",
+ "label": ")",
+ }
+ "S(EU_MINS)": {
+ "key": "EU_UNDS",
+ "label": "_",
+ }
+ "S(EU_EQL)": {
+ "key": "EU_PLUS",
+ "label": "+",
+ }
+ "S(EU_LBRC)": {
+ "key": "EU_LCBR",
+ "label": "{",
+ }
+ "S(EU_RBRC)": {
+ "key": "EU_RCBR",
+ "label": "}",
+ }
+ "S(EU_BSLS)": {
+ "key": "EU_PIPE",
+ "label": "|",
+ }
+ "S(EU_SCLN)": {
+ "key": "EU_COLN",
+ "label": ":",
+ }
+ "S(EU_QUOT)": {
+ "key": "EU_DQUO",
+ "label": "\"",
+ }
+ "S(EU_COMM)": {
+ "key": "EU_LABK",
+ "label": "<",
+ }
+ "S(EU_DOT)": {
+ "key": "EU_RABK",
+ "label": ">",
+ }
+ "S(EU_SLSH)": {
+ "key": "EU_QUES",
+ "label": "?",
+ }
+/* AltGr symbols
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
+ * │ ` │ ¡ │ ª │ º │ £ │ € │ ^ │ ˚ │ „ │ “ │ ” │ – │ × │ │
+ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
+ * │ │ æ │ å │ ë │ ý │ þ │ ÿ │ ü │ ï │ ö │ œ │ « │ » │ ¬ │
+ * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
+ * │ │ ä │ ß │ ð │ è │ é │ ù │ ú │ ij │ ø │ ° │ ´ │ │
+ * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤
+ * │ │ à │ á │ ç │ ì │ í │ ñ │ μ │ ò │ ó │ ¿ │ │
+ * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
+ * │ │ │ │ │ │ │ │ │
+ * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
+ */
+ "ALGR(EU_GRV)": {
+ "key": "EU_DGRV",
+ "label": "` (dead)",
+ }
+ "ALGR(EU_1)": {
+ "key": "EU_IEXL",
+ "label": "¡",
+ }
+ "ALGR(EU_2)": {
+ "key": "EU_FORD",
+ "label": "ª",
+ }
+ "ALGR(EU_3)": {
+ "key": "EU_MORD",
+ "label": "º",
+ }
+ "ALGR(EU_4)": {
+ "key": "EU_PND",
+ "label": "£",
+ }
+ "ALGR(EU_5)": {
+ "key": "EU_EURO",
+ "label": "€",
+ }
+ "ALGR(EU_6)": {
+ "key": "EU_DCIR",
+ "label": "^ (dead)",
+ }
+ "ALGR(EU_7)": {
+ "key": "EU_RNGA",
+ "label": "˚ (dead)",
+ }
+ "ALGR(EU_8)": {
+ "key": "EU_DLQU",
+ "label": "„",
+ }
+ "ALGR(EU_9)": {
+ "key": "EU_LDQU",
+ "label": "“",
+ }
+ "ALGR(EU_0)": {
+ "key": "EU_RDQU",
+ "label": "”",
+ }
+ "ALGR(EU_MINS)": {
+ "key": "EU_NDSH",
+ "label": "–",
+ }
+ "ALGR(EU_EQL)": {
+ "key": "EU_MUL",
+ "label": "×",
+ }
+ "ALGR(EU_Q)": {
+ "key": "EU_AE",
+ "label": "æ",
+ }
+ "ALGR(EU_W)": {
+ "key": "EU_ARNG",
+ "label": "Å",
+ }
+ "ALGR(EU_E)": {
+ "key": "EU_EDIA",
+ "label": "Ë",
+ }
+ "ALGR(EU_R)": {
+ "key": "EU_YACU",
+ "label": "Ý",
+ }
+ "ALGR(EU_T)": {
+ "key": "EU_THRN",
+ "label": "Þ",
+ }
+ "ALGR(EU_Y)": {
+ "key": "EU_YDIA",
+ "label": "Ÿ",
+ }
+ "ALGR(EU_U)": {
+ "key": "EU_UDIA",
+ "label": "Ü",
+ }
+ "ALGR(EU_I)": {
+ "key": "EU_IDIA",
+ "label": "Ï",
+ }
+ "ALGR(EU_O)": {
+ "key": "EU_ODIA",
+ "label": "Ö",
+ }
+ "ALGR(EU_P)": {
+ "key": "EU_OE",
+ "label": "Œ",
+ }
+ "ALGR(EU_LBRC)": {
+ "key": "EU_LDAQ",
+ "label": "«",
+ }
+ "ALGR(EU_RBRC)": {
+ "key": "EU_RDAQ",
+ "label": "»",
+ }
+ "ALGR(EU_BSLS)": {
+ "key": "EU_NOT",
+ "label": "¬",
+ }
+ "ALGR(EU_A)": {
+ "key": "EU_ADIA",
+ "label": "Ä",
+ }
+ "ALGR(EU_S)": {
+ "key": "EU_SS",
+ "label": "ß",
+ }
+ "ALGR(EU_D)": {
+ "key": "EU_ETH",
+ "label": "Ð",
+ }
+ "ALGR(EU_F)": {
+ "key": "EU_EGRV",
+ "label": "È",
+ }
+ "ALGR(EU_G)": {
+ "key": "EU_EACU",
+ "label": "É",
+ }
+ "ALGR(EU_H)": {
+ "key": "EU_UGRV",
+ "label": "Ù",
+ }
+ "ALGR(EU_J)": {
+ "key": "EU_UACU",
+ "label": "Ú",
+ }
+ "ALGR(EU_K)": {
+ "key": "EU_IJ",
+ "label": "IJ",
+ }
+ "ALGR(EU_L)": {
+ "key": "EU_OSTR",
+ "label": "Ø",
+ }
+ "ALGR(EU_SCLN)": {
+ "key": "EU_DEG",
+ "label": "°",
+ }
+ "ALGR(EU_QUOT)": {
+ "key": "EU_ACUT",
+ "label": "´ (dead)",
+ }
+ "ALGR(EU_Z)": {
+ "key": "EU_AGRV",
+ "label": "À",
+ }
+ "ALGR(EU_X)": {
+ "key": "EU_AACU",
+ "label": "Á",
+ }
+ "ALGR(EU_C)": {
+ "key": "EU_CCED",
+ "label": "Ç",
+ }
+ "ALGR(EU_V)": {
+ "key": "EU_IGRV",
+ "label": "Ì",
+ }
+ "ALGR(EU_B)": {
+ "key": "EU_IACU",
+ "label": "Í",
+ }
+ "ALGR(EU_N)": {
+ "key": "EU_NTIL",
+ "label": "Ñ",
+ }
+ "ALGR(EU_M)": {
+ "key": "EU_DGRK",
+ "label": "μ (dead Greek key)",
+ }
+ "ALGR(EU_COMM)": {
+ "key": "EU_OGRV",
+ "label": "Ò",
+ }
+ "ALGR(EU_DOT)": {
+ "key": "EU_OACU",
+ "label": "Ó",
+ }
+ "ALGR(EU_SLSH)": {
+ "key": "EU_IQUE",
+ "label": "¿",
+ }
+/* Shift+AltGr symbols
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
+ * │ ~ │ ¹ │ ² │ ³ │ ¥ │ ¢ │ ˇ │ ¯ │ ‚ │ ‘ │ ’ │ — │ ÷ │ │
+ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
+ * │ │ │ │ │ │ │ │ │ │ │ │ ‹ │ › │ ¦ │
+ * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
+ * │ │ │ § │ │ │ │ │ │ │ │ · │ ¨ │ │
+ * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤
+ * │ │ │ │ │ │ │ │ │ │ │ … │ │
+ * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
+ * │ │ │ │ │ │ │ │ │
+ * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
+ */
+ "ALGR(EU_TILD)": {
+ "key": "EU_DTIL",
+ "label": "~ (dead)",
+ }
+ "S(ALGR(EU_1))": {
+ "key": "EU_SUP1",
+ "label": "¹",
+ }
+ "S(ALGR(EU_2))": {
+ "key": "EU_SUP2",
+ "label": "²",
+ }
+ "S(ALGR(EU_3))": {
+ "key": "EU_SUP3",
+ "label": "³",
+ }
+ "ALGR(EU_DLR)": {
+ "key": "EU_YEN",
+ "label": "¥",
+ }
+ "S(EU_EURO)": {
+ "key": "EU_CENT",
+ "label": "¢",
+ }
+ "S(EU_DCIR)": {
+ "key": "EU_CARN",
+ "label": "ˇ (dead)",
+ }
+ "S(ALGR(EU_7))": {
+ "key": "EU_MACR",
+ "label": "¯ (dead)",
+ }
+ "S(EU_DLQU)": {
+ "key": "EU_SLQU",
+ "label": "‚",
+ }
+ "S(EU_LDQU)": {
+ "key": "EU_LSQU",
+ "label": "‘",
+ }
+ "S(EU_RDQU)": {
+ "key": "EU_RSQU",
+ "label": "’",
+ }
+ "S(EU_NDSH)": {
+ "key": "EU_MDSH",
+ "label": "—",
+ }
+ "S(EU_MUL)": {
+ "key": "EU_DIV",
+ "label": "÷",
+ }
+ "S(EU_LDAQ)": {
+ "key": "EU_LSAQ",
+ "label": "‹",
+ }
+ "S(EU_RDAQ)": {
+ "key": "EU_RSAQ",
+ "label": "›",
+ }
+ "S(ALGR(EU_BSLS))": {
+ "key": "EU_BRKP",
+ "label": "¦",
+ }
+ "S(ALGR(EU_S))": {
+ "key": "EU_SECT",
+ "label": "§",
+ }
+ "S(ALGR(EU_SCLN))": {
+ "key": "EU_MDDT",
+ "label": "·",
+ }
+ "ALGR(EU_DQUO)": {
+ "key": "EU_DIAE",
+ "label": "¨ (dead)",
+ }
+ "ALGR(EU_QUES)": {
+ "key": "EU_ELLP",
+ "label": "…",
+ }
+ }
+}
diff --git a/data/constants/keycodes/extras/keycodes_farsi_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_farsi_0.0.1.hjson
index d59b6fab26..68d209a5f3 100644
--- a/data/constants/keycodes/extras/keycodes_farsi_0.0.1.hjson
+++ b/data/constants/keycodes/extras/keycodes_farsi_0.0.1.hjson
@@ -527,7 +527,7 @@
"key": "FA_PIPE",
"label": "|",
}
- "ALGR(FA_RA)": {
+ "ALGR(FA_RE)": {
"key": "FA_SUBA",
"label": "ٖ",
}
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/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/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 8d3e3c7f0e..356dd6ba52 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"},
@@ -117,6 +120,7 @@
"MATRIX_HAS_GHOST": {"info_key": "matrix_pins.ghost", "value_type": "flag"},
"MATRIX_INPUT_PRESSED_STATE": {"info_key": "matrix_pins.input_pressed_state", "value_type": "int"},
"MATRIX_IO_DELAY": {"info_key": "matrix_pins.io_delay", "value_type": "int"},
+ "MATRIX_MASKED": {"info_key": "matrix_pins.masked", "value_type": "flag"},
// Mouse Keys
"MOUSEKEY_DELAY": {"info_key": "mousekey.delay", "value_type": "int"},
@@ -200,6 +204,8 @@
"SPLIT_WPM_ENABLE": {"info_key": "split.transport.sync.wpm", "value_type": "flag"},
// 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"},
@@ -213,7 +219,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"},
@@ -251,6 +256,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 64972af63b..d43d83c3ea 100644
--- a/data/mappings/info_rules.hjson
+++ b/data/mappings/info_rules.hjson
@@ -53,7 +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"},
+ "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"},
+ "DEFAULT_FOLDER": {"info_key": "_invalid.default_folder", "invalid": true},
"VIAL_ENABLE": {"info_key": "_invalid.vial", "invalid": true}
}
diff --git a/data/mappings/keyboard_aliases.hjson b/data/mappings/keyboard_aliases.hjson
index 72f6994c09..13c3b81305 100644
--- a/data/mappings/keyboard_aliases.hjson
+++ b/data/mappings/keyboard_aliases.hjson
@@ -140,9 +140,15 @@
"custommk/genesis": {
"target": "custommk/genesis/rev1"
},
+ "cxt_studio":{
+ "target":"cxt_studio/12e4"
+ },
"daisy": {
"target": "ktec/daisy"
},
+ "deemen17/de60": {
+ "target": "deemen17/de60/r1"
+ },
"dp3000": {
"target": "dp3000/rev1"
},
@@ -194,6 +200,9 @@
"ergodone": {
"target": "ktec/ergodone"
},
+ "ergodox_stm32": {
+ "target": "handwired/ergodox_stm32"
+ },
"ergoinu": {
"target": "dm9records/ergoinu"
},
@@ -341,6 +350,9 @@
"keycapsss/plaid_pad": {
"target": "keycapsss/plaid_pad/rev1"
},
+ "keyten/kt60hs_t": {
+ "target": "keyten/kt60hs_t/v1"
+ },
"kira75": {
"target": "kira/kira75"
},
@@ -575,6 +587,9 @@
"ploopyco/trackball": {
"target": "ploopyco/trackball/rev1_005"
},
+ "plywrks/ply8x": {
+ "target": "plywrks/ply8x/solder"
+ },
"polilla": {
"target": "polilla/rev1"
},
@@ -1027,7 +1042,7 @@
"target": "kprepublic/bm68hsrgb/rev1"
},
"late9/rev1": {
- "target": "rookiebwoy/late9/rev1"
+ "target": "ivndbt/late9/rev1"
},
"latin17rgb": {
"target": "latincompass/latin17rgb"
@@ -1192,7 +1207,7 @@
"target": "spaceholdings/nebula68b"
},
"neopad/rev1": {
- "target": "rookiebwoy/neopad/rev1"
+ "target": "ivndbt/neopad/rev1"
},
"niu_mini": {
"target": "kbdfans/niu_mini"
@@ -1515,6 +1530,9 @@
"ymd96": {
"target": "ymdk/ymd96"
},
+ "ymdk/id75": {
+ "target": "ymdk/id75/f103"
+ },
"ymdk_np21": {
"target": "ymdk/np21"
},
@@ -1552,5 +1570,742 @@
},
"dnworks/9973": {
"target": "dnworks/tkl87"
+ },
+ // DEFAULT_FOLDER removed during 2025 Q1 cycle
+ "0_sixty": {
+ "target": "0_sixty/base"
+ },
+ "0xcb/splaytoraid": {
+ "target": "0xcb/splaytoraid/rp2040_ce"
+ },
+ "1upkeyboards/pi40": {
+ "target": "1upkeyboards/pi40/mit_v1_0"
+ },
+ "1upkeyboards/pi50": {
+ "target": "1upkeyboards/pi50/grid"
+ },
+ "1upkeyboards/sweet16": {
+ "target": "1upkeyboards/sweet16/v1"
+ },
+ "25keys/aleth42": {
+ "target": "25keys/aleth42/rev1"
+ },
+ "25keys/zinc": {
+ "target": "25keys/zinc/rev1"
+ },
+ "40percentclub/i75": {
+ "target": "40percentclub/i75/promicro"
+ },
+ "40percentclub/polyandry": {
+ "target": "40percentclub/polyandry/promicro"
+ },
+ "8pack": {
+ "target": "8pack/rev12"
+ },
+ "adkb96": {
+ "target": "adkb96/rev1"
+ },
+ "adm42": {
+ "target": "adm42/rev4"
+ },
+ "aeboards/satellite": {
+ "target": "aeboards/satellite/rev1"
+ },
+ "atreus": {
+ "target": "atreus/astar"
+ },
+ "atreyu": {
+ "target": "atreyu/rev1"
+ },
+ "biacco42/ergo42": {
+ "target": "biacco42/ergo42/rev1"
+ },
+ "binepad/bn009": {
+ "target": "binepad/bn009/r2"
+ },
+ "binepad/bnr1": {
+ "target": "binepad/bnr1/v2"
+ },
+ "boston_meetup": {
+ "target": "boston_meetup/2019"
+ },
+ "bpiphany/frosty_flake": {
+ "target": "bpiphany/frosty_flake/20140521"
+ },
+ "buzzard": {
+ "target": "buzzard/rev1"
+ },
+ "cannonkeys/db60": {
+ "target": "cannonkeys/db60/rev2"
+ },
+ "clickety_split/leeloo": {
+ "target": "clickety_split/leeloo/rev3"
+ },
+ "converter/palm_usb": {
+ "target": "converter/palm_usb/stowaway"
+ },
+ "crkbd": {
+ "target": "crkbd/rev1"
+ },
+ "dailycraft/bat43": {
+ "target": "dailycraft/bat43/rev2"
+ },
+ "dailycraft/claw44": {
+ "target": "dailycraft/claw44/rev1"
+ },
+ "dailycraft/sandbox": {
+ "target": "dailycraft/sandbox/rev2"
+ },
+ "dailycraft/wings42": {
+ "target": "dailycraft/wings42/rev2"
+ },
+ "delikeeb/vanana": {
+ "target": "delikeeb/vanana/rev2"
+ },
+ "delikeeb/waaffle/rev3": {
+ "target": "delikeeb/waaffle/rev3/pro_micro"
+ },
+ "deltasplit75": {
+ "target": "deltasplit75/v2"
+ },
+ "drhigsby/ogurec": {
+ "target": "drhigsby/ogurec/left_pm"
+ },
+ "duck/octagon": {
+ "target": "duck/octagon/v2"
+ },
+ "duck/orion": {
+ "target": "duck/orion/v3"
+ },
+ "ducky/one2mini": {
+ "target": "ducky/one2mini/1861st"
+ },
+ "ducky/one2sf": {
+ "target": "ducky/one2sf/1967st"
+ },
+ "dumbpad": {
+ "target": "dumbpad/v0x"
+ },
+ "durgod/galaxy": {
+ "target": "durgod/dgk6x/galaxy"
+ },
+ "durgod/venus": {
+ "target": "durgod/dgk6x/venus"
+ },
+ "dztech/tofu/ii": {
+ "target": "dztech/tofu/ii/v1"
+ },
+ "dztech/tofu/jr": {
+ "target": "dztech/tofu/jr/v1"
+ },
+ "eco": {
+ "target": "eco/rev2"
+ },
+ "ergoslab": {
+ "target": "ergoslab/rev1"
+ },
+ "ergotravel": {
+ "target": "ergotravel/rev1"
+ },
+ "evyd13/atom47": {
+ "target": "evyd13/atom47/rev4"
+ },
+ "fortitude60": {
+ "target": "fortitude60/rev1"
+ },
+ "fruitykeeb/fruitbar/r1": {
+ "target": "fruitykeeb/fruitbar/r1/promicro"
+ },
+ "ghs/jem": {
+ "target": "ghs/jem/soldered"
+ },
+ "hadron": {
+ "target": "hadron/ver2"
+ },
+ "handwired/bento": {
+ "target": "handwired/bento/rev1"
+ },
+ "handwired/dactyl_manuform/6x6": {
+ "target": "handwired/dactyl_manuform/6x6/promicro"
+ },
+ "handwired/meck_tkl": {
+ "target": "handwired/meck_tkl/blackpill_f401"
+ },
+ "handwired/ms_sculpt_mobile": {
+ "target": "handwired/ms_sculpt_mobile/teensy2pp"
+ },
+ "handwired/onekey": {
+ "target": "handwired/onekey/promicro"
+ },
+ "handwired/pill60": {
+ "target": "handwired/pill60/bluepill"
+ },
+ "handwired/postageboard": {
+ "target": "handwired/postageboard/mini"
+ },
+ "handwired/qc60": {
+ "target": "handwired/qc60/proto"
+ },
+ "handwired/sono1": {
+ "target": "handwired/sono1/t2pp"
+ },
+ "handwired/splittest": {
+ "target": "handwired/splittest/promicro"
+ },
+ "handwired/stef9998/split_5x7": {
+ "target": "handwired/stef9998/split_5x7/rev1"
+ },
+ "handwired/symmetric70_proto/promicro": {
+ "target": "handwired/symmetric70_proto/promicro/base"
+ },
+ "handwired/symmetric70_proto/proton_c": {
+ "target": "handwired/symmetric70_proto/proton_c/base"
+ },
+ "handwired/unk": {
+ "target": "handwired/unk/rev1"
+ },
+ "handwired/xealous": {
+ "target": "handwired/xealous/rev1"
+ },
+ "hillside/46": {
+ "target": "hillside/46/0_1"
+ },
+ "hhkb/ansi": {
+ "target": "hhkb/ansi/32u4"
+ },
+ "hillside/48": {
+ "target": "hillside/48/0_1"
+ },
+ "hillside/52": {
+ "target": "hillside/52/0_1"
+ },
+ "ibnuda/squiggle": {
+ "target": "ibnuda/squiggle/rev1"
+ },
+ "idobao/id80/v1": {
+ "target": "idobao/id80/v2/ansi"
+ },
+ "idobao/id80/v3": {
+ "target": "idobao/id80/v3/ansi"
+ },
+ "inett_studio/sq80": {
+ "target": "inett_studio/sq80/hotswap_layout_i"
+ },
+ "input_club/infinity60": {
+ "target": "input_club/infinity60/led"
+ },
+ "jacky_studio/bear_65": {
+ "target": "jacky_studio/bear_65/rev1"
+ },
+ "jacky_studio/piggy60/rev1": {
+ "target": "jacky_studio/piggy60/rev1/solder"
+ },
+ "jadookb/jkb65": {
+ "target": "jadookb/jkb65/r1"
+ },
+ "jian": {
+ "target": "jian/rev2"
+ },
+ "jiran": {
+ "target": "jiran/rev1"
+ },
+ "jorne": {
+ "target": "jorne/rev1"
+ },
+ "junco": {
+ "target": "junco/rev1"
+ },
+ "kakunpc/angel17": {
+ "target": "kakunpc/angel17/rev1"
+ },
+ "kakunpc/angel64": {
+ "target": "kakunpc/angel64/rev1"
+ },
+ "kakunpc/business_card": {
+ "target": "kakunpc/business_card/beta"
+ },
+ "kakunpc/suihankey": {
+ "target": "kakunpc/suihankey/rev1"
+ },
+ "kakunpc/suihankey/split": {
+ "target": "kakunpc/suihankey/split/rev1"
+ },
+ "kapcave/paladinpad": {
+ "target": "kapcave/paladinpad/rev2"
+ },
+ "kapl": {
+ "target": "kapl/rev1"
+ },
+ "kbdfans/d45": {
+ "target": "kbdfans/d45/v2"
+ },
+ "kbdfans/kbd75": {
+ "target": "kbdfans/kbd75/rev1"
+ },
+ "keebio/bdn9": {
+ "target": "keebio/bdn9/rev1"
+ },
+ "keebio/convolution": {
+ "target": "keebio/convolution/rev1"
+ },
+ "keebio/foldkb": {
+ "target": "keebio/foldkb/rev1"
+ },
+ "keebio/kbo5000": {
+ "target": "keebio/kbo5000/rev1"
+ },
+ "keebio/levinson": {
+ "target": "keebio/levinson/rev2"
+ },
+ "keebio/quefrency": {
+ "target": "keebio/quefrency/rev1"
+ },
+ "keebio/rorschach": {
+ "target": "keebio/rorschach/rev1"
+ },
+ "keebio/sinc": {
+ "target": "keebio/sinc/rev1"
+ },
+ "keebio/viterbi": {
+ "target": "keebio/viterbi/rev2"
+ },
+ "keycapsss/kimiko": {
+ "target": "keycapsss/kimiko/rev2"
+ },
+ "keyhive/navi10": {
+ "target": "keyhive/navi10/rev3"
+ },
+ "keyhive/uno": {
+ "target": "keyhive/uno/rev1"
+ },
+ "kin80": {
+ "target": "kin80/blackpill401"
+ },
+ "kumaokobo/kudox_full": {
+ "target": "kumaokobo/kudox_full/rev1"
+ },
+ "kumaokobo/kudox_game": {
+ "target": "kumaokobo/kudox_game/rev2"
+ },
+ "kumaokobo/kudox": {
+ "target": "kumaokobo/kudox/rev3"
+ },
+ "kumaokobo/pico": {
+ "target": "kumaokobo/pico/65keys"
+ },
+ "lazydesigners/dimple": {
+ "target": "lazydesigners/dimple/staggered/rev1"
+ },
+ "lets_split": {
+ "target": "lets_split/rev2"
+ },
+ "lfkeyboards/lfk87": {
+ "target": "lfkeyboards/lfk78/revc"
+ },
+ "lily58": {
+ "target": "lily58/rev1"
+ },
+ "lime": {
+ "target": "lime/rev1"
+ },
+ "maple_computing/christmas_tree": {
+ "target": "maple_computing/christmas_tree/v2017"
+ },
+ "maple_computing/ivy": {
+ "target": "maple_computing/ivy/rev1"
+ },
+ "maple_computing/launchpad": {
+ "target": "maple_computing/launchpad/rev1"
+ },
+ "maple_computing/minidox": {
+ "target": "maple_computing/minidox/rev1"
+ },
+ "mariorion_v25": {
+ "target": "mariorion_v25/prod"
+ },
+ "marksard/rhymestone": {
+ "target": "marksard/rhymestone/rev1"
+ },
+ "marksard/treadstone32": {
+ "target": "marksard/treadstone32/rev1"
+ },
+ "marksard/treadstone48": {
+ "target": "marksard/treadstone48/rev1"
+ },
+ "maxipad": {
+ "target": "maxipad/promicro"
+ },
+ "mechkeys/mechmini": {
+ "target": "mechkeys/mechmini/v2"
+ },
+ "mechllama/g35": {
+ "target": "mechllama/g35/v2"
+ },
+ "mechlovin/adelais": {
+ "target": "mechlovin/adelais/standard_led/arm/rev2"
+ },
+ "mechlovin/adelais/standard_led/arm/rev4": {
+ "target": "mechlovin/adelais/standard_led/arm/rev4/stm32f303"
+ },
+ "mechlovin/adelais/standard_led/arm": {
+ "target": "mechlovin/adelais/standard_led/arm/rev2"
+ },
+ "mechlovin/adelais/standard_led/avr": {
+ "target": "mechlovin/adelais/standard_led/avr/rev1"
+ },
+ "mechlovin/hannah65/rev1": {
+ "target": "mechlovin/hannah65/rev1/haus"
+ },
+ "mechlovin/infinity87/rev1": {
+ "target": "mechlovin/infinity87/rev1/standard"
+ },
+ "mechlovin/infinity87": {
+ "target": "mechlovin/infinity87/rgb_rev1"
+ },
+ "mechlovin/mechlovin9": {
+ "target": "mechlovin/mechlovin9/rev1"
+ },
+ "mechlovin/olly/jf": {
+ "target": "mechlovin/olly/jf/rev1"
+ },
+ "mechlovin/zed1800": {
+ "target": "mechlovin/zed1800/saber"
+ },
+ "mechlovin/zed65/no_backlight": {
+ "target": "mechlovin/zed65/no_backlight/wearhaus66"
+ },
+ "mechlovin/zed65": {
+ "target": "mechlovin/zed65/no_backlight/wearhaus66"
+ },
+ "mechwild/bde": {
+ "target": "mechwild/bde/rev2"
+ },
+ "mechwild/mokulua": {
+ "target": "mechwild/mokulua/standard"
+ },
+ "mechwild/obe/f401": {
+ "target": "mechwild/obe/f401/base"
+ },
+ "mechwild/obe/f411": {
+ "target": "mechwild/obe/f411/base"
+ },
+ "mechwild/obe": {
+ "target": "mechwild/obe/f401/base"
+ },
+ "mechwild/waka60/f401": {
+ "target": "mechwild/waka60/f401/base"
+ },
+ "mechwild/waka60/f411": {
+ "target": "mechwild/waka60/f411/base"
+ },
+ "mechwild/waka60": {
+ "target": "mechwild/waka60/f401/base"
+ },
+ "murcielago": {
+ "target": "murcielago/rev1"
+ },
+ "nullbitsco/scramble": {
+ "target": "nullbitsco/scramble/v2"
+ },
+ "omkbd/ergodash": {
+ "target": "omkbd/ergodash/rev1"
+ },
+ "omkbd/runner3680": {
+ "target": "omkbd/runner3680/5x8"
+ },
+ "orthodox": {
+ "target": "orthodox/rev3"
+ },
+ "peej/rosaline": {
+ "target": "peej/rosaline/staggered"
+ },
+ "peej/tripel": {
+ "target": "peej/tripel/left"
+ },
+ "peranekofactory/tone": {
+ "target": "peranekofactory/tone/rev2"
+ },
+ "phase_studio/titan65": {
+ "target": "phase_studio/titan65/hotswap"
+ },
+ "pica40": {
+ "target": "pica40/rev2"
+ },
+ "pinky": {
+ "target": "pinky/3"
+ },
+ "ploopyco/madromys": {
+ "target": "ploopyco/madromys/rev1_001"
+ },
+ "ploopyco/trackball_mini": {
+ "target": "ploopyco/trackball_mini/rev1_001"
+ },
+ "ploopyco/trackball_nano": {
+ "target": "ploopyco/trackball_nano/rev1_001"
+ },
+ "ploopyco/trackball_thumb": {
+ "target": "ploopyco/trackball_thumb/rev1_001"
+ },
+ "primekb/meridian": {
+ "target": "primekb/meridian/ktr1010"
+ },
+ "primekb/prime_e": {
+ "target": "primekb/prime_e/std"
+ },
+ "program_yoink": {
+ "target": "program_yoink/staggered"
+ },
+ "projectcain/vault35": {
+ "target": "projectcain/vault35/atmega32u4"
+ },
+ "qpockets/space_space": {
+ "target": "qpockets/space_space/rev2"
+ },
+ "qwertyydox": {
+ "target": "qwertyydox/rev1"
+ },
+ "rate/pistachio": {
+ "target": "rate/pistachio/rev2"
+ },
+ "recompile_keys/choco60": {
+ "target": "recompile_keys/choco60/rev1"
+ },
+ "recompile_keys/nomu30": {
+ "target": "recompile_keys/nomu30/rev1"
+ },
+ "redox/rev1": {
+ "target": "redox/rev1/base"
+ },
+ "rgbkb/mun": {
+ "target": "rgbkb/mun/rev1"
+ },
+ "rgbkb/sol3": {
+ "target": "rgbkb/sol3/rev1"
+ },
+ "rgbkb/sol": {
+ "target": "rgbkb/sol/rev2"
+ },
+ "rgbkb/zen": {
+ "target": "rgbkb/zen/rev2"
+ },
+ "rgbkb/zygomorph": {
+ "target": "rgbkb/zygomorph/rev1"
+ },
+ "rmi_kb/herringbone": {
+ "target": "rmi_kb/herringbone/v1"
+ },
+ "rmi_kb/mona": {
+ "target": "rmi_kb/mona/v1_1"
+ },
+ "rmi_kb/tkl_ff": {
+ "target": "rmi_kb/tkl_ff/v1"
+ },
+ "rmi_kb/wete": {
+ "target": "rmi_kb/wete/v2"
+ },
+ "rookiebwoy/late9": {
+ "target": "ivndbt/late9/rev1"
+ },
+ "rookiebwoy/neopad": {
+ "target": "ivndbt/neopad/rev1"
+ },
+ "ivndbt/late9": {
+ "target": "ivndbt/late9/rev1"
+ },
+ "ivndbt/neopad": {
+ "target": "ivndbt/neopad/rev1"
+ },
+ "rura66": {
+ "target": "rura66/rev1"
+ },
+ "salicylic_acid3/7skb": {
+ "target": "salicylic_acid3/7skb/rev1"
+ },
+ "salicylic_acid3/getta25": {
+ "target": "salicylic_acid3/getta25/rev1"
+ },
+ "salicylic_acid3/jisplit89": {
+ "target": "salicylic_acid3/jisplit89/rev1"
+ },
+ "salicylic_acid3/naked48": {
+ "target": "salicylic_acid3/naked48/rev1"
+ },
+ "salicylic_acid3/naked60": {
+ "target": "salicylic_acid3/naked60/rev1"
+ },
+ "salicylic_acid3/naked64": {
+ "target": "salicylic_acid3/naked64/rev1"
+ },
+ "salicylic_acid3/setta21": {
+ "target": "salicylic_acid3/setta21/rev1"
+ },
+ "sawnsprojects/okayu": {
+ "target": "sawnsprojects/okayu/stm32f072"
+ },
+ "smoll/lefty": {
+ "target": "smoll/lefty/rev2"
+ },
+ "sofle": {
+ "target": "sofle/rev1"
+ },
+ "spaceholdings/nebula68b": {
+ "target": "spaceholdings/nebula68b/solder"
+ },
+ "spacetime": {
+ "target": "spacetime/rev1"
+ },
+ "splitkb/aurora/corne": {
+ "target": "splitkb/aurora/corne/rev1"
+ },
+ "splitkb/aurora/helix": {
+ "target": "splitkb/aurora/helix/rev1"
+ },
+ "splitkb/aurora/lily58": {
+ "target": "splitkb/aurora/lily58/rev1"
+ },
+ "splitkb/aurora/sofle_v2": {
+ "target": "splitkb/aurora/sofle_v2/rev1"
+ },
+ "splitkb/aurora/sweep": {
+ "target": "splitkb/aurora/sweep/rev1"
+ },
+ "splitkb/kyria": {
+ "target": "splitkb/kyria/rev3"
+ },
+ "splitkb/kyria/rev1": {
+ "target": "splitkb/kyria/rev1/base"
+ },
+ "splitkb/kyria/rev2": {
+ "target": "splitkb/kyria/rev2/base"
+ },
+ "splitty": {
+ "target": "splitty/rev1"
+ },
+ "studiokestra/galatea": {
+ "target": "studiokestra/galatea/rev1"
+ },
+ "takashiski/hecomi": {
+ "target": "takashiski/hecomi/alpha"
+ },
+ "takashiski/namecard2x4": {
+ "target": "takashiski/namecard2x4/rev2"
+ },
+ "teleport/native": {
+ "target": "teleport/native/iso"
+ },
+ "themadnoodle/noodlepad": {
+ "target": "themadnoodle/noodlepad/v1"
+ },
+ "tkw/grandiceps": {
+ "target": "tkw/grandiceps/rev1"
+ },
+ "tominabox1/le_chiffre": {
+ "target": "tominabox1/le_chiffre/rev1"
+ },
+ "tominabox1/littlefoot_lx": {
+ "target": "tominabox1/littlefoot_lx/rev1"
+ },
+ "tominabox1/underscore33": {
+ "target": "tominabox1/underscore33/rev1"
+ },
+ "trnthsn/e8ghty": {
+ "target": "trnthsn/e8ghty/stm32f103"
+ },
+ "trnthsn/s6xty5neor2": {
+ "target": "trnthsn/s6xty5neor2/stm32f103"
+ },
+ "tweetydabird/lotus58": {
+ "target": "tweetydabird/lotus58/promicro"
+ },
+ "unison": {
+ "target": "unison/v04"
+ },
+ "uzu42": {
+ "target": "uzu42/rev1"
+ },
+ "vitamins_included": {
+ "target": "vitamins_included/rev2"
+ },
+ "westm/westm68": {
+ "target": "westm/westm68/rev2"
+ },
+ "westm/westm9": {
+ "target": "westm/westm9/rev2"
+ },
+ "woodkeys/meira": {
+ "target": "woodkeys/meira/promicro"
+ },
+ "work_louder/loop": {
+ "target": "work_louder/loop/rev3"
+ },
+ "work_louder/work_board": {
+ "target": "work_louder/work_board/rev3"
+ },
+ "yanghu/unicorne": {
+ "target": "yanghu/unicorne/f411"
+ },
+ "yosino58": {
+ "target": "yosino58/rev1"
+ },
+ "ymdk/yd60mq": {
+ "target": "ymdk/yd60mq/12led"
+ },
+ "yushakobo/navpad/10": {
+ "target": "yushakobo/navpad/10/rev1"
+ },
+ "yynmt/acperience12": {
+ "target": "yynmt/acperience12/rev1"
+ },
+ "zsa/planck_ez": {
+ "target": "zsa/planck_ez/base"
+ },
+ // DEFAULT_FOLDER removed during 2025 Q3 cycle
+ "cannonkeys/satisfaction75": {
+ "target": "cannonkeys/satisfaction75/rev1"
+ },
+ "converter/adb_usb": {
+ "target": "converter/adb_usb/rev1"
+ },
+ "converter/sun_usb": {
+ "target": "converter/sun_usb/type5"
+ },
+ "converter/usb_usb": {
+ "target": "converter/usb_usb/hasu"
+ },
+ "durgod/dgk6x": {
+ "target": "durgod/dgk6x/hades_ansi"
+ },
+ "ergodox_ez": {
+ "target": "ergodox_ez/base"
+ },
+ "ferris/0_2": {
+ "target": "ferris/0_2/base"
+ },
+ "handwired/dygma/raise": {
+ "target": "handwired/dygma/raise/ansi"
+ },
+ "helix/pico": {
+ "target": "helix/pico/base"
+ },
+ "helix": {
+ "target": "helix/rev2/base"
+ },
+ "helix/rev2": {
+ "target": "helix/rev2/base"
+ },
+ "ibm/model_m/mschwingen": {
+ "target": "ibm/model_m/mschwingen/led_wired"
+ },
+ "mechwild/sugarglider": {
+ "target": "mechwild/sugarglider/wide_oled/f401"
+ },
+ "mechwild/sugarglider/wide_oled": {
+ "target": "mechwild/sugarglider/wide_oled/f401"
+ },
+ "novelkeys/nk65": {
+ "target": "novelkeys/nk65/base"
+ },
+ "sirius/uni660/rev2": {
+ "target": "sirius/uni660/rev2/ansi"
}
}
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
new file mode 100644
index 0000000000..92981ceb5c
--- /dev/null
+++ b/data/schemas/community_module.jsonschema
@@ -0,0 +1,18 @@
+{
+ "$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": "./definitions.jsonschema#/text_identifier"},
+ "maintainer": {"$ref": "./definitions.jsonschema#/text_identifier"},
+ "license": {"type": "string"},
+ "url": {
+ "type": "string",
+ "format": "uri"
+ },
+ "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 ec87680fa0..13ceec5afa 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,17 +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": "./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"
@@ -79,6 +84,7 @@
"STM32F407",
"STM32F411",
"STM32F446",
+ "STM32G0B1",
"STM32G431",
"STM32G474",
"STM32H723",
@@ -113,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,
@@ -139,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"}
@@ -165,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"}
}
},
@@ -263,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,
@@ -271,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",
@@ -314,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"}
}
}
}
@@ -328,20 +334,16 @@
"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": {
- "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": {
@@ -349,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"}
}
},
{
@@ -374,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,
@@ -402,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]*$"
@@ -416,13 +418,17 @@
"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", "*"]
+ }
}
}
}
@@ -438,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": {
@@ -453,32 +471,39 @@
"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"},
+ "masked": {"type": "boolean"},
"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": {
+ "type": "array",
+ "items": {
+ "type": "string"
}
},
"mouse_key": {
"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": {
@@ -486,7 +511,7 @@
"properties": {
"animations": {
"type": "object",
- "propertyNames": {"$ref": "qmk.definitions.v1#/snake_case"},
+ "propertyNames": {"$ref": "./definitions.jsonschema#/snake_case"},
"additionalProperties": {"type": "boolean"}
},
"default": {
@@ -495,8 +520,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": {
@@ -522,27 +547,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",
@@ -553,9 +579,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"}
}
}
}
@@ -566,7 +592,7 @@
"properties": {
"animations": {
"type": "object",
- "propertyNames": {"$ref": "qmk.definitions.v1#/snake_case"},
+ "propertyNames": {"$ref": "./definitions.jsonschema#/snake_case"},
"additionalProperties": {"type": "boolean"}
},
"default": {
@@ -575,10 +601,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": {
@@ -606,29 +632,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",
@@ -639,9 +666,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"}
}
}
}
@@ -653,27 +680,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,
@@ -688,29 +715,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"}
}
}
},
@@ -719,8 +746,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,
@@ -754,8 +781,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"]
@@ -792,11 +819,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"}
}
}
}
@@ -823,16 +850,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": {
@@ -848,7 +875,7 @@
"type": "string",
"enum": ["bitbang", "usart", "vendor"]
},
- "pin": {"$ref": "qmk.definitions.v1#/mcu_pin"}
+ "pin": {"$ref": "./definitions.jsonschema#/mcu_pin"}
}
},
"transport": {
@@ -876,7 +903,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"
@@ -892,8 +919,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": {
@@ -903,7 +930,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"
}
}
@@ -915,6 +942,7 @@
"tapping": {
"type": "object",
"properties": {
+ "chordal_hold": {"type": "boolean"},
"force_hold": {"type": "boolean"},
"force_hold_per_key": {"type": "boolean"},
"ignore_mod_tap_interrupt": {"type": "boolean"},
@@ -924,9 +952,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": {
@@ -934,16 +962,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,
@@ -952,7 +984,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"}
}
},
@@ -960,9 +992,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,
@@ -977,10 +1009,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": {
@@ -991,10 +1023,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 e967e45c53..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,10 +67,16 @@
}
}
},
- "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"
+ },
+ "modules": {
+ "type": "array",
+ "items": {
+ "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