keymap.c (7680B)
1 // Copyright 2022 Massdrop, Inc. 2 // SPDX-License-Identifier: GPL-2.0-or-later 3 #include QMK_KEYBOARD_H 4 5 enum custom_keycodes { 6 TEST_1 = SAFE_RANGE, 7 TEST_2, 8 TEST_3, 9 TEST_4, 10 }; 11 12 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 13 /* 14 * ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐┌───┐ 15 * │Esc││F1 │F2 │F3 │F4 ││F5 │F6 │F7 │F8 ││F9 │F10│F11│F12││PSc││ │ 16 * └───┘└───┴───┴───┴───┘└───┴───┴───┴───┴└───┴───┴───┴───┘└───┘└───┘ 17 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐┌───┐ 18 * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp││Del│ 19 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤├───┤ 20 * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ ││PgU│ 21 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤├───┤ 22 * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter ││PgD│ 23 * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┘└───┘ 24 * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift│┌───┐ 25 * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┘│ ↑ │ 26 * │Ctrl│GUI │Alt │ │Alt│GUI│Ctl│┌───┼───┼───┐ 27 * └────┴────┴────┴────────────────────────┴───┴───┴───┘│ ← │ ↓ │ → │ 28 * └───┴───┴───┘ 29 */ 30 [0] = LAYOUT( 31 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_MUTE, 32 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_DEL, 33 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_PGUP, 34 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, KC_PGDN, 35 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, 36 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT 37 ), 38 [1] = LAYOUT( 39 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, 40 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, 41 _______, RM_TOGG, RM_VALU, RM_SPDU, RM_HUEU, RM_SATU, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, 42 _______, RM_NEXT, RM_VALD, RM_SPDD, RM_HUED, RM_SATD, _______, _______, _______, _______, _______, _______, _______, KC_END, 43 _______, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW,_______, NK_TOGG, _______, _______, _______, _______, _______, _______, 44 MO(2), _______, _______, EE_CLR, KC_APP, _______, _______, _______, _______, _______ 45 ), 46 [2] = LAYOUT( 47 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 48 _______, TEST_1, TEST_2, TEST_3, TEST_4, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 49 _______, _______, _______, _______, _______, _______, _______, _______, _______, AG_TOGG, _______, _______, _______, CL_TOGG, _______, 50 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 51 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 52 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ 53 ) 54 }; 55 56 #if defined(ENCODER_MAP_ENABLE) 57 const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { 58 [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, 59 [1] = { ENCODER_CCW_CW(KC_MPRV, KC_MNXT) }, 60 [2] = { ENCODER_CCW_CW(_______, _______) } 61 }; 62 #endif 63 64 static bool test_mode = false; 65 66 bool process_record_user(uint16_t keycode, keyrecord_t *record) { 67 if (!record->event.pressed) { 68 switch (keycode) { 69 case TEST_1: 70 rgb_matrix_mode_noeeprom(RGB_MATRIX_SOLID_COLOR); 71 rgb_matrix_sethsv_noeeprom(HSV_RED); 72 test_mode = true; 73 break; 74 case TEST_2: 75 rgb_matrix_mode_noeeprom(RGB_MATRIX_SOLID_COLOR); 76 rgb_matrix_sethsv_noeeprom(HSV_GREEN); 77 test_mode = true; 78 break; 79 case TEST_3: 80 rgb_matrix_mode_noeeprom(RGB_MATRIX_SOLID_COLOR); 81 rgb_matrix_sethsv_noeeprom(HSV_BLUE); 82 test_mode = true; 83 break; 84 case TEST_4: 85 rgb_matrix_mode_noeeprom(RGB_MATRIX_SOLID_COLOR); 86 rgb_matrix_sethsv_noeeprom(HSV_WHITE); 87 test_mode = true; 88 break; 89 } 90 } 91 return true; 92 }; 93 94 bool rgb_matrix_indicators_user(void) { 95 if (host_keyboard_led_state().caps_lock) { 96 rgb_matrix_set_color(62, RGB_WHITE); 97 } else if ((rgb_matrix_get_flags() & (LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR)) == 0) { 98 rgb_matrix_set_color(62, RGB_OFF); 99 } 100 101 if (get_highest_layer(layer_state) == 2) { 102 if (!test_mode) { 103 rgb_matrix_set_color_all(RGB_OFF); 104 } 105 106 if (keymap_config.swap_lalt_lgui) { 107 rgb_matrix_set_color(55, RGB_GREEN); 108 } else { 109 rgb_matrix_set_color(55, RGB_RED); 110 } 111 if (keymap_config.swap_control_capslock) { 112 rgb_matrix_set_color(59, RGB_GREEN); 113 } else { 114 rgb_matrix_set_color(59, RGB_RED); 115 } 116 } else if ((rgb_matrix_get_flags() & (LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR)) == 0) { 117 rgb_matrix_set_color(55, RGB_OFF); 118 rgb_matrix_set_color(59, RGB_OFF); 119 } 120 return false; 121 }