From ceeb143cbfc24827d3d17907f30d32b78627d15d Mon Sep 17 00:00:00 2001 From: Sadek Baroudi Date: Sun, 2 Mar 2025 14:36:32 -0800 Subject: [PATCH] smallcat personal keyboard configuration --- .../fingerpunch/personal/smallcat/config.h | 5 + .../personal/smallcat/keyboard.json | 87 ++++ .../smallcat/keymaps/default/keymap.c | 27 ++ .../smallcat/keymaps/default/rules.mk | 1 + .../smallcat/keymaps/sadekbaroudi/keymap.c | 98 +++++ .../smallcat/keymaps/sadekbaroudi/rules.mk | 1 + .../personal/smallcat/keymaps/vial/config.h | 25 ++ .../personal/smallcat/keymaps/vial/keymap.c | 31 ++ .../personal/smallcat/keymaps/vial/rules.mk | 15 + .../personal/smallcat/keymaps/vial/vial.json | 144 +++++++ .../fingerpunch/personal/smallcat/readme.md | 13 + .../fingerpunch/personal/smallcat/rules.mk | 4 + .../fingerpunch/personal/smallcat/smallcat.c | 1 + .../fingerpunch/personal/smallcat/smallcat.h | 3 + users/sadekbaroudi/combos.c | 372 +++++++++++++++++- users/sadekbaroudi/combos.h | 70 +++- users/sadekbaroudi/config.h | 11 +- users/sadekbaroudi/rules.mk | 3 + users/sadekbaroudi/sadekbaroudi.c | 5 + users/sadekbaroudi/tapdances.c | 0 users/sadekbaroudi/tapdances.h | 0 users/sadekbaroudi/wrappers.h | 129 ++++-- 22 files changed, 1000 insertions(+), 45 deletions(-) create mode 100644 keyboards/fingerpunch/personal/smallcat/config.h create mode 100644 keyboards/fingerpunch/personal/smallcat/keyboard.json create mode 100644 keyboards/fingerpunch/personal/smallcat/keymaps/default/keymap.c create mode 100644 keyboards/fingerpunch/personal/smallcat/keymaps/default/rules.mk create mode 100644 keyboards/fingerpunch/personal/smallcat/keymaps/sadekbaroudi/keymap.c create mode 100644 keyboards/fingerpunch/personal/smallcat/keymaps/sadekbaroudi/rules.mk create mode 100644 keyboards/fingerpunch/personal/smallcat/keymaps/vial/config.h create mode 100644 keyboards/fingerpunch/personal/smallcat/keymaps/vial/keymap.c create mode 100644 keyboards/fingerpunch/personal/smallcat/keymaps/vial/rules.mk create mode 100644 keyboards/fingerpunch/personal/smallcat/keymaps/vial/vial.json create mode 100644 keyboards/fingerpunch/personal/smallcat/readme.md create mode 100644 keyboards/fingerpunch/personal/smallcat/rules.mk create mode 100644 keyboards/fingerpunch/personal/smallcat/smallcat.c create mode 100644 keyboards/fingerpunch/personal/smallcat/smallcat.h create mode 100644 users/sadekbaroudi/tapdances.c create mode 100644 users/sadekbaroudi/tapdances.h diff --git a/keyboards/fingerpunch/personal/smallcat/config.h b/keyboards/fingerpunch/personal/smallcat/config.h new file mode 100644 index 0000000000..844dfe9a4c --- /dev/null +++ b/keyboards/fingerpunch/personal/smallcat/config.h @@ -0,0 +1,5 @@ +#pragma once + +#include "keyboards/fingerpunch/src/config_pre.h" + +#include "keyboards/fingerpunch/src/config_post.h" diff --git a/keyboards/fingerpunch/personal/smallcat/keyboard.json b/keyboards/fingerpunch/personal/smallcat/keyboard.json new file mode 100644 index 0000000000..2a1548aaac --- /dev/null +++ b/keyboards/fingerpunch/personal/smallcat/keyboard.json @@ -0,0 +1,87 @@ +{ + "manufacturer": "Matt Petiteau", + "keyboard_name": "smallcat", + "url": "https://github.com/smallwat3r/smallcat", + "maintainer": "smallwat3r", + "usb": { + "vid": "0xFEED", + "pid": "0x0000", + "device_version": "1.0.0" + }, + "board": "GENERIC_RP_RP2040", + "bootloader": "rp2040", + "processor": "RP2040", + "features": { + "extrakey": true, + "mousekey": true, + "unicode": true + }, + "matrix_pins": { + "direct": [ + [null, "GP26", "GP27", "GP28", null], + ["GP15", "GP14", "GP13", "GP12", "GP0"], + [null, "GP5", "GP6", "GP7", null], + ["GP10", "GP11", null, null, null] + ] + }, + "split": { + "enabled": true, + "matrix_pins": { + "right": { + "direct": [ + [null, "GP28", "GP27", "GP26", null], + ["GP0", "GP12", "GP13", "GP14", "GP15"], + [null, "GP7", "GP6", "GP5", null], + ["GP11", "GP10", null, null, null] + ] + } + }, + "transport": { + "protocol": "serial" + }, + "soft_serial_pin": "GP1" + }, + "layout_aliases": { + "LAYOUT": "LAYOUT_smallcat" + }, + "layouts": { + "LAYOUT_smallcat": { + "layout": + [ + {"x": 1, "y": 0.31, "matrix": [0, 1]}, + {"x": 2, "y": 0, "matrix": [0, 2]}, + {"x": 3, "y": 0.28, "matrix": [0, 3]}, + + {"x": 8, "y": 0.28, "matrix": [4, 1]}, + {"x": 9, "y": 0, "matrix": [4, 2]}, + {"x": 10, "y": 0.31, "matrix": [4, 3]}, + + {"x": 0, "y": 1.93, "matrix": [1, 0]}, + {"x": 1, "y": 1.31, "matrix": [1, 1]}, + {"x": 2, "y": 1, "matrix": [1, 2]}, + {"x": 3, "y": 1.28, "matrix": [1, 3]}, + {"x": 4, "y": 1.42, "matrix": [1, 4]}, + + {"x": 7, "y": 1.42, "matrix": [5, 0]}, + {"x": 8, "y": 1.28, "matrix": [5, 1]}, + {"x": 9, "y": 1, "matrix": [5, 2]}, + {"x": 10, "y": 1.31, "matrix": [5, 3]}, + {"x": 11, "y": 1.93, "matrix": [5, 4]}, + + {"x": 1, "y": 2.31, "matrix": [2, 1]}, + {"x": 2, "y": 2, "matrix": [2, 2]}, + {"x": 3, "y": 2.28, "matrix": [2, 3]}, + + {"x": 8, "y": 2.28, "matrix": [6, 1]}, + {"x": 9, "y": 2, "matrix": [6, 2]}, + {"x": 10, "y": 2.31, "matrix": [6, 3]}, + + {"x": 3.5, "y": 3.75, "matrix": [3, 0]}, + {"x": 4.5, "y": 4, "matrix": [3, 1]}, + + {"x": 6.5, "y": 4, "matrix": [7, 0]}, + {"x": 7.5, "y": 3.75, "matrix": [7, 1]} + ] + } + } +} diff --git a/keyboards/fingerpunch/personal/smallcat/keymaps/default/keymap.c b/keyboards/fingerpunch/personal/smallcat/keymaps/default/keymap.c new file mode 100644 index 0000000000..2f99c07e2f --- /dev/null +++ b/keyboards/fingerpunch/personal/smallcat/keymaps/default/keymap.c @@ -0,0 +1,27 @@ +#include QMK_KEYBOARD_H + +/* default generic keymap */ +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_split_3x5_2( + KC_W, KC_F, KC_P, KC_L, KC_U, KC_Y, + KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O, + KC_Q, KC_C, KC_D, KC_H, KC_COMM, KC_DOT, + KC_TRNS, KC_SPC, KC_BSPC, KC_ENT + ) +}; + +/* combo definitions */ +const uint16_t PROGMEM combo_x[] = {KC_W, KC_F, COMBO_END}; +const uint16_t PROGMEM combo_b[] = {KC_F, KC_P, COMBO_END}; +const uint16_t PROGMEM combo_z[] = {KC_Q, KC_C, COMBO_END}; +const uint16_t PROGMEM combo_v[] = {KC_C, KC_D, COMBO_END}; +const uint16_t PROGMEM combo_j[] = {KC_L, KC_U, COMBO_END}; +const uint16_t PROGMEM combo_k[] = {KC_H, KC_COMM, COMBO_END}; +combo_t key_combos[] = { + COMBO(combo_x, KC_X), + COMBO(combo_b, KC_B), + COMBO(combo_z, KC_Z), + COMBO(combo_v, KC_V), + COMBO(combo_j, KC_J), + COMBO(combo_k, KC_K), +}; diff --git a/keyboards/fingerpunch/personal/smallcat/keymaps/default/rules.mk b/keyboards/fingerpunch/personal/smallcat/keymaps/default/rules.mk new file mode 100644 index 0000000000..ab1e438182 --- /dev/null +++ b/keyboards/fingerpunch/personal/smallcat/keymaps/default/rules.mk @@ -0,0 +1 @@ +COMBO_ENABLE = yes diff --git a/keyboards/fingerpunch/personal/smallcat/keymaps/sadekbaroudi/keymap.c b/keyboards/fingerpunch/personal/smallcat/keymaps/sadekbaroudi/keymap.c new file mode 100644 index 0000000000..f9c6557374 --- /dev/null +++ b/keyboards/fingerpunch/personal/smallcat/keymaps/sadekbaroudi/keymap.c @@ -0,0 +1,98 @@ +/* Copyright 2025 Sadek Baroudi + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "sadekbaroudi.h" +#include QMK_KEYBOARD_H + +/* + * The `LAYOUT_ffkb_base` macro is a template to allow the use of identical + * modifiers for the default layouts (eg ALPHA_ALT, Colemak, Dvorak, etc), so + * that there is no need to set them up for each layout, and modify all of + * them if I want to change them. This helps to keep consistency and ease + * of use. K## is a placeholder to pass through the individual keycodes + */ + +// clang-format off +#define LAYOUT_smallcat_base( \ + K02, K03, K04, K07, K08, K09, \ + K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \ + K22, K23, K24, K27, K28, K29, \ + K34, K35, K36, K37 \ + ) \ + LAYOUT_wrapper( \ + K02, K03, K04, K07, K08, K09, \ + LCTL_T(K11), LGUI_T(K12), LALT_T(K13), LSFT_T(K14), K15, LT(_MOUSE, K16), RSFT_T(K17), RALT_T(K18), RGUI_T(K19), RCTL_T(K1A), \ + K22, K23, K24, K27, K28, K29, \ + LT(_FUNCTION,K34), LT(_NAVIGATION,K35), LT(_SYMBOLS,K36), LT(_MEDIA,K37) \ + ) + +/* Re-pass though to allow templates to be used */ +#define LAYOUT_smallcat_base_wrapper(...) LAYOUT_smallcat_base(__VA_ARGS__) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_ALPHA_ALT] = LAYOUT_smallcat_base_wrapper( + __ALPHA_ALT_L1_K2__, __ALPHA_ALT_L1_K3__, __ALPHA_ALT_L1_K4__, __ALPHA_ALT_R1_K2__, __ALPHA_ALT_R1_K3__, __ALPHA_ALT_R1_K4__, + _________________ALPHA_ALT_L2_________________, _________________ALPHA_ALT_R2_________________, + __ALPHA_ALT_L3_K2__, __ALPHA_ALT_L3_K3__, __ALPHA_ALT_L3_K4__, __ALPHA_ALT_R3_K2__, __ALPHA_ALT_R3_K3__, __ALPHA_ALT_R3_K4__, + __ALPHA_ALT_THUMBS_LEFT_2_TUCKY__, __ALPHA_ALT_THUMBS_RIGHT_2_TUCKY__ + ), + + [_ALPHA] = LAYOUT_smallcat_base_wrapper( + __ALPHA_L1_K2__, __ALPHA_L1_K3__, __ALPHA_L1_K4__, __ALPHA_R1_K2__, __ALPHA_R1_K3__, __ALPHA_R1_K4__, + __________________ALPHA_L2____________________, __________________ALPHA_R2____________________, + __ALPHA_L3_K2__, __ALPHA_L3_K3__, __ALPHA_L3_K4__, __ALPHA_R3_K2__, __ALPHA_R3_K3__, __ALPHA_R3_K4__, + __ALPHA_THUMBS_LEFT_2_TUCKY__, __ALPHA_THUMBS_RIGHT_2_TUCKY__ +), + + [_NAVIGATION] = LAYOUT_wrapper( + __NAV_1_K2__, __NAV_1_K3__, __NAV_1_K4__, __NUMPAD_1_K2__, __NUMPAD_1_K3__, __NUMPAD_1_K4__, + ________________NAVIGATION_2_______________, _________________NUMPAD_2__________________, + __NAV_3_K2__, __NAV_3_K3__, __NAV_3_K4__, __NUMPAD_3_K2__, __NUMPAD_3_K3__, __NUMPAD_3_K4__, + _______, _______, /*KC_TAB, KC_BSPC,*/ KC_SPACE, KC_DOT + ), + + [_SYMBOLS] = LAYOUT_wrapper( + __SYMBOLS_L1_K2__, __SYMBOLS_L1_K3__, __SYMBOLS_L1_K4__, __SYMBOLS_R1_K2__, __SYMBOLS_R1_K3__, __SYMBOLS_R1_K4__, + ________________SYMBOLS_L2_________________, ________________SYMBOLS_R2_________________, + __META_NAV_L1_K2__, __META_NAV_L1_K3__, __META_NAV_L1_K4__, __META_NAV_L2_K2__, __META_NAV_L2_K3__, __META_NAV_L2_K4__, + _______, KC_ENT, /*KC_DEL, KC_BSPC,*/ _______, _______ + ), + + [_FUNCTION] = LAYOUT_wrapper( + __SHIFTNAV_1_K2__, __SHIFTNAV_1_K3__, __SHIFTNAV_1_K4__, __FUNCTION_1_K2__, __FUNCTION_1_K3__, __FUNCTION_1_K4__, + ________________SHIFTNAV_2_________________, ________________FUNCTION_2_________________, + __SHIFTNAV_3_K2__, __SHIFTNAV_3_K3__, __SHIFTNAV_3_K4__, __FUNCTION_3_K2__, __FUNCTION_3_K3__, __FUNCTION_3_K4__, + _______, _______, /*_______, N_DEL_LINE,*/ KC_SPACE, _______ + ), + + [_MEDIA] = LAYOUT_wrapper( + __RGB_1_K2__, __RGB_1_K3__, __RGB_1_K4__, __MACROS_1_K2__, __MACROS_1_K3__, __MACROS_1_K4__, + __RGB_2_K1__, __RGB_2_K2__, __RGB_2_K3__, __RGB_2_K4__, __RGB_2_K5__, _________________MACROS_2__________________, + __RGB_3_K2__, __RGB_3_K3__, __RGB_3_K4__, __MACROS_3_K2__, __MACROS_3_K3__, __MACROS_3_K4__, + _______, _______, /*_______, _______,*/ _______, _______ + ), + + [_MOUSE] = LAYOUT_wrapper( + __MOUSE_1_K2__, __MOUSE_1_K3__, __MOUSE_1_K4__, _______, _______, _______, + __________________MOUSE_2__________________, _______, _______, _______, _______, _______, + __MOUSE_3_K2__, __MOUSE_3_K3__, __MOUSE_3_K4__, _______, _______, _______, + _______, KC_MS_BTN1, /*KC_MS_BTN3, KC_MS_BTN3,*/ KC_MS_BTN2, _______ + ) +}; + +// Combo definitions in +// users/sadekbaroudi/combos.c diff --git a/keyboards/fingerpunch/personal/smallcat/keymaps/sadekbaroudi/rules.mk b/keyboards/fingerpunch/personal/smallcat/keymaps/sadekbaroudi/rules.mk new file mode 100644 index 0000000000..ab1e438182 --- /dev/null +++ b/keyboards/fingerpunch/personal/smallcat/keymaps/sadekbaroudi/rules.mk @@ -0,0 +1 @@ +COMBO_ENABLE = yes diff --git a/keyboards/fingerpunch/personal/smallcat/keymaps/vial/config.h b/keyboards/fingerpunch/personal/smallcat/keymaps/vial/config.h new file mode 100644 index 0000000000..3df605a182 --- /dev/null +++ b/keyboards/fingerpunch/personal/smallcat/keymaps/vial/config.h @@ -0,0 +1,25 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#pragma once + +#define DYNAMIC_KEYMAP_LAYER_COUNT 8 +#define VIAL_TAP_DANCE_ENTRIES 20 +#define VIAL_COMBO_ENTRIES 40 + +#define VIAL_KEYBOARD_UID {0xDA, 0x2A, 0xFA, 0x9D, 0x66, 0xE4, 0x31, 0x52} +#define VIAL_UNLOCK_COMBO_ROWS { 0, 1 } +#define VIAL_UNLOCK_COMBO_COLS { 1, 4 } + +#define NO_ALT_REPEAT_KEY + +/* make use of the mounted WS2812 led from the Waveshare RP2040-zero */ +#ifdef RGBLIGHT_ENABLE +# define RGBLIGHT_LED_COUNT 1 +# define RGBLIGHT_SPLIT +# define RGBLIGHT_DEFAULT_HUE 110 +# define RGBLIGHT_LIMIT_VAL 10 +# define RGBLIGHT_SLEEP +# define RGBLIGHT_LAYERS +# define RGBLIGHT_HUE_STEP 20 +# define WS2812_DI_PIN GP16 +#endif diff --git a/keyboards/fingerpunch/personal/smallcat/keymaps/vial/keymap.c b/keyboards/fingerpunch/personal/smallcat/keymaps/vial/keymap.c new file mode 100644 index 0000000000..bd3b721899 --- /dev/null +++ b/keyboards/fingerpunch/personal/smallcat/keymaps/vial/keymap.c @@ -0,0 +1,31 @@ +#include QMK_KEYBOARD_H + +#ifdef RGBLIGHT_ENABLE + const rgblight_segment_t PROGMEM capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 1, HSV_RED}); + const rgblight_segment_t PROGMEM osm_shift_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 1, HSV_YELLOW}); + + const rgblight_segment_t* const PROGMEM rgb_layers[] = RGBLIGHT_LAYERS_LIST(capslock_layer, osm_shift_layer); + void keyboard_post_init_user(void) { rgblight_layers = rgb_layers; } + + /* light up led in red when caps lock in on */ + bool led_update_user(led_t led_state) { + rgblight_set_layer_state(0, led_state.caps_lock); + return true; + } + + /* light up led in yellow when sticky shift is activated */ + void oneshot_mods_changed_user(uint8_t mods) { + if (mods & MOD_MASK_SHIFT) { rgblight_set_layer_state(1, true); } + if (!mods) { rgblight_set_layer_state(1, false); } + } +#endif + +/* default empty layout */ +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_split_3x5_2( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/fingerpunch/personal/smallcat/keymaps/vial/rules.mk b/keyboards/fingerpunch/personal/smallcat/keymaps/vial/rules.mk new file mode 100644 index 0000000000..b32a55da7a --- /dev/null +++ b/keyboards/fingerpunch/personal/smallcat/keymaps/vial/rules.mk @@ -0,0 +1,15 @@ +VIA_ENABLE = yes +VIAL_ENABLE = yes +LTO_ENABLE = yes +TAP_DANCE_ENABLE = yes +MOUSEKEY_ENABLE = yes +EXTRAKEY_ENABLE = yes +REPEAT_KEY_ENABLE = yes +COMBO_ENABLE = yes +QMK_SETTINGS = yes + +RGBLIGHT_ENABLE = yes +WS2812_DRIVER = vendor + +KEY_OVERRIDE_ENABLE = no +VIAL_INSECURE = no diff --git a/keyboards/fingerpunch/personal/smallcat/keymaps/vial/vial.json b/keyboards/fingerpunch/personal/smallcat/keymaps/vial/vial.json new file mode 100644 index 0000000000..d75a3c0261 --- /dev/null +++ b/keyboards/fingerpunch/personal/smallcat/keymaps/vial/vial.json @@ -0,0 +1,144 @@ +{ + "name": "smallcat", + "firmwareVersion": 0, + "keycodes": [ + "via/keycodes" + ], + "menus": [ + "via/keymap", + "via/layouts", + "via/macros", + "via/save_load" + ], + "matrix": { + "rows": 8, + "cols": 5 + }, + "layouts": { + "keymap": [ + [ + { + "x": 2 + }, + "0,2", + { + "x": 5.25 + }, + "4,2" + ], + [ + { + "y": -0.75, + "x": 1 + }, + "0,1", + { + "x": 1 + }, + "0,3", + { + "x": 3.25 + }, + "4,1", + { + "x": 1 + }, + "4,3" + ], + [ + { + "y": -0.25, + "x": 2 + }, + "1,2", + { + "x": 5.25 + }, + "5,2" + ], + [ + { + "y": -0.75, + "x": 1 + }, + "1,1", + { + "x": 1 + }, + "1,3", + "1,4", + { + "x": 1.25 + }, + "5,0", + "5,1", + { + "x": 1 + }, + "5,3" + ], + [ + { + "y": -0.5 + }, + "1,0", + { + "x": 9.25 + }, + "5,4" + ], + [ + { + "y": -0.75, + "x": 2 + }, + "2,2", + { + "x": 5.25 + }, + "6,2" + ], + [ + { + "y": -0.75, + "x": 1 + }, + "2,1", + { + "x": 1 + }, + "2,3", + { + "x": 3.25 + }, + "6,1", + { + "x": 1 + }, + "6,3" + ], + [ + { + "y": 0.25, + "x": 3.5 + }, + "3,0", + { + "x": 2.25 + }, + "7,1" + ], + [ + { + "y": -0.75, + "x": 4.5 + }, + "3,1", + { + "x": 0.25 + }, + "7,0" + ] + ] + } +} diff --git a/keyboards/fingerpunch/personal/smallcat/readme.md b/keyboards/fingerpunch/personal/smallcat/readme.md new file mode 100644 index 0000000000..98535edaec --- /dev/null +++ b/keyboards/fingerpunch/personal/smallcat/readme.md @@ -0,0 +1,13 @@ +# Smallcat + +![smallcat](https://raw.githubusercontent.com/smallwat3r/smallcat/refs/heads/main/images/smallcat.png) + +A 26-key split keyboard. [More info](https://github.com/smallwat3r/smallcat). + +* Keyboard Maintainer: [Matt Petiteau](https://github.com/smallwat3r/) + +Make example for this keyboard (after setting up your build environment): + + make smallcat:vial + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/fingerpunch/personal/smallcat/rules.mk b/keyboards/fingerpunch/personal/smallcat/rules.mk new file mode 100644 index 0000000000..4a7a26fca5 --- /dev/null +++ b/keyboards/fingerpunch/personal/smallcat/rules.mk @@ -0,0 +1,4 @@ +# MCU name +SERIAL_DRIVER = vendor + +include keyboards/fingerpunch/src/rules.mk diff --git a/keyboards/fingerpunch/personal/smallcat/smallcat.c b/keyboards/fingerpunch/personal/smallcat/smallcat.c new file mode 100644 index 0000000000..17fb178313 --- /dev/null +++ b/keyboards/fingerpunch/personal/smallcat/smallcat.c @@ -0,0 +1 @@ +#include "smallcat.h" diff --git a/keyboards/fingerpunch/personal/smallcat/smallcat.h b/keyboards/fingerpunch/personal/smallcat/smallcat.h new file mode 100644 index 0000000000..258956cac6 --- /dev/null +++ b/keyboards/fingerpunch/personal/smallcat/smallcat.h @@ -0,0 +1,3 @@ +#pragma once +#include "quantum.h" +#include "keyboards/fingerpunch/src/fp.h" diff --git a/users/sadekbaroudi/combos.c b/users/sadekbaroudi/combos.c index 7f587d78df..41bb53758c 100644 --- a/users/sadekbaroudi/combos.c +++ b/users/sadekbaroudi/combos.c @@ -22,6 +22,66 @@ const uint16_t PROGMEM rparen_combo[] = {RSFT_T(KC_N), KC_H, COMBO_END}; const uint16_t PROGMEM rcurly_combo[] = {RALT_T(KC_E), KC_COMMA, COMBO_END}; const uint16_t PROGMEM rbracket_combo[] = {RGUI_T(KC_I), KC_DOT, COMBO_END}; #endif +#ifdef KEYBOARD_fingerpunch_personal_smallcat +// Corner keys +// Base layer +const uint16_t PROGMEM q_combo[] = {KC_W, KC_F, COMBO_END}; +const uint16_t PROGMEM b_combo[] = {KC_F, KC_P, COMBO_END}; +const uint16_t PROGMEM z_combo[] = {KC_X, KC_C, COMBO_END}; +const uint16_t PROGMEM v_combo[] = {KC_C, KC_D, COMBO_END}; +const uint16_t PROGMEM j_combo[] = {KC_L, KC_U, COMBO_END}; +const uint16_t PROGMEM k_combo[] = {KC_H, KC_COMM, COMBO_END}; +const uint16_t PROGMEM semi_combo[] = {KC_U, KC_Y, COMBO_END}; +const uint16_t PROGMEM slash_combo[] = {KC_COMM, KC_DOT, COMBO_END}; +// Nav section +const uint16_t PROGMEM nav_tl_combo[] = {__NAV_1_K2__, __NAV_1_K3__, COMBO_END}; +const uint16_t PROGMEM nav_tr_combo[] = {__NAV_1_K3__, __NAV_1_K4__, COMBO_END}; +const uint16_t PROGMEM nav_bl_combo[] = {__NAV_3_K2__, __NAV_3_K3__, COMBO_END}; +const uint16_t PROGMEM nav_br_combo[] = {__NAV_3_K3__, __NAV_3_K4__, COMBO_END}; +// Numpad section +const uint16_t PROGMEM num_tl_combo[] = {__NUMPAD_1_K2__, __NUMPAD_1_K3__, COMBO_END}; +const uint16_t PROGMEM num_tr_combo[] = {__NUMPAD_1_K3__, __NUMPAD_1_K4__, COMBO_END}; +const uint16_t PROGMEM num_bl_combo[] = {__NUMPAD_3_K2__, __NUMPAD_3_K3__, COMBO_END}; +const uint16_t PROGMEM num_br_combo[] = {__NUMPAD_3_K3__, __NUMPAD_3_K4__, COMBO_END}; +// Symbols section +const uint16_t PROGMEM sym_l_tl_combo[] = {__SYMBOLS_L1_K2__, __SYMBOLS_L1_K3__, COMBO_END}; +const uint16_t PROGMEM sym_l_tr_combo[] = {__SYMBOLS_L1_K3__, __SYMBOLS_L1_K4__, COMBO_END}; +const uint16_t PROGMEM sym_l_bl_combo[] = {__META_NAV_L1_K2__, __META_NAV_L1_K3__, COMBO_END}; +const uint16_t PROGMEM sym_l_br_combo[] = {__META_NAV_L1_K3__, __META_NAV_L1_K4__, COMBO_END}; +const uint16_t PROGMEM sym_r_tl_combo[] = {__SYMBOLS_R1_K2__, __SYMBOLS_R1_K3__, COMBO_END}; +const uint16_t PROGMEM sym_r_tr_combo[] = {__SYMBOLS_R1_K3__, __SYMBOLS_R1_K4__, COMBO_END}; +const uint16_t PROGMEM sym_r_bl_combo[] = {__META_NAV_L2_K2__, __META_NAV_L2_K3__, COMBO_END}; +const uint16_t PROGMEM sym_r_br_combo[] = {__META_NAV_L2_K3__, __META_NAV_L2_K4__, COMBO_END}; +// Shift Nav section +const uint16_t PROGMEM shiftnav_tl_combo[] = {__SHIFTNAV_1_K2__, __SHIFTNAV_1_K3__, COMBO_END}; +const uint16_t PROGMEM shiftnav_tr_combo[] = {__SHIFTNAV_1_K3__, __SHIFTNAV_1_K4__, COMBO_END}; +const uint16_t PROGMEM shiftnav_bl_combo[] = {__SHIFTNAV_3_K2__, __SHIFTNAV_3_K3__, COMBO_END}; +const uint16_t PROGMEM shiftnav_br_combo[] = {__SHIFTNAV_3_K3__, __SHIFTNAV_3_K4__, COMBO_END}; +// Function section +const uint16_t PROGMEM function_tl_combo[] = {__FUNCTION_1_K2__, __FUNCTION_1_K3__, COMBO_END}; +const uint16_t PROGMEM function_tr_combo[] = {__FUNCTION_1_K3__, __FUNCTION_1_K4__, COMBO_END}; +const uint16_t PROGMEM function_bl_combo[] = {__FUNCTION_3_K2__, __FUNCTION_3_K3__, COMBO_END}; +const uint16_t PROGMEM function_br_combo[] = {__FUNCTION_3_K3__, __FUNCTION_3_K4__, COMBO_END}; +// RGB section +const uint16_t PROGMEM rgb_tl_combo[] = {__RGB_1_K2__, __RGB_1_K3__, COMBO_END}; +const uint16_t PROGMEM rgb_tr_combo[] = {__RGB_1_K3__, __RGB_1_K4__, COMBO_END}; +const uint16_t PROGMEM rgb_bl_combo[] = {__RGB_3_K2__, __RGB_3_K3__, COMBO_END}; +const uint16_t PROGMEM rgb_br_combo[] = {__RGB_3_K3__, __RGB_3_K4__, COMBO_END}; +// Macros section +const uint16_t PROGMEM macros_tl_combo[] = {__MACROS_1_K2__, __MACROS_1_K3__, COMBO_END}; +const uint16_t PROGMEM macros_tr_combo[] = {__MACROS_1_K3__, __MACROS_1_K4__, COMBO_END}; +const uint16_t PROGMEM macros_bl_combo[] = {__MACROS_3_K2__, __MACROS_3_K3__, COMBO_END}; +const uint16_t PROGMEM macros_br_combo[] = {__MACROS_3_K3__, __MACROS_3_K4__, COMBO_END}; +// Thumbs +const uint16_t PROGMEM thumb_l_combo[] = {LSFT_T(__ALPHA_L2_K4__), __ALPHA_L2_K5__, COMBO_END}; +const uint16_t PROGMEM thumb_r_combo[] = {LT(_MOUSE, __ALPHA_R2_K1__), RSFT_T(__ALPHA_R2_K2__), COMBO_END}; +const uint16_t PROGMEM alt_thumb_l_combo[] = {LSFT_T(__ALPHA_ALT_L2_K4__), __ALPHA_ALT_L2_K5__, COMBO_END}; +const uint16_t PROGMEM alt_thumb_r_combo[] = {LT(_MOUSE, __ALPHA_ALT_R2_K1__), RSFT_T(__ALPHA_ALT_R2_K2__), COMBO_END}; +const uint16_t PROGMEM thumb_l_reachy_nav_combo[] = {__NAV_2_K4__, __NAV_2_K5__, COMBO_END}; +const uint16_t PROGMEM thumb_r_reachy_num_combo[] = {__NUMPAD_2_K1__, __NUMPAD_2_K2__, COMBO_END}; +const uint16_t PROGMEM thumb_l_reachy_sym_combo[] = {__SYMBOLS_L2_K4__, __SYMBOLS_L2_K5__, COMBO_END}; +const uint16_t PROGMEM thumb_r_reachy_sym_combo[] = {__SYMBOLS_R1_K1__, __SYMBOLS_R1_K2__, COMBO_END}; +#endif combo_t key_combos[COMBO_COUNT] = { [UNDO] = COMBO_ACTION(undo_combo), @@ -41,6 +101,65 @@ combo_t key_combos[COMBO_COUNT] = { [RCURLY] = COMBO_ACTION(rcurly_combo), [RBRACKET] = COMBO_ACTION(rbracket_combo), #endif +#ifdef KEYBOARD_fingerpunch_personal_smallcat +// Base layer + [Q] = COMBO_ACTION(q_combo), + [B] = COMBO_ACTION(b_combo), + [Z] = COMBO_ACTION(z_combo), + [V] = COMBO_ACTION(v_combo), + [J] = COMBO_ACTION(j_combo), + [K] = COMBO_ACTION(k_combo), + [SEMICOLON] = COMBO_ACTION(semi_combo), + [SLASH] = COMBO_ACTION(slash_combo), +// Nav section + [NAV_TL] = COMBO_ACTION(nav_tl_combo), + [NAV_TR] = COMBO_ACTION(nav_tr_combo), + [NAV_BL] = COMBO_ACTION(nav_bl_combo), + [NAV_BR] = COMBO_ACTION(nav_br_combo), +// Numpad section + [NUM_TL] = COMBO_ACTION(num_tl_combo), + [NUM_TR] = COMBO_ACTION(num_tr_combo), + [NUM_BL] = COMBO_ACTION(num_bl_combo), + [NUM_BR] = COMBO_ACTION(num_br_combo), +// Symbols section + [SYM_L_TL] = COMBO_ACTION(sym_l_tl_combo), + [SYM_L_TR] = COMBO_ACTION(sym_l_tr_combo), + [SYM_L_BL] = COMBO_ACTION(sym_l_bl_combo), + [SYM_L_BR] = COMBO_ACTION(sym_l_br_combo), + [SYM_R_TL] = COMBO_ACTION(sym_r_tl_combo), + [SYM_R_TR] = COMBO_ACTION(sym_r_tr_combo), + [SYM_R_BL] = COMBO_ACTION(sym_r_bl_combo), + [SYM_R_BR] = COMBO_ACTION(sym_r_br_combo), +// Shift Nav section + [SHIFTNAV_TL] = COMBO_ACTION(shiftnav_tl_combo), + [SHIFTNAV_TR] = COMBO_ACTION(shiftnav_tr_combo), + [SHIFTNAV_BL] = COMBO_ACTION(shiftnav_bl_combo), + [SHIFTNAV_BR] = COMBO_ACTION(shiftnav_br_combo), +// Function section + [FUNCTION_TL] = COMBO_ACTION(function_tl_combo), + [FUNCTION_TR] = COMBO_ACTION(function_tr_combo), + [FUNCTION_BL] = COMBO_ACTION(function_bl_combo), + [FUNCTION_BR] = COMBO_ACTION(function_br_combo), +// RGB section + [RGB_TL] = COMBO_ACTION(rgb_tl_combo), + [RGB_TR] = COMBO_ACTION(rgb_tr_combo), + [RGB_BL] = COMBO_ACTION(rgb_bl_combo), + [RGB_BR] = COMBO_ACTION(rgb_br_combo), +// Macros section + [MACROS_TL] = COMBO_ACTION(macros_tl_combo), + [MACROS_TR] = COMBO_ACTION(macros_tr_combo), + [MACROS_BL] = COMBO_ACTION(macros_bl_combo), + [MACROS_BR] = COMBO_ACTION(macros_br_combo), +// Thumbs + [THUMB_L] = COMBO_ACTION(thumb_l_combo), + [THUMB_R] = COMBO_ACTION(thumb_r_combo), + [ALT_THUMB_L] = COMBO_ACTION(alt_thumb_l_combo), + [ALT_THUMB_R] = COMBO_ACTION(alt_thumb_r_combo), + [THUMB_L_REACHY_NAV] = COMBO_ACTION(thumb_l_reachy_nav_combo), + [THUMB_R_REACHY_NUM] = COMBO_ACTION(thumb_r_reachy_num_combo), + [THUMB_L_REACHY_SYM] = COMBO_ACTION(thumb_l_reachy_sym_combo), + [THUMB_R_REACHY_SYM] = COMBO_ACTION(thumb_r_reachy_sym_combo), +#endif }; void process_combo_event(uint16_t combo_index, bool pressed) { @@ -52,7 +171,7 @@ void process_combo_event(uint16_t combo_index, bool pressed) { tap_code16(LCTL(KC_Z)); } break; -#ifdef KEYBOARD_fingerpunch_arachnophobe +#if defined(KEYBOARD_fingerpunch_arachnophobe) case Q: if (pressed) { tap_code16(KC_Q); @@ -123,8 +242,257 @@ void process_combo_event(uint16_t combo_index, bool pressed) { tap_code16(RBRACKET); } break; +#elif defined(KEYBOARD_fingerpunch_personal_smallcat) + case Q: + if (pressed) { + tap_code16(KC_Q); + } + break; + case B: + if (pressed) { + tap_code16(KC_B); + } + break; + case Z: + if (pressed) { + tap_code16(KC_Z); + } + break; + case V: + if (pressed) { + tap_code16(KC_V); + } + break; + case J: + if (pressed) { + tap_code16(KC_J); + } + break; + case K: + if (pressed) { + tap_code16(KC_K); + } + break; + case SEMICOLON: + if (pressed) { + tap_code16(KC_SCLN); + } + break; + case SLASH: + if (pressed) { + tap_code16(KC_SLSH); + } + break; + case NAV_TL: + if (pressed) { + // tap_code16(KC_ESC); + tap_code16(__NAV_1_K1__); + } + break; + case NAV_TR: + // This is blank on my main layout + // if (pressed) { + // tap_code16(__NAV_3_K5__); + // } + break; + case NAV_BL: + if (pressed) { + // tap_code16(KC_ESC); + tap_code16(__NAV_3_K1__); + } + break; + case NAV_BR: + if (pressed) { + // tap_code16(LCTL(LGUI(KC_RIGHT))); + tap_code16(__NAV_3_K5__); + } + break; + case NUM_TL: + if (pressed) { + tap_code16(__NUMPAD_1_K1__); + } + break; + case NUM_TR: + if (pressed) { + tap_code16(__NUMPAD_1_K5__); + } + break; + case NUM_BL: + if (pressed) { + tap_code16(__NUMPAD_3_K1__); + } + break; + case NUM_BR: + if (pressed) { + tap_code16(__NUMPAD_3_K5__); + } + break; + case SYM_L_TL: + if (pressed) { + tap_code16(__SYMBOLS_L1_K1__); + } + break; + case SYM_L_TR: + if (pressed) { + tap_code16(__SYMBOLS_L1_K5__); + } + break; + case SYM_L_BL: + if (pressed) { + tap_code16(__META_NAV_L1_K1__); + } + break; + case SYM_L_BR: + if (pressed) { + tap_code16(__META_NAV_L1_K5__); + } + case SYM_R_TL: + if (pressed) { + tap_code16(__SYMBOLS_R1_K1__); + } + break; + case SYM_R_TR: + if (pressed) { + tap_code16(__SYMBOLS_R1_K5__); + } + break; + case SYM_R_BL: + if (pressed) { + tap_code16(__META_NAV_L2_K1__); + } + break; + case SYM_R_BR: + if (pressed) { + tap_code16(__META_NAV_L2_K5__); + } +// Shift Nav section + case SHIFTNAV_TL: + if (pressed) { + tap_code16(__SHIFTNAV_1_K1__); + } + break; + case SHIFTNAV_TR: + if (pressed) { + tap_code16(__SHIFTNAV_1_K5__); + } + break; + case SHIFTNAV_BL: + if (pressed) { + tap_code16(__SHIFTNAV_3_K1__); + } + break; + case SHIFTNAV_BR: + if (pressed) { + tap_code16(__SHIFTNAV_3_K5__); + } + break; +// Function section + case FUNCTION_TL: + if (pressed) { + tap_code16(__FUNCTION_1_K1__); + } + break; + case FUNCTION_TR: + if (pressed) { + tap_code16(__FUNCTION_1_K5__); + } + break; + case FUNCTION_BL: + if (pressed) { + tap_code16(__FUNCTION_3_K1__); + } + break; + case FUNCTION_BR: + if (pressed) { + tap_code16(__FUNCTION_3_K5__); + } + break; +// RGB section + case RGB_TL: + if (pressed) { + tap_code16(__RGB_1_K1__); + } + break; + case RGB_TR: + if (pressed) { + tap_code16(__RGB_1_K5__); + } + break; + case RGB_BL: + if (pressed) { + tap_code16(__RGB_3_K1__); + } + break; + case RGB_BR: + // This key is blank on the default layout + // if (pressed) { + // tap_code16(__RGB_3_K5__); + // } + break; +// Macros section + case MACROS_TL: + if (pressed) { + tap_code16(__MACROS_1_K1__); + } + break; + case MACROS_TR: + if (pressed) { + tap_code16(__MACROS_1_K5__); + } + break; + case MACROS_BL: + if (pressed) { + tap_code16(__MACROS_3_K1__); + } + break; + case MACROS_BR: + if (pressed) { + tap_code16(__MACROS_3_K5__); + } + break; +// Thumbs + case THUMB_L: + if (pressed) { + tap_code16(__ALPHA_THUMB_L3__); + } + break; + case THUMB_R: + if (pressed) { + tap_code16(__ALPHA_THUMB_R1__); + } + break; + case ALT_THUMB_L: + if (pressed) { + tap_code16(__ALPHA_ALT_THUMB_L3__); + } + break; + case ALT_THUMB_R: + if (pressed) { + tap_code16(__ALPHA_ALT_THUMB_R1__); + } + break; + case THUMB_L_REACHY_NAV: + if (pressed) { + tap_code16(__ALPHA_THUMB_L3__); + } + break; + case THUMB_R_REACHY_NUM: + if (pressed) { + tap_code16(__ALPHA_THUMB_R1__); + } + break; + case THUMB_L_REACHY_SYM: + if (pressed) { + tap_code16(__ALPHA_THUMB_L1__); + } + break; + case THUMB_R_REACHY_SYM: + if (pressed) { + tap_code16(__ALPHA_THUMB_R1__); + } + break; #endif } } // END COMBOS -#endif // stenographobe exclusion +#endif diff --git a/users/sadekbaroudi/combos.h b/users/sadekbaroudi/combos.h index 10b5f455df..980762d1c6 100644 --- a/users/sadekbaroudi/combos.h +++ b/users/sadekbaroudi/combos.h @@ -4,13 +4,14 @@ enum combo_events { UNDO, -// REDO, -// ENTER, -// DELETE, -// BACKSPACE, -// APOSTROPHE, -// TAB, -// CAPSWORD, +#if defined(KEYBOARD_fingerpunch_arachnophobe) + // REDO, + // ENTER, + // DELETE, + // BACKSPACE, + // APOSTROPHE, + // TAB, + // CAPSWORD, Q, P, B, @@ -25,4 +26,59 @@ enum combo_events { RPAREN, RCURLY, RBRACKET, +#elif defined(KEYBOARD_fingerpunch_personal_smallcat) + Q, + B, + Z, + V, + J, + K, + SEMICOLON, + SLASH, + NAV_TL, + NAV_TR, + NAV_BL, + NAV_BR, + NUM_TL, + NUM_TR, + NUM_BL, + NUM_BR, + SYM_L_TL, + SYM_L_TR, + SYM_L_BL, + SYM_L_BR, + SYM_R_TL, + SYM_R_TR, + SYM_R_BL, + SYM_R_BR, + SHIFTNAV_TL, + SHIFTNAV_TR, + SHIFTNAV_BL, + SHIFTNAV_BR, + FUNCTION_TL, + FUNCTION_TR, + FUNCTION_BL, + FUNCTION_BR, + RGB_TL, + RGB_TR, + RGB_BL, + RGB_BR, + MACROS_TL, + MACROS_TR, + MACROS_BL, + MACROS_BR, + THUMB_L, + THUMB_R, + ALT_THUMB_L, + ALT_THUMB_R, + THUMB_L_REACHY, + THUMB_R_REACHY, + THUMB_L_REACHY_NAV, + THUMB_R_REACHY_NUM, + THUMB_L_REACHY_SYM, + THUMB_R_REACHY_SYM, +#else +#endif }; + + diff --git a/users/sadekbaroudi/config.h b/users/sadekbaroudi/config.h index 8d181be4d9..db201ab6a7 100755 --- a/users/sadekbaroudi/config.h +++ b/users/sadekbaroudi/config.h @@ -2,7 +2,12 @@ // check to see if we are using the stenographobe, and skip if so... it has its own whole combo scheme // see keyboards/fingerpunch/stenographobe/keymaps/*/config.h -#ifndef KEYBOARD_fingerpunch_stenographobe +#if defined(KEYBOARD_fingerpunch_stenographobe) +#elif defined(KEYBOARD_fingerpunch_arachnophobe) +#define COMBO_COUNT 15 +#elif defined(KEYBOARD_fingerpunch_personal_smallcat) +#define COMBO_COUNT 53 +#else #define COMBO_COUNT 15 #endif @@ -31,6 +36,10 @@ #define LEADER_TIMEOUT 300 #define LEADER_PER_KEY_TIMING +// -------------------- Tap dance config ------------------------ +#define TAPPING_TERM 175 +#define TAPPING_TERM_PER_KEY + // ----------------- Cirque curved overlay override ----------------- #ifdef CIRQUE_CURVED_OVERLAY_ENABLE diff --git a/users/sadekbaroudi/rules.mk b/users/sadekbaroudi/rules.mk index bbc00a10af..d8f0ccf0b3 100755 --- a/users/sadekbaroudi/rules.mk +++ b/users/sadekbaroudi/rules.mk @@ -62,3 +62,6 @@ ifeq ($(strip $(AUDIO_ENABLE)), yes) SRC += audio_userspace.c endif +ifeq ($(strip $(TAP_DANCE_ENABLE)), yes) + SRC += tapdances.c +endif diff --git a/users/sadekbaroudi/sadekbaroudi.c b/users/sadekbaroudi/sadekbaroudi.c index de6c20cd9b..f633583927 100755 --- a/users/sadekbaroudi/sadekbaroudi.c +++ b/users/sadekbaroudi/sadekbaroudi.c @@ -173,7 +173,12 @@ uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { // I always type the shift keys too fast, so tapping term of 200 is way too high case LSFT_T(KC_T): case RSFT_T(KC_N): +#ifdef KEYBOARD_fingerpunch_personal_smallcat + // There is an exception for smallcat, since the tapping term seems to be too short only on that board + return 150; +#else return 75; +#endif default: return TAPPING_TERM; } diff --git a/users/sadekbaroudi/tapdances.c b/users/sadekbaroudi/tapdances.c new file mode 100644 index 0000000000..e69de29bb2 diff --git a/users/sadekbaroudi/tapdances.h b/users/sadekbaroudi/tapdances.h new file mode 100644 index 0000000000..e69de29bb2 diff --git a/users/sadekbaroudi/wrappers.h b/users/sadekbaroudi/wrappers.h index fd35786e17..babb012b1a 100755 --- a/users/sadekbaroudi/wrappers.h +++ b/users/sadekbaroudi/wrappers.h @@ -211,6 +211,11 @@ expanded before being used as arguments to the LAYOUT_xxx macro. # define LAYOUT LAYOUT_le_chiffre_democratique #endif +// Since LAYOUT_le_chiffre_democratique uses the name LAYOUT_le_chiffre_democratique instead of LAYOUT +#if (!defined(LAYOUT) && defined(LAYOUT_smallcat)) +# define LAYOUT LAYOUT_smallcat +#endif + // clang-format off #define LAYOUT_ergodox_wrapper(...) LAYOUT_ergodox(__VA_ARGS__) #define LAYOUT_ergodox_pretty_wrapper(...) LAYOUT_ergodox_pretty(__VA_ARGS__) @@ -244,13 +249,16 @@ NOTE: These are all the same length. If you do a search/replace #define __ALPHA_THUMB_R2__ KC_SPACE #define __ALPHA_THUMB_R3__ KC_QUOT -#define __ALPHA_THUMBS_LEFT_2__ __ALPHA_THUMB_L2__, __ALPHA_THUMB_L3__ -#define __ALPHA_THUMBS_RIGHT_2__ __ALPHA_THUMB_R1__, __ALPHA_THUMB_R2__ +#define __ALPHA_THUMBS_LEFT_2_TUCKY__ __ALPHA_THUMB_L1__, __ALPHA_THUMB_L2__ +#define __ALPHA_THUMBS_RIGHT_2_TUCKY__ __ALPHA_THUMB_R2__, __ALPHA_THUMB_R3__ + +#define __ALPHA_THUMBS_LEFT_2_REACHY__ __ALPHA_THUMB_L2__, __ALPHA_THUMB_L3__ +#define __ALPHA_THUMBS_RIGHT_2_REACHY__ __ALPHA_THUMB_R1__, __ALPHA_THUMB_R2__ #define __ALPHA_THUMBS_LEFT_3__ __ALPHA_THUMB_L1__, __ALPHA_THUMB_L2__, __ALPHA_THUMB_L3__ #define __ALPHA_THUMBS_RIGHT_3__ __ALPHA_THUMB_R1__, __ALPHA_THUMB_R2__, __ALPHA_THUMB_R3__ -#define __ALPHA_THUMBS_4__ __ALPHA_THUMBS_LEFT_2__, __ALPHA_THUMBS_RIGHT_2__ +#define __ALPHA_THUMBS_4__ __ALPHA_THUMBS_LEFT_2_REACHY__, __ALPHA_THUMBS_RIGHT_2_REACHY__ #define __ALPHA_THUMBS_5__ __ALPHA_THUMB_L1__, __ALPHA_THUMB_L2__, __ALPHA_THUMB_R1__, __ALPHA_THUMB_R2__, __ALPHA_THUMB_R3__ #define __ALPHA_THUMBS_6__ __ALPHA_THUMBS_LEFT_3__, __ALPHA_THUMBS_RIGHT_3__ @@ -261,13 +269,16 @@ NOTE: These are all the same length. If you do a search/replace #define __ALPHA_ALT_THUMB_R2__ __ALPHA_THUMB_R2__ #define __ALPHA_ALT_THUMB_R3__ __ALPHA_THUMB_R3__ -#define __ALPHA_ALT_THUMBS_LEFT_2__ __ALPHA_ALT_THUMB_L2__, __ALPHA_ALT_THUMB_L3__ -#define __ALPHA_ALT_THUMBS_RIGHT_2__ __ALPHA_ALT_THUMB_R1__, __ALPHA_ALT_THUMB_R2__ +#define __ALPHA_ALT_THUMBS_LEFT_2_TUCKY__ __ALPHA_ALT_THUMB_L1__, __ALPHA_ALT_THUMB_L2__ +#define __ALPHA_ALT_THUMBS_RIGHT_2_TUCKY__ __ALPHA_ALT_THUMB_R2__, __ALPHA_ALT_THUMB_R3__ + +#define __ALPHA_ALT_THUMBS_LEFT_2_REACHY__ __ALPHA_ALT_THUMB_L2__, __ALPHA_ALT_THUMB_L3__ +#define __ALPHA_ALT_THUMBS_RIGHT_2_REACHY__ __ALPHA_ALT_THUMB_R1__, __ALPHA_ALT_THUMB_R2__ #define __ALPHA_ALT_THUMBS_LEFT_3__ __ALPHA_ALT_THUMB_L1__, __ALPHA_ALT_THUMB_L2__, __ALPHA_ALT_THUMB_L3__ #define __ALPHA_ALT_THUMBS_RIGHT_3__ __ALPHA_ALT_THUMB_R1__, __ALPHA_ALT_THUMB_R2__, __ALPHA_ALT_THUMB_R3__ -#define __ALPHA_ALT_THUMBS_4__ __ALPHA_ALT_THUMBS_LEFT_2__, __ALPHA_ALT_THUMBS_RIGHT_2__ +#define __ALPHA_ALT_THUMBS_4__ __ALPHA_ALT_THUMBS_LEFT_2_REACHY__, __ALPHA_ALT_THUMBS_RIGHT_2_REACHY__ #define __ALPHA_ALT_THUMBS_5__ __ALPHA_ALT_THUMB_L1__, __ALPHA_ALT_THUMB_L2__, __ALPHA_ALT_THUMB_R1__, __ALPHA_ALT_THUMB_R2__, __ALPHA_ALT_THUMB_R3__ #define __ALPHA_ALT_THUMBS_6__ __ALPHA_ALT_THUMBS_LEFT_3__, __ALPHA_ALT_THUMBS_RIGHT_3__ @@ -277,19 +288,43 @@ NOTE: These are all the same length. If you do a search/replace #define __ALPHA_ALT_L1_K4__ KC_P #define __ALPHA_ALT_L1_K5__ KC_B +#define __ALPHA_ALT_L2_K1__ KC_A +#define __ALPHA_ALT_L2_K2__ KC_R +#define __ALPHA_ALT_L2_K3__ KC_S +#define __ALPHA_ALT_L2_K4__ KC_T +#define __ALPHA_ALT_L2_K5__ KC_G + +#define __ALPHA_ALT_L3_K1__ KC_Z +#define __ALPHA_ALT_L3_K2__ KC_X +#define __ALPHA_ALT_L3_K3__ KC_C +#define __ALPHA_ALT_L3_K4__ KC_D +#define __ALPHA_ALT_L3_K5__ KC_V + #define __ALPHA_ALT_R1_K1__ KC_J #define __ALPHA_ALT_R1_K2__ KC_L #define __ALPHA_ALT_R1_K3__ KC_U #define __ALPHA_ALT_R1_K4__ KC_Y #define __ALPHA_ALT_R1_K5__ KC_SCLN +#define __ALPHA_ALT_R2_K1__ KC_M +#define __ALPHA_ALT_R2_K2__ KC_N +#define __ALPHA_ALT_R2_K3__ KC_E +#define __ALPHA_ALT_R2_K4__ KC_I +#define __ALPHA_ALT_R2_K5__ KC_H + +#define __ALPHA_ALT_R3_K1__ KC_K +#define __ALPHA_ALT_R3_K2__ KC_NO +#define __ALPHA_ALT_R3_K3__ KC_COMM +#define __ALPHA_ALT_R3_K4__ KC_DOT +#define __ALPHA_ALT_R3_K5__ KC_SLASH + #define _________________ALPHA_ALT_L1_________________ __ALPHA_ALT_L1_K1__, __ALPHA_ALT_L1_K2__, __ALPHA_ALT_L1_K3__, __ALPHA_ALT_L1_K4__, __ALPHA_ALT_L1_K5__ -#define _________________ALPHA_ALT_L2_________________ KC_A, KC_R, KC_S, KC_T, KC_G -#define _________________ALPHA_ALT_L3_________________ KC_Z, KC_X, KC_C, KC_D, KC_V +#define _________________ALPHA_ALT_L2_________________ __ALPHA_ALT_L2_K1__, __ALPHA_ALT_L2_K2__, __ALPHA_ALT_L2_K3__, __ALPHA_ALT_L2_K4__, __ALPHA_ALT_L2_K5__ +#define _________________ALPHA_ALT_L3_________________ __ALPHA_ALT_L3_K1__, __ALPHA_ALT_L3_K2__, __ALPHA_ALT_L3_K3__, __ALPHA_ALT_L3_K4__, __ALPHA_ALT_L3_K5__ #define _________________ALPHA_ALT_R1_________________ __ALPHA_ALT_R1_K1__, __ALPHA_ALT_R1_K2__, __ALPHA_ALT_R1_K3__, __ALPHA_ALT_R1_K4__, __ALPHA_ALT_R1_K5__ -#define _________________ALPHA_ALT_R2_________________ KC_M, KC_N, KC_E, KC_I, KC_H -#define _________________ALPHA_ALT_R3_________________ KC_K, KC_NO, KC_COMM, KC_DOT, KC_SLASH +#define _________________ALPHA_ALT_R2_________________ __ALPHA_ALT_R2_K1__, __ALPHA_ALT_R2_K2__, __ALPHA_ALT_R2_K3__, __ALPHA_ALT_R2_K4__, __ALPHA_ALT_R2_K5__ +#define _________________ALPHA_ALT_R3_________________ __ALPHA_ALT_R3_K1__, __ALPHA_ALT_R3_K2__, __ALPHA_ALT_R3_K3__, __ALPHA_ALT_R3_K4__, __ALPHA_ALT_R3_K5__ /* This is the target #define _________________ALPHA_ALT_L1_________________ KC_ENT, KC_Q, KC_W, KC_P, KC_B @@ -307,20 +342,44 @@ NOTE: These are all the same length. If you do a search/replace #define __ALPHA_L1_K4__ KC_P #define __ALPHA_L1_K5__ KC_B +#define __ALPHA_L2_K1__ KC_A +#define __ALPHA_L2_K2__ KC_R +#define __ALPHA_L2_K3__ KC_S +#define __ALPHA_L2_K4__ KC_T +#define __ALPHA_L2_K5__ KC_G + +#define __ALPHA_L3_K1__ KC_Z +#define __ALPHA_L3_K2__ KC_X +#define __ALPHA_L3_K3__ KC_C +#define __ALPHA_L3_K4__ KC_D +#define __ALPHA_L3_K5__ KC_V + #define __ALPHA_R1_K1__ KC_J #define __ALPHA_R1_K2__ KC_L #define __ALPHA_R1_K3__ KC_U #define __ALPHA_R1_K4__ KC_Y #define __ALPHA_R1_K5__ KC_SCLN -// ALPHA -#define __________________ALPHA_L1____________________ KC_Q, KC_W, KC_F, KC_P, KC_B -#define __________________ALPHA_L2____________________ KC_A, KC_R, KC_S, KC_T, KC_G -#define __________________ALPHA_L3____________________ KC_Z, KC_X, KC_C, KC_D, KC_V +#define __ALPHA_R2_K1__ KC_M +#define __ALPHA_R2_K2__ KC_N +#define __ALPHA_R2_K3__ KC_E +#define __ALPHA_R2_K4__ KC_I +#define __ALPHA_R2_K5__ KC_O -#define __________________ALPHA_R1____________________ KC_J, KC_L, KC_U, KC_Y, KC_SCLN -#define __________________ALPHA_R2____________________ KC_M, KC_N, KC_E, KC_I, KC_O -#define __________________ALPHA_R3____________________ KC_K, KC_H, KC_COMM, KC_DOT, KC_SLASH +#define __ALPHA_R3_K1__ KC_K +#define __ALPHA_R3_K2__ KC_H +#define __ALPHA_R3_K3__ KC_COMM +#define __ALPHA_R3_K4__ KC_DOT +#define __ALPHA_R3_K5__ KC_SLASH + +// ALPHA +#define __________________ALPHA_L1____________________ __ALPHA_L1_K1__, __ALPHA_L1_K2__, __ALPHA_L1_K3__, __ALPHA_L1_K4__, __ALPHA_L1_K5__ +#define __________________ALPHA_L2____________________ __ALPHA_L2_K1__, __ALPHA_L2_K2__, __ALPHA_L2_K3__, __ALPHA_L2_K4__, __ALPHA_L2_K5__ +#define __________________ALPHA_L3____________________ __ALPHA_L3_K1__, __ALPHA_L3_K2__, __ALPHA_L3_K3__, __ALPHA_L3_K4__, __ALPHA_L3_K5__ + +#define __________________ALPHA_R1____________________ __ALPHA_R1_K1__, __ALPHA_R1_K2__, __ALPHA_R1_K3__, __ALPHA_R1_K4__, __ALPHA_R1_K5__ +#define __________________ALPHA_R2____________________ __ALPHA_R2_K1__, __ALPHA_R2_K2__, __ALPHA_R2_K3__, __ALPHA_R2_K4__, __ALPHA_R2_K5__ +#define __________________ALPHA_R3____________________ __ALPHA_R3_K1__, __ALPHA_R3_K2__, __ALPHA_R3_K3__, __ALPHA_R3_K4__, __ALPHA_R3_K5__ // BLANK FULL LINE #define ___________________BLANK___________________ _______, _______, _______, _______, _______ @@ -445,27 +504,27 @@ NOTE: These are all the same length. If you do a search/replace #define ________________SHIFTNAV_2_________________ __SHIFTNAV_2_K1__, __SHIFTNAV_2_K2__, __SHIFTNAV_2_K3__, __SHIFTNAV_2_K4__, __SHIFTNAV_2_K5__ #define ________________SHIFTNAV_3_________________ __SHIFTNAV_3_K1__, __SHIFTNAV_3_K2__, __SHIFTNAV_3_K3__, __SHIFTNAV_3_K4__, __SHIFTNAV_3_K5__ -#define __FUNCION_1_K1__ KC_MPLY -#define __FUNCION_1_K2__ KC_F7 -#define __FUNCION_1_K3__ KC_F8 -#define __FUNCION_1_K4__ KC_F9 -#define __FUNCION_1_K5__ KC_F10 +#define __FUNCTION_1_K1__ KC_MPLY +#define __FUNCTION_1_K2__ KC_F7 +#define __FUNCTION_1_K3__ KC_F8 +#define __FUNCTION_1_K4__ KC_F9 +#define __FUNCTION_1_K5__ KC_F10 -#define __FUNCION_2_K1__ KC_VOLU -#define __FUNCION_2_K2__ KC_F4 -#define __FUNCION_2_K3__ KC_F5 -#define __FUNCION_2_K4__ KC_F6 -#define __FUNCION_2_K5__ KC_F11 +#define __FUNCTION_2_K1__ KC_VOLU +#define __FUNCTION_2_K2__ KC_F4 +#define __FUNCTION_2_K3__ KC_F5 +#define __FUNCTION_2_K4__ KC_F6 +#define __FUNCTION_2_K5__ KC_F11 -#define __FUNCION_3_K1__ KC_VOLD -#define __FUNCION_3_K2__ KC_F1 -#define __FUNCION_3_K3__ KC_F2 -#define __FUNCION_3_K4__ KC_F3 -#define __FUNCION_3_K5__ KC_F12 +#define __FUNCTION_3_K1__ KC_VOLD +#define __FUNCTION_3_K2__ KC_F1 +#define __FUNCTION_3_K3__ KC_F2 +#define __FUNCTION_3_K4__ KC_F3 +#define __FUNCTION_3_K5__ KC_F12 -#define ________________FUNCTION_1_________________ __FUNCION_1_K1__, __FUNCION_1_K2__, __FUNCION_1_K3__, __FUNCION_1_K4__, __FUNCION_1_K5__ -#define ________________FUNCTION_2_________________ __FUNCION_2_K1__, __FUNCION_2_K2__, __FUNCION_2_K3__, __FUNCION_2_K4__, __FUNCION_2_K5__ -#define ________________FUNCTION_3_________________ __FUNCION_3_K1__, __FUNCION_3_K2__, __FUNCION_3_K3__, __FUNCION_3_K4__, __FUNCION_3_K5__ +#define ________________FUNCTION_1_________________ __FUNCTION_1_K1__, __FUNCTION_1_K2__, __FUNCTION_1_K3__, __FUNCTION_1_K4__, __FUNCTION_1_K5__ +#define ________________FUNCTION_2_________________ __FUNCTION_2_K1__, __FUNCTION_2_K2__, __FUNCTION_2_K3__, __FUNCTION_2_K4__, __FUNCTION_2_K5__ +#define ________________FUNCTION_3_________________ __FUNCTION_3_K1__, __FUNCTION_3_K2__, __FUNCTION_3_K3__, __FUNCTION_3_K4__, __FUNCTION_3_K5__ // MEDIA LAYER