diff options
Diffstat (limited to 'keyboards')
60 files changed, 2854 insertions, 176 deletions
diff --git a/keyboards/atreus/readme.md b/keyboards/atreus/readme.md index 8baa581f0..476d1bce3 100644 --- a/keyboards/atreus/readme.md +++ b/keyboards/atreus/readme.md | |||
| @@ -88,7 +88,7 @@ We've added shortcuts to make common modifier/tap (mod-tap) mappings more compac | |||
| 88 | 88 | ||
| 89 | ### Remember: These are just aliases | 89 | ### Remember: These are just aliases |
| 90 | 90 | ||
| 91 | These functions work the same way that their `ACTION_*` functions do - they're just quick aliases. To dig into all of the tmk ACTION_* functions, please see the [TMK documentation](https://github.com/jackhumbert/qmk_firmware/blob/master/tmk_core/doc/keymap.md#2-action). | 91 | These functions work the same way that their `ACTION_*` functions do - they're just quick aliases. To dig into all of the tmk ACTION_* functions, please see the [TMK documentation](https://github.com/qmk/qmk_firmware/blob/master/tmk_core/doc/keymap.md#2-action). |
| 92 | 92 | ||
| 93 | Instead of using `FNx` when defining `ACTION_*` functions, you can use `F(x)` - the benefit here is being able to use more than 32 function actions (up to 4096), if you happen to need them. | 93 | Instead of using `FNx` when defining `ACTION_*` functions, you can use `F(x)` - the benefit here is being able to use more than 32 function actions (up to 4096), if you happen to need them. |
| 94 | 94 | ||
diff --git a/keyboards/ergodox/keymaps/ab/readme.md b/keyboards/ergodox/keymaps/ab/readme.md index 6b1ac2be3..62e08e162 100644 --- a/keyboards/ergodox/keymaps/ab/readme.md +++ b/keyboards/ergodox/keymaps/ab/readme.md | |||
| @@ -8,7 +8,7 @@ Beginner's keymap emulates standard QWERTY keyboard for beginners. Once you get | |||
| 8 | * Easy on beginners. It has everything you need for your day to day usage. | 8 | * Easy on beginners. It has everything you need for your day to day usage. |
| 9 | 9 | ||
| 10 | #### Cons | 10 | #### Cons |
| 11 | * Keys are not ergonomically placed to take full advantage of Ergodox-EZ. Take a look at this [Default Keymap](https://github.com/jackhumbert/qmk_firmware/blob/master/keyboards/ergodox_ez/keymaps/default/readme.md) | 11 | * Keys are not ergonomically placed to take full advantage of Ergodox-EZ. Take a look at this [Default Keymap](https://github.com/qmk/qmk_firmware/blob/master/keyboards/ergodox_ez/keymaps/default/readme.md) |
| 12 | * While multiple layers are possible, beginner's keymap only uses one additional layer for mouse, function and volume keys. | 12 | * While multiple layers are possible, beginner's keymap only uses one additional layer for mouse, function and volume keys. |
| 13 | 13 | ||
| 14 | #### Notes | 14 | #### Notes |
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/algernon/readme.md b/keyboards/ergodox/keymaps/algernon/readme.md index 015bd7cd3..3783eadf1 100644 --- a/keyboards/ergodox/keymaps/algernon/readme.md +++ b/keyboards/ergodox/keymaps/algernon/readme.md | |||
| @@ -121,10 +121,10 @@ There is a very small tool in `tools/layer-notify`, that listens to the HID cons | |||
| 121 | To make my workflow easier, this layout is maintained in [its own repository][algernon:ez-layout]. To build it, you will need the [QMK][qmk] firmware checked out, and this repo either checked out to something like `keyboards/ergodox_ez/algernon-master`. One way to achieve that is this: | 121 | To make my workflow easier, this layout is maintained in [its own repository][algernon:ez-layout]. To build it, you will need the [QMK][qmk] firmware checked out, and this repo either checked out to something like `keyboards/ergodox_ez/algernon-master`. One way to achieve that is this: |
| 122 | 122 | ||
| 123 | [algernon:ez-layout]: https://github.com/algernon/ergodox-layout | 123 | [algernon:ez-layout]: https://github.com/algernon/ergodox-layout |
| 124 | [qmk]: https://github.com/jackhumbert/qmk_firmware | 124 | [qmk]: https://github.com/qmk/qmk_firmware |
| 125 | 125 | ||
| 126 | ``` | 126 | ``` |
| 127 | $ git clone https://github.com/jackhumbert/qmk_firmware.git | 127 | $ git clone https://github.com/qmk/qmk_firmware.git |
| 128 | $ cd qmk_firmware | 128 | $ cd qmk_firmware |
| 129 | $ git clone https://github.com/algernon/ergodox-layout.git \ | 129 | $ git clone https://github.com/algernon/ergodox-layout.git \ |
| 130 | keyboards/ergodox/keymaps/algernon-master | 130 | keyboards/ergodox/keymaps/algernon-master |
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/german-kinergo/readme.md b/keyboards/ergodox/keymaps/german-kinergo/readme.md index 557d85a8a..beb74cf75 100644 --- a/keyboards/ergodox/keymaps/german-kinergo/readme.md +++ b/keyboards/ergodox/keymaps/german-kinergo/readme.md | |||
| @@ -2,7 +2,7 @@ | |||
| 2 | 2 | ||
| 3 | This layout is inspired by the "kinesis-qwerty-mod" from benblazak's | 3 | This layout is inspired by the "kinesis-qwerty-mod" from benblazak's |
| 4 | [ergodox-firmware](https://github.com/benblazak/ergodox-firmware), as well as by the "german" layout from the | 4 | [ergodox-firmware](https://github.com/benblazak/ergodox-firmware), as well as by the "german" layout from the |
| 5 | [qmk_firmware](https://github.com/jackhumbert/qmk_firmware). | 5 | [qmk_firmware](https://github.com/qmk/qmk_firmware). |
| 6 | The goal was to have a layout that is pretty close to an ordinary German | 6 | The goal was to have a layout that is pretty close to an ordinary German |
| 7 | keyboard, so I don't have to make adjustments on the operating system level | 7 | keyboard, so I don't have to make adjustments on the operating system level |
| 8 | and I keep some of the muscle memory to use a regular keyboard. | 8 | and I keep some of the muscle memory to use a regular keyboard. |
diff --git a/keyboards/ergodox/keymaps/mclennon_osx/README.md b/keyboards/ergodox/keymaps/mclennon_osx/README.md index 60980d043..28cdb7c10 100644 --- a/keyboards/ergodox/keymaps/mclennon_osx/README.md +++ b/keyboards/ergodox/keymaps/mclennon_osx/README.md | |||
| @@ -2,4 +2,4 @@ | |||
| 2 | 2 | ||
| 3 | This keymapping is designed to be reasonably familiar to an ordinary Mac keyboard while taking advantage of the Ergodox EZ's features. Caps lock instead enables a layer which allows a user to use HJKL as arrow keys and to control media. Shift and control have additional mappings on S and D to provide easier access while holding down caps lock. | 3 | This keymapping is designed to be reasonably familiar to an ordinary Mac keyboard while taking advantage of the Ergodox EZ's features. Caps lock instead enables a layer which allows a user to use HJKL as arrow keys and to control media. Shift and control have additional mappings on S and D to provide easier access while holding down caps lock. |
| 4 | 4 | ||
| 5 | If you choose to compile this yourself, be sure to compile with `#define PREVENT_STUCK_MODIFIERS` in your `config.h`. Firmware built using [qmk_firmware](https://github.com/jackhumbert/qmk_firmware/). | 5 | If you choose to compile this yourself, be sure to compile with `#define PREVENT_STUCK_MODIFIERS` in your `config.h`. Firmware built using [qmk_firmware](https://github.com/qmk/qmk_firmware/). |
diff --git a/keyboards/ergodox/keymaps/pvinis/Readme.md b/keyboards/ergodox/keymaps/pvinis/Readme.md index 2a4a0c8f3..af2721054 100644 --- a/keyboards/ergodox/keymaps/pvinis/Readme.md +++ b/keyboards/ergodox/keymaps/pvinis/Readme.md | |||
| @@ -59,7 +59,7 @@ I have two commented out layers that are just templates, so I can easily create | |||
| 59 | # Building | 59 | # Building |
| 60 | 60 | ||
| 61 | ``` | 61 | ``` |
| 62 | $ git clone https://github.com/jackhumbert/qmk_firmware.git | 62 | $ git clone https://github.com/qmk/qmk_firmware.git |
| 63 | $ cd qmk_firmware/keyboards/ergodox/keymaps/pvinis | 63 | $ cd qmk_firmware/keyboards/ergodox/keymaps/pvinis |
| 64 | $ make | 64 | $ make |
| 65 | ``` | 65 | ``` |
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 | }; |
diff --git a/keyboards/ergodox/keymaps/supercoder/readme.md b/keyboards/ergodox/keymaps/supercoder/readme.md index 8ef96eddf..df39ac7a9 100644 --- a/keyboards/ergodox/keymaps/supercoder/readme.md +++ b/keyboards/ergodox/keymaps/supercoder/readme.md | |||
| @@ -22,7 +22,7 @@ your own: | |||
| 22 | [hex]: https://raw.githubusercontent.com/algernon/ergodox-supercoder/master/supercoder.hex | 22 | [hex]: https://raw.githubusercontent.com/algernon/ergodox-supercoder/master/supercoder.hex |
| 23 | 23 | ||
| 24 | ``` | 24 | ``` |
| 25 | $ git clone https://github.com/jackhumbert/qmk_firmware.git | 25 | $ git clone https://github.com/qmk/qmk_firmware.git |
| 26 | $ cd qmk_firmware/keyboards/ergodox | 26 | $ cd qmk_firmware/keyboards/ergodox |
| 27 | $ git clone https://github.com/algernon/ergodox-supercoder.git keymaps/supercoder | 27 | $ git clone https://github.com/algernon/ergodox-supercoder.git keymaps/supercoder |
| 28 | $ make KEYMAP=supercoder | 28 | $ make KEYMAP=supercoder |
diff --git a/keyboards/ergodox/keymaps/win10_writers-block/readme.md b/keyboards/ergodox/keymaps/win10_writers-block/readme.md index e51e3c48f..83f91bce2 100644 --- a/keyboards/ergodox/keymaps/win10_writers-block/readme.md +++ b/keyboards/ergodox/keymaps/win10_writers-block/readme.md | |||
| @@ -90,7 +90,7 @@ Your LEDs will change to indicate your layer. You'll know you are in the base la | |||
| 90 | 90 | ||
| 91 | To build, you will need the [QMK][qmk] firmware checked out. from there, dive into `keyboards/ergodox/keymaps/win10_writers-block/` | 91 | To build, you will need the [QMK][qmk] firmware checked out. from there, dive into `keyboards/ergodox/keymaps/win10_writers-block/` |
| 92 | 92 | ||
| 93 | [qmk]: https://github.com/jackhumbert/qmk_firmware | 93 | [qmk]: https://github.com/qmk/qmk_firmware |
| 94 | 94 | ||
| 95 | ``` | 95 | ``` |
| 96 | $ make keyboard=ergodox keymap=win10_writers-block | 96 | $ make keyboard=ergodox keymap=win10_writers-block |
diff --git a/keyboards/ergodox/readme.md b/keyboards/ergodox/readme.md index ca3eeba59..45b3354c1 100644 --- a/keyboards/ergodox/readme.md +++ b/keyboards/ergodox/readme.md | |||
| @@ -25,7 +25,7 @@ If none of the existing keymaps suit you, you can create your own custom | |||
| 25 | keymap. This will require some experience with coding. Follow these steps | 25 | keymap. This will require some experience with coding. Follow these steps |
| 26 | to customize a keymap: | 26 | to customize a keymap: |
| 27 | 27 | ||
| 28 | - Read the [qmk firmware README](https://github.com/jackhumbert/qmk_firmware) from top to bottom. Then come back here. :) | 28 | - Read the [qmk firmware README](https://github.com/qmk/qmk_firmware) from top to bottom. Then come back here. :) |
| 29 | 29 | ||
| 30 | - Clone the qmk_firmware repository | 30 | - Clone the qmk_firmware repository |
| 31 | 31 | ||
diff --git a/keyboards/handwired/onekey/keymaps/default/keymap.c b/keyboards/handwired/onekey/keymaps/default/keymap.c index 756c4f51e..10c486718 100644 --- a/keyboards/handwired/onekey/keymaps/default/keymap.c +++ b/keyboards/handwired/onekey/keymaps/default/keymap.c | |||
| @@ -1,5 +1,5 @@ | |||
| 1 | #include "onekey.h" | 1 | #include "onekey.h" |
| 2 | 2 | ||
| 3 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | 3 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |
| 4 | { KC_A } | 4 | {{ KC_A }} |
| 5 | }; | 5 | }; |
diff --git a/keyboards/handwired/reddot/Makefile b/keyboards/handwired/reddot/Makefile new file mode 100755 index 000000000..191c6bb66 --- /dev/null +++ b/keyboards/handwired/reddot/Makefile | |||
| @@ -0,0 +1,3 @@ | |||
| 1 | ifndef MAKEFILE_INCLUDED | ||
| 2 | include ../../../Makefile | ||
| 3 | endif \ No newline at end of file | ||
diff --git a/keyboards/handwired/reddot/config.h b/keyboards/handwired/reddot/config.h new file mode 100755 index 000000000..15f114297 --- /dev/null +++ b/keyboards/handwired/reddot/config.h | |||
| @@ -0,0 +1,162 @@ | |||
| 1 | /* | ||
| 2 | Copyright 2012 Jun Wako <wakojun@gmail.com> | ||
| 3 | |||
| 4 | This program is free software: you can redistribute it and/or modify | ||
| 5 | it under the terms of the GNU General Public License as published by | ||
| 6 | the Free Software Foundation, either version 2 of the License, or | ||
| 7 | (at your option) any later version. | ||
| 8 | |||
| 9 | This program is distributed in the hope that it will be useful, | ||
| 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 12 | GNU General Public License for more details. | ||
| 13 | |||
| 14 | You should have received a copy of the GNU General Public License | ||
| 15 | along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 16 | */ | ||
| 17 | |||
| 18 | #ifndef CONFIG_H | ||
| 19 | #define CONFIG_H | ||
| 20 | |||
| 21 | #include "config_common.h" | ||
| 22 | |||
| 23 | /* USB Device descriptor parameter */ | ||
| 24 | #define VENDOR_ID 0xFEED | ||
| 25 | #define PRODUCT_ID 0x6060 | ||
| 26 | #define DEVICE_VER 0x0001 | ||
| 27 | #define MANUFACTURER upils | ||
| 28 | #define PRODUCT reddot | ||
| 29 | #define DESCRIPTION A custom keyboard | ||
| 30 | |||
| 31 | /* key matrix size */ | ||
| 32 | #define MATRIX_ROWS 5 | ||
| 33 | #define MATRIX_COLS 19 | ||
| 34 | |||
| 35 | /* | ||
| 36 | * Keyboard Matrix Assignments | ||
| 37 | * | ||
| 38 | * Change this to how you wired your keyboard | ||
| 39 | * COLS: AVR pins used for columns, left to right | ||
| 40 | * ROWS: AVR pins used for rows, top to bottom | ||
| 41 | * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) | ||
| 42 | * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) | ||
| 43 | * | ||
| 44 | */ | ||
| 45 | #define MATRIX_ROW_PINS { B0, B1, B2, B3, E6 } | ||
| 46 | #define MATRIX_COL_PINS { B7, D0, D1, D2, D3, C6, C7, D5, D4, D7, B4, B5, B6, F7, F6, F5, F4, F1, F0 } | ||
| 47 | #define UNUSED_PINS | ||
| 48 | |||
| 49 | |||
| 50 | /* COL2ROW or ROW2COL */ | ||
| 51 | #define DIODE_DIRECTION COL2ROW | ||
| 52 | |||
| 53 | // #define BACKLIGHT_PIN B7 | ||
| 54 | // #define BACKLIGHT_BREATHING | ||
| 55 | // #define BACKLIGHT_LEVELS 3 | ||
| 56 | |||
| 57 | |||
| 58 | /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ | ||
| 59 | #define DEBOUNCING_DELAY 5 | ||
| 60 | |||
| 61 | /* define if matrix has ghost (lacks anti-ghosting diodes) */ | ||
| 62 | //#define MATRIX_HAS_GHOST | ||
| 63 | |||
| 64 | |||
| 65 | /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ | ||
| 66 | //#define LOCKING_SUPPORT_ENABLE | ||
| 67 | /* Locking resynchronize hack */ | ||
| 68 | #define LOCKING_RESYNC_ENABLE | ||
| 69 | |||
| 70 | /* | ||
| 71 | * Force NKRO | ||
| 72 | * | ||
| 73 | * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved | ||
| 74 | * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the | ||
| 75 | * makefile for this to work.) | ||
| 76 | * | ||
| 77 | * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) | ||
| 78 | * until the next keyboard reset. | ||
| 79 | * | ||
| 80 | * NKRO may prevent your keystrokes from being detected in the BIOS, but it is | ||
| 81 | * fully operational during normal computer usage. | ||
| 82 | * | ||
| 83 | * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) | ||
| 84 | * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by | ||
| 85 | * bootmagic, NKRO mode will always be enabled until it is toggled again during a | ||
| 86 | * power-up. | ||
| 87 | * | ||
| 88 | */ | ||
| 89 | //#define FORCE_NKRO | ||
| 90 | |||
| 91 | /* | ||
| 92 | * Magic Key Options | ||
| 93 | * | ||
| 94 | * Magic keys are hotkey commands that allow control over firmware functions of | ||
| 95 | * the keyboard. They are best used in combination with the HID Listen program, | ||
| 96 | * found here: https://www.pjrc.com/teensy/hid_listen.html | ||
| 97 | * | ||
| 98 | * The options below allow the magic key functionality to be changed. This is | ||
| 99 | * useful if your keyboard/keypad is missing keys and you want magic key support. | ||
| 100 | * | ||
| 101 | */ | ||
| 102 | |||
| 103 | /* key combination for magic key command */ | ||
| 104 | #define IS_COMMAND() ( \ | ||
| 105 | keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ | ||
| 106 | ) | ||
| 107 | |||
| 108 | /* control how magic key switches layers */ | ||
| 109 | //#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true | ||
| 110 | //#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true | ||
| 111 | //#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false | ||
| 112 | |||
| 113 | /* override magic key keymap */ | ||
| 114 | //#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS | ||
| 115 | //#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS | ||
| 116 | //#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM | ||
| 117 | //#define MAGIC_KEY_HELP1 H | ||
| 118 | //#define MAGIC_KEY_HELP2 SLASH | ||
| 119 | //#define MAGIC_KEY_DEBUG D | ||
| 120 | //#define MAGIC_KEY_DEBUG_MATRIX X | ||
| 121 | //#define MAGIC_KEY_DEBUG_KBD K | ||
| 122 | //#define MAGIC_KEY_DEBUG_MOUSE M | ||
| 123 | //#define MAGIC_KEY_VERSION V | ||
| 124 | //#define MAGIC_KEY_STATUS S | ||
| 125 | //#define MAGIC_KEY_CONSOLE C | ||
| 126 | //#define MAGIC_KEY_LAYER0_ALT1 ESC | ||
| 127 | //#define MAGIC_KEY_LAYER0_ALT2 GRAVE | ||
| 128 | //#define MAGIC_KEY_LAYER0 0 | ||
| 129 | //#define MAGIC_KEY_LAYER1 1 | ||
| 130 | //#define MAGIC_KEY_LAYER2 2 | ||
| 131 | //#define MAGIC_KEY_LAYER3 3 | ||
| 132 | //#define MAGIC_KEY_LAYER4 4 | ||
| 133 | //#define MAGIC_KEY_LAYER5 5 | ||
| 134 | //#define MAGIC_KEY_LAYER6 6 | ||
| 135 | //#define MAGIC_KEY_LAYER7 7 | ||
| 136 | //#define MAGIC_KEY_LAYER8 8 | ||
| 137 | //#define MAGIC_KEY_LAYER9 9 | ||
| 138 | //#define MAGIC_KEY_BOOTLOADER PAUSE | ||
| 139 | //#define MAGIC_KEY_LOCK CAPS | ||
| 140 | //#define MAGIC_KEY_EEPROM E | ||
| 141 | //#define MAGIC_KEY_NKRO N | ||
| 142 | //#define MAGIC_KEY_SLEEP_LED Z | ||
| 143 | |||
| 144 | /* | ||
| 145 | * Feature disable options | ||
| 146 | * These options are also useful to firmware size reduction. | ||
| 147 | */ | ||
| 148 | |||
| 149 | /* disable debug print */ | ||
| 150 | //#define NO_DEBUG | ||
| 151 | |||
| 152 | /* disable print */ | ||
| 153 | //#define NO_PRINT | ||
| 154 | |||
| 155 | /* disable action features */ | ||
| 156 | //#define NO_ACTION_LAYER | ||
| 157 | //#define NO_ACTION_TAPPING | ||
| 158 | //#define NO_ACTION_ONESHOT | ||
| 159 | //#define NO_ACTION_MACRO | ||
| 160 | //#define NO_ACTION_FUNCTION | ||
| 161 | |||
| 162 | #endif | ||
diff --git a/keyboards/handwired/reddot/keymaps/default/keymap.c b/keyboards/handwired/reddot/keymaps/default/keymap.c new file mode 100755 index 000000000..44ee2ce51 --- /dev/null +++ b/keyboards/handwired/reddot/keymaps/default/keymap.c | |||
| @@ -0,0 +1,29 @@ | |||
| 1 | #include "reddot.h" | ||
| 2 | #include "../../../../../quantum/keymap_extras/keymap_french.h" | ||
| 3 | |||
| 4 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 5 | |||
| 6 | [0] = KEYMAP( | ||
| 7 | KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TAB, KC_CAPS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_FN0, KC_KP_SLASH, KC_KP_ASTERISK, KC_KP_MINUS,\ | ||
| 8 | KC_LALT, FR_AMP, FR_EACU, FR_QUOT, FR_APOS, FR_LPRN, KC_BSPACE, KC_DELETE, FR_MINS, FR_EGRV, FR_UNDS, FR_CCED, FR_AGRV, FR_RPRN, FR_EQL, KC_INSERT, KC_HOME, KC_PGUP,\ | ||
| 9 | KC_LGUI, FR_A, FR_Z, KC_E, KC_R, KC_T, KC_LSFT, KC_ENT, KC_Y, KC_U, KC_I, KC_O, KC_P, FR_CIRC, FR_DLR, KC_DELETE, KC_END, KC_PGDOWN, KC_KP_PLUS,\ | ||
| 10 | KC_LCTL, FR_Q, KC_S, KC_D, KC_F, KC_G, KC_ENT, KC_H, KC_J, KC_K, KC_L, FR_M, FR_UGRV, FR_ASTR, KC_KP_1, KC_UP, KC_KP_3,\ | ||
| 11 | FR_LESS, FR_W, KC_X, KC_C, KC_V, KC_B, KC_SPACE, KC_SPACE, KC_N, FR_COMM, FR_SCLN, FR_COLN, FR_EXLM, NO_ALGR, KC_LEFT, KC_DOWN, KC_RIGHT, KC_KP_ENTER), | ||
| 12 | |||
| 13 | [1] = KEYMAP( | ||
| 14 | KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TAB, KC_CAPS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_FN0, KC_KP_SLASH, KC_KP_ASTERISK, KC_KP_MINUS,\ | ||
| 15 | KC_LALT, FR_AMP, FR_EACU, FR_QUOT, FR_APOS, FR_LPRN, KC_BSPACE, KC_DELETE, FR_MINS, FR_EGRV, FR_UNDS, FR_CCED, FR_AGRV, FR_RPRN, FR_EQL, KC_7, KC_8, KC_9,\ | ||
| 16 | KC_LGUI, FR_A, FR_Z, KC_E, KC_R, KC_T, KC_LSFT, KC_ENT, KC_Y, KC_U, KC_I, KC_O, KC_P, FR_CIRC, FR_DLR, KC_4, KC_5, KC_6, KC_KP_PLUS,\ | ||
| 17 | KC_LCTL, FR_Q, KC_S, KC_D, KC_F, KC_G, KC_ENT, KC_H, KC_J, KC_K, KC_L, FR_M, FR_UGRV, FR_ASTR, KC_1, KC_2, KC_3,\ | ||
| 18 | FR_LESS, FR_W, KC_X, KC_C, KC_V, KC_B, KC_SPACE, KC_SPACE, KC_N, FR_COMM, FR_SCLN, FR_COLN, FR_EXLM, NO_ALGR, KC_LEFT, KC_DOWN, KC_RIGHT, KC_KP_ENTER), | ||
| 19 | }; | ||
| 20 | |||
| 21 | |||
| 22 | const uint16_t PROGMEM fn_actions[] = { | ||
| 23 | ACTION_LAYER_TOGGLE(1), | ||
| 24 | }; | ||
| 25 | |||
| 26 | const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { | ||
| 27 | return MACRO_NONE; | ||
| 28 | }; | ||
| 29 | |||
diff --git a/keyboards/handwired/reddot/keymaps/default/readme.md b/keyboards/handwired/reddot/keymaps/default/readme.md new file mode 100755 index 000000000..f04833c3e --- /dev/null +++ b/keyboards/handwired/reddot/keymaps/default/readme.md | |||
| @@ -0,0 +1 @@ | |||
| # The default keymap for handwired/reddot | |||
diff --git a/keyboards/handwired/reddot/readme.md b/keyboards/handwired/reddot/readme.md new file mode 100755 index 000000000..11bcba54a --- /dev/null +++ b/keyboards/handwired/reddot/readme.md | |||
| @@ -0,0 +1,24 @@ | |||
| 1 | ## RedDot Specific Info ## | ||
| 2 | |||
| 3 | |||
| 4 | ## Quantum MK Firmware | ||
| 5 | |||
| 6 | For the full Quantum feature list, see [the parent README.md](/README.md). | ||
| 7 | |||
| 8 | ## Building | ||
| 9 | |||
| 10 | Download or clone the whole firmware and navigate to the keyboard/reddot folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use the Teensy Loader to program your .hex file. | ||
| 11 | |||
| 12 | Depending on which keymap you would like to use, you will have to compile slightly differently. | ||
| 13 | |||
| 14 | ### Default | ||
| 15 | To build with the default keymap, simply run `make`. | ||
| 16 | |||
| 17 | ### Other Keymaps | ||
| 18 | Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `<name>.c` and see keymap document (you can find in top README.md) and existent keymap files. | ||
| 19 | |||
| 20 | To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` option like: | ||
| 21 | ``` | ||
| 22 | $ make KEYMAP=[default|jack|<name>] | ||
| 23 | ``` | ||
| 24 | Keymaps follow the format **__\<name\>.c__** and are stored in the `keymaps` folder. | ||
diff --git a/keyboards/handwired/reddot/reddot.c b/keyboards/handwired/reddot/reddot.c new file mode 100755 index 000000000..4e1efc06c --- /dev/null +++ b/keyboards/handwired/reddot/reddot.c | |||
| @@ -0,0 +1,7 @@ | |||
| 1 | #include "reddot.h" | ||
| 2 | |||
| 3 | void matrix_init_kb(void) { | ||
| 4 | |||
| 5 | matrix_init_user(); | ||
| 6 | } | ||
| 7 | |||
diff --git a/keyboards/handwired/reddot/reddot.h b/keyboards/handwired/reddot/reddot.h new file mode 100755 index 000000000..f0c4be557 --- /dev/null +++ b/keyboards/handwired/reddot/reddot.h | |||
| @@ -0,0 +1,20 @@ | |||
| 1 | #ifndef REDDOT_H | ||
| 2 | #define REDDOT_H | ||
| 3 | |||
| 4 | #include "quantum.h" | ||
| 5 | |||
| 6 | #define KEYMAP( \ | ||
| 7 | k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k10, k11, k12, k13, \ | ||
| 8 | k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E, k30, k31, k32, \ | ||
| 9 | k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4A, k4B, k4C, k4D, k4E, k50, k51, k52, k53, \ | ||
| 10 | k60, k61, k62, k63, k64, k65, k66, k68, k69, k6A, k6B, k6C, k6D, k6E, k70, k71, k72, \ | ||
| 11 | k80, k81, k82, k83, k84, k85, k86, k88, k89, k8A, k8B, k8C, k8D, k8E, k90, k91, k92, k93\ | ||
| 12 | ) { \ | ||
| 13 | { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, k10, k11, k12, k13 }, \ | ||
| 14 | { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E, k30, k31, k32, KC_NO }, \ | ||
| 15 | { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4A, k4B, k4C, k4D, k4E, k50, k51, k52, k53 }, \ | ||
| 16 | { k60, k61, k62, k63, k64, k65, k66, KC_NO, k68, k69, k6A, k6B, k6C, k6D, k6E, k70, k71, k72, KC_NO }, \ | ||
| 17 | { k80, k81, k82, k83, k84, k85, k86, KC_NO, k88, k89, k8A, k8B, k8C, k8D, k8E, k90, k91, k92, k93 } \ | ||
| 18 | } | ||
| 19 | |||
| 20 | #endif | ||
diff --git a/keyboards/handwired/reddot/rules.mk b/keyboards/handwired/reddot/rules.mk new file mode 100755 index 000000000..9a4409fe6 --- /dev/null +++ b/keyboards/handwired/reddot/rules.mk | |||
| @@ -0,0 +1,88 @@ | |||
| 1 | |||
| 2 | #MCU = at90usb1287 | ||
| 3 | MCU = atmega32u4 | ||
| 4 | |||
| 5 | # Processor frequency. | ||
| 6 | # This will define a symbol, F_CPU, in all source code files equal to the | ||
| 7 | # processor frequency in Hz. You can then use this symbol in your source code to | ||
| 8 | # calculate timings. Do NOT tack on a 'UL' at the end, this will be done | ||
| 9 | # automatically to create a 32-bit value in your source code. | ||
| 10 | # | ||
| 11 | # This will be an integer division of F_USB below, as it is sourced by | ||
| 12 | # F_USB after it has run through any CPU prescalers. Note that this value | ||
| 13 | # does not *change* the processor frequency - it should merely be updated to | ||
| 14 | # reflect the processor speed set externally so that the code can use accurate | ||
| 15 | # software delays. | ||
| 16 | F_CPU = 16000000 | ||
| 17 | |||
| 18 | # for avr upload | ||
| 19 | USB ?= /dev/cu.usbmodem1421 | ||
| 20 | # | ||
| 21 | # LUFA specific | ||
| 22 | # | ||
| 23 | # Target architecture (see library "Board Types" documentation). | ||
| 24 | ARCH = AVR8 | ||
| 25 | |||
| 26 | # Input clock frequency. | ||
| 27 | # This will define a symbol, F_USB, in all source code files equal to the | ||
| 28 | # input clock frequency (before any prescaling is performed) in Hz. This value may | ||
| 29 | # differ from F_CPU if prescaling is used on the latter, and is required as the | ||
| 30 | # raw input clock is fed directly to the PLL sections of the AVR for high speed | ||
| 31 | # clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' | ||
| 32 | # at the end, this will be done automatically to create a 32-bit value in your | ||
| 33 | # source code. | ||
| 34 | # | ||
| 35 | # If no clock division is performed on the input clock inside the AVR (via the | ||
| 36 | # CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. | ||
| 37 | F_USB = $(F_CPU) | ||
| 38 | |||
| 39 | |||
| 40 | ifdef TEENSY2 | ||
| 41 | OPT_DEFS += -DATREUS_TEENSY2 | ||
| 42 | ATREUS_UPLOAD_COMMAND = teensy_loader_cli -w -mmcu=$(MCU) $(TARGET).hex | ||
| 43 | else | ||
| 44 | OPT_DEFS += -DATREUS_ASTAR | ||
| 45 | OPT_DEFS += -DCATERINA_BOOTLOADER | ||
| 46 | ATREUS_UPLOAD_COMMAND = while [ ! -r $(USB) ]; do sleep 1; done; \ | ||
| 47 | avrdude -p $(MCU) -c avr109 -U flash:w:$(TARGET).hex -P $(USB) | ||
| 48 | endif | ||
| 49 | # Interrupt driven control endpoint task(+60) | ||
| 50 | OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT | ||
| 51 | |||
| 52 | |||
| 53 | # MCU name | ||
| 54 | |||
| 55 | # Boot Section Size in *bytes* | ||
| 56 | # Teensy halfKay 512 | ||
| 57 | # Teensy++ halfKay 1024 | ||
| 58 | # Atmel DFU loader 4096 | ||
| 59 | # LUFA bootloader 4096 | ||
| 60 | # USBaspLoader 2048 | ||
| 61 | OPT_DEFS += -DBOOTLOADER_SIZE=4096 | ||
| 62 | |||
| 63 | |||
| 64 | # Build Options | ||
| 65 | # change yes to no to disable | ||
| 66 | # | ||
| 67 | BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000) | ||
| 68 | MOUSEKEY_ENABLE = yes # Mouse keys(+4700) | ||
| 69 | EXTRAKEY_ENABLE = yes # Audio control and System control(+450) | ||
| 70 | CONSOLE_ENABLE ?= no # Console for debug(+400) | ||
| 71 | COMMAND_ENABLE ?= no # Commands for debug and configuration | ||
| 72 | # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE | ||
| 73 | SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend | ||
| 74 | # if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work | ||
| 75 | NKRO_ENABLE ?= no # USB Nkey Rollover | ||
| 76 | BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality on B7 by default | ||
| 77 | MIDI_ENABLE ?= no # MIDI controls | ||
| 78 | UNICODE_ENABLE ?= no # Unicode | ||
| 79 | BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID | ||
| 80 | AUDIO_ENABLE ?= no # Audio output on port C6 | ||
| 81 | |||
| 82 | ifndef QUANTUM_DIR | ||
| 83 | include ../../../Makefile | ||
| 84 | endif | ||
| 85 | |||
| 86 | upload: build | ||
| 87 | $(ATREUS_UPLOAD_COMMAND) | ||
| 88 | |||
diff --git a/keyboards/hhkb/readme.md b/keyboards/hhkb/readme.md index 367c0a08f..ee7d11121 100644 --- a/keyboards/hhkb/readme.md +++ b/keyboards/hhkb/readme.md | |||
| @@ -82,7 +82,7 @@ We've added shortcuts to make common modifier/tap (mod-tap) mappings more compac | |||
| 82 | 82 | ||
| 83 | ### Remember: These are just aliases | 83 | ### Remember: These are just aliases |
| 84 | 84 | ||
| 85 | These functions work the same way that their `ACTION_*` functions do - they're just quick aliases. To dig into all of the tmk ACTION_* functions, please see the [TMK documentation](https://github.com/jackhumbert/qmk_firmware/blob/master/tmk_core/doc/keymap.md#2-action). | 85 | These functions work the same way that their `ACTION_*` functions do - they're just quick aliases. To dig into all of the tmk ACTION_* functions, please see the [TMK documentation](https://github.com/qmk/qmk_firmware/blob/master/tmk_core/doc/keymap.md#2-action). |
| 86 | 86 | ||
| 87 | Instead of using `FNx` when defining `ACTION_*` functions, you can use `F(x)` - the benefit here is being able to use more than 32 function actions (up to 4096), if you happen to need them. | 87 | Instead of using `FNx` when defining `ACTION_*` functions, you can use `F(x)` - the benefit here is being able to use more than 32 function actions (up to 4096), if you happen to need them. |
| 88 | 88 | ||
diff --git a/keyboards/lets_split/config.h b/keyboards/lets_split/config.h index 7df0c5752..008fb0978 100644 --- a/keyboards/lets_split/config.h +++ b/keyboards/lets_split/config.h | |||
| @@ -26,4 +26,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
| 26 | #ifdef SUBPROJECT_rev2 | 26 | #ifdef SUBPROJECT_rev2 |
| 27 | #include "rev2/config.h" | 27 | #include "rev2/config.h" |
| 28 | #endif | 28 | #endif |
| 29 | #ifdef SUBPROJECT_rev2fliphalf | ||
| 30 | #include "../../rev2fliphalf/config.h" | ||
| 31 | #endif | ||
| 29 | #endif | 32 | #endif |
diff --git a/keyboards/lets_split/keymaps/i2c/config.h b/keyboards/lets_split/keymaps/i2c/config.h index efe8bb0f2..332c990fc 100644 --- a/keyboards/lets_split/keymaps/i2c/config.h +++ b/keyboards/lets_split/keymaps/i2c/config.h | |||
| @@ -24,4 +24,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
| 24 | #endif | 24 | #endif |
| 25 | #ifdef SUBPROJECT_rev2 | 25 | #ifdef SUBPROJECT_rev2 |
| 26 | #include "../../rev2/config.h" | 26 | #include "../../rev2/config.h" |
| 27 | #endif | ||
| 28 | #ifdef SUBPROJECT_rev2fliphalf | ||
| 29 | #include "../../rev2fliphalf/config.h" | ||
| 27 | #endif \ No newline at end of file | 30 | #endif \ No newline at end of file |
diff --git a/keyboards/lets_split/keymaps/serial/config.h b/keyboards/lets_split/keymaps/serial/config.h index cd766cc4f..0e59b191b 100644 --- a/keyboards/lets_split/keymaps/serial/config.h +++ b/keyboards/lets_split/keymaps/serial/config.h | |||
| @@ -26,4 +26,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
| 26 | #endif | 26 | #endif |
| 27 | #ifdef SUBPROJECT_rev2 | 27 | #ifdef SUBPROJECT_rev2 |
| 28 | #include "../../rev2/config.h" | 28 | #include "../../rev2/config.h" |
| 29 | #endif | ||
| 30 | #ifdef SUBPROJECT_rev2fliphalf | ||
| 31 | #include "../../rev2fliphalf/config.h" | ||
| 29 | #endif \ No newline at end of file | 32 | #endif \ No newline at end of file |
diff --git a/keyboards/lets_split/lets_split.h b/keyboards/lets_split/lets_split.h index 2cdfb061f..0de308c7a 100644 --- a/keyboards/lets_split/lets_split.h +++ b/keyboards/lets_split/lets_split.h | |||
| @@ -7,6 +7,9 @@ | |||
| 7 | #ifdef SUBPROJECT_rev2 | 7 | #ifdef SUBPROJECT_rev2 |
| 8 | #include "rev2.h" | 8 | #include "rev2.h" |
| 9 | #endif | 9 | #endif |
| 10 | #ifdef SUBPROJECT_rev2fliphalf | ||
| 11 | #include "rev2fliphalf.h" | ||
| 12 | #endif | ||
| 10 | 13 | ||
| 11 | #include "quantum.h" | 14 | #include "quantum.h" |
| 12 | 15 | ||
diff --git a/keyboards/lets_split/readme.md b/keyboards/lets_split/readme.md index 6e296737a..a63ce5907 100644 --- a/keyboards/lets_split/readme.md +++ b/keyboards/lets_split/readme.md | |||
| @@ -74,6 +74,10 @@ not be very difficult to adapt it to support more if required. | |||
| 74 | Flashing | 74 | Flashing |
| 75 | -------- | 75 | -------- |
| 76 | 76 | ||
| 77 | From the keymap directory run `make SUBPROJECT-KEYMAP-avrdude` for automatic serial port resolution and flashing. | ||
| 78 | |||
| 79 | Example: `make rev2-serial-avrdude` | ||
| 80 | |||
| 77 | If you define `EE_HANDS` in your `config.h`, you will need to set the | 81 | If you define `EE_HANDS` in your `config.h`, you will need to set the |
| 78 | EEPROM for the left and right halves. The EEPROM is used to store whether the | 82 | EEPROM for the left and right halves. The EEPROM is used to store whether the |
| 79 | half is left handed or right handed. This makes it so that the same firmware | 83 | half is left handed or right handed. This makes it so that the same firmware |
diff --git a/keyboards/lets_split/rev2/rev2.h b/keyboards/lets_split/rev2/rev2.h index 7c397912f..990976de2 100644 --- a/keyboards/lets_split/rev2/rev2.h +++ b/keyboards/lets_split/rev2/rev2.h | |||
| @@ -9,10 +9,10 @@ | |||
| 9 | //void promicro_bootloader_jmp(bool program); | 9 | //void promicro_bootloader_jmp(bool program); |
| 10 | 10 | ||
| 11 | #define KEYMAP( \ | 11 | #define KEYMAP( \ |
| 12 | k00, k01, k02, k03, k04, k05, k40, k41, k42, k43, k44, k45, \ | 12 | k00, k01, k02, k03, k04, k05, k45, k44, k43, k42, k41, k40, \ |
| 13 | k10, k11, k12, k13, k14, k15, k50, k51, k52, k53, k54, k55, \ | 13 | k10, k11, k12, k13, k14, k15, k55, k54, k53, k52, k51, k50, \ |
| 14 | k20, k21, k22, k23, k24, k25, k60, k61, k62, k63, k64, k65, \ | 14 | k20, k21, k22, k23, k24, k25, k65, k64, k63, k62, k61, k60, \ |
| 15 | k30, k31, k32, k33, k34, k35, k70, k71, k72, k73, k74, k75 \ | 15 | k30, k31, k32, k33, k34, k35, k75, k74, k73, k72, k71, k70 \ |
| 16 | ) \ | 16 | ) \ |
| 17 | { \ | 17 | { \ |
| 18 | { k00, k01, k02, k03, k04, k05 }, \ | 18 | { k00, k01, k02, k03, k04, k05 }, \ |
diff --git a/keyboards/lets_split/rev2fliphalf/Makefile b/keyboards/lets_split/rev2fliphalf/Makefile new file mode 100644 index 000000000..4e2a6f00f --- /dev/null +++ b/keyboards/lets_split/rev2fliphalf/Makefile | |||
| @@ -0,0 +1,3 @@ | |||
| 1 | ifndef MAKEFILE_INCLUDED | ||
| 2 | include ../../Makefile | ||
| 3 | endif \ No newline at end of file | ||
diff --git a/keyboards/lets_split/rev2fliphalf/config.h b/keyboards/lets_split/rev2fliphalf/config.h new file mode 100644 index 000000000..1c45cf136 --- /dev/null +++ b/keyboards/lets_split/rev2fliphalf/config.h | |||
| @@ -0,0 +1,91 @@ | |||
| 1 | /* | ||
| 2 | Copyright 2012 Jun Wako <wakojun@gmail.com> | ||
| 3 | |||
| 4 | This program is free software: you can redistribute it and/or modify | ||
| 5 | it under the terms of the GNU General Public License as published by | ||
| 6 | the Free Software Foundation, either version 2 of the License, or | ||
| 7 | (at your option) any later version. | ||
| 8 | |||
| 9 | This program is distributed in the hope that it will be useful, | ||
| 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 12 | GNU General Public License for more details. | ||
| 13 | |||
| 14 | You should have received a copy of the GNU General Public License | ||
| 15 | along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 16 | */ | ||
| 17 | |||
| 18 | #ifndef CONFIG_H | ||
| 19 | #define CONFIG_H | ||
| 20 | |||
| 21 | #include "config_common.h" | ||
| 22 | |||
| 23 | /* USB Device descriptor parameter */ | ||
| 24 | #define VENDOR_ID 0xFEED | ||
| 25 | #define PRODUCT_ID 0x3060 | ||
| 26 | #define DEVICE_VER 0x0001 | ||
| 27 | #define MANUFACTURER Wootpatoot | ||
| 28 | #define PRODUCT Lets Split v2 | ||
| 29 | #define DESCRIPTION A split keyboard for the cheap makers | ||
| 30 | |||
| 31 | /* key matrix size */ | ||
| 32 | // Rows are doubled-up | ||
| 33 | #define MATRIX_ROWS 8 | ||
| 34 | #define MATRIX_COLS 6 | ||
| 35 | |||
| 36 | // wiring of each half | ||
| 37 | #define MATRIX_ROW_PINS { D7, E6, B4, B5 } | ||
| 38 | //#define MATRIX_COL_PINS { F6, F7, B1, B3, B2, B6 } | ||
| 39 | #define MATRIX_COL_PINS { B6, B2, B3, B1, F7, F6 } //uncomment this line and comment line above if you need to reverse left-to-right key order | ||
| 40 | |||
| 41 | //#define CATERINA_BOOTLOADER | ||
| 42 | |||
| 43 | /* COL2ROW or ROW2COL */ | ||
| 44 | #define DIODE_DIRECTION COL2ROW | ||
| 45 | |||
| 46 | /* define if matrix has ghost */ | ||
| 47 | //#define MATRIX_HAS_GHOST | ||
| 48 | |||
| 49 | /* number of backlight levels */ | ||
| 50 | // #define BACKLIGHT_LEVELS 3 | ||
| 51 | |||
| 52 | /* Set 0 if debouncing isn't needed */ | ||
| 53 | #define DEBOUNCING_DELAY 5 | ||
| 54 | |||
| 55 | /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ | ||
| 56 | #define LOCKING_SUPPORT_ENABLE | ||
| 57 | /* Locking resynchronize hack */ | ||
| 58 | #define LOCKING_RESYNC_ENABLE | ||
| 59 | |||
| 60 | /* key combination for command */ | ||
| 61 | #define IS_COMMAND() ( \ | ||
| 62 | keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ | ||
| 63 | ) | ||
| 64 | |||
| 65 | /* ws2812 RGB LED */ | ||
| 66 | #define RGB_DI_PIN D3 | ||
| 67 | #define RGBLIGHT_TIMER | ||
| 68 | #define RGBLED_NUM 12 // Number of LEDs | ||
| 69 | #define ws2812_PORTREG PORTD | ||
| 70 | #define ws2812_DDRREG DDRD | ||
| 71 | |||
| 72 | /* | ||
| 73 | * Feature disable options | ||
| 74 | * These options are also useful to firmware size reduction. | ||
| 75 | */ | ||
| 76 | |||
| 77 | /* disable debug print */ | ||
| 78 | // #define NO_DEBUG | ||
| 79 | |||
| 80 | /* disable print */ | ||
| 81 | // #define NO_PRINT | ||
| 82 | |||
| 83 | /* disable action features */ | ||
| 84 | //#define NO_ACTION_LAYER | ||
| 85 | //#define NO_ACTION_TAPPING | ||
| 86 | //#define NO_ACTION_ONESHOT | ||
| 87 | //#define NO_ACTION_MACRO | ||
| 88 | //#define NO_ACTION_FUNCTION | ||
| 89 | |||
| 90 | |||
| 91 | #endif \ No newline at end of file | ||
diff --git a/keyboards/lets_split/rev2fliphalf/rev2fliphalf.c b/keyboards/lets_split/rev2fliphalf/rev2fliphalf.c new file mode 100644 index 000000000..c505d3a6e --- /dev/null +++ b/keyboards/lets_split/rev2fliphalf/rev2fliphalf.c | |||
| @@ -0,0 +1,32 @@ | |||
| 1 | #include "lets_split.h" | ||
| 2 | |||
| 3 | #ifdef AUDIO_ENABLE | ||
| 4 | float tone_startup[][2] = SONG(STARTUP_SOUND); | ||
| 5 | float tone_goodbye[][2] = SONG(GOODBYE_SOUND); | ||
| 6 | #endif | ||
| 7 | |||
| 8 | void matrix_init_kb(void) { | ||
| 9 | |||
| 10 | #ifdef AUDIO_ENABLE | ||
| 11 | _delay_ms(20); // gets rid of tick | ||
| 12 | PLAY_NOTE_ARRAY(tone_startup, false, 0); | ||
| 13 | #endif | ||
| 14 | |||
| 15 | // // green led on | ||
| 16 | // DDRD |= (1<<5); | ||
| 17 | // PORTD &= ~(1<<5); | ||
| 18 | |||
| 19 | // // orange led on | ||
| 20 | // DDRB |= (1<<0); | ||
| 21 | // PORTB &= ~(1<<0); | ||
| 22 | |||
| 23 | matrix_init_user(); | ||
| 24 | }; | ||
| 25 | |||
| 26 | void shutdown_user(void) { | ||
| 27 | #ifdef AUDIO_ENABLE | ||
| 28 | PLAY_NOTE_ARRAY(tone_goodbye, false, 0); | ||
| 29 | _delay_ms(150); | ||
| 30 | stop_all_notes(); | ||
| 31 | #endif | ||
| 32 | } | ||
diff --git a/keyboards/lets_split/rev2fliphalf/rev2fliphalf.h b/keyboards/lets_split/rev2fliphalf/rev2fliphalf.h new file mode 100644 index 000000000..7dc8e5ba8 --- /dev/null +++ b/keyboards/lets_split/rev2fliphalf/rev2fliphalf.h | |||
| @@ -0,0 +1,28 @@ | |||
| 1 | #ifndef REV2FLIPHALF_H | ||
| 2 | #define REV2FLIPHALF_H | ||
| 3 | |||
| 4 | #include "../lets_split.h" | ||
| 5 | |||
| 6 | //void promicro_bootloader_jmp(bool program); | ||
| 7 | #include "quantum.h" | ||
| 8 | |||
| 9 | //void promicro_bootloader_jmp(bool program); | ||
| 10 | |||
| 11 | #define KEYMAP( \ | ||
| 12 | k00, k01, k02, k03, k04, k05, k40, k41, k42, k43, k44, k45, \ | ||
| 13 | k10, k11, k12, k13, k14, k15, k50, k51, k52, k53, k54, k55, \ | ||
| 14 | k20, k21, k22, k23, k24, k25, k60, k61, k62, k63, k64, k65, \ | ||
| 15 | k30, k31, k32, k33, k34, k35, k70, k71, k72, k73, k74, k75 \ | ||
| 16 | ) \ | ||
| 17 | { \ | ||
| 18 | { k00, k01, k02, k03, k04, k05 }, \ | ||
| 19 | { k10, k11, k12, k13, k14, k15 }, \ | ||
| 20 | { k20, k21, k22, k23, k24, k25 }, \ | ||
| 21 | { k30, k31, k32, k33, k34, k35 }, \ | ||
| 22 | { k40, k41, k42, k43, k44, k45 }, \ | ||
| 23 | { k50, k51, k52, k53, k54, k55 }, \ | ||
| 24 | { k60, k61, k62, k63, k64, k65 }, \ | ||
| 25 | { k70, k71, k72, k73, k74, k75 } \ | ||
| 26 | } | ||
| 27 | |||
| 28 | #endif \ No newline at end of file | ||
diff --git a/keyboards/lets_split/rev2fliphalf/rules.mk b/keyboards/lets_split/rev2fliphalf/rules.mk new file mode 100644 index 000000000..80a942d06 --- /dev/null +++ b/keyboards/lets_split/rev2fliphalf/rules.mk | |||
| @@ -0,0 +1,5 @@ | |||
| 1 | BACKLIGHT_ENABLE = no | ||
| 2 | |||
| 3 | ifndef QUANTUM_DIR | ||
| 4 | include ../../../Makefile | ||
| 5 | endif | ||
diff --git a/keyboards/lets_split/rules.mk b/keyboards/lets_split/rules.mk index 1aee5313c..0dc549130 100644 --- a/keyboards/lets_split/rules.mk +++ b/keyboards/lets_split/rules.mk | |||
| @@ -73,3 +73,13 @@ USE_I2C ?= yes | |||
| 73 | SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend | 73 | SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend |
| 74 | 74 | ||
| 75 | CUSTOM_MATRIX = yes | 75 | CUSTOM_MATRIX = yes |
| 76 | |||
| 77 | avrdude: build | ||
| 78 | ls /dev/tty* > /tmp/1; \ | ||
| 79 | echo "Reset your Pro Micro then hit any key to continue..."; \ | ||
| 80 | read -n 1 -s; \ | ||
| 81 | ls /dev/tty* > /tmp/2; \ | ||
| 82 | USB=`diff /tmp/1 /tmp/2 | grep '>' | sed -e 's/> //'`; \ | ||
| 83 | avrdude -p $(MCU) -c avr109 -P $$USB -U flash:w:$(BUILD_DIR)/$(TARGET).hex | ||
| 84 | |||
| 85 | .PHONY: avrdude | ||
diff --git a/keyboards/planck/keymaps/callum/keymap.c b/keyboards/planck/keymaps/callum/keymap.c index a1254d975..2acd988ea 100644 --- a/keyboards/planck/keymaps/callum/keymap.c +++ b/keyboards/planck/keymaps/callum/keymap.c | |||
| @@ -12,8 +12,6 @@ extern keymap_config_t keymap_config; | |||
| 12 | #define _SYMB 2 | 12 | #define _SYMB 2 |
| 13 | #define _MOUSE 3 | 13 | #define _MOUSE 3 |
| 14 | #define _FUNC 4 | 14 | #define _FUNC 4 |
| 15 | #define CMDLEFT LGUI(KC_LEFT) | ||
| 16 | #define CMDRGHT LGUI(KC_RGHT) | ||
| 17 | #define ENDASH LALT(KC_MINS) | 15 | #define ENDASH LALT(KC_MINS) |
| 18 | #define POUND LALT(KC_3) | 16 | #define POUND LALT(KC_3) |
| 19 | 17 | ||
| @@ -50,7 +48,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 50 | 48 | ||
| 51 | /* MOVE | 49 | /* MOVE |
| 52 | * ,-----------------------------------------------------------------------------------. | 50 | * ,-----------------------------------------------------------------------------------. |
| 53 | * | Esc | | Cmd-L| Up | Cmd-R| | | Cmd-L| Up | Cmd-R| | Esc | | 51 | * | Esc | | Home | Up | End | | | Home | Up | End | | Esc | |
| 54 | * |------+------+------+------+------+------+------+------+------+------+------+------| | 52 | * |------+------+------+------+------+------+------+------+------+------+------+------| |
| 55 | * | Del | Caps | Left | Down | Right| | | Left | Down | Right| Caps | Del | | 53 | * | Del | Caps | Left | Down | Right| | | Left | Down | Right| Caps | Del | |
| 56 | * |------+------+------+------+------+------+------+------+------+------+------+------| | 54 | * |------+------+------+------+------+------+------+------+------+------+------+------| |
| @@ -60,7 +58,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 60 | * `-----------------------------------------------------------------------------------' | 58 | * `-----------------------------------------------------------------------------------' |
| 61 | */ | 59 | */ |
| 62 | [_MOVE] = { | 60 | [_MOVE] = { |
| 63 | {KC_ESC, XXXXXXX, CMDLEFT, KC_UP, CMDRGHT, XXXXXXX, XXXXXXX, CMDLEFT, KC_UP, CMDRGHT, XXXXXXX, KC_ESC }, | 61 | {KC_ESC, XXXXXXX, KC_HOME, KC_UP, KC_END, XXXXXXX, XXXXXXX, KC_HOME, KC_UP, KC_END, XXXXXXX, KC_ESC }, |
| 64 | {KC_DEL, KC_CAPS, KC_LEFT, KC_DOWN, KC_RGHT, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_RGHT, KC_CAPS, KC_DEL }, | 62 | {KC_DEL, KC_CAPS, KC_LEFT, KC_DOWN, KC_RGHT, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_RGHT, KC_CAPS, KC_DEL }, |
| 65 | {_______, XXXXXXX, XXXXXXX, KC_PGUP, KC_PGDN, XXXXXXX, XXXXXXX, KC_PGDN, KC_PGUP, XXXXXXX, XXXXXXX, _______}, | 63 | {_______, XXXXXXX, XXXXXXX, KC_PGUP, KC_PGDN, XXXXXXX, XXXXXXX, KC_PGDN, KC_PGUP, XXXXXXX, XXXXXXX, _______}, |
| 66 | {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} | 64 | {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} |
diff --git a/keyboards/planck/keymaps/callum/readme.md b/keyboards/planck/keymaps/callum/readme.md index f970cd974..71e200b9d 100644 --- a/keyboards/planck/keymaps/callum/readme.md +++ b/keyboards/planck/keymaps/callum/readme.md | |||
| @@ -23,7 +23,7 @@ We have five layers. A `BASE` layer, in colemak; a `MOVE` layer, with an arrow c | |||
| 23 | 23 | ||
| 24 | /* MOVE | 24 | /* MOVE |
| 25 | * ,-----------------------------------------------------------------------------------. | 25 | * ,-----------------------------------------------------------------------------------. |
| 26 | * | Esc | | Cmd-L| Up | Cmd-R| | | Cmd-L| Up | Cmd-R| | Esc | | 26 | * | Esc | | Home | Up | End | | | Home | Up | End | | Esc | |
| 27 | * |------+------+------+------+------+------+------+------+------+------+------+------| | 27 | * |------+------+------+------+------+------+------+------+------+------+------+------| |
| 28 | * | Del | Caps | Left | Down | Right| | | Left | Down | Right| Caps | Del | | 28 | * | Del | Caps | Left | Down | Right| | | Left | Down | Right| Caps | Del | |
| 29 | * |------+------+------+------+------+------+------+------+------+------+------+------| | 29 | * |------+------+------+------+------+------+------+------+------+------+------+------| |
diff --git a/keyboards/planck/keymaps/espynn/Makefile b/keyboards/planck/keymaps/espynn/Makefile new file mode 100644 index 000000000..44a030ba3 --- /dev/null +++ b/keyboards/planck/keymaps/espynn/Makefile | |||
| @@ -0,0 +1,63 @@ | |||
| 1 | #---------------------------------------------------------------------------- | ||
| 2 | # On command line: | ||
| 3 | # | ||
| 4 | # make all = Make software. | ||
| 5 | # | ||
| 6 | # make clean = Clean out built project files. | ||
| 7 | # | ||
| 8 | # make coff = Convert ELF to AVR COFF. | ||
| 9 | # | ||
| 10 | # make extcoff = Convert ELF to AVR Extended COFF. | ||
| 11 | # | ||
| 12 | # make program = Download the hex file to the device. | ||
| 13 | # Please customize your programmer settings(PROGRAM_CMD) | ||
| 14 | # | ||
| 15 | # make teensy = Download the hex file to the device, using teensy_loader_cli. | ||
| 16 | # (must have teensy_loader_cli installed). | ||
| 17 | # | ||
| 18 | # make dfu = Download the hex file to the device, using dfu-programmer (must | ||
| 19 | # have dfu-programmer installed). | ||
| 20 | # | ||
| 21 | # make flip = Download the hex file to the device, using Atmel FLIP (must | ||
| 22 | # have Atmel FLIP installed). | ||
| 23 | # | ||
| 24 | # make dfu-ee = Download the eeprom file to the device, using dfu-programmer | ||
| 25 | # (must have dfu-programmer installed). | ||
| 26 | # | ||
| 27 | # make flip-ee = Download the eeprom file to the device, using Atmel FLIP | ||
| 28 | # (must have Atmel FLIP installed). | ||
| 29 | # | ||
| 30 | # make debug = Start either simulavr or avarice as specified for debugging, | ||
| 31 | # with avr-gdb or avr-insight as the front end for debugging. | ||
| 32 | # | ||
| 33 | # make filename.s = Just compile filename.c into the assembler code only. | ||
| 34 | # | ||
| 35 | # make filename.i = Create a preprocessed source file for use in submitting | ||
| 36 | # bug reports to the GCC project. | ||
| 37 | # | ||
| 38 | # To rebuild project do "make clean" then "make all". | ||
| 39 | #---------------------------------------------------------------------------- | ||
| 40 | |||
| 41 | # Build Options | ||
| 42 | # change to "no" to disable the options, or define them in the makefile.mk in | ||
| 43 | # the appropriate keymap folder that will get included automatically | ||
| 44 | # | ||
| 45 | BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) | ||
| 46 | MOUSEKEY_ENABLE = yes # Mouse keys(+4700) | ||
| 47 | EXTRAKEY_ENABLE = yes # Audio control and System control(+450) | ||
| 48 | CONSOLE_ENABLE = no # Console for debug(+400) | ||
| 49 | COMMAND_ENABLE = yes # Commands for debug and configuration | ||
| 50 | NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work | ||
| 51 | BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality | ||
| 52 | MIDI_ENABLE = no # MIDI controls | ||
| 53 | AUDIO_ENABLE = no # Audio output on port C6 | ||
| 54 | UNICODE_ENABLE = no # Unicode | ||
| 55 | BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID | ||
| 56 | RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. | ||
| 57 | |||
| 58 | # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE | ||
| 59 | SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend | ||
| 60 | |||
| 61 | ifndef QUANTUM_DIR | ||
| 62 | include ../../../../Makefile | ||
| 63 | endif | ||
diff --git a/keyboards/planck/keymaps/espynn/keyboard-layout.jpg b/keyboards/planck/keymaps/espynn/keyboard-layout.jpg new file mode 100644 index 000000000..55e5396bf --- /dev/null +++ b/keyboards/planck/keymaps/espynn/keyboard-layout.jpg | |||
| Binary files differ | |||
diff --git a/keyboards/planck/keymaps/espynn/keymap.c b/keyboards/planck/keymaps/espynn/keymap.c new file mode 100644 index 000000000..4a3fe32b8 --- /dev/null +++ b/keyboards/planck/keymaps/espynn/keymap.c | |||
| @@ -0,0 +1,151 @@ | |||
| 1 | #include "planck.h" | ||
| 2 | #include "action_layer.h" | ||
| 3 | #include "eeconfig.h" | ||
| 4 | #ifdef BACKLIGHT_ENABLE | ||
| 5 | #include "backlight.h" | ||
| 6 | #endif | ||
| 7 | #define PREVENT_STUCK_MODIFIERS | ||
| 8 | extern keymap_config_t keymap_config; | ||
| 9 | |||
| 10 | // Symbolic names for macro IDs. | ||
| 11 | #define _QWERTY 0 // QUERTY layer | ||
| 12 | #define _LOWER 1 // Lower layer | ||
| 13 | #define _RAISE 2 // Raise layer | ||
| 14 | #define _CUSTOM 3 // Custom layer (LOWER + RAISE) | ||
| 15 | #define _BL 4 // Backlight | ||
| 16 | #define _CUS0 5 // Mobile# | ||
| 17 | #define _CUS1 6 // signature | ||
| 18 | #define _CUS2 7 // macro 2 | ||
| 19 | #define _CUS3 8 // macro 3 | ||
| 20 | #define _CUS4 9 // macro 4 | ||
| 21 | #define _CUS5 10 // email | ||
| 22 | #define _COPY 11 // copy | ||
| 23 | #define _PASTE 12 // paste | ||
| 24 | #define _CUT 13 // cut | ||
| 25 | |||
| 26 | // Macro shortcuts. | ||
| 27 | #define QWERTY M(_LOWER) | ||
| 28 | #define LOWER M(_LOWER) | ||
| 29 | #define RAISE M(_RAISE) | ||
| 30 | #define CUSTOM M(_CUSTOM) | ||
| 31 | #define BL M(_BL) | ||
| 32 | #define CUS0 M(_CUS0) | ||
| 33 | #define CUS1 M(_CUS1) | ||
| 34 | #define CUS2 M(_CUS2) | ||
| 35 | #define CUS3 M(_CUS3) | ||
| 36 | #define CUS4 M(_CUS4) | ||
| 37 | #define CUS5 M(_CUS5) | ||
| 38 | #define COPY M(_COPY) | ||
| 39 | #define PASTE M(_PASTE) | ||
| 40 | #define CUT M(_CUT) | ||
| 41 | |||
| 42 | // Func macro definitions. | ||
| 43 | #define LWR_PGDN FUNC(0) // Tap for PgDn, hold for LOWER | ||
| 44 | #define RSE_PGUP FUNC(1) // Tap for PgUp, hold for RAISE | ||
| 45 | #define CTL_CAPS FUNC(2) // Tap for Caps, hold for Ctrl (DOESN'T SEEM TO WORK) | ||
| 46 | #define SFT_ENT FUNC(3) // Tap for Enter, hold for Shift | ||
| 47 | #define ZM_NRM FUNC(4) // Zoom normal | ||
| 48 | #define ZM_IN FUNC(5) // Zoom out | ||
| 49 | #define ZM_OUT FUNC(6) // Zoom in | ||
| 50 | |||
| 51 | // Enable these functions using FUNC(n) macro. | ||
| 52 | const uint16_t PROGMEM fn_actions[] = { | ||
| 53 | [0] = ACTION_LAYER_TAP_KEY(_LOWER, KC_PGDN), | ||
| 54 | [1] = ACTION_LAYER_TAP_KEY(_RAISE, KC_PGUP), | ||
| 55 | [2] = ACTION_MODS_TAP_KEY(MOD_LCTL, KC_CAPS), | ||
| 56 | [3] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_ENT), | ||
| 57 | [4] = ACTION_MODS_KEY(MOD_LCTL, KC_0), | ||
| 58 | [5] = ACTION_MODS_KEY(MOD_LCTL, KC_MINS), | ||
| 59 | [6] = ACTION_MODS_KEY(MOD_LCTL, KC_PLUS), | ||
| 60 | [7] = ACTION_MODS_KEY(MOD_LCTL, KC_UNDS), | ||
| 61 | }; | ||
| 62 | |||
| 63 | // This config can be found at Keyboard layout editor site: http://goo.gl/zjXL2l | ||
| 64 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 65 | [_QWERTY] = { /* QWERTY */ | ||
| 66 | {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, | ||
| 67 | {KC_DEL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT}, | ||
| 68 | {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_ENT}, | ||
| 69 | {KC_LCTL, KC_ESC, KC_LGUI, KC_LALT, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} | ||
| 70 | }, | ||
| 71 | [_LOWER] = { /* LOWER */ | ||
| 72 | {KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL}, | ||
| 73 | {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LPRN, KC_RPRN, KC_LCBR, KC_RCBR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, | ||
| 74 | {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_QUOT, KC_DQT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, | ||
| 75 | {KC_TRNS, ZM_NRM, ZM_IN, ZM_OUT, KC_TRNS, KC_PGDN, KC_PGDN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} | ||
| 76 | }, | ||
| 77 | [_RAISE] = { /* RAISE */ | ||
| 78 | {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12}, | ||
| 79 | {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LCBR, KC_LCBR, KC_BSLS, KC_TRNS}, | ||
| 80 | {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BSLS, KC_PIPE, KC_GRV, KC_TILD, KC_LBRC, KC_LBRC, KC_TRNS, KC_TRNS}, | ||
| 81 | {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_PGUP, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} | ||
| 82 | }, | ||
| 83 | [_CUSTOM] = { /* CUSTOM */ | ||
| 84 | {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, CUS4, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, | ||
| 85 | {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, CUS0, CUS3, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, | ||
| 86 | {KC_TRNS, KC_TRNS, CUT, COPY, PASTE, CUS1, CUS5, CUS2, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, | ||
| 87 | {BL, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} | ||
| 88 | } | ||
| 89 | }; | ||
| 90 | |||
| 91 | // Set a layer persistantly. | ||
| 92 | void persistant_default_layer_set(uint16_t default_layer) { | ||
| 93 | eeconfig_update_default_layer(default_layer); | ||
| 94 | default_layer_set(default_layer); | ||
| 95 | } | ||
| 96 | |||
| 97 | // Macro actions for each corresponding ID. | ||
| 98 | const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) | ||
| 99 | { | ||
| 100 | switch(id) { | ||
| 101 | case _RAISE: // Raised layer. | ||
| 102 | if (record->event.pressed) { | ||
| 103 | layer_on(_RAISE); | ||
| 104 | update_tri_layer(_LOWER, _RAISE, _CUSTOM); | ||
| 105 | } else { | ||
| 106 | layer_off(_RAISE); | ||
| 107 | update_tri_layer(_LOWER, _RAISE, _CUSTOM); | ||
| 108 | } | ||
| 109 | break; | ||
| 110 | case _LOWER: // Lowered layer. | ||
| 111 | if (record->event.pressed) { | ||
| 112 | layer_on(_LOWER); | ||
| 113 | update_tri_layer(_LOWER, _RAISE, _CUSTOM); | ||
| 114 | } else { | ||
| 115 | layer_off(_LOWER); | ||
| 116 | update_tri_layer(_LOWER, _RAISE, _CUSTOM); | ||
| 117 | } | ||
| 118 | break; | ||
| 119 | case _BL: // Backlight | ||
| 120 | if (record->event.pressed) { | ||
| 121 | register_code(KC_RSFT); | ||
| 122 | #ifdef BACKLIGHT_ENABLE | ||
| 123 | backlight_step(); | ||
| 124 | #endif | ||
| 125 | } else { | ||
| 126 | unregister_code(KC_RSFT); | ||
| 127 | } | ||
| 128 | break; | ||
| 129 | case _CUS0: // enter your mobile# here | ||
| 130 | return MACRODOWN(T(9), T(9), T(9), T(MINS),T(9), T(9), T(9), T(MINS),T(9), T(9), T(9), T(9),END); | ||
| 131 | case _CUS1: // signature line for email | ||
| 132 | return MACRODOWN(T(ENT), T(ENT), T(MINS), T(J), T(W), END); | ||
| 133 | case _CUS2: // Custom macro 2 | ||
| 134 | return MACRODOWN( DOWN(KC_LSFT), TYPE(KC_L), UP(KC_LSFT), END ); | ||
| 135 | case _CUS3: // custom macro 3 | ||
| 136 | return MACRODOWN( DOWN(KC_LSFT), TYPE(KC_F), UP(KC_LSFT), END ); | ||
| 137 | case _CUS4: // custom macro 4 | ||
| 138 | return MACRODOWN( DOWN(KC_LSFT), TYPE(KC_I), UP(KC_LSFT), END ); | ||
| 139 | case _CUS5: // Enter your email here | ||
| 140 | return MACRODOWN( TYPE(KC_F), | ||
| 141 | DOWN(KC_LSFT), TYPE(KC_2), UP(KC_LSFT), | ||
| 142 | TYPE(KC_G), TYPE(KC_M), TYPE(KC_A), TYPE(KC_I), TYPE(KC_L), TYPE(KC_DOT), TYPE(KC_C), TYPE(KC_O), TYPE(KC_M), END ); | ||
| 143 | case _CUT: //cut macro | ||
| 144 | return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_X), UP(KC_LCTL), END ); | ||
| 145 | case _COPY: // copy macro | ||
| 146 | return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_C), UP(KC_LCTL), END ); | ||
| 147 | case _PASTE: // paste macro | ||
| 148 | return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_V), UP(KC_LCTL), END ); | ||
| 149 | }; | ||
| 150 | return MACRO_NONE; | ||
| 151 | } \ No newline at end of file | ||
diff --git a/keyboards/planck/keymaps/espynn/layout.json b/keyboards/planck/keymaps/espynn/layout.json new file mode 100644 index 000000000..38ccc3452 --- /dev/null +++ b/keyboards/planck/keymaps/espynn/layout.json | |||
| @@ -0,0 +1,271 @@ | |||
| 1 | [ | ||
| 2 | { | ||
| 3 | "backcolor": "#858585", | ||
| 4 | "name": "Planck 40%", | ||
| 5 | "author": "James Folkert", | ||
| 6 | "background": { | ||
| 7 | "name": "Aluminium brushed", | ||
| 8 | "style": "background-image: url('/bg/metal/aluminum_texture1642.jpg');" | ||
| 9 | }, | ||
| 10 | "switchMount": "cherry", | ||
| 11 | "switchBrand": "cherry", | ||
| 12 | "switchType": "MX1A-A1xx", | ||
| 13 | "pcb": true, | ||
| 14 | "plate": true | ||
| 15 | }, | ||
| 16 | [ | ||
| 17 | { | ||
| 18 | "fa": [ | ||
| 19 | 2, | ||
| 20 | 2, | ||
| 21 | 0, | ||
| 22 | 2 | ||
| 23 | ] | ||
| 24 | }, | ||
| 25 | "F1\n1\n\n!\n\n\n\n\n\n<i class='kb kb-Tab-2'></i>", | ||
| 26 | "F2\n2\n\n@\n\n\n\n\n\nQ", | ||
| 27 | "F3\n3\n\n#\n\n\n\n\n\nW", | ||
| 28 | "F4\n4\n\n$\n\n\n\n\n\nE", | ||
| 29 | "F5\n5\n\n%\n\n\n\n\n\nR", | ||
| 30 | "F6\n6\n\n^\n\n\n\n\n\nT", | ||
| 31 | "F7\n6\n\n&\n\n\n\n\n\nY", | ||
| 32 | "F8\n8\n\n*\nMacro4\n\n\n\n\nU", | ||
| 33 | "F9\n9\n\n(\n\n\n\n\n\nI", | ||
| 34 | { | ||
| 35 | "fa": [ | ||
| 36 | 0, | ||
| 37 | 0, | ||
| 38 | 0, | ||
| 39 | 2 | ||
| 40 | ] | ||
| 41 | }, | ||
| 42 | "F10\n0\n\n)\n\n\n\n\n\nO", | ||
| 43 | { | ||
| 44 | "fa": [ | ||
| 45 | 2, | ||
| 46 | 2, | ||
| 47 | 0, | ||
| 48 | 2 | ||
| 49 | ] | ||
| 50 | }, | ||
| 51 | "F11\n-\n\n_\n\n\n\n\n\nP", | ||
| 52 | "F12\n=\n\n+\n\n\n\n\n\n<i class='kb kb-Unicode-BackSpace-DeleteLeft-Big'></i>" | ||
| 53 | ], | ||
| 54 | [ | ||
| 55 | { | ||
| 56 | "a": 7, | ||
| 57 | "f": 3 | ||
| 58 | }, | ||
| 59 | "<i class='mss mss-Unicode-DeleteRight-Big-2'></i>", | ||
| 60 | { | ||
| 61 | "f": 3 | ||
| 62 | }, | ||
| 63 | "A", | ||
| 64 | { | ||
| 65 | "f": 3 | ||
| 66 | }, | ||
| 67 | "S", | ||
| 68 | { | ||
| 69 | "f": 3 | ||
| 70 | }, | ||
| 71 | "D", | ||
| 72 | { | ||
| 73 | "t": "#ff0000", | ||
| 74 | "a": 4, | ||
| 75 | "f": 3 | ||
| 76 | }, | ||
| 77 | "\n(\n\n\n\n\n\n\n\nF", | ||
| 78 | { | ||
| 79 | "t": "#000000", | ||
| 80 | "f": 3 | ||
| 81 | }, | ||
| 82 | "\n)\n\n\n\n\n\n\n\nG", | ||
| 83 | { | ||
| 84 | "f": 3 | ||
| 85 | }, | ||
| 86 | "\n{\n\n\nMacro0\n\n\n\n\nH", | ||
| 87 | { | ||
| 88 | "t": "#ff0000", | ||
| 89 | "f": 3 | ||
| 90 | }, | ||
| 91 | "\n}\n\n\nMacro3\n\n\n\n\nJ", | ||
| 92 | { | ||
| 93 | "t": "#000000", | ||
| 94 | "f": 3 | ||
| 95 | }, | ||
| 96 | "{\n\n\n\n\n\n\n\n\nK", | ||
| 97 | { | ||
| 98 | "f": 3 | ||
| 99 | }, | ||
| 100 | "{\n\n\n\n\n\n\n\n\nL", | ||
| 101 | { | ||
| 102 | "fa": [ | ||
| 103 | 2, | ||
| 104 | 2, | ||
| 105 | 2, | ||
| 106 | 2, | ||
| 107 | 0, | ||
| 108 | 0, | ||
| 109 | 0, | ||
| 110 | 2 | ||
| 111 | ] | ||
| 112 | }, | ||
| 113 | "\\\n\n|\n\n\n\n\n:\n\n;", | ||
| 114 | { | ||
| 115 | "a": 7, | ||
| 116 | "fa": [ | ||
| 117 | 9 | ||
| 118 | ] | ||
| 119 | }, | ||
| 120 | "<i class='mss mss-Unicode-Enter-3'></i>" | ||
| 121 | ], | ||
| 122 | [ | ||
| 123 | { | ||
| 124 | "f": 3 | ||
| 125 | }, | ||
| 126 | "Shift", | ||
| 127 | { | ||
| 128 | "f": 3 | ||
| 129 | }, | ||
| 130 | "Z", | ||
| 131 | { | ||
| 132 | "f": 3 | ||
| 133 | }, | ||
| 134 | "X\n\n\n\nCut", | ||
| 135 | { | ||
| 136 | "f": 3 | ||
| 137 | }, | ||
| 138 | "C\n\n\n\nCopy", | ||
| 139 | { | ||
| 140 | "a": 4, | ||
| 141 | "fa": [ | ||
| 142 | 2, | ||
| 143 | 2, | ||
| 144 | 2, | ||
| 145 | 2 | ||
| 146 | ] | ||
| 147 | }, | ||
| 148 | "\\\n[\n|\n{\nPaste\n\n\n\n\nV", | ||
| 149 | "|\n]\n\n}\nMacro1\n\n\n\n\nB", | ||
| 150 | "`\n'\n~\n\"\nMacro5\n\n\n\n\nN", | ||
| 151 | "~\n\"\n\n\nMacro2\n\n\n\n\nM", | ||
| 152 | { | ||
| 153 | "fa": [ | ||
| 154 | 2, | ||
| 155 | 2, | ||
| 156 | 2, | ||
| 157 | 2, | ||
| 158 | 0, | ||
| 159 | 0, | ||
| 160 | 0, | ||
| 161 | 1 | ||
| 162 | ] | ||
| 163 | }, | ||
| 164 | "[\n\n{\n\n\n\n\n<\n\n,", | ||
| 165 | "[\n\n{\n\n\n\n\n\n\n.", | ||
| 166 | { | ||
| 167 | "a": 6 | ||
| 168 | }, | ||
| 169 | "\n\n?\n\n\n\n\n\n/", | ||
| 170 | { | ||
| 171 | "a": 4, | ||
| 172 | "fa": [ | ||
| 173 | 2, | ||
| 174 | 2, | ||
| 175 | 2, | ||
| 176 | 0, | ||
| 177 | 0, | ||
| 178 | 0, | ||
| 179 | 0, | ||
| 180 | 1, | ||
| 181 | 9, | ||
| 182 | 0 | ||
| 183 | ] | ||
| 184 | }, | ||
| 185 | "\n\n\n<i class='kb kb-Arrows-Bottom-4'></i>Shift\n\n\n\n\n<i class='mss mss-Unicode-Enter-3'></i>\n\n<i class='kb kb-Arrows-Bottom-4'></i>Shift" | ||
| 186 | ], | ||
| 187 | [ | ||
| 188 | { | ||
| 189 | "a": 7, | ||
| 190 | "f": 3 | ||
| 191 | }, | ||
| 192 | "Ctrl\n\n\n\nBLight", | ||
| 193 | { | ||
| 194 | "a": 4, | ||
| 195 | "fa": [ | ||
| 196 | 2, | ||
| 197 | 1, | ||
| 198 | 2, | ||
| 199 | 0, | ||
| 200 | 0, | ||
| 201 | 0, | ||
| 202 | 0, | ||
| 203 | 1, | ||
| 204 | 9, | ||
| 205 | 9 | ||
| 206 | ] | ||
| 207 | }, | ||
| 208 | "\nZNorm\n\n\nRESET\n\n\n\n\n<i class='mss mss-Unicode-Escape-3'></i>", | ||
| 209 | { | ||
| 210 | "fa": [ | ||
| 211 | 2, | ||
| 212 | 1, | ||
| 213 | 2, | ||
| 214 | 0, | ||
| 215 | 0, | ||
| 216 | 0, | ||
| 217 | 0, | ||
| 218 | 1, | ||
| 219 | 9, | ||
| 220 | 6 | ||
| 221 | ] | ||
| 222 | }, | ||
| 223 | "\nZIn\n\n\n\n\n\n\n\n<i class='kb kb-logo-windows-8'></i>", | ||
| 224 | { | ||
| 225 | "fa": [ | ||
| 226 | 2, | ||
| 227 | 1, | ||
| 228 | 2, | ||
| 229 | 0, | ||
| 230 | 0, | ||
| 231 | 0, | ||
| 232 | 0, | ||
| 233 | 1, | ||
| 234 | 9, | ||
| 235 | 9 | ||
| 236 | ] | ||
| 237 | }, | ||
| 238 | "\nZOut\n\n\n\n\n\n\n\n<i class='kb kb-Unicode-Alternate-1'></i>", | ||
| 239 | { | ||
| 240 | "a": 7, | ||
| 241 | "fa": [ | ||
| 242 | 9 | ||
| 243 | ] | ||
| 244 | }, | ||
| 245 | "⇓", | ||
| 246 | { | ||
| 247 | "a": 4, | ||
| 248 | "fa": [ | ||
| 249 | 9, | ||
| 250 | 5, | ||
| 251 | 5 | ||
| 252 | ], | ||
| 253 | "w": 2 | ||
| 254 | }, | ||
| 255 | "\n<i class='kb kb-Unicode-Page-Down-3'></i>\n<i class='kb kb-Unicode-Page-Up-3'></i>", | ||
| 256 | { | ||
| 257 | "a": 7 | ||
| 258 | }, | ||
| 259 | "⇑", | ||
| 260 | { | ||
| 261 | "a": 4, | ||
| 262 | "fa": [ | ||
| 263 | 2 | ||
| 264 | ] | ||
| 265 | }, | ||
| 266 | "<i class='kb kb-Multimedia-FastForward-End'></i>\n\n\n\n\n\n\n\n\n←", | ||
| 267 | "<i class='kb kb-Multimedia-Volume-Down-1'></i>\n\n\n\n\n\n\n\n\n↓", | ||
| 268 | "<i class='kb kb-Multimedia-Volume-Up-1'></i>\n\n\n\n\n\n\n\n\n↑", | ||
| 269 | "<i class='kb kb-Multimedia-Play-Pause'></i>\n\n\n\n\n\n\n\n\n→" | ||
| 270 | ] | ||
| 271 | ] \ No newline at end of file | ||
diff --git a/keyboards/planck/keymaps/espynn/readme.md b/keyboards/planck/keymaps/espynn/readme.md new file mode 100644 index 000000000..8882f4601 --- /dev/null +++ b/keyboards/planck/keymaps/espynn/readme.md | |||
| @@ -0,0 +1,18 @@ | |||
| 1 | # Espynn's keymap for Planck Ortholinear 40% Mechanical Keyboard | ||
| 2 | Created by James Folkert: https://twitter.com/trekloFsemaJ | ||
| 3 | Added several custom functions to the keymap from the "ab" map. Special thanks to "mollat" for demonstration of macros in their keymap.c | ||
| 4 | |||
| 5 | |||
| 6 |  | ||
| 7 | |||
| 8 | |||
| 9 | * Online keyboard layout editor: http://www.keyboard-layout-editor.com/ | ||
| 10 | * [JSON of raw layout] (layout.json "JSON of raw layout") | ||
| 11 | |||
| 12 | # Notes | ||
| 13 | * Simultaneous RAISE+LOWER enters CUSTOM layer. Several custom keymaps are here | ||
| 14 | * I disregarded the advice of Jack and used macros for passwords. I accept my fate. These have been abstracted to macros 2, 3, and 4 | ||
| 15 | * add your mobile and email to the keymap before make | ||
| 16 | * RAISE and LOWER also acts as PgUp and PgDn when tapped. | ||
| 17 | * [CapsLock] also acts as [Ctrl] key when you press and hold. It is convenient for GNU Emacs users. (not sure if this works) | ||
| 18 | * Bracket/ paran/ brace keys are placed in the center of the keyboard for programmer's convenience. \ No newline at end of file | ||
diff --git a/keyboards/planck/keymaps/smt/Makefile b/keyboards/planck/keymaps/smt/Makefile new file mode 100644 index 000000000..457a3d01d --- /dev/null +++ b/keyboards/planck/keymaps/smt/Makefile | |||
| @@ -0,0 +1,3 @@ | |||
| 1 | ifndef QUANTUM_DIR | ||
| 2 | include ../../../../Makefile | ||
| 3 | endif | ||
diff --git a/keyboards/planck/keymaps/smt/keymap.c b/keyboards/planck/keymaps/smt/keymap.c new file mode 100644 index 000000000..51e5a40bf --- /dev/null +++ b/keyboards/planck/keymaps/smt/keymap.c | |||
| @@ -0,0 +1,229 @@ | |||
| 1 | #include "planck.h" | ||
| 2 | #include "action_layer.h" | ||
| 3 | #ifdef AUDIO_ENABLE | ||
| 4 | #include "audio.h" | ||
| 5 | #endif | ||
| 6 | #include "eeconfig.h" | ||
| 7 | |||
| 8 | extern keymap_config_t keymap_config; | ||
| 9 | |||
| 10 | // Each layer gets a name for readability, which is then used in the keymap matrix below. | ||
| 11 | // The underscores don't mean anything - you can have a layer called STUFF or any other name. | ||
| 12 | // Layer names don't all need to be of the same length, obviously, and you can also skip them | ||
| 13 | // entirely and just use numbers. | ||
| 14 | #define _DVORAK 0 | ||
| 15 | #define _QWERTY 1 | ||
| 16 | #define _LOWER 2 | ||
| 17 | #define _RAISE 3 | ||
| 18 | #define _ADJUST 16 | ||
| 19 | |||
| 20 | enum planck_keycodes { | ||
| 21 | DVORAK = SAFE_RANGE, | ||
| 22 | QWERTY, | ||
| 23 | LOWER, | ||
| 24 | RAISE, | ||
| 25 | BACKLIT | ||
| 26 | }; | ||
| 27 | |||
| 28 | // Fillers to make layering more clear | ||
| 29 | #define _______ KC_TRNS | ||
| 30 | #define XXXXXXX KC_NO | ||
| 31 | |||
| 32 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 33 | |||
| 34 | /* Dvorak | ||
| 35 | * ,-----------------------------------------------------------------------------------. | ||
| 36 | * | Tab | " | , | . | P | Y | F | G | C | R | L | Bksp | | ||
| 37 | * |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 38 | * | Esc | A | O | E | U | I | D | H | T | N | S | - | | ||
| 39 | * |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 40 | * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | | ||
| 41 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 42 | * | ` | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | | ||
| 43 | * `-----------------------------------------------------------------------------------' | ||
| 44 | */ | ||
| 45 | [_DVORAK] = { | ||
| 46 | {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, | ||
| 47 | {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS}, | ||
| 48 | {SFT_T(KC_ESC), KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, SFT_T(KC_ENT)}, | ||
| 49 | {ALL_T(KC_GRV), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} | ||
| 50 | }, | ||
| 51 | |||
| 52 | /* Qwerty | ||
| 53 | * ,-----------------------------------------------------------------------------------. | ||
| 54 | * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | | ||
| 55 | * |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 56 | * | Esc | A | S | D | F | G | H | J | K | L | ; | " | | ||
| 57 | * |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 58 | * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | | ||
| 59 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 60 | * | ` | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | | ||
| 61 | * `-----------------------------------------------------------------------------------' | ||
| 62 | */ | ||
| 63 | [_QWERTY] = { | ||
| 64 | {_______, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, | ||
| 65 | {_______, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, | ||
| 66 | {_______, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, _______}, | ||
| 67 | {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} | ||
| 68 | }, | ||
| 69 | |||
| 70 | /* Lower | ||
| 71 | * ,-----------------------------------------------------------------------------------. | ||
| 72 | * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del | | ||
| 73 | * |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 74 | * | | F1 | F2 | F3 | F4 | F5 | F6 | 4 | 5 | 6 | Home |PageUp| | ||
| 75 | * |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 76 | * | | F7 | F8 | F9 | F10 | F11 | F12 | 1 | 2 | 3 | End |PageDn| | ||
| 77 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 78 | * | | | | | | | | Next | Vol- | Vol+ | Play | | ||
| 79 | * `-----------------------------------------------------------------------------------' | ||
| 80 | */ | ||
| 81 | [_LOWER] = { | ||
| 82 | {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL}, | ||
| 83 | {_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_4, KC_5, KC_6, KC_HOME, KC_PGUP}, | ||
| 84 | {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_1, KC_2, KC_3, KC_END, KC_PGDN}, | ||
| 85 | {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} | ||
| 86 | }, | ||
| 87 | |||
| 88 | /* Raise | ||
| 89 | * ,-----------------------------------------------------------------------------------. | ||
| 90 | * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del | | ||
| 91 | * |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 92 | * | | | | | | | _ | ? | + | { | } | | | | ||
| 93 | * |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 94 | * | | | | | | | - | / | = | [ | ] | \ | | ||
| 95 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 96 | * | | | | | | | | Next | Vol- | Vol+ | Play | | ||
| 97 | * `-----------------------------------------------------------------------------------' | ||
| 98 | */ | ||
| 99 | [_RAISE] = { | ||
| 100 | {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL}, | ||
| 101 | {_______, _______, _______, _______, _______, _______, KC_UNDS, KC_QUES, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, | ||
| 102 | {_______, _______, _______, _______, _______, _______, KC_MINS, KC_SLSH, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, | ||
| 103 | {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} | ||
| 104 | }, | ||
| 105 | |||
| 106 | /* Adjust (Lower + Raise) | ||
| 107 | * ,-----------------------------------------------------------------------------------. | ||
| 108 | * | | Reset| | | | | | | | | | Del | | ||
| 109 | * |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 110 | * | | | |Aud on|Audoff|AGnorm|AGswap|Dvorak|Qwerty| | | | | ||
| 111 | * |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 112 | * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | | | ||
| 113 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 114 | * | | | | | | | | | | | | | ||
| 115 | * `-----------------------------------------------------------------------------------' | ||
| 116 | */ | ||
| 117 | [_ADJUST] = { | ||
| 118 | {_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL}, | ||
| 119 | {_______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, DVORAK, QWERTY, _______, _______, _______}, | ||
| 120 | {_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______}, | ||
| 121 | {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} | ||
| 122 | } | ||
| 123 | |||
| 124 | |||
| 125 | }; | ||
| 126 | |||
| 127 | #ifdef AUDIO_ENABLE | ||
| 128 | |||
| 129 | float tone_startup[][2] = SONG(STARTUP_SOUND); | ||
| 130 | float tone_qwerty[][2] = SONG(QWERTY_SOUND); | ||
| 131 | float tone_dvorak[][2] = SONG(DVORAK_SOUND); | ||
| 132 | float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); | ||
| 133 | |||
| 134 | float tone_goodbye[][2] = SONG(GOODBYE_SOUND); | ||
| 135 | #endif | ||
| 136 | |||
| 137 | |||
| 138 | void persistant_default_layer_set(uint16_t default_layer) { | ||
| 139 | eeconfig_update_default_layer(default_layer); | ||
| 140 | default_layer_set(default_layer); | ||
| 141 | } | ||
| 142 | |||
| 143 | bool process_record_user(uint16_t keycode, keyrecord_t *record) { | ||
| 144 | switch (keycode) { | ||
| 145 | case DVORAK: | ||
| 146 | if (record->event.pressed) { | ||
| 147 | #ifdef AUDIO_ENABLE | ||
| 148 | PLAY_NOTE_ARRAY(tone_dvorak, false, 0); | ||
| 149 | #endif | ||
| 150 | persistant_default_layer_set(1UL<<_DVORAK); | ||
| 151 | } | ||
| 152 | return false; | ||
| 153 | break; | ||
| 154 | case QWERTY: | ||
| 155 | if (record->event.pressed) { | ||
| 156 | #ifdef AUDIO_ENABLE | ||
| 157 | PLAY_NOTE_ARRAY(tone_qwerty, false, 0); | ||
| 158 | #endif | ||
| 159 | persistant_default_layer_set(1UL<<_QWERTY); | ||
| 160 | } | ||
| 161 | return false; | ||
| 162 | break; | ||
| 163 | case LOWER: | ||
| 164 | if (record->event.pressed) { | ||
| 165 | layer_on(_LOWER); | ||
| 166 | update_tri_layer(_LOWER, _RAISE, _ADJUST); | ||
| 167 | } else { | ||
| 168 | layer_off(_LOWER); | ||
| 169 | update_tri_layer(_LOWER, _RAISE, _ADJUST); | ||
| 170 | } | ||
| 171 | return false; | ||
| 172 | break; | ||
| 173 | case RAISE: | ||
| 174 | if (record->event.pressed) { | ||
| 175 | layer_on(_RAISE); | ||
| 176 | update_tri_layer(_LOWER, _RAISE, _ADJUST); | ||
| 177 | } else { | ||
| 178 | layer_off(_RAISE); | ||
| 179 | update_tri_layer(_LOWER, _RAISE, _ADJUST); | ||
| 180 | } | ||
| 181 | return false; | ||
| 182 | break; | ||
| 183 | case BACKLIT: | ||
| 184 | if (record->event.pressed) { | ||
| 185 | register_code(KC_RSFT); | ||
| 186 | #ifdef BACKLIGHT_ENABLE | ||
| 187 | backlight_step(); | ||
| 188 | #endif | ||
| 189 | } else { | ||
| 190 | unregister_code(KC_RSFT); | ||
| 191 | } | ||
| 192 | return false; | ||
| 193 | break; | ||
| 194 | } | ||
| 195 | return true; | ||
| 196 | } | ||
| 197 | |||
| 198 | void matrix_init_user(void) { | ||
| 199 | #ifdef AUDIO_ENABLE | ||
| 200 | startup_user(); | ||
| 201 | #endif | ||
| 202 | } | ||
| 203 | |||
| 204 | #ifdef AUDIO_ENABLE | ||
| 205 | |||
| 206 | void startup_user() | ||
| 207 | { | ||
| 208 | _delay_ms(20); // gets rid of tick | ||
| 209 | PLAY_NOTE_ARRAY(tone_startup, false, 0); | ||
| 210 | } | ||
| 211 | |||
| 212 | void shutdown_user() | ||
| 213 | { | ||
| 214 | PLAY_NOTE_ARRAY(tone_goodbye, false, 0); | ||
| 215 | _delay_ms(150); | ||
| 216 | stop_all_notes(); | ||
| 217 | } | ||
| 218 | |||
| 219 | void music_on_user(void) | ||
| 220 | { | ||
| 221 | music_scale_user(); | ||
| 222 | } | ||
| 223 | |||
| 224 | void music_scale_user(void) | ||
| 225 | { | ||
| 226 | PLAY_NOTE_ARRAY(music_scale, false, 0); | ||
| 227 | } | ||
| 228 | |||
| 229 | #endif | ||
diff --git a/keyboards/planck/keymaps/smt/readme.md b/keyboards/planck/keymaps/smt/readme.md new file mode 100644 index 000000000..0e955a574 --- /dev/null +++ b/keyboards/planck/keymaps/smt/readme.md | |||
| @@ -0,0 +1,103 @@ | |||
| 1 | # smt's Planck keymap | ||
| 2 | |||
| 3 | This keymap is primarily based on the default Planck keymap. | ||
| 4 | |||
| 5 | Notable differences from the default are: | ||
| 6 | |||
| 7 | 1. **Dvorak by default** | ||
| 8 | |||
| 9 | I happen to type in Dvorak, and prefer that layer to be the default on my keyboard. This is easy enough to switch around with Qwerty, Colemak, or whatever. | ||
| 10 | |||
| 11 | 2. **Right Shift** | ||
| 12 | |||
| 13 | I use both the left and right shift keys when I type. When I want to modify a key with shift, I hold shift with the hand opposite the one typing the key. In the default keymap, Enter is where shift would be on a standard keyboard layout. Oh, muscle memory. | ||
| 14 | |||
| 15 | Thankfully, QMK supports [mod-tap](https://github.com/jackhumbert/qmk_firmware/wiki#fun-with-modifier-keys) keys, and this allows me to set the Enter key to send a modifier (MOD_LSFT) when held, and KC_ENT when tapped. Awesome! | ||
| 16 | |||
| 17 | 3. Escape | ||
| 18 | |||
| 19 | I am experimenting with using Left Shift as a mod-tap key for Escape, similar to how I use the Enter key. It's set up like this on my Minivan, so in the interest of consistency... | ||
| 20 | |||
| 21 | 4. Backtick | ||
| 22 | |||
| 23 | I don't currently have LEDs on any of my keyboards, and even if I did, I don't think I would want their controls on a base layer. | ||
| 24 | |||
| 25 | So, why use backtick in the lower left corner? I use it as my tmux prefix key, so I need to type it more frequently than most people. Putting it on the base layer works well for me. | ||
| 26 | |||
| 27 | ## Dvorak (default) | ||
| 28 | |||
| 29 | ``` | ||
| 30 | ,-----------------------------------------------------------------------------------. | ||
| 31 | | Tab | " | , | . | P | Y | F | G | C | R | L | Bksp | | ||
| 32 | |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 33 | | Esc | A | O | E | U | I | D | H | T | N | S | - | | ||
| 34 | |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 35 | | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | | ||
| 36 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 37 | | ` | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | | ||
| 38 | `-----------------------------------------------------------------------------------' | ||
| 39 | ``` | ||
| 40 | |||
| 41 | ## Qwerty (same as default) | ||
| 42 | |||
| 43 | ``` | ||
| 44 | ,-----------------------------------------------------------------------------------. | ||
| 45 | | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | | ||
| 46 | |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 47 | | Esc | A | S | D | F | G | H | J | K | L | ; | " | | ||
| 48 | |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 49 | | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | | ||
| 50 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 51 | | ` | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | | ||
| 52 | `-----------------------------------------------------------------------------------' | ||
| 53 | ``` | ||
| 54 | |||
| 55 | ## Lower | ||
| 56 | |||
| 57 | This is where I put the number row, a numpad cluster, function keys, and some light navigation via Home/End/PageUp/PageDn. Like the "Raise" layer, the top row is redundant to help with Planck compatibility. | ||
| 58 | |||
| 59 | ``` | ||
| 60 | ,-----------------------------------------------------------------------------------. | ||
| 61 | | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del | | ||
| 62 | |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 63 | | | F1 | F2 | F3 | F4 | F5 | F6 | 4 | 5 | 6 | Home |PageUp| | ||
| 64 | |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 65 | | | F7 | F8 | F9 | F10 | F11 | F12 | 1 | 2 | 3 | End |PageDn| | ||
| 66 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 67 | | | | | | | | | Next | Vol- | Vol+ | Play | | ||
| 68 | `-----------------------------------------------------------------------------------' | ||
| 69 | ``` | ||
| 70 | |||
| 71 | ## Raise | ||
| 72 | |||
| 73 | As a developer, it makes the most sense for me to group all the commonly-used symbols that don't fit on the main layer. In particular, having the dual-column of parens-braces-brackets really helps a lot. | ||
| 74 | |||
| 75 | I haven't completely filled this layer, which leaves room for future mappings and macros. | ||
| 76 | |||
| 77 | ``` | ||
| 78 | ,-----------------------------------------------------------------------------------. | ||
| 79 | | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del | | ||
| 80 | |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 81 | | | | | | | | _ | ? | + | { | } | | | | ||
| 82 | |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 83 | | | | | | | | - | / | = | [ | ] | \ | | ||
| 84 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 85 | | | | | | | | | Next | Vol- | Vol+ | Play | | ||
| 86 | `-----------------------------------------------------------------------------------' | ||
| 87 | ``` | ||
| 88 | |||
| 89 | ## Adjust (Lower + Raise) | ||
| 90 | |||
| 91 | Utility layer. This is where I'd switch to Qwerty, or ~~fool around with~~ adjust the audio/music settings. | ||
| 92 | |||
| 93 | ``` | ||
| 94 | ,-----------------------------------------------------------------------------------. | ||
| 95 | | | Reset| | | | | | | | | | Del | | ||
| 96 | |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 97 | | | | |Aud on|AudOff|AGnorm|AGswap|Dvorak|Qwerty| | | | | ||
| 98 | |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 99 | | |Voice-|Voice+|Mus on|MusOff|MidiOn|MidOff| | | | | | | ||
| 100 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 101 | | | | | | | | | | | | | | ||
| 102 | `-----------------------------------------------------------------------------------' | ||
| 103 | ``` | ||
diff --git a/keyboards/planck/keymaps/yale/Makefile b/keyboards/planck/keymaps/yale/Makefile new file mode 100644 index 000000000..581e08cd0 --- /dev/null +++ b/keyboards/planck/keymaps/yale/Makefile | |||
| @@ -0,0 +1,25 @@ | |||
| 1 | |||
| 2 | |||
| 3 | # Build Options | ||
| 4 | # change to "no" to disable the options, or define them in the Makefile in | ||
| 5 | # the appropriate keymap folder that will get included automatically | ||
| 6 | # | ||
| 7 | BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) | ||
| 8 | MOUSEKEY_ENABLE = yes # Mouse keys(+4700) | ||
| 9 | EXTRAKEY_ENABLE = yes # Audio control and System control(+450) | ||
| 10 | CONSOLE_ENABLE = no # Console for debug(+400) | ||
| 11 | COMMAND_ENABLE = yes # Commands for debug and configuration | ||
| 12 | NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work | ||
| 13 | BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality | ||
| 14 | MIDI_ENABLE = no # MIDI controls | ||
| 15 | AUDIO_ENABLE = yes # Audio output on port C6 | ||
| 16 | UNICODE_ENABLE = no # Unicode | ||
| 17 | BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID | ||
| 18 | RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. | ||
| 19 | |||
| 20 | # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE | ||
| 21 | SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend | ||
| 22 | |||
| 23 | ifndef QUANTUM_DIR | ||
| 24 | include ../../../../Makefile | ||
| 25 | endif \ No newline at end of file | ||
diff --git a/keyboards/planck/keymaps/yale/config.h b/keyboards/planck/keymaps/yale/config.h new file mode 100644 index 000000000..8a916bbd0 --- /dev/null +++ b/keyboards/planck/keymaps/yale/config.h | |||
| @@ -0,0 +1,11 @@ | |||
| 1 | #ifndef CONFIG_USER_H | ||
| 2 | #define CONFIG_USER_H | ||
| 3 | |||
| 4 | #include "../../config.h" | ||
| 5 | |||
| 6 | #define PREVENT_STUCK_MODIFIERS | ||
| 7 | |||
| 8 | #endif | ||
| 9 | |||
| 10 | |||
| 11 | |||
diff --git a/keyboards/planck/keymaps/yale/keymap.c b/keyboards/planck/keymaps/yale/keymap.c new file mode 100644 index 000000000..f2280778a --- /dev/null +++ b/keyboards/planck/keymaps/yale/keymap.c | |||
| @@ -0,0 +1,108 @@ | |||
| 1 | // This is the canonical layout file for the Quantum project. If you want to add another keyboard, | ||
| 2 | // this is the style you want to emulate. | ||
| 3 | // | ||
| 4 | |||
| 5 | #include "planck.h" | ||
| 6 | #ifdef BACKLIGHT_ENABLE | ||
| 7 | #include "backlight.h" | ||
| 8 | #endif | ||
| 9 | |||
| 10 | // Each layer gets a name for readability, which is then used in the keymap matrix below. | ||
| 11 | // The underscores don't mean anything - you can have a layer called STUFF or any other name. | ||
| 12 | // Layer names don't all need to be of the same length, obviously, and you can also skip them | ||
| 13 | // entirely and just use numbers. | ||
| 14 | #define _QWERTY 0 | ||
| 15 | #define _NUM 5 | ||
| 16 | #define _FUNC 6 | ||
| 17 | #define _NAV 7 | ||
| 18 | |||
| 19 | // Fillers to make layering more clear | ||
| 20 | #define _______ KC_TRNS | ||
| 21 | #define XXXXXXX KC_NO | ||
| 22 | |||
| 23 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 24 | |||
| 25 | /* _QWERTY | ||
| 26 | * ,-----------------------------------------------------------------------------------. | ||
| 27 | * | Esc | Q | W | E | R | T | Y | U | I | O | P | Bksp | | ||
| 28 | * |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 29 | * |Ctrl/Tab| A | S | D | F | G | H | J | K | L | ; | " | | ||
| 30 | * |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 31 | * | Shift| Z | X | C | V | B | N | M | , | . | / |Shift | | ||
| 32 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 33 | * | Ctrl | Alt | GUI | GUI | Num | Space | FN | GUI | Alt | Ctrl | Enter| | ||
| 34 | * `-----------------------------------------------------------------------------------' | ||
| 35 | */ | ||
| 36 | [_QWERTY] = { | ||
| 37 | {KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, | ||
| 38 | {CTL_T(KC_TAB), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, | ||
| 39 | {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT}, | ||
| 40 | {KC_LCTL, KC_LALT, KC_LGUI, KC_LGUI, MO(_NUM), KC_SPC, KC_SPC, MO(_FUNC), KC_RGUI, KC_RALT, KC_RCTL, KC_ENT} | ||
| 41 | }, | ||
| 42 | |||
| 43 | /* _NUM | ||
| 44 | * ,-----------------------------------------------------------------------------------. | ||
| 45 | * | ___ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | ____ | | ||
| 46 | * |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 47 | * | Ctrl | ` | [ | { | ( | / | \ | ) | } | ] | - | = | | ||
| 48 | * |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 49 | * | ____ | ! | @ | # | $ | % | ^ | & | * | _ | + | ____ | | ||
| 50 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 51 | * | ____ | ___ | ___ | ___ | XXXX | ______ | ____ | ____ | ____ | __ | ____ | | ||
| 52 | * `-----------------------------------------------------------------------------------' | ||
| 53 | */ | ||
| 54 | [_NUM] = { | ||
| 55 | {_______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______}, | ||
| 56 | {KC_LCTL, KC_GRV, KC_LBRC, KC_LCBR, KC_LPRN, KC_SLSH, KC_BSLS, KC_RPRN, KC_RCBR, KC_RBRC, KC_MINS, KC_EQL}, | ||
| 57 | {_______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_UNDS, KC_PLUS, _______}, | ||
| 58 | {_______, _______, _______, _______, _______, _______, _______, MO(_NAV), _______, _______, _______, _______} | ||
| 59 | }, | ||
| 60 | |||
| 61 | /* _FUNC | ||
| 62 | * ,-----------------------------------------------------------------------------------. | ||
| 63 | * | ____ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | ____ | | ||
| 64 | * |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 65 | * | ____ |Shift | Ctrl | Alt | GUI | ____ | Left | Down | Up |Right | Del | ____ | | ||
| 66 | * |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 67 | * | ____ |Light | ____ | Vol- | Prev | Play | Mute | Next | Vol+ | ____ | ____ | ____ | | ||
| 68 | * |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 69 | * | ____ | ____ | ____ | ____ | ____ | _____ | XXXX | ____ | ____ | ____ | ____ | | ||
| 70 | * `-----------------------------------------------------------------------------------' | ||
| 71 | */ | ||
| 72 | [_FUNC] = { | ||
| 73 | {_______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______}, | ||
| 74 | {_______, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_DEL, _______}, | ||
| 75 | {_______, M(0), _______, KC_VOLD, KC_MPRV, KC_MPLY, KC_MUTE, KC_MNXT, KC_VOLU, _______, _______, _______}, | ||
| 76 | {_______, _______, _______, _______, MO(_NAV), _______, _______, _______, _______, _______, _______, _______} | ||
| 77 | }, | ||
| 78 | |||
| 79 | [_NAV] = { | ||
| 80 | {KC_MS_ACCEL2, KC_FN1, KC_FN2, KC_FN3, KC_FN4, XXXXXXX, XXXXXXX, KC_WH_D, KC_WH_U, XXXXXXX, XXXXXXX, XXXXXXX}, | ||
| 81 | {KC_MS_ACCEL1, KC_MS_BTN4, KC_MS_BTN3, KC_MS_BTN2, KC_MS_BTN1, XXXXXXX, KC_MS_LEFT, KC_MS_DOWN, KC_MS_UP, KC_MS_RIGHT, XXXXXXX, XXXXXXX}, | ||
| 82 | {KC_MS_ACCEL0, KC_FN9, KC_FN10, KC_FN11, KC_FN12, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, | ||
| 83 | {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX} | ||
| 84 | }, | ||
| 85 | |||
| 86 | }; | ||
| 87 | |||
| 88 | const uint16_t PROGMEM fn_actions[] = { | ||
| 89 | |||
| 90 | }; | ||
| 91 | |||
| 92 | const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) | ||
| 93 | { | ||
| 94 | // MACRODOWN only works in this function | ||
| 95 | switch(id) { | ||
| 96 | case 0: | ||
| 97 | if (record->event.pressed) { | ||
| 98 | register_code(KC_RSFT); | ||
| 99 | #ifdef BACKLIGHT_ENABLE | ||
| 100 | backlight_step(); | ||
| 101 | #endif | ||
| 102 | } else { | ||
| 103 | unregister_code(KC_RSFT); | ||
| 104 | } | ||
| 105 | break; | ||
| 106 | } | ||
| 107 | return MACRO_NONE; | ||
| 108 | }; | ||
diff --git a/keyboards/planck/keymaps/yale/yale_layout_picture.jpg b/keyboards/planck/keymaps/yale/yale_layout_picture.jpg new file mode 100644 index 000000000..ab9c6b4eb --- /dev/null +++ b/keyboards/planck/keymaps/yale/yale_layout_picture.jpg | |||
| Binary files differ | |||
diff --git a/keyboards/preonic/keymaps/smt/keymap.c b/keyboards/preonic/keymaps/smt/keymap.c index 5465d543a..ba05d9ad5 100644 --- a/keyboards/preonic/keymaps/smt/keymap.c +++ b/keyboards/preonic/keymaps/smt/keymap.c | |||
| @@ -1,9 +1,9 @@ | |||
| 1 | #include "preonic.h" | 1 | #include "preonic.h" |
| 2 | #include "action_layer.h" | 2 | #include "action_layer.h" |
| 3 | #include "eeconfig.h" | ||
| 4 | #ifdef AUDIO_ENABLE | 3 | #ifdef AUDIO_ENABLE |
| 5 | #include "audio.h" | 4 | #include "audio.h" |
| 6 | #endif | 5 | #endif |
| 6 | #include "eeconfig.h" | ||
| 7 | 7 | ||
| 8 | // Each layer gets a name for readability, which is then used in the keymap matrix below. | 8 | // Each layer gets a name for readability, which is then used in the keymap matrix below. |
| 9 | // The underscores don't mean anything - you can have a layer called STUFF or any other name. | 9 | // The underscores don't mean anything - you can have a layer called STUFF or any other name. |
| @@ -33,39 +33,39 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 33 | * ,-----------------------------------------------------------------------------------. | 33 | * ,-----------------------------------------------------------------------------------. |
| 34 | * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | | 34 | * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | |
| 35 | * |------+------+------+------+------+------+------+------+------+------+------+------| | 35 | * |------+------+------+------+------+------+------+------+------+------+------+------| |
| 36 | * | Tab | " | , | . | P | Y | F | G | C | R | L | / | | 36 | * | Tab | " | , | . | P | Y | F | G | C | R | L | Bksp | |
| 37 | * |------+------+------+------+------+-------------+------+------+------+------+------| | 37 | * |------+------+------+------+------+-------------+------+------+------+------+------| |
| 38 | * | Esc | A | O | E | U | I | D | H | T | N | S | - | | 38 | * | Esc | A | O | E | U | I | D | H | T | N | S | - | |
| 39 | * |------+------+------+------+------+------|------+------+------+------+------+------| | 39 | * |------+------+------+------+------+------|------+------+------+------+------+------| |
| 40 | * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | | 40 | * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | |
| 41 | * |------+------+------+------+------+------+------+------+------+------+------+------| | 41 | * |------+------+------+------+------+------+------+------+------+------+------+------| |
| 42 | * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | | 42 | * | ` | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | |
| 43 | * `-----------------------------------------------------------------------------------' | 43 | * `-----------------------------------------------------------------------------------' |
| 44 | */ | 44 | */ |
| 45 | [_DVORAK] = { | 45 | [_DVORAK] = { |
| 46 | {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, | 46 | {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, |
| 47 | {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH}, | 47 | {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, |
| 48 | {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS}, | 48 | {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS}, |
| 49 | {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, SFT_T(KC_ENT)}, | 49 | {SFT_T(KC_ESC), KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, SFT_T(KC_ENT)}, |
| 50 | {BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} | 50 | {ALL_T(KC_GRV), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} |
| 51 | }, | 51 | }, |
| 52 | 52 | ||
| 53 | /* Qwerty | 53 | /* Qwerty |
| 54 | * ,-----------------------------------------------------------------------------------. | 54 | * ,-----------------------------------------------------------------------------------. |
| 55 | * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | | 55 | * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | |
| 56 | * |------+------+------+------+------+------+------+------+------+------+------+------| | 56 | * |------+------+------+------+------+------+------+------+------+------+------+------| |
| 57 | * | Tab | Q | W | E | R | T | Y | U | I | O | P | Del | | 57 | * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | |
| 58 | * |------+------+------+------+------+-------------+------+------+------+------+------| | 58 | * |------+------+------+------+------+-------------+------+------+------+------+------| |
| 59 | * | Esc | A | S | D | F | G | H | J | K | L | ; | " | | 59 | * | Esc | A | S | D | F | G | H | J | K | L | ; | " | |
| 60 | * |------+------+------+------+------+------|------+------+------+------+------+------| | 60 | * |------+------+------+------+------+------|------+------+------+------+------+------| |
| 61 | * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | | 61 | * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | |
| 62 | * |------+------+------+------+------+------+------+------+------+------+------+------| | 62 | * |------+------+------+------+------+------+------+------+------+------+------+------| |
| 63 | * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | | 63 | * | ` | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | |
| 64 | * `-----------------------------------------------------------------------------------' | 64 | * `-----------------------------------------------------------------------------------' |
| 65 | */ | 65 | */ |
| 66 | [_QWERTY] = { | 66 | [_QWERTY] = { |
| 67 | {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, | 67 | {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, |
| 68 | {_______, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL}, | 68 | {_______, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, _______}, |
| 69 | {_______, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, | 69 | {_______, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, |
| 70 | {_______, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, _______}, | 70 | {_______, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, _______}, |
| 71 | {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} | 71 | {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} |
| @@ -98,9 +98,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 98 | * |------+------+------+------+------+-------------+------+------+------+------+------| | 98 | * |------+------+------+------+------+-------------+------+------+------+------+------| |
| 99 | * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del | | 99 | * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del | |
| 100 | * |------+------+------+------+------+-------------+------+------+------+------+------| | 100 | * |------+------+------+------+------+-------------+------+------+------+------+------| |
| 101 | * | | | | | | | | _ | + | { | } | | | | 101 | * | | | | | | | _ | ? | + | { | } | | | |
| 102 | * |------+------+------+------+------+------|------+------+------+------+------+------| | 102 | * |------+------+------+------+------+------|------+------+------+------+------+------| |
| 103 | * | | | | | | | | - | = | [ | ] | \ | | 103 | * | | | | | | | - | / | = | [ | ] | \ | |
| 104 | * |------+------+------+------+------+------+------+------+------+------+------+------| | 104 | * |------+------+------+------+------+------+------+------+------+------+------+------| |
| 105 | * | | | | | | | | Next | Vol- | Vol+ | Play | | 105 | * | | | | | | | | Next | Vol- | Vol+ | Play | |
| 106 | * `-----------------------------------------------------------------------------------' | 106 | * `-----------------------------------------------------------------------------------' |
| @@ -108,8 +108,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 108 | [_RAISE] = { | 108 | [_RAISE] = { |
| 109 | {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL}, | 109 | {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL}, |
| 110 | {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL}, | 110 | {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL}, |
| 111 | {_______, _______, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, | 111 | {_______, _______, _______, _______, _______, _______, KC_UNDS, KC_QUES, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, |
| 112 | {_______, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, | 112 | {_______, _______, _______, _______, _______, _______, KC_MINS, KC_SLSH, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, |
| 113 | {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} | 113 | {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} |
| 114 | }, | 114 | }, |
| 115 | 115 | ||
diff --git a/keyboards/preonic/keymaps/smt/readme.md b/keyboards/preonic/keymaps/smt/readme.md index b2052b37c..016da7b01 100644 --- a/keyboards/preonic/keymaps/smt/readme.md +++ b/keyboards/preonic/keymaps/smt/readme.md | |||
| @@ -14,19 +14,29 @@ Notable differences from the default are: | |||
| 14 | 14 | ||
| 15 | Thankfully, QMK supports [mod-tap](https://github.com/jackhumbert/qmk_firmware/wiki#fun-with-modifier-keys) keys, and this allows me to set the Enter key to send a modifier (MOD_LSFT) when held, and KC_ENT when tapped. Awesome! | 15 | Thankfully, QMK supports [mod-tap](https://github.com/jackhumbert/qmk_firmware/wiki#fun-with-modifier-keys) keys, and this allows me to set the Enter key to send a modifier (MOD_LSFT) when held, and KC_ENT when tapped. Awesome! |
| 16 | 16 | ||
| 17 | 3. Escape | ||
| 18 | |||
| 19 | I am experimenting with using Left Shift as a mod-tap key for Escape, similar to how I use the Enter key. It's set up like this on my Minivan, so in the interest of consistency... | ||
| 20 | |||
| 21 | 4. Backtick | ||
| 22 | |||
| 23 | I don't currently have LEDs on any of my keyboards, and even if I did, I don't think I would want their controls on a base layer. | ||
| 24 | |||
| 25 | So, why use backtick in the lower left corner? I use it as my tmux prefix key, so I need to type it more frequently than most people. Putting it on the base layer works well for me. | ||
| 26 | |||
| 17 | ## Dvorak (default) | 27 | ## Dvorak (default) |
| 18 | 28 | ||
| 19 | ``` | 29 | ``` |
| 20 | ,-----------------------------------------------------------------------------------. | 30 | ,-----------------------------------------------------------------------------------. |
| 21 | | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | | 31 | | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | |
| 22 | |------+------+------+------+------+------+------+------+------+------+------+------| | 32 | |------+------+------+------+------+------+------+------+------+------+------+------| |
| 23 | | Tab | " | , | . | P | Y | F | G | C | R | L | / | | 33 | | Tab | " | , | . | P | Y | F | G | C | R | L | Bksp | |
| 24 | |------+------+------+------+------+-------------+------+------+------+------+------| | 34 | |------+------+------+------+------+-------------+------+------+------+------+------| |
| 25 | | Esc | A | O | E | U | I | D | H | T | N | S | - | | 35 | | Esc | A | O | E | U | I | D | H | T | N | S | - | |
| 26 | |------+------+------+------+------+------|------+------+------+------+------+------| | 36 | |------+------+------+------+------+------|------+------+------+------+------+------| |
| 27 | | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | | 37 | | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | |
| 28 | |------+------+------+------+------+------+------+------+------+------+------+------| | 38 | |------+------+------+------+------+------+------+------+------+------+------+------| |
| 29 | | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | | 39 | | ` | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | |
| 30 | `-----------------------------------------------------------------------------------' | 40 | `-----------------------------------------------------------------------------------' |
| 31 | ``` | 41 | ``` |
| 32 | 42 | ||
| @@ -36,13 +46,13 @@ Notable differences from the default are: | |||
| 36 | ,-----------------------------------------------------------------------------------. | 46 | ,-----------------------------------------------------------------------------------. |
| 37 | | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | | 47 | | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | |
| 38 | |------+------+------+------+------+------+------+------+------+------+------+------| | 48 | |------+------+------+------+------+------+------+------+------+------+------+------| |
| 39 | | Tab | Q | W | E | R | T | Y | U | I | O | P | Del | | 49 | | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | |
| 40 | |------+------+------+------+------+-------------+------+------+------+------+------| | 50 | |------+------+------+------+------+-------------+------+------+------+------+------| |
| 41 | | Esc | A | S | D | F | G | H | J | K | L | ; | " | | 51 | | Esc | A | S | D | F | G | H | J | K | L | ; | " | |
| 42 | |------+------+------+------+------+------|------+------+------+------+------+------| | 52 | |------+------+------+------+------+------|------+------+------+------+------+------| |
| 43 | | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | | 53 | | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | |
| 44 | |------+------+------+------+------+------+------+------+------+------+------+------| | 54 | |------+------+------+------+------+------+------+------+------+------+------+------| |
| 45 | | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | | 55 | | ` | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | |
| 46 | `-----------------------------------------------------------------------------------' | 56 | `-----------------------------------------------------------------------------------' |
| 47 | ``` | 57 | ``` |
| 48 | 58 | ||
| @@ -76,10 +86,28 @@ I haven't completely filled this layer, which leaves room for future mappings an | |||
| 76 | |------+------+------+------+------+-------------+------+------+------+------+------| | 86 | |------+------+------+------+------+-------------+------+------+------+------+------| |
| 77 | | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del | | 87 | | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del | |
| 78 | |------+------+------+------+------+-------------+------+------+------+------+------| | 88 | |------+------+------+------+------+-------------+------+------+------+------+------| |
| 79 | | | | | | | | | _ | + | { | } | | | | 89 | | | | | | | | _ | ? | + | { | } | | | |
| 80 | |------+------+------+------+------+------|------+------+------+------+------+------| | 90 | |------+------+------+------+------+------|------+------+------+------+------+------| |
| 81 | | | | | | | | | - | = | [ | ] | \ | | 91 | | | | | | | | - | / | = | [ | ] | \ | |
| 82 | |------+------+------+------+------+------+------+------+------+------+------+------| | 92 | |------+------+------+------+------+------+------+------+------+------+------+------| |
| 83 | | | | | | | | | Next | Vol- | Vol+ | Play | | 93 | | | | | | | | | Next | Vol- | Vol+ | Play | |
| 84 | `-----------------------------------------------------------------------------------' | 94 | `-----------------------------------------------------------------------------------' |
| 85 | ``` | 95 | ``` |
| 96 | |||
| 97 | ## Adjust (Lower + Raise) | ||
| 98 | |||
| 99 | Utility layer. This is where I'd switch to Qwerty, or ~~fool around with~~ adjust the audio/music settings. | ||
| 100 | |||
| 101 | ``` | ||
| 102 | ,-----------------------------------------------------------------------------------. | ||
| 103 | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | | ||
| 104 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 105 | | | Reset| | | | | | | | | | Del | | ||
| 106 | |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 107 | | | | |Aud on|AudOff|AGnorm|AGswap|Dvorak|Qwerty| | | | | ||
| 108 | |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 109 | | |Voice-|Voice+|Mus on|MusOff|MidiOn|MidOff| | | | | | | ||
| 110 | |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 111 | | | | | | | | | | | | | | ||
| 112 | `-----------------------------------------------------------------------------------' | ||
| 113 | ``` | ||
diff --git a/keyboards/s60-x/readme.md b/keyboards/s60-x/readme.md index 94ce82922..408ad13ac 100644 --- a/keyboards/s60-x/readme.md +++ b/keyboards/s60-x/readme.md | |||
| @@ -13,7 +13,7 @@ You only need to flash them onto your keyboard, which is explained below, there' | |||
| 13 | ## Flashing your keyboard | 13 | ## Flashing your keyboard |
| 14 | The recommended programs for flashing your keyboard are [Atmel FLIP](http://www.atmel.com/tools/FLIP.aspx) (Windows) and [dfu-programmer](http://dfu-programmer.sourceforge.net/) (Linux/Windows). | 14 | The recommended programs for flashing your keyboard are [Atmel FLIP](http://www.atmel.com/tools/FLIP.aspx) (Windows) and [dfu-programmer](http://dfu-programmer.sourceforge.net/) (Linux/Windows). |
| 15 | 15 | ||
| 16 | [QMK Firmware Flasher](https://github.com/jackhumbert/qmk_firmware_flasher/releases) may work, as the S60-X keyboard uses the ATMega32U4 microcontroller, but it is untested. Use at your own risk. | 16 | [QMK Firmware Flasher](https://github.com/qmk/qmk_firmware_flasher/releases) may work, as the S60-X keyboard uses the ATMega32U4 microcontroller, but it is untested. Use at your own risk. |
| 17 | 17 | ||
| 18 | [Easy AVR USB Keyboard Firmware](https://deskthority.net/wiki/Easy_AVR_USB_Keyboard_Firmware) also supports S60-X, but it is completely unrelated to TMK firmware. Use at your own risk. | 18 | [Easy AVR USB Keyboard Firmware](https://deskthority.net/wiki/Easy_AVR_USB_Keyboard_Firmware) also supports S60-X, but it is completely unrelated to TMK firmware. Use at your own risk. |
| 19 | 19 | ||
