diff options
Diffstat (limited to 'keyboards/massdrop/ctrl/keymaps/matthewrobo/keymap.c')
| -rw-r--r-- | keyboards/massdrop/ctrl/keymaps/matthewrobo/keymap.c | 660 |
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 | 2 | QMK Firmware Massdrop CTRL M-AS Keymap | |
| 3 | enum ctrl_layers { | 3 | Copyright (C) 2020 matthewrobo |
| 4 | _QWERTY, | 4 | |
| 5 | _NAV, | 5 | This program is free software: you can redistribute it and/or modify |
| 6 | _FNC | 6 | it under the terms of the GNU General Public License as published by |
| 7 | }; | 7 | the Free Software Foundation, either version 3 of the License, or |
| 8 | 8 | (at your option) any later version. | |
| 9 | enum ctrl_keycodes { | 9 | |
| 10 | U_T_AUTO = SAFE_RANGE, //USB Extra Port Toggle Auto Detect / Always Active | 10 | This program is distributed in the hope that it will be useful, |
| 11 | U_T_AGCR, //USB Toggle Automatic GCR control | 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 12 | DBG_TOG, //DEBUG Toggle On / Off | 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| 13 | DBG_MTRX, //DEBUG Toggle Matrix Prints | 13 | GNU General Public License for more details. |
| 14 | DBG_KBD, //DEBUG Toggle Keyboard Prints | 14 | |
| 15 | DBG_MOU, //DEBUG Toggle Mouse Prints | 15 | You should have received a copy of the GNU General Public License |
| 16 | MD_BOOT, //Restart into bootloader after hold timeout | 16 | along 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 | ||
| 33 | extern bool autoshift_enabled; | ||
| 34 | |||
| 35 | |||
| 36 | keymap_config_t keymap_config; | ||
| 37 | |||
| 38 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | 21 | const 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 _______ | |
| 84 | void rgb_matrix_indicators_user(void) | 83 | # undef _______ |
| 85 | { | 84 | # define _______ {0,0,0} |
| 86 | uint8_t this_led = host_keyboard_leds(); | 85 | |
| 87 | 86 | const 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. | ||
| 217 | void 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. |
| 226 | void matrix_scan_user(void) | 110 | void 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)) | 114 | void 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 | |||
| 234 | bool 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 | 117 | void matrix_scan_user(void){}; | |
| 281 | case MD_BOOT: | 118 | |
| 282 | if (record->event.pressed) { | 119 | bool 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: | 216 | void 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 | ||
| 281 | void 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 | } | ||
