1
0
Fork 0

Kinesis refactor and Configurator update (#3245)

* Matrix refactor

* Keymap refactor

* Configurator support

* Stapelberg readme formatting fix (missing grave accent)
This commit is contained in:
noroadsleft 2018-06-27 19:24:08 -07:00 committed by Drashna Jaelre
parent 3d831f3550
commit f1344d1f1e
14 changed files with 359 additions and 165 deletions

View file

@ -3,65 +3,99 @@
#include "../kinesis.h" #include "../kinesis.h"
#define ___ KC_NO
#define KEYMAP( \ #define LAYOUT( \
k02,k22,k12,k01,k21,k11,k00,k20,k10, \ k02, k22, k12, k01, k21, k11, k00, k20, k10, \
k80,k70,k60,k50,k40,k30, \ k80, k70, k60, k50, k40, k30, \
k81,k71,k61,k51,k41,k31, \ k81, k71, k61, k51, k41, k31, \
k82,k72,k62,k52,k42,k32, \ k82, k72, k62, k52, k42, k32, \
k83,k73,k63,k53,k43,k33, \ k83, k73, k63, k53, k43, k33, \
k74,k64,k54,k34, \ k74, k64, k54, k34, \
k36,k35, \ k36, k35, \
k55, \ k55, \
k56,k46,k75, \ k56, k46, k75, \
k03,k23,k13,k04,k24,k14,k05,k85,k84, \ \
k94,kA4,kB4,kD4,kE4,kF4, \ k03, k23, k13, k04, k24, k14, k05, k85, k84, \
k95,kA5,kB5,kD5,kE5,kF5, \ k94, kA4, kB4, kD4, kE4, kF4, \
k96,kA6,kB6,kD6,kE6,kF6, \ k95, kA5, kB5, kD5, kE5, kF5, \
k97,kA7,kB7,kD7,kE7,kF7, \ k96, kA6, kB6, kD6, kE6, kF6, \
k93,kB3,kD3,kE3, \ k97, kA7, kB7, kD7, kE7, kF7, \
k47,k66, \ k93, kB3, kD3, kE3, \
k47, k66, \
k67, \ k67, \
k87,k76,k86 \ k87, k76, k86 \
) { \ ) { \
{ k00, k01, k02, k03, k04, k05, KC_NO, KC_NO }, \ { k00, k01, k02, k03, k04, k05, ___, ___ }, \
{ k10, k11, k12, k13, k14, KC_NO, KC_NO, KC_NO }, \ { k10, k11, k12, k13, k14, ___, ___, ___ }, \
{ k20, k21, k22, k23, k24, KC_NO, KC_NO, KC_NO }, \ { k20, k21, k22, k23, k24, ___, ___, ___ }, \
{ k30, k31, k32, k33, k34, k35, k36, KC_NO }, \ { k30, k31, k32, k33, k34, k35, k36, ___ }, \
{ k40, k41, k42, k43, KC_NO, KC_NO, k46, k47 }, \ { k40, k41, k42, k43, ___, ___, k46, k47 }, \
{ k50, k51, k52, k53, k54, k55, k56, KC_NO }, \ { k50, k51, k52, k53, k54, k55, k56, ___ }, \
{ k60, k61, k62, k63, k64, KC_NO, k66, k67 }, \ { k60, k61, k62, k63, k64, ___, k66, k67 }, \
{ k70, k71, k72, k73, k74, k75, k76, KC_NO }, \ { k70, k71, k72, k73, k74, k75, k76, ___ }, \
{ k80, k81, k82, k83, k84, k85, k86, k87}, \ { k80, k81, k82, k83, k84, k85, k86, k87 }, \
{ KC_NO, KC_NO ,KC_NO ,k93, k94, k95, k96, k97}, \ { ___, ___, ___, k93, k94, k95, k96, k97 }, \
{ KC_NO, KC_NO ,KC_NO ,KC_NO, kA4, kA5, kA6, kA7}, \ { ___, ___, ___, ___, kA4, kA5, kA6, kA7 }, \
{ KC_NO, KC_NO ,KC_NO ,kB3, kB4, kB5, kB6, kB7}, \ { ___, ___, ___, kB3, kB4, kB5, kB6, kB7 }, \
{ KC_NO, KC_NO ,KC_NO ,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO}, \ { ___, ___, ___, ___, ___, ___, ___, ___ }, \
{ KC_NO, KC_NO ,KC_NO ,kD3, kD4, kD5, kD6, kD7}, \ { ___, ___, ___, kD3, kD4, kD5, kD6, kD7 }, \
{ KC_NO, KC_NO ,KC_NO ,kE3, kE4, kE5, kE6, kE7}, \ { ___, ___, ___, kE3, kE4, kE5, kE6, kE7 }, \
{ KC_NO, KC_NO ,KC_NO ,KC_NO, kF4, kF5, kF6, kF7} \ { ___, ___, ___, ___, kF4, kF5, kF6, kF7 } \
}
/* ---------------- LEFT HAND ----------------- ---------------- RIGHT HAND ---------------- */
#define LAYOUT_pretty( \
k02, k22, k12, k01, k21, k11, k00, k20, k10, k03, k23, k13, k04, k24, k14, k05, k85, k84, \
k80, k70, k60, k50, k40, k30, k94, kA4, kB4, kD4, kE4, kF4, \
k81, k71, k61, k51, k41, k31, k95, kA5, kB5, kD5, kE5, kF5, \
k82, k72, k62, k52, k42, k32, k96, kA6, kB6, kD6, kE6, kF6, \
k83, k73, k63, k53, k43, k33, k97, kA7, kB7, kD7, kE7, kF7, \
k74, k64, k54, k34, k93, kB3, kD3, kE3, \
k36, k35, k47, k66, \
k55, k67, \
k56, k46, k75, k87, k76, k86 \
) { \
{ k00, k01, k02, k03, k04, k05, ___, ___ }, \
{ k10, k11, k12, k13, k14, ___, ___, ___ }, \
{ k20, k21, k22, k23, k24, ___, ___, ___ }, \
{ k30, k31, k32, k33, k34, k35, k36, ___ }, \
{ k40, k41, k42, k43, ___, ___, k46, k47 }, \
{ k50, k51, k52, k53, k54, k55, k56, ___ }, \
{ k60, k61, k62, k63, k64, ___, k66, k67 }, \
{ k70, k71, k72, k73, k74, k75, k76, ___ }, \
{ k80, k81, k82, k83, k84, k85, k86, k87 }, \
{ ___, ___, ___, k93, k94, k95, k96, k97 }, \
{ ___, ___, ___, ___, kA4, kA5, kA6, kA7 }, \
{ ___, ___, ___, kB3, kB4, kB5, kB6, kB7 }, \
{ ___, ___, ___, ___, ___, ___, ___, ___ }, \
{ ___, ___, ___, kD3, kD4, kD5, kD6, kD7 }, \
{ ___, ___, ___, kE3, kE4, kE5, kE6, kE7 }, \
{ ___, ___, ___, ___, kF4, kF5, kF6, kF7 } \
} }
/* Row pin configuration /*
PF0 A Row pin configuration
PF1 B
PF2 C PF0 A
PF3 G 0 = U4, 1 = U5 PF1 B
PF2 C
PF3 G 0 = U4, 1 = U5
r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 rA rB rC rD rE rF
PB0 c0| f6 f8 f7 5 4 3 2 1 =+
PB1 c1| f3 f5 f4 t r e w q TAB
PB2 c2| ESC f2 f1 g f d s a CL
PB3 c3| f9 f11 f10 b v c x z LS UP DN [{ ]}
PB4 c4| f12 SL PS RT LT §± `~ 6 7 8 9 0 -_
PB5 c5| PB PGM KPD y u i o p \
PB6 c6| LC DL BS RC EN SP h j k l ;: '"
PB7 c7| RA PU PD n m ,< .> /? RS
*/
Matrix Map (US QWERTY keyboard layout shown)
| row 0 | row 1 | row 2 | row 3 | row 4 | row 5 | row 6 | row 7 | row 8 | row 9 | row A | row B | row C | row D | row E | row F
----------------------------------------------------------------------------------------------------------------------------------------------------
PB0 col0 | F6 | F8 | F7 | 5% | 4$ | 3# | 2@ | 1! | =+ | | | | | | |
PB1 col1 | F3 | F5 | F4 | T | R | E | W | Q | Tab | | | | | | |
PB2 col2 | Esc | F2 | F1 | G | F | D | S | A | CapsLk | | | | | | |
PB3 col3 | F9 | F11 | F10 | B | V | C | X | Z | LShift | Up | | Down | | [{ | ]} |
PB4 col4 | F12 | ScrLk | PrtSc | Right | | Left | Insert | `~ | 1! | 6^ | 7& | 8* | | 9( | 0) | -_
PB5 col5 | Pause | | | LAlt | | Home | | End | Fn | Y | U | I | | O | P | \|
PB6 col6 | | | | LCtrl | Delete | Bksp | RCtrl | Enter | Space | H | J | K | | L | ;: | '"
PB7 col7 | | | | | RGUI | | PageUp | | PageDn | N | M | ,< | | .> | /? | RShift
*/
#endif #endif

View file

@ -0,0 +1,18 @@
{
"keyboard_name": "Kinesis",
"url": "",
"maintainer": "qmk",
"width": 15.5,
"height": 9,
"layouts": {
"LAYOUT": {
"key_count": 86,
"layout": [{"label":"Esc", "x":0, "y":0, "w":0.69, "h":0.85}, {"label":"F1", "x":0.7, "y":0, "w":0.69, "h":0.85}, {"label":"F2", "x":1.39, "y":0, "w":0.69, "h":0.85}, {"label":"F3", "x":2.09, "y":0, "w":0.69, "h":0.85}, {"label":"F4", "x":2.78, "y":0, "w":0.69, "h":0.85}, {"label":"F5", "x":3.48, "y":0, "w":0.69, "h":0.85}, {"label":"F6", "x":4.17, "y":0, "w":0.69, "h":0.85}, {"label":"F7", "x":4.87, "y":0, "w":0.69, "h":0.85}, {"label":"F8", "x":5.56, "y":0, "w":0.69, "h":0.85}, {"label":"+", "x":0, "y":1.25, "w":1.25}, {"label":"!", "x":1.25, "y":1.25}, {"label":"@", "x":2.25, "y":1}, {"label":"#", "x":3.25, "y":1}, {"label":"$", "x":4.25, "y":1}, {"label":"%", "x":5.25, "y":1}, {"label":"Tab", "x":0, "y":2.25, "w":1.25}, {"label":"Q", "x":1.25, "y":2.25}, {"label":"W", "x":2.25, "y":2}, {"label":"E", "x":3.25, "y":2}, {"label":"R", "x":4.25, "y":2}, {"label":"T", "x":5.25, "y":2}, {"label":"Caps Lock", "x":0, "y":3.25, "w":1.25}, {"label":"A", "x":1.25, "y":3.25}, {"label":"S", "x":2.25, "y":3}, {"label":"D", "x":3.25, "y":3}, {"label":"F", "x":4.25, "y":3}, {"label":"G", "x":5.25, "y":3}, {"label":"Shift", "x":0, "y":4.25, "w":1.25}, {"label":"Z", "x":1.25, "y":4.25}, {"label":"X", "x":2.25, "y":4}, {"label":"C", "x":3.25, "y":4}, {"label":"V", "x":4.25, "y":4}, {"label":"B", "x":5.25, "y":4}, {"label":"~", "x":1.25, "y":5.25}, {"label":"|", "x":2.25, "y":5}, {"label":"←", "x":3.25, "y":5}, {"label":"→", "x":4.25, "y":5}, {"label":"Ctrl", "x":5.25, "y":6}, {"label":"Alt", "x":6.25, "y":6}, {"label":"Home", "x":6.25, "y":7}, {"label":"Back Space", "x":4.25, "y":7, "h":2}, {"label":"Delete", "x":5.25, "y":7, "h":2}, {"label":"End", "x":6.25, "y":8}, {"label":"F9", "x":9.25, "y":0, "w":0.69, "h":0.85}, {"label":"F10", "x":9.95, "y":0, "w":0.69, "h":0.85}, {"label":"F11", "x":10.64, "y":0, "w":0.69, "h":0.85}, {"label":"F12", "x":11.34, "y":0, "w":0.69, "h":0.85}, {"label":"Print Scrn", "x":12.03, "y":0, "w":0.69, "h":0.85}, {"label":"Scroll Lock", "x":12.73, "y":0, "w":0.69, "h":0.85}, {"label":"Pause", "x":13.42, "y":0, "w":0.69, "h":0.85}, {"label":"Keypad", "x":14.12, "y":0, "w":0.69, "h":0.85}, {"label":"Progrm", "x":14.81, "y":0, "w":0.69, "h":0.85}, {"label":"^", "x":9.25, "y":1}, {"label":"&amp;", "x":10.25, "y":1}, {"label":"*", "x":11.25, "y":1}, {"label":"(", "x":12.25, "y":1}, {"label":")", "x":13.25, "y":1.25}, {"label":"_", "x":14.25, "y":1.25, "w":1.25}, {"label":"Y", "x":9.25, "y":2}, {"label":"U", "x":10.25, "y":2}, {"label":"I", "x":11.25, "y":2}, {"label":"O", "x":12.25, "y":2}, {"label":"P", "x":13.25, "y":2.25}, {"label":"|", "x":14.25, "y":2.25, "w":1.25}, {"label":"H", "x":9.25, "y":3}, {"label":"J", "x":10.25, "y":3}, {"label":"K", "x":11.25, "y":3}, {"label":"L", "x":12.25, "y":3}, {"label":":", "x":13.25, "y":3.25}, {"label":"\"", "x":14.25, "y":3.25, "w":1.25}, {"label":"N", "x":9.25, "y":4}, {"label":"M", "x":10.25, "y":4}, {"label":"&lt;", "x":11.25, "y":4}, {"label":"&gt;", "x":12.25, "y":4}, {"label":"?", "x":13.25, "y":4.25}, {"label":"Shift", "x":14.25, "y":4.25, "w":1.25}, {"label":"↑", "x":10.25, "y":5}, {"label":"↓", "x":11.25, "y":5}, {"label":"{", "x":12.25, "y":5}, {"label":"}", "x":13.25, "y":5.25}, {"label":"GUI", "x":8.25, "y":6}, {"label":"Ctrl", "x":9.25, "y":6}, {"label":"Page Up", "x":8.25, "y":7}, {"label":"Page Down", "x":8.25, "y":8}, {"label":"Enter", "x":9.25, "y":7, "h":2}, {"label":"Space", "x":10.25, "y":7, "h":2}]
},
"LAYOUT_pretty": {
"key_count": 86,
"layout": [{"label":"Esc", "x":0, "y":0, "w":0.69, "h":0.85}, {"label":"F1", "x":0.7, "y":0, "w":0.69, "h":0.85}, {"label":"F2", "x":1.39, "y":0, "w":0.69, "h":0.85}, {"label":"F3", "x":2.09, "y":0, "w":0.69, "h":0.85}, {"label":"F4", "x":2.78, "y":0, "w":0.69, "h":0.85}, {"label":"F5", "x":3.48, "y":0, "w":0.69, "h":0.85}, {"label":"F6", "x":4.17, "y":0, "w":0.69, "h":0.85}, {"label":"F7", "x":4.87, "y":0, "w":0.69, "h":0.85}, {"label":"F8", "x":5.56, "y":0, "w":0.69, "h":0.85}, {"label":"F9", "x":9.25, "y":0, "w":0.69, "h":0.85}, {"label":"F10", "x":9.95, "y":0, "w":0.69, "h":0.85}, {"label":"F11", "x":10.64, "y":0, "w":0.69, "h":0.85}, {"label":"F12", "x":11.34, "y":0, "w":0.69, "h":0.85}, {"label":"Print Scrn", "x":12.03, "y":0, "w":0.69, "h":0.85}, {"label":"Scroll Lock", "x":12.73, "y":0, "w":0.69, "h":0.85}, {"label":"Pause", "x":13.42, "y":0, "w":0.69, "h":0.85}, {"label":"Keypad", "x":14.12, "y":0, "w":0.69, "h":0.85}, {"label":"Progrm", "x":14.81, "y":0, "w":0.69, "h":0.85}, {"label":"+", "x":0, "y":1.25, "w":1.25}, {"label":"!", "x":1.25, "y":1.25}, {"label":"@", "x":2.25, "y":1}, {"label":"#", "x":3.25, "y":1}, {"label":"$", "x":4.25, "y":1}, {"label":"%", "x":5.25, "y":1}, {"label":"^", "x":9.25, "y":1}, {"label":"&amp;", "x":10.25, "y":1}, {"label":"*", "x":11.25, "y":1}, {"label":"(", "x":12.25, "y":1}, {"label":")", "x":13.25, "y":1.25}, {"label":"_", "x":14.25, "y":1.25, "w":1.25}, {"label":"Tab", "x":0, "y":2.25, "w":1.25}, {"label":"Q", "x":1.25, "y":2.25}, {"label":"W", "x":2.25, "y":2}, {"label":"E", "x":3.25, "y":2}, {"label":"R", "x":4.25, "y":2}, {"label":"T", "x":5.25, "y":2}, {"label":"Y", "x":9.25, "y":2}, {"label":"U", "x":10.25, "y":2}, {"label":"I", "x":11.25, "y":2}, {"label":"O", "x":12.25, "y":2}, {"label":"P", "x":13.25, "y":2.25}, {"label":"|", "x":14.25, "y":2.25, "w":1.25}, {"label":"Caps Lock", "x":0, "y":3.25, "w":1.25}, {"label":"A", "x":1.25, "y":3.25}, {"label":"S", "x":2.25, "y":3}, {"label":"D", "x":3.25, "y":3}, {"label":"F", "x":4.25, "y":3}, {"label":"G", "x":5.25, "y":3}, {"label":"H", "x":9.25, "y":3}, {"label":"J", "x":10.25, "y":3}, {"label":"K", "x":11.25, "y":3}, {"label":"L", "x":12.25, "y":3}, {"label":":", "x":13.25, "y":3.25}, {"label":"\"", "x":14.25, "y":3.25, "w":1.25}, {"label":"Shift", "x":0, "y":4.25, "w":1.25}, {"label":"Z", "x":1.25, "y":4.25}, {"label":"X", "x":2.25, "y":4}, {"label":"C", "x":3.25, "y":4}, {"label":"V", "x":4.25, "y":4}, {"label":"B", "x":5.25, "y":4}, {"label":"N", "x":9.25, "y":4}, {"label":"M", "x":10.25, "y":4}, {"label":"&lt;", "x":11.25, "y":4}, {"label":"&gt;", "x":12.25, "y":4}, {"label":"?", "x":13.25, "y":4.25}, {"label":"Shift", "x":14.25, "y":4.25, "w":1.25}, {"label":"~", "x":1.25, "y":5.25}, {"label":"|", "x":2.25, "y":5}, {"label":"←", "x":3.25, "y":5}, {"label":"→", "x":4.25, "y":5}, {"label":"↑", "x":10.25, "y":5}, {"label":"↓", "x":11.25, "y":5}, {"label":"{", "x":12.25, "y":5}, {"label":"}", "x":13.25, "y":5.25}, {"label":"Ctrl", "x":5.25, "y":6}, {"label":"Alt", "x":6.25, "y":6}, {"label":"GUI", "x":8.25, "y":6}, {"label":"Ctrl", "x":9.25, "y":6}, {"label":"Home", "x":6.25, "y":7}, {"label":"Page Up", "x":8.25, "y":7}, {"label":"Back Space", "x":4.25, "y":7, "h":2}, {"label":"Delete", "x":5.25, "y":7, "h":2}, {"label":"End", "x":6.25, "y":8}, {"label":"Page Down", "x":8.25, "y":8}, {"label":"Enter", "x":9.25, "y":7, "h":2}, {"label":"Space", "x":10.25, "y":7, "h":2}]
}
}
}

View file

@ -1,6 +1,4 @@
#include "kinesis.h" #include QMK_KEYBOARD_H
#include "action_layer.h"
#include "eeconfig.h"
extern keymap_config_t keymap_config; extern keymap_config_t keymap_config;
@ -90,7 +88,7 @@ extern keymap_config_t keymap_config;
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_CX] = KEYMAP( [_CX] = LAYOUT(
// Left Hand // Left Hand
TO(_CX), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, TO(_CX), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8,
KC_DEL, KC_1, KC_3, KC_5, KC_7, KC_9, KC_DEL, KC_1, KC_3, KC_5, KC_7, KC_9,
@ -116,7 +114,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
MO(_KP), KC_ENT, KC_SPC MO(_KP), KC_ENT, KC_SPC
), ),
[_QW] = KEYMAP( [_QW] = LAYOUT(
// Left Hand // Left Hand
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
@ -142,7 +140,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, _______, _______ _______, _______, _______
), ),
[_KP] = KEYMAP( [_KP] = LAYOUT(
// Left Hand // Left Hand
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,

View file

@ -1,4 +1,4 @@
#include "kinesis.h" #include QMK_KEYBOARD_H
#define QWERTY 0 // Base qwerty #define QWERTY 0 // Base qwerty
@ -30,7 +30,7 @@
*/ */
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[QWERTY] = KEYMAP( [QWERTY] = LAYOUT(
KC_ESC, KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 ,KC_F6 ,KC_F7 ,KC_F8, KC_ESC, KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 ,KC_F6 ,KC_F7 ,KC_F8,
KC_EQL, KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 , KC_EQL, KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 ,
KC_TAB, KC_Q ,KC_W ,KC_E ,KC_R ,KC_T , KC_TAB, KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,

View file

@ -0,0 +1,8 @@
#ifndef CONFIG_USER_H
#define CONFIG_USER_H
#include "../../config.h"
// place overrides here
#endif

View file

@ -0,0 +1,83 @@
#include QMK_KEYBOARD_H
#define QWERTY 0 // Base qwerty
/****************************************************************************************************
*
* Keymap: Default Layer in Qwerty
*
* ,-------------------------------------------------------------------------------------------------------------------.
* | Esc | F1 | F2 | F3 | F4 | F5 | F6 | F8 | F9 | F10 | F12 | PSCR | SLCK | PAUS | FN0 | BOOT |
* |--------+------+------+------+------+------+---------------------------+------+------+------+------+------+--------|
* | =+ | 1! | 2@ | 3# | 4$ | 5% | | 6^ | 7& | 8* | 9( | 0) | -_ |
* |--------+------+------+------+------+------| +------+------+------+------+------+--------|
* | Tab | Q | W | E | R | T | | Y | U | I | O | P | \| |
* |--------+------+------+------+------+------| |------+------+------+------+------+--------|
* | Caps | A | S | D | F | G | | H | J | K | L | ;: | '" |
* |--------+------+------+------+------+------| |------+------+------+------+------+--------|
* | Shift | Z | X | C | V | B | | N | M | ,. | .> | /? | Shift |
* `--------+------+------+------+------+------- `------+------+------+------+------+--------'
* | `~ | INS | Left | Right| | Up | Down | [{ | ]} |
* `---------------------------' `---------------------------'
* ,-------------. ,-------------.
* | Ctrl | Alt | | Gui | Ctrl |
* ,------|------|------| |------+------+------.
* | | | Home | | PgUp | | |
* | BkSp | Del |------| |------|Return| Space|
* | | | End | | PgDn | | |
* `--------------------' `--------------------'
*/
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[QWERTY] = LAYOUT_pretty(
KC_ESC, 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_PSCR, KC_SLCK, KC_PAUS, KC_FN0, KC_1,
KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
KC_GRV, KC_INS, KC_LEFT, KC_RGHT, KC_UP, KC_DOWN, KC_LBRC, KC_RBRC,
KC_LCTL, KC_LALT, KC_RGUI, KC_RCTL,
KC_HOME, KC_PGUP,
KC_BSPC, KC_DEL, KC_END, KC_PGDN, KC_ENTER, KC_SPC
)
};
const uint16_t PROGMEM fn_actions[] = {
};
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
// MACRODOWN only works in this function
switch(id) {
case 0:
if (record->event.pressed) {
register_code(KC_RSFT);
} else {
unregister_code(KC_RSFT);
}
break;
}
return MACRO_NONE;
};
void matrix_init_user(void) {
}
void matrix_scan_user(void) {
}
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
return true;
}
void led_set_user(uint8_t usb_led) {
}

View file

@ -0,0 +1,5 @@
# The default keymap for kinesis-advantage
This keymap is the same as the one in the `default` directory, but is
formatted to use the `LAYOUT_pretty` matrix, which places the two halves of
the keyboard side-by-side, rather than the left-hand side being on top.

View file

@ -0,0 +1,21 @@
# Build Options
# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
CONSOLE_ENABLE = no # Console for debug(+400)
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
MIDI_ENABLE = no # MIDI controls
AUDIO_ENABLE = no # Audio output on port C6
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
ifndef QUANTUM_DIR
include ../../../../Makefile
endif

View file

@ -1,10 +1,10 @@
#include "kinesis.h" #include QMK_KEYBOARD_H
#define _DVORAK 0 // Base Dvorak layer #define _DVORAK 0 // Base Dvorak layer
#define _MEDIA 1 // Media layer #define _MEDIA 1 // Media layer
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_DVORAK] = KEYMAP( [_DVORAK] = LAYOUT(
// left hand // left hand
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8,
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5,
@ -29,7 +29,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
TG(_MEDIA), KC_ENT, KC_SPC TG(_MEDIA), KC_ENT, KC_SPC
), ),
[_MEDIA] = KEYMAP( [_MEDIA] = LAYOUT(
// left hand // left hand
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,

View file

@ -1,6 +1,4 @@
#include "kinesis.h" #include QMK_KEYBOARD_H
#include "action_layer.h"
#include "eeconfig.h"
extern keymap_config_t keymap_config; extern keymap_config_t keymap_config;
@ -108,7 +106,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | Fn | Number| Bspc | | Enter |Number2| Fn2 | * | Fn | Number| Bspc | | Enter |Number2| Fn2 |
* `-----------------------' `-----------------------' * `-----------------------' `-----------------------'
*/ */
[_COLEMAK] = KEYMAP( [_COLEMAK] = LAYOUT(
// Left Hand // Left Hand
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8,
KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5,
@ -154,7 +152,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | Fn | Number| Bspc | | Enter |Number2| Fn2 | * | Fn | Number| Bspc | | Enter |Number2| Fn2 |
* `-----------------------' `-----------------------' * `-----------------------' `-----------------------'
*/ */
[_QWERTY] = KEYMAP( [_QWERTY] = LAYOUT(
// Left Hand // Left Hand
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8,
KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5,
@ -201,7 +199,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | | | | | | | | * | | | | | | | |
* `-----------------------' `-----------------------' * `-----------------------' `-----------------------'
*/ */
[_NUMBERS] = KEYMAP( [_NUMBERS] = LAYOUT(
// Left Hand // Left Hand
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5,
@ -226,7 +224,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, _______, _______ _______, _______, _______
), ),
[_NUMBERS2] = KEYMAP( [_NUMBERS2] = LAYOUT(
// Left Hand // Left Hand
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5,
@ -271,7 +269,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | | | | | | | | * | | | | | | | |
* `-----------------------' `-----------------------' * `-----------------------' `-----------------------'
*/ */
[_FUNCTION] = KEYMAP( [_FUNCTION] = LAYOUT(
// Left Hand // Left Hand
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5,
@ -296,7 +294,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, _______, _______ _______, _______, _______
), ),
[_FUNCTION2] = KEYMAP( [_FUNCTION2] = LAYOUT(
// Left Hand // Left Hand
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5,
@ -342,7 +340,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | | | | | KP Ent| | | * | | | | | KP Ent| | |
* `-----------------------' `-----------------------' * `-----------------------' `-----------------------'
*/ */
[_NUMPAD] = KEYMAP( [_NUMPAD] = LAYOUT(
// Left Hand // Left Hand
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, KC_NLCK, _______, _______, _______, _______, _______, KC_NLCK, _______, _______, _______, _______,
@ -388,7 +386,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | | | Bspc | | Enter | | | * | | | Bspc | | Enter | | |
* `-----------------------' `-----------------------' * `-----------------------' `-----------------------'
*/ */
[_COLEMAKGM] = KEYMAP( [_COLEMAKGM] = LAYOUT(
// Left Hand // Left Hand
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8,
KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5,
@ -434,7 +432,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | | | Bspc | | Enter | | | * | | | Bspc | | Enter | | |
* `-----------------------' `-----------------------' * `-----------------------' `-----------------------'
*/ */
[_QWERTYGM] = KEYMAP( [_QWERTYGM] = LAYOUT(
// Left Hand // Left Hand
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8,
KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5,
@ -480,7 +478,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | | | | | | | | * | | | | | | | |
* `-----------------------' `-----------------------' * `-----------------------' `-----------------------'
*/ */
[_ADJUST] = KEYMAP( [_ADJUST] = LAYOUT(
// Left Hand // Left Hand
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, COLEMAK, QWERTY, _______, COLEMAKGM, QWERTYGM, _______, COLEMAK, QWERTY, _______, COLEMAKGM, QWERTYGM,
@ -505,7 +503,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, _______, _______ _______, _______, _______
), ),
[_ADJUST2] = KEYMAP( [_ADJUST2] = LAYOUT(
// Left Hand // Left Hand
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, COLEMAK, QWERTY, _______, COLEMAKGM, QWERTYGM, _______, COLEMAK, QWERTY, _______, COLEMAKGM, QWERTYGM,

View file

@ -1,5 +1,4 @@
#include "kinesis.h" #include QMK_KEYBOARD_H
#include "action_layer.h"
#include "mousekey.h" #include "mousekey.h"
#define _QWERTY 0 // Base qerty #define _QWERTY 0 // Base qerty
@ -51,7 +50,7 @@ enum {
*/ */
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QWERTY] = KEYMAP( [_QWERTY] = LAYOUT(
XXXXXXX, KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 ,KC_F6 ,KC_F7 ,KC_F8, XXXXXXX, KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 ,KC_F6 ,KC_F7 ,KC_F8,
KC_GRAVE, KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 , KC_GRAVE, KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 ,
KC_TAB, KC_Q ,KC_W ,KC_E ,KC_R ,KC_T , KC_TAB, KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,
@ -100,7 +99,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_SYMB] = KEYMAP( [_SYMB] = LAYOUT(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, KC_CIRC, KC_LCBR, KC_RCBR, KC_AT, KC_PERC, _______, KC_CIRC, KC_LCBR, KC_RCBR, KC_AT, KC_PERC,
@ -148,7 +147,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_SYMB2] = KEYMAP( [_SYMB2] = LAYOUT(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, KC_ASTR, KC_HASH, _______, _______, _______, _______, KC_ASTR, KC_HASH, _______, _______,
_______, KC_SLSH, RSFT(KC_COMM), RSFT(KC_DOT), _______, _______, _______, KC_SLSH, RSFT(KC_COMM), RSFT(KC_DOT), _______, _______,
@ -193,7 +192,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
*/ */
[_MOUSE] = KEYMAP( [_MOUSE] = LAYOUT(
KC_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, KC_CAPS, _______, _______, _______, _______, _______, _______, _______, _______,
_______, KC_EXLM ,KC_AT, KC_HASH, KC_DLR ,KC_PERC , _______, KC_EXLM ,KC_AT, KC_HASH, KC_DLR ,KC_PERC ,
_______, KC_NO, KC_NO, KC_UP, KC_NO, KC_PGUP, _______, KC_NO, KC_NO, KC_UP, KC_NO, KC_PGUP,
@ -242,7 +241,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_TRANS] = KEYMAP( [_TRANS] = LAYOUT(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,

View file

@ -1,6 +1,4 @@
#include QMK_KEYBOARD_H #include QMK_KEYBOARD_H
#include "action_layer.h"
#include "eeconfig.h"
extern keymap_config_t keymap_config; extern keymap_config_t keymap_config;

View file

@ -1,7 +1,7 @@
# kinesis_stapelberg keyboard firmware # kinesis_stapelberg keyboard firmware
This folder contains the firmware customization required to run QMK on the custom controller for the Kinesis Advantage created by Michael Stapelberg. This folder contains the firmware customization required to run QMK on the custom controller for the Kinesis Advantage created by Michael Stapelberg.
It differs from the `alvicstep keyboard in that the existing QMK Kinesis Advantage project uses the existing controller board provided by Kinesis. It differs from the `alvicstep` keyboard in that the existing QMK Kinesis Advantage project uses the existing controller board provided by Kinesis.
The controller board hardware is described The controller board hardware is described
[here](http://michael.stapelberg.de/Artikel/kinesis_custom_controller) [here](http://michael.stapelberg.de/Artikel/kinesis_custom_controller)

View file

@ -3,45 +3,77 @@
#include "quantum.h" #include "quantum.h"
#define ___ KC_NO
// This a shortcut to help you visually see your layout. // This a shortcut to help you visually see your layout.
// The first section contains all of the arguments as on the physical keyboard // The first section contains all of the arguments as on the physical keyboard
// The second converts the arguments into the 2-D scanned array // The second converts the arguments into the 2-D scanned array
#define KEYMAP( \ #define LAYOUT( \
kC0,kD0,kE0,kC1,kD1,kE1,kC2,kD2,kE2, \ kC0, kD0, kE0, kC1, kD1, kE1, kC2, kD2, kE2, \
k00,k10,k20,k30,k40,k50, \ k00, k10, k20, k30, k40, k50, \
k01,k11,k21,k31,k41,k51, \ k01, k11, k21, k31, k41, k51, \
k02,k12,k22,k32,k42,k52, \ k02, k12, k22, k32, k42, k52, \
k03,k13,k23,k33,k43,k53, \ k03, k13, k23, k33, k43, k53, \
k14,k24,k34,k54, \ k14, k24, k34, k54, \
k56,k55, \ k56, k55, \
k35, \ k35, \
k36,k46,k25, \ k36, k46, k25, \
kC3,kD3,kE3,kC4,kD4,kE4,kC5,kE5,kD5, \ \
k60,k70,k80,k90,kA0,kB0, \ kC3, kD3, kE3, kC4, kD4, kE4, kC5, kE5, kD5, \
k61,k71,k81,k91,kA1,kB1, \ k60, k70, k80, k90, kA0, kB0, \
k62,k72,k82,k92,kA2,kB2, \ k61, k71, k81, k91, kA1, kB1, \
k63,k73,k83,k93,kA3,kB3, \ k62, k72, k82, k92, kA2, kB2, \
k64,k84,k94,kA4, \ k63, k73, k83, k93, kA3, kB3, \
k96,k85, \ k64, k84, k94, kA4, \
k96, k85, \
k86, \ k86, \
k66,k75,k65 \ k66, k75, k65 \
) { \ ) { \
{ k00, k01, k02, k03, KC_NO, KC_NO, KC_NO }, \ { k00, k01, k02, k03, ___, ___, ___ }, \
{ k10, k11, k12, k13, k14, KC_NO, KC_NO }, \ { k10, k11, k12, k13, k14, ___, ___ }, \
{ k20, k21, k22, k23, k24, k25, KC_NO }, \ { k20, k21, k22, k23, k24, k25, ___ }, \
{ k30, k31, k32, k33, k34, k35, k36 }, \ { k30, k31, k32, k33, k34, k35, k36 }, \
{ k40, k41, k42, k43, KC_NO, KC_NO, k46 }, \ { k40, k41, k42, k43, ___, ___, k46 }, \
{ k50, k51, k52, k53, k54, k55, k56 }, \ { k50, k51, k52, k53, k54, k55, k56 }, \
{ k60, k61, k62, k63, k64, k65, k66 }, \ { k60, k61, k62, k63, k64, k65, k66 }, \
{ k70, k71, k72, k73, KC_NO, k75, KC_NO }, \ { k70, k71, k72, k73, ___, k75, ___ }, \
{ k80, k81, k82, k83, k84, k85, k86 }, \ { k80, k81, k82, k83, k84, k85, k86 }, \
{ k90, k91, k92, k93, k94, KC_NO, k96 }, \ { k90, k91, k92, k93, k94, ___, k96 }, \
{ kA0, kA1, kA2, kA3, kA4, KC_NO, KC_NO }, \ { kA0, kA1, kA2, kA3, kA4, ___, ___ }, \
{ kB0, kB1, kB2, kB3, KC_NO, KC_NO, KC_NO }, \ { kB0, kB1, kB2, kB3, ___, ___, ___ }, \
{ kC0, kC1, kC2, kC3, kC4, kC5, KC_NO }, \ { kC0, kC1, kC2, kC3, kC4, kC5, ___ }, \
{ kD0, kD1, kD2, kD3, kD4, kD5, KC_NO }, \ { kD0, kD1, kD2, kD3, kD4, kD5, ___ }, \
{ kE0, kE1, kE2, kE3, kE4, kE5, KC_NO } \ { kE0, kE1, kE2, kE3, kE4, kE5, ___ } \
}
/* ---------------- LEFT HAND ----------------- ---------------- RIGHT HAND ---------------- */
#define LAYOUT_pretty( \
kC0, kD0, kE0, kC1, kD1, kE1, kC2, kD2, kE2, kC3, kD3, kE3, kC4, kD4, kE4, kC5, kE5, kD5, \
k00, k10, k20, k30, k40, k50, k60, k70, k80, k90, kA0, kB0, \
k01, k11, k21, k31, k41, k51, k61, k71, k81, k91, kA1, kB1, \
k02, k12, k22, k32, k42, k52, k62, k72, k82, k92, kA2, kB2, \
k03, k13, k23, k33, k43, k53, k63, k73, k83, k93, kA3, kB3, \
k14, k24, k34, k54, k64, k84, k94, kA4, \
k56, k55, k96, k85, \
k35, k86, \
k36, k46, k25, k66, k75, k65 \
) { \
{ k00, k01, k02, k03, ___, ___, ___ }, \
{ k10, k11, k12, k13, k14, ___, ___ }, \
{ k20, k21, k22, k23, k24, k25, ___ }, \
{ k30, k31, k32, k33, k34, k35, k36 }, \
{ k40, k41, k42, k43, ___, ___, k46 }, \
{ k50, k51, k52, k53, k54, k55, k56 }, \
{ k60, k61, k62, k63, k64, k65, k66 }, \
{ k70, k71, k72, k73, ___, k75, ___ }, \
{ k80, k81, k82, k83, k84, k85, k86 }, \
{ k90, k91, k92, k93, k94, ___, k96 }, \
{ kA0, kA1, kA2, kA3, kA4, ___, ___ }, \
{ kB0, kB1, kB2, kB3, ___, ___, ___ }, \
{ kC0, kC1, kC2, kC3, kC4, kC5, ___ }, \
{ kD0, kD1, kD2, kD3, kD4, kD5, ___ }, \
{ kE0, kE1, kE2, kE3, kE4, kE5, ___ } \
} }
/* /*