aboutsummaryrefslogtreecommitdiff
path: root/keyboards/massdrop/ctrl/keymaps/matthewrobo/keymap.c
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/massdrop/ctrl/keymaps/matthewrobo/keymap.c')
-rw-r--r--keyboards/massdrop/ctrl/keymaps/matthewrobo/keymap.c660
1 files changed, 275 insertions, 385 deletions
diff --git a/keyboards/massdrop/ctrl/keymaps/matthewrobo/keymap.c b/keyboards/massdrop/ctrl/keymaps/matthewrobo/keymap.c
index 447b0aca1..c89607b3f 100644
--- a/keyboards/massdrop/ctrl/keymaps/matthewrobo/keymap.c
+++ b/keyboards/massdrop/ctrl/keymaps/matthewrobo/keymap.c
@@ -1,396 +1,286 @@
1#include QMK_KEYBOARD_H 1/*
2 2QMK Firmware Massdrop CTRL M-AS Keymap
3enum ctrl_layers { 3Copyright (C) 2020 matthewrobo
4 _QWERTY, 4
5 _NAV, 5This program is free software: you can redistribute it and/or modify
6 _FNC 6it under the terms of the GNU General Public License as published by
7}; 7the Free Software Foundation, either version 3 of the License, or
8 8(at your option) any later version.
9enum ctrl_keycodes { 9
10 U_T_AUTO = SAFE_RANGE, //USB Extra Port Toggle Auto Detect / Always Active 10This program is distributed in the hope that it will be useful,
11 U_T_AGCR, //USB Toggle Automatic GCR control 11but WITHOUT ANY WARRANTY; without even the implied warranty of
12 DBG_TOG, //DEBUG Toggle On / Off 12MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 DBG_MTRX, //DEBUG Toggle Matrix Prints 13GNU General Public License for more details.
14 DBG_KBD, //DEBUG Toggle Keyboard Prints 14
15 DBG_MOU, //DEBUG Toggle Mouse Prints 15You should have received a copy of the GNU General Public License
16 MD_BOOT, //Restart into bootloader after hold timeout 16along with this program. If not, see <http://www.gnu.org/licenses/>.
17 MAS_TOG, 17*/
18 MAS_CRM, 18
19 MAS_PRP, 19#include "keymap.h"
20 MAS_RED, 20// clang-format off
21 MAS_GRN,
22 MAS_BLU,
23 MAS_CYN,
24 MAS_MGT,
25 MAS_YEL,
26 MAS_KEY,
27 MAS_WHT,
28};
29
30#define TG_NKRO MAGIC_TOGGLE_NKRO //Toggle 6KRO / NKRO mode
31#define LT_CAPS LT(_NAV, KC_CAPS)
32#define _V_V_V_ KC_TRNS
33extern bool autoshift_enabled;
34
35
36keymap_config_t keymap_config;
37
38const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 21const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
39 [_QWERTY] = LAYOUT( 22 [_KL] = LAYOUT(
40 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, \ 23 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS,
41 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, \ 24 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
42 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, \ 25 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
43 LT_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \ 26 LT_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
44 KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC, KC_UP, \ 27 KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC, KC_UP,
45 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FNC), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT \ 28 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FL), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
46 ), 29 ),
47 [_NAV] = LAYOUT( 30 [_NL] = LAYOUT(
48 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ 31 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
49 _______, _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, KC_PAST, KC_PMNS, KC_PPLS, _______, _______, _______, _______, \ 32 _______, _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, KC_PAST, KC_PMNS, KC_PPLS, _______, _______, _______, _______,
50 _______, KC_PGUP, KC_HOME, KC_UP, KC_END, _______, _______, KC_P4, KC_P5, KC_P6, KC_PSLS, _______, _______, KC_EQL, _______, _______, _______, \ 33 _______, KC_PGUP, KC_HOME, KC_UP, KC_END, _______, _______, KC_P4, KC_P5, KC_P6, KC_PSLS, _______, _______, KC_EQL, _______, _______, _______,
51 _V_V_V_, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_P1, KC_P2, KC_P3, KC_PMNS, KC_PPLS, _______, \ 34 _LAYER_, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_P1, KC_P2, KC_P3, KC_PMNS, KC_PPLS, _______,
52 _______, _______, _______, _______, _______, _______, KC_P0, KC_P0, KC_P0, KC_PDOT, KC_PSLS, _______, _______, \ 35 _______, _______, _______, _______, _______, _______, KC_P0, KC_P0, KC_P0, KC_PDOT, KC_PSLS, _______, _______,
53 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ 36 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
54 ), 37 ),
55 [_FNC] = LAYOUT( 38 [_FL] = LAYOUT(
56 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_MSEL, KC_ASTG, \ 39 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_MSEL, _______,
57 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MSTP, KC_MPLY, KC_VOLU, \ 40 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MSTP, KC_MPLY, KC_VOLU,
58 _______, RGB_MOD, RGB_SPI, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, MAS_MGT, MAS_BLU, MAS_WHT, RGB_RMOD, RGB_MOD, _______, KC_MPRV, KC_MNXT, KC_VOLD, \ 41 _______, RGB_MOD, RGB_SPI, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, MAS_MGT, MAS_BLU, MAS_WHT, RGB_RMOD,RGB_MOD, _______, KC_MPRV, KC_MNXT, KC_VOLD,
59 _______, RGB_RMOD, RGB_SPD, RGB_HUD, RGB_SAD, RGB_VAD, _______, MAS_RED, MAS_KEY, MAS_CYN, MAS_PRP, _______, _______, \ 42 _______, RGB_RMOD,RGB_SPD, RGB_HUD, RGB_SAD, RGB_VAD, _______, MAS_RED, MAS_KEY, MAS_CYN, MAS_PRP, _______, _______,
60 MAS_TOG, RGB_TOG, _______, _______, _______, MD_BOOT, TG_NKRO, MAS_YEL, MAS_GRN, MAS_CRM, _______, _______, RGB_VAI, \ 43 _______, RGB_TOG, _______, _______, _______, MD_BOOT, NK_TOGG, MAS_YEL, MAS_GRN, MAS_CRM, _______, _______, RGB_VAI,
61 _______, _______, _______, _______, _______, _V_V_V_, _______, _______, RGB_SPD, RGB_VAD, RGB_SPI \ 44 _______, _______, _______, _______, _______, _LAYER_, _______, _______, RGB_SPD, RGB_VAD, RGB_SPI
62 ), 45 ),
63 /* 46 /*
64 [X] = LAYOUT( 47 [DEFAULT] = LAYOUT(
65 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ 48 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS,
66 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ 49 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
67 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ 50 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
68 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ 51 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
69 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ 52 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
70 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ 53 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
71 ), 54 ),
72 [X] = LAYOUT( 55 [X] = LAYOUT(
73 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, \ 56 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
74 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, \ 57 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
75 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, \ 58 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
76 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, \ 59 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
77 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, \ 60 _______, _______, _______, _______, _______, _______, TG_NKRO, _______, _______, _______, _______, _______, _______,
78 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86 \ 61 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
79 ), 62 ),
80 */ 63 [RGB] = LAYOUT(
64 ESC: 0, F1: 1, F2: 2, F3: 3, F4: 4, F5: 5, F6: 6, F7: 7, F8: 8, F9: 9, F10: 10, F11: 11, F12: 12, PSCR: 13, SLCK: 14, PAUS: 15,
65 GRV: 16, 1: 17, 2: 18, 3: 19, 4: 20, 5: 21, 6: 22, 7: 23, 8: 24, 9: 25, 0: 26, MINS: 27, EQL: 28, BSPC: 29, INS: 30, HOME: 31, PGUP: 32,
66 TAB: 33, Q: 34, W: 35, E: 36, R: 37, T: 38, Y: 39, U: 40, I: 41, O: 42, P: 43, LBRC: 44, RBRC: 45, BSLS: 46, DEL: 47, END: 48, PGDN: 49,
67 CAPS: 50, A: 51, S: 52, D: 53, F: 54, G: 55, H: 56, J: 57, K: 58, L: 59, SCLN: 60, QUOT: 61, ENT: 62,
68 LSFT: 63, Z: 64, X: 65, C: 66, V: 67, B: 68, N: 69, M: 70, COMM: 71, DOT: 72, SLSH: 73, RSFT: 74, UP: 75,
69 LCTL: 76, LGUI: 77, LALT: 78, SPC: 79, RALT: 80, Fn: 81, APP: 82, RCTL: 83, LEFT: 84, DOWN: 85, RGHT: 86
70 ),
71 [MATRIX] = LAYOUT(
72 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
73 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
74 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
75 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
76 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
77 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86
78 ),
79 */
81}; 80};
82 81
83 82#ifdef _______
84void rgb_matrix_indicators_user(void) 83# undef _______
85{ 84# define _______ {0,0,0}
86 uint8_t this_led = host_keyboard_leds(); 85
87 86const uint8_t PROGMEM ledmap[][DRIVER_LED_TOTAL][3] = {
88 if (!g_suspend_state && rgb_matrix_config.enable) { 87 [_NL] = {
89 switch (biton32(layer_state)) { 88 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
90 case _NAV: 89 _______, _______, _______, _______, _______, _______, _______, GOLD, GOLD, GOLD, GREEN, GREEN, GREEN, _______, _______, _______, _______,
91 if (this_led & (1 << USB_LED_NUM_LOCK)) { 90 _______, TEAL, CYAN, AZURE, CYAN, _______, _______, GOLD, RED, GOLD, GREEN, _______, _______, GREEN, _______, _______, _______,
92 rgb_matrix_set_color(41, 0xFF, 0x00, 0x00); 91 WHITE, TEAL, AZURE, AZURE, AZURE, _______, _______, GOLD, GOLD, GOLD, GREEN, GREEN, _______,
93 } else { 92 _______, _______, _______, _______, _______, _______, RED, RED, RED, GREEN, GREEN, _______, _______,
94 rgb_matrix_set_color(41, 0x00, 0x00, 0x00); 93 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
95 } 94 },
96 95 [_FL] = {
97 // layer indicator 96 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RED, GREEN, _______,
98 rgb_matrix_set_color(50, 0xFF, 0xFF, 0xFF); 97 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RED, GREEN, AZURE,
99 rgb_matrix_set_color(101, 0xFF, 0xFF, 0xFF); 98 _______, GOLD, CORAL, _______, _______, _______, _______, _______, MAGENT, BLUE, WHITE, GOLD, GOLD, _______, ORANGE, ORANGE, AZURE,
100 // ESDF 99 _______, GOLD, CORAL, _______, _______, _______, _______, RED, {1,0,0}, CYAN, M9B59B5, _______, _______,
101 rgb_matrix_set_color(36, 0xFF, 0x00, 0x00); 100 _______, RED, _______, _______, _______, RED, PINK, YELLOW, GREEN, CREAM, _______, _______, _______,
102 rgb_matrix_set_color(52, 0xFF, 0x00, 0x00); 101 _______, _______, _______, _______, _______, WHITE, _______, _______, CORAL, _______, CORAL
103 rgb_matrix_set_color(53, 0xFF, 0x00, 0x00); 102 },
104 rgb_matrix_set_color(54, 0xFF, 0x00, 0x00);
105 // home/end
106 rgb_matrix_set_color(35, 0x00, 0xFF, 0x00);
107 rgb_matrix_set_color(37, 0x00, 0xFF, 0x00);
108 // pgup/dn
109 rgb_matrix_set_color(34, 0x00, 0x00, 0xFF);
110 rgb_matrix_set_color(51, 0x00, 0x00, 0xFF);
111 // numpad
112 rgb_matrix_set_color(23, 0xFF, 0xFF, 0x00);
113 rgb_matrix_set_color(24, 0xFF, 0xFF, 0x00);
114 rgb_matrix_set_color(25, 0xFF, 0xFF, 0x00);
115 rgb_matrix_set_color(40, 0xFF, 0xFF, 0x00);
116 rgb_matrix_set_color(42, 0xFF, 0xFF, 0x00);
117 rgb_matrix_set_color(57, 0xFF, 0xFF, 0x00);
118 rgb_matrix_set_color(58, 0xFF, 0xFF, 0x00);
119 rgb_matrix_set_color(59, 0xFF, 0xFF, 0x00);
120 // zero
121 rgb_matrix_set_color(69, 0xFF, 0x00, 0x00);
122 rgb_matrix_set_color(70, 0xFF, 0x00, 0x00);
123 rgb_matrix_set_color(71, 0xFF, 0x00, 0x00);
124 // dot
125 rgb_matrix_set_color(72, 0x00, 0x00, 0xFF);
126 // math shit
127 rgb_matrix_set_color(26, 0x00, 0x00, 0xFF);
128 rgb_matrix_set_color(27, 0x00, 0x00, 0xFF);
129 rgb_matrix_set_color(28, 0x00, 0x00, 0xFF);
130 rgb_matrix_set_color(43, 0x00, 0x00, 0xFF);
131 rgb_matrix_set_color(46, 0x00, 0x00, 0xFF);
132 rgb_matrix_set_color(60, 0x00, 0x00, 0xFF);
133 rgb_matrix_set_color(61, 0x00, 0x00, 0xFF);
134 rgb_matrix_set_color(73, 0x00, 0x00, 0xFF);
135 break;
136
137 case _FNC: {
138 HSV hsv = { rgb_matrix_config.hsv.h, rgb_matrix_config.hsv.s, rgb_matrix_config.hsv.v };
139 HSV hui = hsv;
140 HSV hud = hsv;
141 HSV sai = hsv;
142 HSV sad = hsv;
143 HSV vai = hsv;
144 HSV vad = hsv;
145 hui.h = hsv.h + 8;
146 hud.h = hsv.h - 8;
147 sai.s = hsv.s + 16 > 255 ? 255u : hsv.s + 16;
148 sad.s = hsv.s - 16 < 0 ? 0 : hsv.s - 16;
149 vai.v = hsv.v + 16 > 255 ? 255 : hsv.v + 16;
150 vad.v = hsv.v - 16 < 0 ? 0 : hsv.v - 16;
151 RGB rgb = hsv_to_rgb(hsv);
152 RGB rgbHUI = hsv_to_rgb(hui);
153 RGB rgbHUD = hsv_to_rgb(hud);
154 RGB rgbSAI = hsv_to_rgb(sai);
155 RGB rgbSAD = hsv_to_rgb(sad);
156 RGB rgbVAI = hsv_to_rgb(vai);
157 RGB rgbVAD = hsv_to_rgb(vad);
158 rgb_matrix_set_color(81, 0xFF, 0xFF, 0xFF); // layer indicator
159 rgb_matrix_set_color(91, 0xFF, 0xFF, 0xFF);
160 rgb_matrix_set_color(93, 0x00, 0x00, 0x00);
161 rgb_matrix_set_color(94, rgb.r, rgb.g, rgb.b);
162 rgb_matrix_set_color(95, rgb.r, rgb.g, rgb.b);
163 rgb_matrix_set_color(96, 0x00, 0x00, 0x00);
164 rgb_matrix_set_color(68, 0xFF, 0x00, 0x00); // MD_BOOT
165 rgb_matrix_set_color(69, 0xFF, 0x00, 0x40); // TG_NKRO
166 rgb_matrix_set_color(32, 0x00, 0x80, 0xFF); // KC_VOLU
167 rgb_matrix_set_color(49, 0x00, 0x80, 0xFF);
168 rgb_matrix_set_color(13, 0xFF, 0x00, 0x00); // KC_MUTE
169 rgb_matrix_set_color(30, 0xFF, 0x00, 0x00); // KC_MSTP
170 rgb_matrix_set_color(47, 0xFF, 0x40, 0x00); // KC_MPRV
171 rgb_matrix_set_color(48, 0xFF, 0x40, 0x00);
172 rgb_matrix_set_color(14, 0x00, 0xFF, 0x00); // KC_MSEL
173 rgb_matrix_set_color(31, 0x00, 0xFF, 0x00); // KC_MPLY
174
175 if (this_led & (1 << !autoshift_enabled)) {
176 rgb_matrix_set_color(15, 0xFF, 0x00, 0x00); // KC_ASTG
177 } else {
178 rgb_matrix_set_color(15, 0xFF, 0xFF, 0x00);
179 }
180
181 rgb_matrix_set_color(44, 0xFF, 0x80, 0x00); //RGB_MOD
182 rgb_matrix_set_color(45, 0xFF, 0x80, 0x00);
183 rgb_matrix_set_color(34, 0xFF, 0x80, 0x00); //RGB_MOD
184 rgb_matrix_set_color(51, 0xFF, 0x80, 0x00);
185 rgb_matrix_set_color(63, 0xFF, 0x40, 0x00); //RGB_TOG
186 rgb_matrix_set_color(64, rgb.r, rgb.g, rgb.b); //MAS_TOG
187 rgb_matrix_set_color(36, rgbHUI.r, rgbHUI.g, rgbHUI.b); //RGB_HUI
188 rgb_matrix_set_color(53, rgbHUD.r, rgbHUD.g, rgbHUD.b);
189 rgb_matrix_set_color(37, rgbSAI.r, rgbSAI.g, rgbSAI.b); //RGB_SAI
190 rgb_matrix_set_color(54, rgbSAD.r, rgbSAD.g, rgbSAD.b);
191 rgb_matrix_set_color(38, rgbVAI.r, rgbVAI.g, rgbVAI.b); //RGB_VAI
192 rgb_matrix_set_color(55, rgbVAD.r, rgbVAD.g, rgbVAD.b);
193 rgb_matrix_set_color(79, rgb.r, rgb.g, rgb.b); // config display
194 rgb_matrix_set_color(75, rgbVAI.r, rgbVAI.g, rgbVAI.b); //RGB_VAI
195 rgb_matrix_set_color(85, rgbVAD.r, rgbVAD.g, rgbVAD.b);
196 rgb_matrix_set_color(35, 0x80, 0x80, 0x80); //RGB_SPI
197 rgb_matrix_set_color(52, 0x80, 0x80, 0x80);
198 rgb_matrix_set_color(84, 0x80, 0x80, 0x80); //RGB_SPI
199 rgb_matrix_set_color(86, 0x80, 0x80, 0x80);
200 rgb_matrix_set_color(41, 0xF0, 0x00, 0xFF); //MAS_MGT
201 rgb_matrix_set_color(42, 0x00, 0x02, 0xFF); //MAS_BLU
202 rgb_matrix_set_color(57, 0xFF, 0x00, 0x00); //MAS_RED
203 rgb_matrix_set_color(58, 0x00, 0x00, 0x00); //MAS_KEY
204 rgb_matrix_set_color(59, 0x00, 0xFF, 0xF7); //MAS_CYN
205 rgb_matrix_set_color(70, 0xFF, 0xDA, 0x00); //MAS_YEL
206 rgb_matrix_set_color(71, 0x00, 0xFF, 0x01); //MAS_GRN
207 rgb_matrix_set_color(72, 0xFF, 0xA5, 0x18); //MAS_CRM
208 rgb_matrix_set_color(60, 0x81, 0x3C, 0xFF); //MAS_PRP
209 rgb_matrix_set_color(43, 0xFF, 0xFF, 0xFF); //MAS_WHT
210 }
211 break;
212 }
213 }
214}
215
216// Runs just one time when the keyboard initializes.
217void matrix_init_user(void)
218{
219 autoshift_disable();
220 rgb_matrix_sethsv(128, 255, 255);
221 // rgb_matrix_sethsv(192, 112, 255);
222 // rgb_matrix_mode(4);
223}; 103};
104# undef _______
105# define _______ KC_TRNS
106#endif
107// clang-format on
224 108
225// Runs constantly in the background, in a loop. 109// Runs just one time when the keyboard initializes.
226void matrix_scan_user(void) 110void matrix_init_user(void) {
227{ 111 rgb_enabled_flag = true; // Initially, keyboard RGB is enabled. Change to false config.h initializes RGB disabled.
228}; 112};
229 113
230#define MODS_SHIFT (get_mods() & MOD_BIT(KC_LSHIFT) || get_mods() & MOD_BIT(KC_RSHIFT)) 114void keyboard_post_init_user(void) { rgb_matrix_enable(); }
231#define MODS_CTRL (get_mods() & MOD_BIT(KC_LCTL) || get_mods() & MOD_BIT(KC_RCTRL))
232#define MODS_ALT (get_mods() & MOD_BIT(KC_LALT) || get_mods() & MOD_BIT(KC_RALT))
233
234bool process_record_user(uint16_t keycode, keyrecord_t* record)
235{
236 static uint32_t key_timer;
237
238 switch (keycode) {
239 case U_T_AUTO:
240 if (record->event.pressed && MODS_SHIFT && MODS_CTRL) {
241 TOGGLE_FLAG_AND_PRINT(usb_extra_manual, "USB extra port manual mode");
242 }
243
244 return false;
245
246 case U_T_AGCR:
247 if (record->event.pressed && MODS_SHIFT && MODS_CTRL) {
248 TOGGLE_FLAG_AND_PRINT(usb_gcr_auto, "USB GCR auto mode");
249 }
250
251 return false;
252
253 case DBG_TOG:
254 if (record->event.pressed) {
255 TOGGLE_FLAG_AND_PRINT(debug_enable, "Debug mode");
256 }
257
258 return false;
259
260 case DBG_MTRX:
261 if (record->event.pressed) {
262 TOGGLE_FLAG_AND_PRINT(debug_matrix, "Debug matrix");
263 }
264
265 return false;
266
267 case DBG_KBD:
268 if (record->event.pressed) {
269 TOGGLE_FLAG_AND_PRINT(debug_keyboard, "Debug keyboard");
270 }
271
272 return false;
273
274 case DBG_MOU:
275 if (record->event.pressed) {
276 TOGGLE_FLAG_AND_PRINT(debug_mouse, "Debug mouse");
277 }
278 115
279 return false; 116// Runs constantly in the background, in a loop.
280 117void matrix_scan_user(void){};
281 case MD_BOOT: 118
282 if (record->event.pressed) { 119bool process_record_user(uint16_t keycode, keyrecord_t *record) {
283 key_timer = timer_read32(); 120 static uint32_t key_timer;
284 } else { 121 switch (keycode) {
285 if (timer_elapsed32(key_timer) >= 500) { 122 case U_T_AUTO:
286 reset_keyboard(); 123 if (record->event.pressed && MODS_SHIFT && MODS_CTRL) {
287 } 124 TOGGLE_FLAG_AND_PRINT(usb_extra_manual, "USB extra port manual mode");
288 } 125 }
289 126 return false;
290 return false; 127 case U_T_AGCR:
291 128 if (record->event.pressed && MODS_SHIFT && MODS_CTRL) {
292 case MAS_TOG: 129 TOGGLE_FLAG_AND_PRINT(usb_gcr_auto, "USB GCR auto mode");
293 if (record->event.pressed) { 130 }
294 switch (rgb_matrix_get_flags()) { 131 return false;
295 case LED_FLAG_ALL: { 132 case MD_BOOT:
296 rgb_matrix_set_flags(LED_FLAG_KEYLIGHT); 133 if (record->event.pressed) {
297 rgb_matrix_set_color_all(0, 0, 0); 134 key_timer = timer_read32();
298 } 135 } else {
299 break; 136 if (timer_elapsed32(key_timer) >= 500) {
300 137 reset_keyboard();
301 case LED_FLAG_KEYLIGHT: { 138 }
302 rgb_matrix_set_flags(LED_FLAG_UNDERGLOW); 139 }
303 rgb_matrix_set_color_all(0, 0, 0); 140 return false;
304 } 141 }
305 break; 142
306 143 if (record->event.pressed) {
307 case LED_FLAG_UNDERGLOW: { 144 switch (keycode) {
308 rgb_matrix_set_flags(LED_FLAG_NONE); 145 case DBG_TOG:
309 rgb_matrix_disable_noeeprom(); 146 TOGGLE_FLAG_AND_PRINT(debug_enable, "Debug mode");
310 } 147 return false;
311 break; 148 case DBG_MTRX:
312 149 TOGGLE_FLAG_AND_PRINT(debug_matrix, "Debug matrix");
313 default: { 150 return false;
314 rgb_matrix_set_flags(LED_FLAG_ALL); 151 case DBG_KBD:
315 } 152 TOGGLE_FLAG_AND_PRINT(debug_keyboard, "Debug keyboard");
316 break; 153 return false;
317 } 154 case DBG_MOU:
318 } 155 TOGGLE_FLAG_AND_PRINT(debug_mouse, "Debug mouse");
319 156 return false;
320 return false; 157 case RGB_TOG:
321 158 switch (rgb_matrix_get_flags()) {
322 case MAS_CRM: 159 case LED_FLAG_ALL: {
323 if (record->event.pressed) { 160 rgb_matrix_set_flags(LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER);
324 rgb_matrix_sethsv(32, 160, 255); 161 rgb_matrix_set_color_all(0, 0, 0);
325 } 162 } break;
326 163 case LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER: {
327 return false; 164 rgb_matrix_set_flags(LED_FLAG_UNDERGLOW);
328 165 rgb_matrix_set_color_all(0, 0, 0);
329 case MAS_PRP: 166 } break;
330 if (record->event.pressed) { 167 case LED_FLAG_UNDERGLOW: {
331 rgb_matrix_sethsv(192, 112, 255); 168 // This line is for LED idle timer. It disables the toggle so you can turn off LED completely if you like
332 } 169 rgb_matrix_set_flags(LED_FLAG_NONE);
333 170 rgb_matrix_disable_noeeprom();
334 return false; 171 } break;
335 172 default: {
336 case MAS_RED: 173 rgb_matrix_set_flags(LED_FLAG_ALL);
337 if (record->event.pressed) { 174 rgb_matrix_enable_noeeprom();
338 rgb_matrix_sethsv(0, 255, 255); 175 } break;
339 } 176 }
340 177 return false;
341 return false; 178 // ======================================================== CUSTOM KEYCOADS BELOW ========================================================
342 179 case MAS_CRM:
343 case MAS_GRN: 180 rgb_matrix_sethsv(HSV_CREAM);
344 if (record->event.pressed) { 181 return false;
345 rgb_matrix_sethsv(88, 255, 255); 182 case MAS_PRP:
346 } 183 rgb_matrix_sethsv(HSV_9B59B5);
347 184 return false;
348 return false; 185 case MAS_RED:
349 186 rgb_matrix_sethsv(HSV_RED);
350 case MAS_BLU: 187 return false;
351 if (record->event.pressed) { 188 case MAS_GRN:
352 rgb_matrix_sethsv(168, 255, 255); 189 rgb_matrix_sethsv(HSV_GREEN);
353 } 190 return false;
354 191 case MAS_BLU:
355 return false; 192 rgb_matrix_sethsv(HSV_BLUE);
356 193 return false;
357 case MAS_CYN: 194 case MAS_CYN:
358 if (record->event.pressed) { 195 rgb_matrix_sethsv(HSV_CYAN);
359 rgb_matrix_sethsv(128, 255, 255); 196 return false;
360 } 197 case MAS_MGT:
361 198 rgb_matrix_sethsv(HSV_MAGENTA);
362 return false; 199 return false;
363 200 case MAS_YEL:
364 case MAS_MGT: 201 rgb_matrix_sethsv(HSV_YELLOW);
365 if (record->event.pressed) { 202 return false;
366 rgb_matrix_sethsv(216, 255, 255); 203 case MAS_KEY:
367 } 204 rgb_matrix_sethsv(0, 0, 0);
368 205 return false;
369 return false; 206 case MAS_WHT:
370 207 rgb_matrix_sethsv(128, 0, 255);
371 case MAS_YEL: 208 return false;
372 if (record->event.pressed) { 209 default:
373 rgb_matrix_sethsv(40, 255, 255); 210 return true; // Process all other keycodes normally
374 } 211 }
375 212 }
376 return false; 213 return true;
377 214}
378 case MAS_KEY:
379 if (record->event.pressed) {
380 rgb_matrix_sethsv(0, 0, 0);
381 }
382
383 return false;
384
385 case MAS_WHT:
386 if (record->event.pressed) {
387 rgb_matrix_sethsv(128, 0, 255);
388 }
389
390 return false;
391 215
392 default: 216void set_layer_color(int layer) {
393 return true; //Process all other keycodes normally 217 if (layer == 0) {
394 } 218 return;
219 }
220 for (int i = 0; i < DRIVER_LED_TOTAL; i++) {
221 HSV hsv = {
222 .h = pgm_read_byte(&ledmap[layer][i][0]),
223 .s = pgm_read_byte(&ledmap[layer][i][1]),
224 .v = pgm_read_byte(&ledmap[layer][i][2]),
225 };
226 if (hsv.h || hsv.s || hsv.v) {
227 RGB rgb = hsv_to_rgb(hsv);
228 float f = (float)rgb_matrix_config.hsv.v / UINT8_MAX;
229 rgb_matrix_set_color(i, f * rgb.r, f * rgb.g, f * rgb.b);
230 } else if (layer == _FL) {
231 HSV hsv2 = {rgb_matrix_config.hsv.h, rgb_matrix_config.hsv.s, rgb_matrix_config.hsv.v};
232 HSV hui = hsv2;
233 HSV hud = hsv2;
234 HSV sai = hsv2;
235 HSV sad = hsv2;
236 HSV vai = hsv2;
237 HSV vad = hsv2;
238 hui.h = hsv2.h + 8;
239 hud.h = hsv2.h - 8;
240 sai.s = hsv2.s + 16 > 255 ? 255 : hsv2.s + 16;
241 sad.s = hsv2.s - 16 < 0 ? 0 : hsv2.s - 16;
242 vai.v = hsv2.v + 16 > 255 ? 255 : hsv2.v + 16;
243 vad.v = hsv2.v - 16 < 0 ? 0 : hsv2.v - 16;
244 RGB rgbHUI = hsv_to_rgb(hui);
245 RGB rgbHUD = hsv_to_rgb(hud);
246 RGB rgbSAI = hsv_to_rgb(sai);
247 RGB rgbSAD = hsv_to_rgb(sad);
248 RGB rgbVAI = hsv_to_rgb(vai);
249 RGB rgbVAD = hsv_to_rgb(vad);
250
251 switch (i) {
252 case 36:
253 rgb_matrix_set_color(i, rgbHUI.r, rgbHUI.g, rgbHUI.b);
254 break;
255 case 53:
256 rgb_matrix_set_color(i, rgbHUD.r, rgbHUD.g, rgbHUD.b);
257 break;
258 case 54:
259 rgb_matrix_set_color(i, rgbSAI.r, rgbSAI.g, rgbSAI.b);
260 break;
261 case 37:
262 rgb_matrix_set_color(i, rgbSAD.r, rgbSAD.g, rgbSAD.b);
263 break;
264 case 38:
265 rgb_matrix_set_color(i, rgbVAI.r, rgbVAI.g, rgbVAI.b);
266 break;
267 case 55:
268 rgb_matrix_set_color(i, rgbVAD.r, rgbVAD.g, rgbVAD.b);
269 break;
270 case 75:
271 rgb_matrix_set_color(i, rgbVAI.r, rgbVAI.g, rgbVAI.b);
272 break;
273 case 85:
274 rgb_matrix_set_color(i, rgbVAD.r, rgbVAD.g, rgbVAD.b);
275 break;
276 }
277 }
278 }
395} 279}
396 280
281void rgb_matrix_indicators_user(void) {
282 if (g_suspend_state || disable_layer_color || rgb_matrix_get_flags() == LED_FLAG_NONE || rgb_matrix_get_flags() == LED_FLAG_UNDERGLOW) {
283 return;
284 }
285 set_layer_color(get_highest_layer(layer_state));
286}