diff options
| author | drashna <drashna@live.com> | 2017-08-12 01:16:37 -0700 |
|---|---|---|
| committer | Jack Humbert <jack.humb@gmail.com> | 2017-08-14 16:20:24 -0400 |
| commit | 1a0b5aee630a456bd0ae45bbac7002274b40199a (patch) | |
| tree | 92988ed32de8fd002d60214789619efce3d98940 | |
| parent | 5ad103fa51083cb26d3516e5598b7b2a099b1521 (diff) | |
| download | qmk_firmware-1a0b5aee630a456bd0ae45bbac7002274b40199a.tar.gz qmk_firmware-1a0b5aee630a456bd0ae45bbac7002274b40199a.zip | |
Create Keymap.c
RGB Underglow mod for layer indication
| -rw-r--r-- | keyboards/ergodox/ez/keymaps/drashna/keymap.c | 192 |
1 files changed, 192 insertions, 0 deletions
diff --git a/keyboards/ergodox/ez/keymaps/drashna/keymap.c b/keyboards/ergodox/ez/keymaps/drashna/keymap.c new file mode 100644 index 000000000..343f6e0d8 --- /dev/null +++ b/keyboards/ergodox/ez/keymaps/drashna/keymap.c | |||
| @@ -0,0 +1,192 @@ | |||
| 1 | #include "ergodox.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 | #define VERSION M(0) | ||
| 12 | |||
| 13 | |||
| 14 | // Define layer names | ||
| 15 | #define BASE 0 | ||
| 16 | #define SYMB 1 | ||
| 17 | #define MOUS 2 | ||
| 18 | |||
| 19 | #ifdef LAYER_UNDERGLOW_LIGHTING | ||
| 20 | #define rgblight_set_teal rgblight_setrgb(0x00, 0xFF, 0xFF) | ||
| 21 | #define rgblight_set_red rgblight_setrgb(0xFF, 0x00, 0x00) | ||
| 22 | #define rgblight_set_blue rgblight_setrgb(0x00, 0xFF, 0x00); | ||
| 23 | #define rgblight_set_green rgblight_setrgb(0x00, 0x00, 0xFF); | ||
| 24 | #define rgblight_set_yellow rgblight_setrgb(0xFF, 0xFF, 0x00); | ||
| 25 | |||
| 26 | |||
| 27 | #define MODS_SHIFT_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) | ||
| 28 | #define MODS_CTRL_MASK (MOD_BIT(KC_LCTL)|MOD_BIT(KC_RCTRL)) | ||
| 29 | #define MODS_ALT_MASK (MOD_BIT(KC_LALT)|MOD_BIT(KC_RALT)) | ||
| 30 | #endif | ||
| 31 | |||
| 32 | |||
| 33 | enum custom_keycodes { | ||
| 34 | PLACEHOLDER = SAFE_RANGE, // can always be here | ||
| 35 | EPRM, | ||
| 36 | VRSN, | ||
| 37 | #ifndef LAYER_UNDERGLOW_LIGHTING | ||
| 38 | RGB_SLD, | ||
| 39 | #endif | ||
| 40 | }; | ||
| 41 | |||
| 42 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 43 | |||
| 44 | [0] = KEYMAP(KC_EQUAL,KC_1,KC_2,KC_3,KC_4,KC_5,KC_LEFT,KC_DELETE,KC_Q,KC_W,KC_E,KC_R,KC_T,TG(1),KC_BSPACE,KC_A,KC_S,KC_D,KC_F,KC_G,KC_LSHIFT,CTL_T(KC_Z),KC_X,KC_C,KC_V,KC_B,ALL_T(KC_NO),LT(1,KC_GRAVE),KC_QUOTE,LALT(KC_LSHIFT),KC_LEFT,KC_RIGHT,ALT_T(KC_APPLICATION),KC_LGUI,KC_HOME,KC_SPACE,KC_BSPACE,KC_END,KC_RIGHT,KC_6,KC_7,KC_8,KC_9,KC_0,KC_MINUS,TG(1),KC_Y,KC_U,KC_I,KC_O,KC_P,KC_BSLASH,KC_H,KC_J,KC_K,KC_L,LT(2,KC_SCOLON),GUI_T(KC_QUOTE),MEH_T(KC_NO),KC_N,KC_M,KC_COMMA,KC_DOT,CTL_T(KC_SLASH),KC_RSHIFT,KC_UP,KC_DOWN,KC_LBRACKET,KC_RBRACKET,MO(1),KC_LALT,CTL_T(KC_ESCAPE),KC_PGUP,KC_PGDOWN,KC_TAB,KC_ENTER), | ||
| 45 | |||
| 46 | #ifdef LAYER_UNDERGLOW_LIGHTING | ||
| 47 | [1] = KEYMAP(KC_ESCAPE,KC_F1,KC_F2,KC_F3,KC_F4,KC_F5,KC_TRANSPARENT,VERSION,KC_EXLM,KC_AT,KC_LCBR,KC_RCBR,KC_PIPE,KC_TRANSPARENT,VRSN,KC_HASH,KC_DLR,KC_LPRN,KC_RPRN,KC_GRAVE,RESET,KC_PERC,KC_CIRC,KC_LBRACKET,KC_RBRACKET,KC_TILD,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,RGB_VAD,RGB_VAI,KC_TRANSPARENT,KC_TRANSPARENT,KC_F6,KC_F7,KC_F8,KC_F9,KC_F10,KC_F11,KC_TRANSPARENT,KC_UP,KC_7,KC_8,KC_9,KC_ASTR,KC_F12,KC_DOWN,KC_4,KC_5,KC_6,KC_PLUS,KC_TRANSPARENT,KC_TRANSPARENT,KC_AMPR,KC_1,KC_2,KC_3,KC_BSLASH,KC_TRANSPARENT,KC_TRANSPARENT,KC_DOT,KC_0,KC_EQUAL,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT), | ||
| 48 | #else | ||
| 49 | [1] = KEYMAP(KC_ESCAPE,KC_F1,KC_F2,KC_F3,KC_F4,KC_F5,KC_TRANSPARENT,VERSION,KC_EXLM,KC_AT,KC_LCBR,KC_RCBR,KC_PIPE,KC_TRANSPARENT,VRSN,KC_HASH,KC_DLR,KC_LPRN,KC_RPRN,KC_GRAVE,RESET,KC_PERC,KC_CIRC,KC_LBRACKET,KC_RBRACKET,KC_TILD,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,RGB_MOD,KC_TRANSPARENT,KC_TRANSPARENT,RGB_VAD,RGB_VAI,KC_TRANSPARENT,KC_TRANSPARENT,KC_F6,KC_F7,KC_F8,KC_F9,KC_F10,KC_F11,KC_TRANSPARENT,KC_UP,KC_7,KC_8,KC_9,KC_ASTR,KC_F12,KC_DOWN,KC_4,KC_5,KC_6,KC_PLUS,KC_TRANSPARENT,KC_TRANSPARENT,KC_AMPR,KC_1,KC_2,KC_3,KC_BSLASH,KC_TRANSPARENT,KC_TRANSPARENT,KC_DOT,KC_0,KC_EQUAL,KC_TRANSPARENT,RGB_TOG,RGB_SLD,KC_TRANSPARENT,KC_TRANSPARENT,RGB_HUD,RGB_HUI), | ||
| 50 | #endif | ||
| 51 | |||
| 52 | [2] = KEYMAP(KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_MS_UP,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_MS_LEFT,KC_MS_DOWN,KC_MS_RIGHT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_MS_BTN1,KC_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), | ||
| 53 | |||
| 54 | }; | ||
| 55 | |||
| 56 | const uint16_t PROGMEM fn_actions[] = { | ||
| 57 | [1] = ACTION_LAYER_TAP_TOGGLE(1) | ||
| 58 | }; | ||
| 59 | |||
| 60 | // leaving this in place for compatibilty with old keymaps cloned and re-compiled. | ||
| 61 | const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) | ||
| 62 | { | ||
| 63 | switch(id) { | ||
| 64 | case 0: | ||
| 65 | if (record->event.pressed) { | ||
| 66 | SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION); | ||
| 67 | } | ||
| 68 | break; | ||
| 69 | } | ||
| 70 | return MACRO_NONE; | ||
| 71 | }; | ||
| 72 | |||
| 73 | bool process_record_user(uint16_t keycode, keyrecord_t *record) { | ||
| 74 | switch (keycode) { | ||
| 75 | // dynamically generate these. | ||
| 76 | case EPRM: | ||
| 77 | if (record->event.pressed) { | ||
| 78 | eeconfig_init(); | ||
| 79 | } | ||
| 80 | return false; | ||
| 81 | break; | ||
| 82 | case VRSN: | ||
| 83 | if (record->event.pressed) { | ||
| 84 | SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION); | ||
| 85 | } | ||
| 86 | return false; | ||
| 87 | break; | ||
| 88 | #ifndef LAYER_UNDERGLOW_LIGHTING | ||
| 89 | case RGB_SLD: | ||
| 90 | if (record->event.pressed) { | ||
| 91 | rgblight_mode(1); | ||
| 92 | } | ||
| 93 | return false; | ||
| 94 | break; | ||
| 95 | #endif | ||
| 96 | |||
| 97 | } | ||
| 98 | return true; | ||
| 99 | } | ||
| 100 | |||
| 101 | void matrix_init_user(void) { // Runs boot tasks for keyboard | ||
| 102 | |||
| 103 | #ifdef LAYER_UNDERGLOW_LIGHTING | ||
| 104 | rgblight_set_teal; | ||
| 105 | #endif | ||
| 106 | |||
| 107 | }; | ||
| 108 | |||
| 109 | |||
| 110 | void matrix_scan_user(void) { | ||
| 111 | |||
| 112 | static uint8_t old_layer = 0; | ||
| 113 | uint8_t new_layer = biton32(layer_state); | ||
| 114 | uint8_t modifiders = get_mods(); | ||
| 115 | |||
| 116 | ergodox_board_led_off(); | ||
| 117 | ergodox_right_led_1_off(); | ||
| 118 | ergodox_right_led_2_off(); | ||
| 119 | ergodox_right_led_3_off(); | ||
| 120 | |||
| 121 | #ifdef LAYER_UNDERGLOW_LIGHTING | ||
| 122 | if ( modifiders & MODS_SHIFT_MASK) { | ||
| 123 | ergodox_right_led_1_on(); | ||
| 124 | } | ||
| 125 | if ( modifiders & MODS_CTRL_MASK) { | ||
| 126 | ergodox_right_led_2_on(); | ||
| 127 | } | ||
| 128 | if ( modifiders & MODS_ALT_MASK) { | ||
| 129 | ergodox_right_led_3_on(); | ||
| 130 | } | ||
| 131 | if (old_layer != new_layer) { | ||
| 132 | switch (new_layer) { | ||
| 133 | case 1: | ||
| 134 | rgblight_set_red; | ||
| 135 | break; | ||
| 136 | case 2: | ||
| 137 | rgblight_set_blue; | ||
| 138 | break; | ||
| 139 | case 3: | ||
| 140 | rgblight_set_green; | ||
| 141 | break; | ||
| 142 | case 4: | ||
| 143 | rgblight_set_yellow; | ||
| 144 | break; | ||
| 145 | case 5: | ||
| 146 | rgblight_setrgb(0xFF, 0xFF, 0x00); | ||
| 147 | break; | ||
| 148 | case 6: | ||
| 149 | rgblight_setrgb(0xFF, 0xFF, 0x00); | ||
| 150 | break; | ||
| 151 | case 7: | ||
| 152 | rgblight_setrgb(0xFF, 0xFF, 0xFF); | ||
| 153 | break; | ||
| 154 | default: | ||
| 155 | rgblight_set_teal; | ||
| 156 | break; | ||
| 157 | } | ||
| 158 | } | ||
| 159 | #else | ||
| 160 | switch (layer) { | ||
| 161 | case 1: | ||
| 162 | ergodox_right_led_1_on(); | ||
| 163 | break; | ||
| 164 | case 2: | ||
| 165 | ergodox_right_led_2_on(); | ||
| 166 | break; | ||
| 167 | case 3: | ||
| 168 | ergodox_right_led_3_on(); | ||
| 169 | break; | ||
| 170 | case 4: | ||
| 171 | ergodox_right_led_1_on(); | ||
| 172 | ergodox_right_led_2_on(); | ||
| 173 | break; | ||
| 174 | case 5: | ||
| 175 | ergodox_right_led_1_on(); | ||
| 176 | ergodox_right_led_3_on(); | ||
| 177 | break; | ||
| 178 | case 6: | ||
| 179 | ergodox_right_led_2_on(); | ||
| 180 | ergodox_right_led_3_on(); | ||
| 181 | break; | ||
| 182 | case 7: | ||
| 183 | ergodox_right_led_1_on(); | ||
| 184 | ergodox_right_led_2_on(); | ||
| 185 | ergodox_right_led_3_on(); | ||
| 186 | break; | ||
| 187 | default: | ||
| 188 | break; | ||
| 189 | } | ||
| 190 | #endif | ||
| 191 | old_layer = new_layer; | ||
| 192 | }; | ||
