diff options
| -rw-r--r-- | keyboards/ergodox/keymaps/albert/Makefile | 5 | ||||
| -rw-r--r-- | keyboards/ergodox/keymaps/albert/config.h | 12 | ||||
| -rw-r--r-- | keyboards/ergodox/keymaps/albert/keymap.c | 661 | ||||
| -rw-r--r-- | keyboards/ergodox/keymaps/albert/readme.md | 188 | ||||
| -rw-r--r-- | keyboards/ergodox/keymaps/deadcyclo/Makefile | 1 | ||||
| -rw-r--r-- | keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-base-layout.png | bin | 79741 -> 79488 bytes | |||
| -rw-r--r-- | keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-1-symbols.png | bin | 55349 -> 79904 bytes | |||
| -rw-r--r-- | keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-2-media-and-mouse.png | bin | 50926 -> 62258 bytes | |||
| -rw-r--r-- | keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-3-navigation.png | bin | 43551 -> 58886 bytes | |||
| -rw-r--r-- | keyboards/ergodox/keymaps/deadcyclo/keymap.c | 426 | ||||
| -rw-r--r-- | keyboards/ergodox/keymaps/deadcyclo/readme.md | 60 | ||||
| -rw-r--r-- | keyboards/ergodox/keymaps/software_neo2/keymap.c | 64 |
12 files changed, 1284 insertions, 133 deletions
diff --git a/keyboards/ergodox/keymaps/albert/Makefile b/keyboards/ergodox/keymaps/albert/Makefile new file mode 100644 index 000000000..eb8544afe --- /dev/null +++ b/keyboards/ergodox/keymaps/albert/Makefile | |||
| @@ -0,0 +1,5 @@ | |||
| 1 | COMMAND_ENABLE = no # Commands for debug and configuration | ||
| 2 | |||
| 3 | ifndef QUANTUM_DIR | ||
| 4 | include ../../../../Makefile | ||
| 5 | endif | ||
diff --git a/keyboards/ergodox/keymaps/albert/config.h b/keyboards/ergodox/keymaps/albert/config.h new file mode 100644 index 000000000..e6d363117 --- /dev/null +++ b/keyboards/ergodox/keymaps/albert/config.h | |||
| @@ -0,0 +1,12 @@ | |||
| 1 | #ifndef CONFIG_USER_H | ||
| 2 | #define CONFIG_USER_H | ||
| 3 | |||
| 4 | #include "../../config.h" | ||
| 5 | |||
| 6 | /* using UK layout for space-cadet-shift */ | ||
| 7 | #define LSPO_KEY KC_9 | ||
| 8 | #define RSPC_KEY KC_0 | ||
| 9 | |||
| 10 | #define LEADER_TIMEOUT 800 // leader key sequence timeout in millis | ||
| 11 | |||
| 12 | #endif | ||
diff --git a/keyboards/ergodox/keymaps/albert/keymap.c b/keyboards/ergodox/keymaps/albert/keymap.c new file mode 100644 index 000000000..dfbb311bd --- /dev/null +++ b/keyboards/ergodox/keymaps/albert/keymap.c | |||
| @@ -0,0 +1,661 @@ | |||
| 1 | #include "ergodox.h" | ||
| 2 | #include "debug.h" | ||
| 3 | #include "action_layer.h" | ||
| 4 | #include "version.h" | ||
| 5 | |||
| 6 | #include <stdarg.h> | ||
| 7 | |||
| 8 | /* use UK keymap */ | ||
| 9 | |||
| 10 | #define UK_HASH KC_NONUS_HASH | ||
| 11 | #define UK_BSLS KC_NONUS_BSLASH | ||
| 12 | #define UK_PIPE LSFT(UK_BSLS) | ||
| 13 | |||
| 14 | #define BASE 0 // default layer | ||
| 15 | #define SYMB 1 // symbols | ||
| 16 | #define NUMB 2 // numbers and hex | ||
| 17 | #define CRSR 3 // cursor keys | ||
| 18 | #define MOUS 4 // mouse keys | ||
| 19 | #define KEYW 5 // keyword macros | ||
| 20 | #define EMAC 6 // emacs | ||
| 21 | |||
| 22 | // my macros | ||
| 23 | #define UM_ECET M(0) // { } | ||
| 24 | #define UM_0x M(1) | ||
| 25 | #define UM_PUB M(2) | ||
| 26 | #define UM_PRO M(3) | ||
| 27 | #define UM_PRV M(4) | ||
| 28 | #define UM_CLS M(5) | ||
| 29 | #define UM_STR M(6) | ||
| 30 | #define UM_RET M(7) | ||
| 31 | #define UM_INC M(8) | ||
| 32 | #define UM_OBJ M(9) | ||
| 33 | #define UM_GITLOG M(10) | ||
| 34 | #define UM_GOODM M(11) | ||
| 35 | #define UM_NAMESP M(12) | ||
| 36 | #define UM_EMTR M(14) // emacs toggle read-only | ||
| 37 | #define UM_EMWR M(15) // emacs write buffer (save) | ||
| 38 | #define UM_EMUN M(16) // emacs undo | ||
| 39 | #define UM_EMRE M(17) // emacs redo | ||
| 40 | #define UM_EMPB M(18) // emacs previous buffer | ||
| 41 | #define UM_EMNB M(19) // emacs next buffer | ||
| 42 | #define UM_GOODN M(20) | ||
| 43 | #define UM_ECETS M(22) // { }; | ||
| 44 | #define UM_TMPL M(23) | ||
| 45 | #define UM_TYPN M(24) | ||
| 46 | #define UM_CONT M(25) | ||
| 47 | #define UM_BREAK M(26) | ||
| 48 | #define UM_CONST M(27) | ||
| 49 | #define UM_SMILY M(28) | ||
| 50 | #define UM_SADF M(29) | ||
| 51 | #define UM_SCARF M(30) | ||
| 52 | #define UM_DECAF M(31) | ||
| 53 | #define UM_OPER M(32) | ||
| 54 | #define UM_NULP M(33) | ||
| 55 | #define UM_EXTR M(34) | ||
| 56 | #define UM_VIRT M(35) | ||
| 57 | #define UM_EMFB M(36) // emacs font bigger | ||
| 58 | #define UM_EMFS M(37) // emacs font smaller | ||
| 59 | #define UM_VOLAT M(38) | ||
| 60 | |||
| 61 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 62 | /* Keymap 0: Base layer | ||
| 63 | * | ||
| 64 | * ,--------------------------------------------------. ,--------------------------------------------------. | ||
| 65 | * | ESC | 1 | 2 | 3 | 4 | 5 | SfLt | | SfRt | 6 | 7 | 8 | 9 | 0 | BkSp | | ||
| 66 | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| | ||
| 67 | * | Tab | Q | W | E | R | T | L1 | | L1 | Y | U | I | O | P | Del | | ||
| 68 | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| | ||
| 69 | * | Caps/L2| A | S | D | F | G |------| |------| H | J | K | L | ; |Enter/L2| | ||
| 70 | * |--------+------+------+------+------+------| L6 | | L6 |------+------+------+------+------+--------| | ||
| 71 | * | LSft/( | Z | X | C | V/L3 | B/L4 | | | | N/L4 | M/L3 | , | . | / | RSft/) | | ||
| 72 | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' | ||
| 73 | * |Ctrl/[| Alt/]| # | Left |Right | | Up | Down | - | Alt/[|Ctrl/]| | ||
| 74 | * `----------------------------------' `----------------------------------' | ||
| 75 | * ,-------------. ,-------------. | ||
| 76 | * | L2 | lead | | lead | Ins | | ||
| 77 | * ,------|------|------| |------+------+------. | ||
| 78 | * | Space| BkSp | Home | | PgUp | Enter|Space | | ||
| 79 | * | / | / |------| |------| / | / | | ||
| 80 | * | Ctrl | Alt |End/L5| |PDn/L5| Alt | Ctrl | | ||
| 81 | * `--------------------' `--------------------' | ||
| 82 | */ | ||
| 83 | [BASE] = KEYMAP( // layer 0 : default | ||
| 84 | // left hand | ||
| 85 | KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, LSFT(KC_LEFT), | ||
| 86 | KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, MO(SYMB), | ||
| 87 | LT(NUMB, KC_CAPS), KC_A, KC_S, KC_D, KC_F, KC_G, | ||
| 88 | KC_LSPO, KC_Z, KC_X, KC_C, LT(CRSR, KC_V), LT(MOUS, KC_B), MO(EMAC), | ||
| 89 | CTL_T(KC_LBRC), ALT_T(KC_RBRC), UK_HASH, KC_LEFT, KC_RGHT, | ||
| 90 | TG(NUMB), KC_LEAD, | ||
| 91 | KC_HOME, | ||
| 92 | CTL_T(KC_SPC), ALT_T(KC_BSPC), LT(KEYW, KC_END), | ||
| 93 | // right hand | ||
| 94 | LSFT(KC_RGHT), KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, | ||
| 95 | MO(SYMB), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DELT, | ||
| 96 | KC_H, KC_J, KC_K, KC_L, KC_SCLN, LT(NUMB, KC_ENT), | ||
| 97 | MO(EMAC), LT(MOUS, KC_N), LT(CRSR, KC_M), KC_COMM, KC_DOT, KC_SLSH, KC_RSPC, | ||
| 98 | KC_UP, KC_DOWN, KC_MINS, ALT_T(KC_LBRC), CTL_T(KC_RBRC), | ||
| 99 | KC_LEAD, KC_INS, | ||
| 100 | KC_PGUP, | ||
| 101 | LT(KEYW, KC_PGDN), ALT_T(KC_ENT), CTL_T(KC_SPC) | ||
| 102 | ), | ||
| 103 | /* Keymap 1: Symbol Layer with F keys | ||
| 104 | * | ||
| 105 | * ,--------------------------------------------------. ,--------------------------------------------------. | ||
| 106 | * | ## | F1 | F2 | F3 | F4 | F5 | ## | | ## | F6 | F7 | F8 | F9 | F10 | F11 | | ||
| 107 | * |--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------| | ||
| 108 | * | ## | ! | " | £ | $ | % | ## | | ## | - | + | = | @ | ~ | F12 | | ||
| 109 | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| | ||
| 110 | * | ## | ^ | & | * | _ | # |------| |------| { | } | ; | ' | # | ## | | ||
| 111 | * |--------+------+------+------+------+------| ## | | ## |------+------+------+------+------+--------| | ||
| 112 | * | ## | \ | | | ` | - | / | | | | [ | ] | < | > | ? | ## | | ||
| 113 | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' | ||
| 114 | * | ## | ## | ## | ## | ## | | ## | ## | ## | ## | ## | | ||
| 115 | * `----------------------------------' `----------------------------------' | ||
| 116 | * ,-------------. ,-------------. | ||
| 117 | * | ## | ## | | ## | ## | | ||
| 118 | * ,------|------|------| |------+------+------. | ||
| 119 | * | | | ## | | ## | | | | ||
| 120 | * | ## | ## |------| |------| ## | ## | | ||
| 121 | * | | | ## | | ## | | | | ||
| 122 | * `--------------------' `--------------------' | ||
| 123 | */ | ||
| 124 | [SYMB] = KEYMAP( | ||
| 125 | // left hand | ||
| 126 | KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, | ||
| 127 | KC_TRNS, KC_EXLM, LSFT(KC_2), LSFT(KC_3), LSFT(KC_4), LSFT(KC_5), KC_TRNS, | ||
| 128 | KC_TRNS, LSFT(KC_6), LSFT(KC_7), LSFT(KC_8), LSFT(KC_MINS), UK_HASH, | ||
| 129 | KC_TRNS, UK_BSLS, UK_PIPE, KC_GRV, KC_MINS, KC_SLSH, KC_TRNS, | ||
| 130 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 131 | KC_TRNS, KC_TRNS, | ||
| 132 | KC_TRNS, | ||
| 133 | KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 134 | // right hand | ||
| 135 | KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, | ||
| 136 | KC_TRNS, KC_MINS, KC_PLUS, KC_EQL, LSFT(KC_QUOT), LSFT(UK_HASH), KC_F12, | ||
| 137 | KC_LCBR, KC_RCBR, KC_SCLN, KC_QUOT, UK_HASH, KC_TRNS, | ||
| 138 | KC_TRNS, KC_LBRC, KC_RBRC, LSFT(KC_COMM), LSFT(KC_DOT), LSFT(KC_SLSH), KC_TRNS, | ||
| 139 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 140 | KC_TRNS, KC_TRNS, | ||
| 141 | KC_TRNS, | ||
| 142 | KC_TRNS, KC_TRNS, KC_TRNS | ||
| 143 | ), | ||
| 144 | /* Keymap 2: Numerics and hex | ||
| 145 | * | ||
| 146 | * ,---------------------------------------------------. ,--------------------------------------------------. | ||
| 147 | * | ## | A | B | C | D | E | F | | A | B | C | D | E | F | ## | | ||
| 148 | * |---------+------+------+------+------+------+------| |------+------+------+------+------+------+--------| | ||
| 149 | * | ## | * | 7 | 8 | 9 | * | 0x | | 0x | * | 7 | 8 | 9 | * | ## | | ||
| 150 | * |---------+------+------+------+------+------| | | |------+------+------+------+------+--------| | ||
| 151 | * | ## | / | 4 | 5 | 6 | / |------| |------| / | 4 | 5 | 6 | / | ## | | ||
| 152 | * |---------+------+------+------+------+------| ## | | ## |------+------+------+------+------+--------| | ||
| 153 | * | ## | - | 1 | 2 | 3 | - | | | | - | 1 | 2 | 3 | - | ## | | ||
| 154 | * `---------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' | ||
| 155 | * | = | + | 0 | , | . | | 0 | , | . | + | = | | ||
| 156 | * `-----------------------------------' `----------------------------------' | ||
| 157 | * ,-------------. ,-------------. | ||
| 158 | * | ## | ## | | ## | ## | | ||
| 159 | * ,------|------|------| |------+------+------. | ||
| 160 | * | | | ## | | ## | | | | ||
| 161 | * | ## | ## |------| |------| ## | ## | | ||
| 162 | * | | | ## | | ## | | | | ||
| 163 | * `--------------------' `--------------------' | ||
| 164 | */ | ||
| 165 | [NUMB] = KEYMAP( | ||
| 166 | // left hand | ||
| 167 | KC_TRNS, KC_A, KC_B, KC_C, KC_D, KC_E, KC_F, | ||
| 168 | KC_TRNS, KC_ASTR, KC_7, KC_8, KC_9, KC_ASTR, UM_0x, | ||
| 169 | KC_TRNS, KC_SLSH, KC_4, KC_5, KC_6, KC_SLSH, | ||
| 170 | KC_TRNS, KC_MINS, KC_1, KC_2, KC_3, KC_MINS, KC_TRNS, | ||
| 171 | KC_EQL, KC_PLUS, KC_0, KC_COMM, KC_DOT, | ||
| 172 | KC_TRNS, KC_TRNS, | ||
| 173 | KC_TRNS, | ||
| 174 | KC_TRNS, KC_TRNS, KC_TRNS, | ||
| 175 | // right hand | ||
| 176 | KC_A, KC_B, KC_C, KC_D, KC_E, KC_F, KC_TRNS, | ||
| 177 | UM_0x, KC_ASTR, KC_7, KC_8, KC_9, KC_ASTR, KC_TRNS, | ||
| 178 | KC_SLSH, KC_4, KC_5, KC_6, KC_SLSH, KC_TRNS, | ||
| 179 | KC_TRNS, KC_MINS, KC_1, KC_2, KC_3, KC_MINS, KC_TRNS, | ||
| 180 | KC_0, KC_COMM, KC_DOT, KC_PLUS, KC_EQL, | ||
| 181 | KC_TRNS, KC_TRNS, | ||
| 182 | KC_TRNS, | ||
| 183 | KC_TRNS, KC_TRNS, KC_TRNS | ||
| 184 | ), | ||
| 185 | /* Keymap 3: Cursor movement | ||
| 186 | * | ||
| 187 | * ,---------------------------------------------------. ,--------------------------------------------------. | ||
| 188 | * | | | | | | | | | | | | | | | | | ||
| 189 | * |---------+------+------+------+------+------+------| |------+------+------+------+------+------+--------| | ||
| 190 | * | | Home | | Up | | PgUp | | | | PgUp | | Up | | Home | | | ||
| 191 | * |---------+------+------+------+------+------| | | |------+------+------+------+------+--------| | ||
| 192 | * | | End | Left | Down | Right| PgDn |------| |------| PgDn | Left | Down | Right| End | | | ||
| 193 | * |---------+------+------+------+------+------| | | |------+------+------+------+------+--------| | ||
| 194 | * | ## | Up | | Down | ## | | | | | | ## | Down | | Up | ## | | ||
| 195 | * `---------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' | ||
| 196 | * | Left | Down | Right| | | | | | Left | Down | Right| | ||
| 197 | * `-----------------------------------' `----------------------------------' | ||
| 198 | * ,-------------. ,-------------. | ||
| 199 | * | | | | | | | ||
| 200 | * ,------|------|------| |------+------+------. | ||
| 201 | * | | | | | | | | | ||
| 202 | * | ## | ## |------| |------| ## | ## | | ||
| 203 | * | | | | | | | | | ||
| 204 | * `--------------------' `--------------------' | ||
| 205 | */ | ||
| 206 | [CRSR] = KEYMAP( | ||
| 207 | // left hand | ||
| 208 | KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, | ||
| 209 | KC_NO, KC_HOME, KC_NO, KC_UP, KC_NO, KC_PGUP, KC_NO, | ||
| 210 | KC_NO, KC_END, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, | ||
| 211 | KC_TRNS, KC_UP, KC_NO, KC_DOWN, KC_TRNS, KC_NO, KC_NO, | ||
| 212 | KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_NO, | ||
| 213 | KC_NO, KC_NO, | ||
| 214 | KC_NO, | ||
| 215 | KC_TRNS, KC_TRNS, KC_NO, | ||
| 216 | // right hand | ||
| 217 | KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, | ||
| 218 | KC_NO, KC_PGUP, KC_NO, KC_UP, KC_NO, KC_HOME, KC_NO, | ||
| 219 | KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, KC_NO, | ||
| 220 | KC_NO, KC_NO, KC_TRNS, KC_DOWN, KC_NO, KC_UP, KC_TRNS, | ||
| 221 | KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, | ||
| 222 | KC_NO, KC_NO, | ||
| 223 | KC_NO, | ||
| 224 | KC_NO, KC_TRNS, KC_TRNS | ||
| 225 | ), | ||
| 226 | /* Keymap 4: Media and mouse keys | ||
| 227 | * | ||
| 228 | * ,--------------------------------------------------. ,--------------------------------------------------. | ||
| 229 | * | | | | | | | | | | | | | | | | | ||
| 230 | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| | ||
| 231 | * | | | Lclk | MsUp | Rclk | | | | | | Lclk | MsUp | Rclk | | | | ||
| 232 | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| | ||
| 233 | * | | |MsLeft|MsDown|MsRght| |------| |------| |MsLeft|MsDown|MsRght| | | | ||
| 234 | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| | ||
| 235 | * | Lclk | MsUp | Rclk |MsDown| | ## | | | | ## | |MsDown| Lclk | MsUp | Rclk | | ||
| 236 | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' | ||
| 237 | * |MsLeft|MsDown|MsRight | | | | |MsLeft|MsDown|MsRght| | ||
| 238 | * `----------------------------------' `----------------------------------' | ||
| 239 | * ,-------------. ,-------------. | ||
| 240 | * | | | | | | | ||
| 241 | * ,------|------|------| |------+------+------. | ||
| 242 | * | | | | | | | | | ||
| 243 | * | | |------| |------| | | | ||
| 244 | * | | | | | | | | | ||
| 245 | * `--------------------' `--------------------' | ||
| 246 | */ | ||
| 247 | [MOUS] = KEYMAP( | ||
| 248 | // left hand | ||
| 249 | KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, | ||
| 250 | KC_NO, KC_NO, KC_BTN1, KC_MS_U, KC_BTN2, KC_NO, KC_NO, | ||
| 251 | KC_NO, KC_NO, KC_MS_L, KC_MS_D, KC_MS_R, KC_NO, | ||
| 252 | KC_BTN1, KC_MS_U, KC_BTN2, KC_MS_D, KC_NO, KC_TRNS, KC_NO, | ||
| 253 | KC_MS_L, KC_MS_D, KC_MS_R, KC_NO, KC_NO, | ||
| 254 | KC_NO, KC_NO, | ||
| 255 | KC_NO, | ||
| 256 | KC_NO, KC_NO, KC_NO, | ||
| 257 | // right hand | ||
| 258 | KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, | ||
| 259 | KC_NO, KC_NO, KC_BTN1, KC_MS_U, KC_BTN2, KC_NO, KC_NO, | ||
| 260 | KC_NO, KC_MS_L, KC_MS_D, KC_MS_R, KC_NO, KC_NO, | ||
| 261 | KC_NO, KC_TRNS, KC_NO, KC_MS_D, KC_BTN1, KC_MS_U, KC_BTN2, | ||
| 262 | KC_NO, KC_NO, KC_MS_L, KC_MS_D, KC_MS_R, | ||
| 263 | KC_NO, KC_NO, | ||
| 264 | KC_NO, | ||
| 265 | KC_NO, KC_NO, KC_NO | ||
| 266 | ), | ||
| 267 | /* Keymap 5: Keywords | ||
| 268 | * | ||
| 269 | * ,---------------------------------------------------. ,--------------------------------------------------. | ||
| 270 | * | | | | scarf| sadf | smily| | | | decaf| | | | | | | ||
| 271 | * |---------+------+------+------+------+------+------| |------+------+------+------+------+------+--------| | ||
| 272 | * | | const| volat| oper | ret | tmpl | | | | typen| cont | prv | pro | pub | | | ||
| 273 | * |---------+------+------+------+------+------| | | |------+------+------+------+------+--------| | ||
| 274 | * | | | str | obj | | gitl |------| |------| | | | nulp | | | | ||
| 275 | * |---------+------+------+------+------+------| | | |------+------+------+------+------+--------| | ||
| 276 | * | | | extr | cls | virt | break| | | |namesp| goodm| goodn| | | | | ||
| 277 | * `---------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' | ||
| 278 | * | | | inc | | | | | | | | | | ||
| 279 | * `-----------------------------------' `----------------------------------' | ||
| 280 | * ,-------------. ,-------------. | ||
| 281 | * | | | | ecet | ecets| | ||
| 282 | * ,------|------|------| |------+------+------. | ||
| 283 | * | | | | | | | | | ||
| 284 | * | | |------| |------| | | | ||
| 285 | * | | | ## | | ## | | | | ||
| 286 | * `--------------------' `--------------------' | ||
| 287 | */ | ||
| 288 | [KEYW] = KEYMAP( | ||
| 289 | // left hand | ||
| 290 | KC_NO, KC_NO, KC_NO, UM_SCARF, UM_SADF, UM_SMILY, KC_NO, | ||
| 291 | KC_NO, UM_CONST, UM_VOLAT, UM_OPER, UM_RET, UM_TMPL, KC_NO, | ||
| 292 | KC_NO, KC_NO, UM_STR, UM_OBJ, KC_NO, UM_GITLOG, | ||
| 293 | KC_NO, KC_NO, UM_EXTR, UM_CLS, UM_VIRT, UM_BREAK, KC_NO, | ||
| 294 | KC_NO, KC_NO, UM_INC, KC_NO, KC_NO, | ||
| 295 | KC_NO, KC_NO, | ||
| 296 | KC_NO, | ||
| 297 | KC_NO, KC_NO, KC_TRNS, | ||
| 298 | // right hand | ||
| 299 | KC_NO, UM_DECAF, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, | ||
| 300 | KC_NO, UM_TYPN, UM_CONT, UM_PRV, UM_PRO, UM_PUB, KC_NO, | ||
| 301 | KC_NO, KC_NO, KC_NO, UM_NULP, KC_NO, KC_NO, | ||
| 302 | KC_NO, UM_NAMESP, UM_GOODM, UM_GOODN, KC_NO, KC_NO, KC_NO, | ||
| 303 | KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, | ||
| 304 | UM_ECET, UM_ECETS, | ||
| 305 | KC_NO, | ||
| 306 | KC_TRNS, KC_NO, KC_NO | ||
| 307 | ), | ||
| 308 | /* Keymap 6: emacs | ||
| 309 | * | ||
| 310 | * ,---------------------------------------------------. ,--------------------------------------------------. | ||
| 311 | * | | | | | | | empb | | emnb | emfs | emfb | | | | | | ||
| 312 | * |---------+------+------+------+------+------+------| |------+------+------+------+------+------+--------| | ||
| 313 | * | | emtr | | | | | | | | emun | emre | w-up | | | | | ||
| 314 | * |---------+------+------+------+------+------| | | |------+------+------+------+------+--------| | ||
| 315 | * | | | emwr | | | |------| |------| |w-left|w-down|w-rght| | | | ||
| 316 | * |---------+------+------+------+------+------| ## | | ## |------+------+------+------+------+--------| | ||
| 317 | * | | | | | | | | | | | |w-down| | | | | ||
| 318 | * `---------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' | ||
| 319 | * | | | | | | | | | | | | | ||
| 320 | * `-----------------------------------' `----------------------------------' | ||
| 321 | * ,-------------. ,-------------. | ||
| 322 | * | | | | | | | ||
| 323 | * ,------|------|------| |------+------+------. | ||
| 324 | * | | | | | | | | | ||
| 325 | * | | |------| |------| | | | ||
| 326 | * | | | | | | | | | ||
| 327 | * `--------------------' `--------------------' | ||
| 328 | */ | ||
| 329 | [EMAC] = KEYMAP( | ||
| 330 | // left hand | ||
| 331 | KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, UM_EMPB, | ||
| 332 | KC_NO, UM_EMTR, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, | ||
| 333 | KC_NO, KC_NO, UM_EMWR, KC_NO, KC_NO, KC_NO, | ||
| 334 | KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, | ||
| 335 | KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, | ||
| 336 | KC_NO, KC_NO, | ||
| 337 | KC_NO, | ||
| 338 | KC_NO, KC_NO, KC_NO, | ||
| 339 | // right hand | ||
| 340 | UM_EMNB, UM_EMFS, UM_EMFB, KC_NO, KC_NO, KC_NO, KC_NO, | ||
| 341 | KC_NO, UM_EMUN, UM_EMRE, LSFT(KC_UP), KC_NO, KC_NO, KC_NO, | ||
| 342 | KC_NO, LSFT(KC_LEFT), LSFT(KC_DOWN), LSFT(KC_RGHT), KC_NO, KC_NO, | ||
| 343 | KC_TRNS, KC_NO, KC_NO, LSFT(KC_DOWN), KC_NO, KC_NO, KC_NO, | ||
| 344 | KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, | ||
| 345 | KC_NO, KC_NO, | ||
| 346 | KC_NO, | ||
| 347 | KC_NO, KC_NO, KC_NO | ||
| 348 | ), | ||
| 349 | }; | ||
| 350 | |||
| 351 | enum next_key_down_up { | ||
| 352 | NK_DOWN_UP, | ||
| 353 | NK_DOWN, | ||
| 354 | NK_UP // a bit of a hack, this works as long as NK_UP < KC_A | ||
| 355 | }; | ||
| 356 | |||
| 357 | void send_keystrokes(uint8_t key, ...) | ||
| 358 | { | ||
| 359 | va_list vl; | ||
| 360 | va_start(vl, key); | ||
| 361 | enum next_key_down_up nkdu = NK_DOWN_UP; | ||
| 362 | while (key != KC_NO) { | ||
| 363 | if (key < KC_A) { | ||
| 364 | nkdu = key; | ||
| 365 | } else { | ||
| 366 | switch (nkdu) { | ||
| 367 | case NK_DOWN_UP: | ||
| 368 | register_code(key); | ||
| 369 | case NK_UP: | ||
| 370 | unregister_code(key); | ||
| 371 | break; | ||
| 372 | case NK_DOWN: | ||
| 373 | register_code(key); | ||
| 374 | } | ||
| 375 | nkdu = NK_DOWN_UP; | ||
| 376 | } | ||
| 377 | key = va_arg(vl, int); | ||
| 378 | } | ||
| 379 | va_end(vl); | ||
| 380 | } | ||
| 381 | |||
| 382 | const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) | ||
| 383 | { | ||
| 384 | // MACRODOWN only works in this function | ||
| 385 | switch(id) { | ||
| 386 | case 0: // { } | ||
| 387 | if (record->event.pressed) { | ||
| 388 | return MACRO(T(ENT), D(LSFT), T(LBRC), U(LSFT), T(ENT), | ||
| 389 | D(LSFT), T(RBRC), U(LSFT), T(UP), | ||
| 390 | T(TAB), END); | ||
| 391 | } | ||
| 392 | break; | ||
| 393 | case 1: | ||
| 394 | if (record->event.pressed) { | ||
| 395 | return MACRO(T(0), T(X), END); | ||
| 396 | } | ||
| 397 | break; | ||
| 398 | case 2: | ||
| 399 | if (record->event.pressed) { | ||
| 400 | SEND_STRING("public"); | ||
| 401 | } | ||
| 402 | break; | ||
| 403 | case 3: | ||
| 404 | if (record->event.pressed) { | ||
| 405 | SEND_STRING("protected"); | ||
| 406 | } | ||
| 407 | break; | ||
| 408 | case 4: | ||
| 409 | if (record->event.pressed) { | ||
| 410 | SEND_STRING("private"); | ||
| 411 | } | ||
| 412 | break; | ||
| 413 | case 5: // class | ||
| 414 | if (record->event.pressed) { | ||
| 415 | return MACRO(T(C), T(L), T(A), T(S), T(S), T(ENT), | ||
| 416 | D(LSFT), T(LBRC), U(LSFT), T(ENT), | ||
| 417 | T(P), T(U), T(B), T(L), T(I), T(C), | ||
| 418 | D(LSFT), T(SCLN), U(LSFT), T(ENT), T(ENT), | ||
| 419 | T(P), T(R), T(I), T(V), T(A), T(T), T(E), | ||
| 420 | D(LSFT), T(SCLN), U(LSFT), T(ENT), | ||
| 421 | D(LSFT), T(RBRC), U(LSFT), T(SCLN), T(ENT), | ||
| 422 | T(UP), T(UP), T(UP), T(UP), T(UP), T(UP), T(UP), | ||
| 423 | T(END), T(SPC), END); | ||
| 424 | } | ||
| 425 | break; | ||
| 426 | case 6: // struct | ||
| 427 | if (record->event.pressed) { | ||
| 428 | return MACRO(T(S), T(T), T(R), T(U), T(C), T(T), T(ENT), | ||
| 429 | D(LSFT), T(LBRC), U(LSFT), T(ENT), | ||
| 430 | D(LSFT), T(RBRC), U(LSFT), T(SCLN), T(ENT), | ||
| 431 | T(UP), T(UP), T(UP), T(UP), | ||
| 432 | T(END), T(SPC), END); | ||
| 433 | } | ||
| 434 | break; | ||
| 435 | case 7: | ||
| 436 | if (record->event.pressed) { | ||
| 437 | SEND_STRING("return"); | ||
| 438 | } | ||
| 439 | break; | ||
| 440 | case 8: // #include | ||
| 441 | if (record->event.pressed) { | ||
| 442 | return MACRO(T(NONUS_HASH), T(I), T(N), T(C), T(L), T(U), T(D), T(E), END); | ||
| 443 | } | ||
| 444 | break; | ||
| 445 | case 9: | ||
| 446 | if (record->event.pressed) { | ||
| 447 | SEND_STRING("objdump -CT -x -d"); | ||
| 448 | } | ||
| 449 | break; | ||
| 450 | case 10: | ||
| 451 | if (record->event.pressed) { | ||
| 452 | SEND_STRING("git log --oneline --graph --decorate=short"); | ||
| 453 | } | ||
| 454 | break; | ||
| 455 | case 11: | ||
| 456 | if (record->event.pressed) { | ||
| 457 | SEND_STRING("good morning"); | ||
| 458 | } | ||
| 459 | break; | ||
| 460 | case 12: | ||
| 461 | if (record->event.pressed) { | ||
| 462 | SEND_STRING("namespace"); | ||
| 463 | } | ||
| 464 | break; | ||
| 465 | case 14: // emacs toggle read-only | ||
| 466 | if (record->event.pressed) { | ||
| 467 | return MACRO(D(LCTL), T(X), T(Q), U(LCTL), END); | ||
| 468 | } | ||
| 469 | break; | ||
| 470 | case 15: // emacs write buffer | ||
| 471 | if (record->event.pressed) { | ||
| 472 | return MACRO(D(LCTL), T(X), T(S), U(LCTL), END); | ||
| 473 | } | ||
| 474 | break; | ||
| 475 | case 16: // emacs undo | ||
| 476 | if (record->event.pressed) { | ||
| 477 | return MACRO(D(LCTL), D(LSFT), T(MINS), U(LSFT), U(LCTL), END); | ||
| 478 | } | ||
| 479 | break; | ||
| 480 | case 17: // emacs redo | ||
| 481 | if (record->event.pressed) { | ||
| 482 | return MACRO(D(LALT), D(LSFT), T(MINS), U(LSFT), U(LALT), END); | ||
| 483 | } | ||
| 484 | break; | ||
| 485 | case 18: // emacs previous buffer | ||
| 486 | if (record->event.pressed) { | ||
| 487 | return MACRO(D(LCTL), T(X), U(LCTL), T(LEFT), END); | ||
| 488 | } | ||
| 489 | break; | ||
| 490 | case 19: // emacs next buffer | ||
| 491 | if (record->event.pressed) { | ||
| 492 | return MACRO(D(LCTL), T(X), U(LCTL), T(RGHT), END); | ||
| 493 | } | ||
| 494 | break; | ||
| 495 | case 20: | ||
| 496 | if (record->event.pressed) { | ||
| 497 | SEND_STRING("good night"); | ||
| 498 | } | ||
| 499 | break; | ||
| 500 | case 22: // { }; | ||
| 501 | if (record->event.pressed) { | ||
| 502 | return MACRO(T(ENT), D(LSFT), T(LBRC), U(LSFT), T(ENT), | ||
| 503 | D(LSFT), T(RBRC), U(LSFT), T(SCLN), T(UP), | ||
| 504 | T(TAB), END); | ||
| 505 | } | ||
| 506 | break; | ||
| 507 | case 23: | ||
| 508 | if (record->event.pressed) { | ||
| 509 | SEND_STRING("template"); | ||
| 510 | } | ||
| 511 | break; | ||
| 512 | case 24: | ||
| 513 | if (record->event.pressed) { | ||
| 514 | SEND_STRING("typename"); | ||
| 515 | } | ||
| 516 | break; | ||
| 517 | case 25: | ||
| 518 | if (record->event.pressed) { | ||
| 519 | SEND_STRING("continue"); | ||
| 520 | return MACRO(T(SCLN), END); | ||
| 521 | } | ||
| 522 | break; | ||
| 523 | case 26: | ||
| 524 | if (record->event.pressed) { | ||
| 525 | SEND_STRING("break"); | ||
| 526 | return MACRO(T(SCLN), END); | ||
| 527 | } | ||
| 528 | break; | ||
| 529 | case 27: | ||
| 530 | if (record->event.pressed) { | ||
| 531 | SEND_STRING("const"); | ||
| 532 | } | ||
| 533 | break; | ||
| 534 | case 28: | ||
| 535 | if (record->event.pressed) { | ||
| 536 | SEND_STRING(":-)"); | ||
| 537 | } | ||
| 538 | break; | ||
| 539 | case 29: | ||
| 540 | if (record->event.pressed) { | ||
| 541 | SEND_STRING(":-("); | ||
| 542 | } | ||
| 543 | break; | ||
| 544 | case 30: // dazed | ||
| 545 | if (record->event.pressed) { | ||
| 546 | send_keystrokes(NK_DOWN, KC_LSFT, KC_8, KC_MINS, KC_8, NK_UP, KC_LSFT, KC_NO); | ||
| 547 | } | ||
| 548 | break; | ||
| 549 | case 31: // decaf | ||
| 550 | if (record->event.pressed) { | ||
| 551 | send_keystrokes(NK_DOWN, KC_LSFT, KC_C, KC_9, KC_MINS, KC_0, NK_UP, KC_LSFT, KC_NO); | ||
| 552 | } | ||
| 553 | break; | ||
| 554 | case 32: | ||
| 555 | if (record->event.pressed) { | ||
| 556 | SEND_STRING("operator"); | ||
| 557 | } | ||
| 558 | break; | ||
| 559 | case 33: | ||
| 560 | if (record->event.pressed) { | ||
| 561 | SEND_STRING("nullptr"); | ||
| 562 | } | ||
| 563 | break; | ||
| 564 | case 34: | ||
| 565 | if (record->event.pressed) { | ||
| 566 | SEND_STRING("extern"); | ||
| 567 | } | ||
| 568 | break; | ||
| 569 | case 35: | ||
| 570 | if (record->event.pressed) { | ||
| 571 | SEND_STRING("virtual"); | ||
| 572 | } | ||
| 573 | break; | ||
| 574 | case 36: // emacs font smaller | ||
| 575 | if (record->event.pressed) { | ||
| 576 | return MACRO(D(LCTL), T(X), T(EQL), U(LCTL), END); | ||
| 577 | } | ||
| 578 | break; | ||
| 579 | case 37: // emacs font bigger | ||
| 580 | if (record->event.pressed) { | ||
| 581 | return MACRO(D(LCTL), T(X), T(MINS), U(LCTL), END); | ||
| 582 | } | ||
| 583 | break; | ||
| 584 | case 38: | ||
| 585 | if (record->event.pressed) { | ||
| 586 | SEND_STRING("volatile"); | ||
| 587 | } | ||
| 588 | break; | ||
| 589 | } | ||
| 590 | return MACRO_NONE; | ||
| 591 | } | ||
| 592 | |||
| 593 | LEADER_EXTERNS(); | ||
| 594 | |||
| 595 | // Runs constantly in the background, in a loop. | ||
| 596 | void matrix_scan_user(void) { | ||
| 597 | |||
| 598 | LEADER_DICTIONARY() { | ||
| 599 | leading = false; | ||
| 600 | leader_end(); | ||
| 601 | |||
| 602 | SEQ_TWO_KEYS(KC_G, KC_A) { | ||
| 603 | SEND_STRING("git add ."); | ||
| 604 | } | ||
| 605 | SEQ_TWO_KEYS(KC_G, KC_D) { | ||
| 606 | SEND_STRING("git diff"); | ||
| 607 | } | ||
| 608 | SEQ_THREE_KEYS(KC_G, KC_D, KC_S) { | ||
| 609 | SEND_STRING("git diff --staged"); | ||
| 610 | } | ||
| 611 | SEQ_TWO_KEYS(KC_G, KC_L) { | ||
| 612 | SEND_STRING("git log"); | ||
| 613 | } | ||
| 614 | SEQ_THREE_KEYS(KC_G, KC_L, KC_O) { | ||
| 615 | SEND_STRING("git log --oneline"); | ||
| 616 | } | ||
| 617 | SEQ_TWO_KEYS(KC_G, KC_F) { | ||
| 618 | SEND_STRING("git fetch"); | ||
| 619 | } | ||
| 620 | SEQ_TWO_KEYS(KC_G, KC_O) { | ||
| 621 | SEND_STRING("git checkout"); | ||
| 622 | } | ||
| 623 | SEQ_TWO_KEYS(KC_G, KC_P) { | ||
| 624 | SEND_STRING("git pull"); | ||
| 625 | } | ||
| 626 | SEQ_TWO_KEYS(KC_G, KC_S) { | ||
| 627 | SEND_STRING("git status"); | ||
| 628 | } | ||
| 629 | SEQ_TWO_KEYS(KC_G, KC_C) { | ||
| 630 | SEND_STRING("git commit -m ''"); | ||
| 631 | send_keystrokes(KC_LEFT, KC_NO); | ||
| 632 | } | ||
| 633 | SEQ_THREE_KEYS(KC_G, KC_C, KC_A) { | ||
| 634 | SEND_STRING("git commit --amend"); | ||
| 635 | } | ||
| 636 | |||
| 637 | SEQ_TWO_KEYS(KC_C, KC_C) { | ||
| 638 | SEND_STRING("const_cast<>"); | ||
| 639 | send_keystrokes(KC_LEFT, KC_NO); | ||
| 640 | } | ||
| 641 | SEQ_TWO_KEYS(KC_C, KC_D) { | ||
| 642 | SEND_STRING("dynamic_cast<>"); | ||
| 643 | send_keystrokes(KC_LEFT, KC_NO); | ||
| 644 | } | ||
| 645 | SEQ_TWO_KEYS(KC_C, KC_R) { | ||
| 646 | SEND_STRING("reinterpret_cast<>"); | ||
| 647 | send_keystrokes(KC_LEFT, KC_NO); | ||
| 648 | } | ||
| 649 | SEQ_TWO_KEYS(KC_C, KC_S) { | ||
| 650 | SEND_STRING("static_cast<>"); | ||
| 651 | send_keystrokes(KC_LEFT, KC_NO); | ||
| 652 | } | ||
| 653 | |||
| 654 | SEQ_ONE_KEY(KC_SLSH) { | ||
| 655 | send_keystrokes(KC_SLSH, NK_DOWN, KC_LSFT, KC_8, KC_8, NK_UP, KC_LSFT, KC_ENT, | ||
| 656 | NK_DOWN, KC_LSFT, KC_8, NK_UP, KC_LSFT, KC_ENT, | ||
| 657 | NK_DOWN, KC_LSFT, KC_8, NK_UP, KC_LSFT, KC_SLSH, KC_UP, KC_END, KC_SPC, | ||
| 658 | KC_NO); | ||
| 659 | } | ||
| 660 | } | ||
| 661 | } | ||
diff --git a/keyboards/ergodox/keymaps/albert/readme.md b/keyboards/ergodox/keymaps/albert/readme.md new file mode 100644 index 000000000..e20e047ac --- /dev/null +++ b/keyboards/ergodox/keymaps/albert/readme.md | |||
| @@ -0,0 +1,188 @@ | |||
| 1 | # ErgoDox EZ Configuration for typing like a boss. | ||
| 2 | |||
| 3 | This layout has 7 layers: | ||
| 4 | 0. Base layers | ||
| 5 | 1. Symbols and F-keys | ||
| 6 | 2. Number pad (with hexadecimal) | ||
| 7 | 3. Cursor keys | ||
| 8 | 4. Mouse movement and clicks | ||
| 9 | 5. Keyword macros | ||
| 10 | 6. Emacs | ||
| 11 | |||
| 12 | There are also some leader keys defined for frequently used commands (git etc). | ||
| 13 | |||
| 14 | ## The layers | ||
| 15 | |||
| 16 | Double hashes (`##`) indicate transparent keys (`KC_TRNS`) and blanks indicate no key (`KC_NO`). | ||
| 17 | |||
| 18 | ### 0. Base layer | ||
| 19 | |||
| 20 | ``` | ||
| 21 | ,--------------------------------------------------. ,--------------------------------------------------. | ||
| 22 | | ESC | 1 | 2 | 3 | 4 | 5 | SfLt | | SfRt | 6 | 7 | 8 | 9 | 0 | BkSp | | ||
| 23 | |--------|------|------|------|------|-------------| |------|------|------|------|------|------|--------| | ||
| 24 | | Tab | Q | W | E | R | T | L1 | | L1 | Y | U | I | O | P | Del | | ||
| 25 | |--------|------|------|------|------|------| | | |------|------|------|------|------|--------| | ||
| 26 | | Caps/L2| A | S | D | F | G |------| |------| H | J | K | L | ; |Enter/L2| | ||
| 27 | |--------|------|------|------|------|------| L6 | | L6 |------|------|------|------|------|--------| | ||
| 28 | | LSft/( | Z | X | C | V/L3 | B/L4 | | | | N/L4 | M/L3 | , | . | / | RSft/) | | ||
| 29 | `--------|------|------|------|------|-------------' `-------------|------|------|------|------|--------' | ||
| 30 | |Ctrl/[| Alt/]| # | Left |Right | | Up | Down | - | Alt/[|Ctrl/]| | ||
| 31 | `----------------------------------' `----------------------------------' | ||
| 32 | ,-------------. ,-------------. | ||
| 33 | | L2 | lead | | lead | Ins | | ||
| 34 | ,------|------|------| |------|------|------. | ||
| 35 | | Space| BkSp | Home | | PgUp | Enter|Space | | ||
| 36 | | / | / |------| |------| / | / | | ||
| 37 | | Ctrl | Alt |End/L5| |PDn/L5| Alt | Ctrl | | ||
| 38 | `--------------------' `--------------------' | ||
| 39 | ``` | ||
| 40 | |||
| 41 | Space Cadet shift is enabled. Ctrl and Alt doubles up as normal keys when tapped. | ||
| 42 | SfLt and SfRt sends Shift + left and Shift + Right respectively - for use with emacs with `windmove-default-keybindings`. | ||
| 43 | Caps and Enter may be held down to activate layer 2 (hexadecimal number pad). | ||
| 44 | Please see `matrix_scan_user` function in `keymap.c` for list of commands available via `lead` key. | ||
| 45 | |||
| 46 | ### 1. Symbols and F-keys | ||
| 47 | |||
| 48 | ``` | ||
| 49 | ,--------------------------------------------------. ,--------------------------------------------------. | ||
| 50 | | ## | F1 | F2 | F3 | F4 | F5 | ## | | ## | F6 | F7 | F8 | F9 | F10 | F11 | | ||
| 51 | |--------|------|------|------|------|------|------| |------|------|------|------|------|------|--------| | ||
| 52 | | ## | ! | " | £ | $ | % | ## | | ## | - | + | = | @ | ~ | F12 | | ||
| 53 | |--------|------|------|------|------|------| | | |------|------|------|------|------|--------| | ||
| 54 | | ## | ^ | & | * | _ | # |------| |------| { | } | ; | ' | # | ## | | ||
| 55 | |--------|------|------|------|------|------| ## | | ## |------|------|------|------|------|--------| | ||
| 56 | | ## | \ | | | ` | - | / | | | | [ | ] | < | > | ? | ## | | ||
| 57 | `--------|------|------|------|------|-------------' `-------------|------|------|------|------|--------' | ||
| 58 | | ## | ## | ## | ## | ## | | ## | ## | ## | ## | ## | | ||
| 59 | `----------------------------------' `----------------------------------' | ||
| 60 | ,-------------. ,-------------. | ||
| 61 | | ## | ## | | ## | ## | | ||
| 62 | ,------|------|------| |------|------|------. | ||
| 63 | | | | ## | | ## | | | | ||
| 64 | | ## | ## |------| |------| ## | ## | | ||
| 65 | | | | ## | | ## | | | | ||
| 66 | `--------------------' `--------------------' | ||
| 67 | ``` | ||
| 68 | |||
| 69 | ### 2. Number pad (with hexadecimal) | ||
| 70 | |||
| 71 | ``` | ||
| 72 | ,---------------------------------------------------. ,--------------------------------------------------. | ||
| 73 | | ## | A | B | C | D | E | F | | A | B | C | D | E | F | ## | | ||
| 74 | |---------|------|------|------|------|------|------| |------|------|------|------|------|------|--------| | ||
| 75 | | ## | * | 7 | 8 | 9 | * | 0x | | 0x | * | 7 | 8 | 9 | * | ## | | ||
| 76 | |---------|------|------|------|------|------| | | |------|------|------|------|------|--------| | ||
| 77 | | ## | / | 4 | 5 | 6 | / |------| |------| / | 4 | 5 | 6 | / | ## | | ||
| 78 | |---------|------|------|------|------|------| ## | | ## |------|------|------|------|------|--------| | ||
| 79 | | ## | - | 1 | 2 | 3 | - | | | | - | 1 | 2 | 3 | - | ## | | ||
| 80 | `---------|------|------|------|------|-------------' `-------------|------|------|------|------|--------' | ||
| 81 | | = | + | 0 | , | . | | 0 | , | . | + | = | | ||
| 82 | `-----------------------------------' `----------------------------------' | ||
| 83 | ,-------------. ,-------------. | ||
| 84 | | ## | ## | | ## | ## | | ||
| 85 | ,------|------|------| |------|------|------. | ||
| 86 | | | | ## | | ## | | | | ||
| 87 | | ## | ## |------| |------| ## | ## | | ||
| 88 | | | | ## | | ## | | | | ||
| 89 | `--------------------' `--------------------' | ||
| 90 | ``` | ||
| 91 | |||
| 92 | ### 3. Cursor keys | ||
| 93 | |||
| 94 | ``` | ||
| 95 | ,---------------------------------------------------. ,--------------------------------------------------. | ||
| 96 | | | | | | | | | | | | | | | | | | ||
| 97 | |---------|------|------|------|------|------|------| |------|------|------|------|------|------|--------| | ||
| 98 | | | Home | | Up | | PgUp | | | | PgUp | | Up | | Home | | | ||
| 99 | |---------|------|------|------|------|------| | | |------|------|------|------|------|--------| | ||
| 100 | | | End | Left | Down | Right| PgDn |------| |------| PgDn | Left | Down | Right| End | | | ||
| 101 | |---------|------|------|------|------|------| | | |------|------|------|------|------|--------| | ||
| 102 | | ## | Up | | Down | ## | | | | | | ## | Down | | Up | ## | | ||
| 103 | `---------|------|------|------|------|-------------' `-------------|------|------|------|------|--------' | ||
| 104 | | Left | Down | Right| | | | | | Left | Down | Right| | ||
| 105 | `-----------------------------------' `----------------------------------' | ||
| 106 | ,-------------. ,-------------. | ||
| 107 | | | | | | | | ||
| 108 | ,------|------|------| |------|------|------. | ||
| 109 | | | | | | | | | | ||
| 110 | | ## | ## |------| |------| ## | ## | | ||
| 111 | | | | | | | | | | ||
| 112 | `--------------------' `--------------------' | ||
| 113 | ``` | ||
| 114 | |||
| 115 | ### 4. Mouse movement and clicks | ||
| 116 | |||
| 117 | ``` | ||
| 118 | ,--------------------------------------------------. ,--------------------------------------------------. | ||
| 119 | | | | | | | | | | | | | | | | | | ||
| 120 | |--------|------|------|------|------|-------------| |------|------|------|------|------|------|--------| | ||
| 121 | | | | Lclk | MsUp | Rclk | | | | | | Lclk | MsUp | Rclk | | | | ||
| 122 | |--------|------|------|------|------|------| | | |------|------|------|------|------|--------| | ||
| 123 | | | |MsLeft|MsDown|MsRght| |------| |------| |MsLeft|MsDown|MsRght| | | | ||
| 124 | |--------|------|------|------|------|------| | | |------|------|------|------|------|--------| | ||
| 125 | | Lclk | MsUp | Rclk |MsDown| | ## | | | | ## | |MsDown| Lclk | MsUp | Rclk | | ||
| 126 | `--------|------|------|------|------|-------------' `-------------|------|------|------|------|--------' | ||
| 127 | |MsLeft|MsDown|MsRight | | | | |MsLeft|MsDown|MsRght| | ||
| 128 | `----------------------------------' `----------------------------------' | ||
| 129 | ,-------------. ,-------------. | ||
| 130 | | | | | | | | ||
| 131 | ,------|------|------| |------|------|------. | ||
| 132 | | | | | | | | | | ||
| 133 | | | |------| |------| | | | ||
| 134 | | | | | | | | | | ||
| 135 | `--------------------' `--------------------' | ||
| 136 | ``` | ||
| 137 | |||
| 138 | ### 5. Keyword macros | ||
| 139 | |||
| 140 | ``` | ||
| 141 | ,---------------------------------------------------. ,--------------------------------------------------. | ||
| 142 | | | | | scarf| sadf | smily| | | | decaf| | | | | | | ||
| 143 | |---------|------|------|------|------|------|------| |------|------|------|------|------|------|--------| | ||
| 144 | | | const| volat| oper | ret | tmpl | | | | typen| cont | prv | pro | pub | | | ||
| 145 | |---------|------|------|------|------|------| | | |------|------|------|------|------|--------| | ||
| 146 | | | | str | obj | | gitl |------| |------| | | | nulp | | | | ||
| 147 | |---------|------|------|------|------|------| | | |------|------|------|------|------|--------| | ||
| 148 | | | | extr | cls | virt | break| | | |namesp| goodm| goodn| | | | | ||
| 149 | `---------|------|------|------|------|-------------' `-------------|------|------|------|------|--------' | ||
| 150 | | | | inc | | | | | | | | | | ||
| 151 | `-----------------------------------' `----------------------------------' | ||
| 152 | ,-------------. ,-------------. | ||
| 153 | | | | | ecet | ecets| | ||
| 154 | ,------|------|------| |------|------|------. | ||
| 155 | | | | | | | | | | ||
| 156 | | | |------| |------| | | | ||
| 157 | | | | ## | | ## | | | | ||
| 158 | `--------------------' `--------------------' | ||
| 159 | ``` | ||
| 160 | Please see `keymap.c` for the keywords/commands. | ||
| 161 | Some are const, volatile, operator, return, template, typename, continue, private, | ||
| 162 | protected, public, struct, class, extern, virtual, break, namespace. | ||
| 163 | Also a git log command I use a lot (`git log --oneline --graph --decorate=short` (I know git can be configured but that is boring)). | ||
| 164 | |||
| 165 | ### 6. Emacs | ||
| 166 | |||
| 167 | ``` | ||
| 168 | ,---------------------------------------------------. ,--------------------------------------------------. | ||
| 169 | | | | | | | | empb | | emnb | emfs | emfb | | | | | | ||
| 170 | |---------|------|------|------|------|------|------| |------|------|------|------|------|------|--------| | ||
| 171 | | | emtr | | | | | | | | emun | emre | w-up | | | | | ||
| 172 | |---------|------|------|------|------|------| | | |------|------|------|------|------|--------| | ||
| 173 | | | | emwr | | | |------| |------| |w-left|w-down|w-rght| | | | ||
| 174 | |---------|------|------|------|------|------| ## | | ## |------|------|------|------|------|--------| | ||
| 175 | | | | | | | | | | | | |w-down| | | | | ||
| 176 | `---------|------|------|------|------|-------------' `-------------|------|------|------|------|--------' | ||
| 177 | | | | | | | | | | | | | | ||
| 178 | `-----------------------------------' `----------------------------------' | ||
| 179 | ,-------------. ,-------------. | ||
| 180 | | | | | | | | ||
| 181 | ,------|------|------| |------|------|------. | ||
| 182 | | | | | | | | | | ||
| 183 | | | |------| |------| | | | ||
| 184 | | | | | | | | | | ||
| 185 | `--------------------' `--------------------' | ||
| 186 | ``` | ||
| 187 | Some emacs shortcuts like toggle read/write mode (emtr), write file (emwr), previous-buffer (empb), | ||
| 188 | next-buffer (emnb), smaller font(emfs), larger font (emfb), undo (emun), redo (emre) and switching between windows in a frame. | ||
diff --git a/keyboards/ergodox/keymaps/deadcyclo/Makefile b/keyboards/ergodox/keymaps/deadcyclo/Makefile new file mode 100644 index 000000000..039f07c8e --- /dev/null +++ b/keyboards/ergodox/keymaps/deadcyclo/Makefile | |||
| @@ -0,0 +1 @@ | |||
| UNICODE_ENABLE = yes | |||
diff --git a/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-base-layout.png b/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-base-layout.png index 4208c5189..2c03af581 100644 --- a/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-base-layout.png +++ b/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-base-layout.png | |||
| Binary files differ | |||
diff --git a/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-1-symbols.png b/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-1-symbols.png index ccda70e39..5adb7ac77 100644 --- a/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-1-symbols.png +++ b/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-1-symbols.png | |||
| Binary files differ | |||
diff --git a/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-2-media-and-mouse.png b/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-2-media-and-mouse.png index 481e63e32..a267ff23d 100644 --- a/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-2-media-and-mouse.png +++ b/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-2-media-and-mouse.png | |||
| Binary files differ | |||
diff --git a/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-3-navigation.png b/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-3-navigation.png index 9ebba6734..c8c90cf5c 100644 --- a/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-3-navigation.png +++ b/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-3-navigation.png | |||
| Binary files differ | |||
diff --git a/keyboards/ergodox/keymaps/deadcyclo/keymap.c b/keyboards/ergodox/keymaps/deadcyclo/keymap.c index d75c805bf..5774511cc 100644 --- a/keyboards/ergodox/keymaps/deadcyclo/keymap.c +++ b/keyboards/ergodox/keymaps/deadcyclo/keymap.c | |||
| @@ -8,15 +8,86 @@ | |||
| 8 | #define MDIA 2 // media keys | 8 | #define MDIA 2 // media keys |
| 9 | #define NAVG 3 // navigation | 9 | #define NAVG 3 // navigation |
| 10 | 10 | ||
| 11 | enum custom_keycodes { | 11 | enum macros { |
| 12 | PLACEHOLDER = SAFE_RANGE, // can always be here | 12 | RUN |
| 13 | }; | ||
| 14 | |||
| 15 | enum function_ids { | ||
| 16 | EMOJI, | ||
| 17 | EMOJI2, | ||
| 13 | EPRM, | 18 | EPRM, |
| 14 | VRSN, | 19 | VRSN, |
| 15 | RGB_SLD | 20 | RGB_SLD, |
| 21 | GO_GROUP | ||
| 16 | }; | 22 | }; |
| 17 | 23 | ||
| 18 | // TODO: Get rid of of keys I don't want. Make others that I do. Set up lots of makros (Using hyper (and meh)) keys (where to put them?) | 24 | /* opt can only be 0-15 */ |
| 25 | enum emojis { | ||
| 26 | SHRUG, | ||
| 27 | YAY, | ||
| 28 | HUG, | ||
| 29 | SMILE, | ||
| 30 | SMILE2, | ||
| 31 | HMM1, | ||
| 32 | HMM2, | ||
| 33 | BEAR1, | ||
| 34 | BEAR2, | ||
| 35 | FUU, | ||
| 36 | EGGY1, | ||
| 37 | EGGY2, | ||
| 38 | FACE1, | ||
| 39 | FACE2, | ||
| 40 | UHU, | ||
| 41 | SMRK1 | ||
| 42 | }; | ||
| 43 | |||
| 44 | enum emojis2 { | ||
| 45 | SMRK2, | ||
| 46 | LOVE | ||
| 47 | }; | ||
| 48 | |||
| 49 | enum progmem_ids { | ||
| 50 | EMOJI_SHRUG, | ||
| 51 | EMOJI_YAY, | ||
| 52 | EMOJI_HUG, | ||
| 53 | EMOJI_SMILE, | ||
| 54 | EMOJI_SMILE2, | ||
| 55 | EMOJI_HMM1, | ||
| 56 | EMOJI_HMM2, | ||
| 57 | EMOJI_BEAR1, | ||
| 58 | EMOJI_BEAR2, | ||
| 59 | EMOJI_FUU, | ||
| 60 | EMOJI_EGGY1, | ||
| 61 | EMOJI_EGGY2, | ||
| 62 | EMOJI_FACE1, | ||
| 63 | EMOJI_FACE2, | ||
| 64 | EMOJI_UHU, | ||
| 65 | EMOJI_SMRK1, | ||
| 66 | EMOJI_SMRK2, | ||
| 67 | EMOJI_LOVE, | ||
| 68 | F_EPRM, | ||
| 69 | F_VRSN, | ||
| 70 | F_RGB_SLD, | ||
| 71 | I3_GO_GROUP_10, | ||
| 72 | I3_GO_GROUP_1, | ||
| 73 | I3_GO_GROUP_2, | ||
| 74 | I3_GO_GROUP_3, | ||
| 75 | I3_GO_GROUP_4, | ||
| 76 | I3_GO_GROUP_5, | ||
| 77 | I3_GO_GROUP_6, | ||
| 78 | I3_GO_GROUP_7, | ||
| 79 | I3_GO_GROUP_8, | ||
| 80 | I3_GO_GROUP_9, | ||
| 81 | }; | ||
| 82 | |||
| 83 | // TODO: Finish the macros for i3 (Macros should potentially be own function instead to make things easier? some of them at least, f. ex. the ones that use 1-0 keys so we can have a single switch) | ||
| 84 | |||
| 85 | // TODO: Do stuff with hyper and meh keys | ||
| 86 | // TODO: Add macros for lots of stuff. (Lastpass cli, pushbullet cli, other push service cli, linode cli, more?) | ||
| 87 | // TODO: Make macros for gnu screen and i3wm | ||
| 19 | // TODO: Need to change hotkeys for lastpass, and potentially make my own keys for them on one of my layers | 88 | // TODO: Need to change hotkeys for lastpass, and potentially make my own keys for them on one of my layers |
| 89 | // TODO: Look into using tap dance | ||
| 90 | // TODO: Use leader key for stuff. See https://github.com/qmk/qmk_firmware/wiki | ||
| 20 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | 91 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |
| 21 | /* Keymap 0: Basic layer | 92 | /* Keymap 0: Basic layer |
| 22 | * | 93 | * |
| @@ -29,7 +100,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 29 | * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| | 100 | * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| |
| 30 | * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift | | 101 | * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift | |
| 31 | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' | 102 | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' |
| 32 | * |Grv/L1| '" |AltShf| Lalt | Ralt | | Lalt | Ralt | [ | ] | ~/L1 | | 103 | * |Grv/L1| UNI |AltShf| Lalt | Ralt | | Lalt | Ralt | LEAD | UNI | ~/L1 | |
| 33 | * `----------------------------------' `----------------------------------' | 104 | * `----------------------------------' `----------------------------------' |
| 34 | * ,-------------. ,-------------. | 105 | * ,-------------. ,-------------. |
| 35 | * | App | Home | | PgUp | Ins | | 106 | * | App | Home | | PgUp | Ins | |
| @@ -43,11 +114,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 43 | // Otherwise, it needs KC_* | 114 | // Otherwise, it needs KC_* |
| 44 | [BASE] = KEYMAP( // layer 0 : default | 115 | [BASE] = KEYMAP( // layer 0 : default |
| 45 | // left hand | 116 | // left hand |
| 46 | LT(NAVG,KC_ESC), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, | 117 | LT(NAVG,KC_ESC), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, |
| 47 | LT(SYMB,KC_TAB), KC_Q, KC_W, KC_E, KC_R, KC_T, TG(SYMB), | 118 | LT(SYMB,KC_TAB), KC_Q, KC_W, KC_E, KC_R, KC_T, TG(SYMB), |
| 48 | KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, | 119 | KC_LCTL, LT(MDIA, KC_A), KC_S, KC_D, KC_F, KC_G, |
| 49 | KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO), | 120 | KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO), |
| 50 | LT(SYMB,KC_GRV),KC_QUOT, LALT(KC_LSFT), KC_RALT,KC_LALT, | 121 | LT(SYMB,KC_GRV),LCTL(LSFT(KC_U)), LALT(KC_LSFT), KC_RALT,KC_LALT, |
| 51 | ALT_T(KC_APP), KC_HOME, | 122 | ALT_T(KC_APP), KC_HOME, |
| 52 | KC_END, | 123 | KC_END, |
| 53 | KC_SPC,KC_TAB,KC_LBRC, | 124 | KC_SPC,KC_TAB,KC_LBRC, |
| @@ -56,12 +127,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 56 | TG(SYMB), KC_Y, KC_U, KC_I, KC_O, KC_P, LT(SYMB, KC_BSLS), | 127 | TG(SYMB), KC_Y, KC_U, KC_I, KC_O, KC_P, LT(SYMB, KC_BSLS), |
| 57 | KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN),CTL_T(KC_QUOT), | 128 | KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN),CTL_T(KC_QUOT), |
| 58 | MEH_T(KC_NO),KC_N, KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_RSFT, | 129 | MEH_T(KC_NO),KC_N, KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_RSFT, |
| 59 | KC_LALT, KC_RALT,KC_LBRC,KC_RBRC, LT(SYMB,KC_TILD), | 130 | KC_LALT, KC_RALT,KC_LEAD,LCTL(LSFT(KC_U)), LT(SYMB,KC_TILD), |
| 60 | KC_PGUP, KC_INS, | 131 | KC_PGUP, KC_INS, |
| 61 | KC_PGDN, | 132 | KC_PGDN, |
| 62 | KC_RBRC,KC_BSPC, KC_ENT | 133 | KC_RBRC,KC_BSPC, KC_ENT |
| 63 | ), | 134 | ), |
| 64 | /* Keymap 1: Symbol Layer | 135 | /* Keymap 1: Symbol Layer LCTL(LSFT(KC_U)) |
| 65 | * | 136 | * |
| 66 | * ,--------------------------------------------------. ,--------------------------------------------------. | 137 | * ,--------------------------------------------------. ,--------------------------------------------------. |
| 67 | * | | F1 | F2 | F3 | F4 | F5 | F6 | | F6 | F7 | F8 | F9 | F10 | F11 | F12 | | 138 | * | | F1 | F2 | F3 | F4 | F5 | F6 | | F6 | F7 | F8 | F9 | F10 | F11 | F12 | |
| @@ -75,11 +146,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 75 | * | | | | | | | | . | 0 | = | | | 146 | * | | | | | | | | . | 0 | = | | |
| 76 | * `----------------------------------' `----------------------------------' | 147 | * `----------------------------------' `----------------------------------' |
| 77 | * ,-------------. ,-------------. | 148 | * ,-------------. ,-------------. |
| 78 | * | | | | | | | 149 | * |Toggle|Animat| | Hue+ | Hue- | |
| 79 | * ,------|------|------| |------+------+------. | 150 | * ,------|------|------| |------+------+------. |
| 80 | * | | | | | | | | | 151 | * |Bright|Bright|Solid | | | | | |
| 81 | * | | |------| |------| DEL | | | 152 | * |ness- |ness+ |------| |------| DEL | | |
| 82 | * | | | | | | | | | 153 | * | | | | | EPRM | | | |
| 83 | * `--------------------' `--------------------' | 154 | * `--------------------' `--------------------' |
| 84 | */ | 155 | */ |
| 85 | // SYMBOLS | 156 | // SYMBOLS |
| @@ -90,27 +161,27 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 90 | KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV, | 161 | KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV, |
| 91 | KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS, | 162 | KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS, |
| 92 | KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, | 163 | KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, |
| 93 | KC_TRNS,KC_TRNS, | 164 | RGB_TOG,RGB_MOD, |
| 94 | KC_TRNS, | 165 | F(F_RGB_SLD), |
| 95 | KC_TRNS,KC_TRNS,KC_TRNS, | 166 | RGB_VAD,RGB_VAI,KC_TRNS, |
| 96 | // right hand | 167 | // right hand |
| 97 | KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, | 168 | KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, |
| 98 | KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_TRNS, | 169 | KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_TRNS, |
| 99 | KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS, | 170 | KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS, |
| 100 | KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS, | 171 | KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS, |
| 101 | KC_TRNS,KC_DOT, KC_0, KC_EQL, KC_TRNS, | 172 | KC_TRNS,KC_DOT, KC_0, KC_EQL, KC_TRNS, |
| 102 | KC_TRNS, KC_TRNS, | 173 | RGB_HUD, RGB_HUI, |
| 103 | KC_TRNS, | 174 | KC_TRNS, |
| 104 | KC_TRNS, KC_DEL, KC_TRNS | 175 | F(F_EPRM), KC_DEL, KC_TRNS |
| 105 | ), | 176 | ), |
| 106 | /* Keymap 2: Media and mouse keys | 177 | /* Keymap 2: Media, mouse and navigation |
| 107 | * | 178 | * |
| 108 | * ,--------------------------------------------------. ,--------------------------------------------------. | 179 | * ,--------------------------------------------------. ,--------------------------------------------------. |
| 109 | * | | | | | | | | | | | | | | | | | 180 | * | | gg(1)| | | | | | | | | | | | | | |
| 110 | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| | 181 | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| |
| 111 | * | | | | MsUp | | | | | | | | | | | | | 182 | * | | | | MsUp | RUN | | | | | | | Up | | | | |
| 112 | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| | 183 | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| |
| 113 | * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play | | 184 | * | | |MsLeft|MsDown|MsRght| |------| |------| | Left | Down | Right| | Play | |
| 114 | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| | 185 | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| |
| 115 | * | | | | | | | | | | | | Prev | Next | | | | 186 | * | | | | | | | | | | | | Prev | Next | | | |
| 116 | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' | 187 | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' |
| @@ -124,10 +195,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 124 | * | | | | | | | | | 195 | * | | | | | | | | |
| 125 | * `--------------------' `--------------------' | 196 | * `--------------------' `--------------------' |
| 126 | */ | 197 | */ |
| 127 | // MEDIA AND MOUSE | 198 | // MEDIA , MOUSE and NAVIGATION |
| 128 | [MDIA] = KEYMAP( | 199 | [MDIA] = KEYMAP( |
| 129 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | 200 | KC_TRNS, F(I3_GO_GROUP_1), F(I3_GO_GROUP_2), F(I3_GO_GROUP_3), F(I3_GO_GROUP_4), F(I3_GO_GROUP_5), F(I3_GO_GROUP_6), |
| 130 | KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS, | 201 | KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, M(RUN), KC_TRNS, KC_TRNS, |
| 131 | KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, | 202 | KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, |
| 132 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | 203 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, |
| 133 | KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, | 204 | KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, |
| @@ -135,116 +206,280 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 135 | KC_TRNS, | 206 | KC_TRNS, |
| 136 | KC_TRNS, KC_TRNS, KC_TRNS, | 207 | KC_TRNS, KC_TRNS, KC_TRNS, |
| 137 | // right hand | 208 | // right hand |
| 138 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | 209 | F(I3_GO_GROUP_6), F(I3_GO_GROUP_7), F(I3_GO_GROUP_8), F(I3_GO_GROUP_9), F(I3_GO_GROUP_10), KC_TRNS, KC_TRNS, |
| 139 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | 210 | KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, |
| 140 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, | 211 | KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_MPLY, |
| 141 | KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS, | 212 | KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS, |
| 142 | KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, | 213 | KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, |
| 143 | KC_TRNS, KC_TRNS, | 214 | KC_TRNS, KC_TRNS, |
| 144 | KC_TRNS, | 215 | KC_TRNS, |
| 145 | KC_TRNS, KC_TRNS, KC_WBAK | 216 | KC_TRNS, KC_TRNS, KC_WBAK |
| 146 | ), | 217 | ), |
| 147 | 218 | ||
| 148 | /* Keymap 3: Navigation TODO: Printscreen, pg up down, home, end, others? Insert for example | 219 | /* Keymap 3: Unicode |
| 149 | * | 220 | * |
| 150 | * ,--------------------------------------------------. ,--------------------------------------------------. | 221 | * ,--------------------------------------------------. ,--------------------------------------------------. |
| 151 | * | | VER | | | | | | | | | | | | | | | 222 | * | | ┌ | ┐ | └ | ┘ | │ | ─ | | ╔ | ╗ | ╚ | ╝ | ║ | ═ | | |
| 152 | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| | 223 | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| |
| 153 | * | | | | up | | | | | | | | | | | | | 224 | * | | shrug| yay | hug | smile|smile2| | | | ■ | λ | → | ➙ | ▻ | █ | |
| 154 | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| | 225 | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| |
| 155 | * | | | left | down | right| |------| |------| | | | | | | | 226 | * | | hmm1 | hmm2 | bear1| bear2| fuu |------| |------| ☺ | ☻ | ☹ | ♡ | ♥ | ░ | |
| 156 | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| | 227 | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| |
| 157 | * | | | | | | | | | | | | | | | | | 228 | * | | eggy1| eggy2| face1| face2| uhu | | | | ❤ | ☐ | ☑ | ☒ | ✓ | ▄ | |
| 158 | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' | 229 | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' |
| 159 | * | | | | | | | | | | | | | 230 | * | | smrk1| smrk2| love | VER | | ✔ | ✗ | ✘ | ● | ▀ | |
| 160 | * `----------------------------------' `----------------------------------' | 231 | * `----------------------------------' `----------------------------------' |
| 161 | * ,-------------. ,-------------. | 232 | * ,-------------. ,-------------. |
| 162 | * | | | | | | | 233 | * | | | | ▒ | ▓ | |
| 163 | * ,------|------|------| |------+------+------. | 234 | * ,------|------|------| |------+------+------. |
| 164 | * | | | | | | | | | 235 | * | | | | | | | | |
| 165 | * | | |------| |------| | | | 236 | * | | |------| |------| | | |
| 166 | * | | | | | | | | | 237 | * | | | | | | | | |
| 167 | * `--------------------' `--------------------' | 238 | * `--------------------' `--------------------' |
| 168 | */ | 239 | */ |
| 169 | // NAVIGATION | 240 | // Unicode |
| 170 | [NAVG] = KEYMAP( | 241 | [NAVG] = KEYMAP( |
| 171 | KC_TRNS, VRSN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | 242 | KC_TRNS, UC(0x250c), UC(0x2510), UC(0x2514), UC(0x2518), UC(0x2502), UC(0x2500), |
| 172 | KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, | 243 | KC_TRNS, F(EMOJI_SHRUG), F(EMOJI_YAY), F(EMOJI_HUG), F(EMOJI_SMILE), F(EMOJI_SMILE2), KC_TRNS, |
| 173 | KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, | 244 | KC_TRNS, F(EMOJI_HMM1), F(EMOJI_HMM2), F(EMOJI_BEAR1), F(EMOJI_BEAR2), F(EMOJI_FUU), |
| 174 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | 245 | KC_TRNS, F(EMOJI_EGGY1), F(EMOJI_EGGY2), F(EMOJI_FACE1), F(EMOJI_FACE2), F(EMOJI_UHU), KC_TRNS, |
| 175 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | 246 | KC_TRNS, F(EMOJI_SMRK1), F(EMOJI_SMRK2), F(EMOJI_LOVE), F(F_VRSN), |
| 176 | KC_TRNS, KC_TRNS, | 247 | KC_TRNS, KC_TRNS, |
| 177 | KC_TRNS, | 248 | KC_TRNS, |
| 178 | KC_TRNS, KC_TRNS, KC_TRNS, | 249 | KC_TRNS, KC_TRNS, KC_TRNS, |
| 179 | // right hand | 250 | // right hand |
| 180 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | 251 | UC(0x2554), UC(0x2557), UC(0x255a), UC(0x255d), UC(0x2551), UC(0x2550), KC_TRNS, |
| 181 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | 252 | KC_TRNS, UC(0x25a0), UC(0x03bb), UC(0x2192), UC(0x2799), UC(0x25bb), UC(0x2588), |
| 182 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | 253 | UC(0x263a), UC(0x263b), UC(0x2639), UC(0x2661), UC(0x2665), UC(0x2591), |
| 183 | KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_TRNS, KC_TRNS, KC_TRNS, | 254 | KC_TRNS, UC(0x2764), UC(0x2610), UC(0x2611), UC(0x2612), UC(0x2713), UC(0x2584), |
| 184 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | 255 | UC(0x2714), UC(0x2717), UC(0x2718), UC(0x25cf), UC(0x2580), |
| 185 | KC_TRNS, KC_TRNS, | 256 | UC(0x2592), UC(0x2593), |
| 186 | KC_TRNS, | 257 | KC_TRNS, |
| 187 | KC_TRNS, KC_TRNS, KC_TRNS | 258 | KC_TRNS, KC_TRNS, KC_TRNS |
| 188 | ), | 259 | ), |
| 189 | }; | 260 | }; |
| 190 | 261 | ||
| 191 | const uint16_t PROGMEM fn_actions[] = { | 262 | const uint16_t PROGMEM fn_actions[] = { |
| 192 | [1] = ACTION_LAYER_TAP_TOGGLE(SYMB) // FN1 - Momentary Layer 1 (Symbols) | 263 | [EMOJI_SHRUG] = ACTION_FUNCTION_OPT(EMOJI, SHRUG), |
| 264 | [EMOJI_YAY] = ACTION_FUNCTION_OPT(EMOJI, YAY), | ||
| 265 | [EMOJI_HUG] = ACTION_FUNCTION_OPT(EMOJI,HUG), | ||
| 266 | [EMOJI_SMILE] = ACTION_FUNCTION_OPT(EMOJI,SMILE), | ||
| 267 | [EMOJI_SMILE2] = ACTION_FUNCTION_OPT(EMOJI,SMILE2), | ||
| 268 | [EMOJI_HMM1] = ACTION_FUNCTION_OPT(EMOJI,HMM1), | ||
| 269 | [EMOJI_HMM2] = ACTION_FUNCTION_OPT(EMOJI,HMM2), | ||
| 270 | [EMOJI_BEAR1] = ACTION_FUNCTION_OPT(EMOJI,BEAR1), | ||
| 271 | [EMOJI_BEAR2] = ACTION_FUNCTION_OPT(EMOJI,BEAR2), | ||
| 272 | [EMOJI_FUU] = ACTION_FUNCTION_OPT(EMOJI,FUU), | ||
| 273 | [EMOJI_EGGY1] = ACTION_FUNCTION_OPT(EMOJI,EGGY1), | ||
| 274 | [EMOJI_EGGY2] = ACTION_FUNCTION_OPT(EMOJI,EGGY2), | ||
| 275 | [EMOJI_FACE1] = ACTION_FUNCTION_OPT(EMOJI,FACE1), | ||
| 276 | [EMOJI_FACE2] = ACTION_FUNCTION_OPT(EMOJI,FACE2), | ||
| 277 | [EMOJI_UHU] = ACTION_FUNCTION_OPT(EMOJI,UHU), | ||
| 278 | [EMOJI_SMRK1] = ACTION_FUNCTION_OPT(EMOJI,SMRK1), | ||
| 279 | [EMOJI_SMRK2] = ACTION_FUNCTION_OPT(EMOJI2,SMRK2), | ||
| 280 | [EMOJI_LOVE] = ACTION_FUNCTION_OPT(EMOJI2,LOVE), | ||
| 281 | [F_EPRM] = ACTION_FUNCTION(EPRM), | ||
| 282 | [F_VRSN] = ACTION_FUNCTION(VRSN), | ||
| 283 | [F_RGB_SLD] = ACTION_FUNCTION(RGB_SLD), | ||
| 284 | [I3_GO_GROUP_10]= ACTION_FUNCTION_OPT(GO_GROUP,0), | ||
| 285 | [I3_GO_GROUP_1] = ACTION_FUNCTION_OPT(GO_GROUP,1), | ||
| 286 | [I3_GO_GROUP_2] = ACTION_FUNCTION_OPT(GO_GROUP,2), | ||
| 287 | [I3_GO_GROUP_3] = ACTION_FUNCTION_OPT(GO_GROUP,3), | ||
| 288 | [I3_GO_GROUP_4] = ACTION_FUNCTION_OPT(GO_GROUP,4), | ||
| 289 | [I3_GO_GROUP_5] = ACTION_FUNCTION_OPT(GO_GROUP,5), | ||
| 290 | [I3_GO_GROUP_6] = ACTION_FUNCTION_OPT(GO_GROUP,6), | ||
| 291 | [I3_GO_GROUP_7] = ACTION_FUNCTION_OPT(GO_GROUP,7), | ||
| 292 | [I3_GO_GROUP_8] = ACTION_FUNCTION_OPT(GO_GROUP,8), | ||
| 293 | [I3_GO_GROUP_9] = ACTION_FUNCTION_OPT(GO_GROUP,9), | ||
| 193 | }; | 294 | }; |
| 194 | 295 | ||
| 195 | const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) | 296 | #define TAP_ONCE(code) \ |
| 196 | { | 297 | register_code (code); \ |
| 197 | // MACRODOWN only works in this function | 298 | unregister_code (code) |
| 198 | switch(id) { | ||
| 199 | case 0: | ||
| 200 | if (record->event.pressed) { | ||
| 201 | SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION); | ||
| 202 | } | ||
| 203 | break; | ||
| 204 | case 1: | ||
| 205 | if (record->event.pressed) { // For resetting EEPROM | ||
| 206 | eeconfig_init(); | ||
| 207 | } | ||
| 208 | break; | ||
| 209 | } | ||
| 210 | return MACRO_NONE; | ||
| 211 | }; | ||
| 212 | 299 | ||
| 213 | bool process_record_user(uint16_t keycode, keyrecord_t *record) { | 300 | void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { |
| 214 | switch (keycode) { | 301 | if (record->event.pressed) { |
| 215 | // dynamically generate these. | 302 | switch(id) { |
| 216 | case EPRM: | 303 | case EPRM: |
| 217 | if (record->event.pressed) { | 304 | eeconfig_init(); |
| 218 | eeconfig_init(); | ||
| 219 | } | ||
| 220 | return false; | ||
| 221 | break; | 305 | break; |
| 222 | case VRSN: | 306 | case VRSN: |
| 223 | if (record->event.pressed) { | 307 | SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION); |
| 224 | SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION); | ||
| 225 | } | ||
| 226 | return false; | ||
| 227 | break; | 308 | break; |
| 228 | case RGB_SLD: | 309 | case RGB_SLD: |
| 229 | if (record->event.pressed) { | 310 | #ifdef RGBLIGHT_ENABLE |
| 230 | #ifdef RGBLIGHT_ENABLE | 311 | rgblight_mode(1); |
| 231 | rgblight_mode(1); | 312 | #endif |
| 232 | #endif | 313 | break; |
| 314 | case GO_GROUP: | ||
| 315 | register_code(KC_LCTL); TAP_ONCE(KC_I); unregister_code(KC_LCTL); | ||
| 316 | TAP_ONCE(KC_G); | ||
| 317 | if (opt == 0) { | ||
| 318 | TAP_ONCE(39); | ||
| 319 | } else { | ||
| 320 | TAP_ONCE(29+opt); | ||
| 321 | } | ||
| 322 | break; | ||
| 323 | case EMOJI: | ||
| 324 | switch(opt) { | ||
| 325 | case SHRUG: | ||
| 326 | unicode_input_start(); register_hex(0xaf); unicode_input_finish(); | ||
| 327 | TAP_ONCE (KC_BSLS); | ||
| 328 | register_code (KC_RSFT); TAP_ONCE (KC_MINS); TAP_ONCE (KC_9); unregister_code (KC_RSFT); | ||
| 329 | unicode_input_start (); register_hex(0x30c4); unicode_input_finish(); | ||
| 330 | register_code (KC_RSFT); TAP_ONCE (KC_0); TAP_ONCE (KC_MINS); unregister_code (KC_RSFT); | ||
| 331 | TAP_ONCE (KC_SLSH); | ||
| 332 | unicode_input_start (); register_hex(0xaf); unicode_input_finish(); | ||
| 333 | break; | ||
| 334 | case YAY: | ||
| 335 | SEND_STRING ("\\o/"); | ||
| 336 | break; | ||
| 337 | case HUG: | ||
| 338 | unicode_input_start(); register_hex(0x0f3c); unicode_input_finish(); | ||
| 339 | TAP_ONCE (KC_SPC); | ||
| 340 | unicode_input_start(); register_hex(0x3064); unicode_input_finish(); | ||
| 341 | TAP_ONCE (KC_SPC); | ||
| 342 | unicode_input_start(); register_hex(0x25d5); unicode_input_finish(); | ||
| 343 | unicode_input_start(); register_hex(0x005f); unicode_input_finish(); | ||
| 344 | unicode_input_start(); register_hex(0x25d5); unicode_input_finish(); | ||
| 345 | TAP_ONCE (KC_SPC); | ||
| 346 | unicode_input_start(); register_hex(0x0f3d); unicode_input_finish(); | ||
| 347 | unicode_input_start(); register_hex(0x3064); unicode_input_finish(); | ||
| 348 | break; | ||
| 349 | case SMILE: | ||
| 350 | unicode_input_start(); register_hex(0x0298); unicode_input_finish(); | ||
| 351 | unicode_input_start(); register_hex(0x203f); unicode_input_finish(); | ||
| 352 | unicode_input_start(); register_hex(0x0298); unicode_input_finish(); | ||
| 353 | break; | ||
| 354 | case SMILE2: | ||
| 355 | unicode_input_start(); register_hex(0x0028); unicode_input_finish(); | ||
| 356 | unicode_input_start(); register_hex(0x0298); unicode_input_finish(); | ||
| 357 | unicode_input_start(); register_hex(0x203f); unicode_input_finish(); | ||
| 358 | unicode_input_start(); register_hex(0x0298); unicode_input_finish(); | ||
| 359 | unicode_input_start(); register_hex(0x0029); unicode_input_finish(); | ||
| 360 | break; | ||
| 361 | case HMM1: | ||
| 362 | unicode_input_start(); register_hex(0x0ca0); unicode_input_finish(); | ||
| 363 | unicode_input_start(); register_hex(0x005f); unicode_input_finish(); | ||
| 364 | unicode_input_start(); register_hex(0x0ca0); unicode_input_finish(); | ||
| 365 | break; | ||
| 366 | case HMM2: | ||
| 367 | unicode_input_start(); register_hex(0x0028); unicode_input_finish(); | ||
| 368 | unicode_input_start(); register_hex(0x0ca0); unicode_input_finish(); | ||
| 369 | unicode_input_start(); register_hex(0x005f); unicode_input_finish(); | ||
| 370 | unicode_input_start(); register_hex(0x0ca0); unicode_input_finish(); | ||
| 371 | unicode_input_start(); register_hex(0x0029); unicode_input_finish(); | ||
| 372 | break; | ||
| 373 | case BEAR1: | ||
| 374 | unicode_input_start(); register_hex(0x0295); unicode_input_finish(); | ||
| 375 | unicode_input_start(); register_hex(0x2022); unicode_input_finish(); | ||
| 376 | unicode_input_start(); register_hex(0x1d25); unicode_input_finish(); | ||
| 377 | unicode_input_start(); register_hex(0x2022); unicode_input_finish(); | ||
| 378 | unicode_input_start(); register_hex(0x0294); unicode_input_finish(); | ||
| 379 | break; | ||
| 380 | case BEAR2: | ||
| 381 | unicode_input_start(); register_hex(0x0028); unicode_input_finish(); | ||
| 382 | unicode_input_start(); register_hex(0x1d54); unicode_input_finish(); | ||
| 383 | unicode_input_start(); register_hex(0x1d25); unicode_input_finish(); | ||
| 384 | unicode_input_start(); register_hex(0x1d54); unicode_input_finish(); | ||
| 385 | unicode_input_start(); register_hex(0x0029); unicode_input_finish(); | ||
| 386 | break; | ||
| 387 | case FUU: | ||
| 388 | unicode_input_start(); register_hex(0x256d); unicode_input_finish(); | ||
| 389 | unicode_input_start(); register_hex(0x2229); unicode_input_finish(); | ||
| 390 | unicode_input_start(); register_hex(0x256e); unicode_input_finish(); | ||
| 391 | unicode_input_start(); register_hex(0x0028); unicode_input_finish(); | ||
| 392 | unicode_input_start(); register_hex(0x002d); unicode_input_finish(); | ||
| 393 | unicode_input_start(); register_hex(0x005f); unicode_input_finish(); | ||
| 394 | unicode_input_start(); register_hex(0x002d); unicode_input_finish(); | ||
| 395 | unicode_input_start(); register_hex(0x0029); unicode_input_finish(); | ||
| 396 | unicode_input_start(); register_hex(0x256d); unicode_input_finish(); | ||
| 397 | unicode_input_start(); register_hex(0x2229); unicode_input_finish(); | ||
| 398 | unicode_input_start(); register_hex(0x256e); unicode_input_finish(); | ||
| 399 | break; | ||
| 400 | case EGGY1: | ||
| 401 | unicode_input_start(); register_hex(0x0028); unicode_input_finish(); | ||
| 402 | unicode_input_start(); register_hex(0x256f); unicode_input_finish(); | ||
| 403 | unicode_input_start(); register_hex(0x00b0); unicode_input_finish(); | ||
| 404 | unicode_input_start(); register_hex(0x25a1); unicode_input_finish(); | ||
| 405 | unicode_input_start(); register_hex(0x00b0); unicode_input_finish(); | ||
| 406 | unicode_input_start(); register_hex(0xff09); unicode_input_finish(); | ||
| 407 | unicode_input_start(); register_hex(0x256f); unicode_input_finish(); | ||
| 408 | break; | ||
| 409 | case EGGY2: | ||
| 410 | unicode_input_start(); register_hex(0x30ce); unicode_input_finish(); | ||
| 411 | unicode_input_start(); register_hex(0x0028); unicode_input_finish(); | ||
| 412 | unicode_input_start(); register_hex(0x0020); unicode_input_finish(); | ||
| 413 | unicode_input_start(); register_hex(0x309c); unicode_input_finish(); | ||
| 414 | unicode_input_start(); register_hex(0x002d); unicode_input_finish(); | ||
| 415 | unicode_input_start(); register_hex(0x309c); unicode_input_finish(); | ||
| 416 | unicode_input_start(); register_hex(0x30ce); unicode_input_finish(); | ||
| 417 | unicode_input_start(); register_hex(0x0029); unicode_input_finish(); | ||
| 418 | break; | ||
| 419 | case FACE1: | ||
| 420 | unicode_input_start(); register_hex(0x0028); unicode_input_finish(); | ||
| 421 | unicode_input_start(); register_hex(0x002d); unicode_input_finish(); | ||
| 422 | unicode_input_start(); register_hex(0x005f); unicode_input_finish(); | ||
| 423 | unicode_input_start(); register_hex(0x002d); unicode_input_finish(); | ||
| 424 | unicode_input_start(); register_hex(0x0029); unicode_input_finish(); | ||
| 425 | break; | ||
| 426 | case FACE2: | ||
| 427 | unicode_input_start(); register_hex(0x0028); unicode_input_finish(); | ||
| 428 | unicode_input_start(); register_hex(0x2022); unicode_input_finish(); | ||
| 429 | unicode_input_start(); register_hex(0x005f); unicode_input_finish(); | ||
| 430 | unicode_input_start(); register_hex(0x2022); unicode_input_finish(); | ||
| 431 | unicode_input_start(); register_hex(0x0029); unicode_input_finish(); | ||
| 432 | break; | ||
| 433 | case UHU: | ||
| 434 | unicode_input_start(); register_hex(0x2299); unicode_input_finish(); | ||
| 435 | unicode_input_start(); register_hex(0xfe4f); unicode_input_finish(); | ||
| 436 | unicode_input_start(); register_hex(0x2299); unicode_input_finish(); | ||
| 437 | break; | ||
| 438 | case SMRK1: | ||
| 439 | unicode_input_start(); register_hex(0x005e); unicode_input_finish(); | ||
| 440 | unicode_input_start(); register_hex(0x032e); unicode_input_finish(); | ||
| 441 | unicode_input_start(); register_hex(0x005e); unicode_input_finish(); | ||
| 442 | break; | ||
| 233 | } | 443 | } |
| 234 | return false; | ||
| 235 | break; | 444 | break; |
| 445 | case EMOJI2: | ||
| 446 | switch(opt) { | ||
| 447 | case SMRK2: | ||
| 448 | unicode_input_start(); register_hex(0x0028); unicode_input_finish(); | ||
| 449 | unicode_input_start(); register_hex(0x005e); unicode_input_finish(); | ||
| 450 | unicode_input_start(); register_hex(0x032e); unicode_input_finish(); | ||
| 451 | unicode_input_start(); register_hex(0x005e); unicode_input_finish(); | ||
| 452 | unicode_input_start(); register_hex(0x0029); unicode_input_finish(); | ||
| 453 | break; | ||
| 454 | case LOVE: | ||
| 455 | unicode_input_start(); register_hex(0x2665); unicode_input_finish(); | ||
| 456 | unicode_input_start(); register_hex(0x203f); unicode_input_finish(); | ||
| 457 | unicode_input_start(); register_hex(0x2665); unicode_input_finish(); | ||
| 458 | break; | ||
| 459 | } | ||
| 460 | break; | ||
| 461 | } | ||
| 236 | } | 462 | } |
| 237 | return true; | ||
| 238 | } | 463 | } |
| 239 | 464 | ||
| 465 | const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { | ||
| 466 | if (record->event.pressed) { | ||
| 467 | switch(id) { | ||
| 468 | case RUN: | ||
| 469 | return MACRO( D(LCTL), T(I), U(LCTL), T(R), END ); | ||
| 470 | break; | ||
| 471 | } | ||
| 472 | } | ||
| 473 | return MACRO_NONE; | ||
| 474 | }; | ||
| 475 | |||
| 240 | // Runs just one time when the keyboard initializes. | 476 | // Runs just one time when the keyboard initializes. |
| 241 | void matrix_init_user(void) { | 477 | void matrix_init_user(void) { |
| 242 | 478 | set_unicode_input_mode(UC_LNX); | |
| 243 | }; | 479 | }; |
| 244 | 480 | ||
| 245 | // Runs constantly in the background, in a loop. | 481 | // Runs constantly in the background, in a loop. |
| 246 | void matrix_scan_user(void) { | 482 | void matrix_scan_user(void) { |
| 247 | |||
| 248 | uint8_t layer = biton32(layer_state); | 483 | uint8_t layer = biton32(layer_state); |
| 249 | 484 | ||
| 250 | ergodox_board_led_off(); | 485 | ergodox_board_led_off(); |
| @@ -254,12 +489,21 @@ void matrix_scan_user(void) { | |||
| 254 | switch (layer) { | 489 | switch (layer) { |
| 255 | case 1: | 490 | case 1: |
| 256 | ergodox_right_led_1_on(); | 491 | ergodox_right_led_1_on(); |
| 492 | #ifdef RGBLIGHT_ENABLE | ||
| 493 | rgblight_setrgb(0xff,0x00,0x00); | ||
| 494 | #endif | ||
| 257 | break; | 495 | break; |
| 258 | case 2: | 496 | case 2: |
| 259 | ergodox_right_led_2_on(); | 497 | ergodox_right_led_2_on(); |
| 498 | #ifdef RGBLIGHT_ENABLE | ||
| 499 | rgblight_setrgb(0x00,0xff,0x00); | ||
| 500 | #endif | ||
| 260 | break; | 501 | break; |
| 261 | case 3: | 502 | case 3: |
| 262 | ergodox_right_led_3_on(); | 503 | ergodox_right_led_3_on(); |
| 504 | #ifdef RGBLIGHT_ENABLE | ||
| 505 | rgblight_setrgb(0x00,0x00,0xff); | ||
| 506 | #endif | ||
| 263 | break; | 507 | break; |
| 264 | case 4: | 508 | case 4: |
| 265 | ergodox_right_led_1_on(); // TODO: Make a fourth layer | 509 | ergodox_right_led_1_on(); // TODO: Make a fourth layer |
diff --git a/keyboards/ergodox/keymaps/deadcyclo/readme.md b/keyboards/ergodox/keymaps/deadcyclo/readme.md index 809dd6eb5..fa41f0ec1 100644 --- a/keyboards/ergodox/keymaps/deadcyclo/readme.md +++ b/keyboards/ergodox/keymaps/deadcyclo/readme.md | |||
| @@ -1,9 +1,11 @@ | |||
| 1 | # ErgoDox EZ 1337 configuration | 1 | # ErgoDox EZ 1337 configuration |
| 2 | 2 | ||
| 3 | Custom layout based on the default layout. Intended for interational users of us intl-altgr layout. Note that | 3 | Custom layout based on the default layout. Intended for interational |
| 4 | some common keys might be missing, as this layout is intented to be used on *nix systems by users familiar | 4 | users of us intl-altgr layout. Note that some common keys might be |
| 5 | with their system. The layout is geared towards avoiding using the rat (mouse for those of you who are | 5 | missing, as this layout is intented to be used on *nix systems by |
| 6 | unfamiliar with tiling window managers) as much as possibly. | 6 | users familiar with their system. The layout is geared towards |
| 7 | avoiding using the rat (mouse for those of you who are unfamiliar with | ||
| 8 | tiling window managers) as much as possibly. | ||
| 7 | 9 | ||
| 8 | # Layouts | 10 | # Layouts |
| 9 | 11 | ||
| @@ -13,24 +15,58 @@ All layer images created using [keyboard-layout-editor](http://www.keyboard-layo | |||
| 13 | 15 | ||
| 14 | [](http://www.keyboard-layout-editor.com/#/gists/0321b18620180a3e46c498206eb65366) | 16 | [](http://www.keyboard-layout-editor.com/#/gists/0321b18620180a3e46c498206eb65366) |
| 15 | 17 | ||
| 16 | ## Layer 1 - Symbols | 18 | The base layer here is marked with the us international alt-gr layout, |
| 19 | including characters bound to what on an iso keyboard would be alt-gr | ||
| 20 | and on an ansi keyboard right alt. | ||
| 17 | 21 | ||
| 18 | [](http://www.keyboard-layout-editor.com/#/gists/96714e198054c9115bafb5267cc6bc73) | 22 | Regular (and irregular) modifier keys are marked with a yellowish |
| 23 | gray. Layer moderators are marked with blue, red and green, which are | ||
| 24 | the same colors each layer displays on the LEDs when active. | ||
| 19 | 25 | ||
| 20 | ## Layer 2 - Media and Mouse | 26 | All of the layer switch keys, except for the two center keys marked L1 |
| 27 | TOG, are dual purpose. Hence for example the top left key produces ESC | ||
| 28 | if tapped, and temporarilly toggles L3 when hold down. The two center | ||
| 29 | L1 TOG keys toggle L1 on and off for more permanent layer toggling. | ||
| 21 | 30 | ||
| 22 | [](http://www.keyboard-layout-editor.com/#/gists/824759486e378bcec30784309a7e5731) | 31 | The UNI keys enter the linux ibus unicode composer mode |
| 32 | (ie. Ctrl+Shift+u). Use this to enter unicode characters. Hit the key, | ||
| 33 | type in the unicode hex value, and hit enter. | ||
| 23 | 34 | ||
| 24 | ## Layer 3 - Navigation | 35 | ## Layer 1 - Symbols and RGB |
| 25 | 36 | ||
| 26 | [](http://www.keyboard-layout-editor.com/#/gists/67d9613dcd873c68693d11863d0fd289) | 37 | [](http://www.keyboard-layout-editor.com/#/gists/96714e198054c9115bafb5267cc6bc73) |
| 38 | |||
| 39 | The Symbols and RGB layer contains function keys, commonly used | ||
| 40 | symbols, a numpad and if you have the new Ergodox Ez shine keys for | ||
| 41 | controlling various RGB-led functions. In addition, it provides an up | ||
| 42 | and a down key for easy scrolling. RGB controller keys are yellow. | ||
| 43 | |||
| 44 | ## Layer 2 - Media, Mouse and Navigation | ||
| 45 | |||
| 46 | [](http://www.keyboard-layout-editor.com/#/gists/824759486e378bcec30784309a7e5731) | ||
| 47 | |||
| 48 | The Media, Mouse and unicode layer contains special keys for moving | ||
| 49 | the mouse and clicking on it with the keyboard. In addition it | ||
| 50 | provides standard media control keys, and default arrow keys. | ||
| 51 | |||
| 52 | ## Layer 3 - Unicode | ||
| 53 | |||
| 54 | [](http://www.keyboard-layout-editor.com/#/gists/67d9613dcd873c68693d11863d0fd289) | ||
| 55 | |||
| 56 | The unicode layer provides keys for directly typing unicode (utf-8) | ||
| 27 | 57 | ||
| 28 | # Changelog | 58 | # Changelog |
| 29 | 59 | ||
| 30 | - 02.01.2017 Added delete key on second layer | 60 | - 02.01.2017 Added delete key on second layer |
| 31 | - 10.01.2017 Added layer images to readme | 61 | - 10.01.2017 Added layer images to readme |
| 62 | - 24.01.2017 Added support for Ergodox Shine. Added secondary L2 switch key on left hand | ||
| 63 | - 24.01.2017 Added unicode keys. Added shrug hug and yay. Moved Navigation to layer 2 | ||
| 64 | - 25.01.2017 Added lots of new emojis and some unicode keys | ||
| 65 | - 27.01.2017 Added new unicode keys and shortcut for ibus unicode composer key (CTRL+SHIFT+U) | ||
| 32 | 66 | ||
| 33 | # TODO | 67 | # TODO |
| 34 | 68 | ||
| 35 | - Add unicode support (direct input and indirect? see algernon layout for examples) | 69 | - Add macros for lots of stuff. (Lastpass cli, pushbullet cli, other push service cli, linode cli, more?) |
| 36 | - Add descriptions below each layer image of any special functions/keys | 70 | - Make macros for gnu screen and i3wm |
| 71 | - Look into the app launch macros in algernon keymap | ||
| 72 | |||
diff --git a/keyboards/ergodox/keymaps/software_neo2/keymap.c b/keyboards/ergodox/keymaps/software_neo2/keymap.c index 41ace403d..571ca062c 100644 --- a/keyboards/ergodox/keymaps/software_neo2/keymap.c +++ b/keyboards/ergodox/keymaps/software_neo2/keymap.c | |||
| @@ -1,7 +1,8 @@ | |||
| 1 | #include "ergodox.h" | 1 | #include "ergodox.h" |
| 2 | #include "debug.h" | 2 | #include "debug.h" |
| 3 | #include "led.h" | ||
| 3 | #include "action_layer.h" | 4 | #include "action_layer.h" |
| 4 | #include "keymap_neo2.h" | 5 | #include "keymap_extras/keymap_neo2.h" |
| 5 | 6 | ||
| 6 | // Layer names | 7 | // Layer names |
| 7 | #define BASE 0 // default layer | 8 | #define BASE 0 // default layer |
| @@ -11,45 +12,45 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 11 | /* Keymap 0: Basic layer | 12 | /* Keymap 0: Basic layer |
| 12 | * | 13 | * |
| 13 | * ,--------------------------------------------------. ,--------------------------------------------------. | 14 | * ,--------------------------------------------------. ,--------------------------------------------------. |
| 14 | * | ^ | 1 | 2 | 3 | 4 | 5 | Play | | Next | 6 | 7 | 8 | 9 | 0 |BackSpce| | 15 | * | Del | 1 | 2 | 3 | 4 | 5 | Play | | Next | 6 | 7 | 8 | 9 | 0 | ß | |
| 15 | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| | 16 | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| |
| 16 | * | Del | X | V | L | C | W | L1 | | L1 | K | H | G | F | Q | ß | | 17 | * | Tab | X | V | L | C | W | Esc | | Esc | K | H | G | F | Q | Y | |
| 17 | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| | 18 | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| |
| 18 | * | Caps | U | I | A | E | O |------| |------| S | N | R | T | D | Y | | 19 | * | NeoL1 | U | I | A | E | O |------| |------| S | N | R | T | D | NeoR1 | |
| 19 | * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| | 20 | * |--------+------+------+------+------+------| L1 | | L1 |------+------+------+------+------+--------| |
| 20 | * | LShift |Ü/Ctrl| Ö/C-S| Ä/Alt| P | Z | | | | B | M | , | . | J | RShift | | 21 | * | LShift |Ü/Ctrl| Ö/Win| Ä/Alt| P | Z | | | | B | M | , | . | J | RShift | |
| 21 | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' | 22 | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' |
| 22 | * | L1 | Home | PgDn | PgUp | End | | Right| Down | Up | Left | Esc | | 23 | * |NeoL2 | Home | PgDn | PgUp | End | | Right| Down | Up | Left | NeoR2| |
| 23 | * `----------------------------------' `----------------------------------' | 24 | * `----------------------------------' `----------------------------------' |
| 24 | * ,-------------. ,-------------. | 25 | * ,-------------. ,---------------. |
| 25 | * | App | LGui | | Alt |Ctrl/Esc| | 26 | * | App | LGui | | Alt |Ctrl/Esc| |
| 26 | * ,------+------+------| |------+--------+------. | 27 | * ,------+------+------| |------+--------+------. |
| 27 | * | | |NeoL2 | |NeoL2 | | | | 28 | * | | | Enter| |Delete| | | |
| 28 | * | Tab |Backsp|------| |------| Space |Enter | | 29 | * | Space|Backsp|------| |------| Enter |Space | |
| 29 | * | |ace |NeoL1 | |NeoL1 | | | | 30 | * | |ace | Tab | | Esc | | | |
| 30 | * `--------------------' `----------------------' | 31 | * `--------------------' `----------------------' |
| 31 | */ | 32 | */ |
| 32 | // If it accepts an argument (i.e, is a function), it doesn't need KC_. | 33 | // If it accepts an argument (i.e, is a function), it doesn't need KC_. |
| 33 | // Otherwise, it needs KC_* | 34 | // Otherwise, it needs KC_* |
| 34 | [BASE] = KEYMAP( // layer 0 : default | 35 | [BASE] = KEYMAP( // layer 0 : default |
| 35 | // left hand | 36 | // left hand |
| 36 | KC_CIRC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MPLY, | 37 | KC_DELT, NEO_1, NEO_2, NEO_3, NEO_4, NEO_5, KC_MPLY, |
| 37 | KC_DELT, NEO_X, NEO_V, NEO_L, NEO_C, NEO_W, TG(1), | 38 | KC_TAB, NEO_X, NEO_V, NEO_L, NEO_C, NEO_W, KC_ESC, |
| 38 | KC_CAPS, NEO_U, NEO_I, NEO_A, NEO_E, NEO_O, | 39 | NEO_L1_L, NEO_U, NEO_I, NEO_A, NEO_E, NEO_O, |
| 39 | KC_LSFT, CTL_T(NEO_UE), C_S_T(NEO_OE), ALT_T(NEO_AE), NEO_P, NEO_Z, ALL_T(KC_NO), | 40 | KC_LSFT, CTL_T(NEO_UE), GUI_T(NEO_OE), ALT_T(NEO_AE), NEO_P, NEO_Z, TG(1), |
| 40 | DE_LESS, KC_HOME, KC_PGDN, KC_PGUP, KC_END, | 41 | NEO_L2_L, KC_HOME, KC_PGDN, KC_PGUP, KC_END, |
| 41 | ALT_T(KC_APP),KC_LGUI, | 42 | C_S_T(KC_ESC),KC_LGUI, |
| 42 | NEO_L2_L, | 43 | KC_ENT, |
| 43 | KC_TAB,KC_BSPC,NEO_L1_L, | 44 | KC_SPC,KC_BSPC,KC_TAB, |
| 44 | // right hand | 45 | // right hand |
| 45 | KC_MNXT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, | 46 | KC_MNXT, NEO_6, NEO_7, NEO_8, NEO_9, NEO_0, NEO_SS, |
| 46 | TG(1), NEO_K, NEO_H, NEO_G, NEO_F, NEO_Q, NEO_SS, | 47 | KC_ESC, NEO_K, NEO_H, NEO_G, NEO_F, NEO_Q, NEO_Y, |
| 47 | NEO_S, NEO_N, NEO_R, NEO_T, NEO_D, NEO_Y, | 48 | NEO_S, NEO_N, NEO_R, NEO_T, NEO_D, NEO_L1_R, |
| 48 | MEH_T(KC_NO),NEO_B, NEO_M, KC_COMM, KC_DOT, NEO_J, KC_RSFT, | 49 | TG(1), NEO_B, NEO_M, NEO_COMM, NEO_DOT, NEO_J, KC_RSFT, |
| 49 | KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_ESC, | 50 | KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, NEO_L2_R, |
| 50 | KC_LALT,CTL_T(KC_ESC), | 51 | KC_LALT,KC_RGUI, |
| 51 | NEO_L2_R, | 52 | KC_DELT, |
| 52 | NEO_L1_R,KC_SPC, KC_ENT | 53 | KC_ESC,KC_ENT, KC_SPC |
| 53 | ), | 54 | ), |
| 54 | /* Keymap 1: Media and mouse keys | 55 | /* Keymap 1: Media and mouse keys |
| 55 | * | 56 | * |
| @@ -127,13 +128,16 @@ void matrix_scan_user(void) { | |||
| 127 | ergodox_right_led_1_off(); | 128 | ergodox_right_led_1_off(); |
| 128 | ergodox_right_led_2_off(); | 129 | ergodox_right_led_2_off(); |
| 129 | ergodox_right_led_3_off(); | 130 | ergodox_right_led_3_off(); |
| 131 | ergodox_board_led_off(); | ||
| 132 | |||
| 133 | if (host_keyboard_leds() & (1<<USB_LED_CAPS_LOCK)) { | ||
| 134 | ergodox_right_led_3_on(); | ||
| 135 | } | ||
| 136 | |||
| 130 | switch (layer) { | 137 | switch (layer) { |
| 131 | case MDIA: | 138 | case MDIA: |
| 132 | ergodox_right_led_2_on(); | 139 | ergodox_right_led_2_on(); |
| 133 | break; | 140 | break; |
| 134 | default: | ||
| 135 | ergodox_board_led_off(); | ||
| 136 | break; | ||
| 137 | } | 141 | } |
| 138 | 142 | ||
| 139 | }; | 143 | }; |
