diff options
| author | Adam Bell <agbell@gmail.com> | 2017-06-03 10:28:36 -0400 |
|---|---|---|
| committer | Adam Bell <agbell@gmail.com> | 2017-06-03 10:28:36 -0400 |
| commit | 82de4d039d39c87a1df68708f3033926c27f7e6c (patch) | |
| tree | f29c1769af99445f287430cb87f953c6e866c271 | |
| parent | 6d6dee29560925c85bea8d1026359c8b57f09542 (diff) | |
| download | qmk_firmware-82de4d039d39c87a1df68708f3033926c27f7e6c.tar.gz qmk_firmware-82de4d039d39c87a1df68708f3033926c27f7e6c.zip | |
Ergodox Adam keymap
| -rw-r--r-- | docker-compose.yml | 3 | ||||
| -rw-r--r-- | keyboards/ergodox/keymaps/adam/config.h | 6 | ||||
| -rw-r--r-- | keyboards/ergodox/keymaps/adam/keymap.c | 174 | ||||
| -rw-r--r-- | keyboards/ergodox/keymaps/adam/readme.md | 3 | ||||
| -rw-r--r-- | keyboards/ergodox/readme.md | 1 |
5 files changed, 186 insertions, 1 deletions
diff --git a/docker-compose.yml b/docker-compose.yml index 7ab045053..2f58e20cf 100644 --- a/docker-compose.yml +++ b/docker-compose.yml | |||
| @@ -1,3 +1,6 @@ | |||
| 1 | # specify keyboard / keymap / subproject (if req) and run `docker compose up` | ||
| 2 | # will install all deps into a docker container and build firmware, cross platform | ||
| 3 | # Only prereq is docker | ||
| 1 | qmk: | 4 | qmk: |
| 2 | build: . | 5 | build: . |
| 3 | environment: | 6 | environment: |
diff --git a/keyboards/ergodox/keymaps/adam/config.h b/keyboards/ergodox/keymaps/adam/config.h new file mode 100644 index 000000000..b3910bc45 --- /dev/null +++ b/keyboards/ergodox/keymaps/adam/config.h | |||
| @@ -0,0 +1,6 @@ | |||
| 1 | #include "../../config.h" | ||
| 2 | |||
| 3 | #undef TAPPING_TERM | ||
| 4 | #define TAPPING_TERM 300 //At 500 some bad logic takes hold | ||
| 5 | #define PREVENT_STUCK_MODIFIERS | ||
| 6 | #define IGNORE_MOD_TAP_INTERRUPT | ||
diff --git a/keyboards/ergodox/keymaps/adam/keymap.c b/keyboards/ergodox/keymaps/adam/keymap.c new file mode 100644 index 000000000..432f0fb26 --- /dev/null +++ b/keyboards/ergodox/keymaps/adam/keymap.c | |||
| @@ -0,0 +1,174 @@ | |||
| 1 | #include "ergodox.h" | ||
| 2 | #include "debug.h" | ||
| 3 | #include "action_layer.h" | ||
| 4 | #include "version.h" | ||
| 5 | |||
| 6 | |||
| 7 | #define BASE 0 // default layer | ||
| 8 | #define FLOCK 1 // symbols arrows and F keys on F held down | ||
| 9 | #define JLOCK 2 // same as Flock but with fall thru J and mapped to J held down | ||
| 10 | #define CAPLOCK 3 //caps on until space / enter / esc | ||
| 11 | #define SFLOCK 11 // symbols arrows and F keys on F held down | ||
| 12 | #define SJLOCK 12 // same as Flock but with fall thru J and mapped to J held down | ||
| 13 | |||
| 14 | #define _______ KC_TRNS | ||
| 15 | #define XXXXXXX KC_NO | ||
| 16 | |||
| 17 | // Sends macro when key is tapped, presses mod when key is held | ||
| 18 | #define tap_mod_macro(record, mod, macro) ( ((record)->event.pressed) ? \ | ||
| 19 | ( ((record)->tap.count <= 0 || (record)->tap.interrupted) ? MACRO(D(mod), END) : MACRO_NONE ) : \ | ||
| 20 | ( ((record)->tap.count > 0 && !((record)->tap.interrupted)) ? (macro) : MACRO(U(mod), END) ) ) | ||
| 21 | |||
| 22 | #define tap_mod_shift(record, mod, macro) ( ((record)->event.pressed) ? \ | ||
| 23 | ( ((record)->tap.count <= 0 || (record)->tap.interrupted) ? MACRO(D(mod), END) : MACRO_NONE ) : \ | ||
| 24 | ( ((record)->tap.count > 0 && !((record)->tap.interrupted)) ? (MACRO( D(LSFT), T(LBRC), U(LSFT), END)) : MACRO(U(mod), END) ) ) | ||
| 25 | |||
| 26 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 27 | /* Layout | ||
| 28 | * | ||
| 29 | * ,--------------------------------------------------. ,--------------------------------------------------. | ||
| 30 | * | | 1 | 2 | 3 | 4 | 5 | | | | 6 | 7 | 8 | 9 | 0 | | | ||
| 31 | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| | ||
| 32 | * | | Q | W | E | R | T | | | | Y | U | I | O | P | | | ||
| 33 | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| | ||
| 34 | * | | A | S | D | F | G |------| |------| H | J | K | L |; | | | ||
| 35 | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| | ||
| 36 | * | | Z | X | C | V | B | | | | N | M | , | . | | | | ||
| 37 | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' | ||
| 38 | * | | | | | | | | | | | | | ||
| 39 | * `----------------------------------' `----------------------------------' | ||
| 40 | * ,-------------. ,-------------. | ||
| 41 | * | | | | | | | ||
| 42 | * ,------|------|------| |------+--------+------. | ||
| 43 | * | | | | | | | | | ||
| 44 | * | | |------| |------| | | | ||
| 45 | * | | | | | | | | | ||
| 46 | * `--------------------' `----------------------' | ||
| 47 | */ | ||
| 48 | [BASE] = KEYMAP( | ||
| 49 | // left hand | ||
| 50 | GUI_T(KC_ESC), KC_1, KC_2, KC_3, KC_4, KC_5, KC_MINS, | ||
| 51 | _______, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_TAB, | ||
| 52 | _______, SFT_T(KC_A), ALT_T(KC_S), CTL_T(KC_D), F(FLOCK), GUI_T(KC_G), | ||
| 53 | _______, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_BSPC, | ||
| 54 | _______, _______, _______, _______ ,_______, | ||
| 55 | _______, _______, | ||
| 56 | _______, | ||
| 57 | KC_SPC, _______, _______ , | ||
| 58 | |||
| 59 | // right hand | ||
| 60 | KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, _______, | ||
| 61 | KC_TAB, KC_Y, KC_U, KC_I, KC_O, KC_P, _______, | ||
| 62 | GUI_T(KC_H), F(JLOCK), CTL_T(KC_K), ALT_T(KC_L), SFT_T(KC_SCLN), _______, | ||
| 63 | KC_DELETE, KC_N, KC_M, KC_COMM,KC_DOT, KC_QUOT, _______, | ||
| 64 | _______, _______,_______,_______, _______, | ||
| 65 | _______, _______, | ||
| 66 | _______, | ||
| 67 | _______,_______, KC_ENT | ||
| 68 | ), | ||
| 69 | [FLOCK] = KEYMAP( | ||
| 70 | // left hand | ||
| 71 | XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F11, | ||
| 72 | XXXXXXX,KC_LBRC,XXXXXXX, XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX, | ||
| 73 | XXXXXXX,S(KC_LBRC),XXXXXXX, XXXXXXX,_______,XXXXXXX, | ||
| 74 | XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,TO(CAPLOCK),XXXXXXX, | ||
| 75 | XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX, | ||
| 76 | XXXXXXX,XXXXXXX, | ||
| 77 | XXXXXXX, | ||
| 78 | KC_ESC,XXXXXXX,XXXXXXX, | ||
| 79 | // right hand | ||
| 80 | KC_F12, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, XXXXXXX, | ||
| 81 | XXXXXXX, XXXXXXX, KC_HOME, KC_PGUP, XXXXXXX, KC_RBRC, XXXXXXX, | ||
| 82 | KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, S(KC_RBRC), XXXXXXX, | ||
| 83 | XXXXXXX, XXXXXXX, KC_END, KC_PGDOWN, KC_QUES, KC_SLSH, XXXXXXX, | ||
| 84 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 85 | XXXXXXX, XXXXXXX, | ||
| 86 | XXXXXXX, | ||
| 87 | XXXXXXX, XXXXXXX, XXXXXXX | ||
| 88 | ), | ||
| 89 | [JLOCK] = KEYMAP( | ||
| 90 | // left hand | ||
| 91 | XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F11, | ||
| 92 | XXXXXXX,KC_LBRC,KC_GRV, KC_TILD,XXXXXXX,XXXXXXX,XXXXXXX, | ||
| 93 | XXXXXXX,S(KC_LBRC),XXXXXXX, XXXXXXX,XXXXXXX,XXXXXXX, | ||
| 94 | XXXXXXX,KC_BSLS,KC_PIPE,XXXXXXX,XXXXXXX,TO(CAPLOCK),XXXXXXX, | ||
| 95 | XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX, | ||
| 96 | XXXXXXX,XXXXXXX, | ||
| 97 | XXXXXXX, | ||
| 98 | KC_ESC,XXXXXXX,XXXXXXX, | ||
| 99 | // right hand | ||
| 100 | KC_F12, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, XXXXXXX, | ||
| 101 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_RBRC, XXXXXXX, | ||
| 102 | XXXXXXX, _______, XXXXXXX, XXXXXXX, S(KC_RBRC), XXXXXXX, | ||
| 103 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 104 | XXXXXXX,XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 105 | XXXXXXX, XXXXXXX, | ||
| 106 | XXXXXXX, | ||
| 107 | XXXXXXX, XXXXXXX, XXXXXXX | ||
| 108 | ), | ||
| 109 | [CAPLOCK] = KEYMAP( | ||
| 110 | // left hand | ||
| 111 | TO(BASE), _______, _______, _______, _______, _______, _______, | ||
| 112 | _______, S(KC_Q), S(KC_W), S(KC_E), S(KC_R), S(KC_T), _______, | ||
| 113 | // _______, SFT_T(S(KC_A)), ALT_T(KC_S), CTL_T(KC_D), F(FLOCK), GUI_T(KC_G), | ||
| 114 | _______, S(KC_A), S(KC_S), S(KC_D), S(KC_F), S(KC_G), | ||
| 115 | _______, S(KC_Z), S(KC_X), S(KC_C), S(KC_V), S(KC_B), _______, | ||
| 116 | _______, _______, _______, _______ ,_______, | ||
| 117 | _______, _______, | ||
| 118 | _______, | ||
| 119 | TO(BASE), _______, _______ , | ||
| 120 | |||
| 121 | // right hand | ||
| 122 | _______, _______, _______, _______, _______, _______, _______, | ||
| 123 | _______, S(KC_Y), S(KC_U), S(KC_I), S(KC_O), S(KC_P), _______, | ||
| 124 | S(KC_H), S(KC_J), S(KC_K), S(KC_L), S(KC_SCLN), _______, | ||
| 125 | _______, S(KC_N), S(KC_M), S(KC_COMM),S(KC_DOT), S(KC_QUOT), _______, | ||
| 126 | _______, _______,_______,_______, _______, | ||
| 127 | _______, _______, | ||
| 128 | _______, | ||
| 129 | _______,_______, TO(BASE) | ||
| 130 | ) | ||
| 131 | }; | ||
| 132 | |||
| 133 | const uint16_t PROGMEM fn_actions[] = { | ||
| 134 | [1] = ACTION_LAYER_TAP_KEY(FLOCK,KC_F), | ||
| 135 | [2] = ACTION_LAYER_TAP_KEY(JLOCK,KC_J), | ||
| 136 | [11] = ACTION_LAYER_TAP_KEY(FLOCK,LSFT(KC_F)), | ||
| 137 | [12] = ACTION_LAYER_TAP_KEY(JLOCK,LSFT(KC_J)) | ||
| 138 | }; | ||
| 139 | |||
| 140 | const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) | ||
| 141 | { | ||
| 142 | // MACRODOWN only works in this function | ||
| 143 | switch(id) { | ||
| 144 | case 0: | ||
| 145 | if (record->event.pressed) { | ||
| 146 | SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION); | ||
| 147 | } | ||
| 148 | break; | ||
| 149 | } | ||
| 150 | |||
| 151 | return MACRO_NONE; | ||
| 152 | }; | ||
| 153 | |||
| 154 | // Runs just one time when the keyboard initializes. | ||
| 155 | void matrix_init_user(void) { | ||
| 156 | |||
| 157 | }; | ||
| 158 | |||
| 159 | |||
| 160 | // Runs constantly in the background, in a loop. | ||
| 161 | void matrix_scan_user(void) { | ||
| 162 | uint8_t layer = biton32(layer_state); | ||
| 163 | |||
| 164 | switch (layer) { | ||
| 165 | // TODO: Make this relevant to the ErgoDox EZ. | ||
| 166 | case 1: | ||
| 167 | break; | ||
| 168 | case 2: | ||
| 169 | break; | ||
| 170 | default: | ||
| 171 | // none | ||
| 172 | break; | ||
| 173 | } | ||
| 174 | }; | ||
diff --git a/keyboards/ergodox/keymaps/adam/readme.md b/keyboards/ergodox/keymaps/adam/readme.md new file mode 100644 index 000000000..9d03df5d5 --- /dev/null +++ b/keyboards/ergodox/keymaps/adam/readme.md | |||
| @@ -0,0 +1,3 @@ | |||
| 1 | # Adam's ErgoDox | ||
| 2 | |||
| 3 | Currently only really uses keys available on Let's Split, for ease of switching | ||
diff --git a/keyboards/ergodox/readme.md b/keyboards/ergodox/readme.md index 3d6fb455a..90ede90ae 100644 --- a/keyboards/ergodox/readme.md +++ b/keyboards/ergodox/readme.md | |||
| @@ -78,7 +78,6 @@ Linux page]. Some distributions provide a binary, maybe called | |||
| 78 | To flash the firmware: | 78 | To flash the firmware: |
| 79 | 79 | ||
| 80 | - Build the firmware with `make keymapname`, for example `make default` | 80 | - Build the firmware with `make keymapname`, for example `make default` |
| 81 | |||
| 82 | - This will result in a hex file called `ergodox_ez_keymapname.hex`, e.g. | 81 | - This will result in a hex file called `ergodox_ez_keymapname.hex`, e.g. |
| 83 | `ergodox_ez_default.hex` | 82 | `ergodox_ez_default.hex` |
| 84 | 83 | ||
