forked from forks/qmk_firmware
538874f90f
* Hacker Dvorak Programmer Dvorak based layout for the Ergodox EZ. * Address drashna comments. * Fix RGB and drop OSL for MO. * Add gulp file to automate development. * Fix gulpfile. * Caps, num and scroll lock indicators. * Fix scroll lock.
782 lines
30 KiB
C
782 lines
30 KiB
C
#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;
|
|
};
|