aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--keyboards/7c8/framework/keymaps/via/rules.mk3
-rw-r--r--keyboards/latin47ble/config.h2
-rw-r--r--keyboards/latin64ble/config.h1
-rw-r--r--keyboards/latinpadble/config.h2
-rw-r--r--keyboards/spaceman/pancake/feather/config.h4
-rw-r--r--keyboards/tokyokeyboard/alix40/config.h2
-rw-r--r--keyboards/ymd75/keymaps/via/rules.mk3
-rw-r--r--quantum/quantum_keycodes.h4
-rw-r--r--quantum/via.c1
-rw-r--r--quantum/via_ensure_keycode.h366
-rw-r--r--tmk_core/common/keycode.h10
11 files changed, 395 insertions, 3 deletions
diff --git a/keyboards/7c8/framework/keymaps/via/rules.mk b/keyboards/7c8/framework/keymaps/via/rules.mk
index 036bd6d1c..990528315 100644
--- a/keyboards/7c8/framework/keymaps/via/rules.mk
+++ b/keyboards/7c8/framework/keymaps/via/rules.mk
@@ -1 +1,2 @@
1VIA_ENABLE = yes \ No newline at end of file 1VIA_ENABLE = yes
2LEADER_ENABLE = no
diff --git a/keyboards/latin47ble/config.h b/keyboards/latin47ble/config.h
index 716ab52f5..f9f94d0db 100644
--- a/keyboards/latin47ble/config.h
+++ b/keyboards/latin47ble/config.h
@@ -121,3 +121,5 @@
121//#define NO_ACTION_ONESHOT 121//#define NO_ACTION_ONESHOT
122//#define NO_ACTION_MACRO 122//#define NO_ACTION_MACRO
123//#define NO_ACTION_FUNCTION 123//#define NO_ACTION_FUNCTION
124
125#define VIA_HAS_BROKEN_KEYCODES
diff --git a/keyboards/latin64ble/config.h b/keyboards/latin64ble/config.h
index ddae1e149..68e8e7b29 100644
--- a/keyboards/latin64ble/config.h
+++ b/keyboards/latin64ble/config.h
@@ -47,5 +47,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.*/
47#define RGBLIGHT_ANIMATIONS // Run RGB animations 47#define RGBLIGHT_ANIMATIONS // Run RGB animations
48 48
49 49
50#define VIA_HAS_BROKEN_KEYCODES
50 51
51 52
diff --git a/keyboards/latinpadble/config.h b/keyboards/latinpadble/config.h
index 9c055d9b7..5381bf91c 100644
--- a/keyboards/latinpadble/config.h
+++ b/keyboards/latinpadble/config.h
@@ -99,3 +99,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.*/
99#define ENCODERS_PAD_B { F7 } 99#define ENCODERS_PAD_B { F7 }
100 100
101#define ENCODER_RESOLUTION 4 101#define ENCODER_RESOLUTION 4
102
103#define VIA_HAS_BROKEN_KEYCODES
diff --git a/keyboards/spaceman/pancake/feather/config.h b/keyboards/spaceman/pancake/feather/config.h
index eac91a5ad..e72b25f3d 100644
--- a/keyboards/spaceman/pancake/feather/config.h
+++ b/keyboards/spaceman/pancake/feather/config.h
@@ -23,4 +23,6 @@
23 23
24#define AdafruitBleResetPin D4 24#define AdafruitBleResetPin D4
25#define AdafruitBleCSPin B4 25#define AdafruitBleCSPin B4
26#define AdafruitBleIRQPin E6 \ No newline at end of file 26#define AdafruitBleIRQPin E6
27
28#define VIA_HAS_BROKEN_KEYCODES
diff --git a/keyboards/tokyokeyboard/alix40/config.h b/keyboards/tokyokeyboard/alix40/config.h
index ec6f98d54..113412e95 100644
--- a/keyboards/tokyokeyboard/alix40/config.h
+++ b/keyboards/tokyokeyboard/alix40/config.h
@@ -69,3 +69,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
69#define AdafruitBleCSPin B4 69#define AdafruitBleCSPin B4
70#define AdafruitBleIRQPin E6 70#define AdafruitBleIRQPin E6
71#define BATTERY_LEVEL_PIN B6 71#define BATTERY_LEVEL_PIN B6
72
73#define VIA_HAS_BROKEN_KEYCODES
diff --git a/keyboards/ymd75/keymaps/via/rules.mk b/keyboards/ymd75/keymaps/via/rules.mk
index 43061db1d..152460f30 100644
--- a/keyboards/ymd75/keymaps/via/rules.mk
+++ b/keyboards/ymd75/keymaps/via/rules.mk
@@ -1,2 +1,3 @@
1VIA_ENABLE = yes 1VIA_ENABLE = yes
2LTO_ENABLE = yes \ No newline at end of file 2LTO_ENABLE = yes
3KEY_LOCK_ENABLE = no
diff --git a/quantum/quantum_keycodes.h b/quantum/quantum_keycodes.h
index 1863a7943..9f1591458 100644
--- a/quantum/quantum_keycodes.h
+++ b/quantum/quantum_keycodes.h
@@ -332,7 +332,11 @@ enum quantum_keycodes {
332 332
333 MIDI_VELOCITY_MIN, 333 MIDI_VELOCITY_MIN,
334 MI_VEL_0 = MIDI_VELOCITY_MIN, 334 MI_VEL_0 = MIDI_VELOCITY_MIN,
335#ifdef VIA_ENABLE
336 MI_VEL_1 = MIDI_VELOCITY_MIN,
337#else
335 MI_VEL_1, 338 MI_VEL_1,
339#endif
336 MI_VEL_2, 340 MI_VEL_2,
337 MI_VEL_3, 341 MI_VEL_3,
338 MI_VEL_4, 342 MI_VEL_4,
diff --git a/quantum/via.c b/quantum/via.c
index 62a16624f..c89b663b9 100644
--- a/quantum/via.c
+++ b/quantum/via.c
@@ -46,6 +46,7 @@
46#include "dynamic_keymap.h" 46#include "dynamic_keymap.h"
47#include "tmk_core/common/eeprom.h" 47#include "tmk_core/common/eeprom.h"
48#include "version.h" // for QMK_BUILDDATE used in EEPROM magic 48#include "version.h" // for QMK_BUILDDATE used in EEPROM magic
49#include "via_ensure_keycode.h"
49 50
50// Forward declare some helpers. 51// Forward declare some helpers.
51#if defined(VIA_QMK_BACKLIGHT_ENABLE) 52#if defined(VIA_QMK_BACKLIGHT_ENABLE)
diff --git a/quantum/via_ensure_keycode.h b/quantum/via_ensure_keycode.h
new file mode 100644
index 000000000..a9c1b8ba5
--- /dev/null
+++ b/quantum/via_ensure_keycode.h
@@ -0,0 +1,366 @@
1#pragma once
2
3#include "quantum.h"
4#include "via.h"
5
6#ifndef VIA_HAS_BROKEN_KEYCODES
7
8_Static_assert(KC_NO == 0, "");
9_Static_assert(KC_TRNS == 1, "");
10
11_Static_assert(KC_A == 0x04, "");
12_Static_assert(KC_B == 0x05, "");
13_Static_assert(KC_C == 0x06, "");
14_Static_assert(KC_D == 0x07, "");
15_Static_assert(KC_E == 0x08, "");
16_Static_assert(KC_F == 0x09, "");
17_Static_assert(KC_G == 0x0A, "");
18_Static_assert(KC_H == 0x0B, "");
19_Static_assert(KC_I == 0x0C, "");
20_Static_assert(KC_J == 0x0D, "");
21_Static_assert(KC_K == 0x0E, "");
22_Static_assert(KC_L == 0x0F, "");
23_Static_assert(KC_M == 0x10, "");
24_Static_assert(KC_N == 0x11, "");
25_Static_assert(KC_O == 0x12, "");
26_Static_assert(KC_P == 0x13, "");
27_Static_assert(KC_Q == 0x14, "");
28_Static_assert(KC_R == 0x15, "");
29_Static_assert(KC_S == 0x16, "");
30_Static_assert(KC_T == 0x17, "");
31_Static_assert(KC_U == 0x18, "");
32_Static_assert(KC_V == 0x19, "");
33_Static_assert(KC_W == 0x1A, "");
34_Static_assert(KC_X == 0x1B, "");
35_Static_assert(KC_Y == 0x1C, "");
36_Static_assert(KC_Z == 0x1D, "");
37_Static_assert(KC_1 == 0x1E, "");
38_Static_assert(KC_2 == 0x1F, "");
39_Static_assert(KC_3 == 0x20, "");
40_Static_assert(KC_4 == 0x21, "");
41_Static_assert(KC_5 == 0x22, "");
42_Static_assert(KC_6 == 0x23, "");
43_Static_assert(KC_7 == 0x24, "");
44_Static_assert(KC_8 == 0x25, "");
45_Static_assert(KC_9 == 0x26, "");
46_Static_assert(KC_0 == 0x27, "");
47_Static_assert(KC_ENTER == 0x28, "");
48_Static_assert(KC_ESCAPE == 0x29, "");
49_Static_assert(KC_BSPACE == 0x2A, "");
50_Static_assert(KC_TAB == 0x2B, "");
51_Static_assert(KC_SPACE == 0x2C, "");
52_Static_assert(KC_MINUS == 0x2D, "");
53_Static_assert(KC_EQUAL == 0x2E, "");
54_Static_assert(KC_LBRACKET == 0x2F, "");
55_Static_assert(KC_RBRACKET == 0x30, "");
56_Static_assert(KC_BSLASH == 0x31, "");
57_Static_assert(KC_SCOLON == 0x33, "");
58_Static_assert(KC_QUOTE == 0x34, "");
59_Static_assert(KC_GRAVE == 0x35, "");
60_Static_assert(KC_COMMA == 0x36, "");
61_Static_assert(KC_DOT == 0x37, "");
62_Static_assert(KC_SLASH == 0x38, "");
63_Static_assert(KC_CAPSLOCK == 0x39, "");
64_Static_assert(KC_F1 == 0x3A, "");
65_Static_assert(KC_F2 == 0x3B, "");
66_Static_assert(KC_F3 == 0x3C, "");
67_Static_assert(KC_F4 == 0x3D, "");
68_Static_assert(KC_F5 == 0x3E, "");
69_Static_assert(KC_F6 == 0x3F, "");
70_Static_assert(KC_F7 == 0x40, "");
71_Static_assert(KC_F8 == 0x41, "");
72_Static_assert(KC_F9 == 0x42, "");
73_Static_assert(KC_F10 == 0x43, "");
74_Static_assert(KC_F11 == 0x44, "");
75_Static_assert(KC_F12 == 0x45, "");
76_Static_assert(KC_PSCREEN == 0x46, "");
77_Static_assert(KC_SCROLLLOCK == 0x47, "");
78_Static_assert(KC_PAUSE == 0x48, "");
79_Static_assert(KC_INSERT == 0x49, "");
80_Static_assert(KC_HOME == 0x4A, "");
81_Static_assert(KC_PGUP == 0x4B, "");
82_Static_assert(KC_DELETE == 0x4C, "");
83_Static_assert(KC_END == 0x4D, "");
84_Static_assert(KC_PGDOWN == 0x4E, "");
85_Static_assert(KC_RIGHT == 0x4F, "");
86_Static_assert(KC_LEFT == 0x50, "");
87_Static_assert(KC_DOWN == 0x51, "");
88_Static_assert(KC_UP == 0x52, "");
89_Static_assert(KC_NUMLOCK == 0x53, "");
90_Static_assert(KC_KP_SLASH == 0x54, "");
91_Static_assert(KC_KP_ASTERISK == 0x55, "");
92_Static_assert(KC_KP_MINUS == 0x56, "");
93_Static_assert(KC_KP_PLUS == 0x57, "");
94_Static_assert(KC_KP_ENTER == 0x58, "");
95_Static_assert(KC_KP_1 == 0x59, "");
96_Static_assert(KC_KP_2 == 0x5A, "");
97_Static_assert(KC_KP_3 == 0x5B, "");
98_Static_assert(KC_KP_4 == 0x5C, "");
99_Static_assert(KC_KP_5 == 0x5D, "");
100_Static_assert(KC_KP_6 == 0x5E, "");
101_Static_assert(KC_KP_7 == 0x5F, "");
102_Static_assert(KC_KP_8 == 0x60, "");
103_Static_assert(KC_KP_9 == 0x61, "");
104_Static_assert(KC_KP_0 == 0x62, "");
105_Static_assert(KC_KP_DOT == 0x63, "");
106_Static_assert(KC_APPLICATION == 0x65, "");
107_Static_assert(KC_KP_EQUAL == 0x67, "");
108_Static_assert(KC_KP_COMMA == 0x85, "");
109_Static_assert(KC_LCTRL == 0xE0, "");
110_Static_assert(KC_LSHIFT == 0xE1, "");
111_Static_assert(KC_LALT == 0xE2, "");
112_Static_assert(KC_LGUI == 0xE3, "");
113_Static_assert(KC_RCTRL == 0xE4, "");
114_Static_assert(KC_RSHIFT == 0xE5, "");
115_Static_assert(KC_RALT == 0xE6, "");
116_Static_assert(KC_RGUI == 0xE7, "");
117
118_Static_assert(KC_TILD == 0x235, "");
119_Static_assert(KC_EXLM == 0x21E, "");
120_Static_assert(KC_AT == 0x21F, "");
121_Static_assert(KC_HASH == 0x220, "");
122_Static_assert(KC_DLR == 0x221, "");
123_Static_assert(KC_PERC == 0x222, "");
124_Static_assert(KC_CIRC == 0x223, "");
125_Static_assert(KC_AMPR == 0x224, "");
126_Static_assert(KC_ASTR == 0x225, "");
127_Static_assert(KC_LPRN == 0x226, "");
128_Static_assert(KC_RPRN == 0x227, "");
129_Static_assert(KC_UNDS == 0x22D, "");
130_Static_assert(KC_PLUS == 0x22E, "");
131_Static_assert(KC_LCBR == 0x22F, "");
132_Static_assert(KC_RCBR == 0x230, "");
133_Static_assert(KC_LT == 0x236, "");
134_Static_assert(KC_GT == 0x237, "");
135_Static_assert(KC_COLN == 0x233, "");
136_Static_assert(KC_PIPE == 0x231, "");
137_Static_assert(KC_QUES == 0x238, "");
138_Static_assert(KC_DQUO == 0x234, "");
139
140_Static_assert(KC_NONUS_HASH == 0x32, "");
141_Static_assert(KC_NONUS_BSLASH == 0x64, "");
142_Static_assert(KC_RO == 0x87, "");
143_Static_assert(KC_KANA == 0x88, "");
144_Static_assert(KC_JYEN == 0x89, "");
145_Static_assert(KC_HENK == 0x8A, "");
146_Static_assert(KC_MHEN == 0x8B, "");
147_Static_assert(KC_LANG1 == 0x90, "");
148_Static_assert(KC_LANG2 == 0x91, "");
149
150_Static_assert(KC_GESC == 0x5C16, "");
151_Static_assert(KC_LSPO == 0x5CD7, "");
152_Static_assert(KC_RSPC == 0x5CD8, "");
153_Static_assert(KC_LCPO == 0x5CF3, "");
154_Static_assert(KC_RCPC == 0x5CF4, "");
155_Static_assert(KC_LAPO == 0x5CF5, "");
156_Static_assert(KC_RAPC == 0x5CF6, "");
157_Static_assert(KC_SFTENT == 0x5CD9, "");
158
159_Static_assert(BL_TOGG == 23743, "");
160_Static_assert(BL_STEP == 23744, "");
161_Static_assert(BL_BRTG == 23745, "");
162_Static_assert(BL_ON == 23739, "");
163_Static_assert(BL_OFF == 23740, "");
164_Static_assert(BL_INC == 23742, "");
165_Static_assert(BL_DEC == 23741, "");
166_Static_assert(RGB_TOG == 23746, "");
167_Static_assert(RGB_MOD == 23747, "");
168_Static_assert(RGB_RMOD == 23748, "");
169_Static_assert(RGB_HUI == 23749, "");
170_Static_assert(RGB_HUD == 23750, "");
171_Static_assert(RGB_SAI == 23751, "");
172_Static_assert(RGB_SAD == 23752, "");
173_Static_assert(RGB_VAI == 23753, "");
174_Static_assert(RGB_VAD == 23754, "");
175_Static_assert(RGB_SPI == 23755, "");
176_Static_assert(RGB_SPD == 23756, "");
177_Static_assert(RGB_M_P == 23757, "");
178_Static_assert(RGB_M_B == 23758, "");
179_Static_assert(RGB_M_R == 23759, "");
180_Static_assert(RGB_M_SW == 23760, "");
181_Static_assert(RGB_M_SN == 23761, "");
182_Static_assert(RGB_M_K == 23762, "");
183_Static_assert(RGB_M_X == 23763, "");
184_Static_assert(RGB_M_G == 23764, "");
185_Static_assert(RGB_M_T == 23765, "");
186
187_Static_assert(KC_F13 == 104, "");
188_Static_assert(KC_F14 == 105, "");
189_Static_assert(KC_F15 == 106, "");
190_Static_assert(KC_F16 == 107, "");
191_Static_assert(KC_F17 == 108, "");
192_Static_assert(KC_F18 == 109, "");
193_Static_assert(KC_F19 == 110, "");
194_Static_assert(KC_F20 == 111, "");
195_Static_assert(KC_F21 == 112, "");
196_Static_assert(KC_F22 == 113, "");
197_Static_assert(KC_F23 == 114, "");
198_Static_assert(KC_F24 == 115, "");
199_Static_assert(KC_PWR == 165, "");
200_Static_assert(KC_SLEP == 166, "");
201_Static_assert(KC_WAKE == 167, "");
202_Static_assert(KC_EXEC == 116, "");
203_Static_assert(KC_HELP == 117, "");
204_Static_assert(KC_SLCT == 119, "");
205_Static_assert(KC_STOP == 120, "");
206_Static_assert(KC_AGIN == 121, "");
207_Static_assert(KC_UNDO == 122, "");
208_Static_assert(KC_CUT == 123, "");
209_Static_assert(KC_COPY == 124, "");
210_Static_assert(KC_PSTE == 125, "");
211_Static_assert(KC_FIND == 126, "");
212_Static_assert(KC_CALC == 178, "");
213_Static_assert(KC_MAIL == 177, "");
214_Static_assert(KC_MSEL == 175, "");
215_Static_assert(KC_MYCM == 179, "");
216_Static_assert(KC_WSCH == 180, "");
217_Static_assert(KC_WHOM == 181, "");
218_Static_assert(KC_WBAK == 182, "");
219_Static_assert(KC_WFWD == 183, "");
220_Static_assert(KC_WSTP == 184, "");
221_Static_assert(KC_WREF == 185, "");
222_Static_assert(KC_WFAV == 186, "");
223_Static_assert(KC_BRIU == 189, "");
224_Static_assert(KC_BRID == 190, "");
225_Static_assert(KC_MPRV == 172, "");
226_Static_assert(KC_MNXT == 171, "");
227_Static_assert(KC_MUTE == 168, "");
228_Static_assert(KC_VOLD == 170, "");
229_Static_assert(KC_VOLU == 169, "");
230_Static_assert(KC_MSTP == 173, "");
231_Static_assert(KC_MPLY == 174, "");
232_Static_assert(KC_MRWD == 188, "");
233_Static_assert(KC_MFFD == 187, "");
234_Static_assert(KC_EJCT == 176, "");
235_Static_assert(KC_MS_U == 240, "");
236_Static_assert(KC_MS_D == 241, "");
237_Static_assert(KC_MS_L == 242, "");
238_Static_assert(KC_MS_R == 243, "");
239_Static_assert(KC_BTN1 == 244, "");
240_Static_assert(KC_BTN2 == 245, "");
241_Static_assert(KC_BTN3 == 246, "");
242_Static_assert(KC_BTN4 == 247, "");
243_Static_assert(KC_BTN5 == 248, "");
244_Static_assert(KC_WH_U == 249, "");
245_Static_assert(KC_WH_D == 250, "");
246_Static_assert(KC_WH_L == 251, "");
247_Static_assert(KC_WH_R == 252, "");
248_Static_assert(KC_ACL0 == 253, "");
249_Static_assert(KC_ACL1 == 254, "");
250_Static_assert(KC_ACL2 == 255, "");
251_Static_assert(KC_LCAP == 130, "");
252_Static_assert(KC_LNUM == 131, "");
253_Static_assert(KC_LSCR == 132, "");
254
255_Static_assert(FN_MO13 == 0x5F10, "");
256_Static_assert(FN_MO23 == 0x5F11, "");
257
258_Static_assert(MACRO00 == 0x5F12, "");
259_Static_assert(MACRO01 == 0x5F13, "");
260_Static_assert(MACRO02 == 0x5F14, "");
261_Static_assert(MACRO03 == 0x5F15, "");
262_Static_assert(MACRO04 == 0x5F16, "");
263_Static_assert(MACRO05 == 0x5F17, "");
264_Static_assert(MACRO06 == 0x5F18, "");
265_Static_assert(MACRO07 == 0x5F19, "");
266_Static_assert(MACRO08 == 0x5F1A, "");
267_Static_assert(MACRO09 == 0x5F1B, "");
268_Static_assert(MACRO10 == 0x5F1C, "");
269_Static_assert(MACRO11 == 0x5F1D, "");
270_Static_assert(MACRO12 == 0x5F1E, "");
271_Static_assert(MACRO13 == 0x5F1F, "");
272_Static_assert(MACRO14 == 0x5F20, "");
273_Static_assert(MACRO15 == 0x5F21, "");
274
275_Static_assert(USER00 == 0x5F80, "");
276_Static_assert(USER01 == 0x5F81, "");
277_Static_assert(USER02 == 0x5F82, "");
278_Static_assert(USER03 == 0x5F83, "");
279_Static_assert(USER04 == 0x5F84, "");
280_Static_assert(USER05 == 0x5F85, "");
281_Static_assert(USER06 == 0x5F86, "");
282_Static_assert(USER07 == 0x5F87, "");
283_Static_assert(USER08 == 0x5F88, "");
284_Static_assert(USER09 == 0x5F89, "");
285_Static_assert(USER10 == 0x5F8A, "");
286_Static_assert(USER11 == 0x5F8B, "");
287_Static_assert(USER12 == 0x5F8C, "");
288_Static_assert(USER13 == 0x5F8D, "");
289_Static_assert(USER14 == 0x5F8E, "");
290_Static_assert(USER15 == 0x5F8F, "");
291
292_Static_assert(KC_POWER == 102, "");
293_Static_assert(KC_MENU == 118, "");
294_Static_assert(KC_KP_EQUAL_AS400 == 134, "");
295_Static_assert(KC_INT6 == 140, "");
296_Static_assert(KC_INT7 == 141, "");
297_Static_assert(KC_INT8 == 142, "");
298_Static_assert(KC_INT9 == 143, "");
299_Static_assert(KC_LANG3 == 146, "");
300_Static_assert(KC_LANG4 == 147, "");
301_Static_assert(KC_LANG5 == 148, "");
302_Static_assert(KC_LANG6 == 149, "");
303_Static_assert(KC_LANG7 == 150, "");
304_Static_assert(KC_LANG8 == 151, "");
305_Static_assert(KC_LANG9 == 152, "");
306_Static_assert(KC_ERAS == 153, "");
307_Static_assert(KC_SYSREQ == 154, "");
308_Static_assert(KC_CANCEL == 155, "");
309_Static_assert(KC_CLEAR == 156, "");
310_Static_assert(KC_CLR == 156, "");
311_Static_assert(KC_PRIOR == 157, "");
312_Static_assert(KC_OUT == 160, "");
313_Static_assert(KC_OPER == 161, "");
314_Static_assert(KC_CLEAR_AGAIN == 162, "");
315_Static_assert(KC_CRSEL == 163, "");
316_Static_assert(KC_EXSEL == 164, "");
317_Static_assert(KC_FN0 == 192, "");
318_Static_assert(KC_FN1 == 193, "");
319_Static_assert(KC_FN2 == 194, "");
320_Static_assert(KC_FN3 == 195, "");
321_Static_assert(KC_FN4 == 196, "");
322_Static_assert(KC_FN5 == 197, "");
323_Static_assert(KC_FN6 == 198, "");
324_Static_assert(KC_FN7 == 199, "");
325_Static_assert(KC_FN8 == 200, "");
326_Static_assert(KC_FN9 == 201, "");
327_Static_assert(KC_FN10 == 202, "");
328_Static_assert(KC_FN11 == 203, "");
329_Static_assert(KC_FN12 == 204, "");
330_Static_assert(KC_FN13 == 205, "");
331_Static_assert(KC_FN14 == 206, "");
332_Static_assert(KC_FN15 == 207, "");
333_Static_assert(KC_FN16 == 208, "");
334_Static_assert(KC_FN17 == 209, "");
335_Static_assert(KC_FN18 == 210, "");
336_Static_assert(KC_FN19 == 211, "");
337_Static_assert(KC_FN20 == 212, "");
338_Static_assert(KC_FN21 == 213, "");
339_Static_assert(KC_FN22 == 214, "");
340_Static_assert(KC_FN23 == 215, "");
341_Static_assert(KC_FN24 == 216, "");
342_Static_assert(KC_FN25 == 217, "");
343_Static_assert(KC_FN26 == 218, "");
344_Static_assert(KC_FN27 == 219, "");
345_Static_assert(KC_FN28 == 220, "");
346_Static_assert(KC_FN29 == 221, "");
347_Static_assert(KC_FN30 == 222, "");
348_Static_assert(KC_FN31 == 223, "");
349_Static_assert(RESET == 23552, "");
350_Static_assert(DEBUG == 23553, "");
351_Static_assert(MAGIC_TOGGLE_NKRO == 23572, "");
352_Static_assert(AU_ON == 23581, "");
353_Static_assert(AU_OFF == 23582, "");
354_Static_assert(AU_TOG == 23583, "");
355_Static_assert(CLICKY_TOGGLE == 23584, "");
356_Static_assert(CLICKY_ENABLE == 23585, "");
357_Static_assert(CLICKY_DISABLE == 23586, "");
358_Static_assert(CLICKY_UP == 23587, "");
359_Static_assert(CLICKY_DOWN == 23588, "");
360_Static_assert(CLICKY_RESET == 23589, "");
361_Static_assert(MU_ON == 23590, "");
362_Static_assert(MU_OFF == 23591, "");
363_Static_assert(MU_TOG == 23592, "");
364_Static_assert(MU_MOD == 23593, "");
365
366#endif
diff --git a/tmk_core/common/keycode.h b/tmk_core/common/keycode.h
index efad92b23..a39a33be2 100644
--- a/tmk_core/common/keycode.h
+++ b/tmk_core/common/keycode.h
@@ -524,7 +524,11 @@ enum internal_special_keycodes {
524 524
525enum mouse_keys { 525enum mouse_keys {
526 /* Mouse Buttons */ 526 /* Mouse Buttons */
527#ifdef VIA_ENABLE
528 KC_MS_UP = 0xF0,
529#else
527 KC_MS_UP = 0xED, 530 KC_MS_UP = 0xED,
531#endif
528 KC_MS_DOWN, 532 KC_MS_DOWN,
529 KC_MS_LEFT, 533 KC_MS_LEFT,
530 KC_MS_RIGHT, // 0xF0 534 KC_MS_RIGHT, // 0xF0
@@ -533,9 +537,15 @@ enum mouse_keys {
533 KC_MS_BTN3, 537 KC_MS_BTN3,
534 KC_MS_BTN4, 538 KC_MS_BTN4,
535 KC_MS_BTN5, 539 KC_MS_BTN5,
540#ifdef VIA_ENABLE
541 KC_MS_BTN6 = KC_MS_BTN5,
542 KC_MS_BTN7 = KC_MS_BTN5,
543 KC_MS_BTN8 = KC_MS_BTN5,
544#else
536 KC_MS_BTN6, 545 KC_MS_BTN6,
537 KC_MS_BTN7, 546 KC_MS_BTN7,
538 KC_MS_BTN8, 547 KC_MS_BTN8,
548#endif
539 549
540 /* Mouse Wheel */ 550 /* Mouse Wheel */
541 KC_MS_WH_UP, 551 KC_MS_WH_UP,