summaryrefslogtreecommitdiff
path: root/keyboards/ergodox_ez/keymaps/hacker_dvorak/keymap.c
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/ergodox_ez/keymaps/hacker_dvorak/keymap.c')
-rw-r--r--keyboards/ergodox_ez/keymaps/hacker_dvorak/keymap.c781
1 files changed, 781 insertions, 0 deletions
diff --git a/keyboards/ergodox_ez/keymaps/hacker_dvorak/keymap.c b/keyboards/ergodox_ez/keymaps/hacker_dvorak/keymap.c
new file mode 100644
index 0000000000..c42b551084
--- /dev/null
+++ b/keyboards/ergodox_ez/keymaps/hacker_dvorak/keymap.c
@@ -0,0 +1,781 @@
+#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;
+};