diff options
-rw-r--r-- | keyboards/vision_division/Potential Layouts.txt | 84 | ||||
-rw-r--r-- | keyboards/vision_division/config.h | 44 | ||||
-rw-r--r-- | keyboards/vision_division/keymaps/default/config.h | 36 | ||||
-rw-r--r-- | keyboards/vision_division/keymaps/default/keymap.c | 28 | ||||
-rw-r--r-- | keyboards/vision_division/matrix_types.h | 167 | ||||
-rw-r--r-- | keyboards/vision_division/vision_division.h | 114 | ||||
-rw-r--r-- | quantum/config_common.h | 9 |
7 files changed, 321 insertions, 161 deletions
diff --git a/keyboards/vision_division/Potential Layouts.txt b/keyboards/vision_division/Potential Layouts.txt new file mode 100644 index 0000000000..f715ac8c65 --- /dev/null +++ b/keyboards/vision_division/Potential Layouts.txt @@ -0,0 +1,84 @@ +/* Numeric Max / Numeric Normal - Full Grid + * .-----------------------------------. .--------------------------------------------------------------_--------------------------------------------------------------. .-----------------------------------. + * | | | | | | | | | | | | | | | | | | | | | | | | | + * '-----------------------------------' '-----------------------------------------------------------------------------------------------------------------------------' '-----------------------------------' + * .-----------------------------------. .-----------------------------------------------------------------------------------------------------------------------------. .-----------------------------------. + * | | | | | | | | | | | | | | | | | | | | | | | | | + * |--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------| + * | | | | | | | | | | | | | | | | | | | | | | | | | + * |--------+--------+--------+--------| o |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------| + * | | | | | o | | | | | | | | | | | | | | | | | | | | + * |--------+--------+--------+--------| o |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------| + * | | | | | | | | | | | | | | | | | | | | | | | | | + * |--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------| + * | | | | | | | | | | | | | | | | | | | | | | | | | + * '-----------------------------------' '-----------------------------------------------------------------------------------------------------------------------------' '-----------------------------------' + */ + +//* Numeric Max / Homing Normal - Full Grid + * .-----------------------------------. .--------------------------------------------------------------_--------------------------------------------------------------. .--------------------------. + * | | | | | | | | | | | | | | | | | | | | | | | | + * '-----------------------------------' '-----------------------------------------------------------------------------------------------------------------------------' '--------------------------' + * .-----------------------------------. .-----------------------------------------------------------------------------------------------------------------------------. .--------------------------. + * | | | | | | | | | | | | | | | | | | | | | | | | + * |--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------| + * | | | | | | | | | | | | | | | | | | | | | | | | + * |--------+--------+--------+--------| o |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------| + * | | | | | o | | | | | | | | | | | | | | | | | | | + * |--------+--------+--------+--------| o |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------| + * | | | | | | | | | | | | | | | | | | | | | | | | + * |--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------| + * | | | | | | | | | | | | | | | | | | | | | | | | + * '-----------------------------------' '-----------------------------------------------------------------------------------------------------------------------------' '--------------------------' + */ + +//* Numeric Max / Homing Normal - Traditional + * .-----------------------------------. .-----------------------------------. .-----------------_-----------------. .-----------------------------------. .--------------------------. + * | | | | | | | | | | | | | | | | | | | | | | | | + * '-----------------------------------' '-----------------------------------' '-----------------------------------' '-----------------------------------' '--------------------------' + * .-----------------------------------. .-----------------------------------------------------------------------------------------------------------------------------. .--------------------------. + * | | | | | | | | | | | | | | | | | | | | | | | | + * |--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------| + * | | | | | | | | | | | | | | | | | | | | | | | | + * |--------+--------+--------+ | o |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| '--------+--------+--------' + * | | | | | o | | | | | | | | | | | | | | | + * |--------+--------+--------+--------| o |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| .--------. + * | | | | | | | | | | | | | | | | | | | | + * |--------+--------+--------+ | |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| .--------+--------+--------. + * | | | | | | | | | | | | | | | | | | | | | | + * '-----------------------------------' '-----------------------------------------------------------------------------------------------------------------------------' '--------------------------' + */ + +/* Numeric Max / Numeric Normal + * .-----------------------------------. .--------------------------------------------------------------_--------------------------------------------------------------. .-----------------------------------. + * | | | | | | | | | | | | | | | | | | | | | | | | | + * '-----------------------------------' '-----------------------------------------------------------------------------------------------------------------------------' '-----------------------------------' + * .-----------------------------------. .-----------------------------------------------------------------------------------------------------------------------------. .-----------------------------------. + * | | | | | | 1U / 2U | | | | | | | | | | | 1U / 2U | | | | | | + * |--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------| + * | 1U | | | 1U | | | | | | | | | | | | | | | | | 1U | | | 1U | + * | / +--------+--------+ / | o |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| | / +--------+--------+ / | + * | 2U | | | 2U | o | 1U / 2U | | | | | | | | | | | | | 2U | | | 2U | + * |--------+--------+--------+--------| o |-----------------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| |--------+--------+--------+--------| + * | | | | | | 1U / 2U | | | | | | | | | | | 1U / 2U | | | | | | + * | '--------+--------' | |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| | '--------+--------' | + * | 1U / 2UH / 2UV | 1U / 2UH / 2UV | | | | | | | | 1U / 2U | | | | | | | | 1U / 2UH / 2UV | 1U / 2UH / 2UV | + * '-----------------------------------' '-----------------------------------------------------------------------------------------------------------------------------' '-----------------------------------' + */ + +/* Numeric Max / Numeric Max + * .-----------------------------------. .-----------------------------------------------------------------------_-----------------------------------------------------------------------. .-----------------------------------. + * | | | | | | | | | | | | | | | | | | | | | | | | | | | + * '-----------------------------------' '-----------------------------------------------------------------------------------------------------------------------------------------------' '-----------------------------------' + * .-----------------------------------. .-----------------------------------------------------------------------------------------------------------------------------------------------. .-----------------------------------. + * | | | | | | 1U / 2U | | | | | | | | | | | | | 1U / 2U | | | | | | + * |--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------| + * | 1U | | | 1U | | | | | | | | | | | | | | | | | | | 1U | | | 1U | + * | / +--------+--------+ / | o |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| | / +--------+--------+ / | + * | 2U | | | 2U | o | 1U / 2U | | | | | | | | | | | | | | | 2U | | | 2U | + * |--------+--------+--------+--------| o |-----------------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| |--------+--------+--------+--------| + * | | | | | | 1U / 2U | | | | | | | | | | | | | 1U / 2U | | | | | | + * | '--------+--------' | |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| | '--------+--------' | + * | 1U / 2UH / 2UV | 1U / 2UH / 2UV | | | | | | | | 1U / 2U | 1U / 2U | | | | | | | | 1U / 2UH / 2UV | 1U / 2UH / 2UV | + * '-----------------------------------' '-----------------------------------------------------------------------------------------------------------------------------------------------' '-----------------------------------' + */ diff --git a/keyboards/vision_division/config.h b/keyboards/vision_division/config.h index 1faea335ad..37b834973c 100644 --- a/keyboards/vision_division/config.h +++ b/keyboards/vision_division/config.h @@ -20,52 +20,12 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x2525 -#define DEVICE_VER 0x0001 -#define MANUFACTURER You -#define PRODUCT Vision Division -#define DESCRIPTION Split or Full Keyboard -#define MATRIX_EXTENDED - -/* key matrix size */ -#ifdef MATRIX_EXTENDED - #define MATRIX_ROWS 6 - #define MATRIX_COLS 24 -#else - #define MATRIX_ROWS 6 - #define MATRIX_COLS 12 -#endif - -/* - * Keyboard Matrix Assignments - * - * Change this to how you wired your keyboard - * COLS: AVR pins used for columns, left to right - * ROWS: AVR pins used for rows, top to bottom - * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) - * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) - * -*/ +// Due to the configurability of this keyboard, matrix sizes are determined in the keymap's config.h -#ifdef MATRIX_EXTENDED - // Note that the extended colums are reversed because the second PCB has col 1 on the far right. - #define MATRIX_ROW_PINS { C2, C3, F4, F5, F6, F7 } - #define MATRIX_COL_PINS { C1, C0, E1, E0, F3, F2, F1, F0, B0, B1, B2, B3, E6, A4, A0, A1, A5, A2, A6, A3, A7, C4, C5, C7} -#else #ifdef MATRIX_LEFT - #define MATRIX_ROW_PINS { C2, C3, F4, F5, F6, F7 } - #define MATRIX_COL_PINS { C1, C0, E1, E0, F3, F2, F1, F0, B0, B1, B2, B3 } - - - #define MATRIX_COL_PINS { B3, B2, B1, B0, F0, F1, F2, F3, E0, E1, C0, C1 } -#endif - -#define UNUSED_PINS /* COL2ROW or ROW2COL */ #define DIODE_DIRECTION COL2ROW - + // #define BACKLIGHT_PIN B7 // #define BACKLIGHT_BREATHING // #define BACKLIGHT_LEVELS 3 diff --git a/keyboards/vision_division/keymaps/default/config.h b/keyboards/vision_division/keymaps/default/config.h index df06a26206..c005aa8c5a 100644 --- a/keyboards/vision_division/keymaps/default/config.h +++ b/keyboards/vision_division/keymaps/default/config.h @@ -2,7 +2,41 @@ #define CONFIG_USER_H #include "../../config.h" +#include "matrix_types.h" -// place overrides here + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID GET_PID(NUMERIC_MAX_TEENSY, NUMERIC_MAX) +#define DEVICE_VER 0x0001 +#define MANUFACTURER IBNobody +#define PRODUCT Vision Division +#define DESCRIPTION Full / Split Keyboard + + +#define MATRIX_ROWS 6 +#define MATRIX_ROW_PINS { C2, C3, F4, F5, F6, F7 } + +#define MATRIX_COLS GET_MATRIX_COLS(NUMERIC_MAX_TEENSY, NUMERIC_MAX) +#define MATRIX_COL_PINS GET_MATRIX_COL_PINS(NUMERIC_MAX_TEENSY, NUMERIC_MAX) + +#define UNUSED_PINS + +#define KEYMAP( \ + k101, k102, k103, k104, k105, k106, k107, k108, k109, k10A, k10B, k10C, k111, k112, k113, k114, k115, k116, k117, k118, k119, k11A, k11B, k11C, \ + k201, k202, k203, k204, k205, k206, k207, k208, k209, k20A, k20B, k20C, k211, k212, k213, k214, k215, k216, k217, k218, k219, k21A, k21B, k21C, \ + k301, k302, k303, k304, k305, k306, k307, k308, k309, k30A, k30B, k30C, k311, k312, k313, k314, k315, k316, k317, k318, k319, k31A, k31B, k31C, \ + k401, k402, k403, k404, k405, k406, k407, k408, k409, k40A, k40B, k40C, k411, k412, k413, k414, k415, k416, k417, k418, k419, k41A, k41B, k41C, \ + k501, k502, k503, k504, k505, k506, k507, k508, k509, k50A, k50B, k50C, k511, k512, k513, k514, k515, k516, k517, k518, k519, k51A, k51B, k51C, \ + k601, k602, k603, k604, k605, k606, k607, k608, k609, k60A, k60B, k60C, k611, k612, k613, k614, k615, k616, k617, k618, k619, k61A, k61B, k61C \ +) \ +KEYMAP_MASTER(NUMERIC_MAX_TEENSY, NUMERIC_MAX, \ + k101, k102, k103, k104, k105, k106, k107, k108, k109, k10A, k10B, k10C, k111, k112, k113, k114, k115, k116, k117, k118, k119, k11A, k11B, k11C, \ + k201, k202, k203, k204, k205, k206, k207, k208, k209, k20A, k20B, k20C, k211, k212, k213, k214, k215, k216, k217, k218, k219, k21A, k21B, k21C, \ + k301, k302, k303, k304, k305, k306, k307, k308, k309, k30A, k30B, k30C, k311, k312, k313, k314, k315, k316, k317, k318, k319, k31A, k31B, k31C, \ + k401, k402, k403, k404, k405, k406, k407, k408, k409, k40A, k40B, k40C, k411, k412, k413, k414, k415, k416, k417, k418, k419, k41A, k41B, k41C, \ + k501, k502, k503, k504, k505, k506, k507, k508, k509, k50A, k50B, k50C, k511, k512, k513, k514, k515, k516, k517, k518, k519, k51A, k51B, k51C, \ + k601, k602, k603, k604, k605, k606, k607, k608, k609, k60A, k60B, k60C, k611, k612, k613, k614, k615, k616, k617, k618, k619, k61A, k61B, k61C \ +) \ #endif
\ No newline at end of file diff --git a/keyboards/vision_division/keymaps/default/keymap.c b/keyboards/vision_division/keymaps/default/keymap.c index 599c2cb522..3fddee78b7 100644 --- a/keyboards/vision_division/keymaps/default/keymap.c +++ b/keyboards/vision_division/keymaps/default/keymap.c @@ -1,10 +1,30 @@ #include "vision_division.h" + + + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = KEYMAP( /* Base */ - KC_A, KC_1, KC_H, \ - KC_TAB, KC_SPC \ -), + + [0] = KEYMAP( \ + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_A, KC_B, KC_C, 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_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, \ + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_A, KC_B, KC_C, 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_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, \ + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_A, KC_B, KC_C, 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_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12 \ +) + +/* + KC_VOLU, KC_MUTE, KC_VOLU, KC_F24, KC_F20, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12 k119, k11A, k11B, k11C, \ + KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, KC_ESC, KC_GRV, 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_BSPC, k219, k21A, k21B, k21C, \ + KC_KP_7, KC_KP_8, KC_KP_9, KC_F23, KC_F19, 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, k319, k31A, k31B, k31C, \ + KC_KP_4, KC_KP_5, KC_KP_6, KC_PPLS, KC_F18, 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_ENT, KC_PGUP, k419, k41A, k41B, k41C, \ + KC_KP_1, KC_KP_2, KC_KP_3, KC_F22, KC_F17, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_UP, KC_PGDN, k519, k51A, k51B, k51C. \ + KC_KP_0, KC_F21, KC_PDOT, KC_PENT, KC_F16, KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_UPPER, KC_SPC, KC_SPC, M_LOWER, OS_SHFT, KC_RALT, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, k619, k61A, k61B, k61C \ + + ) //-----, -------, -------, -------, -------, -------, -------, -------, -------, -------, -------, -------, -------, -------, -------, -------, -------, -------, -------, -------, -------, -------, -------, -------, -------, -------, + +*/ }; const uint16_t PROGMEM fn_actions[] = { diff --git a/keyboards/vision_division/matrix_types.h b/keyboards/vision_division/matrix_types.h new file mode 100644 index 0000000000..d40b2079a6 --- /dev/null +++ b/keyboards/vision_division/matrix_types.h @@ -0,0 +1,167 @@ +#ifndef MATRIX_TYPES_H +#define MATRIX_TYPES_H + +// Because the vision/division keyboard allows for multiple PCB configurations, the configuration +// can get tricky. The PCB itself has 12 columns, but to achieve a full sized 14-column keyboard +// with a 4-column numeric pad on the left and a 3-column homing key cluster on the right, the +// right PCB must have its rightmost column cut off. Also either the rightmost two columns on the +// left PCB or the leftmost two columns on the right PCB need to be cut away. +// +// _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ +// Left Numeric Max = 1 2 3 4 _ 5 6 7 8 9 0 A B C +// Left Homing Max = 2 3 4 _ 5 6 7 8 9 0 A B C +// Left Numeric Extended = 1 2 3 4 _ 5 6 7 8 9 0 A B +// Left Homing Extended = 2 3 4 _ 5 6 7 8 9 0 A B +// Left Numeric Normal = 1 2 3 4 _ 5 6 7 8 9 0 A +// Left Homing Normal = 2 3 4 _ 5 6 7 8 9 0 A +// Right Numeric Max = 1 2 3 4 5 6 7 8 _ 9 A B C +// Right Homing Max = 1 2 3 4 5 6 7 8 _ 9 A B +// Right Numeric Extended = 2 3 4 5 6 7 8 _ 9 A B C +// Right Homing Extended = 2 3 4 5 6 7 8 _ 9 A B +// Right Numeric Normal = 3 4 5 6 7 8 _ 9 A B C +// Right Homing Normal = 3 4 5 6 7 8 _ 9 A B +// +// +// A full keyboard would look like this: +// +// _Left_Numeric_Max__________|_Right_Homing_Normal +// 1 2 3 4 _ 5 6 7 8 9 0 A B C|3 4 5 6 7 8 _ 9 A B +// +// The ideal full keyboard would use a normal and max rather than two extended because the max +// size allows for a centered 2U space key. + + +#define MATRIX_TYPE_ABSENT 0 +#define MATRIX_TYPE_NUMERIC_MAX 1 +#define MATRIX_TYPE_HOMING_MAX 2 +#define MATRIX_TYPE_NUMERIC_EXTENDED 3 +#define MATRIX_TYPE_HOMING_EXTENDED 4 +#define MATRIX_TYPE_NUMERIC_NORMAL 5 +#define MATRIX_TYPE_HOMING_NORMAL 6 +#define MATRIX_TYPE_NUMERIC_MAX_TEENSY 7 +#define MATRIX_TYPE_HOMING_MAX_TEENSY 8 +#define MATRIX_TYPE_NUMERIC_EXTENDED_TEENSY 9 +#define MATRIX_TYPE_HOMING_EXTENDED_TEENSY 10 +#define MATRIX_TYPE_NUMERIC_NORMAL_TEENSY 11 +#define MATRIX_TYPE_HOMING_NORMAL_TEENSY 12 + + +// Column Length + +#define MATRIX_COLS_ABSENT 0 +#define MATRIX_COLS_NUMERIC_MAX 12 +#define MATRIX_COLS_HOMING_MAX 11 +#define MATRIX_COLS_NUMERIC_EXTENDED 11 +#define MATRIX_COLS_HOMING_EXTENDED 10 +#define MATRIX_COLS_NUMERIC_NORMAL 10 +#define MATRIX_COLS_HOMING_NORMAL 9 +#define MATRIX_COLS_NUMERIC_MAX_TEENSY 12 +#define MATRIX_COLS_HOMING_MAX_TEENSY 11 +#define MATRIX_COLS_NUMERIC_EXTENDED_TEENSY 11 +#define MATRIX_COLS_HOMING_EXTENDED_TEENSY 10 +#define MATRIX_COLS_NUMERIC_NORMAL_TEENSY 10 +#define MATRIX_COLS_HOMING_NORMAL_TEENSY 9 + +// Left PCB Pin assignments + +#define MATRIX_COL_PINS_LEFT_ABSENT + +#define MATRIX_COL_PINS_LEFT_NUMERIC_MAX C7, C5, C4, A7, A3, A6, A2, A5, A1, A0, A4, E6 +#define MATRIX_COL_PINS_LEFT_HOMING_MAX C5, C4, A7, A3, A6, A2, A5, A1, A0, A4, E6 +#define MATRIX_COL_PINS_LEFT_NUMERIC_EXTENDED C7, C5, C4, A7, A3, A6, A2, A5, A1, A0, A4 +#define MATRIX_COL_PINS_LEFT_HOMING_EXTENDED C5, C4, A7, A3, A6, A2, A5, A1, A0, A4 +#define MATRIX_COL_PINS_LEFT_NUMERIC_NORMAL C7, C5, C4, A7, A3, A6, A2, A5, A1, A0 +#define MATRIX_COL_PINS_LEFT_HOMING_NORMAL C5, C4, A7, A3, A6, A2, A5, A1, A0 + +#define MATRIX_COL_PINS_LEFT_NUMERIC_MAX_TEENSY C1, C0, E1, E0, F3, F2, F1, F0, B0, B1, B2, B3 +#define MATRIX_COL_PINS_LEFT_HOMING_MAX_TEENSY C0, E1, E0, F3, F2, F1, F0, B0, B1, B2, B3 +#define MATRIX_COL_PINS_LEFT_NUMERIC_EXTENDED_TEENSY C1, C0, E1, E0, F3, F2, F1, F0, B0, B1, B2 +#define MATRIX_COL_PINS_LEFT_HOMING_EXTENDED_TEENSY C0, E1, E0, F3, F2, F1, F0, B0, B1, B2 +#define MATRIX_COL_PINS_LEFT_NUMERIC_NORMAL_TEENSY C1, C0, E1, E0, F3, F2, F1, F0, B0, B1 +#define MATRIX_COL_PINS_LEFT_HOMING_NORMAL_TEENSY C0, E1, E0, F3, F2, F1, F0, B0, B1 + +// Right PCB Pin assignments + +#define MATRIX_COL_PINS_RIGHT_ABSENT + +#define MATRIX_COL_PINS_RIGHT_NUMERIC_MAX E6, A4, A0, A1, A5, A2, A6, A3, A7, C4, C5, C7 +#define MATRIX_COL_PINS_RIGHT_HOMING_MAX E6, A4, A0, A1, A5, A2, A6, A3, A7, C4, C5 +#define MATRIX_COL_PINS_RIGHT_NUMERIC_EXTENDED A4, A0, A1, A5, A2, A6, A3, A7, C4, C5, C7 +#define MATRIX_COL_PINS_RIGHT_HOMING_EXTENDED A4, A0, A1, A5, A2, A6, A3, A7, C4, C5 +#define MATRIX_COL_PINS_RIGHT_NUMERIC_NORMAL A0, A1, A5, A2, A6, A3, A7, C4, C5, C7 +#define MATRIX_COL_PINS_RIGHT_HOMING_NORMAL A0, A1, A5, A2, A6, A3, A7, C4, C5 + +#define MATRIX_COL_PINS_RIGHT_NUMERIC_MAX_TEENSY B3, B2, B1, B0, F0, F1, F2, F3, E0, E1, C0, C1 +#define MATRIX_COL_PINS_RIGHT_HOMING_MAX_TEENSY B3, B2, B1, B0, F0, F1, F2, F3, E0, E1, C0 +#define MATRIX_COL_PINS_RIGHT_NUMERIC_EXTENDED_TEENSY B2, B1, B0, F0, F1, F2, F3, E0, E1, C0, C1 +#define MATRIX_COL_PINS_RIGHT_HOMING_EXTENDED_TEENSY B2, B1, B0, F0, F1, F2, F3, E0, E1, C0 +#define MATRIX_COL_PINS_RIGHT_NUMERIC_NORMAL_TEENSY B1, B0, F0, F1, F2, F3, E0, E1, C0, C1 +#define MATRIX_COL_PINS_RIGHT_HOMING_NORMAL_TEENSY B1, B0, F0, F1, F2, F3, E0, E1, C0 + +// Fetch Macros + +#define GET_PID(LEFT_TYPE, RIGHT_TYPE) ( ( ( MATRIX_TYPE_ ## LEFT_TYPE ) << 8 ) + ( MATRIX_TYPE_ ## RIGHT_TYPE ) ) +#define GET_MATRIX_COL(TYPE) MATRIX_COLS_ ## TYPE +#define GET_MATRIX_COLS(LEFT_TYPE, RIGHT_TYPE) ( ( GET_MATRIX_COL(LEFT_TYPE) ) + ( GET_MATRIX_COL(RIGHT_TYPE) ) ) +#define GET_MATRIX_COL_PINS(LEFT_TYPE, RIGHT_TYPE) { MATRIX_COL_PINS_LEFT_ ## LEFT_TYPE, MATRIX_COL_PINS_RIGHT_ ## RIGHT_TYPE } + +// Specialized Row Macros + +#define KEYMAP_ROW_LEFT_ABSENT( k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C) + +#define KEYMAP_ROW_LEFT_NUMERIC_MAX( k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C) k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C +#define KEYMAP_ROW_LEFT_HOMING_MAX( k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C) k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C +#define KEYMAP_ROW_LEFT_NUMERIC_EXTENDED( k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C) k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B +#define KEYMAP_ROW_LEFT_HOMING_EXTENDED( k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C) k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B +#define KEYMAP_ROW_LEFT_NUMERIC_NORMAL( k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C) k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A +#define KEYMAP_ROW_LEFT_HOMING_NORMAL( k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C) k02, k03, k04, k05, k06, k07, k08, k09, k0A +#define KEYMAP_ROW_LEFT_NUMERIC_MAX_TEENSY( k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C) k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C +#define KEYMAP_ROW_LEFT_HOMING_MAX_TEENSY( k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C) k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C +#define KEYMAP_ROW_LEFT_NUMERIC_EXTENDED_TEENSY( k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C) k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B +#define KEYMAP_ROW_LEFT_HOMING_EXTENDED_TEENSY( k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C) k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B +#define KEYMAP_ROW_LEFT_NUMERIC_NORMAL_TEENSY( k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C) k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A +#define KEYMAP_ROW_LEFT_HOMING_NORMAL_TEENSY( k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C) k02, k03, k04, k05, k06, k07, k08, k09, k0A + +#define KEYMAP_ROW_RIGHT_ABSENT( k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C) + +#define KEYMAP_ROW_RIGHT_NUMERIC_MAX( k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C) k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C +#define KEYMAP_ROW_RIGHT_HOMING_MAX( k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C) k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B +#define KEYMAP_ROW_RIGHT_NUMERIC_EXTENDED( k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C) k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C +#define KEYMAP_ROW_RIGHT_HOMING_EXTENDED( k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C) k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B +#define KEYMAP_ROW_RIGHT_NUMERIC_NORMAL( k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C) k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C +#define KEYMAP_ROW_RIGHT_HOMING_NORMAL( k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C) k03, k04, k05, k06, k07, k08, k09, k0A, k0B +#define KEYMAP_ROW_RIGHT_NUMERIC_MAX_TEENSY( k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C) k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C +#define KEYMAP_ROW_RIGHT_HOMING_MAX_TEENSY( k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C) k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B +#define KEYMAP_ROW_RIGHT_NUMERIC_EXTENDED_TEENSY( k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C) k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C +#define KEYMAP_ROW_RIGHT_HOMING_EXTENDED_TEENSY( k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C) k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B +#define KEYMAP_ROW_RIGHT_NUMERIC_NORMAL_TEENSY( k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C) k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C +#define KEYMAP_ROW_RIGHT_HOMING_NORMAL_TEENSY( k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C) k03, k04, k05, k06, k07, k08, k09, k0A, k0B + +// Changable Row Macro + +#define KEYMAP_ROW(LEFT_TYPE, RIGHT_TYPE, \ + k001, k002, k003, k004, k005, k006, k007, k008, k009, k00A, k00B, k00C, k011, k012, k013, k014, k015, k016, k017, k018, k019, k01A, k01B, k01C \ +) \ +KEYMAP_ROW_LEFT_ ## LEFT_TYPE(k001, k002, k003, k004, k005, k006, k007, k008, k009, k00A, k00B, k00C), KEYMAP_ROW_RIGHT_ ## RIGHT_TYPE(k011, k012, k013, k014, k015, k016, k017, k018, k019, k01A, k01B, k01C) + +// Changable Master Macro + +#define KEYMAP_MASTER(LEFT_TYPE, RIGHT_TYPE, \ + k001, k002, k003, k004, k005, k006, k007, k008, k009, k00A, k00B, k00C, k011, k012, k013, k014, k015, k016, k017, k018, k019, k01A, k01B, k01C, \ + k101, k102, k103, k104, k105, k106, k107, k108, k109, k10A, k10B, k10C, k111, k112, k113, k114, k115, k116, k117, k118, k119, k11A, k11B, k11C, \ + k201, k202, k203, k204, k205, k206, k207, k208, k209, k20A, k20B, k20C, k211, k212, k213, k214, k215, k216, k217, k218, k219, k21A, k21B, k21C, \ + k301, k302, k303, k304, k305, k306, k307, k308, k309, k30A, k30B, k30C, k311, k312, k313, k314, k315, k316, k317, k318, k319, k31A, k31B, k31C, \ + k401, k402, k403, k404, k405, k406, k407, k408, k409, k40A, k40B, k40C, k411, k412, k413, k414, k415, k416, k417, k418, k419, k41A, k41B, k41C, \ + k501, k502, k503, k504, k505, k506, k507, k508, k509, k50A, k50B, k50C, k511, k512, k513, k514, k515, k516, k517, k518, k519, k51A, k51B, k51C \ +) \ +{ \ + { KEYMAP_ROW(LEFT_TYPE, RIGHT_TYPE, k001, k002, k003, k004, k005, k006, k007, k008, k009, k00A, k00B, k00C, k011, k012, k013, k014, k015, k016, k017, k018, k019, k01A, k01B, k01C ) },\ + { KEYMAP_ROW(LEFT_TYPE, RIGHT_TYPE, k101, k102, k103, k104, k105, k106, k107, k108, k109, k10A, k10B, k10C, k111, k112, k113, k114, k115, k116, k117, k118, k119, k11A, k11B, k11C ) },\ + { KEYMAP_ROW(LEFT_TYPE, RIGHT_TYPE, k201, k202, k203, k204, k205, k206, k207, k208, k209, k20A, k20B, k20C, k211, k212, k213, k214, k215, k216, k217, k218, k219, k21A, k21B, k21C ) },\ + { KEYMAP_ROW(LEFT_TYPE, RIGHT_TYPE, k301, k302, k303, k304, k305, k306, k307, k308, k309, k30A, k30B, k30C, k311, k312, k313, k314, k315, k316, k317, k318, k319, k31A, k31B, k31C ) },\ + { KEYMAP_ROW(LEFT_TYPE, RIGHT_TYPE, k401, k402, k403, k404, k405, k406, k407, k408, k409, k40A, k40B, k40C, k411, k412, k413, k414, k415, k416, k417, k418, k419, k41A, k41B, k41C ) },\ + { KEYMAP_ROW(LEFT_TYPE, RIGHT_TYPE, k501, k502, k503, k504, k505, k506, k507, k508, k509, k50A, k50B, k50C, k511, k512, k513, k514, k515, k516, k517, k518, k519, k51A, k51B, k51C ) },\ +} + + +#endif // MATRIX_TYPES_H
\ No newline at end of file diff --git a/keyboards/vision_division/vision_division.h b/keyboards/vision_division/vision_division.h index deeb85c1fb..a1f3195e9e 100644 --- a/keyboards/vision_division/vision_division.h +++ b/keyboards/vision_division/vision_division.h @@ -3,118 +3,4 @@ #include "quantum.h" -// This a shortcut to help you visually see your layout. -// The following is an example using the Planck MIT layout -// The first section contains all of the arguements -// The second converts the arguments into a two-dimensional array -#define KEYMAP_EXTENDED( \ - k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k00A, k00B, k00C, k010, k011, k012, k013, k014, k015, k016, k017, k018, k019, k01A, k01B, k01C \ - k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k10A, k10B, k10C, k110, k111, k112, k113, k114, k115, k116, k117, k118, k119, k11A, k11B, k11C \ - k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k20A, k20B, k20C, k210, k211, k212, k213, k214, k215, k216, k217, k218, k219, k21A, k21B, k21C \ - k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k30A, k30B, k30C, k310, k311, k312, k313, k314, k315, k316, k317, k318, k319, k31A, k31B, k31C \ - k400, k401, k402, k403, k404, k405, k406, k407, k408, k409, k40A, k40B, k40C, k410, k411, k412, k413, k414, k415, k416, k417, k418, k419, k41A, k41B, k41C \ - k500, k501, k502, k503, k504, k505, k506, k507, k508, k509, k50A, k50B, k50C, k510, k511, k512, k513, k514, k515, k516, k517, k518, k519, k51A, k51B, k51C \ -) \ -{ \ - { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k00A, k00B, k00C, k010, k011, k012, k013, k014, k015, k016, k017, k018, k019, k01A, k01B, k01C },\ - { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k10A, k10B, k10C, k110, k111, k112, k113, k114, k115, k116, k117, k118, k119, k11A, k11B, k11C },\ - { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k20A, k20B, k20C, k210, k211, k212, k213, k214, k215, k216, k217, k218, k219, k21A, k21B, k21C },\ - { k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k30A, k30B, k30C, k310, k311, k312, k313, k314, k315, k316, k317, k318, k319, k31A, k31B, k31C },\ - { k400, k401, k402, k403, k404, k405, k406, k407, k408, k409, k40A, k40B, k40C, k410, k411, k412, k413, k414, k415, k416, k417, k418, k419, k41A, k41B, k41C },\ - { k500, k501, k502, k503, k504, k505, k506, k507, k508, k509, k50A, k50B, k50C, k510, k511, k512, k513, k514, k515, k516, k517, k518, k519, k51A, k51B, k51C },\ -} - -#define KEYMAP_LEFT( \ - k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k00A, k00B, k00C, k010, k011, k012, k013, k014, k015, k016, k017, k018, k019, k01A, k01B, k01C \ - k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k10A, k10B, k10C, k110, k111, k112, k113, k114, k115, k116, k117, k118, k119, k11A, k11B, k11C \ - k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k20A, k20B, k20C, k210, k211, k212, k213, k214, k215, k216, k217, k218, k219, k21A, k21B, k21C \ - k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k30A, k30B, k30C, k310, k311, k312, k313, k314, k315, k316, k317, k318, k319, k31A, k31B, k31C \ - k400, k401, k402, k403, k404, k405, k406, k407, k408, k409, k40A, k40B, k40C, k410, k411, k412, k413, k414, k415, k416, k417, k418, k419, k41A, k41B, k41C \ - k500, k501, k502, k503, k504, k505, k506, k507, k508, k509, k50A, k50B, k50C, k510, k511, k512, k513, k514, k515, k516, k517, k518, k519, k51A, k51B, k51C \ -) \ -{ \ - { k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k00A, k00B, k00C },\ - { k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k10A, k10B, k10C },\ - { k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k20A, k20B, k20C },\ - { k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k30A, k30B, k30C },\ - { k400, k401, k402, k403, k404, k405, k406, k407, k408, k409, k40A, k40B, k40C },\ - { k500, k501, k502, k503, k504, k505, k506, k507, k508, k509, k50A, k50B, k50C },\ -} - -#define KEYMAP_RIGHT( \ - k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k00A, k00B, k00C, k010, k011, k012, k013, k014, k015, k016, k017, k018, k019, k01A, k01B, k01C \ - k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k10A, k10B, k10C, k110, k111, k112, k113, k114, k115, k116, k117, k118, k119, k11A, k11B, k11C \ - k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k20A, k20B, k20C, k210, k211, k212, k213, k214, k215, k216, k217, k218, k219, k21A, k21B, k21C \ - k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k30A, k30B, k30C, k310, k311, k312, k313, k314, k315, k316, k317, k318, k319, k31A, k31B, k31C \ - k400, k401, k402, k403, k404, k405, k406, k407, k408, k409, k40A, k40B, k40C, k410, k411, k412, k413, k414, k415, k416, k417, k418, k419, k41A, k41B, k41C \ - k500, k501, k502, k503, k504, k505, k506, k507, k508, k509, k50A, k50B, k50C, k510, k511, k512, k513, k514, k515, k516, k517, k518, k519, k51A, k51B, k51C \ -) \ -{ \ - { k010, k011, k012, k013, k014, k015, k016, k017, k018, k019, k01A, k01B, k01C },\ - { k110, k111, k112, k113, k114, k115, k116, k117, k118, k119, k11A, k11B, k11C },\ - { k210, k211, k212, k213, k214, k215, k216, k217, k218, k219, k21A, k21B, k21C },\ - { k310, k311, k312, k313, k314, k315, k316, k317, k318, k319, k31A, k31B, k31C },\ - { k410, k411, k412, k413, k414, k415, k416, k417, k418, k419, k41A, k41B, k41C },\ - { k510, k511, k512, k513, k514, k515, k516, k517, k518, k519, k51A, k51B, k51C },\ -} - -#ifdef MATRIX_EXTENDED -#define KEYMAP( \ - k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k00A, k00B, k00C, k010, k011, k012, k013, k014, k015, k016, k017, k018, k019, k01A, k01B, k01C \ - k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k10A, k10B, k10C, k110, k111, k112, k113, k114, k115, k116, k117, k118, k119, k11A, k11B, k11C \ - k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k20A, k20B, k20C, k210, k211, k212, k213, k214, k215, k216, k217, k218, k219, k21A, k21B, k21C \ - k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k30A, k30B, k30C, k310, k311, k312, k313, k314, k315, k316, k317, k318, k319, k31A, k31B, k31C \ - k400, k401, k402, k403, k404, k405, k406, k407, k408, k409, k40A, k40B, k40C, k410, k411, k412, k413, k414, k415, k416, k417, k418, k419, k41A, k41B, k41C \ - k500, k501, k502, k503, k504, k505, k506, k507, k508, k509, k50A, k50B, k50C, k510, k511, k512, k513, k514, k515, k516, k517, k518, k519, k51A, k51B, k51C \ -) \ -KEYMAP_EXTENDED( \ - k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k00A, k00B, k00C, k010, k011, k012, k013, k014, k015, k016, k017, k018, k019, k01A, k01B, k01C \ - k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k10A, k10B, k10C, k110, k111, k112, k113, k114, k115, k116, k117, k118, k119, k11A, k11B, k11C \ - k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k20A, k20B, k20C, k210, k211, k212, k213, k214, k215, k216, k217, k218, k219, k21A, k21B, k21C \ - k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k30A, k30B, k30C, k310, k311, k312, k313, k314, k315, k316, k317, k318, k319, k31A, k31B, k31C \ - k400, k401, k402, k403, k404, k405, k406, k407, k408, k409, k40A, k40B, k40C, k410, k411, k412, k413, k414, k415, k416, k417, k418, k419, k41A, k41B, k41C \ - k500, k501, k502, k503, k504, k505, k506, k507, k508, k509, k50A, k50B, k50C, k510, k511, k512, k513, k514, k515, k516, k517, k518, k519, k51A, k51B, k51C \ -) -#endif - -#ifdef MATRIX_LEFT -#define KEYMAP( \ - k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k00A, k00B, k00C, k010, k011, k012, k013, k014, k015, k016, k017, k018, k019, k01A, k01B, k01C \ - k100, k101, k102, k103, k104, k105, k106, k107, k108, k109, k10A, k10B, k10C, k110, k111, k112, k113, k114, k115, k116, k117, k118, k119, k11A, k11B, k11C \ - k200, k201, k202, k203, k204, k205, k206, k207, k208, k209, k20A, k20B, k20C, k210, k211, k212, k213, k214, k215, k216, k217, k218, k219, k21A, k21B, k21C \ - k300, k301, k302, k303, k304, k305, k306, k307, k308, k309, k30A, k30B, k30C, k310, k311, k312, k313, k314, k315, k316, k317, k318, k319, k31A, k31B, k31C \ - k400, k401, k402, k403, k404, k405, k406, k407, k408, k409, k40A, k40B, k40C, k410, k411, k412, k413, k414, k415, k416, k417, k418, k419, k41A, k41B, k41C \ - k500, k501, k502, k503, k504, k505, k506, k507, k508, k509, k50A, k50B, k50C, k510, k511, k512, k513, k514, k515, k516, k517, k518, k519, k51A, k51B, k51C \ -) \ -KEYMAP_LEFT( \ - k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k00A, k00B, k00C, k010, k011, k012, k013, k014, k015, k016, k017, k018, k019, k01A, k01B, k01C \ - k100, k101, k102, k103, k104, k105, k106, k107, k108, k10 |