From f45e80a91143da7773bea709df5a553890e25807 Mon Sep 17 00:00:00 2001 From: Dhruvin Shah Date: Thu, 14 Nov 2024 21:01:13 -0500 Subject: [PATCH] refactor(keymap): making possible to add keyboard with more keys Lot of inspiration comes from other existing config. --- config/calypso.keymap | 5 +- config/include/base.dtsi | 107 +++++++++++++++++------------------- config/include/fillers.dtsi | 45 +++++++++++++++ config/lynx.keymap | 2 - 4 files changed, 100 insertions(+), 59 deletions(-) create mode 100644 config/include/fillers.dtsi diff --git a/config/calypso.keymap b/config/calypso.keymap index d0d7b69..103dd1b 100644 --- a/config/calypso.keymap +++ b/config/calypso.keymap @@ -20,7 +20,7 @@ │ LM4 LM3 LM2 LM1 LM0 │ RM0 RM1 RM2 RM3 RM4 │ │ LB4 LB3 LB2 LB1 LB0 │ RB0 RB1 RB2 RB3 RB4 │ ╰───────╮ LH2 LH1 LH0 │ RH0 RH1 RH2 ╭───────╯ - ╰─────────────┴─────────────╯ + ╰─────────────┴─────────────╯ */ // &nice_view_spi { @@ -74,4 +74,7 @@ #define RH1 34 #define RH2 35 +#define X_LH &none +#define X_RH &none + #include "include/base.dtsi" diff --git a/config/include/base.dtsi b/config/include/base.dtsi index f0c24cd..a56a102 100644 --- a/config/include/base.dtsi +++ b/config/include/base.dtsi @@ -16,22 +16,17 @@ #define ___ &trans #define KEYS_L LT0 LT1 LT2 LT3 LT4 LM0 LM1 LM2 LM3 LM4 LB0 LB1 LB2 LB3 LB4 // left hand #define KEYS_R RT0 RT1 RT2 RT3 RT4 RM0 RM1 RM2 RM3 RM4 RB0 RB1 RB2 RB3 RB4 // right hand -#define THUMBS LH2 LH1 LH0 RH0 RH1 RH2 // thumbs +#ifdef LH2 + #define THUMBS LH2 LH1 LH0 RH0 RH1 RH2 // thumbs on 36 keys +#else + #define THUMBS LH1 LH0 RH0 RH1 // thumbs on 34 keys +#endif // Now import if any extra external layers needed #include "combos.dtsi" #include "morph.dtsi" #include "behaviors.dtsi" - -#ifdef THREE_THUMBS - #define TL_DEF &mt LGUI TAB - #define TR_DEF &mt RALT DEL - #define T_XXX &none -#else - #define TL_DEF - #define TR_DEF - #define T_XXX -#endif +#include "fillers.dtsi" // Home row mods macro // GUI -> ALT -> CTRL -> SHFT | SHFT -> CTRL -> ALT -> GUI @@ -66,75 +61,75 @@ default_layer { display-name = "DEF"; bindings = < - //╭──────────┬──────────┬──────────┬──────────┬──────────╮ ╭──────────┬──────────┬──────────┬──────────┬──────────╮ - &kp Q &kp W &kp F &kp P &kp B &kp J &kp L &kp U &kp Y &kp SQT - //├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤ - HRML(A, R, S, T) &kp G &kp M HRMR(N, E, I, O) - //├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤ - &kp Z &kp X &kp C &kp D &kp V &kp K &kp H &comma_morph &dot_morph &kp FSLH - //╰──────────┴──────────┴──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┴──────────┴──────────╯ - TL_DEF NAV_ESC NUM_SPC SYM_ENT &kp BSPC TR_DEF - // ╰──────────┴──────────┴──────────╯ ╰──────────┴──────────┴──────────╯ + //╭──────╮ ╭──────────┬──────────┬──────────┬──────────┬──────────╮ ╭──────╮ ╭──────────┬──────────┬──────────┬──────────┬──────────╮ ╭──────╮ + X_LT &kp Q &kp W &kp F &kp P &kp B X_MT &kp J &kp L &kp U &kp Y &kp SQT X_RT + //├──────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────┤ + X_LM HRML(A, R, S, T) &kp G X_MM &kp M HRMR(N, E, I, O) X_RM + //├──────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────┤ + X_LB &kp Z &kp X &kp C &kp D &kp V X_MB &kp K &kp H &comma_morph &dot_morph &kp FSLH X_RB + //├──────┤ ╰──────────┴──────────┴──────────┼──────────┼──────────┤ ├──────┤ ├──────────┼──────────┼──────────┴──────────┴──────────╯ ├──────┤ + X_LH NAV_ESC NUM_SPC X_MH SYM_ENT &kp BSPC X_RH + //╰──────╯ ╰──────────┴──────────╯ ╰──────╯ ╰──────────┴──────────╯ ╰──────╯ >; }; navigation_layer { display-name = "NAV"; bindings = < - //╭──────────┬──────────┬──────────┬──────────┬──────────╮ ╭──────────┬──────────┬──────────┬──────────┬──────────╮ - ___ ___ ___ &swapper ___ &kp PG_UP NAV_BSPC NAV_DEL ___ ___ - //├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤ - &sk LGUI &sk LALT &sk LCTRL &sk LSHFT ___ &kp LEFT NAV_DOWN NAV_UP &kp RIGHT &kp GRAVE - //├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤ - ___ ___ ___ ___ ___ &kp PG_DN &kp END ___ ___ ___ - //╰──────────┴──────────┴──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┴──────────┴──────────╯ - T_XXX ___ ___ &kp TAB CANCEL T_XXX - // ╰──────────┴──────────┴──────────╯ ╰──────────┴──────────┴──────────╯ + //╭──────╮ ╭──────────┬──────────┬──────────┬──────────┬──────────╮ ╭──────╮ ╭──────────┬──────────┬──────────┬──────────┬──────────╮ ╭──────╮ + X_LT ___ ___ ___ &swapper ___ X_MT &kp PG_UP NAV_BSPC NAV_UP ___ NAV_DEL X_RT + //├──────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────┤ + X_LM &sk LGUI &sk LALT &sk LCTRL &sk LSHFT ___ X_MM ___ &kp LEFT NAV_DOWN &kp RIGHT &kp GRAVE X_RM + //├──────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────┤ + X_LB ___ ___ ___ ___ ___ X_MB &kp PG_DN &kp END ___ ___ ___ X_RB + //├──────┤ ╰──────────┴──────────┴──────────┼──────────┼──────────┤ ├──────┤ ├──────────┼──────────┼──────────┴──────────┴──────────╯ ├──────┤ + X_LH ___ ___ X_MH &kp TAB CANCEL X_RH + //╰──────╯ ╰──────────┴──────────╯ ╰──────╯ ╰──────────┴──────────╯ ╰──────╯ >; }; number_layer { display-name = "NUM"; bindings = < - //╭──────────┬──────────┬──────────┬──────────┬──────────╮ ╭──────────┬──────────┬──────────┬──────────┬──────────╮ - ___ ___ ___ ___ ___ &kp PLUS &kp N7 &kp N8 &kp N9 &kp EQUAL - //├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤ - ___ ___ ___ ___ ___ &kp N0 &kp N4 &kp N5 &kp N6 &kp SEMI - //├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤ - ___ ___ ___ ___ ___ &kp MINUS &kp N1 &kp N2 &kp N3 ___ - //╰──────────┴──────────┴──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┴──────────┴──────────╯ - T_XXX ___ ___ &kp N0 ___ T_XXX - // ╰──────────┴──────────┴──────────╯ ╰──────────┴──────────┴──────────╯ + //╭──────╮ ╭──────────┬──────────┬──────────┬──────────┬──────────╮ ╭──────╮ ╭──────────┬──────────┬──────────┬──────────┬──────────╮ ╭──────╮ + X_LT ___ ___ ___ ___ ___ X_MT &kp PLUS &kp N7 &kp N8 &kp N9 &kp EQUAL X_RT + //├──────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────┤ + X_LM ___ ___ ___ ___ ___ X_MM &kp N0 &kp N4 &kp N5 &kp N6 &kp SEMI X_RM + //├──────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────┤ + X_LB ___ ___ ___ ___ ___ X_MB &kp MINUS &kp N1 &kp N2 &kp N3 ___ X_RB + //├──────┤ ╰──────────┴──────────┴──────────┼──────────┼──────────┤ ├──────┤ ├──────────┼──────────┼──────────┴──────────┴──────────╯ ├──────┤ + X_LH ___ ___ X_MH &kp N0 ___ X_RH + //╰──────╯ ╰──────────┴──────────╯ ╰──────╯ ╰──────────┴──────────╯ ╰──────╯ >; }; symbol_layer { display-name = "SYM"; bindings = < - //╭──────────┬──────────┬──────────┬──────────┬──────────╮ ╭──────────┬──────────┬──────────┬──────────┬──────────╮ - &kp EXCL &kp AT &kp HASH &kp DLLR &kp PRCNT &kp CARET &kp AMPS &kp ASTRK &kp LPAR &kp RPAR - //├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤ - &kp TILDE &kp GRAVE &kp LBRC &kp LBKT &kp LT &kp GT &kp RBKT &kp RBRC XXX &kp SEMI - //├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤ - &caps_word XXX XXX XXX &kp UNDER &kp UNDER &kp MINUS XXX XXX XXX - //╰──────────┴──────────┴──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┴──────────┴──────────╯ - T_XXX ___ &kp ESC ___ ___ T_XXX - // ╰──────────┴──────────┴──────────╯ ╰──────────┴──────────┴──────────╯ + //╭──────╮ ╭──────────┬──────────┬──────────┬──────────┬──────────╮ ╭──────╮ ╭──────────┬──────────┬──────────┬──────────┬──────────╮ ╭──────╮ + X_LT &kp EXCL &kp AT &kp HASH &kp DLLR &kp PRCNT X_MT &kp CARET &kp AMPS &kp ASTRK &kp LPAR &kp RPAR X_RT + //├──────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────┤ + X_LM &kp TILDE &kp GRAVE &kp LBRC &kp LBKT &kp LT X_MM &kp GT &kp RBKT &kp RBRC XXX &kp SEMI X_RM + //├──────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────┤ + X_LB &caps_word XXX XXX XXX &kp UNDER X_MB &kp UNDER &kp MINUS XXX XXX XXX X_RB + //├──────┤ ╰──────────┴──────────┴──────────┼──────────┼──────────┤ ├──────┤ ├──────────┼──────────┼──────────┴──────────┴──────────╯ ├──────┤ + X_LH ___ &kp ESC X_MH ___ ___ X_RH + //╰──────╯ ╰──────────┴──────────╯ ╰──────╯ ╰──────────┴──────────╯ ╰──────╯ >; }; system_layer { display-name = "SYS"; bindings = < - //╭──────────┬──────────┬──────────┬──────────┬──────────╮ ╭──────────┬──────────┬──────────┬──────────┬──────────╮ - BT_PROFILES ___ ___ &studio_unlock ___ ___ - //├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤ - ___ ___ ___ ___ BTLOADER BTLOADER ___ ___ ___ ___ - //├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤ - ___ ___ &bt BT_CLR ___ &sys_reset &sys_reset ___ ___ ___ ___ - //╰──────────┴──────────┴──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┴──────────┴──────────╯ - T_XXX ___ ___ ___ ___ T_XXX - // ╰──────────┴──────────┴──────────╯ ╰──────────┴──────────┴──────────╯ + //╭──────╮ ╭──────────┬──────────┬──────────┬──────────┬──────────╮ ╭──────╮ ╭──────────┬──────────┬──────────┬──────────┬──────────╮ ╭──────╮ + X_LT BT_PROFILES X_MT ___ ___ &studio_unlock ___ ___ X_RT + //├──────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────┤ + X_LM ___ ___ ___ ___ BTLOADER X_MM BTLOADER ___ ___ ___ ___ X_RM + //├──────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────┤ + X_LB ___ ___ &bt BT_CLR ___ &sys_reset X_MB &sys_reset ___ ___ ___ ___ X_RB + //├──────┤ ╰──────────┴──────────┴──────────┼──────────┼──────────┤ ├──────┤ ├──────────┼──────────┼──────────┴──────────┴──────────╯ ├──────┤ + X_LH ___ ___ X_MH ___ ___ X_RH + //╰──────╯ ╰──────────┴──────────╯ ╰──────╯ ╰──────────┴──────────╯ ╰──────╯ >; }; }; diff --git a/config/include/fillers.dtsi b/config/include/fillers.dtsi new file mode 100644 index 0000000..e9e3ed4 --- /dev/null +++ b/config/include/fillers.dtsi @@ -0,0 +1,45 @@ +// The default layout has 34 keys. Additional keys can be added by pre-setting any of +// the macros defined in this file to one or more keys before sourcing this file. + +/* left of left half */ +#if !defined X_LT // top row, left + #define X_LT +#endif +#if !defined X_LM // middle row, left + #define X_LM +#endif +#if !defined X_LB // bottom row, left + #define X_LB +#endif +#if !defined X_LH // thumb row, left + #define X_LH +#endif + +/* between left and right half */ +#if !defined X_MT // top row, middle + #define X_MT +#endif +#if !defined X_MM // middle row, middle + #define X_MM +#endif +#if !defined X_MB // bottom row, middle + #define X_MB +#endif +#if !defined X_MH // thumb row, middle + #define X_MH +#endif + +/* right of right half */ +#if !defined X_RT // top row, right + #define X_RT +#endif +#if !defined X_RM // middle row, right + #define X_RM +#endif +#if !defined X_RB // bottom row, right + #define X_RB +#endif +#if !defined X_RH // thumb row, right + #define X_RH +#endif + diff --git a/config/lynx.keymap b/config/lynx.keymap index 7f771b1..2b04974 100644 --- a/config/lynx.keymap +++ b/config/lynx.keymap @@ -62,10 +62,8 @@ #define LH0 31 // left thumb keys #define LH1 30 -#define LH2 // pace holder #define RH0 32 // right thumb keys #define RH1 33 -#define RH2 // place holder #include "include/base.dtsi"