diff options
author | Eric Gebhart <e.a.gebhart@gmail.com> | 2022-11-12 00:09:41 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-11-11 23:09:41 +0000 |
commit | 050472a4d07d07c1d9ae17d2fd26d44e9d95d950 (patch) | |
tree | 8c326011ec8cac395a92839ec4b420bf12652fa1 /users/ericgebhart/keyboards/layouts.h | |
parent | 49a78b81145213e2883e6c3beab6d9c136c10085 (diff) |
Eric Gebhart user space and keymaps (#17487)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Diffstat (limited to 'users/ericgebhart/keyboards/layouts.h')
-rw-r--r-- | users/ericgebhart/keyboards/layouts.h | 771 |
1 files changed, 771 insertions, 0 deletions
diff --git a/users/ericgebhart/keyboards/layouts.h b/users/ericgebhart/keyboards/layouts.h new file mode 100644 index 0000000000..b77d5a3de6 --- /dev/null +++ b/users/ericgebhart/keyboards/layouts.h @@ -0,0 +1,771 @@ +#pragma once +/* + Copyright 2018 Eric Gebhart <e.a.gebhart@gmail.com> + + 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 <http://www.gnu.org/licenses/>. +*/ + +#include "base_layers.h" +#include "mod_layer.h" +#include "edge_keys.h" +#include "thumbs.h" +#include QMK_KEYBOARD_H + +/******************************************************************/ +/* This is where I put my Keyboard layouts. */ +/* The mod layer can be modified in mod_layer.h */ +/* can be applied here. The physical shape of the keyboard is */ +/* also accounted for here. This makes it very simple to add a */ +/* new keyboard and reuse all of my layouts and layers */ +/* */ +/* With all of that in hand, we then create a LAYOUT wrapper */ +/* macro that takes a list of keys, to create a keyboard matrix */ +/* that fits the keyboard. Simple. */ +/* */ +/* The thumb keys, the bottom rows, etc. */ +/* */ +/* An attempt has been made to adapt the kinesis and ergodox */ +/* Thumb keys to the rectangular shapes of the xd75, viterbi, */ +/* and rebound. */ +/******************************************************************/ + +/******************************************************************/ +/* * The XD75 is a 5x15 Ortholinear matrix which means it has 3 */ +/* keys inbetween the usual left and right hand keys */ +/* * The Viterbi is a split 5x14 Ortholinear with 2 middle keys. */ +/* * The Ergodox is a split 5x14 Ortholinear with 2 middle keys, */ +/* thumbkeys. It is missing middle keys on (home) row 3. */ +/* * The Corne is a split 3x12 with 6 thumb keys. It has no */ +/* extra middle keys */ +/* * The Kinesis is 4x6 + 4 and 6 thumb keys. */ +/* * My Dactyl is 4x6 + 5 and 8 thumb keys. */ +/******************************************************************/ + + +/******************************************************************/ +/* In all cases these keyboards are defined in a matrix which is */ +/* a set of rows. Maybe like so, or not. */ +/* */ +/* -------------------------|------------------------ */ +/* | Left0 | Numbers L | mid|dle0 | numbers R | Right0 | */ +/* | Left1 | keys0-5 | mid|dle1 | Keys6-10 | Right1 | */ +/* | Left2 | keys11-15 | mid|dle2 | Keys16-20 | Right2 | */ +/* | Left3 | keys20-25 | mid|dle3 | Keys25-30 | Right3 | */ +/* | Row5L | Row5R | */ +/* | ThumbsL | ThumbsR | */ +/* -------------------------|------------------------ */ + +/* Generally speaking, the keys on the right and left don't change. */ +/* Neither does the bottom row or the thumbs. Frequently the numbers */ +/* row is identical across layers. Mostly, we want our Base layers to */ +/* be predctable. */ + + +// Since our quirky block definitions are basically a list of comma separated +// arguments, we need a wrapper in order for these definitions to be +// expanded before being used as arguments to the LAYOUT_xxx macro. +#if (!defined(LAYOUT) && defined(KEYMAP)) +#define LAYOUT KEYMAP +#endif + +// every keyboard has it's Layout. We start there and make a var args +// out of it. + +#define LVARG_ergodox(...) LAYOUT_ergodox(__VA_ARGS__) +#define LVARG_edox(...) LAYOUT_ergodox_pretty(__VA_ARGS__) +#define LAYOUT_VARG(...) LAYOUT(__VA_ARGS__) +#define LAYOUT_PVARG(...) LAYOUT_pretty(__VA_ARGS__) + +#define LVARG_4x12(...) LAYOUT_ortho_4x12(__VA_ARGS__) +#define LVARG_5x12(...) LAYOUT_ortho_5x12(__VA_ARGS__) +#define LVARG_5x14(...) LAYOUT_ortho_5x14(__VA_ARGS__) +#define LVARG_5x15(...) LAYOUT_ortho_5x15(__VA_ARGS__) + +/* + | Left | Numbers L | middle | numbers R | Right | + | Left | keys0-5 | middle | Keys6-10 | Right | + | Left | keys11-15 | middle | Keys16-20 | Right | + | Left | keys20-25 | middle | Keys25-30 | Right | + |Row5L Row5R | + |ThumbsL ThumbsR | +*/ + +/* Assuming that left, midddle, right, row5, and thumbs stay the same, */ +/* numbers, no numbers, numbers never change, whatever. */ +/* we can have a layout macro that takes a nice rectangle of keys. */ + + +/*Some keyboards need number rows, some don't. there is a setting for that */ +/* the keymap will give number rows if BASE_NUMBER_ROW is defined.*/ +/* in that case, the layout should take 4 rows of 10. */ +/* If all the layouts you might ever want would have the same top row,*/ +/* Then it could be defined like that here, and it could take 3x10.*/ +/* All layouts are relatively simple to make. */ +/* The ROW macros add a universal mod layer so that mods can be defined once */ +/* and used everywhere. No matter the keymap or layer. this allows actual maps */ +/* like dvorak, qwerty, colemak, beakl, etc., to be defined simply. */ + + +/* Additional, usage examples can be found in keyboards.*/ +/* crkbd/keymaps/ericgebhart */ +/* kinesis/keymaps/ericgebhart */ +/* ergodox_ez/keymaps/ericgebhart */ +/* keebio/viterbi/keymaps/ericgebhart */ +/* xiudi/xd75/keymaps/ericgebhart */ +/* montsinger/rebound/rev4/keymaps/ericgebhart */ + + + +/********************************************************************/ +/* xiudi/xd75 - Ortholinear 5x15 */ +/********************************************************************/ +/// These first two base layout templates take sets of 5 keys, left and right. +// Using 4 sets allows for changing the number row if you have one. +// if you never change the number row, then use 3 sets of left and right. +// and define the number row here. +#define Base_5x15( \ + K01, K02, K03, K04, K05, \ + K06, K07, K08, K09, K0A, \ + K11, K12, K13, K14, K15, \ + K16, K17, K18, K19, K1A, \ + K21, K22, K23, K24, K25, \ + K26, K27, K28, K29, K2A, \ + K31, K32, K33, K34, K35, \ + K36, K37, K38, K39, K3A) \ + LVARG_5x15( \ + MOD_ROW(ROW0L)(K01, K02, K03, K04, K05), \ + MAP_CHUNK(___3_MIDDLE_T), \ + MOD_ROW(ROW0R)(K06, K07, K08, K09, K0A), \ + \ + MOD_ROW(ROW1L)(K11, K12, K13, K14, K15), \ + MAP_CHUNK(___3_MIDDLE_1), \ + MOD_ROW(ROW1R)(K16, K17, K18, K19, K1A), \ + \ + MOD_ROW(ROW2L)(K21, K22, K23, K24, K25), \ + MAP_CHUNK(___3_MIDDLE_2), \ + MOD_ROW(ROW2R)(K26, K27, K28, K29, K2A), \ + \ + MOD_ROW(ROW3L)(K31, K32, K33, K34, K35), \ + MAP_CHUNK(___3_MIDDLE_3), \ + MOD_ROW(ROW3R)(K36, K37, K38, K39, K3A), \ + MAP_CHUNK(___15_BOTTOM) \ + ) + +#define Base_5x15t6( \ + K01, K02, K03, K04, K05, K06, \ + K07, K08, K09, K0A, K0B, K0C, \ + K11, K12, K13, K14, K15, K16, \ + K17, K18, K19, K1A, K1B, K1C, \ + K21, K22, K23, K24, K25, K26, \ + K27, K28, K29, K2A, K2B, K2C, \ + K31, K32, K33, K34, K35, K36, \ + K37, K38, K39, K3A, K3B, K3C) \ + LVARG_5x15( \ + MOD_ROW(ROW0L)(K01, K02, K03, K04, K05, K06), \ + MAP_CHUNK(___3_MIDDLE_T), \ + MOD_ROW(ROW0R)(K07, K08, K09, K0A, K0B, K0C), \ + MOD_ROW(ROW1L)(K11, K12, K13, K14, K15, K16), \ + MAP_CHUNK(___3_MIDDLE_1), \ + MOD_ROW(ROW1R)(K17, K18, K19, K1A, K1B, K1C), \ + MOD_ROW(ROW2L)(K21, K22, K23, K24, K25, K26), \ + MAP_CHUNK(___3_MIDDLE_2), \ + MOD_ROW(ROW2R)(K27, K28, K29, K2A, K2B, K2C), \ + MOD_ROW(ROW3L)(K31, K32, K33, K34, K35, K36), \ + MAP_CHUNK(___3_MIDDLE_3), \ + MOD_ROW(ROW3R)(K37, K38, K39, K3A, K3B, K3C), \ + MAP_CHUNK(___15_BOTTOM) \ + ) + +// 4 rows of 12. 3 columns transparent in the middle. +#define Transient_5x15( \ + K01, K02, K03, K04, K05, \ + K07, K08, K09, K0A, K0B, \ + K11, K12, K13, K14, K15, \ + K17, K18, K19, K1A, K1B, \ + K21, K22, K23, K24, K25, \ + K27, K28, K29, K2A, K2B \ + ) \ + LVARG_5x15( \ + ___15___, \ + ___, K01, K02, K03, K04, K05, \ + ___3___, \ + K07, K08, K09, K0A, K0B, ___, \ + ___, K11, K12, K13, K14, K15, \ + ___3___, \ + K17, K18, K19, K1A, K1B, ___, \ + ___, K21, K22, K23, K24, K25, \ + ___3___, \ + K27, K28, K29, K2A, K2B, ___, \ + MAP_CHUNK(___15_BOTTOM) \ + ) \ + +/********************************************************************/ + + +/********************************************************************/ +/* viterbi - Ortholinear 5x14 */ +/********************************************************************/ +#define Base_5x14( \ + K01, K02, K03, K04, K05, \ + K06, K07, K08, K09, K0A, \ + K11, K12, K13, K14, K15, \ + K16, K17, K18, K19, K1A, \ + K21, K22, K23, K24, K25, \ + K26, K27, K28, K29, K2A, \ + K31, K32, K33, K34, K35, \ + K36, K37, K38, K39, K3A) \ + LVARG_5x14( \ + MOD_ROW(ROW0L)(K01, K02, K03, K04, K05), \ + MAP_CHUNK(___2_MIDDLE_T), \ + MOD_ROW(ROW0R)(K06, K07, K08, K09, K0A), \ + \ + MOD_ROW(ROW1L)(K11, K12, K13, K14, K15), \ + MAP_CHUNK(___2_MIDDLE_1), \ + MOD_ROW(ROW1R)(K16, K17, K18, K19, K1A), \ + \ + MOD_ROW(ROW2L)(K21, K22, K23, K24, K25), \ + MAP_CHUNK(___2_MIDDLE_2), \ + MOD_ROW(ROW2R)(K26, K27, K28, K29, K2A), \ + \ + MOD_ROW(ROW3L)(K31, K32, K33, K34, K35), \ + MAP_CHUNK(___2_MIDDLE_3), \ + MOD_ROW(ROW3R)(K36, K37, K38, K39, K3A), \ + MAP_CHUNK(___14_BOTTOM) \ + ) +#define Base_5x14t6( \ + K01, K02, K03, K04, K05, K06, \ + K07, K08, K09, K0A, K0B, K0C, \ + K11, K12, K13, K14, K15, K16, \ + K17, K18, K19, K1A, K1B, K1C, \ + K21, K22, K23, K24, K25, K26, \ + K27, K28, K29, K2A, K2B, K2C, \ + K31, K32, K33, K34, K35, K36, \ + K37, K38, K39, K3A, K3B, K3C) \ + LVARG_5x15( \ + MOD_ROW(ROW0L)(K01, K02, K03, K04, K05, K06), \ + MAP_CHUNK(___2_MIDDLE_T), \ + MOD_ROW(ROW0R)(K07, K08, K09, K0A, K0B, K0C), \ + MOD_ROW(ROW1L)(K11, K12, K13, K14, K15, K16), \ + MAP_CHUNK(___2_MIDDLE_1), \ + MOD_ROW(ROW1R)(K17, K18, K19, K1A, K1B, K1C), \ + MOD_ROW(ROW2L)(K21, K22, K23, K24, K25, K26), \ + MAP_CHUNK(___2_MIDDLE_2), \ + MOD_ROW(ROW2R)(K27, K28, K29, K2A, K2B, K2C), \ + MOD_ROW(ROW3L)(K31, K32, K33, K34, K35, K36), \ + MAP_CHUNK(___2_MIDDLE_3), \ + MOD_ROW(ROW3R)(K37, K38, K39, K3A, K3B, K3C), \ + MAP_CHUNK(___14_BOTTOM) \ + ) + +// 4 rows of 12. 2 columns transparent in the middle. +#define Transient_5x14( \ + K01, K02, K03, K04, K05, \ + K07, K08, K09, K0A, K0B, \ + K11, K12, K13, K14, K15, \ + K17, K18, K19, K1A, K1B, \ + K21, K22, K23, K24, K25, \ + K27, K28, K29, K2A, K2B \ + ) \ + LVARG_5x14( \ + ___14___, \ + ___, K01, K02, K03, K04, K05, \ + ___2___, \ + K07, K08, K09, K0A, K0B, ___, \ + \ + ___, K11, K12, K13, K14, K15, \ + ___2___, \ + K17, K18, K19, K1A, K1B, ___, \ + \ + ___, K21, K22, K23, K24, K25, \ + ___2___, \ + K27, K28, K29, K2A, K2B, ___, \ + MAP_CHUNK(___14_BOTTOM) \ + ) \ + +/********************************************************************/ +/* Ortholinear 4x12 */ +/********************************************************************/ +#define LAYOUT_4x12_base( \ + K01, K02, K03, K04, K05, \ + K06, K07, K08, K09, K0A, \ + K11, K12, K13, K14, K15, \ + K16, K17, K18, K19, K1A, \ + K21, K22, K23, K24, K25, \ + K26, K27, K28, K29, K2A \ + ) \ + LVARG_4x12( \ + MOD_CORE_3x5(K01, K02, K03, K04, K05, \ + K06, K07, K08, K09, K0A, \ + K11, K12, K13, K14, K15, \ + K16, K17, K18, K19, K1A, \ + K21, K22, K23, K24, K25, \ + K26, K27, K28, K29, K2A), \ + ___12_BOTTOM___ \ + ) + +// Just for bepo because it's a 3x6 matrix on each side. +// So 3 pairs of 6 keys, left and right. + +// takes 3 makes 4 rows of 12. +#define LAYOUT_4x12_transient( \ + K01, K02, K03, K04, K05, K06, \ + K07, K08, K09, K0A, K0B, K0C, \ + K11, K12, K13, K14, K15, K16, \ + K17, K18, K19, K1A, K1B, K1C, \ + K21, K22, K23, K24, K25, K26, \ + K27, K28, K29, K2A, K2B, K2C \ + ) \ + LVARG_4x12( \ + K01, K02, K03, K04, K05, K06, \ + K07, K08, K09, K0A, K0B, K0C, \ + K11, K12, K13, K14, K15, K16, \ + K17, K18, K19, K1A, K1B, K1C, \ + K21, K22, K23, K24, K25, K26, \ + K27, K28, K29, K2A, K2B, K2C, \ + ___12_BOTTOM___ \ + ) \ + +/********************************************************************/ +/* CRKBD Corne or any other 3x5/6 with 3 thumbs on each side. */ +/* The Corne has 3x6 matrix on both sides with 6 thumbs total */ +/* This Macro takes 2x3x5 and gives it pinkies, and thumbs. */ +/* Arg chunks are in the middle with the passthrough modifiers as */ +/* needed. Sama Sama apres cette fois. */ +/********************************************************************/ + +#define Base_3x6_3( \ + K01, K02, K03, K04, K05, \ + K06, K07, K08, K09, K0A, \ + K11, K12, K13, K14, K15, \ + K16, K17, K18, K19, K1A, \ + K21, K22, K23, K24, K25, \ + K26, K27, K28, K29, K2A) \ + LAYOUT_VARG( \ + MOD_CORE_3x5(K01, K02, K03, K04, K05, \ + K06, K07, K08, K09, K0A, \ + K11, K12, K13, K14, K15, \ + K16, K17, K18, K19, K1A, \ + K21, K22, K23, K24, K25, \ + K26, K27, K28, K29, K2A), \ + ___6_ERGO_THUMBS___ \ + ) + +#define Base_3x6_3t6( \ + K01, K02, K03, K04, K05, K06, \ + K07, K08, K09, K0A, K0B, K0C, \ + K11, K12, K13, K14, K15, K16, \ + K17, K18, K19, K1A, K1B, K1C, \ + K21, K22, K23, K24, K25, K26, \ + K27, K28, K29, K2A, K2B, K2C) \ + LAYOUT_VARG( \ + MOD_CORE_3x6( \ + K01, K02, K03, K04, K05, K06, \ + K07, K08, K09, K0A, K0B, K0C, \ + K11, K12, K13, K14, K15, K16, \ + K17, K18, K19, K1A, K1B, K1C, \ + K21, K22, K23, K24, K25, K26, \ + K27, K28, K29, K2A, K2B, K2C), \ + ___6_ERGO_THUMBS___ \ + ) + + // All we really need is to add the see through thumbs to the end. +#define Transient_3x6_3( \ + K01, K02, K03, K04, K05, \ + K07, K08, K09, K0A, K0B, \ + K11, K12, K13, K14, K15, \ + K17, K18, K19, K1A, K1B, \ + K21, K22, K23, K24, K25, \ + K27, K28, K29, K2A, K2B \ + ) \ + LAYOUT_VARG( \ + ___, K01, K02, K03, K04, K05, \ + K07, K08, K09, K0A, K0B, ___, \ + ___, K11, K12, K13, K14, K15, \ + K17, K18, K19, K1A, K1B, ___, \ + ___, K21, K22, K23, K24, K25, \ + K27, K28, K29, K2A, K2B, ___, \ + ___6_ERGO_THUMBS___ \ + ) + +//___6_ERGO_THUMBS___ + +/********************************************************************/ +/* Kinesis*/ +/********************************************************************/ +// A 4x6 on each side, with a 4 column fifth row, and 6 thumbs on +// each side. - 4x6_4_6. +// Then a giant row up top, 9 keys on each side, for function keys. +#define Base_4x6_4_6( \ + K01, K02, K03, K04, K05, \ + K06, K07, K08, K09, K0A, \ + K11, K12, K13, K14, K15, \ + K16, K17, K18, K19, K1A, \ + K21, K22, K23, K24, K25, \ + K26, K27, K28, K29, K2A, \ + K31, K32, K33, K34, K35, \ + K36, K37, K38, K39, K3A \ + ) \ + LAYOUT_PVARG( \ + ___KINTFUNC_L___, ___KINTFUNC_R___, \ + MOD_CORE_4x5(K01, K02, K03, K04, K05, \ + K06, K07, K08, K09, K0A, \ + K11, K12, K13, K14, K15, \ + K16, K17, K18, K19, K1A, \ + K21, K22, K23, K24, K25, \ + K26, K27, K28, K29, K2A, \ + K31, K32, K33, K34, K35, \ + K36, K37, K38, K39, K3A), \ + MAP_CHUNK(___4_BOTTOM_LEFT), \ + MAP_CHUNK(___4_BOTTOM_RIGHT), \ + MAP_CHUNK(___12_DOX_ALL_THUMBS) \ + ) + + +#define Base_4x6_4_6t6( \ + K01, K02, K03, K04, K05, K06, \ + K07, K08, K09, K0A, K0B, K0C, \ + K11, K12, K13, K14, K15, K16, \ + K17, K18, K19, K1A, K1B, K1C, \ + K21, K22, K23, K24, K25, K26, \ + K27, K28, K29, K2A, K2B, K2C, \ + K31, K32, K33, K34, K35, K36, \ + K37, K38, K39, K3A, K3B, K3C) \ + LAYOUT_PVARG( \ + MOD_CORE_4x6( \ + K01, K02, K03, K04, K05, K06, \ + K07, K08, K09, K0A, K0B, K0C, \ + K11, K12, K13, K14, K15, K16, \ + K17, K18, K19, K1A, K1B, K1C, \ + K21, K22, K23, K24, K25, K26, \ + K27, K28, K29, K2A, K2B, K2C, \ + K31, K32, K33, K34, K35, K36, \ + K37, K38, K39, K3A, K3B, K3C), \ + MAP_CHUNK(___4_BOTTOM_LEFT), \ + MAP_CHUNK(___4_BOTTOM_RIGHT), \ + MAP_CHUNK(___12_DOX_ALL_THUMBS) \ + ) + +#define Transient_4x6_4_6( \ + K01, K02, K03, K04, K05, \ + K07, K08, K09, K0A, K0B, \ + K11, K12, K13, K14, K15, \ + K17, K18, K19, K1A, K1B, \ + K21, K22, K23, K24, K25, \ + K27, K28, K29, K2A, K2B \ + ) \ + LAYOUT_PVARG( \ + ___12___, ___6___, \ + ___12___, \ + ___, K01, K02, K03, K04, K05, \ + K07, K08, K09, K0A, K0B, ___, \ + ___, K11, K12, K13, K14, K15, \ + K17, K18, K19, K1A, K1B, ___, \ + ___, K21, K22, K23, K24, K25, \ + K27, K28, K29, K2A, K2B, ___, \ + ___4___, ___4___, \ + MAP_CHUNK(___12_DOX_ALL_THUMBS) \ + ) + +/* ___KINTFUNC_L___, ___KINTFUNC_R___, \ */ + +/* This keyboard is a split, 4x6 + a row of 5 and a thumb cluster of 8. */ +/* So We need Base_4x6_5_8 As a layout template to add mods, and fill */ +/* out the perimeter keys of the keyboard. Perimeter keys being the */ +/* number row, outside pinky keys, the 5th row, and thumbs. */ + +/********************************************************************/ +/* Dactyl with 8 thumb keys*/ +/********************************************************************/ +// Basically an ergodox ez without the 3 pairs of middle keys. +// electrically 7 columns in the 5th row. 6 in the rest. +// Left, right, bottom, and thumbs all stay the same. + +#define Base_4x6_5_8( \ + K01, K02, K03, K04, K05, \ + K06, K07, K08, K09, K0A, \ + K11, K12, K13, K14, K15, \ + K16, K17, K18, K19, K1A, \ + K21, K22, K23, K24, K25, \ + K26, K27, K28, K29, K2A, \ + K31, K32, K33, K34, K35, \ + K36, K37, K38, K39, K3A \ + ) \ + LAYOUT_PVARG( \ + MOD_CORE_4x5(K01, K02, K03, K04, K05, \ + K06, K07, K08, K09, K0A, \ + K11, K12, K13, K14, K15, \ + K16, K17, K18, K19, K1A, \ + K21, K22, K23, K24, K25, \ + K26, K27, K28, K29, K2A, \ + K31, K32, K33, K34, K35, \ + K36, K37, K38, K39, K3A \ + ), \ + MAP_CHUNK(___5_BOTTOM_LEFT), MAP_CHUNK(___5_BOTTOM_RIGHT), \ + MAP_CHUNK(___16_ALL_THUMBSa) \ + ) + +#define Base_4x6_5_8t6( \ + K01, K02, K03, K04, K05, K06, \ + K07, K08, K09, K0A, K0B, K0C, \ + K11, K12, K13, K14, K15, K16, \ + K17, K18, K19, K1A, K1B, K1C, \ + K21, K22, K23, K24, K25, K26, \ + K27, K28, K29, K2A, K2B, K2C, \ + K31, K32, K33, K34, K35, K36, \ + K37, K38, K39, K3A, K3B, K3C) \ + LAYOUT_PVARG( \ + MOD_CORE_4x6( \ + K01, K02, K03, K04, K05, K06, \ + K07, K08, K09, K0A, K0B, K0C, \ + K11, K12, K13, K14, K15, K16, \ + K17, K18, K19, K1A, K1B, K1C, \ + K21, K22, K23, K24, K25, K26, \ + K27, K28, K29, K2A, K2B, K2C, \ + K31, K32, K33, K34, K35, K36, \ + K37, K38, K39, K3A, K3B, K3C), \ + MAP_CHUNK(___5_BOTTOM_LEFT), MAP_CHUNK(___5_BOTTOM_RIGHT), \ + MAP_CHUNK(___16_ALL_THUMBSa) \ + ) + + +// so far no need for mods on the transient layers. +// switching to 3x5 transients. 10 column defines. +// I like 3x10 maps even on big keyboards. +# define Transient_4x6_5_8( \ + K01, K02, K03, K04, K05, \ + K06, K07, K08, K09, K0A, \ + K11, K12, K13, K14, K15, \ + K16, K17, K18, K19, K1A, \ + K21, K22, K23, K24, K25, \ + K26, K27, K28, K29, K2A \ + ) \ + LAYOUT_PVARG( \ + ___6___, ___6___, \ + ___, K01, K02, K03, K04, K05, \ + K06, K07, K08, K09, K0A, ___, \ + ___, K11, K12, K13, K14, K15, \ + K16, K17, K18, K19, K1A, ___, \ + ___, K21, K22, K23, K24, K25, \ + K26, K27, K28, K29, K2A, ___, \ + ___5___, ___5___, \ + MAP_CHUNK(___16_ALL_THUMBSa) \ + ) + +/********************************************************************/ +/* Ergodox EZ */ +/********************************************************************/ +// This one is is set up to pass in the number row. +// Beakl and bepo both change the number row. +// Left, middle, right, bottom, and thumbs all stay the same. +#define Base_dox( \ + K01, K02, K03, K04, K05, \ + K06, K07, K08, K09, K0A, \ + K11, K12, K13, K14, K15, \ + K16, K17, K18, K19, K1A, \ + K21, K22, K23, K24, K25, \ + K26, K27, K28, K29, K2A, \ + K31, K32, K33, K34, K35, \ + K36, K37, K38, K39, K3A \ + ) \ + LVARG_edox( \ + MOD_ROW(ROW0L)(K01, K02, K03, K04, K05), \ + MAP_CHUNK(___2_MIDDLE_1), \ + MOD_ROW(ROW0R)(K06, K07, K08, K09, K0A), \ + \ + MOD_ROW(ROW1L)(K11, K12, K13, K14, K15), \ + MAP_CHUNK(___2_MIDDLE_2), \ + MOD_ROW(ROW1R)(K16, K17, K18, K19, K1A), \ + \ + MOD_ROW(ROW2L)(K21, K22, K23, K24, K25), \ + MOD_ROW(ROW2R)(K26, K27, K28, K29, K2A), \ + \ + MOD_ROW(ROW3L)(K31, K32, K33, K34, K35), \ + MAP_CHUNK(___2_MIDDLE_3), \ + MOD_ROW(ROW3R)(K36, K37, K38, K39, K3A), \ + MAP_CHUNK(___5_BOTTOM_LEFT), MAP_CHUNK(___5_BOTTOM_RIGHT), \ + MAP_CHUNK(___12_DOX_ALL_THUMBS) \ + ) + +#define Base_doxt6( \ + K01, K02, K03, K04, K05, K06, \ + K07, K08, K09, K0A, K0B, K0C, \ + K11, K12, K13, K14, K15, K16, \ + K17, K18, K19, K1A, K1B, K1C, \ + K21, K22, K23, K24, K25, K26, \ + K27, K28, K29, K2A, K2B, K2C, \ + K31, K32, K33, K34, K35, K36, \ + K37, K38, K39, K3A, K3B, K3C) \ + LVARG_edox(MOD_ROW(ROW0L)(K01, K02, K03, K04, K05, K06), \ + MAP_CHUNK(___2_MIDDLE_1), \ + MOD_ROW(ROW0R)(K07, K08, K09, K0A, K0B, K0C), \ + MOD_ROW(ROW1L)(K11, K12, K13, K14, K15, K16), \ + MAP_CHUNK(___2_MIDDLE_2), \ + MOD_ROW(ROW1R)(K17, K18, K19, K1A, K1B, K1C), \ + MOD_ROW(ROW2L)(K21, K22, K23, K24, K25, K26), \ + MOD_ROW(ROW2R)(K27, K28, K29, K2A, K2B, K2C), \ + MOD_ROW(ROW3L)(K31, K32, K33, K34, K35, K36), \ + MAP_CHUNK(___2_MIDDLE_3), \ + MOD_ROW(ROW3R)(K37, K38, K39, K3A, K3B, K3C), \ + MAP_CHUNK(___5_BOTTOM_LEFT), \ + MAP_CHUNK(___5_BOTTOM_RIGHT), \ + MAP_CHUNK(___12_DOX_ALL_THUMBS)) + +#define Transient_dox( \ + K01, K02, K03, K04, K05, \ + K07, K08, K09, K0A, K0B, \ + K11, K12, K13, K14, K15, \ + K17, K18, K19, K1A, K1B, \ + K21, K22, K23, K24, K25, \ + K27, K28, K29, K2A, K2B) \ + LVARG_edox( \ + ___14___, \ + ___, K01, K02, K03, K04, K05, \ + ___2___, \ + K07, K08, K09, K0A, K0B, ___, \ + ___, K11, K12, K13, K14, K15, \ + K17, K18, K19, K1A, K1B, ___, \ + ___, K21, K22, K23, K24, K25, \ + ___2___, \ + K27, K28, K29, K2A, K2B, ___, \ + ___5___, ___5___, \ + MAP_CHUNK(___12_DOX_ALL_THUMBS) \ + ) + + +/********************************************************************/ +/* Rebound 4 rows, 1x12, 3x13 */ +/********************************************************************/ +#define LVARG_rebound(...) LAYOUT_all(__VA_ARGS__) +#define Base_rebound( \ + K01, K02, K03, K04, K05, \ + K06, K07, K08, K09, K0A, \ + K11, K12, K13, K14, K15, \ + K16, K17, K18, K19, K1A, \ + K21, K22, K23, K24, K25, \ + K26, K27, K28, K29, K2A \ + ) \ + LVARG_rebound( \ + MOD_ROW(ROW1L)(K01, K02, K03, K04, K05), \ + MOD_ROW(ROW1R)(K06, K07, K08, K09, K0A), \ + \ + MOD_ROW(ROW2L)(K11, K12, K13, K14, K15), \ + KC_CCCV, \ + MOD_ROW(ROW2R)(K16, K17, K18, K19, K1A), \ + \ + MOD_ROW(ROW3L)(K21, K22, K23, K24, K25), \ + MO_ADJUST, \ + MOD_ROW(ROW3R)(K26, K27, K28, K29, K2A), \ + MAP_CHUNK(___13_BOTTOM) \ + ) +#define Base_reboundt6( \ + K01, K02, K03, K04, K05, K06, \ + K07, K08, K09, K0A, K0B, K0C, \ + K11, K12, K13, K14, K15, K16, \ |