Keymap: Hacker Dvorak (#4514)
* 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.master
parent
8a330b33ff
commit
538874f90f
|
@ -0,0 +1,2 @@
|
||||||
|
node_modules/
|
||||||
|
package-lock.json
|
|
@ -0,0 +1,82 @@
|
||||||
|
/*
|
||||||
|
Set any config.h overrides for your specific keymap here.
|
||||||
|
See config.h options at https://docs.qmk.fm/#/config_options?id=the-configh-file
|
||||||
|
*/
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
|
||||||
|
/* Keyboard Settings */
|
||||||
|
#undef TAPPING_TERM
|
||||||
|
#define TAPPING_TERM 150
|
||||||
|
|
||||||
|
#undef DEBOUNCE
|
||||||
|
#define DEBOUNCE 10
|
||||||
|
|
||||||
|
#undef IGNORE_MOD_TAP_INTERRUPT
|
||||||
|
#define IGNORE_MOD_TAP_INTERRUPT
|
||||||
|
|
||||||
|
#undef FORCE_NKRO
|
||||||
|
#define FORCE_NKRO
|
||||||
|
|
||||||
|
/* This isn't defined by default, so there is no need to undefine it first. */
|
||||||
|
#define LEADER_TIMEOUT 500
|
||||||
|
#define PERMISSIVE_HOLD
|
||||||
|
#define QMK_KEYS_PER_SCAN 4
|
||||||
|
|
||||||
|
|
||||||
|
// RGB Lights
|
||||||
|
#undef RGBLIGHT_HUE_STEP
|
||||||
|
#define RGBLIGHT_HUE_STEP 24
|
||||||
|
|
||||||
|
#undef RGBLIGHT_SAT_STEP
|
||||||
|
#define RGBLIGHT_SAT_STEP 24
|
||||||
|
|
||||||
|
#undef RGBLIGHT_VAL_STEP
|
||||||
|
#define RGBLIGHT_VAL_STEP 24
|
||||||
|
|
||||||
|
#undef RGBLIGHT_BRI_STEP
|
||||||
|
#define RGBLIGHT_BRI_STEP 24
|
||||||
|
|
||||||
|
#undef RGBLIGHT_LIMIT_VAL
|
||||||
|
#define RGBLIGHT_LIMIT_VAL 255
|
||||||
|
|
||||||
|
/* This isn't defined by default, so there is no need to undefine it first. */
|
||||||
|
#define RGBLIGHT_SLEEP
|
||||||
|
|
||||||
|
|
||||||
|
// Mouse
|
||||||
|
#undef MOUSEKEY_INTERVAL
|
||||||
|
#define MOUSEKEY_INTERVAL 10
|
||||||
|
|
||||||
|
#undef MOUSEKEY_DELAY
|
||||||
|
#define MOUSEKEY_DELAY 15
|
||||||
|
|
||||||
|
#undef MOUSEKEY_MAX_SPEED
|
||||||
|
#define MOUSEKEY_MAX_SPEED 15
|
||||||
|
|
||||||
|
#undef MOUSEKEY_TIME_TO_MAX
|
||||||
|
#define MOUSEKEY_TIME_TO_MAX 150
|
||||||
|
|
||||||
|
#undef MOUSEKEY_WHEEL_MAX_SPEED
|
||||||
|
#define MOUSEKEY_WHEEL_MAX_SPEED 15
|
||||||
|
|
||||||
|
#undef MOUSEKEY_WHEEL_TIME_TO_MAX
|
||||||
|
#define MOUSEKEY_WHEEL_TIME_TO_MAX 150
|
||||||
|
|
||||||
|
|
||||||
|
/* This is defined only if CONSOLE_ENABLE is set to "yes" */
|
||||||
|
// #undef NO_DEBUG
|
||||||
|
// #define NO_DEBUG
|
||||||
|
|
||||||
|
// #undef NO_PRINT
|
||||||
|
// #define NO_PRINT
|
||||||
|
|
||||||
|
/* For COMBO only*/
|
||||||
|
// #define COMBO_COUNT 1
|
||||||
|
// #define COMBO_TERM 200
|
||||||
|
|
||||||
|
/* For tap toggle */
|
||||||
|
// #define TAPPING_TOGGLE 2
|
||||||
|
// #define ONESHOT_TAP_TOGGLE 2
|
||||||
|
// #define ONESHOT_TIMEOUT 300
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
https://i.imgur.com/fKX0Zbs.png
|
|
@ -0,0 +1 @@
|
||||||
|
https://i.imgur.com/giAc3M9.jpg
|
|
@ -0,0 +1,13 @@
|
||||||
|
let gulp = require('gulp');
|
||||||
|
let run = require('gulp-run-command').default;
|
||||||
|
|
||||||
|
|
||||||
|
gulp.task('clean', run('rm -rf ../../../../.build'));
|
||||||
|
|
||||||
|
gulp.task('build', ['clean'], run('make -C ../../../../ ergodox_ez:hacker_dvorak', {
|
||||||
|
ignoreErrors: true
|
||||||
|
}));
|
||||||
|
|
||||||
|
gulp.task('watch', ['build'], () => {
|
||||||
|
gulp.watch(['keymap.c', 'config.h', 'rules.mk'], ['build']);
|
||||||
|
});
|
|
@ -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;
|
||||||
|
};
|
|
@ -0,0 +1,15 @@
|
||||||
|
{
|
||||||
|
"name": "hacker_dvorak",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"description": "Inspired by the [*Programmer Dvorak*](https://www.kaufmann.no/roland/dvorak) keyboard layout, cherry picked ideas from other layouts in the [EZ Repository](https://configure.ergodox-ez.com/search?q=dvorak&legacy=true), a character distribution [heatmap vizualizer](https://run.plnkr.co/plunks/5EEO8nJ2wRzYAfT3), my own subjective use cases and lots of trial and error.",
|
||||||
|
"main": "gulpfile.js",
|
||||||
|
"scripts": {
|
||||||
|
"test": "test"
|
||||||
|
},
|
||||||
|
"author": "SalchiPapa",
|
||||||
|
"license": "GPL-2.0",
|
||||||
|
"dependencies": {
|
||||||
|
"gulp": "^3.9.1",
|
||||||
|
"gulp-run-command": "0.0.9"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,62 @@
|
||||||
|
# [Ergodox EZ Hacker Dvorak Layout](https://configure.ergodox-ez.com/layouts/Wadz/latest/0)
|
||||||
|
|
||||||
|
Inspired by the [*Programmer Dvorak*](https://www.kaufmann.no/roland/dvorak) keyboard layout, cherry picked ideas from other layouts in the [EZ Repository](https://configure.ergodox-ez.com/search?q=dvorak&legacy=true), a character distribution [heatmap vizualizer](https://run.plnkr.co/plunks/5EEO8nJ2wRzYAfT3), my own subjective use cases and lots of trial and error.
|
||||||
|
|
||||||
|
## Setup
|
||||||
|
|
||||||
|
Configure your OS keyboard layout to US, or the keymap will be incorrect.
|
||||||
|
|
||||||
|
## Limitations
|
||||||
|
|
||||||
|
I plan to use [QMK](https://docs.qmk.fm) in the future, in order to overcome some limitations of the Ergodox EZ [graphical configurator](https://configure.ergodox-ez.com/layouts/default/latest/0)), however I will defer that, until more progress is made to the new [configurator](https://medium.com/the-ergo/the-configurator-is-out-of-beta-e107aec80cae).
|
||||||
|
|
||||||
|
## Layers
|
||||||
|
|
||||||
|
1. Dvorak
|
||||||
|
* US Dvorak layout.
|
||||||
|
* All symbols (including shifted symbols).
|
||||||
|
* All modifier are dual keys positioned near the home row.
|
||||||
|
2. Querty
|
||||||
|
* Used to overcome the limitation pointed above, when your OS layout is set to Dvorak instead of US, this way you can use
|
||||||
|
Standard Dvorak (available by default on all the main operating systems) on other normal keybdoards and Hacker Dvorak on
|
||||||
|
the Ergodox EZ Shine at the same time, without changing back and forth tho OS layout.
|
||||||
|
3. Gaming
|
||||||
|
* Still in development.
|
||||||
|
* Left side is mainly "normal" Qwerty.
|
||||||
|
* Right side is mainly for movement, either using the mouse, the arrow keys, the number pad or the `H`, `J`, `K`, `L` as direction keys.
|
||||||
|
4. Arrows
|
||||||
|
* Arrow keys navigation.
|
||||||
|
* All modifier keys.
|
||||||
|
* Common text edititng shortcuts (doesn't work for MacOS).
|
||||||
|
5. Mouse
|
||||||
|
* Mouse navigation.
|
||||||
|
* All modifier keys.
|
||||||
|
* Common text edititng shortcuts (doesn't work for MacOS).
|
||||||
|
6. Numpad
|
||||||
|
* ATM style numpad.
|
||||||
|
* All modifier keys.
|
||||||
|
* Letters from `A` to `F` for hexadecimal numbers (`B` is also used for binary numeric literals in most programming
|
||||||
|
languages, ie. `0b11001`).
|
||||||
|
* `X` for hexadecimal numeric literals in most programming languages, ie. `0xbeef`.
|
||||||
|
* `O` for octal numeric literals in most programming languages, ie `0o123`.
|
||||||
|
* `J` for complex numeric literals in Python, ie. `3j`.
|
||||||
|
* `I` and `M` for complex Julia numeric literals, ie. `3im`.
|
||||||
|
* Common symbols for mathematical operations.
|
||||||
|
7. Hyper Fn
|
||||||
|
* Useful for custom global shortcuts.
|
||||||
|
8. Media Fn
|
||||||
|
* Media keys.
|
||||||
|
* Function keys.
|
||||||
|
* EZ Shine keys.
|
||||||
|
9. Meh Fn
|
||||||
|
* Useful for custom application shortcuts.
|
||||||
|
10. Meh Fn +
|
||||||
|
* Useful for custom standard shortcuts.
|
||||||
|
|
||||||
|
## To Do
|
||||||
|
|
||||||
|
Add images.
|
||||||
|
|
||||||
|
***
|
||||||
|
|
||||||
|
Please comment below if you have any ideas or suggestions. If you have used this layout or used it as a base, I'd love to hear about your experience!
|
|
@ -0,0 +1,35 @@
|
||||||
|
# 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
|
||||||
|
|
||||||
|
|
||||||
|
UNICODE_ENABLE = no # For Unicode.
|
||||||
|
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)
|
||||||
|
# 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
|
||||||
|
|
||||||
|
|
||||||
|
# This don't need argument:
|
||||||
|
# CUSTOM_MATRIX # Custom matrix file for the ErgoDox EZ
|
||||||
|
# SPLIT_KEYBOARD
|
|
@ -0,0 +1,47 @@
|
||||||
|
/* Copyright 2016 James Kay
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#ifndef KEYMAP_PLOVER_DVORAK_H
|
||||||
|
#define KEYMAP_PLOVER_DVORAK_H
|
||||||
|
|
||||||
|
#include "keymap_dvorak.h"
|
||||||
|
|
||||||
|
#define PD_NUM DV_1
|
||||||
|
#define PD_LS DV_Q
|
||||||
|
#define PD_LT DV_W
|
||||||
|
#define PD_LP DV_E
|
||||||
|
#define PD_LH DV_R
|
||||||
|
#define PD_LK DV_S
|
||||||
|
#define PD_LW DV_D
|
||||||
|
#define PD_LR DV_F
|
||||||
|
|
||||||
|
#define PD_STAR DV_Y
|
||||||
|
#define PD_RF DV_U
|
||||||
|
#define PD_RP DV_I
|
||||||
|
#define PD_RL DV_O
|
||||||
|
#define PD_RT DV_P
|
||||||
|
#define PD_RD DV_LBRC
|
||||||
|
#define PD_RR DV_J
|
||||||
|
#define PD_RB DV_K
|
||||||
|
#define PD_RG DV_L
|
||||||
|
#define PD_RS DV_SCLN
|
||||||
|
#define PD_RZ DV_QUOT
|
||||||
|
|
||||||
|
#define PD_A DV_C
|
||||||
|
#define PD_O DV_V
|
||||||
|
#define PD_E DV_N
|
||||||
|
#define PD_U DV_M
|
||||||
|
|
||||||
|
#endif
|
Loading…
Reference in New Issue