diff --git a/README.md b/README.md index bab19b91..3819825f 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ My userspace for building QMK firmware via GitHub Actions. This does not require ## Layout -The custom layout optimizes for programming (SQL, Powershell, C) and minimizes holds for comfort. It started from [Manna Harbor Miryoku](https://github.com/manna-harbour/miryoku) and took heavy influence from [Jonas Hietala T-34](https://www.jonashietala.se/series/t-34/). The keymap designed for split 3x5, two thumbs keys, dual encoders, and combined with a Ploopy Nano trackball mouse. Design themes: +The custom layout optimizes for programming (SQL, Powershell, C) and minimizes holds for comfort. It started from [Manna Harbor Miryoku](https://github.com/manna-harbour/miryoku), took heavy influence from [Jonas Hietala T-34](https://www.jonashietala.se/series/t-34/), and trying to achieve [Callum's Minimal Layout](https://github.com/qmk/qmk_firmware/tree/user-keymaps-still-present/users/callum). The keymap designed for split 3x5, two thumbs keys, dual encoders, and combined with a Ploopy Nano trackball mouse. Design themes: - Releasing all keys always brings you back to base layer - Keeping certain keys consistent on all layers for better muscle memory @@ -33,7 +33,7 @@ In this userspace, the base split 3x5_3 layout can be adapted for other split ke ### Tri-Layer -Hold both thumb momentary layer keys `NUMBER` and `NAVIGATION` to access the `SYMBOL` layer +Hold both thumb momentary layer keys `NAVIGATION` and `SYMBOL` to access the `NUMBER` layer ### One Shot Mods @@ -50,32 +50,44 @@ Caps Word enables temporary all-caps typing without holding shift. Useful to typ ### Tap-Holds -Certain keys have different behaviors when held vs tapped allowing commonly typed characters or auto-shifting certain keycodes +Certain keys have different behaviors when held vs tapped allowing commonly typed programming syntax or shifting certain keycodes without actually pressing/holding shift | Keycode | When tapped | When held | Comments | | --------- | ----------- | ----------------------- | --------------------------------- | | `TR_LBRC` | `[` | `[]` with cursor inside | | -| `TH_LCBR` | `{` | `{}` with cursor inside | | | `TR_LABK` | `<` | `<>` with cursor inside | | | `TR_LPRN` | `(` | `()` with cursor inside | | | `TR_SQUO` | `'` | `''` with cursor inside | | -| `TR_DQUO` | `"` | `""` with cursor inside | | | `TR_EQL` | `=` | `==` | | -| `TR_PLUS` | `+` | `++` | | -| `TR_PIPE` | `\|` | `\|\|` | | -| `TR_EXLM` | `!` | `!=` | | +| `TR_EXLM` | `!` | `$` | | | `TR_COMM` | `,` | `(` | enables parenthesis on base layer | | `TR_DOT` | `.` | `)` | | | `TR_PERC` | `%` | `^` | | | `TR_MINS` | `-` | `_` | | -| `TR_GRV` | ` | `~` | | +| `TR_GRV` | `backtick` | `~` | | | `TR_SCLN` | `;` | `:` | | | `TR_QUOT` | `'` | `"` | | +| `TR_AT` | `@` | `&` | | +| `TR_EXLM` | `!` | `$` | | + +Opted to implement overrides here instead of using built-in Key Override functionality because + +- Not required to press/hold shift to get the alternate key +- Key Overrides would enable holding to repeat keycodes but hard to justify that for the symbols, even for programming ### Combos Enables additional keys to be mapped by pressing multiple keys simultaneously. Primarily used to implement mouse buttons and make important keys (enter, backspace, etc) available on base layer +### Key Overrides + +Primarily used to minimize the layout + +| Keycode | Shift Mod Applied | Comment | +| --------- | ----------------- | -------------------------------------- | +| `KC_BSPC` | `KC_DEL` | Implemented to reduce amount of combos | +| `KC_MNXT` | `KC_MPRV` | | + ### Mouse Keys This layout is designed to be used with a Ploopy Nano. Mouse buttons and scroll wheel is handled on the keyboard side. There are macros with the host status (Caps lock, Num Lock) to toggle Ploopy Nano settings or change the tracking to simulate a scroll wheel diff --git a/keyboards/barbellboards/rollow/keymaps/t4corun/keymap.c b/keyboards/barbellboards/rollow/keymaps/t4corun/keymap.c index 3fd540dc..ddc3e513 100644 --- a/keyboards/barbellboards/rollow/keymaps/t4corun/keymap.c +++ b/keyboards/barbellboards/rollow/keymaps/t4corun/keymap.c @@ -23,8 +23,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_DEFAULT_LAYER_2] = ROLLOW(LAYER_COLEMAK_DH), [_DEFAULT_LAYER_3] = ROLLOW(LAYER_GAME), [_NAVIGATION] = ROLLOW(LAYER_NAVIGATION), - [_NUMBER] = ROLLOW(LAYER_NUMBER), [_SYMBOL] = ROLLOW(LAYER_SYMBOL), + [_NUMBER] = ROLLOW(LAYER_NUMBER), [_CONFIG] = ROLLOW(LAYER_CONFIG) }; @@ -34,13 +34,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* These are horizontal encoders. Found I have to make it opposite the rotary encoders for it to feel intuitive*/ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [_DEFAULT_LAYER_1] = { ENCODER_CCW_CW(TR_MWHD, TR_MWHU), ENCODER_CCW_CW(KC_VOLU, KC_VOLD) }, - [_DEFAULT_LAYER_2] = { ENCODER_CCW_CW(TR_MWHD, TR_MWHU), ENCODER_CCW_CW(KC_VOLU, KC_VOLD) }, - [_DEFAULT_LAYER_3] = { ENCODER_CCW_CW(TR_MWHD, TR_MWHU), ENCODER_CCW_CW(KC_VOLU, KC_VOLD) }, + [_DEFAULT_LAYER_1] = { ENCODER_CCW_CW(KC_WH_D, KC_WH_U), ENCODER_CCW_CW(KC_VOLU, KC_VOLD) }, + [_DEFAULT_LAYER_2] = { ENCODER_CCW_CW(KC_WH_D, KC_WH_U), ENCODER_CCW_CW(KC_VOLU, KC_VOLD) }, + [_DEFAULT_LAYER_3] = { ENCODER_CCW_CW(KC_WH_D, KC_WH_U), ENCODER_CCW_CW(KC_VOLU, KC_VOLD) }, [_NAVIGATION] = { ENCODER_CCW_CW(ZOOMIN, ZOOMOUT), ENCODER_CCW_CW(___x___, ___x___) }, - [_NUMBER] = { ENCODER_CCW_CW(___x___, ___x___), ENCODER_CCW_CW(KC_RGHT, KC_LEFT) }, - [_SYMBOL] = { ENCODER_CCW_CW(___x___, ___x___), ENCODER_CCW_CW(___x___, ___x___) }, - [_CONFIG] = { ENCODER_CCW_CW(TR_RMOD, TR_RRMD), ENCODER_CCW_CW(BASELYR, RBSELYR) } + [_SYMBOL] = { ENCODER_CCW_CW(___x___, ___x___), ENCODER_CCW_CW(KC_RGHT, KC_LEFT) }, + [_NUMBER] = { ENCODER_CCW_CW(___x___, ___x___), ENCODER_CCW_CW(___x___, ___x___) }, + [_CONFIG] = { ENCODER_CCW_CW(BASELYR, RBSELYR), ENCODER_CCW_CW(TR_RMOD, TR_RRMD) } }; #endif \ No newline at end of file diff --git a/keyboards/bastardkb/charybdis/3x5/keymaps/t4corun/keymap.c b/keyboards/bastardkb/charybdis/3x5/keymaps/t4corun/keymap.c index 37f70165..92e14001 100644 --- a/keyboards/bastardkb/charybdis/3x5/keymaps/t4corun/keymap.c +++ b/keyboards/bastardkb/charybdis/3x5/keymaps/t4corun/keymap.c @@ -12,7 +12,7 @@ LAYOUT_cnano_wrapper ( \ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, \ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, \ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, \ - TR_BTN1, k33, k34, k35, k36 \ + KC_BTN1, k33, k34, k35, k36 \ ) #define CNANO(...) LAYOUT_3x5_3_keymap(__VA_ARGS__) @@ -23,8 +23,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_DEFAULT_LAYER_2] = CNANO(LAYER_COLEMAK_DH), [_DEFAULT_LAYER_3] = CNANO(LAYER_GAME), [_NAVIGATION] = CNANO(LAYER_NAVIGATION), - [_NUMBER] = CNANO(LAYER_NUMBER), [_SYMBOL] = CNANO(LAYER_SYMBOL), + [_NUMBER] = CNANO(LAYER_NUMBER), [_CONFIG] = CNANO(LAYER_CONFIG) }; \ No newline at end of file diff --git a/keyboards/bluebell/swoop/keymaps/t4corun/keymap.c b/keyboards/bluebell/swoop/keymaps/t4corun/keymap.c index 245bb39a..0cf0592a 100644 --- a/keyboards/bluebell/swoop/keymaps/t4corun/keymap.c +++ b/keyboards/bluebell/swoop/keymaps/t4corun/keymap.c @@ -23,8 +23,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_DEFAULT_LAYER_2] = SWOOP(LAYER_COLEMAK_DH), [_DEFAULT_LAYER_3] = SWOOP(LAYER_GAME), [_NAVIGATION] = SWOOP(LAYER_NAVIGATION), - [_NUMBER] = SWOOP(LAYER_NUMBER), [_SYMBOL] = SWOOP(LAYER_SYMBOL), + [_NUMBER] = SWOOP(LAYER_NUMBER), [_CONFIG] = SWOOP(LAYER_CONFIG) }; @@ -34,13 +34,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* The encoder presses are handled in the keymap */ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [_DEFAULT_LAYER_1] = { ENCODER_CCW_CW(TR_MWHU, TR_MWHD), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [_DEFAULT_LAYER_2] = { ENCODER_CCW_CW(TR_MWHU, TR_MWHD), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [_DEFAULT_LAYER_3] = { ENCODER_CCW_CW(TR_MWHU, TR_MWHD), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [_DEFAULT_LAYER_1] = { ENCODER_CCW_CW(KC_WH_U, KC_WH_D), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [_DEFAULT_LAYER_2] = { ENCODER_CCW_CW(KC_WH_U, KC_WH_D), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [_DEFAULT_LAYER_3] = { ENCODER_CCW_CW(KC_WH_U, KC_WH_D), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, [_NAVIGATION] = { ENCODER_CCW_CW(ZOOMOUT, ZOOMIN), ENCODER_CCW_CW(___x___, ___x___) }, - [_NUMBER] = { ENCODER_CCW_CW(___x___, ___x___), ENCODER_CCW_CW(KC_LEFT, KC_RGHT) }, - [_SYMBOL] = { ENCODER_CCW_CW(___x___, ___x___), ENCODER_CCW_CW(___x___, ___x___) }, - [_CONFIG] = { ENCODER_CCW_CW(TR_RRMD, TR_RMOD), ENCODER_CCW_CW(RBSELYR, BASELYR) } + [_SYMBOL] = { ENCODER_CCW_CW(___x___, ___x___), ENCODER_CCW_CW(KC_LEFT, KC_RGHT) }, + [_NUMBER] = { ENCODER_CCW_CW(___x___, ___x___), ENCODER_CCW_CW(___x___, ___x___) }, + [_CONFIG] = { ENCODER_CCW_CW(RBSELYR, BASELYR), ENCODER_CCW_CW(TR_RRMD, TR_RMOD) } }; #endif //ENCODER_MAP_ENABLE diff --git a/keyboards/crkbd/keymaps/t4corun/keymap.c b/keyboards/crkbd/keymaps/t4corun/keymap.c index 2d82da80..2bb11093 100644 --- a/keyboards/crkbd/keymaps/t4corun/keymap.c +++ b/keyboards/crkbd/keymaps/t4corun/keymap.c @@ -12,7 +12,7 @@ LAYOUT_crkbd_wrapper ( \ KC_NO, k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, KC_NO, \ KC_NO, k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, KC_NO, \ KC_NO, k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, KC_NO, \ - TR_BTN1, k33, k34, k35, k36, TR_BTN4 \ + KC_BTN1, k33, k34, k35, k36, KC_BTN4 \ ) #define CRKBD(...) LAYOUT_3x5_3_keymap(__VA_ARGS__) @@ -23,8 +23,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_DEFAULT_LAYER_2] = CRKBD(LAYER_COLEMAK_DH), [_DEFAULT_LAYER_3] = CRKBD(LAYER_GAME), [_NAVIGATION] = CRKBD(LAYER_NAVIGATION), - [_NUMBER] = CRKBD(LAYER_NUMBER), [_SYMBOL] = CRKBD(LAYER_SYMBOL), + [_NUMBER] = CRKBD(LAYER_NUMBER), [_CONFIG] = CRKBD(LAYER_CONFIG) }; \ No newline at end of file diff --git a/keyboards/planck/keymaps/t4corun/keymap.c b/keyboards/planck/keymaps/t4corun/keymap.c index dfa3e5fc..6eee0d80 100644 --- a/keyboards/planck/keymaps/t4corun/keymap.c +++ b/keyboards/planck/keymaps/t4corun/keymap.c @@ -23,8 +23,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_DEFAULT_LAYER_2] = PLANCK(LAYER_COLEMAK_DH), [_DEFAULT_LAYER_3] = PLANCK(LAYER_GAME), [_NAVIGATION] = PLANCK(LAYER_NAVIGATION), - [_NUMBER] = PLANCK(LAYER_NUMBER), [_SYMBOL] = PLANCK(LAYER_SYMBOL), + [_NUMBER] = PLANCK(LAYER_NUMBER), [_CONFIG] = PLANCK(LAYER_CONFIG) }; \ No newline at end of file diff --git a/keymap-drawer.yml b/keymap-drawer.yml index cadf5040..0adcbdd6 100644 --- a/keymap-drawer.yml +++ b/keymap-drawer.yml @@ -4,8 +4,8 @@ layout: layers: base_QWERTY: - [Q, W, E, R, T, Y, U, I ,O, P] - - [A, S, D, F, G, H, J, K ,L, {h: "\"", t: "'"}] - - [Z, X, C, V, B, N, M, {h: "(", t: ","} , {h: ")", t: "."}, {h: "_", t: "-"}] + - [A, S, D, F, G, H, J, K ,L, {h: '"', t: ''''}] + - [Z, X, C, V, B, N, M, {h: '(', t: ','} , {h: ')', t: '.'}, {h: '_', t: '-'}] - {type: ghost} - NUM - Shift @@ -13,9 +13,9 @@ layers: - NAV - {t: Mute, type: ghost} base_COLEMAK_DH: - - [Q, W, F, P, B, J, L, U ,Y, {h: "\"", t: "'"}] + - [Q, W, F, P, B, J, L, U ,Y, {h: '"', t: ''''}] - [A, R, S, T, G, M, N, E ,I, O] - - [Z, X, C, D, V, K, H, {h: "(", t: ","} , {h: ")", t: "."}, {h: "_", t: "-"}] + - [Z, X, C, D, V, K, H, {h: '(', t: ','} , {h: ')', t: '.'}, {h: '_', t: '-'}] - {type: ghost} - NUM - Shift @@ -23,39 +23,39 @@ layers: - NAV - {t: Mute, type: ghost} base_GAME: - - [Tab, Q, W, E, R, T, "7", "8" ,"9", Esc] - - [Ctrl, A, S, D, F, G, "4", "5" ,"6", "`"] - - [Z, X, C, V, B, Alt, "1", "2" ,"3", Combo Toggle] + - [Tab, Q, W, E, R, T, '7', '8' ,'9', Esc] + - [Ctrl, A, S, D, F, G, '4', '5' ,'6', '`'] + - [Z, X, C, V, B, Alt, '1', '2' ,'3', Combo Toggle] - {t: Enter, type: ghost} - Space - Shift - Space - - {h: "NAV", t: "0"} + - NAV - {t: Mute, type: ghost} NAV: - - [null, Home, ▲, End, Page Up, null, null, Sniper Toggle, Sniper DPI, Pointer DPI ] + - [null, Home, ▲, End, Page Up, null, null, Caps Lock, Print Screen, CONFIG ] - [null, ◄, ▼, ►, Page Down, null, Shift, Ctrl, Alt, Gui ] - - [Undo, Cut, Copy, Paste, Redo, null, App, Vol-, Vol+, Mute ] + - [Undo, Cut, Copy, Paste, Redo, null, App, Sniper Toggle, Sniper DPI, Pointer DPI ] - {t: Zoom Reset, type: ghost} - NUM - Space - null - {type: held} - {t: Mute, type: ghost} - NUM: - - [CONFIG, Win Snip, Win File, null, null, null, "7", "8" ,"9", {h: "<", t: ","} ] - - [Gui, Alt, Ctrl, Shift, null, null, "4", "5" ,"6", {h: ">", t: "."}] - - [Undo, Cut, Copy, Paste, Redo, null, "1", "2" ,"3", {h: "_", t: "-"}] + SYM: + - [Esc, Mouse 3, Mouse 2, Mouse 1, {h: '~', t: '`'}, {h: '==', t: '='}, '#', {h: '<>', t: '<'}, '>', {h: '^', t: '%'}] + - [Gui, Alt, Ctrl, Shift, {h: ':', t: ';'}, {h: '&', t: '@'}, {h: '*', t: '?'}, {h: '[]', t: '['}, ']', {h: '''''', t: ''''}] + - [Undo, Cut, Copy, Paste, Redo, {h: '\\', t: "\\"}, {h: '//', t: '/'}, {h: '()', t: '('}, ')', {h: '_', t: '-'}] - {type: ghost} - {type: held} - null - - Space - - {h: "NAV", t: "0"} - - {t: Mute, type: ghost} - SYM: - - [Caps Lock, Print Screen, "@", "$", {h: "~", t: "`"}, {h: "==", t: "="}, "#", "*", null, {h: "\"\"", t: "\""}] - - ["&", {h: "{}", t: "{"}, "}", {h: "||", t: "|"}, {h: ":", t: ";"}, {h: "++", t: "+"}, "?", {h: "[]", t: "]"}, "]", {h: "''", t: "'"}] - - [{h: "^", t: "%"}, {h: "<>", t: "<"}, ">", "\\", {h: "!=", t: "!"}, null, "/", {h: "()", t: "("}, ")", {h: "_", t: "-"}] + - {h: '$', t: '!'} + - NAV + - {type: ghost} + NUM: + - [F7, F5, F3, F1, F9, F8, F10, F2, F4, F6] + - ['7', '5', '3', '1', '9', '8', '0', '2' , '4', '6' ] + - [Mute, Vol-, Vol+, Next, Play Pause, F11, F12, {h: '(', t: ','} , {h: ')', t: '.'}, {h: '_', t: '-'}] - {type: ghost} - {type: held} - null @@ -63,26 +63,24 @@ layers: - {type: held} - {type: ghost} CONFIG: - - [{type: held}, null, null, null, null, null, F7, F8, F9, F10] - - [null, null, null, Shift, null, null, F4, F5, F6, F11] - - [RGB Hue, RGB Sat, RGB Vib, RGB Spd, null, null, F1, F2, F3, F12] - - {t: RGB Toggle, type: ghost} - - EEPROM Clear - - Boot Loader + - [null, null, null, null, null, null, null, EEPROM Clear, Boot Loader, {type: held}] + - [null, null, null, null, null, null, Shift, null, null, RGB Mode] + - [null, null, null, null, null, RGB Toggle, RGB Hue, RGB Sat, RGB Vib, RGB Spd] + - {t: Base Layer, type: ghost} + - null + - null - Macro Play - Macro Rec - - {t: Base Layer, type: ghost} + - {t: RGB Toggle, type: ghost} combos: - - { p: [0, 1], k: Esc, l: [base_QWERTY] } - { p: [12, 13], k: MB1, l: [base_QWERTY] } - { p: [11, 12], k: MB2, l: [base_QWERTY] } - - { p: [14, 24], k: MB3, l: [base_QWERTY] } + - { p: [13, 14], k: MB3, l: [base_QWERTY] } - { p: [3, 13], k: MB4, l: [base_QWERTY] } - { p: [4, 14], k: MB5, l: [base_QWERTY] } - { p: [21, 22], k: DrgScr Tog, l: [base_QWERTY] } - { p: [6, 7], k: Tab, l: [base_QWERTY] } - { p: [22, 23], k: Enter, l: [base_QWERTY] } - { p: [26, 27], k: Bksp, l: [base_QWERTY] } - - { p: [27, 28], k: Del, l: [base_QWERTY] } draw_config: small_pad: 6 \ No newline at end of file diff --git a/my_keymap.png b/my_keymap.png index 680ec6f0..f59cb275 100644 Binary files a/my_keymap.png and b/my_keymap.png differ diff --git a/users/t4corun/features/combo.c b/users/t4corun/features/combo.c index f9f0f37e..d4a10ef3 100644 --- a/users/t4corun/features/combo.c +++ b/users/t4corun/features/combo.c @@ -11,7 +11,6 @@ bool get_combo_must_tap(uint16_t index, combo_t *combo) { case MOUSE_DRGTOG: #endif //MOUSEKEY_ENABLEdf - case KEY_ESC: case KEY_ENT: case KEY_TAB: return true; @@ -36,7 +35,6 @@ bool combo_should_trigger(uint16_t combo_index, combo_t *combo, uint16_t keycode } break; - case KEY_ESC: case KEY_TAB: if ( get_highest_layer(layer_state) == _NAVIGATION || get_highest_layer(layer_state) == _SYMBOL ) { diff --git a/users/t4corun/features/combo.h b/users/t4corun/features/combo.h index e57b5828..62bba46c 100644 --- a/users/t4corun/features/combo.h +++ b/users/t4corun/features/combo.h @@ -1,6 +1,23 @@ #pragma once #include "t4corun.h" + + +#if defined(MOUSEKEY_ENABLE) +const uint16_t PROGMEM mou_btn1_combo[] = { KC_D, KC_F, COMBO_END }; +const uint16_t PROGMEM mou_btn2_combo[] = { KC_S, KC_D, COMBO_END }; +const uint16_t PROGMEM mou_btn3_combo[] = { KC_F, KC_G, COMBO_END }; +const uint16_t PROGMEM mou_btn4_combo[] = { KC_F, KC_R, COMBO_END }; +const uint16_t PROGMEM mou_btn5_combo[] = { KC_T, KC_G, COMBO_END }; +const uint16_t PROGMEM mou_drg_combo[] = { KC_X, KC_C, COMBO_END }; +#endif //MOUSEKEY_ENABLE + +const uint16_t PROGMEM key_ent_combo[] = { KC_C, KC_V, COMBO_END }; +const uint16_t PROGMEM key_tab_combo[] = { KC_U, KC_I, COMBO_END }; +const uint16_t PROGMEM key_bspc_combo[] = { KC_M, TR_COMM, COMBO_END }; + + + enum combos { #if defined(MOUSEKEY_ENABLE) @@ -12,52 +29,31 @@ enum combos { MOUSE_DRGTOG, #endif //MOUSEKEY_ENABLE - KEY_ESC, KEY_ENT, KEY_TAB, - KEY_DEL, KEY_BSPC, COMBO_LENGTH }; + //their documentation is so confusing because you don't use COMBO_LEN defining the actions uint16_t COMBO_LEN = COMBO_LENGTH; -#if defined(MOUSEKEY_ENABLE) -const uint16_t PROGMEM mou_btn1_combo[] = { KC_D, KC_F, COMBO_END }; -const uint16_t PROGMEM mou_btn2_combo[] = { KC_S, KC_D, COMBO_END }; -const uint16_t PROGMEM mou_btn3_combo[] = { KC_G, KC_B, COMBO_END }; -const uint16_t PROGMEM mou_btn4_combo[] = { KC_F, KC_R, COMBO_END }; -const uint16_t PROGMEM mou_btn5_combo[] = { KC_T, KC_G, COMBO_END }; -const uint16_t PROGMEM mou_drg_combo[] = { KC_X, KC_C, COMBO_END }; -#endif //MOUSEKEY_ENABLE - -const uint16_t PROGMEM key_esc_combo[] = { KC_Q, KC_W, COMBO_END }; -const uint16_t PROGMEM key_ent_combo[] = { KC_C, KC_V, COMBO_END }; -const uint16_t PROGMEM key_tab_combo[] = { KC_U, KC_I, COMBO_END }; -const uint16_t PROGMEM key_bspc_combo[] = { KC_M, TR_COMM, COMBO_END }; -const uint16_t PROGMEM key_del_combo[] = { TR_COMM, TR_DOT, COMBO_END }; - - combo_t key_combos[COMBO_LENGTH] = { #if defined(MOUSEKEY_ENABLE) - [MOUSE_BUTTON1] = COMBO(mou_btn1_combo, TR_BTN1), - [MOUSE_BUTTON2] = COMBO(mou_btn2_combo, TR_BTN2), - [MOUSE_BUTTON3] = COMBO(mou_btn3_combo, TR_BTN3), - [MOUSE_BUTTON4] = COMBO(mou_btn4_combo, TR_BTN4), - [MOUSE_BUTTON5] = COMBO(mou_btn5_combo, TR_BTN5), + [MOUSE_BUTTON1] = COMBO(mou_btn1_combo, KC_BTN1), + [MOUSE_BUTTON2] = COMBO(mou_btn2_combo, KC_BTN2), + [MOUSE_BUTTON3] = COMBO(mou_btn3_combo, KC_BTN3), + [MOUSE_BUTTON4] = COMBO(mou_btn4_combo, KC_BTN4), + [MOUSE_BUTTON5] = COMBO(mou_btn5_combo, KC_BTN5), [MOUSE_DRGTOG] = COMBO(mou_drg_combo, TR_DRGS), #endif //MOUSEKEY_ENABLE - [KEY_ESC] = COMBO(key_esc_combo, KC_ESC), [KEY_ENT] = COMBO(key_ent_combo, KC_ENT), [KEY_TAB] = COMBO(key_tab_combo, KC_TAB), - [KEY_DEL] = COMBO(key_del_combo, KC_DEL), [KEY_BSPC] = COMBO(key_bspc_combo, KC_BSPC) - //[LYR_CONFIG] = COMBO(lyr_cfg_combo, CONFIG) - -}; +}; \ No newline at end of file diff --git a/users/t4corun/features/keyoverride.c b/users/t4corun/features/keyoverride.c new file mode 100644 index 00000000..50874a55 --- /dev/null +++ b/users/t4corun/features/keyoverride.c @@ -0,0 +1,24 @@ +#include "keyoverride.h" + +/* +Key Override + Here we will override some shifted versions of keys + https://docs.qmk.fm/#/feature_key_overrides?id=simple-example + +Intentionally did not convert all the override/autoshit tap holds to this format +- Here I could type faster and be able to hold to repeat the keycodes however +- I had tons of same finger bigrams doing trying to get ~ and : +- I didn't feel the need to be able to repeat those symbols +*/ + + +const key_override_t delete_override = ko_make_basic(MOD_MASK_SHIFT, KC_BSPC, KC_DEL); +const key_override_t media_next_override = ko_make_basic(MOD_MASK_SHIFT, KC_MNXT, KC_MPRV); + +const key_override_t **key_overrides = (const key_override_t *[]){ + + &delete_override, + &media_next_override, + NULL // Null terminate the array of overrides! + +}; \ No newline at end of file diff --git a/users/t4corun/features/keyoverride.h b/users/t4corun/features/keyoverride.h new file mode 100644 index 00000000..2a576cc3 --- /dev/null +++ b/users/t4corun/features/keyoverride.h @@ -0,0 +1,2 @@ +#pragma once +#include "t4corun.h" \ No newline at end of file diff --git a/users/t4corun/features/oled.c b/users/t4corun/features/oled.c index 6b8af342..8dafd329 100644 --- a/users/t4corun/features/oled.c +++ b/users/t4corun/features/oled.c @@ -35,8 +35,8 @@ void render_layer_state(void) { oled_write_P(PSTR(OLED_RENDER_LAYER_NAME), false); oled_write_P(PSTR(OLED_RENDER_LAYER_BASE), get_highest_layer(layer_state) == FIRST_DEFAULT_LAYER); oled_write_P(PSTR(OLED_RENDER_LAYER_NAVIGATION), get_highest_layer(layer_state) == _NAVIGATION); - oled_write_P(PSTR(OLED_RENDER_LAYER_NUMBER), get_highest_layer(layer_state) == _NUMBER); oled_write_P(PSTR(OLED_RENDER_LAYER_SYMBOL), get_highest_layer(layer_state) == _SYMBOL); + oled_write_P(PSTR(OLED_RENDER_LAYER_NUMBER), get_highest_layer(layer_state) == _NUMBER); oled_write_P(PSTR(OLED_RENDER_LAYER_CONFIG), get_highest_layer(layer_state) == _CONFIG); } diff --git a/users/t4corun/features/oled.h b/users/t4corun/features/oled.h index b4d6cd2a..bdda3bd7 100644 --- a/users/t4corun/features/oled.h +++ b/users/t4corun/features/oled.h @@ -12,9 +12,9 @@ #define OLED_RENDER_LAYER_NAME "Layer" #define OLED_RENDER_LAYER_BASE " Def " -#define OLED_RENDER_LAYER_NUMBER " Num " #define OLED_RENDER_LAYER_NAVIGATION " Nav " #define OLED_RENDER_LAYER_SYMBOL " Sym " +#define OLED_RENDER_LAYER_NUMBER " Num " #define OLED_RENDER_LAYER_CONFIG " Cfg " void render_crkbd_logo(void); diff --git a/users/t4corun/features/taphold.c b/users/t4corun/features/taphold.c index 1488c524..06e23e49 100644 --- a/users/t4corun/features/taphold.c +++ b/users/t4corun/features/taphold.c @@ -5,28 +5,32 @@ void single_tap(uint16_t key, uint16_t altkey, bool isHold) { } void double_tap(uint16_t key, uint16_t altkey, uint32_t ms) { - tap_code16(key); + bool isShift = ( (get_mods() & MOD_BIT(KC_LSFT)) || (get_oneshot_mods() & MOD_BIT(KC_LSFT)) ); + + isShift ? tap_code16(LSFT(key)) : tap_code16(key); wait_ms(ms); - tap_code16(altkey); + isShift ? tap_code16(LSFT(altkey)) : tap_code16(altkey); } void insert_brackets(uint16_t left, uint16_t right, uint32_t ms) { - tap_code16(left); + bool isShift = ( (get_mods() & MOD_BIT(KC_LSFT)) || (get_oneshot_mods() & MOD_BIT(KC_LSFT)) ); + + isShift ? tap_code16(LSFT(left)) : tap_code16(left); wait_ms(ms); - tap_code16(right); + isShift ? tap_code16(LSFT(right)) : tap_code16(right); wait_ms(ms); tap_code16(KC_LEFT); } -//here we can have the holds be more complex, like sending "" when you hold " +// here we can have the holds be more complex, like sending "" when you hold " bool process_tap_hold_key(keyrecord_t* record, uint16_t keycode) { - //tap is record->tap.count && record->event.pressed - //hold is record->event.pressed + // tap is record->tap.count && record->event.pressed + // hold is record->event.pressed - //just saving this to handle mods - //bool isShift = ( (get_mods() & MOD_BIT(KC_LSFT)) || (get_oneshot_mods() & MOD_BIT(KC_LSFT)) ); - //isShift ? insert_brackets(LSFT(key), LSFT(altkey)) : insert_brackets(key, altkey); + // just saving this to handle mods + // bool isShift = ( (get_mods() & MOD_BIT(KC_LSFT)) || (get_oneshot_mods() & MOD_BIT(KC_LSFT)) ); + // isShift ? insert_brackets(LSFT(key), LSFT(altkey)) : insert_brackets(key, altkey); bool isHold = false; @@ -49,17 +53,14 @@ bool process_tap_hold_key(keyrecord_t* record, uint16_t keycode) { case TR_SQUO: single_tap(TAPHOLD_SQUO, isHold); break; - case TR_DQUO: - single_tap(TAPHOLD_DQUO, isHold); - break; case TR_EQL: single_tap(TAPHOLD_EQL, isHold); break; - case TR_PLUS: - single_tap(TAPHOLD_PLUS, isHold); + case TR_BSLS: + single_tap(TAPHOLD_BSLS, isHold); break; - case TR_PIPE: - single_tap(TAPHOLD_PIPE, isHold); + case TR_SLSH: + single_tap(TAPHOLD_SLSH, isHold); break; case TR_COMM: single_tap(TAPHOLD_COMM, isHold); @@ -73,6 +74,12 @@ bool process_tap_hold_key(keyrecord_t* record, uint16_t keycode) { case TR_EXLM: single_tap(TAPHOLD_EXLM, isHold); break; + case TR_AT: + single_tap(TAPHOLD_AT, isHold); + break; + case TR_QUES: + single_tap(TAPHOLD_QUES, isHold); + break; case TR_MINS: single_tap(TAPHOLD_MINS, isHold); break; @@ -96,7 +103,7 @@ bool process_tap_hold_key(keyrecord_t* record, uint16_t keycode) { switch(keycode) { - //Brackets + // Brackets case TR_LCBR: insert_brackets(TAPHOLD_LCBR, WAIT_DELAY); break; @@ -106,28 +113,25 @@ bool process_tap_hold_key(keyrecord_t* record, uint16_t keycode) { case TR_LBRC: insert_brackets(TAPHOLD_LBRC, WAIT_DELAY); break; - case TR_SQUO: - insert_brackets(TAPHOLD_SQUO, WAIT_DELAY); - break; - case TR_DQUO: - insert_brackets(TAPHOLD_DQUO, WAIT_DELAY); - break; case TR_LPRN: insert_brackets(TAPHOLD_LPRN, WAIT_DELAY); break; + case TR_SQUO: + insert_brackets(TAPHOLD_SQUO, WAIT_DELAY); + break; - //double tap + // double tap case TR_EQL: double_tap(TAPHOLD_EQL, WAIT_DELAY); break; - case TR_PLUS: - double_tap(TAPHOLD_PLUS, WAIT_DELAY); + case TR_BSLS: + double_tap(TAPHOLD_BSLS, WAIT_DELAY); break; - case TR_PIPE: - double_tap(TAPHOLD_PIPE, WAIT_DELAY); + case TR_SLSH: + double_tap(TAPHOLD_SLSH, WAIT_DELAY); break; - //custom action + // custom override without holding shift case TR_COMM: single_tap(TAPHOLD_COMM, isHold); break; @@ -138,10 +142,16 @@ bool process_tap_hold_key(keyrecord_t* record, uint16_t keycode) { single_tap(TAPHOLD_PERC, isHold); break; case TR_EXLM: - double_tap(TAPHOLD_NEQL, WAIT_DELAY); + single_tap(TAPHOLD_EXLM, isHold); + break; + case TR_AT: + single_tap(TAPHOLD_AT, isHold); + break; + case TR_QUES: + single_tap(TAPHOLD_QUES, isHold); break; - //simulates auto-shift + // simulates auto-shift case TR_MINS: single_tap(TAPHOLD_MINS, isHold); break; @@ -154,6 +164,7 @@ bool process_tap_hold_key(keyrecord_t* record, uint16_t keycode) { case TR_QUOT: single_tap(TAPHOLD_QUOT, isHold); break; + } return false; diff --git a/users/t4corun/features/taphold.h b/users/t4corun/features/taphold.h index 953ad4a7..0cc095f2 100644 --- a/users/t4corun/features/taphold.h +++ b/users/t4corun/features/taphold.h @@ -13,30 +13,28 @@ bool process_tap_hold_key(keyrecord_t* record, uint16_t keycode); * and easier to maintain */ -//Brackets: open and close brackets and put the cursor inside +// Brackets: open and close brackets and put the cursor inside #define TAPHOLD_LCBR KC_LCBR, KC_RCBR #define TAPHOLD_LABK KC_LABK, KC_RABK #define TAPHOLD_LBRC KC_LBRC, KC_RBRC -#define TAPHOLD_SQUO KC_QUOT, KC_QUOT -#define TAPHOLD_DQUO KC_DQUO, KC_DQUO #define TAPHOLD_LPRN KC_LPRN, KC_RPRN +#define TAPHOLD_SQUO KC_QUOT, KC_QUOT -//double tap +// double tap #define TAPHOLD_EQL KC_EQL, KC_EQL -#define TAPHOLD_PLUS KC_PLUS, KC_PLUS -#define TAPHOLD_PIPE KC_PIPE, KC_PIPE +#define TAPHOLD_BSLS KC_BSLS, KC_BSLS +#define TAPHOLD_SLSH KC_SLSH, KC_SLSH -//Custom: things like overriding default shifted key +// Custom override without holding shift #define TAPHOLD_COMM KC_COMM, KC_LPRN #define TAPHOLD_DOT KC_DOT, KC_RPRN #define TAPHOLD_PERC KC_PERC, KC_CIRC -#define TAPHOLD_EXLM KC_EXLM, KC_EXLM -#define TAPHOLD_NEQL KC_EXLM, KC_EQL +#define TAPHOLD_EXLM KC_EXLM, KC_DLR +#define TAPHOLD_AT KC_AT, KC_AMPR +#define TAPHOLD_QUES KC_QUES, KC_ASTR -//auto shift +// auto shift #define TAPHOLD_MINS KC_MINS, KC_UNDS #define TAPHOLD_GRV KC_GRV, KC_TILD #define TAPHOLD_SCLN KC_SCLN, KC_COLN -#define TAPHOLD_QUOT KC_QUOT, KC_DQUO - - +#define TAPHOLD_QUOT KC_QUOT, KC_DQUO \ No newline at end of file diff --git a/users/t4corun/features/tapping.c b/users/t4corun/features/tapping.c index 695c4428..e85dc22d 100644 --- a/users/t4corun/features/tapping.c +++ b/users/t4corun/features/tapping.c @@ -3,9 +3,6 @@ uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { switch (keycode) { - case NAV_0: - return TAPPING_TERM - 60; - default: //uprintf("tapping term: %d \n", TAPPING_TERM); return TAPPING_TERM; diff --git a/users/t4corun/rules.mk b/users/t4corun/rules.mk index 8ffe0eef..b8924210 100644 --- a/users/t4corun/rules.mk +++ b/users/t4corun/rules.mk @@ -32,15 +32,17 @@ AUDIO_ENABLE = no CAPS_WORD_ENABLE = yes MOUSEKEY_ENABLE = yes COMBO_ENABLE = yes +KEY_OVERRIDE_ENABLE = yes # --------------------------------------------------------- # include my code that will be common across all my keyboards -SRC += \ - t4corun.c \ - features/tapping.c \ - features/taphold.c \ - features/capsword.c \ +SRC += \ + t4corun.c \ + features/tapping.c \ + features/taphold.c \ + features/capsword.c \ + features/keyoverride.c \ INTROSPECTION_KEYMAP_C += features/combo.c diff --git a/users/t4corun/t4corun.c b/users/t4corun/t4corun.c index 8bdb1265..89277a4e 100644 --- a/users/t4corun/t4corun.c +++ b/users/t4corun/t4corun.c @@ -4,7 +4,7 @@ static uint8_t current_base_layer = _DEFAULT_LAYER_1; layer_state_t layer_state_set_user(layer_state_t state) { - state = update_tri_layer_state(state, _NAVIGATION, _NUMBER, _SYMBOL); + state = update_tri_layer_state(state, _NAVIGATION, _SYMBOL, _NUMBER); return state; } @@ -41,6 +41,58 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return false; +/* + case KC_BSPC: { + //https://docs.qmk.fm/#/feature_advanced_keycodes?id=shift-backspace-for-delete + + // Initialize a boolean variable that keeps track + // of the delete key status: registered or not? + static bool delkey_registered = false; + + if (record->event.pressed) { + + uint8_t current_mod = get_mods(); + uint8_t current_osm = get_oneshot_mods(); + + // Detect the activation of either shift keys + if ((current_mod | current_osm) & MOD_MASK_SHIFT) { + + // First temporarily canceling both shifts so that + // shift isn't applied to the KC_DEL keycode + del_mods(MOD_MASK_SHIFT); + del_oneshot_mods(MOD_MASK_SHIFT); + + // Press delete and keep track that key press + register_code(KC_DEL); + delkey_registered = true; + + // Reapplying modifier state so that the held shift key(s) + // still work even after having tapped the Backspace/Delete key + set_mods(current_mod); + set_oneshot_mods(current_osm); + + return false; + + } + + } else { // on release of KC_BSPC + + if(delkey_registered) { + + unregister_code(KC_DEL); + delkey_registered = false; + return false; + + } + + } + + // QMK will process Backspace instead + // if the shift modifier is not detected + return true; + } +*/ + //https://docs.qmk.fm/#/mod_tap?id=changing-both-tasp-and-hold //https://getreuer.info/posts/keyboards/triggers/index.html#tap-vs.-long-press //https://www.jonashietala.se/series/t-34/ he focuses on a keymap for programming/VIM @@ -49,14 +101,15 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { case TR_LBRC: case TR_LPRN: case TR_SQUO: - case TR_DQUO: case TR_EQL: - case TR_PLUS: - case TR_PIPE: + case TR_BSLS: + case TR_SLSH: case TR_COMM: case TR_DOT: case TR_PERC: case TR_EXLM: + case TR_AT: + case TR_QUES: case TR_MINS: case TR_GRV: case TR_SCLN: diff --git a/users/t4corun/t4corun.h b/users/t4corun/t4corun.h index aa93c6eb..d0281546 100644 --- a/users/t4corun/t4corun.h +++ b/users/t4corun/t4corun.h @@ -9,8 +9,8 @@ enum layers { _COLEMAK_DH, _GAME, _NAVIGATION, - _NUMBER, _SYMBOL, + _NUMBER, _CONFIG }; @@ -21,16 +21,17 @@ enum keycodes { TH_LBRC, TH_LPRN, TH_SQUO, - TH_DQUO, TH_EQL, - TH_PLUS, - TH_PIPE, + TH_BSLS, + TH_SLSH, TH_COMM, TH_DOT, TH_PERC, TH_EXLM, + TH_AT, + TH_QUES, TH_MINS, TH_GRV, @@ -48,8 +49,7 @@ enum keycodes { // momentary layer #define NAV MO(_NAVIGATION) -#define NAV_0 LT(_NAVIGATION, KC_0) -#define NUM MO(_NUMBER) +#define SYM MO(_SYMBOL) #define CONFIG MO(_CONFIG) // Windows Shortcuts @@ -79,71 +79,42 @@ enum keycodes { #define TR_LGUI OSM(MOD_LGUI) -//tap hoLd. These will be intercepted and overridden. The LT will be ignored -#define TR_LCBR LT(_DEFAULT_LAYER_1, TH_LCBR) // bracket behvavior +// tap hoLd. These will be intercepted and overridden. The LT will be ignored +#define TR_LCBR LT(_DEFAULT_LAYER_1, TH_LCBR) // bracket behavior #define TR_LABK LT(_DEFAULT_LAYER_1, TH_LABK) #define TR_LBRC LT(_DEFAULT_LAYER_1, TH_LBRC) #define TR_LPRN LT(_DEFAULT_LAYER_1, TH_LPRN) #define TR_SQUO LT(_DEFAULT_LAYER_1, TH_SQUO) -#define TR_DQUO LT(_DEFAULT_LAYER_1, TH_DQUO) #define TR_EQL LT(_DEFAULT_LAYER_1, TH_EQL) // double tap -#define TR_PLUS LT(_DEFAULT_LAYER_1, TH_PLUS) -#define TR_PIPE LT(_DEFAULT_LAYER_1, TH_PIPE) +#define TR_BSLS LT(_DEFAULT_LAYER_1, TH_BSLS) +#define TR_SLSH LT(_DEFAULT_LAYER_1, TH_SLSH) #define TR_COMM LT(_DEFAULT_LAYER_1, TH_COMM) // custom behavior #define TR_DOT LT(_DEFAULT_LAYER_1, TH_DOT) #define TR_PERC LT(_DEFAULT_LAYER_1, TH_PERC) #define TR_EXLM LT(_DEFAULT_LAYER_1, TH_EXLM) +#define TR_AT LT(_DEFAULT_LAYER_1, TH_AT) +#define TR_QUES LT(_DEFAULT_LAYER_1, TH_QUES) - // basically auto shift -#define TR_MINS LT(_DEFAULT_LAYER_1, TH_MINS) +#define TR_MINS LT(_DEFAULT_LAYER_1, TH_MINS) // auto shift #define TR_GRV LT(_DEFAULT_LAYER_1, TH_GRV) #define TR_SCLN LT(_DEFAULT_LAYER_1, TH_SCLN) #define TR_QUOT LT(_DEFAULT_LAYER_1, TH_QUOT) -#if defined(MOUSEKEY_ENABLE) - -# define TR_MWHU KC_WH_U -# define TR_MWHD KC_WH_D - -# define TR_BTN1 KC_BTN1 -# define TR_BTN2 KC_BTN2 -# define TR_BTN3 KC_BTN3 -# define TR_BTN4 KC_BTN4 -# define TR_BTN5 KC_BTN5 - -# if defined(KEYBOARD_bastardkb_charybdis_3x5) -//these codes are defined in charybdis.h +#if defined(KEYBOARD_bastardkb_charybdis_3x5) +//these mouse codes are defined in charybdis.h # define TR_SNIP SNIPING # define TR_DRGS DRG_TOG # define TR_SDPI S_D_MOD //sniping dpi # define TR_PDPI DPI_MOD //pointer dpi -# else +#else # define TR_SNIP ___x___ # define TR_DRGS PN_DRGS //use host status for ploopy nano drag scroll # define TR_SDPI ___x___ # define TR_PDPI PN_PDPI //use host status for ploopy nano dpi switch -# endif //KEYBOARD_bastardkb_charybdis_3x5 - -#else - -# define TR_MWHU ___x___ -# define TR_MWHD ___x___ - -# define TR_BTN1 ___x___ -# define TR_BTN2 ___x___ -# define TR_BTN3 ___x___ -# define TR_BTN4 ___x___ -# define TR_BTN5 ___x___ - -# define TR_SNIP ___x___ -# define TR_DRGS ___x___ -# define TR_SDPI ___x___ -# define TR_PDPI ___x___ - -#endif //MOUSEKEY_ENABLE +#endif //KEYBOARD_bastardkb_charybdis_3x5 #if defined(DYNAMIC_MACRO_ENABLE) @@ -154,6 +125,7 @@ enum keycodes { # define TR_DMP1 ___x___ #endif //DYNAMIC_MACRO_ENABLE + #if defined(RGB_MATRIX_ENABLE) || defined(RGBLIGHT_ENABLE) # define TR_RHUI RGB_HUI # define TR_RSAI RGB_SAI @@ -173,7 +145,6 @@ enum keycodes { #endif //RGB_MATRIX_ENABLE || RGBLIGHT_ENABLE - #define _DEFAULT_LAYER_1 FIRST_DEFAULT_LAYER #define _DEFAULT_LAYER_2 (FIRST_DEFAULT_LAYER + 1) #define _DEFAULT_LAYER_3 (FIRST_DEFAULT_LAYER + 2) @@ -185,61 +156,60 @@ enum keycodes { #define _SCAG_MODS________________________ TR_LSFT, TR_LCTL, TR_LALT, TR_LGUI #define _UCCPR_L___________________________________ SC_UNDO, SC_CUT, SC_COPY, SC_PAST, SC_REDO -#define _BASE_L4_________________ ___x___, NUM, TR_LSFT +#define _BASE_L4_________________ ___x___, SYM, TR_LSFT #define _BASE_R4_________________ KC_SPC, NAV, KC_MUTE -#define _BASE_ZERO_R4____________ KC_SPC, NAV_0, KC_MUTE #define _LAYER_TRANS_____________ ___x___, _______, ___x___ - //___x___, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___, +//___x___, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___, -#define LAYER_QWERTY \ +#define LAYER_QWERTY \ KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, \ KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, TR_QUOT, \ KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, TR_COMM, TR_DOT, TR_MINS, \ _BASE_L4_________________, _BASE_R4_________________ -#define LAYER_COLEMAK_DH \ +#define LAYER_COLEMAK_DH \ KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, TR_QUOT, \ KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O, \ KC_Z, KC_X, KC_C, KC_D, KC_V, KC_K, KC_H, TR_COMM, TR_DOT, TR_MINS, \ _BASE_L4_________________, _BASE_R4_________________ -#define LAYER_GAME \ +#define LAYER_GAME \ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_7, KC_8, KC_9, KC_ESC, \ KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_4, KC_5, KC_6, KC_GRV, \ KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LALT, KC_1, KC_2, KC_3, CM_TOGG, \ - KC_ENT, KC_SPC, KC_LSFT, _BASE_ZERO_R4____________ + KC_ENT, KC_SPC, KC_LSFT, _BASE_R4_________________ -#define LAYER_NAVIGATION \ - ___x___, KC_HOME, KC_UP, KC_END, KC_PGUP, ___x___, ___x___, TR_SNIP, TR_SDPI, TR_PDPI, \ +#define LAYER_NAVIGATION \ + ___x___, KC_HOME, KC_UP, KC_END, KC_PGUP, ___x___, ___x___, KC_CAPS, KC_PSCR, CONFIG, \ ___x___, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, ___x___, _SCAG_MODS________________________, \ - _UCCPR_L___________________________________, ___x___, KC_APP, KC_VOLD, KC_VOLU, KC_MUTE, \ - ZOOMRST, _______, KC_SPC, _LAYER_TRANS_____________ + _UCCPR_L___________________________________, ___x___, KC_APP, TR_SNIP, TR_SDPI, TR_PDPI, \ + ZOOMRST, SYM, KC_ENT, _LAYER_TRANS_____________ -#define LAYER_NUMBER \ - CONFIG, SC_SNIP, SC_FILE, ___x___, ___x___, ___x___, KC_7, KC_8, KC_9, KC_COMM, \ - _GACS_MODS________________________, ___x___, ___x___, KC_4, KC_5, KC_6, KC_DOT, \ - _UCCPR_L___________________________________, ___x___, KC_1, KC_2, KC_3, TR_MINS, \ - _LAYER_TRANS_____________, _BASE_ZERO_R4____________ +#define LAYER_SYMBOL \ + KC_ESC, KC_BTN3, KC_BTN2, KC_BTN1, TR_GRV, TR_EQL, KC_HASH, TR_LABK, KC_RABK, TR_PERC, \ + _GACS_MODS________________________, TR_SCLN, TR_AT, TR_QUES, TR_LBRC, KC_RBRC, TR_SQUO, \ + _UCCPR_L___________________________________, TR_BSLS, TR_SLSH, TR_LPRN, KC_RPRN, TR_MINS, \ + _LAYER_TRANS_____________, TR_EXLM, _______, ___x___ -#define LAYER_SYMBOL \ - KC_CAPS, KC_PSCR, KC_AT, KC_DLR, TR_GRV, TR_EQL, KC_HASH, KC_ASTR, ___x___, TR_DQUO, \ - KC_AMPR, TR_LCBR, KC_RCBR, TR_PIPE, TR_SCLN, TR_PLUS, KC_QUES, TR_LBRC, KC_RBRC, TR_SQUO, \ - TR_PERC, TR_LABK, KC_RABK, KC_BSLS, TR_EXLM, ___x___, KC_SLSH, TR_LPRN, KC_RPRN, TR_MINS, \ +#define LAYER_NUMBER \ + KC_F7, KC_F5, KC_F3, KC_F1, KC_F9, KC_F8, KC_F10, KC_F2, KC_F4, KC_F6, \ + KC_7, KC_5, KC_3, KC_1, KC_9, KC_8, KC_0, KC_2, KC_4, KC_6, \ + KC_MUTE, KC_VOLD, KC_VOLU, KC_MNXT, KC_MPLY, KC_F11, KC_F12, TR_COMM, TR_DOT, TR_MINS, \ _LAYER_TRANS_____________, _LAYER_TRANS_____________ -#define LAYER_CONFIG \ - _______, ___x___, ___x___, ___x___, ___x___, ___x___, KC_F7, KC_F8, KC_F9, KC_F10, \ - ___x___, ___x___, ___x___, TR_LSFT, ___x___, ___x___, KC_F4, KC_F5, KC_F6, KC_F11, \ - TR_RHUI, TR_RSAI, TR_RVAI, TR_RSPI, ___x___, ___x___, KC_F1, KC_F2, KC_F3, KC_F12, \ - TR_RTOG, EE_CLR, QK_BOOT, TR_DMP1, TR_DMR1, BASELYR +#define LAYER_CONFIG \ + _NONE_5____________________________________, ___x___, ___x___, EE_CLR, QK_BOOT, _______, \ + _NONE_5____________________________________, ___x___, TR_LSFT, ___x___, ___x___, TR_RMOD, \ + _NONE_5____________________________________, TR_RTOG, TR_RHUI, TR_RSAI, TR_RVAI, TR_RSPI, \ + BASELYR, ___x___, ___x___, TR_DMP1, TR_DMR1, TR_RTOG /* If I was going to combine number and symbols together, it'd look like this