Keymap: Refactor Hacker Dvorak (#4688)
Programmer Dvorak based layout for the Ergodox EZ.clockworkpi
parent
b13162f7fd
commit
5eb8f3f6b5
@ -1 +0,0 @@ |
||||
https://i.imgur.com/fKX0Zbs.png |
@ -1 +0,0 @@ |
||||
https://i.imgur.com/giAc3M9.jpg |
@ -0,0 +1,353 @@ |
||||
// Keyboard keymap:
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |
||||
[DVORAK] = LAYOUT_ergodox( |
||||
|
||||
// HACKER DVORAK left hand
|
||||
|
||||
//------------------------+-------------------------+-------------------------+-------------------------+-------------------------+-------------------------+------------------------//
|
||||
// ESCAPE | | | | | | START RECORDING //
|
||||
// | | | | | | //
|
||||
KC_ESC, TD(GRV_TILD), TD(AT_DLR), TD(LCBR_LABK), TD(LPRN_LBRC), TD(EXLM_QUES), DYN_REC_START1, //
|
||||
// | ~ | $ | < | [ | ? | //
|
||||
// | TAP DANCE: ` | TAP DANCE: @ TAP DANCE: { | TAP DANCE: ( | TAP DANCE: ! | DYNAMIC MARCO 1 //
|
||||
//------------------------+-------------------------+-------------------------+-------------------------+-------------------------+-------------------------+------------------------//
|
||||
// TAB | MOD TAP: ALT+SHIFT | MOD TAP: CTRL+ALT | MOD TAP: CTRL+SHIFT | P | Y | //
|
||||
// | | | | | | //
|
||||
KC_TAB, TD(NONE_LEAD), TD(QUOT_DQUO), TD(DOT_COMM), ALL_T(KC_P), MEH_T(KC_Y), DYN_MACRO_PLAY1, //
|
||||
// | LEAD | " | , | | | //
|
||||
// | TAP DANCE: NONE | TAP DANCE: ' | TAP DANCE: . | MOD TAP: HYPER | MOD TAP: MEH | //
|
||||
//------------------------+-------------------------+-------------------------+-------------------------+-------------------------+-------------------------| PLAY DYNAMIC MACRO 1 //
|
||||
// | MOD TAP: ALT | MOD TAP: CTRL | LAYER TAP: SHIFT | LAYER TAP: ARROW KEYS | MOD TAP: GUI | //
|
||||
// | | | | Ü | | //
|
||||
TD(EQL_PLUS), ALT_T(KC_A), CTL_T(KC_O), SFT_T(KC_E), LT(ARROWS, KC_U), LGUI_T(KC_I), //-----------------------//
|
||||
// + | Á | Ó | É | Ú | Í | //
|
||||
// TAP DANCE: = | TAP DANCE: A | TAP DANCE: O | TAP DANCE: E | TAP DANCE: U | TAP DANCE: I | //
|
||||
//------------------------+-------------------------+-------------------------+-------------------------+-------------------------+-------------------------| META //
|
||||
// STOP RECORDING | MOD TAP: GUI+SHIFT+ALT | Q | J | K | X | //
|
||||
// | | | | | | //
|
||||
DYN_REC_STOP, TD(SCLN_COLN), SGUI_T(KC_Q), LT(MEDIA_FN, KC_J), LT(NUMPAD, KC_K), LCAG_T(KC_X), KC_LGUI, //
|
||||
// | : | | | | | //
|
||||
// DYNAMIC MACRO | TAP DANCE: ; | MOD TAP: SHIFT+GUI | LAYER TAP: MEDIA/F-KEYS | LAYER TAP: ATM NUMPAD | MOD TAP: CTL+ALT+GUI | //
|
||||
//------------------------+-------------------------+-------------------------+-------------------------+-------------------------+-------------------------+------------------------//
|
||||
// LAYERS SWITCHER | APPLICATION MENU | | | //
|
||||
// | | | | SCROLL //
|
||||
TG(LAYERS), KC_APP, KC_NLCK, KC_SLCK, KC_CAPS, //
|
||||
// | | | | NUM //
|
||||
// LAYER TOGGLE | | | | TAP DANCE: CAPS //
|
||||
//------------------------+-------------------------+-------------------------+-------------------------+------------------------//
|
||||
|
||||
// HACKER DVORAK left thumb
|
||||
|
||||
//------------------------+------------------------//
|
||||
// MOUSE WHEEL LEFT | MOUSE WHEEL RIGHT //
|
||||
// | //
|
||||
KC_WH_L, KC_WH_R, //
|
||||
// | //
|
||||
// | //
|
||||
//-------------------------+-------------------------+------------------------//
|
||||
// | | HOME //
|
||||
// | | //
|
||||
/* SPACE | BACKSPACE */ KC_HOME, //
|
||||
// | | //
|
||||
// | | //
|
||||
KC_SPC, KC_BSPC, //-----------------------//
|
||||
// | | END //
|
||||
// | | //
|
||||
/* | */ KC_END, //
|
||||
// | | //
|
||||
// | | //
|
||||
//-------------------------+-------------------------+------------------------//
|
||||
|
||||
// HACKER DVORAK right hand
|
||||
|
||||
//------------------------+-------------------------+-------------------------+-------------------------+-------------------------+-------------------------+------------------------//
|
||||
// | | | | | | //
|
||||
// | | | | | | //
|
||||
DYN_REC_START2, TD(APMR_PIPE), TD(RPRN_RBRC), TD(RCBR_RABK), TD(HASH_PERC), TD(ASTR_CIRC), XXXXXXX, //
|
||||
// | | | | | | //
|
||||
// | | | | | | //
|
||||
//------------------------+-------------------------+-------------------------+-------------------------+-------------------------+-------------------------+------------------------//
|
||||
// | | | | | | //
|
||||
// | | | | | | //
|
||||
DYN_MACRO_PLAY2, MEH_T(KC_F), ALL_T(KC_G), C_S_T(KC_C), LCA_T(KC_R), LAS_T(KC_L), TD(SLSH_BSLS), //
|
||||
// | | | | | | //
|
||||
// | | | | | | //
|
||||
// |-------------------------+-------------------------+-------------------------+-------------------------+-------------------------+------------------------//
|
||||
// | | | | | | //
|
||||
// | | | | | | //
|
||||
/*-----------------------*/ LGUI_T(KC_D), LT(MOUSE, KC_H), SFT_T(KC_T), CTL_T(KC_N), ALT_T(KC_S), TD(MINS_UNDS), //
|
||||
// | | | | | | //
|
||||
// | | | | | | //
|
||||
// |-------------------------+-------------------------+-------------------------+-------------------------+-------------------------+------------------------//
|
||||
// | | | | | | //
|
||||
// | | | | | | //
|
||||
KC_LGUI, LCAG_T(KC_B), LT(HYPER, KC_M), LT(MEDIA_FN, KC_W), SGUI_T(KC_V), LGAS_T(KC_Z), COMPOSE, //
|
||||
// | | | | | | //
|
||||
// | | | | | | ⎄ //
|
||||
//------------------------+-------------------------+-------------------------+-------------------------+-------------------------+-------------------------+------------------------//
|
||||
// | | | | //
|
||||
// | | | | //
|
||||
KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, KC_SYSREQ, //
|
||||
// | | | | //
|
||||
// | | | | //
|
||||
//------------------------+-------------------------+-------------------------+-------------------------+------------------------//
|
||||
|
||||
// HACKER DVORAK right thumb
|
||||
|
||||
//------------------------+------------------------//
|
||||
// | //
|
||||
// | //
|
||||
KC_WH_U, KC_WH_D, //
|
||||
// | //
|
||||
// | //
|
||||
//------------------------+-------------------------+------------------------//
|
||||
// | | //
|
||||
// | | //
|
||||
KC_PGUP, // | //
|
||||
// | | //
|
||||
// | | //
|
||||
//------------------------| | //
|
||||
// | | //
|
||||
// | | //
|
||||
KC_PGDN, KC_DEL, KC_ENT //
|
||||
// | | //
|
||||
// | | //
|
||||
//------------------------+-------------------------+------------------------//
|
||||
|
||||
), |
||||
|
||||
[PLOVER] = 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, |
||||
XXXXXXX, TG(LAYERS), 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, XXXXXXX, |
||||
|
||||
// right thumb
|
||||
KC_DELETE, KC_ENTER, |
||||
KC_PGUP, |
||||
KC_PGDOWN, PV_E, PV_U |
||||
), |
||||
|
||||
[GAMING] = 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, 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, |
||||
XXXXXXX, TG(LAYERS), 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, XXXXXXX, |
||||
|
||||
// right thumb
|
||||
KC_MS_BTN5, MO(HYPER), |
||||
KC_MS_BTN4, |
||||
KC_MS_BTN3, KC_MS_BTN2, KC_MS_BTN1 |
||||
), |
||||
|
||||
[ARROWS] = 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] = 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] = 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] = 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), TO(PLOVER), TO(GAMING), 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_VOLD, KC_MUTE, RGB_TOG, XXXXXXX, KC_MAIL, KC_FIND, KC_WWW_REFRESH, |
||||
KC_MPRV, KC_F9, KC_F7, KC_F5, KC_F3, KC_F1, KC_WWW_HOME, |
||||
KC_PAUS, 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_MYCM, KC_CALC, XXXXXXX, RGB_MOD, RGB_M_P, KC_VOLU, |
||||
KC_WWW_SEARCH, KC_F2, KC_F4, KC_F6, KC_F8, KC_F10, KC_MNXT, |
||||
KC_F12, KC_F14, KC_F16, KC_F18, KC_F20, KC_MPLY, |
||||
KC_WWW_FORWARD, KC_F22, KC_F24, _______, XXXXXXX, XXXXXXX, RGB_HUI, |
||||
KC_PWR, XXXXXXX, KC_SLEP, KC_WAKE, RGB_VAI, |
||||
|
||||
// right thumb
|
||||
XXXXXXX, XXXXXXX, |
||||
XXXXXXX, |
||||
RGB_GREEN, XXXXXXX, XXXXXXX |
||||
), |
||||
|
||||
[HYPER] = 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 |
||||
), |
||||
|
||||
[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 |
||||
) |
||||
}; |
@ -0,0 +1,5 @@ |
||||
// Keycode aliases
|
||||
#define SCTL(kc) LSFT(LCTL(kc)) // Modifier keys: SHIFT+CTRL+kc combination.
|
||||
#define LGAS_T(kc) MT(MOD_LGUI | MOD_LALT | MOD_LSFT, kc) // Mod tap: kc when tapped, GUI+ALT+SHIFT when held.
|
||||
#define LAS_T(kc) MT(MOD_LALT | MOD_LSFT, kc) // Mod tap: kc when tapped, ALT+SHIFT whin held.
|
||||
#define COMPOSE KC_RALT // Compose key (used to input characters like á, ñ, ü).
|
@ -0,0 +1,8 @@ |
||||
// Define custom user keycodes:
|
||||
enum custom_keycodes { |
||||
PLACEHOLDER = SAFE_RANGE, // Can always be here.
|
||||
RGB_GREEN, // To set default RGB layer as green once.
|
||||
MY_CUSTOM_MACRO, // Custom macro example.
|
||||
MY_OTHER_MACRO, // Custom macro example.
|
||||
DYNAMIC_MACRO_RANGE // Should always be the last.
|
||||
}; |
@ -1,781 +1,19 @@ |
||||
#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" |
||||
|
@ -0,0 +1,12 @@ |
||||
enum layers { // Hacker Dvorak keyboard layers:
|
||||
DVORAK = 0, // * Dvorak base layer.
|
||||
PLOVER = 1, // * Steno layer for use with Plover.
|
||||
GAMING = 2, // * Gaming layer intended for general purpose playing.
|
||||
ARROWS = 3, // * Arrows movement keys and edition shortcuts.
|
||||
MOUSE = 4, // * Mouse movement keys and edition shortcuts.
|
||||
NUMPAD = 5, // * ATM style numpad with symbols and letters that should suffice to input any numeric literal.
|
||||
LAYERS = 6, // * Layer switcher used to change between DVORAK, PLOVER and GAMING layers.
|
||||
MEDIA_FN = 7, // * Media, RGB and function keys from F1 to F24 in symmetric fashion.
|
||||
HYPER = 8, // * Hot keys layer (uses hyper + F1 .. F24) suitable for global shortcut tasks.
|
||||
FIRMWARE = 9 // * Layer with firmware related functionality, like the reset and EEPROM keys.
|
||||
}; |
@ -0,0 +1,14 @@ |
||||
LEADER_DICTIONARY() { |
||||
leading = false; |
||||
leader_end(); |
||||
|
||||
SEQ_ONE_KEY(TD(APMR_PIPE)) { |
||||
register_code(KC_LCTL); |
||||
register_code(KC_LSFT); |
||||
register_code(KC_U); |
||||
|
||||
unregister_code(KC_U); |
||||
unregister_code(KC_LSFT); |
||||
unregister_code(KC_LCTL); |
||||
} |
||||
} |
@ -0,0 +1,14 @@ |
||||
LEADER_EXTERNS(); |
||||
|
||||
void qk_leader_start(void) { |
||||
if (!leading) { |
||||
leading = true; |
||||
leader_time = timer_read(); |
||||
leader_sequence_size = 0; |
||||
leader_sequence[0] = 0; |
||||
leader_sequence[1] = 0; |
||||
leader_sequence[2] = 0; |
||||
leader_sequence[3] = 0; |
||||
leader_sequence[4] = 0; |
||||
} |
||||
} |
@ -0,0 +1,20 @@ |
||||
// TODO: improve feedback
|
||||
void plover_toggle(void) { |
||||
// Press "PHROLG"
|
||||
register_code(PV_LP); |
||||
register_code(PV_LH); |
||||
register_code(PV_LR); |
||||
register_code(PV_O); |
||||
register_code(PV_RL); |
||||
register_code(PV_RG); |
||||
|
||||
// Release "PHROLG"
|
||||
unregister_code(PV_LP); |
||||
unregister_code(PV_LH); |
||||
unregister_code(PV_LR); |
||||
unregister_code(PV_O); |
||||
unregister_code(PV_RL); |
||||
unregister_code(PV_RG); |
||||
} |
||||
|
||||
bool PLOVER_MODE = false; |
@ -1,35 +1,40 @@ |
||||
# Set any rules.mk overrides for your specific keymap here.
|
||||
# See rules at https://docs.qmk.fm/#/config_options?id=the-rulesmk-file
|
||||
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||
TAP_DANCE_ENABLE = yes
|
||||
MOUSEKEY_ENABLE = yes # Mouse keys(+4700b).
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control(+450b).
|
||||
SLEEP_LED_ENABLE = yes # Turn off leds when computer is sleeping.
|
||||
KEY_LOCK_ENABLE = yes # (+1730b)
|
||||
RGBLIGHT_ENABLE = yes
|
||||
LEADER_ENABLE = yes
|
||||
|
||||
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||
TAP_DANCE_ENABLE = yes
|
||||
MOUSEKEY_ENABLE = yes # Mouse keys(+4700b).
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control(+450b).
|
||||
RGBLIGHT_ENABLE = yes
|
||||
LEADER_ENABLE = yes
|
||||
|
||||
UNICODE_ENABLE = no # For Unicode.
|
||||
UNICODE_ENABLE = no
|
||||
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||
SWAP_HANDS_ENABLE = no # Allow swapping hands of keyboard.
|
||||
|
||||
|
||||
# This are by default off:
|
||||
# CONSOLE_ENABLE = no # Console for debug(+400)
|
||||
# BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
|
||||
# COMBO_ENABLE = no
|
||||
# UCIS_ENABLE = no # For Unicode.
|
||||
# UNICODEMAP_ENABLE = no
|
||||
# SLEEP_LED_ENABLE = no # Turn off leds when computer is sleeping.
|
||||
# KEY_LOCK_ENABLE = no # (+1730b)
|
||||
# CONSOLE_ENABLE = no # Console for debug(+400b)
|
||||
# BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000b)
|
||||
# API_SYSEX_ENABLE = no
|
||||
# MIDI_ENABLE = no
|
||||
# UNICODEMAP_ENABLE = no
|
||||
# BLUETOOTH_ENABLE = no
|
||||
# AUDIO_ENABLE = no
|
||||
# FAUXCLICKY_ENABLE = no
|
||||
# VARIABLE_TRACE = no
|
||||
# BACKLIGHT_ENABLE = no
|
||||
# RGB_MATRIX_ENABLE = no
|
||||
# COMBO_ENABLE = no
|
||||
|
||||
# POINTING_DEVICE_ENABLE = no
|
||||
|
||||
# AUTO_SHIFT_ENABLE = no
|
||||
# AUTO_SHIFT_MODIFIERS = no
|
||||
|
||||
# This don't need argument:
|
||||
# This don't need argument?
|
||||
# CUSTOM_MATRIX # Custom matrix file for the ErgoDox EZ
|
||||
# SPLIT_KEYBOARD
|
||||
|
@ -0,0 +1,40 @@ |
||||
//instanalize an instance of 'tap' for the None - Lead tap dance.
|
||||
static tap none_lead_state = { |
||||
.is_press_action = true, |
||||
.state = 0 |
||||
}; |
||||
|
||||
void none_lead_finished(qk_tap_dance_state_t *state, void *user_data) { |
||||
none_lead_state.state = current_dance(state); |
||||
switch (none_lead_state.state) { |
||||
case SINGLE_TAP: |
||||
register_code(KC_NO); |
||||
break; |
||||
|
||||
case SINGLE_HOLD: |
||||
register_code(KC_LALT); |
||||
register_code(KC_LSFT); |
||||
break; |
||||
|
||||
case DOUBLE_TAP: |
||||
qk_leader_start(); |
||||
break; |
||||
} |
||||
} |
||||
|
||||
void none_lead_reset(qk_tap_dance_state_t *state, void *user_data) { |
||||
switch (none_lead_state.state) { |
||||
case SINGLE_TAP: |
||||
unregister_code(KC_NO); |
||||
break; |
||||
|
||||
case SINGLE_HOLD: |
||||
unregister_code(KC_LALT); |
||||
unregister_code(KC_LSFT); |
||||
break; |
||||
|
||||
case DOUBLE_TAP: |
||||
break; |
||||
} |
||||
none_lead_state.state = 0; |
||||
} |
@ -0,0 +1,20 @@ |
||||
// Register the double tap dances:
|
||||
qk_tap_dance_action_t tap_dance_actions[] = { |
||||
[EQL_PLUS] = ACTION_TAP_DANCE_DOUBLE(KC_EQL, KC_PLUS), |
||||
[MINS_UNDS] = ACTION_TAP_DANCE_DOUBLE(KC_MINS, KC_UNDS), |
||||
[SLSH_BSLS] = ACTION_TAP_DANCE_DOUBLE(KC_SLSH, KC_BSLS), |
||||
[GRV_TILD] = ACTION_TAP_DANCE_DOUBLE(KC_GRV, KC_TILD), |
||||
[QUOT_DQUO] = ACTION_TAP_DANCE_DOUBLE(KC_QUOT, KC_DQUO), |
||||
[SCLN_COLN] = ACTION_TAP_DANCE_DOUBLE(KC_SCLN, KC_COLN), |
||||
[ASTR_CIRC] = ACTION_TAP_DANCE_DOUBLE(KC_ASTR, KC_CIRC), |
||||
[APMR_PIPE] = ACTION_TAP_DANCE_DOUBLE(KC_AMPR, KC_PIPE), |
||||
[EXLM_QUES] = ACTION_TAP_DANCE_DOUBLE(KC_EXLM, KC_QUES), |
||||
[HASH_PERC] = ACTION_TAP_DANCE_DOUBLE(KC_HASH, KC_PERC), |
||||
[AT_DLR] = ACTION_TAP_DANCE_DOUBLE(KC_AT, KC_DLR), |
||||
[LPRN_LBRC] = ACTION_TAP_DANCE_DOUBLE(KC_LPRN, KC_LBRC), |
||||
[RPRN_RBRC] = ACTION_TAP_DANCE_DOUBLE(KC_RPRN, KC_RBRC), |
||||
[LCBR_LABK] = ACTION_TAP_DANCE_DOUBLE(KC_LCBR, KC_LABK), |
||||
[RCBR_RABK] = ACTION_TAP_DANCE_DOUBLE(KC_RCBR, KC_RABK), |
||||
[DOT_COMM] = ACTION_TAP_DANCE_DOUBLE(KC_DOT, KC_COMM), |
||||
[NONE_LEAD] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(NULL, none_lead_finished, none_lead_reset, DANCING_TERM) |
||||
}; |
@ -0,0 +1,75 @@ |
||||
typedef struct { |
||||
bool is_press_action; |
||||
int state; |
||||
} tap; |
||||
|
||||
enum { |
||||
SINGLE_TAP = 1, |
||||
SINGLE_HOLD = 2, |
||||
DOUBLE_TAP = 3, |
||||
DOUBLE_HOLD = 4, |
||||
DOUBLE_SINGLE_TAP = 5, // Send two single taps.
|
||||
TRIPLE_TAP = 6, |
||||
TRIPLE_HOLD = 7, |
||||
TRIPLE_SINGLE_TAP = 8 // Send three single taps.
|
||||
}; |
||||
|
||||
/* Return an integer that corresponds to what kind of tap dance should be executed.
|
||||
* |
||||
* How to figure out tap dance state: interrupted and pressed. |
||||
* |
||||
* Interrupted: If the state of a dance dance is "interrupted", that means that another key has been hit |
||||
* under the tapping term. This is typically indicitive that you are trying to "tap" the key. |
||||
* |
||||
* Pressed: Whether or not the key is still being pressed. If this value is true, that means the tapping term |
||||
* has ended, but the key is still being pressed down. This generally means the key is being "held". |
||||
* |
||||
* One thing that is currenlty not possible with qmk software in regards to tap dance is to mimic the "permissive hold" |
||||
* feature. In general, advanced tap dances do not work well if they are used with commonly typed letters. |
||||
* For example "A". Tap dances are best used on non-letter keys that are not hit while typing letters. |
||||
* |
||||
* Good places to put an advanced tap dance: |
||||
* z,q,x,j,k,v,b, any function key, home/end, comma, semi-colon |
||||
* |
||||
* Criteria for "good placement" of a tap dance key: |
||||
* Not a key that is hit frequently in a sentence |
||||
* Not a key that is used frequently to double tap, for example 'tab' is often double tapped in a terminal, or |
||||
* in a web form. So 'tab' would be a poor choice for a tap dance. |
||||
* Letters used in common words as a double. For example 'p' in 'pepper'. If a tap dance function existed on the |
||||
* letter 'p', the word 'pepper' would be quite frustating to type. |
||||
* |
||||
* For the third point, there does exist the 'DOUBLE_SINGLE_TAP', however this is not fully tested |
||||
* |
||||
*/ |
||||
int current_dance(qk_tap_dance_state_t *state) { |
||||
int current_state = 0; |
||||
if (state->count == 1) { |
||||
if (state->interrupted || !state->pressed) { |
||||
current_state = SINGLE_TAP; |
||||
} else { |
||||
current_state = SINGLE_HOLD; //key has not been interrupted, but they key is still held. Means you want to send a 'HOLD'.
|
||||
} |
||||
} else if (state->count == 2) { |
||||
/*
|
||||
* DOUBLE_SINGLE_TAP is to distinguish between typing "pepper", and actually wanting a double tap |
||||
* action when hitting 'pp'. Suggested use case for this return value is when you want to send two |
||||
* keystrokes of the key, and not the 'double tap' action/macro. |
||||
*/ |
||||
if (state->interrupted) { |
||||
current_state = DOUBLE_SINGLE_TAP; |
||||
} else if (state->pressed) { |
||||
current_state = DOUBLE_HOLD; |
||||
} else { |
||||
current_state = DOUBLE_TAP; |
||||
} |
||||
} else if (state->count == 3) { |
||||
if (state->interrupted) { |
||||
current_state = TRIPLE_SINGLE_TAP; |
||||
} else if (state->pressed) { |
||||
current_state = TRIPLE_HOLD; |
||||
} else { |
||||
current_state = TRIPLE_TAP; |
||||
} |
||||
} |
||||
return current_state; |
||||
} |
@ -0,0 +1,74 @@ |
||||
//--------------------------------------------------------------------------------------------//
|
||||
// | | | | | //
|
||||
// Single tap | Single hold | Double tap | Double hold | Triple tap | Triple hold //
|
||||
// Mod tap dances: // | | | | | //
|
||||
enum tap_dances { //--------------------------------------------------------------------------------------------//
|
||||
// | | | | | //
|
||||
EQL_PLUS = 0, // = | + | | | | //
|
||||
// | | | | | //
|
||||
//--------------------------------------------------------------------------------------------//
|
||||
// | | | | | //
|
||||
MINS_UNDS = 1, // - | _ | | | | //
|
||||
// | | | | | //
|
||||
//--------------------------------------------------------------------------------------------//
|
||||
// | | | | | //
|
||||
SLSH_BSLS = 2, // / | \ | | | | //
|
||||
// | | | | | //
|
||||
//--------------------------------------------------------------------------------------------//
|
||||
// | | | | | //
|
||||
GRV_TILD = 3, // ` | ~ | | | | //
|
||||
// | | | | | //
|
||||
//--------------------------------------------------------------------------------------------//
|
||||
// | | | | | //
|
||||
QUOT_DQUO = 4, // ' | " | | | | //
|
||||
// | | | | | //
|
||||
//--------------------------------------------------------------------------------------------//
|
||||
// | | | | | //
|
||||
SCLN_COLN = 5, // ; | : | | | | //
|
||||
// | | | | | //
|
||||
//--------------------------------------------------------------------------------------------//
|
||||
// | | | | | //
|
||||
ASTR_CIRC = 6, // * | ^ | | | | //
|
||||
// | | | | | //
|
||||
//--------------------------------------------------------------------------------------------//
|
||||
// | | | | | //
|
||||
APMR_PIPE = 7, // & | | | | | | //
|
||||
// | | | | | //
|
||||
//--------------------------------------------------------------------------------------------//
|
||||
// | | | | | //
|
||||
EXLM_QUES = 8, // ! | ? | | | | //
|
||||
// | | | | | //
|
||||
//--------------------------------------------------------------------------------------------//
|
||||
// | | | | | //
|
||||
HASH_PERC = 9, // # | % | | | | //
|
||||
// | | | | | //
|
||||
//--------------------------------------------------------------------------------------------//
|
||||
// | | | | | //
|
||||
AT_DLR = 10, // @ | $ | | | | //
|
||||
// | | | | | //
|
||||
//--------------------------------------------------------------------------------------------//
|
||||
// | | | | | //
|
||||
LPRN_LBRC = 11, // ( | [ | | | | //
|
||||
// | | | | | //
|
||||
//--------------------------------------------------------------------------------------------//
|
||||
// | | | | | //
|
||||
RPRN_RBRC = 12, // ) | ] | | | | //
|
||||
// | | | | | //
|
||||
//--------------------------------------------------------------------------------------------//
|
||||
// | | | | | //
|
||||
LCBR_LABK = 13, // { | < | | | | //
|
||||
// | | | | | //
|
||||
//--------------------------------------------------------------------------------------------//
|
||||
// | | | | | //
|
||||
RCBR_RABK = 14, // } | > | | | | //
|
||||
// | | | | | //
|
||||
//--------------------------------------------------------------------------------------------//
|
||||
// | | | | | //
|
||||
DOT_COMM = 15, // . | , | | | | //
|
||||
// | | | | | //
|
||||
//--------------------------------------------------------------------------------------------//
|
||||
// | | | | | //
|
||||
NONE_LEAD = 16, // NONE | ALT+SHIFT | LEAD | | | //
|
||||
// | | | | | //
|
||||
//--------------------------------------------------------------------------------------------//
|
||||
}; |
@ -0,0 +1,3 @@ |
||||
// void eeconfig_init_user(void) {
|
||||
//
|
||||
// };
|
@ -0,0 +1,121 @@ |
||||
|
||||
uint32_t layer_state_set_user(uint32_t state) { |
||||
uint8_t layer = biton32(state); |
||||
|
||||
switch (layer) { |
||||
case DVORAK: |
||||
rgblight_sethsv_noeeprom_green(); |
||||
rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); |
||||
|
||||
if (PLOVER_MODE) { |
||||
plover_toggle(); |
||||
PLOVER_MODE = false; |
||||
} |
||||
|
||||
break; |
||||
|
||||
case PLOVER: |
||||
rgblight_sethsv_noeeprom_red(); |
||||
rgblight_mode_noeeprom(RGBLIGHT_MODE_BREATHING + 3); |
||||
|
||||
if (!(PLOVER_MODE)) { |
||||
plover_toggle(); |
||||
PLOVER_MODE = true; |
||||
} |
||||
|
||||
break; |
||||
|
||||
case GAMING: |
||||
rgblight_sethsv_noeeprom_red(); |
||||
rgblight_mode_noeeprom(RGBLIGHT_MODE_KNIGHT + 2); |
||||
|
||||
if (PLOVER_MODE) { |
||||
plover_toggle(); |
||||
PLOVER_MODE = false; |
||||
} |
||||
|
||||
break; |
||||
|
||||
case ARROWS: |
||||
rgblight_sethsv_noeeprom_blue(); |
||||
rgblight_mode_noeeprom(RGBLIGHT_MODE_KNIGHT + 2); |
||||
|
||||
if (PLOVER_MODE) { |
||||
plover_toggle(); |
||||
PLOVER_MODE = false; |
||||
} |
||||
|
||||
break; |
||||
|
||||
case MOUSE: |
||||
rgblight_sethsv_noeeprom_blue(); |
||||
rgblight_mode_noeeprom(RGBLIGHT_MODE_KNIGHT + 2); |
||||
|
||||
if (PLOVER_MODE) { |
||||
plover_toggle(); |
||||
PLOVER_MODE = false; |
||||
} |
||||
|
||||
break; |
||||
|
||||
case NUMPAD: |
||||
rgblight_sethsv_noeeprom_blue(); |
||||
rgblight_mode_noeeprom(RGBLIGHT_MODE_KNIGHT + 2); |
||||
|
||||
if (PLOVER_MODE) { |
||||
plover_toggle(); |
||||
PLOVER_MODE = false; |
||||
} |
||||
|
||||
break; |
||||
|
||||
case LAYERS: |
||||
rgblight_sethsv_noeeprom_cyan(); |
||||
rgblight_mode_noeeprom(RGBLIGHT_MODE_KNIGHT + 2); |
||||
|
||||
if (PLOVER_MODE) { |
||||
plover_toggle(); |
||||
PLOVER_MODE = false; |
||||
} |
||||
|
||||
break; |
||||
|
||||
case MEDIA_FN: |
||||
rgblight_sethsv_noeeprom_yellow(); |
||||
rgblight_mode_noeeprom(RGBLIGHT_MODE_KNIGHT + 2); |
||||
|
||||
if (PLOVER_MODE) { |
||||
plover_toggle(); |
||||
PLOVER_MODE = false; |
||||
} |
||||
|
||||
break; |
||||
|
||||
case HYPER: |
||||
rgblight_sethsv_noeeprom_magenta(); |
||||
rgblight_mode_noeeprom(RGBLIGHT_MODE_KNIGHT + 2); |
||||
|
||||
if (PLOVER_MODE) { |
||||
plover_toggle(); |
||||
PLOVER_MODE = false; |
||||
} |
||||
|
||||
break; |
||||
|
||||
case FIRMWARE: |
||||
rgblight_sethsv_noeeprom_magenta(); |
||||
rgblight_mode_noeeprom(RGBLIGHT_MODE_KNIGHT + 2); |
||||
|
||||
if (PLOVER_MODE) { |
||||
plover_toggle(); |
||||
PLOVER_MODE = false; |
||||
} |
||||
|
||||
break; |
||||
|
||||
default: |
||||
break; |
||||
} |
||||
|
||||
return state; |
||||
} |
@ -0,0 +1,12 @@ |
||||
#include "../leader/leader_setup.c" |
||||
|
||||
bool MATRIX_SCANNED = false; |
||||
|
||||
void matrix_scan_user(void) { |
||||
if (!(MATRIX_SCANNED)) { |
||||
rgblight_sethsv_noeeprom_green(); |
||||
MATRIX_SCANNED = true; |
||||
} |
||||
|
||||
#include "../leader/leader_dictionary.c" |
||||
}; |
@ -0,0 +1,75 @@ |
||||
// TODO: Improve this currently there is no feedback if activated by other means.
|
||||
bool CAPS_LOCK = false; |
||||
bool NUM_LOCK = false; |
||||
bool SCROLL_LOCK = false; |
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) { |
||||
if (!process_record_dynamic_macro(keycode, record)) { |
||||
return false; |
||||
} |
||||
|
||||
switch (keycode) { |
||||
case KC_CLCK: |
||||
if (record->event.pressed) { |
||||
if (!(CAPS_LOCK)) { |
||||
ergodox_right_led_1_on(); |
||||
CAPS_LOCK = true; |
||||
} else { |
||||
ergodox_right_led_1_off(); |
||||
CAPS_LOCK = false; |
||||
} |
||||
} |
||||
|
||||
return true; |
||||
|
||||
case KC_NLCK: |
||||
if (record->event.pressed) { |
||||
if (!(NUM_LOCK)) { |
||||
ergodox_right_led_2_on(); |
||||
NUM_LOCK = true; |
||||
} else { |
||||
ergodox_right_led_2_off(); |
||||
NUM_LOCK = false; |
||||
} |
||||
} |
||||
|
||||
return true; |
||||
|
||||
case KC_SLCK: |
||||
if (record->event.pressed) { |
||||
if (!(SCROLL_LOCK)) { |
||||
ergodox_right_led_3_on(); |
||||
SCROLL_LOCK = true; |
||||
} else { |
||||
ergodox_right_led_3_off(); |
||||
SCROLL_LOCK = false; |
||||
} |
||||
} |
||||
|
||||
return true; |
||||
|
||||
case KC_MS_WH_UP ... KC_MS_WH_RIGHT: |
||||
if (record->event.pressed) { |
||||
if (SCROLL_LOCK) { |
||||
return false; |
||||
} else { |
||||
return true; |
||||
} |
||||
} |
||||
|
||||
case MY_CUSTOM_MACRO: |
||||
if (record->event.pressed) { |
||||
SEND_STRING("QMK is the best thing ever!"); // this is our macro!
|
||||
return false; |
||||
} |
||||
|
||||
case MY_OTHER_MACRO: |
||||
if (record->event.pressed) { |
||||
SEND_STRING(SS_LCTRL("ac")); // selects all and copies
|
||||
return false; |
||||
} |
||||
|
||||
default: |
||||
return true; |
||||
} |
||||
} |
Loading…
Reference in new issue