keymap.c (5823B)
1 #include QMK_KEYBOARD_H 2 #include "debug.h" 3 #include "action_layer.h" 4 #include "version.h" 5 6 7 #include "keymap_german.h" 8 9 #include "keymap_nordic.h" 10 11 12 13 enum custom_keycodes { 14 PLACEHOLDER = SAFE_RANGE, // can always be here 15 EPRM, 16 VRSN, 17 RGB_SLD, 18 19 }; 20 21 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 22 23 [0] = LAYOUT_ergodox(KC_EQUAL,KC_1,KC_2,KC_3,KC_4,KC_5,LCTL(KC_MINUS),KC_DELETE,KC_Q,KC_W,KC_E,KC_R,KC_T,KC_LBRC,KC_BSPC,KC_A,KC_S,KC_D,KC_F,KC_G,SC_LSPO,CTL_T(KC_Z),KC_X,KC_C,KC_V,KC_B,HYPR_T(KC_NO),LT(1,KC_GRAVE),KC_QUOTE,LALT(KC_LSFT),KC_LEFT,KC_RIGHT,ALT_T(KC_APPLICATION),KC_LGUI,KC_HOME,KC_SPACE,KC_UNDS,KC_END,LCTL(KC_EQUAL),KC_6,KC_7,KC_8,KC_9,KC_0,KC_MINUS,KC_RBRC,KC_Y,KC_U,KC_I,KC_O,KC_P,KC_BSLS,KC_H,ALT_T(KC_J),KC_K,KC_L,LT(2,KC_SCLN),GUI_T(KC_QUOTE),MEH_T(KC_NO),KC_N,KC_M,KC_COMMA,KC_DOT,CTL_T(KC_SLASH),SC_RSPC,KC_UP,KC_DOWN,KC_LBRC,KC_RBRC,TT(1),KC_LALT,CTL_T(KC_ESCAPE),KC_PGUP,KC_PGDN,LT(1,KC_TAB),KC_ENTER), 24 25 [1] = LAYOUT_ergodox(KC_TRANSPARENT,KC_F1,KC_F2,KC_F3,KC_F4,KC_F5,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,LCTL(KC_W),KC_LBRC,KC_RBRC,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,LCTL(KC_PGUP),LCTL(KC_PGDN),UG_NEXT,KC_TRANSPARENT,KC_TRANSPARENT,UG_VALD,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_F6,KC_F7,KC_F8,KC_F9,KC_F10,KC_F11,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_F12,KC_AMPR,KC_UNDS,KC_MINUS,KC_SCLN,KC_PLUS,KC_TRANSPARENT,KC_TRANSPARENT,KC_PIPE,KC_AT,KC_EQUAL,KC_PERC,KC_BSLS,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,UG_TOGG,RGB_SLD,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,UG_HUEU), 26 27 [2] = LAYOUT_ergodox(KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,MS_UP,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,MS_LEFT,MS_DOWN,MS_RGHT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,MS_BTN1,MS_BTN2,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_MEDIA_PLAY_PAUSE,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_MEDIA_PREV_TRACK,KC_MEDIA_NEXT_TRACK,KC_TRANSPARENT,KC_TRANSPARENT,KC_AUDIO_VOL_UP,KC_AUDIO_VOL_DOWN,KC_AUDIO_MUTE,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_WWW_BACK), 28 29 }; 30 31 void matrix_init_user(void) { 32 #if defined(RGBLIGHT_ENABLE) && defined(RGBLIGHT_COLOR_LAYER_0) 33 rgblight_setrgb(RGBLIGHT_COLOR_LAYER_0); 34 #endif 35 }; 36 37 bool process_record_user(uint16_t keycode, keyrecord_t *record) { 38 switch (keycode) { 39 // dynamically generate these. 40 case EPRM: 41 if (record->event.pressed) { 42 eeconfig_init(); 43 } 44 return false; 45 case VRSN: 46 if (record->event.pressed) { 47 SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION); 48 } 49 return false; 50 #ifdef RGBLIGHT_ENABLE 51 case RGB_SLD: 52 if (record->event.pressed) { 53 rgblight_mode(1); 54 } 55 return false; 56 #endif 57 58 } 59 return true; 60 } 61 62 layer_state_t layer_state_set_user(layer_state_t state) { 63 64 uint8_t layer = get_highest_layer(layer_state); 65 66 ergodox_board_led_off(); 67 ergodox_right_led_1_off(); 68 ergodox_right_led_2_off(); 69 ergodox_right_led_3_off(); 70 switch (layer) { 71 case 0: 72 #ifdef RGBLIGHT_ENABLE 73 #ifdef RGBLIGHT_COLOR_LAYER_0 74 rgblight_setrgb(RGBLIGHT_COLOR_LAYER_0); 75 #else 76 rgblight_init(); 77 #endif 78 #endif 79 break; 80 case 1: 81 ergodox_right_led_1_on(); 82 #if defined(RGBLIGHT_ENABLE) && defined(RGBLIGHT_COLOR_LAYER_1) 83 rgblight_setrgb(RGBLIGHT_COLOR_LAYER_1); 84 #endif 85 break; 86 case 2: 87 ergodox_right_led_2_on(); 88 #if defined(RGBLIGHT_ENABLE) && defined(RGBLIGHT_COLOR_LAYER_2) 89 rgblight_setrgb(RGBLIGHT_COLOR_LAYER_2); 90 #endif 91 break; 92 case 3: 93 ergodox_right_led_3_on(); 94 #if defined(RGBLIGHT_ENABLE) && defined(RGBLIGHT_COLOR_LAYER_3) 95 rgblight_setrgb(RGBLIGHT_COLOR_LAYER_3); 96 #endif 97 break; 98 case 4: 99 ergodox_right_led_1_on(); 100 ergodox_right_led_2_on(); 101 #if defined(RGBLIGHT_ENABLE) && defined(RGBLIGHT_COLOR_LAYER_4) 102 rgblight_setrgb(RGBLIGHT_COLOR_LAYER_4); 103 #endif 104 break; 105 case 5: 106 ergodox_right_led_1_on(); 107 ergodox_right_led_3_on(); 108 #if defined(RGBLIGHT_ENABLE) && defined(RGBLIGHT_COLOR_LAYER_5) 109 rgblight_setrgb(RGBLIGHT_COLOR_LAYER_5); 110 #endif 111 break; 112 case 6: 113 ergodox_right_led_2_on(); 114 ergodox_right_led_3_on(); 115 #if defined(RGBLIGHT_ENABLE) && defined(RGBLIGHT_COLOR_LAYER_6) 116 rgblight_setrgb(RGBLIGHT_COLOR_LAYER_6); 117 #endif 118 break; 119 case 7: 120 ergodox_right_led_1_on(); 121 ergodox_right_led_2_on(); 122 ergodox_right_led_3_on(); 123 #if defined(RGBLIGHT_ENABLE) && defined(RGBLIGHT_COLOR_LAYER_7) 124 rgblight_setrgb(RGBLIGHT_COLOR_LAYER_6); 125 #endif 126 break; 127 default: 128 break; 129 } 130 131 return state; 132 };