From a6e6716a24d50f224b31006a7eb067ad3cfc9da5 Mon Sep 17 00:00:00 2001 From: Dave Vigil Date: Sat, 18 Nov 2023 18:42:23 -0600 Subject: [PATCH] Moving to userspace --- .github/workflows/lint_and_compile.yml | 3 + .gitmodules | 2 +- dgvigil/definitions/keycodes.h | 45 +++++++ dgvigil/definitions/keymap_blocks.h | 32 +++++ dgvigil/definitions/layers.h | 11 ++ dgvigil/dgvigil.c | 9 +- dgvigil/features/macros.h | 0 dgvigil/features/tapdance.h | 0 dgvigil/features/taphold.h | 0 q8/config.h | 0 q8/keymap.c | 176 +++++++++++++++++++------ q8/rules.mk | 8 ++ sweep/keymap.c | 9 +- 13 files changed, 246 insertions(+), 49 deletions(-) create mode 100644 dgvigil/definitions/keycodes.h create mode 100644 dgvigil/definitions/keymap_blocks.h create mode 100644 dgvigil/definitions/layers.h create mode 100644 dgvigil/features/macros.h create mode 100644 dgvigil/features/tapdance.h create mode 100644 dgvigil/features/taphold.h create mode 100644 q8/config.h create mode 100644 q8/rules.mk diff --git a/.github/workflows/lint_and_compile.yml b/.github/workflows/lint_and_compile.yml index 2e7c138..9462abe 100644 --- a/.github/workflows/lint_and_compile.yml +++ b/.github/workflows/lint_and_compile.yml @@ -21,6 +21,7 @@ jobs: rsync -avP $(pwd)/sweep/ qmk_firmware/keyboards/ferris/keymaps/dgvigil/ rsync -avP $(pwd)/scottogame/ qmk_firmware/keyboards/handwired/scottokeebs/scottogame/keymaps/dgvigil/ rsync -avP $(pwd)/swoop/ qmk_firmware/keyboards/bluebell/swoop/keymaps/dgvigil/ + rsync -avP $(pwd)/q8/ qmk_firmware/keyboards/keychron/q8/ansi_encoder/keymaps/dgvigil/ - name: Build run: | cd /home/runner/work/dgvigil-keebs/dgvigil-keebs/qmk_firmware/ @@ -28,6 +29,8 @@ jobs: qmk compile -kb draculad -km dgvigil -e CONVERT_TO=promicro_rp2040 echo "Building QMK for handwired/scottokeebs/scottogame" qmk compile -kb handwired/scottokeebs/scottogame -km dgvigil + echo "Building QMK for Q8" + qmk compile -kb keychron/q8/ansi_encoder -km dgvigil echo "Building QMK for ferris/sweep" qmk compile -kb ferris/sweep -km dgvigil echo "Building QMK for keebio/iris/rev8" diff --git a/.gitmodules b/.gitmodules index 8ad46ee..787df12 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,3 @@ [submodule "qmk_firmware"] path = qmk_firmware - url = https://github.com/qmk/qmk_firmware.git + url = https://github.com/dgvigil/qmk_firmware.git diff --git a/dgvigil/definitions/keycodes.h b/dgvigil/definitions/keycodes.h new file mode 100644 index 0000000..3589aab --- /dev/null +++ b/dgvigil/definitions/keycodes.h @@ -0,0 +1,45 @@ +#pragma once + +#include "layers.h" + +// clang-format off + +// Tap dance codes + +enum { + TD_Q_ESC, + TD_W_GRV +}; + +// Tap dance keycodes +#define Q_ESC TD(TD_Q_ESC) +#define W_GRV TD(TD_W_GRV) + + +// Custom keycodes + +enum { + CUSTOM_KEYCODE_START = SAFE_RANGE, + M_PASS1, + M_PASS12, + CUSTOM_KEYCODE_END +}; + + +// Layer-taps + +// 3 LEFT THUMB KEYS +#define MUS_ESC LT(_MUS, KC_ESC) +#define NAV_BKSP LT(_NAV, KC_BSPC) +#define MOUSE_TAB LT(_MOUSE, KC_TAB) +// 3 RIGHT THUMB KEYS +#define SYM_ENTER LT(_SYM, KC_ENTER) +#define NUM_SPC LT(_NUM, KC_SPC) +#define FUN_DEL LT(_FUN, KC_DEL) + +// 2 LEFT THUMB KEYS +#define FUN_TAB LT(_FUN, KC_TAB) +// 2 RIGHT THUMB KEYS +#define NUM_SPC LT(_NUM, KC_SPC) + +// clang-format on \ No newline at end of file diff --git a/dgvigil/definitions/keymap_blocks.h b/dgvigil/definitions/keymap_blocks.h new file mode 100644 index 0000000..6be5460 --- /dev/null +++ b/dgvigil/definitions/keymap_blocks.h @@ -0,0 +1,32 @@ +#pragma once + +#include QMK_KEYBOARD_H +#include "keycodes.h" + +// clang-format off + +// THUMB KEYS +#define ___________THUMB_L3________ MUS_ESC, NAV_BKSP,MOUSE_TAB +#define ___________THUMB_R3________ SYM_ENTER,NUM_SPC,FUN_DEL +#define + +#define ____THUMB_L2____ NAV_BKSP,FUN_TAB +#define ____THUMB_R2____ SYM_ENTER,NUM_SPC + +// _BASE +#define __________________BASE_L1____________________ Q_ESC, W_GRV, KC_E, KC_R, KC_T +#define __________________BASE_L2____________________ KC_A, KC_S, KC_D, KC_F, KC_G +#define __________________BASE_L3____________________ KC_Z, KC_X, KC_C, KC_V, KC_B + +#define __________________BASE_R1____________________ KC_Y, KC_U, KC_I, KC_O, KC_P +#define __________________BASE_R2____________________ KC_H, KC_J, KC_K, KC_L, KC_QUOT +#define __________________BASE_R3____________________ KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH + +// _NAV +#define __________________NAV_L1____________________ QK_BOOTLOADER,_______,_______,_______,_______ +#define __________________NAV_L2____________________ _______, _______, _______, _______, _______ +#define __________________NAV_L3____________________ _______, _______, _______, M_PASS2, M_PASS1 + +#define __________________NAV_R1____________________ _______, KC_PSTE, KC_COPY, KC_CUT, KC_UNDO +#define __________________NAV_R2____________________ KC_CAPS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT +#define __________________NAV_R3____________________ _______, KC_HOME, KC_PGUP, KC_PGDN, KC_END diff --git a/dgvigil/definitions/layers.h b/dgvigil/definitions/layers.h new file mode 100644 index 0000000..d1b9d7e --- /dev/null +++ b/dgvigil/definitions/layers.h @@ -0,0 +1,11 @@ +#pragma once + +typedef enum { + _BASE, + _NAV, + _NUM, + _SYM, + _FUN, + _MUS, + _MOUSE +} layers_t; \ No newline at end of file diff --git a/dgvigil/dgvigil.c b/dgvigil/dgvigil.c index 5ebac1b..0d09f09 100644 --- a/dgvigil/dgvigil.c +++ b/dgvigil/dgvigil.c @@ -1,5 +1,8 @@ #include "dgvigil.h" -void my_custom_function(void) { - -} +#include "definitions/layers.h" +#include "definitions/keycodes.h" +#include "definitions/keymap_blocks.h" +#include "features/taphold.h" +#include "features/tapdance.h" +#include "features/macros.h" \ No newline at end of file diff --git a/dgvigil/features/macros.h b/dgvigil/features/macros.h new file mode 100644 index 0000000..e69de29 diff --git a/dgvigil/features/tapdance.h b/dgvigil/features/tapdance.h new file mode 100644 index 0000000..e69de29 diff --git a/dgvigil/features/taphold.h b/dgvigil/features/taphold.h new file mode 100644 index 0000000..e69de29 diff --git a/q8/config.h b/q8/config.h new file mode 100644 index 0000000..e69de29 diff --git a/q8/keymap.c b/q8/keymap.c index fa67e87..5b08879 100644 --- a/q8/keymap.c +++ b/q8/keymap.c @@ -16,52 +16,148 @@ #include QMK_KEYBOARD_H -// clang-format off - -enum layers { - MAC_BASE, - WIN_BASE, - _FN1, - _FN2, - _FN3 +enum layer_number { + _BASE, + _COLDH, + _NAV, + _NUM, + _SYM, + _FUN, + _MUS, + _MOUSE }; -#define KC_TASK LGUI(KC_TAB) -#define KC_FLXP LGUI(KC_E) +enum custom_keycodes { + M_PASS1 = SAFE_RANGE, + M_PASS2 +}; + +// Tap Dance declarations +enum { + TD_Q_ESC, + TD_W_GRV, +}; + +// Tap Dance definitions +tap_dance_action_t tap_dance_actions[] = { + // Tap once for Q, twice for Escape + [TD_Q_ESC] = ACTION_TAP_DANCE_DOUBLE(KC_Q, KC_ESC), + [TD_W_GRV] = ACTION_TAP_DANCE_DOUBLE(KC_W, KC_GRAVE), +}; + +enum combos { + FA_GUI, + FS_ALT, + FD_CTL, + JQUOT_GUI, + JL_ALT, + JK_CTL +}; + +const uint16_t PROGMEM fa_combo[] = {KC_F, KC_A, COMBO_END}; +const uint16_t PROGMEM fs_combo[] = {KC_F, KC_S, COMBO_END}; +const uint16_t PROGMEM fd_combo[] = {KC_F, KC_D, COMBO_END}; +const uint16_t PROGMEM jquote_combo[] = {KC_J, KC_QUOT, COMBO_END}; +const uint16_t PROGMEM jl_combo[] = {KC_J, KC_L, COMBO_END}; +const uint16_t PROGMEM jk_combo[] = {KC_J, KC_K, COMBO_END}; + +combo_t key_combos[] = { + [FA_GUI] = COMBO(fa_combo, KC_LGUI), + [FS_ALT] = COMBO(fs_combo, KC_LALT), + [FD_CTL] = COMBO(fd_combo, KC_LCTL), + [JQUOT_GUI] = COMBO(jquote_combo, KC_RGUI), + [JL_ALT] = COMBO(jl_combo, KC_RALT), + [JK_CTL] = COMBO(jk_combo, KC_RCTL), +}; + +// LEFT THUMB KEYS +#define MUS_ESC LT(_MUS, KC_ESC) +#define NAV_BKSP LT(_NAV, KC_BSPC) +#define MOUSE_TAB LT(_MOUSE, KC_TAB) +// RIGHT THUMB KEYS +#define SYM_ENTER LT(_SYM, KC_ENTER) +#define NUM_SPC LT(_NUM, KC_SPC) +#define FUN_DEL LT(_FUN, KC_DEL) +// TAP DANCE +#define Q_ESC TD(TD_Q_ESC) +#define W_GRV TD(TD_W_GRV) + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [MAC_BASE] = LAYOUT_ansi_69( - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_HOME, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, - KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, MO(_FN1), MO(_FN3), KC_SPC, KC_RCMD, KC_LEFT, KC_DOWN, KC_RGHT), + [_BASE] = LAYOUT_ansi_69( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_MUTE, + KC_LPAD, Q_ESC, W_GRV, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_HOME, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LOPT, MUS_ESC, NAV_BKSP, MOUSE_TAB,SYM_ENTER, NUM_SPC, FUN_DEL, KC_LEFT, KC_DOWN, KC_RGHT), - [WIN_BASE] = LAYOUT_ansi_69( - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_HOME, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, - KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, MO(_FN2), MO(_FN3), KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT), + [_COLDH] = LAYOUT_ansi_69( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, RGB_TOG, + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, + KC_CAPS, KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_ENT, KC_HOME, + KC_LSFT, KC_Z, KC_X, KC_C, KC_D, KC_V, KC_GRV, KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LOPT, MUS_ESC, NAV_BKSP, MOUSE_TAB,SYM_ENTER, NUM_SPC, FUN_DEL, KC_LEFT, KC_DOWN, KC_RGHT), - [_FN1] = LAYOUT_ansi_69( - KC_GRV, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, - RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + [_NAV] = LAYOUT_ansi_69( + QK_BOOT, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, + KC_TAB, _______, _______, _______, _______, _______, _______, _______, KC_PSTE, KC_COPY, KC_CUT, KC_UNDO, KC_RBRC, KC_BSLS, KC_DEL, + KC_CAPS, _______, _______, _______, _______, _______, KC_CAPS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_QUOT, KC_ENT, KC_HOME, + KC_LSFT, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, KC_PGDN, KC_END, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LOPT, MUS_ESC, NAV_BKSP, MOUSE_TAB,SYM_ENTER, NUM_SPC, FUN_DEL, KC_LEFT, KC_DOWN, KC_RGHT), - [_FN2] = LAYOUT_ansi_69( - KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, - RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + [_SYM] = LAYOUT_ansi_69( + KC_GRV, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, RGB_TOG, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), - [_FN3] = LAYOUT_ansi_69( - KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, - RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) + [_FUN] = LAYOUT_ansi_69( + KC_GRV, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, RGB_TOG, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + + [_MUS] = LAYOUT_ansi_69( + KC_GRV, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, RGB_TOG, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), + + [_MOUSE] = LAYOUT_ansi_69( + KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) }; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [_BASE] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, + [_NAV] = {ENCODER_CCW_CW(RGB_MOD, RGB_RMOD)}, + [_SYM] = {ENCODER_CCW_CW(RGB_VAD, RGB_VAI)}, + [_FUN] = {ENCODER_CCW_CW(RGB_VAD, RGB_VAI)}, + [_MUS] = {ENCODER_CCW_CW(RGB_VAD, RGB_VAI)}, + [_MOUSE] = {ENCODER_CCW_CW(_______, _______)} +}; +#endif // ENCODER_MAP_ENABLE + + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case M_PASS1: + if (record->event.pressed) { + SEND_STRING("T3lg3Ranch!2023"); + } + return false; + case M_PASS2: + if (record->event.pressed) { + SEND_STRING("C0pperfield!2023"); + } + return false; + } + return true; +} \ No newline at end of file diff --git a/q8/rules.mk b/q8/rules.mk new file mode 100644 index 0000000..c3d5b9b --- /dev/null +++ b/q8/rules.mk @@ -0,0 +1,8 @@ +ENCODER_MAP_ENABLE = yes +AUTO_SHIFT_ENABLE = yes +CAPS_WORD_ENABLE = yes +COMBO_ENABLE = yes +TAP_DANCE_ENABLE = yes + +VPATH += keyboards/keychron/common +SRC += keychron_common.c diff --git a/sweep/keymap.c b/sweep/keymap.c index 727b7ff..58eb0ee 100644 --- a/sweep/keymap.c +++ b/sweep/keymap.c @@ -57,7 +57,6 @@ combo_t key_combos[] = { // RIGHT THUMB KEYS #define SYM_ENTER LT(_SYM, KC_ENTER) #define NUM_SPC LT(_NUM, KC_SPC) -#define FUN_DEL LT(_FUN, KC_DEL) // TAP DANCE #define Q_ESC TD(TD_Q_ESC) #define W_GRV TD(TD_W_GRV) @@ -65,13 +64,13 @@ combo_t key_combos[] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_BASE] = LAYOUT( // ┌────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┐ - Q_ESC, W_GRV, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + __________________BASE_L1____________________, __________________BASE_R1____________________, // ├────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┤ - KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, + __________________BASE_L2____________________, __________________BASE_R2____________________, // ├────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┤ - KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, + __________________BASE_L3____________________, __________________BASE_R3____________________, // ├────────┼────────┼────────┼────┬───┴────┬───┴───┐ ┌────┴───┬────────┼────────┼────────┼─────────┘ - NAV_BKSP,FUN_TAB, SYM_ENTER,NUM_SPC + ____THUMB_L2____, ____THUMB_R2____ // └────────┴───────┘ └────────┴────────┘ ),