diff options
| -rw-r--r-- | keyboards/ergodox/keymaps/reset_eeprom/keymap.c | 140 | 
1 files changed, 140 insertions, 0 deletions
| diff --git a/keyboards/ergodox/keymaps/reset_eeprom/keymap.c b/keyboards/ergodox/keymaps/reset_eeprom/keymap.c new file mode 100644 index 0000000000..f708454ce2 --- /dev/null +++ b/keyboards/ergodox/keymaps/reset_eeprom/keymap.c @@ -0,0 +1,140 @@ +#include "ergodox.h" +#include "debug.h" +#include "action_layer.h" +#include "version.h" + +#define BASE 0 // default layer +#define SYMB 1 // symbols +#define MDIA 2 // media keys + +enum custom_keycodes { +  PLACEHOLDER = SAFE_RANGE, // can always be here +  EPRM, +  VRSN, +  RGB_SLD +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Basic layer + * + * ,--------------------------------------------------.           ,--------------------------------------------------. + * |   =    |   1  |   2  |   3  |   4  |   5  | LEFT |           | RIGHT|   6  |   7  |   8  |   9  |   0  |   -    | + * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------| + * | Del    |   Q  |   W  |   E  |   R  |   T  |  L1  |           |  L1  |   Y  |   U  |   I  |   O  |   P  |   \    | + * |--------+------+------+------+------+------|      |           |      |------+------+------+------+------+--------| + * | BkSp   |   A  |   S  |   D  |   F  |   G  |------|           |------|   H  |   J  |   K  |   L  |; / L2|' / Cmd | + * |--------+------+------+------+------+------| Hyper|           | Meh  |------+------+------+------+------+--------| + * | LShift |Z/Ctrl|   X  |   C  |   V  |   B  |      |           |      |   N  |   M  |   ,  |   .  |//Ctrl| RShift | + * `--------+------+------+------+------+-------------'           `-------------+------+------+------+------+--------' + *   |Grv/L1|  '"  |AltShf| Left | Right|                                       |  Up  | Down |   [  |   ]  | ~L1  | + *   `----------------------------------'                                       `----------------------------------' + *                                        ,-------------.       ,-------------. + *                                        | App  | LGui |       | Alt  |Ctrl/Esc| + *                                 ,------|------|------|       |------+--------+------. + *                                 |      |      | Home |       | PgUp |        |      | + *                                 | Space|Backsp|------|       |------|  Tab   |Enter | + *                                 |      |ace   | End  |       | PgDn |        |      | + *                                 `--------------------'       `----------------------' + */ +// If it accepts an argument (i.e, is a function), it doesn't need KC_. +// Otherwise, it needs KC_* +[BASE] = KEYMAP(  // layer 0 : default +        // left hand +        EPRM,         EPRM,         EPRM,   EPRM,   EPRM,   EPRM,   EPRM, +        EPRM,        EPRM,         EPRM,   EPRM,   EPRM,   EPRM,   EPRM, +        EPRM,        EPRM,         EPRM,   EPRM,   EPRM,   EPRM, +        EPRM,        EPRM,  EPRM,   EPRM,   EPRM,   EPRM,   EPRM, +        EPRM,        EPRM,      EPRM,  EPRM,EPRM, +                                              EPRM,  EPRM, +                                                              EPRM, +                                               EPRM,EPRM,EPRM, +        // right hand +             EPRM,     EPRM,   EPRM,  EPRM,   EPRM,   EPRM,             EPRM, +             EPRM,    EPRM,   EPRM,  EPRM,   EPRM,   EPRM,             EPRM, +                          EPRM,   EPRM,  EPRM,   EPRM,   EPRM,EPRM, +             EPRM,EPRM,   EPRM,  EPRM,EPRM, EPRM,   EPRM, +                                  EPRM, EPRM,EPRM,EPRM,          EPRM, +             EPRM,        EPRM, +             EPRM, +             EPRM,EPRM, EPRM +    ) +}; + +const uint16_t PROGMEM fn_actions[] = { +    [1] = ACTION_LAYER_TAP_TOGGLE(SYMB)                // FN1 - Momentary Layer 1 (Symbols) +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ +  // MACRODOWN only works in this function +      switch(id) { +        case 0: +        if (record->event.pressed) { +          SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION); +        } +        break; +        case 1: +        if (record->event.pressed) { // For resetting EEPROM +          eeconfig_init(); +        } +        break; +      } +    return MACRO_NONE; +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { +  switch (keycode) { +    // dynamically generate these. +    case EPRM: +      if (record->event.pressed) { +        eeconfig_init(); +      } +      return false; +      break; +    case VRSN: +      if (record->event.pressed) { +        SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION); +      } +      return false; +      break; +    case RGB_SLD: +      if (record->event.pressed) { +        #ifdef RGBLIGHT_ENABLE +          rgblight_mode(1); +        #endif +      } +      return false; +      break; +  } +  return true; +} + +// Runs just one time when the keyboard initializes. +void matrix_init_user(void) { + +}; + + +// Runs constantly in the background, in a loop. +void matrix_scan_user(void) { + +    uint8_t layer = biton32(layer_state); + +    ergodox_board_led_off(); +    ergodox_right_led_1_off(); +    ergodox_right_led_2_off(); +    ergodox_right_led_3_off(); +    switch (layer) { +      // TODO: Make this relevant to the ErgoDox EZ. +        case 1: +            ergodox_right_led_1_on(); +            break; +        case 2: +            ergodox_right_led_2_on(); +            break; +        default: +            // none +            break; +    } + +}; | 
