Eric Gebhart user space and keymaps (#17487)
Co-authored-by: Drashna Jaelre <drashna@live.com>
This commit is contained in:
115
users/ericgebhart/keyboards/keyboards.h
Normal file
115
users/ericgebhart/keyboards/keyboards.h
Normal file
@@ -0,0 +1,115 @@
|
||||
#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/>.
|
||||
*/
|
||||
|
||||
|
||||
// Kyria
|
||||
#ifdef KEYBOARD_splitkb_kyria
|
||||
#define BASE Base_2x6_8_5
|
||||
#define BASEt6 Base_2x6_8_5t6
|
||||
#define TRANS Transient_2x6_8_5
|
||||
#define BASE_COLS_IN_OUT 5_6 // 5, 5_6, 6
|
||||
#endif
|
||||
|
||||
// Corne
|
||||
#ifdef KEYBOARD_crkbd
|
||||
#define BASE Base_3x6_3
|
||||
#define BASEt6 Base_3x6_3t6
|
||||
#define TRANS Transient_3x6_3
|
||||
#define BASE_COLS_IN_OUT 5_6 // 5, 5_6, 6
|
||||
#endif
|
||||
|
||||
// Ergodox ez.
|
||||
#ifdef KEYBOARD_ergodox_ez
|
||||
#define BASE Base_dox
|
||||
#define BASEt6 Base_doxt6
|
||||
#define TRANS Transient_dox
|
||||
#define BASE_COLS_IN_OUT 5_6 // 5, 5_6, 6
|
||||
// tell the keymap we want to specify number rows.
|
||||
// 4x10 input instead 3x10.
|
||||
#define BASE_NUMBER_ROW // turn on 4 row base templates.
|
||||
#endif
|
||||
|
||||
// XD75
|
||||
#ifdef KEYBOARD_xiudi_xd75
|
||||
#define BASE Base_5x15
|
||||
#define BASEt6 Base_5x15t6
|
||||
#define TRANS Transient_5x15
|
||||
#define BASE_COLS_IN_OUT 5_6 // 5, 5_6, 6
|
||||
|
||||
// tell the keymap we want to specify number rows.
|
||||
// 4x10 input instead 3x10.
|
||||
#define BASE_NUMBER_ROW // turn on 4 row base templates.
|
||||
#endif
|
||||
|
||||
// Viterbi
|
||||
#ifdef KEYBOARD_keebio_viterbi
|
||||
#define BASE Base_5x14
|
||||
#define BASEt6 Base_5x14t6
|
||||
#define TRANS Transient_5x14
|
||||
#define BASE_COLS_IN_OUT 5_6 // 5, 5_6, 6
|
||||
|
||||
// tell the keymap we want to specify number rows.
|
||||
// 4x10 input instead 3x10.
|
||||
#define BASE_NUMBER_ROW // turn on 4 row base templates.
|
||||
#endif
|
||||
|
||||
// Rebound
|
||||
#ifdef KEYBOARD_montsinger_rebound
|
||||
#define BASE Base_rebound
|
||||
#define BASEt6 Base_reboundt6
|
||||
#define TRANS Rebound_transient
|
||||
#define BASE_COLS_IN_OUT 5_6 // 5, 5_6, 6
|
||||
#endif
|
||||
|
||||
// Kinesis
|
||||
#if defined(KEYBOARD_kinesis_alvicstep) \
|
||||
|| defined(KEYBOARD_kinesis_stapelberg) \
|
||||
|| defined(KEYBOARD_kinesis_kint2pp) \
|
||||
|| defined(KEYBOARD_kinesis_nguyenvietyen) \
|
||||
|| defined(KEYBOARD_kinesis_kint36) \
|
||||
|| defined(KEYBOARD_kinesis_kint41) \
|
||||
|| defined(KEYBOARD_kinesis_kintlc)
|
||||
|
||||
#undef LAYOUT_PVARG
|
||||
#define LAYOUT_PVARG(...) LAYOUT_pretty(__VA_ARGS__)
|
||||
// Base layers 4x10, so numbers are enabled, and a 3x10 for the keymap.
|
||||
// Transient function layers are all 3x10.
|
||||
#define BASE Base_4x6_4_6
|
||||
#define BASEt6 Base_4x6_4_6t6
|
||||
#define TRANS Transient_4x6_4_6
|
||||
#define BASE_COLS_IN_OUT 5_6 // 5, 5_6, 6
|
||||
|
||||
// tell the keymap we want to specify number rows.
|
||||
// 4x10 input instead 3x10.
|
||||
#define BASE_NUMBER_ROW // turn on 4 row base templates.
|
||||
#endif
|
||||
|
||||
// My Morpho Dactyl
|
||||
#ifdef KEYBOARD_gebhart_morpho
|
||||
#undef LAYOUT_PVARG
|
||||
#define LAYOUT_PVARG(...) LAYOUT_split_4x6_5_8(__VA_ARGS__)
|
||||
|
||||
#define BASE Base_4x6_5_8
|
||||
#define BASEt6 Base_4x6_5_8t6
|
||||
#define TRANS Transient_4x6_5_8
|
||||
#define BASE_COLS_IN_OUT 5_6 // 5, 5_6, 6
|
||||
|
||||
// tell the keymap we want to specify number rows.
|
||||
// 4x10 input instead 3x10.
|
||||
#define BASE_NUMBER_ROW // turn on 4 row base templates.
|
||||
#endif
|
771
users/ericgebhart/keyboards/layouts.h
Normal file
771
users/ericgebhart/keyboards/layouts.h
Normal file
@@ -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, \
|
||||
K17, K18, K19, K1A, K1B, K1C, \
|
||||
K21, K22, K23, K24, K25, K26, \
|
||||
K27, K28, K29, K2A, K2B, K2C \
|
||||
) \
|
||||
LVARG_rebound( \
|
||||
MOD_ROW(ROW1L)(K01, K02, K03, K04, K05, K06), \
|
||||
MOD_ROW(ROW1R)(K07, K08, K09, K0A, K0B, K0C), \
|
||||
MOD_ROW(ROW2L)(K11, K12, K13, K14, K15, K16), \
|
||||
KC_CCCV, \
|
||||
MOD_ROW(ROW2R)(K17, K18, K19, K1A, K1B, K1C), \
|
||||
MOD_ROW(ROW3L)(K21, K22, K23, K24, K25, K26), \
|
||||
MO_ADJUST, \
|
||||
MOD_ROW(ROW3R)(K27, K28, K29, K2A, K2B, K2C), \
|
||||
MAP_CHUNK(___13_BOTTOM) \
|
||||
)
|
||||
|
||||
#define Rebound_transient( \
|
||||
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_rebound( \
|
||||
___, 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, ___, \
|
||||
MAP_CHUNK(___13_BOTTOM) \
|
||||
)
|
||||
|
||||
/********************************************************************/
|
||||
/* Kyria or any other 3x5/6 with 4 keys in the middle of the last */
|
||||
/* Row. Followed by 5 thumb keys on each side. 7 thumb keys total. */
|
||||
/********************************************************************/
|
||||
#define Base_2x6_8_5( \
|
||||
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_ROW(ROW1L)(K01, K02, K03, K04, K05), \
|
||||
MOD_ROW(ROW1R)(K06, K07, K08, K09, K0A), \
|
||||
\
|
||||
MOD_ROW(ROW2L)(K11, K12, K13, K14, K15), \
|
||||
MOD_ROW(ROW2R)(K16, K17, K18, K19, K1A), \
|
||||
\
|
||||
MOD_ROW(ROW3L)(K21, K22, K23, K24, K25), \
|
||||
MAP_CHUNK(___4_THUMBS), \
|
||||
MOD_ROW(ROW3R)(K26, K27, K28, K29, K2A), \
|
||||
MAP_CHUNK(___10_ERGO_THUMBS) \
|
||||
)
|
||||
|
||||
#define Base_2x6_8_5t6( \
|
||||
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_ROW(ROW1L)(K01, K02, K03, K04, K05, K06), \
|
||||
MOD_ROW(ROW1R)(K07, K08, K09, K0A, K0B, K0C), \
|
||||
MOD_ROW(ROW2L)(K11, K12, K13, K14, K15, K16), \
|
||||
MOD_ROW(ROW2R)(K17, K18, K19, K1A, K1B, K1C), \
|
||||
MOD_ROW(ROW3L)(K21, K22, K23, K24, K25, K26), \
|
||||
MAP_CHUNK(___4_THUMBS), \
|
||||
MOD_ROW(ROW3R)(K27, K28, K29, K2A, K2B, K2C), \
|
||||
MAP_CHUNK(___10_ERGO_THUMBS) \
|
||||
)
|
||||
|
||||
// All we really need is to add the see through thumbs to the end.
|
||||
#define Transient_2x6_8_5( \
|
||||
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, \
|
||||
___4___, \
|
||||
K27, K28, K29, K2A, K2B, ___, \
|
||||
MAP_CHUNK(___10_ERGO_THUMBS) \
|
||||
)
|
Reference in New Issue
Block a user