Skip to content

Commit 9f2cd91

Browse files
authored
Reallocate user/kb keycode ranges (#19907)
1 parent 961f0b7 commit 9f2cd91

File tree

5 files changed

+82
-69
lines changed

5 files changed

+82
-69
lines changed

data/constants/keycodes/keycodes_0.0.2.hjson

+9
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,14 @@
11
{
22
"ranges": {
3+
"0x7E00/0x00FF": "!delete!",
4+
"0x7F00/0x00FF": "!delete!",
5+
6+
"0x7E00/0x003F": {
7+
"define": "QK_KB"
8+
},
9+
"0x7E40/0x01BF": {
10+
"define": "QK_USER"
11+
},
312
"0x8000/0X3FFF": {
413
"define": "QK_UNICODEMAP"
514
},

data/constants/keycodes/keycodes_0.0.2_user.hjson

+32-32
Original file line numberDiff line numberDiff line change
@@ -1,130 +1,130 @@
11
{
22
"keycodes": {
3-
"0x7F00": {
3+
"0x7E40": {
44
"group": "user",
55
"key": "QK_USER_0",
66
},
7-
"0x7F01": {
7+
"0x7E41": {
88
"group": "user",
99
"key": "QK_USER_1",
1010
},
11-
"0x7F02": {
11+
"0x7E42": {
1212
"group": "user",
1313
"key": "QK_USER_2",
1414
},
15-
"0x7F03": {
15+
"0x7E43": {
1616
"group": "user",
1717
"key": "QK_USER_3",
1818
},
19-
"0x7F04": {
19+
"0x7E44": {
2020
"group": "user",
2121
"key": "QK_USER_4",
2222
},
23-
"0x7F05": {
23+
"0x7E45": {
2424
"group": "user",
2525
"key": "QK_USER_5",
2626
},
27-
"0x7F06": {
27+
"0x7E46": {
2828
"group": "user",
2929
"key": "QK_USER_6",
3030
},
31-
"0x7F07": {
31+
"0x7E47": {
3232
"group": "user",
3333
"key": "QK_USER_7",
3434
},
35-
"0x7F08": {
35+
"0x7E48": {
3636
"group": "user",
3737
"key": "QK_USER_8",
3838
},
39-
"0x7F09": {
39+
"0x7E49": {
4040
"group": "user",
4141
"key": "QK_USER_9",
4242
},
43-
"0x7F0A": {
43+
"0x7E4A": {
4444
"group": "user",
4545
"key": "QK_USER_10",
4646
},
47-
"0x7F0B": {
47+
"0x7E4B": {
4848
"group": "user",
4949
"key": "QK_USER_11",
5050
},
51-
"0x7F0C": {
51+
"0x7E4C": {
5252
"group": "user",
5353
"key": "QK_USER_12",
5454
},
55-
"0x7F0D": {
55+
"0x7E4D": {
5656
"group": "user",
5757
"key": "QK_USER_13",
5858
},
59-
"0x7F0E": {
59+
"0x7E4E": {
6060
"group": "user",
6161
"key": "QK_USER_14",
6262
},
63-
"0x7F0F": {
63+
"0x7E4F": {
6464
"group": "user",
6565
"key": "QK_USER_15",
6666
},
67-
"0x7F10": {
67+
"0x7E50": {
6868
"group": "user",
6969
"key": "QK_USER_16",
7070
},
71-
"0x7F11": {
71+
"0x7E51": {
7272
"group": "user",
7373
"key": "QK_USER_17",
7474
},
75-
"0x7F12": {
75+
"0x7E52": {
7676
"group": "user",
7777
"key": "QK_USER_18",
7878
},
79-
"0x7F13": {
79+
"0x7E53": {
8080
"group": "user",
8181
"key": "QK_USER_19",
8282
},
83-
"0x7F14": {
83+
"0x7E54": {
8484
"group": "user",
8585
"key": "QK_USER_20",
8686
},
87-
"0x7F15": {
87+
"0x7E55": {
8888
"group": "user",
8989
"key": "QK_USER_21",
9090
},
91-
"0x7F16": {
91+
"0x7E56": {
9292
"group": "user",
9393
"key": "QK_USER_22",
9494
},
95-
"0x7F17": {
95+
"0x7E57": {
9696
"group": "user",
9797
"key": "QK_USER_23",
9898
},
99-
"0x7F18": {
99+
"0x7E58": {
100100
"group": "user",
101101
"key": "QK_USER_24",
102102
},
103-
"0x7F19": {
103+
"0x7E59": {
104104
"group": "user",
105105
"key": "QK_USER_25",
106106
},
107-
"0x7F1A": {
107+
"0x7E5A": {
108108
"group": "user",
109109
"key": "QK_USER_26",
110110
},
111-
"0x7F1B": {
111+
"0x7E5B": {
112112
"group": "user",
113113
"key": "QK_USER_27",
114114
},
115-
"0x7F1C": {
115+
"0x7E5C": {
116116
"group": "user",
117117
"key": "QK_USER_28",
118118
},
119-
"0x7F1D": {
119+
"0x7E5D": {
120120
"group": "user",
121121
"key": "QK_USER_29",
122122
},
123-
"0x7F1E": {
123+
"0x7E5E": {
124124
"group": "user",
125125
"key": "QK_USER_30",
126126
},
127-
"0x7F1F": {
127+
"0x7E5F": {
128128
"group": "user",
129129
"key": "QK_USER_31",
130130
},

lib/python/qmk/json_schema.py

+3
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,7 @@ def deep_update(origdict, newdict):
107107
def merge_ordered_dicts(dicts):
108108
"""Merges nested OrderedDict objects resulting from reading a hjson file.
109109
Later input dicts overrides earlier dicts for plain values.
110+
If any value is "!delete!", the existing value will be removed from its parent.
110111
Arrays will be appended. If the first entry of an array is "!reset!", the contents of the array will be cleared and replaced with RHS.
111112
Dictionaries will be recursively merged. If any entry is "!reset!", the contents of the dictionary will be cleared and replaced with RHS.
112113
"""
@@ -125,6 +126,8 @@ def add_entry(target, k, v):
125126
target[k] = v[1:]
126127
else:
127128
target[k] = target[k] + v
129+
elif v == "!delete!" and isinstance(target, (OrderedDict, dict)):
130+
del target[k]
128131
else:
129132
target[k] = v
130133

lib/python/qmk/keycodes.py

+1
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,7 @@ def load_spec(version, lang=None):
9090

9191
# Sort?
9292
spec['keycodes'] = dict(sorted(spec.get('keycodes', {}).items()))
93+
spec['ranges'] = dict(sorted(spec.get('ranges', {}).items()))
9394

9495
# Validate?
9596
_validate(spec)

quantum/keycodes.h

+37-37
Original file line numberDiff line numberDiff line change
@@ -77,13 +77,13 @@ enum qk_keycode_ranges {
7777
QK_QUANTUM = 0x7C00,
7878
QK_QUANTUM_MAX = 0x7DFF,
7979
QK_KB = 0x7E00,
80-
QK_KB_MAX = 0x7EFF,
81-
QK_USER = 0x7F00,
80+
QK_KB_MAX = 0x7E3F,
81+
QK_USER = 0x7E40,
8282
QK_USER_MAX = 0x7FFF,
83-
QK_UNICODE = 0x8000,
84-
QK_UNICODE_MAX = 0xFFFF,
8583
QK_UNICODEMAP = 0x8000,
8684
QK_UNICODEMAP_MAX = 0xBFFF,
85+
QK_UNICODE = 0x8000,
86+
QK_UNICODE_MAX = 0xFFFF,
8787
QK_UNICODEMAP_PAIR = 0xC000,
8888
QK_UNICODEMAP_PAIR_MAX = 0xFFFF,
8989
};
@@ -753,38 +753,38 @@ enum qk_keycode_defines {
753753
QK_KB_29 = 0x7E1D,
754754
QK_KB_30 = 0x7E1E,
755755
QK_KB_31 = 0x7E1F,
756-
QK_USER_0 = 0x7F00,
757-
QK_USER_1 = 0x7F01,
758-
QK_USER_2 = 0x7F02,
759-
QK_USER_3 = 0x7F03,
760-
QK_USER_4 = 0x7F04,
761-
QK_USER_5 = 0x7F05,
762-
QK_USER_6 = 0x7F06,
763-
QK_USER_7 = 0x7F07,
764-
QK_USER_8 = 0x7F08,
765-
QK_USER_9 = 0x7F09,
766-
QK_USER_10 = 0x7F0A,
767-
QK_USER_11 = 0x7F0B,
768-
QK_USER_12 = 0x7F0C,
769-
QK_USER_13 = 0x7F0D,
770-
QK_USER_14 = 0x7F0E,
771-
QK_USER_15 = 0x7F0F,
772-
QK_USER_16 = 0x7F10,
773-
QK_USER_17 = 0x7F11,
774-
QK_USER_18 = 0x7F12,
775-
QK_USER_19 = 0x7F13,
776-
QK_USER_20 = 0x7F14,
777-
QK_USER_21 = 0x7F15,
778-
QK_USER_22 = 0x7F16,
779-
QK_USER_23 = 0x7F17,
780-
QK_USER_24 = 0x7F18,
781-
QK_USER_25 = 0x7F19,
782-
QK_USER_26 = 0x7F1A,
783-
QK_USER_27 = 0x7F1B,
784-
QK_USER_28 = 0x7F1C,
785-
QK_USER_29 = 0x7F1D,
786-
QK_USER_30 = 0x7F1E,
787-
QK_USER_31 = 0x7F1F,
756+
QK_USER_0 = 0x7E40,
757+
QK_USER_1 = 0x7E41,
758+
QK_USER_2 = 0x7E42,
759+
QK_USER_3 = 0x7E43,
760+
QK_USER_4 = 0x7E44,
761+
QK_USER_5 = 0x7E45,
762+
QK_USER_6 = 0x7E46,
763+
QK_USER_7 = 0x7E47,
764+
QK_USER_8 = 0x7E48,
765+
QK_USER_9 = 0x7E49,
766+
QK_USER_10 = 0x7E4A,
767+
QK_USER_11 = 0x7E4B,
768+
QK_USER_12 = 0x7E4C,
769+
QK_USER_13 = 0x7E4D,
770+
QK_USER_14 = 0x7E4E,
771+
QK_USER_15 = 0x7E4F,
772+
QK_USER_16 = 0x7E50,
773+
QK_USER_17 = 0x7E51,
774+
QK_USER_18 = 0x7E52,
775+
QK_USER_19 = 0x7E53,
776+
QK_USER_20 = 0x7E54,
777+
QK_USER_21 = 0x7E55,
778+
QK_USER_22 = 0x7E56,
779+
QK_USER_23 = 0x7E57,
780+
QK_USER_24 = 0x7E58,
781+
QK_USER_25 = 0x7E59,
782+
QK_USER_26 = 0x7E5A,
783+
QK_USER_27 = 0x7E5B,
784+
QK_USER_28 = 0x7E5C,
785+
QK_USER_29 = 0x7E5D,
786+
QK_USER_30 = 0x7E5E,
787+
QK_USER_31 = 0x7E5F,
788788

789789
// Alias
790790
XXXXXXX = KC_NO,
@@ -1391,8 +1391,8 @@ enum qk_keycode_defines {
13911391
#define IS_QK_QUANTUM(code) ((code) >= QK_QUANTUM && (code) <= QK_QUANTUM_MAX)
13921392
#define IS_QK_KB(code) ((code) >= QK_KB && (code) <= QK_KB_MAX)
13931393
#define IS_QK_USER(code) ((code) >= QK_USER && (code) <= QK_USER_MAX)
1394-
#define IS_QK_UNICODE(code) ((code) >= QK_UNICODE && (code) <= QK_UNICODE_MAX)
13951394
#define IS_QK_UNICODEMAP(code) ((code) >= QK_UNICODEMAP && (code) <= QK_UNICODEMAP_MAX)
1395+
#define IS_QK_UNICODE(code) ((code) >= QK_UNICODE && (code) <= QK_UNICODE_MAX)
13961396
#define IS_QK_UNICODEMAP_PAIR(code) ((code) >= QK_UNICODEMAP_PAIR && (code) <= QK_UNICODEMAP_PAIR_MAX)
13971397

13981398
// Group Helpers

0 commit comments

Comments
 (0)