]> git.donarmstrong.com Git - qmk_firmware.git/blobdiff - keyboards/ergodox_ez/keymaps/hacker_dvorak/keymap.c
Keymap: Refactor Hacker Dvorak (#4688)
[qmk_firmware.git] / keyboards / ergodox_ez / keymaps / hacker_dvorak / keymap.c
index c42b551084049d6e6642c9c085fad7c44994588e..af06d2bd815d21724b531aca741de71d550d042c 100644 (file)
-#include QMK_KEYBOARD_H
-#include "keymap_dvorak.h"
-#include "sendstring_dvorak.h"
-#include "keymap_plover.h"
-#include "keymap_plover_dvorak.h"
-
-
-#define SCTL(kc) LSFT(LCTL(kc))
-
-// Layers
-enum layers {
-    DVORAK_US = 0,
-    PLOVER_US,
-    GAMING_US,
-    ARROWS_US,
-    MOUSE_US,
-    NUMPAD_US,
-    LAYERS_US,
-    DVORAK_DV,
-    PLOVER_DV,
-    GAMING_DV,
-    ARROWS_DV,
-    MOUSE_DV,
-    NUMPAD_DV,
-    LAYERS_DV,
-    MEDIA_FN,
-    HYPER_FN,
-    MEH_FN,
-    MEH_FN_PLUS,
-    FIRMWARE
-};
-
-int CAPS_LOCK   = 0;
-int NUM_LOCK    = 0;
-int SCROLL_LOCK = 0;
-
-enum tap_dances {
-    TD_ESC_CAPS = 0
-};
-
-qk_tap_dance_action_t tap_dance_actions[] = {
-    [TD_ESC_CAPS]  = ACTION_TAP_DANCE_DOUBLE(KC_ESC, KC_CLCK)
-};
-
-
-enum custom_keycodes {
-    PLACEHOLDER = SAFE_RANGE, // can always be here
-    RGB_GREEN  // to set default RGB layer as green once
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-    /*
-     * ,--------------------------------------------------.    ,--------------------------------------------------.
-     * |    0   |   1  |   2  |   3  |   4  |   5  |  6   |    |  38  |  39  |  40  |  41  |  42  |  43  |   44   |
-     * |--------+------+------+------+------+------+------|    |------+------+------+------+------+------+--------|
-     * |    7   |   8  |   9  |  10  |  11  |  12  |  13  |    |  45  |  46  |  47  |  48  |  49  |  50  |   51   |
-     * |--------+------+------+------+------+------|      |    |      |------+------+------+------+------+--------|
-     * |   14   |  15  |  16  |  17  |  18  |  19  |------|    |------|  52  |  53  |  54  |  55  |  56  |   57   |
-     * |--------+------+------+------+------+------|  26  |    |  58  |------+------+------+------+------+--------|
-     * |   20   |  21  |  22  |  23  |  24  |  25  |      |    |      |  59  |  60  |  61  |  62  |  63  |   64   |
-     * `--------+------+------+------+------+-------------'    `-------------+------+------+------+------+--------'
-     *   |  27  |  28  |  29  |  30  |  31  |                                |  65  |  66  |  67  |  68  |  69  |
-     *   `----------------------------------'                                `----------------------------------'
-     *                                       ,-------------.  ,-------------.
-     *                                       |  32  |  33  |  |  70  |  71  |
-     *                                ,------+------+------|  |------+------+------.
-     *                                |      |      |  34  |  |  72  |      |      |
-     *                                |  35  |  36  |------|  |------|  74  |  75  |
-     *                                |      |      |  37  |  |  73  |      |      |
-     *                                `--------------------'  `--------------------'
-     */
-    [DVORAK_US] = LAYOUT_ergodox(
-        // left hand
-        KC_ESC,     KC_LABK,         KC_LCBR,         KC_LBRC,             KC_LPRN,             KC_EXLM, KC_AMPR,
-        KC_TAB,     KC_QUOT,         SCMD_T(KC_COMM), MEH_T(KC_DOT),       ALL_T(KC_P),         KC_Y,    KC_AT,
-        KC_EQL,     CTL_T(KC_A),     SFT_T(KC_O),     LT(NUMPAD_US, KC_E), LT(ARROWS_US, KC_U), KC_I,
-        KC_BSLS,    ALGR_T(KC_SCLN), ALT_T(KC_Q),     LT(MEDIA_FN, KC_J),  GUI_T(KC_K),         KC_X,    KC_PERC,
-        MO(MEH_FN), TG(LAYERS_US),   KC_CIRC,         KC_PLUS,             KC_COLN,
-
-        // left thumb
-                KC_LEFT, KC_RGHT,
-                         KC_HOME,
-        KC_SPC, KC_BSPC, KC_END,
-
-        // right hand
-        KC_PIPE, KC_QUES, KC_RPRN,            KC_RBRC,            KC_RCBR,      KC_RABK,       KC_ASTR,
-        KC_HASH, KC_F,    ALL_T(KC_G),        MEH_T(KC_C),        SCMD_T(KC_R), KC_L,          KC_SLSH,
-                 KC_D,    LT(MOUSE_US, KC_H), LT(HYPER_FN, KC_T), SFT_T(KC_N),  CTL_T(KC_S),   KC_MINS,
-        KC_DLR,  KC_B,    GUI_T(KC_M),        LT(MEDIA_FN, KC_W), ALT_T(KC_V),  ALGR_T(KC_Z),  KC_GRV,
-                          KC_DQUO,            KC_UNDS,            KC_TILD,      TG(DVORAK_DV), MO(MEH_FN_PLUS),
-
-        // right thumb
-        KC_UP,   KC_DOWN,
-        KC_PGUP,
-        KC_PGDN, KC_DEL,  KC_ENT
-    ),
-
-    [PLOVER_US] = LAYOUT_ergodox(
-        // left hand
-        XXXXXXX,    XXXXXXX,       KC_MS_BTN2, KC_MS_UP,   KC_MS_BTN1,  KC_MS_BTN3, GUI_T(KC_NO),
-        KC_ESC,     KC_MS_BTN4,    KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_MS_BTN5, PV_NUM,
-        KC_TAB,     PV_LS,         PV_LT,      PV_LP,      PV_LH,       PV_STAR,
-        KC_CLCK,    PV_LS,         PV_LK,      PV_LW,      PV_LR,       PV_STAR,    PV_STAR,
-        MO(MEH_FN), TG(LAYERS_US), PV_NUM,     PV_NUM,     PV_NUM,
-
-        // left thumb
-              KC_SPACE, KC_BSPACE,
-                        KC_HOME,
-        PV_A, PV_O,     KC_END,
-
-        // right hand
-        KC_MS_ACCEL2, KC_MS_ACCEL1,  KC_MS_ACCEL0, KC_UP,   KC_APPLICATION, XXXXXXX,        KC_MS_WH_UP,
-        PV_NUM,       KC_MS_WH_LEFT, KC_LEFT,      KC_DOWN, KC_RIGHT,       KC_MS_WH_RIGHT, KC_MS_WH_DOWN,
-                      PV_STAR,       PV_RF,        PV_RP,   PV_RL,          PV_RT,          PV_RD,
-        PV_STAR,      PV_STAR,       PV_RR,        PV_RB,   PV_RG,          PV_RS,          PV_RZ,
-                                     PV_NUM,       PV_NUM,  PV_NUM,         PV_NUM,         MO(MEH_FN_PLUS),
-
-        // right thumb
-        KC_DELETE, KC_ENTER,
-        KC_PGUP,
-        KC_PGDOWN, PV_E,     PV_U
-    ),
-
-    [GAMING_US] = LAYOUT_ergodox(
-        // left hand
-        KC_ESCAPE,            GUI_T(KC_MINS), KC_I,     KC_O,   KC_P,   ALGR_T(KC_EQL), KC_T,
-        KC_TAB,               KC_LALT,        KC_Q,     KC_W,   KC_E,   ALL_T(KC_R),    KC_G,
-        LT(MOUSE_US, KC_GRV), KC_LCTRL,       KC_A,     KC_S,   KC_D,   MEH_T(KC_F),
-        KC_BSLS,              KC_LSHIFT,      KC_Z,     KC_X,   KC_C,   SCMD_T(KC_V),   KC_M,
-        MO(MEH_FN),           TG(LAYERS_US),  KC_COMM, KC_DOT, KC_LBRC,
-
-        // left thumb
-                   MO(MEDIA_FN), KC_NLCK,
-                                 KC_SCLN,
-         KC_SPACE, KC_ENTER,     KC_BSPACE,
-
-        // right hand
-        KC_QUOT,       KC_Y,       KC_K,        KC_U,        KC_KP_7, KC_KP_8,  KC_KP_9,
-        KC_MS_WH_UP,   KC_H,       KC_J,        KC_L,        KC_KP_4, KC_KP_2,  KC_KP_6,
-                       KC_B,       KC_MS_UP,    KC_N,        KC_KP_1, KC_KP_5,  KC_KP_3,
-        KC_MS_WH_DOWN, KC_MS_LEFT, KC_MS_DOWN,  KC_MS_RIGHT, KC_UP,   KC_KP_0,  KC_SLASH,
-                                   KC_RBRC,     KC_LEFT,     KC_DOWN, KC_RIGHT, MO(MEH_FN_PLUS),
-
-        // right thumb
-        KC_MS_BTN5, MO(HYPER_FN),
-        KC_MS_BTN4,
-        KC_MS_BTN3, KC_MS_BTN2,   KC_MS_BTN1
-    ),
-
-    [ARROWS_US] = LAYOUT_ergodox(
-        // left hand
-        XXXXXXX, XXXXXXX,       XXXXXXX,      XXXXXXX,      XXXXXXX,    XXXXXXX, XXXXXXX,
-        XXXXXXX, SCMD_T(KC_NO), MEH_T(KC_NO), ALL_T(KC_NO), XXXXXXX,    XXXXXXX, XXXXXXX,
-        XXXXXXX, KC_LCTRL,      KC_LSHIFT,    XXXXXXX,      _______,    XXXXXXX,
-        XXXXXXX, KC_RALT,       KC_LALT,      GUI_T(KC_NO), XXXXXXX,    XXXXXXX, XXXXXXX,
-        XXXXXXX, XXXXXXX,       XXXXXXX,      XXXXXXX,      XXXXXXX,
-
-        // left thumb
-                  XXXXXXX,   XXXXXXX,
-                             KC_HOME,
-        KC_SPACE, KC_BSPACE, KC_END,
-
-        // right hand
-        LGUI(KC_X), XXXXXXX,       LCTL(KC_X), KC_MS_WH_UP,   XXXXXXX,       XXXXXXX,        XXXXXXX,
-        LGUI(KC_C), XXXXXXX,       LCTL(KC_C), KC_UP,         SCTL(KC_C),    LCTL(KC_Z),     LGUI(KC_Z),
-                    KC_MS_WH_LEFT, KC_LEFT,    KC_DOWN,       KC_RIGHT,      KC_MS_WH_RIGHT, KC_APPLICATION,
-        LGUI(KC_V), XXXXXXX,       LCTL(KC_V), KC_MS_WH_DOWN, SCTL(KC_V),    LCTL(KC_Y),     SGUI(KC_Z),
-        XXXXXXX,    XXXXXXX,       XXXXXXX,    XXXXXXX,       KC_SLCK,
-
-        // right thumb
-        XXXXXXX,   XXXXXXX,
-        KC_PGUP,
-        KC_PGDOWN, KC_DELETE, KC_ENTER
-    ),
-
-    [MOUSE_US] = LAYOUT_ergodox(
-        // left hand
-        XXXXXXX,       XXXXXXX,       XXXXXXX,    KC_MS_WH_UP,   LCTL(KC_X),  XXXXXXX,        LGUI(KC_X),
-        LGUI(KC_Z),    LCTL(KC_Z),    SCTL(KC_C), KC_MS_UP,      LCTL(KC_C),  KC_MS_BTN4,     LGUI(KC_C),
-        KC_MS_BTN3,    KC_MS_WH_LEFT, KC_MS_LEFT, KC_MS_DOWN,    KC_MS_RIGHT, KC_MS_WH_RIGHT,
-        LGUI(KC_Z),    LCTL(KC_Y),    SCTL(KC_V), KC_MS_WH_DOWN, LCTL(KC_V),  KC_MS_BTN5,     LGUI(KC_V),
-        KC_SLCK, XXXXXXX,       XXXXXXX,    XXXXXXX,       XXXXXXX,
-
-        // left thumb
-                    XXXXXXX,    XXXXXXX,
-                                XXXXXXX,
-        KC_MS_BTN1, KC_MS_BTN2, XXXXXXX,
-
-        // right hand
-        XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,      XXXXXXX,      XXXXXXX,       XXXXXXX,
-        XXXXXXX, XXXXXXX, XXXXXXX, ALL_T(KC_NO), MEH_T(KC_NO), SCMD_T(KC_NO), XXXXXXX,
-                 XXXXXXX, _______, KC_MS_ACCEL1, KC_LSHIFT,    KC_LCTRL,      KC_MS_ACCEL2,
-        XXXXXXX, XXXXXXX, XXXXXXX, GUI_T(KC_NO), KC_LALT,      KC_RALT,       XXXXXXX,
-                          XXXXXXX, XXXXXXX,      XXXXXXX,      XXXXXXX,       XXXXXXX,
-
-        // right thumb
-        XXXXXXX, XXXXXXX,
-        XXXXXXX,
-        XXXXXXX, XXXXXXX, KC_MS_ACCEL0
-    ),
-
-    [NUMPAD_US] = LAYOUT_ergodox(
-        // left hand
-        XXXXXXX, XXXXXXX,  XXXXXXX,      XXXXXXX, XXXXXXX,       XXXXXXX, XXXXXXX,
-        XXXXXXX, XXXXXXX,  GUI_T(KC_NO), XXXXXXX, ALL_T(KC_NO),  XXXXXXX, XXXXXXX,
-        _______, KC_LCTRL, KC_LSHIFT,    _______, MEH_T(KC_NO),  XXXXXXX,
-        XXXXXXX, KC_RALT,  KC_LALT,      XXXXXXX, SCMD_T(KC_NO), XXXXXXX, XXXXXXX,
-        XXXXXXX, XXXXXXX,  XXXXXXX,      XXXXXXX, XXXXXXX,
-
-        // left thumb
-                  XXXXXXX,   XXXXXXX,
-                             KC_HOME,
-        KC_SPACE, KC_BSPACE, KC_END,
-
-        // right hand
-        KC_X, KC_A, KC_B,   KC_C, KC_D,     KC_E,    KC_F,
-        KC_O, KC_I, KC_1,   KC_2, KC_3,     KC_SLSH, KC_PERC,
-              KC_M, KC_4,   KC_5, KC_6,     KC_PLUS, KC_MINS,
-        KC_L, KC_J, KC_7,   KC_8, KC_9,     KC_ASTR, KC_CIRC,
-                    KC_DOT, KC_0, KC_COMM, KC_UNDS,  KC_BSLS,
-
-        // right thumb
-        XXXXXXX,   XXXXXXX,
-        KC_PGUP,
-        KC_PGDOWN, KC_DELETE, KC_ENTER
-    ),
-
-    [LAYERS_US] = LAYOUT_ergodox(
-        // left hand
-        XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
-        XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
-        XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
-        XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
-        XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX,
-
-        // left thumb
-                 XXXXXXX, XXXXXXX,
-                          XXXXXXX,
-        XXXXXXX, XXXXXXX, XXXXXXX,
-
-        // right hand
-        XXXXXXX, XXXXXXX, XXXXXXX,       XXXXXXX,       XXXXXXX,       XXXXXXX, XXXXXXX,
-        XXXXXXX, XXXXXXX, XXXXXXX,       XXXXXXX,       XXXXXXX,       XXXXXXX, XXXXXXX,
-                 XXXXXXX, TO(DVORAK_US), TO(PLOVER_US), TO(GAMING_US), XXXXXXX, XXXXXXX,
-        XXXXXXX, XXXXXXX, XXXXXXX,       XXXXXXX,       XXXXXXX,       XXXXXXX, XXXXXXX,
-                          XXXXXXX,       XXXXXXX,       XXXXXXX,       XXXXXXX, XXXXXXX,
-
-        // right thumb
-        XXXXXXX, XXXXXXX,
-        XXXXXXX,
-        XXXXXXX, XXXXXXX, XXXXXXX
-    ),
-
-    [DVORAK_DV] = LAYOUT_ergodox(
-        // left hand
-        KC_ESC,     DV_LABK,         DV_LCBR,         DV_LBRC,             DV_LPRN,             DV_EXLM, DV_AMPR,
-        KC_TAB,     DV_QUOT,         SCMD_T(DV_COMM), MEH_T(DV_DOT),       ALL_T(DV_P),         DV_Y,    DV_AT,
-        DV_EQL,     CTL_T(DV_A),     SFT_T(DV_O),     LT(NUMPAD_DV, DV_E), LT(ARROWS_DV, DV_U), DV_I,
-        DV_BSLS,    ALGR_T(DV_SCLN), ALT_T(DV_Q),     LT(MEDIA_FN, DV_J),  GUI_T(DV_K),         DV_X,    DV_PERC,
-        MO(MEH_FN), TG(LAYERS_DV),   DV_CIRC,         DV_PLUS,             DV_COLN,
-
-        // left thumb
-                KC_LEFT, KC_RGHT,
-                         KC_HOME,
-        KC_SPC, KC_BSPC, KC_END,
-
-        // right hand
-        DV_PIPE, DV_QUES, DV_RPRN,            DV_RBRC,            DV_RCBR,      DV_RABK,      DV_ASTR,
-        DV_HASH, DV_F,    ALL_T(DV_G),        MEH_T(DV_C),        SCMD_T(DV_R), DV_L,         DV_SLSH,
-                 DV_D,    LT(MOUSE_DV, DV_H), LT(HYPER_FN, DV_T), SFT_T(DV_N),  CTL_T(DV_S),  DV_MINS,
-        DV_DLR,  DV_B,    GUI_T(DV_M),        LT(MEDIA_FN, DV_W), ALT_T(DV_V),  ALGR_T(DV_Z), DV_GRV,
-                          DV_DQUO,            DV_UNDS,            DV_TILD,      _______,      MO(MEH_FN_PLUS),
-
-        // right thumb
-        KC_UP,   KC_DOWN,
-        KC_PGUP,
-        KC_PGDN, KC_DEL,  KC_ENT
-    ),
-
-    [PLOVER_DV] = LAYOUT_ergodox(
-        // left hand
-        XXXXXXX,    XXXXXXX,       KC_MS_BTN2, KC_MS_UP,   KC_MS_BTN1,  KC_MS_BTN3, GUI_T(KC_NO),
-        KC_ESC,     KC_MS_BTN4,    KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_MS_BTN5, PD_NUM,
-        KC_TAB,     PD_LS,         PD_LT,      PD_LP,      PD_LH,       PD_STAR,
-        KC_CLCK,    PD_LS,         PD_LK,      PD_LW,      PD_LR,       PD_STAR,    PD_STAR,
-        MO(MEH_FN), TG(LAYERS_DV), PD_NUM,     PD_NUM,     PD_NUM,
-
-        // left thumb
-              KC_SPACE, KC_BSPACE,
-                        KC_HOME,
-        PD_A, PD_O,     KC_END,
-
-        // right hand
-        KC_MS_ACCEL2, KC_MS_ACCEL1,  KC_MS_ACCEL0, KC_UP,   KC_APPLICATION, XXXXXXX,        KC_MS_WH_UP,
-        PD_NUM,       KC_MS_WH_LEFT, KC_LEFT,      KC_DOWN, KC_RIGHT,       KC_MS_WH_RIGHT, KC_MS_WH_DOWN,
-                      PD_STAR,       PD_RF,        PD_RP,   PD_RL,          PD_RT,          PD_RD,
-        PD_STAR,      PD_STAR,       PD_RR,        PD_RB,   PD_RG,          PD_RS,          PD_RZ,
-                                     PD_NUM,       PD_NUM,  PD_NUM,         PD_NUM,         MO(MEH_FN_PLUS),
-
-        // right thumb
-        KC_DELETE, KC_ENTER,
-        KC_PGUP,
-        KC_PGDOWN, PD_E,     PD_U
-    ),
-
-    [GAMING_DV] = LAYOUT_ergodox(
-        // left hand
-        KC_ESCAPE,            GUI_T(DV_MINS), DV_I,    DV_O,   DV_P,    ALGR_T(DV_EQL), DV_T,
-        KC_TAB,               KC_LALT,        DV_Q,    DV_W,   DV_E,    ALL_T(DV_R),    DV_G,
-        LT(MOUSE_DV, DV_GRV), KC_LCTRL,       DV_A,    DV_S,   DV_D,    MEH_T(DV_F),
-        DV_BSLS,              KC_LSHIFT,      DV_Z,    DV_X,   DV_C,    SCMD_T(DV_V),   DV_M,
-        MO(MEH_FN),           TG(LAYERS_DV),  DV_COMM, DV_DOT, DV_LBRC,
-
-        // left thumb
-                   MO(MEDIA_FN), KC_NLCK,
-                                 DV_SCLN,
-         KC_SPACE, KC_ENTER,     KC_BSPACE,
-
-        // right hand
-        DV_QUOT,       DV_Y,       DV_K,       DV_U,        KC_KP_7, KC_KP_8,  KC_KP_9,
-        KC_MS_WH_UP,   DV_H,       DV_J,       DV_L,        KC_KP_4, KC_KP_2,  KC_KP_6,
-                       DV_B,       KC_MS_UP,   DV_N,        KC_KP_1, KC_KP_5,  KC_KP_3,
-        KC_MS_WH_DOWN, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_UP,   KC_KP_0,  DV_SLSH,
-                                   DV_RBRC,    KC_LEFT,     KC_DOWN, KC_RIGHT, MO(MEH_FN_PLUS),
-
-        // right thumb
-        KC_MS_BTN5, MO(HYPER_FN),
-        KC_MS_BTN4,
-        KC_MS_BTN3, KC_MS_BTN2,   KC_MS_BTN1
-    ),
-
-    [ARROWS_DV] = LAYOUT_ergodox(
-        // left hand
-        XXXXXXX, XXXXXXX,       XXXXXXX,      XXXXXXX,      XXXXXXX, XXXXXXX, XXXXXXX,
-        XXXXXXX, SCMD_T(KC_NO), MEH_T(KC_NO), ALL_T(KC_NO), XXXXXXX, XXXXXXX, XXXXXXX,
-        XXXXXXX, KC_LCTRL,      KC_LSHIFT,    XXXXXXX,      _______, XXXXXXX,
-        XXXXXXX, KC_RALT,       KC_LALT,      GUI_T(KC_NO), XXXXXXX, XXXXXXX, XXXXXXX,
-        XXXXXXX, XXXXXXX,       XXXXXXX,      XXXXXXX,      XXXXXXX,
-
-        // left thumb
-                  XXXXXXX,   XXXXXXX,
-                             KC_HOME,
-        KC_SPACE, KC_BSPACE, KC_END,
-
-        // right hand
-        LGUI(DV_X), XXXXXXX,       LCTL(DV_X), KC_MS_WH_UP,   XXXXXXX,       XXXXXXX,        XXXXXXX,
-        LGUI(DV_C), XXXXXXX,       LCTL(DV_C), KC_UP,         SCTL(DV_C),    LCTL(DV_Z),     LGUI(DV_Z),
-                    KC_MS_WH_LEFT, KC_LEFT,    KC_DOWN,       KC_RIGHT,      KC_MS_WH_RIGHT, KC_APPLICATION,
-        LGUI(DV_V), XXXXXXX,       LCTL(DV_V), KC_MS_WH_DOWN, SCTL(DV_V),    LCTL(DV_Y),     SGUI(DV_Z),
-        XXXXXXX,    XXXXXXX,       XXXXXXX,    XXXXXXX,       KC_SLCK,
-
-        // right thumb
-        XXXXXXX,   XXXXXXX,
-        KC_PGUP,
-        KC_PGDOWN, KC_DELETE, KC_ENTER
-    ),
-
-    [MOUSE_DV] = LAYOUT_ergodox(
-        // left hand
-        XXXXXXX,       XXXXXXX,       XXXXXXX,    KC_MS_WH_UP,   LCTL(DV_X),  XXXXXXX,        LGUI(DV_X),
-        LGUI(DV_Z),    LCTL(DV_Z),    SCTL(DV_C), KC_MS_UP,      LCTL(DV_C),  KC_MS_BTN4,     LGUI(DV_C),
-        KC_MS_BTN3,    KC_MS_WH_LEFT, KC_MS_LEFT, KC_MS_DOWN,    KC_MS_RIGHT, KC_MS_WH_RIGHT,
-        LGUI(DV_Z),    LCTL(DV_Y),    SCTL(DV_V), KC_MS_WH_DOWN, LCTL(DV_V),  KC_MS_BTN5,     LGUI(DV_V),
-        KC_SLCK, XXXXXXX,       XXXXXXX,    XXXXXXX,       XXXXXXX,
-
-        // left thumb
-                    XXXXXXX,    XXXXXXX,
-                                XXXXXXX,
-        KC_MS_BTN1, KC_MS_BTN2, XXXXXXX,
-
-        // right hand
-        XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,      XXXXXXX,      XXXXXXX,       XXXXXXX,
-        XXXXXXX, XXXXXXX, XXXXXXX, ALL_T(KC_NO), MEH_T(KC_NO), SCMD_T(KC_NO), XXXXXXX,
-                 XXXXXXX, _______, KC_MS_ACCEL1, KC_LSHIFT,    KC_LCTRL,      KC_MS_ACCEL2,
-        XXXXXXX, XXXXXXX, XXXXXXX, GUI_T(KC_NO), KC_LALT,      KC_RALT,       XXXXXXX,
-                          XXXXXXX, XXXXXXX,      XXXXXXX,      XXXXXXX,       XXXXXXX,
-
-        // right thumb
-        XXXXXXX, XXXXXXX,
-        XXXXXXX,
-        XXXXXXX, XXXXXXX, KC_MS_ACCEL0
-    ),
-
-    [NUMPAD_DV] = LAYOUT_ergodox(
-        // left hand
-        XXXXXXX, XXXXXXX,  XXXXXXX,      XXXXXXX, XXXXXXX,       XXXXXXX, XXXXXXX,
-        XXXXXXX, XXXXXXX,  GUI_T(KC_NO), XXXXXXX, ALL_T(KC_NO),  XXXXXXX, XXXXXXX,
-        _______, KC_LCTRL, KC_LSHIFT,    _______, MEH_T(KC_NO),  XXXXXXX,
-        XXXXXXX, KC_RALT,  KC_LALT,      XXXXXXX, SCMD_T(KC_NO), XXXXXXX, XXXXXXX,
-        XXXXXXX, XXXXXXX,  XXXXXXX,      XXXXXXX, XXXXXXX,
-
-        // left thumb
-                  XXXXXXX,   XXXXXXX,
-                             KC_HOME,
-        KC_SPACE, KC_BSPACE, KC_END,
-
-        // right hand
-        DV_X, DV_A, DV_B,   DV_C, DV_D,    DV_E,    DV_F,
-        DV_O, DV_I, DV_1,   DV_2, DV_3,    DV_SLSH, DV_PERC,
-              DV_M, DV_4,   DV_5, DV_6,    DV_PLUS, DV_MINS,
-        DV_L, DV_J, DV_7,   DV_8, DV_9,    DV_ASTR, DV_CIRC,
-                    DV_DOT, DV_0, DV_COMM, DV_UNDS, DV_BSLS,
-
-        // right thumb
-        XXXXXXX,   XXXXXXX,
-        KC_PGUP,
-        KC_PGDOWN, KC_DELETE, KC_ENTER
-    ),
-
-    [LAYERS_DV] = LAYOUT_ergodox(
-        // left hand
-        XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
-        XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
-        XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
-        XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
-        XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX,
-
-        // left thumb
-                 XXXXXXX, XXXXXXX,
-                          XXXXXXX,
-        XXXXXXX, XXXXXXX, XXXXXXX,
-
-        // right hand
-        XXXXXXX, XXXXXXX, XXXXXXX,       XXXXXXX,       XXXXXXX,       XXXXXXX, XXXXXXX,
-        XXXXXXX, XXXXXXX, XXXXXXX,       XXXXXXX,       XXXXXXX,       XXXXXXX, XXXXXXX,
-                 XXXXXXX, TO(DVORAK_DV), TO(PLOVER_DV), TO(GAMING_DV), XXXXXXX, XXXXXXX,
-        XXXXXXX, XXXXXXX, XXXXXXX,       XXXXXXX,       XXXXXXX,       XXXXXXX, XXXXXXX,
-                          XXXXXXX,       XXXXXXX,       XXXXXXX,       XXXXXXX, XXXXXXX,
-
-        // right thumb
-        XXXXXXX, XXXXXXX,
-        XXXXXXX,
-        XXXXXXX, XXXXXXX, XXXXXXX
-    ),
-
-    [MEDIA_FN] = LAYOUT_ergodox(
-        // left hand
-        KC_AUDIO_VOL_DOWN,   KC_AUDIO_MUTE, RGB_TOG,    XXXXXXX, KC_MAIL,      KC_FIND, KC_WWW_REFRESH,
-        KC_MEDIA_PREV_TRACK, KC_F9,         KC_F7,      KC_F5,   KC_F3,        KC_F1,   KC_WWW_HOME,
-        KC_PAUSE,            KC_F19,        KC_F17,     KC_F15,  KC_F13,       KC_F11,
-        RGB_HUD,             XXXXXXX,       XXXXXXX,    _______, KC_F23,       KC_F21,  KC_WWW_BACK,
-        RGB_VAD,             KC_CLCK,       KC_PSCREEN, XXXXXXX, MO(FIRMWARE),
-
-        // left thumb
-                 _______, XXXXXXX,
-                          XXXXXXX,
-        XXXXXXX, XXXXXXX, KC_MEDIA_EJECT,
-
-        // right hand
-        KC_WWW_FAVORITES, KC_MY_COMPUTER, KC_CALCULATOR,   XXXXXXX, RGB_MOD,         RGB_M_P,        KC_AUDIO_VOL_UP,
-        KC_WWW_SEARCH,    KC_F2,          KC_F4,           KC_F6,   KC_F8,           KC_F10,         KC_MEDIA_NEXT_TRACK,
-                          KC_F12,         KC_F14,          KC_F16,  KC_F18,          KC_F20,         KC_MEDIA_PLAY_PAUSE,
-        KC_WWW_FORWARD,   KC_F22,         KC_F24,          _______, XXXXXXX,         XXXXXXX,        RGB_HUI,
-                                          KC_SYSTEM_POWER, XXXXXXX, KC_SYSTEM_SLEEP, KC_SYSTEM_WAKE, RGB_VAI,
-
-        // right thumb
-        XXXXXXX,   XXXXXXX,
-        XXXXXXX,
-        RGB_GREEN, XXXXXXX, XXXXXXX
-    ),
-
-    [HYPER_FN] = LAYOUT_ergodox(
-        // left hand
-        XXXXXXX, HYPR(KC_F1),  HYPR(KC_F2),  HYPR(KC_F3),  HYPR(KC_F4),  HYPR(KC_F5),  XXXXXXX,
-        XXXXXXX, HYPR(KC_F6),  HYPR(KC_F7),  HYPR(KC_F8),  HYPR(KC_F9),  HYPR(KC_F10), XXXXXXX,
-        XXXXXXX, HYPR(KC_F11), HYPR(KC_F12), HYPR(KC_F13), HYPR(KC_F14), HYPR(KC_F15),
-        XXXXXXX, HYPR(KC_F16), HYPR(KC_F17), HYPR(KC_F18), HYPR(KC_F19), HYPR(KC_F20), XXXXXXX,
-        XXXXXXX, HYPR(KC_F21), HYPR(KC_F22), HYPR(KC_F23), HYPR(KC_F24),
-
-        // left thumb
-                 XXXXXXX, XXXXXXX,
-                          XXXXXXX,
-        XXXXXXX, XXXXXXX, XXXXXXX,
-
-        // right hand
-        XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
-        XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
-                 XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX,
-        XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
-                 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
-
-        // right thumb
-        XXXXXXX, _______,
-        XXXXXXX,
-        XXXXXXX, XXXXXXX, XXXXXXX
-    ),
-
-    [MEH_FN] = LAYOUT_ergodox(
-        // left hand
-        LCA(KC_F11),  LCA(KC_F9),  LCA(KC_F7),  LCA(KC_F5),  LCA(KC_F3),  LCA(KC_F1),  XXXXXXX,
-        LCAG(KC_F11), LCAG(KC_F9), LCAG(KC_F7), LCAG(KC_F5), LCAG(KC_F3), LCAG(KC_F1), XXXXXXX,
-        MEH(KC_F11),  MEH(KC_F9),  MEH(KC_F7),  MEH(KC_F5),  MEH(KC_F3),  MEH(KC_F1),
-        SGUI(KC_F11), SGUI(KC_F9), SGUI(KC_F7), SGUI(KC_F5), SGUI(KC_F3), SGUI(KC_F1), XXXXXXX,
-        _______,      XXXXXXX,     XXXXXXX,     XXXXXXX,     XXXXXXX,
-
-        // left thumb
-                 XXXXXXX, XXXXXXX,
-                          XXXXXXX,
-        XXXXXXX, XXXXXXX, XXXXXXX,
-
-        // right hand
-        XXXXXXX, LCA(KC_F2),  LCA(KC_F4),  LCA(KC_F6),  LCA(KC_F8),  LCA(KC_F10),  LCA(KC_F12),
-        XXXXXXX, LCAG(KC_F2), LCAG(KC_F4), LCAG(KC_F6), LCAG(KC_F8), LCAG(KC_F10), LCAG(KC_F12),
-                 MEH(KC_F2),  MEH(KC_F4),  MEH(KC_F6),  MEH(KC_F8),  MEH(KC_F10),  MEH(KC_F12),
-        XXXXXXX, SGUI(KC_F2), SGUI(KC_F4), SGUI(KC_F6), SGUI(KC_F8), SGUI(KC_F10), SGUI(KC_F12),
-                              XXXXXXX,     XXXXXXX,     XXXXXXX,     XXXXXXX,      XXXXXXX,
-
-        // right thumb
-        XXXXXXX, XXXXXXX,
-        XXXXXXX,
-        XXXXXXX, XXXXXXX, XXXXXXX
-    ),
-
-    [MEH_FN_PLUS] = LAYOUT_ergodox(
-        // left hand
-        LCA(KC_F23),  LCA(KC_F21),  LCA(KC_F19),  LCA(KC_F17),  LCA(KC_F15),  LCA(KC_F13),  XXXXXXX,
-        LCAG(KC_F23), LCAG(KC_F21), LCAG(KC_F19), LCAG(KC_F17), LCAG(KC_F15), LCAG(KC_F13), XXXXXXX,
-        MEH(KC_F23),  MEH(KC_F21),  MEH(KC_F19),  MEH(KC_F17),  MEH(KC_F15),  MEH(KC_F13),
-        SGUI(KC_F23), SGUI(KC_F21), SGUI(KC_F19), SGUI(KC_F17), SGUI(KC_F15), SGUI(KC_F13), XXXXXXX,
-        XXXXXXX,      XXXXXXX,      XXXXXXX,      XXXXXXX,      XXXXXXX,
-
-        // left thumb
-                 XXXXXXX, XXXXXXX,
-                          XXXXXXX,
-        XXXXXXX, XXXXXXX, XXXXXXX,
-
-        // right hand
-        XXXXXXX, LCA(KC_F14),  LCA(KC_F16),  LCA(KC_F18),  LCA(KC_F20),  LCA(KC_F22),  LCA(KC_F24),
-        XXXXXXX, LCAG(KC_F14), LCAG(KC_F16), LCAG(KC_F18), LCAG(KC_F20), LCAG(KC_F22), LCAG(KC_F24),
-                 MEH(KC_F14),  MEH(KC_F16),  MEH(KC_F18),  MEH(KC_F20),  MEH(KC_F22),  MEH(KC_F24),
-        XXXXXXX, SGUI(KC_F14), SGUI(KC_F16), SGUI(KC_F18), SGUI(KC_F20), SGUI(KC_F22), SGUI(KC_F24),
-                               XXXXXXX,      XXXXXXX,      XXXXXXX,      XXXXXXX,      _______,
-
-        // right thumb
-        XXXXXXX, XXXXXXX,
-        XXXXXXX,
-        XXXXXXX, XXXXXXX, XXXXXXX
-    ),
-
-    [FIRMWARE] = LAYOUT_ergodox(
-        // left hand
-        XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
-        XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
-        XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
-        XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
-        XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______,
-
-        // left thumb
-               XXXXXXX, XXXXXXX,
-                        XXXXXXX,
-        RESET, XXXXXXX, XXXXXXX,
-
-        // right hand
-        XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
-        XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
-                 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
-        XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
-                          XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
-
-        // right thumb
-        XXXXXXX, XXXXXXX,
-        XXXXXXX,
-        XXXXXXX, XXXXXXX, EEP_RST
-    )
-};
-
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
-    switch (keycode) {
-        case RGB_GREEN:
-            if (record->event.pressed) {
-                #ifdef RGBLIGHT_ENABLE
-                    rgblight_enable();
-                    rgblight_mode(1);
-                    rgblight_sethsv_red();
-                #endif
-            }
-
-            return false;
-
-        case KC_CLCK:
-            if (record->event.pressed) {
-                if (!(CAPS_LOCK)) {
-                    ergodox_right_led_1_on();
-                    CAPS_LOCK = 1;
-                } else {
-                    ergodox_right_led_1_off();
-                    CAPS_LOCK = 0;
-                }
-            }
-
-            return true;
-
-        case KC_NLCK:
-            if (record->event.pressed) {
-                if (!(NUM_LOCK)) {
-                    ergodox_right_led_2_on();
-                    NUM_LOCK = 1;
-                } else {
-                    ergodox_right_led_2_off();
-                    NUM_LOCK = 0;
-                }
-            }
-
-            return true;
-
-        case KC_SLCK:
-            if (record->event.pressed) {
-                if (!(SCROLL_LOCK)) {
-                    ergodox_right_led_3_on();
-                    SCROLL_LOCK = 1;
-                } else {
-                    ergodox_right_led_3_off();
-                    SCROLL_LOCK = 0;
-                }
-            }
-
-        case KC_MS_WH_LEFT:
-            if (record->event.pressed) {
-                if (SCROLL_LOCK) {
-                    return false;
-                } else {
-                    return true;
-                }
-            }
-
-        case KC_MS_WH_UP:
-            if (record->event.pressed) {
-                if (SCROLL_LOCK) {
-                    return false;
-                } else {
-                    return true;
-                }
-            }
-
-        case KC_MS_WH_DOWN:
-            if (record->event.pressed) {
-                if (SCROLL_LOCK) {
-                    return false;
-                } else {
-                    return true;
-                }
-            }
-
-        case KC_MS_WH_RIGHT:
-            if (record->event.pressed) {
-                if (SCROLL_LOCK) {
-                    return false;
-                } else {
-                    return true;
-                }
-            }
-
-        default:
-            return true;
-    }
-}
-
-uint32_t layer_state_set_user(uint32_t state) {
-    uint8_t layer = biton32(state);
-
-    switch (layer) {
-        case DVORAK_US:
-            rgblight_sethsv_noeeprom_red();
-            rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
-
-            break;
-
-        case PLOVER_US:
-            rgblight_sethsv_noeeprom_red();
-            rgblight_mode_noeeprom(RGBLIGHT_MODE_BREATHING + 3);
-
-            break;
-
-        case GAMING_US:
-            rgblight_sethsv_noeeprom_red();
-            rgblight_mode_noeeprom(RGBLIGHT_MODE_BREATHING + 3);
-
-            break;
-
-        case ARROWS_US:
-            rgblight_sethsv_noeeprom_blue();
-            rgblight_mode_noeeprom(RGBLIGHT_MODE_KNIGHT + 2);
-
-            break;
-
-        case MOUSE_US:
-            rgblight_sethsv_noeeprom_blue();
-            rgblight_mode_noeeprom(RGBLIGHT_MODE_KNIGHT + 2);
-
-            break;
-
-        case NUMPAD_US:
-            rgblight_sethsv_noeeprom_blue();
-            rgblight_mode_noeeprom(RGBLIGHT_MODE_KNIGHT + 2);
-
-            break;
-
-        case LAYERS_US:
-            rgblight_sethsv_noeeprom_cyan();
-            rgblight_mode_noeeprom(RGBLIGHT_MODE_KNIGHT + 2);
-
-            break;
-
-        case DVORAK_DV:
-            rgblight_sethsv_noeeprom_green();
-            rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
-            break;
-
-        case PLOVER_DV:
-            rgblight_sethsv_noeeprom_green();
-            rgblight_mode_noeeprom(RGBLIGHT_MODE_BREATHING + 3);
-
-            break;
-
-        case GAMING_DV:
-            rgblight_sethsv_noeeprom_green();
-            rgblight_mode_noeeprom(RGBLIGHT_MODE_BREATHING + 3);
-
-            break;
-
-        case ARROWS_DV:
-            rgblight_sethsv_noeeprom_blue();
-            rgblight_mode_noeeprom(RGBLIGHT_MODE_KNIGHT + 2);
-
-            break;
-
-        case MOUSE_DV:
-            rgblight_sethsv_noeeprom_blue();
-            rgblight_mode_noeeprom(RGBLIGHT_MODE_KNIGHT + 2);
-
-            break;
-
-        case NUMPAD_DV:
-            rgblight_sethsv_noeeprom_blue();
-            rgblight_mode_noeeprom(RGBLIGHT_MODE_KNIGHT + 2);
-
-            break;
-
-        case LAYERS_DV:
-            rgblight_sethsv_noeeprom_cyan();
-            rgblight_mode_noeeprom(RGBLIGHT_MODE_KNIGHT + 2);
-
-            break;
-
-        case MEDIA_FN:
-            rgblight_sethsv_noeeprom_yellow();
-            rgblight_mode_noeeprom(RGBLIGHT_MODE_KNIGHT + 2);
-
-            break;
-
-        case HYPER_FN:
-            rgblight_sethsv_noeeprom_magenta();
-            rgblight_mode_noeeprom(RGBLIGHT_MODE_KNIGHT + 2);
-
-            break;
-
-        case MEH_FN:
-            rgblight_sethsv_noeeprom_magenta();
-            rgblight_mode_noeeprom(RGBLIGHT_MODE_SNAKE + 4);
-
-            break;
-
-        case MEH_FN_PLUS:
-            rgblight_sethsv_noeeprom_magenta();
-            rgblight_mode_noeeprom(RGBLIGHT_MODE_SNAKE + 5);
-
-            break;
-
-        case FIRMWARE:
-            rgblight_sethsv_noeeprom_pink();
-            rgblight_mode_noeeprom(RGBLIGHT_MODE_KNIGHT + 2);
-
-            break;
-
-        default:
-            break;
-    }
-
-    return state;
-};
+#include QMK_KEYBOARD_H       // Includes the QMK-verse.
+#include "keymap_plover.h"    // Includes the Plover keymap for easier readability.
+
+
+// TODO: No eeprom changes unless needed, custom rgb settings for animations.
+#include "keycodes/aliases_definitions.c"
+#include "layers/layers_definitions.c"
+#include "tap_dance/tap_dance_setup.c"
+#include "tap_dance/tap_dances.c"
+#include "user/matrix_scan_user.c"
+#include "tap_dance/mod_tap_layer_dances/none_lead.c"
+#include "tap_dance/tap_dance_actions.c"
+#include "keycodes/custom_keycodes.c"
+#include "dynamic_macro.h"    // Includes dynamic macro definitions, needed *after* the custom keycodes.
+#include "hacker_dvorak.c"
+#include "user/eeconfig_init_user.c"
+#include "user/process_record_user.c"
+#include "plover/plover_mode.c"
+#include "user/layer_set_state_user.c"