diff --git a/src/keyboard/ergodox/layout/workman-p-kinesis-mod.c b/src/keyboard/ergodox/layout/workman-p-kinesis-mod.c new file mode 100644 index 0000000..6ae7db5 --- /dev/null +++ b/src/keyboard/ergodox/layout/workman-p-kinesis-mod.c @@ -0,0 +1,863 @@ +/* ---------------------------------------------------------------------------- +* ergoDOX layout : workman (modified from the Kinesis layout) +* ----------------------------------------------------------------------------- +* Copyright (c) 2012 Ben Blazak +* Released under The MIT License (MIT) (see "license.md") +* Project located at +* -------------------------------------------------------------------------- */ + +//TODO: use sticky keys like colemak-jc-mod.c ?? +#include +#include +#include +#include "../../../lib/data-types/misc.h" +#include "../../../lib/usb/usage-page/keyboard--short-names.h" +#include "../../../lib/key-functions/public.h" +#include "../matrix.h" +#include "../layout.h" +// FUNCTIONS ------------------------------------------------------------------ +void kbfun_layer_pop_all(void) { + kbfun_layer_pop_1(); + kbfun_layer_pop_2(); + kbfun_layer_pop_3(); + kbfun_layer_pop_4(); + kbfun_layer_pop_5(); + kbfun_layer_pop_6(); + kbfun_layer_pop_7(); + kbfun_layer_pop_8(); + kbfun_layer_pop_9(); + kbfun_layer_pop_10(); +} + +// DEFINITIONS ---------------------------------------------------------------- +// basic +#define kprrel &kbfun_press_release +#define mprrel &kbfun_mediakey_press_release +#define ktog &kbfun_toggle +#define ktrans &kbfun_transparent +// --- layer push/pop functions +#define lpush1 &kbfun_layer_push_1 +#define lpush2 &kbfun_layer_push_2 +#define lpush3 &kbfun_layer_push_3 +#define lpush4 &kbfun_layer_push_4 +#define lpush5 &kbfun_layer_push_5 +#define lpush6 &kbfun_layer_push_6 +#define lpush7 &kbfun_layer_push_7 +#define lpush8 &kbfun_layer_push_8 +#define lpush9 &kbfun_layer_push_9 +#define lpush10 &kbfun_layer_push_10 +#define lpop &kbfun_layer_pop_all +#define lpop1 &kbfun_layer_pop_1 +#define lpop2 &kbfun_layer_pop_2 +#define lpop3 &kbfun_layer_pop_3 +#define lpop4 &kbfun_layer_pop_4 +#define lpop5 &kbfun_layer_pop_5 +#define lpop6 &kbfun_layer_pop_6 +#define lpop7 &kbfun_layer_pop_7 +#define lpop8 &kbfun_layer_pop_8 +#define lpop9 &kbfun_layer_pop_9 +#define lpop10 &kbfun_layer_pop_10 +// device +#define dbtldr &kbfun_jump_to_bootloader + +// special +#define sshprre &kbfun_shift_press_release +#define s2kcap &kbfun_2_keys_capslock_press_release +#define slpunum &kbfun_layer_push_numpad +#define slponum &kbfun_layer_pop_numpad +// ---------------------------------------------------------------------------- + +// LAYOUT --------------------------------------------------------------------- +const uint8_t PROGMEM _kb_layout[KB_LAYERS][KB_ROWS][KB_COLUMNS] = { +// LAYER 0 +KB_MATRIX_LAYER( + // unused + 0 /*no key*/, + // left hand + KEY_Equal_Plus, KEY_1_Exclamation, KEY_2_At, KEY_3_Pound, KEY_4_Dollar, KEY_5_Percent, KEY_Application, + KEY_Tab, KEY_q_Q, KEY_d_D, KEY_r_R, KEY_w_W, KEY_b_B, 1, + KEY_Escape, KEY_a_A, KEY_s_S, KEY_h_H, KEY_t_T, KEY_g_G, /*no key*/ + KEY_LeftShift, KEY_z_Z, KEY_x_X, KEY_m_M, KEY_c_C, KEY_v_V, KEY_LeftAlt, + KEY_LeftGUI, KEY_GraveAccent_Tilde, KEY_Backslash_Pipe, KEY_LeftArrow, KEY_RightArrow, /*no key*/ /*no key*/ + // left thumb + /*no key*/ KEY_LeftControl, KEY_PrintScreen, + 0 /*no key*/, 0 /*no key*/, KEY_Home, + KEY_DeleteBackspace, KEY_DeleteForward, KEY_End, + + // right hand + 2, KEY_6_Caret, KEY_7_Ampersand, KEY_8_Asterisk, KEY_9_LeftParenthesis, KEY_0_RightParenthesis, KEY_Dash_Underscore, + 1, KEY_j_J, KEY_f_F, KEY_u_U, KEY_p_P, KEY_Semicolon_Colon, KEY_Backslash_Pipe, + /*no key*/ KEY_y_Y, KEY_n_N, KEY_e_E, KEY_o_O, KEY_i_I, KEY_SingleQuote_DoubleQuote, + KEY_RightAlt, KEY_k_K, KEY_l_L, KEY_Comma_LessThan, KEY_Period_GreaterThan, KEY_Slash_Question, KEY_RightShift, + /*no key*/ /*no key*/ KEY_UpArrow, KEY_DownArrow, KEY_LeftBracket_LeftBrace, KEY_RightBracket_RightBrace, KEY_RightGUI, + // right thumb + KEY_Pause, KEY_RightControl, /*no key*/ + KEY_PageUp, 0 /*no key*/, 0 /*no key*/, + KEY_PageDown, KEY_ReturnEnter, KEY_Spacebar +), +// LAYER 1 +KB_MATRIX_LAYER( + // unused + 0 /*no key*/, + // left hand + KEY_CapsLock, KEY_F1, KEY_F2, KEY_F3, KEY_F4, KEY_F5, KEY_F11, + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, /*no key*/ + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, MEDIAKEY_PREV_TRACK, MEDIAKEY_NEXT_TRACK, /*no key*/ /*no key*/ + // left thumb + /* no key*/ 0, 0, + 0 /*no key*/, 0 /*no key*/, 0, + MEDIAKEY_STOP, 0, 0, + + // right hand + KEY_F12, KEY_F6, KEY_F7, KEY_F8, KEY_F9, KEY_F10, KEY_ScrollLock, + 0, 0, 0, 0, 0, 0, 0, + /*no key*/ 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, + /*no key*/ /*no key*/ KEY_VolumeUp, KEY_VolumeDown, 0, 0, 3, + // right thumb + 0, 0, /*no key*/ + 0, 0 /*no key*/, 0 /*no key*/, + 0, 0, MEDIAKEY_PLAY_PAUSE +), +// LAYER 2 +KB_MATRIX_LAYER( + // unused + 0 /*no key*/, + // left hand + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, /*no key*/ + 0, 0, 0, 0, 0, 0, 0, + 0, 0, KEY_Insert, 0, 0, /*no key*/ /*no key*/ + // left thumb + /*no key*/ 0, 0, + 0 /*no key*/, 0 /*no key*/, 0, + 0, 0, 0, + + // right hand + 2, 0, KEYPAD_NumLock_Clear, KEYPAD_Equal, KEYPAD_Slash, KEYPAD_Asterisk, 0, + 0, 0, KEYPAD_7_Home, KEYPAD_8_UpArrow, KEYPAD_9_PageUp, KEYPAD_Minus, 0, + /*no key*/ 0, KEYPAD_4_LeftArrow, KEYPAD_5, KEYPAD_6_RightArrow, KEYPAD_Plus, 0, + 0, 0, KEYPAD_1_End, KEYPAD_2_DownArrow, KEYPAD_3_PageDown, KEY_ReturnEnter, 0, + /*no key*/ /*no key*/ 0, 0, KEYPAD_Period_Delete, KEY_ReturnEnter, 0, + // right thumb + 0, 0, /*no key*/ + 0, 0 /*no key*/, 0 /*no key*/, + 0, 0, KEYPAD_0_Insert +), +// LAYER 3 +KB_MATRIX_LAYER( + // unused + 0 /*no key*/, + // left hand + 0, 0, 0, 0, 0, 0, 0, + 0, KEY_q_Q, KEY_w_W, KEY_e_E, KEY_r_R, KEY_t_T, 0, + 0, KEY_a_A, KEY_s_S, KEY_d_D, KEY_f_F, KEY_g_G, /*no key*/ + 0, KEY_z_Z, KEY_x_X, KEY_c_C, KEY_v_V, KEY_b_B, 0, + 0, 0, 0, 0, 0, /*no key*/ /*no key*/ + // left thumb + /*no key*/ 0, 0, + 0 /*no key*/, 0 /*no key*/, 0, + 0, 0, 0, + + // right hand + 0, 0, 0, 0, 0, 0, 0, + 0, KEY_y_Y, KEY_u_U, KEY_i_I, KEY_o_O, KEY_p_P, 0, + /*no key*/ KEY_h_H, KEY_j_J, KEY_k_K, KEY_l_L, KEY_Semicolon_Colon, 0, + 0, KEY_n_N, KEY_m_M, 0, 0, 0, 0, + /*no key*/ /*no key*/ 0, 0, 0, 0, 0, + // right thumb + 0, 0, /*no key*/ + 0, 0 /*no key*/, 0 /*no key*/, + 0, 0, 0 +), +// LAYER 4 +KB_MATRIX_LAYER( + // unused + 0 /*no key*/, + // left hand + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, /*no key*/ + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, /*no key*/ /*no key*/ + // left thumb + /*no key*/ 0, 0, + 0 /*no key*/, 0 /*no key*/, 0, + 0, 0, 0, + + // right hand + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, + /*no key*/ 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, + /*no key*/ /*no key*/ 0, 0, 0, 0, 0, + // right thumb + 0, 0, /*no key*/ + 0, 0 /*no key*/, 0 /*no key*/, + 0, 0, 0 +), +// LAYER 5 +KB_MATRIX_LAYER( + // unused + 0 /*no key*/, + // left hand + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, /*no key*/ + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, /*no key*/ /*no key*/ + // left thumb + /*no key*/ 0, 0, + 0 /*no key*/, 0 /*no key*/, 0, + 0, 0, 0, + + // right hand + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, + /*no key*/ 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, + /*no key*/ /*no key*/ 0, 0, 0, 0, 0, + // right thumb + 0, 0, /*no key*/ + 0, 0 /*no key*/, 0 /*no key*/, + 0, 0, 0 +), +// LAYER 6 +KB_MATRIX_LAYER( + // unused + 0 /*no key*/, + // left hand + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, /*no key*/ + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, /*no key*/ /*no key*/ + // left thumb + /*no key*/ 0, 0, + 0 /*no key*/, 0 /*no key*/, 0, + 0, 0, 0, + + // right hand + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, + /*no key*/ 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, + /*no key*/ /*no key*/ 0, 0, 0, 0, 0, + // right thumb + 0, 0, /*no key*/ + 0, 0 /*no key*/, 0 /*no key*/, + 0, 0, 0 +), +// LAYER 7 +KB_MATRIX_LAYER( + // unused + 0 /*no key*/, + // left hand + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, /*no key*/ + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, /*no key*/ /*no key*/ + // left thumb + /*no key*/ 0, 0, + 0 /*no key*/, 0 /*no key*/, 0, + 0, 0, 0, + + // right hand + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, + /*no key*/ 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, + /*no key*/ /*no key*/ 0, 0, 0, 0, 0, + // right thumb + 0, 0, /*no key*/ + 0, 0 /*no key*/, 0 /*no key*/, + 0, 0, 0 +), +// LAYER 8 +KB_MATRIX_LAYER( + // unused + 0 /*no key*/, + // left hand + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, /*no key*/ + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, /*no key*/ /*no key*/ + // left thumb + /*no key*/ 0, 0, + 0 /*no key*/, 0 /*no key*/, 0, + 0, 0, 0, + + // right hand + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, + /*no key*/ 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, + /*no key*/ /*no key*/ 0, 0, 0, 0, 0, + // right thumb + 0, 0, /*no key*/ + 0, 0 /*no key*/, 0 /*no key*/, + 0, 0, 0 +), +// LAYER 9 +KB_MATRIX_LAYER( + // unused + 0 /*no key*/, + // left hand + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, /*no key*/ + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, /*no key*/ /*no key*/ + // left thumb + /*no key*/ 0, 0, + 0 /*no key*/, 0 /*no key*/, 0, + 0, 0, 0, + + // right hand + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, + /*no key*/ 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, + /*no key*/ /*no key*/ 0, 0, 0, 0, 0, + // right thumb + 0, 0, /*no key*/ + 0, 0 /*no key*/, 0 /*no key*/, + 0, 0, 0 +), +}; +// ---------------------------------------------------------------------------- + +// PRESS ---------------------------------------------------------------------- +const void_funptr_t PROGMEM _kb_layout_press[KB_LAYERS][KB_ROWS][KB_COLUMNS] = { +// LAYER 0 +KB_MATRIX_LAYER( + // unused + NULL /*no key*/, + // left hand + kprrel, sshprre, sshprre, sshprre, sshprre, sshprre, kprrel, + kprrel, kprrel, kprrel, kprrel, kprrel, kprrel, lpush1, + kprrel, kprrel, kprrel, kprrel, kprrel, kprrel, /*no key*/ + kprrel, kprrel, kprrel, kprrel, kprrel, kprrel, kprrel, + kprrel, kprrel, kprrel, kprrel, kprrel, /*no key*/ /*no key*/ + // left thumb + /*no key*/ kprrel, kprrel, + NULL /*no key*/, NULL /*no key*/, kprrel, + kprrel, kprrel, kprrel, + + // right hand + lpush2, sshprre, sshprre, sshprre, sshprre, sshprre, kprrel, + lpush1, kprrel, kprrel, kprrel, kprrel, kprrel, kprrel, + /*no key*/ kprrel, kprrel, kprrel, kprrel, kprrel, kprrel, + kprrel, kprrel, kprrel, kprrel, kprrel, kprrel, kprrel, + /*no key*/ /*no key*/ kprrel, kprrel, kprrel, kprrel, kprrel, + // right thumb + kprrel, kprrel, /*no key*/ + kprrel, NULL /*no key*/, NULL /*no key*/, + kprrel, kprrel, kprrel +), +// LAYER 1 +KB_MATRIX_LAYER( + // unused + NULL /*no key*/, + // left hand + kprrel, kprrel, kprrel, kprrel, kprrel, kprrel, kprrel, + ktrans, ktrans, ktrans, ktrans, ktrans, ktrans, ktrans, + ktrans, ktrans, ktrans, ktrans, ktrans, ktrans, /*no key*/ + ktrans, ktrans, ktrans, ktrans, ktrans, ktrans, ktrans, + lpop, ktrans, ktrans, mprrel, mprrel, /*no key*/ /*no key*/ + // left thumb + /*no key*/ ktrans, ktrans, + NULL /*no key*/, NULL /*no key*/, ktrans, + mprrel, ktrans, ktrans, + + // right hand + kprrel, kprrel, kprrel, kprrel, kprrel, kprrel, kprrel, + ktrans, ktrans, ktrans, ktrans, ktrans, ktrans, ktrans, + /*no key*/ ktrans, ktrans, ktrans, ktrans, ktrans, ktrans, + ktrans, ktrans, ktrans, ktrans, ktrans, ktrans, ktrans, + /*no key*/ /*no key*/ kprrel, kprrel, ktrans, ktrans, lpush3, + // right thumb + ktrans, ktrans, /*no key*/ + ktrans, NULL /*no key*/, NULL /*no key*/, + ktrans, ktrans, mprrel +), +// LAYER 2 +KB_MATRIX_LAYER( + // unused + NULL /*no key*/, + // left hand + ktrans, ktrans, ktrans, ktrans, ktrans, ktrans, ktrans, + ktrans, ktrans, ktrans, ktrans, ktrans, ktrans, ktrans, + ktrans, ktrans, ktrans, ktrans, ktrans, ktrans, /*no key*/ + ktrans, ktrans, ktrans, ktrans, ktrans, ktrans, ktrans, + ktrans, ktrans, kprrel, ktrans, ktrans, /*no key*/ /*no key*/ + // left thumb + /*no key*/ ktrans, ktrans, + NULL /*no key*/, NULL /*no key*/, ktrans, + ktrans, ktrans, ktrans, + + // right hand + lpop2, ktrans, kprrel, kprrel, kprrel, kprrel, ktrans, + ktrans, ktrans, kprrel, kprrel, kprrel, kprrel, ktrans, + /*no key*/ ktrans, kprrel, kprrel, kprrel, kprrel, ktrans, + ktrans, ktrans, kprrel, kprrel, kprrel, kprrel, ktrans, + /*no key*/ /*no key*/ ktrans, ktrans, kprrel, kprrel, ktrans, + // right thumb + ktrans, ktrans, /*no key*/ + ktrans, NULL /*no key*/, NULL /*no key*/, + ktrans, ktrans, kprrel +), +// LAYER 3 +KB_MATRIX_LAYER( + // unused + NULL /*no key*/, + // left hand + ktrans, ktrans, ktrans, ktrans, ktrans, ktrans, ktrans, + ktrans, kprrel, kprrel, kprrel, kprrel, kprrel, ktrans, + ktrans, kprrel, kprrel, kprrel, kprrel, kprrel, /*no key*/ + ktrans, kprrel, kprrel, kprrel, kprrel, kprrel, ktrans, + ktrans, ktrans, ktrans, ktrans, ktrans, /*no key*/ /*no key*/ + // left thumb + /*no key*/ ktrans, ktrans, + NULL /*no key*/, NULL /*no key*/, ktrans, + ktrans, ktrans, ktrans, + + // right hand + ktrans, ktrans, ktrans, ktrans, ktrans, ktrans, ktrans, + ktrans, kprrel, kprrel, kprrel, kprrel, kprrel, ktrans, + /*no key*/ kprrel, kprrel, kprrel, kprrel, kprrel, ktrans, + ktrans, kprrel, kprrel, ktrans, ktrans, ktrans, ktrans, + /*no key*/ /*no key*/ ktrans, ktrans, ktrans, ktrans, ktrans, + // right thumb + ktrans, ktrans, /*no key*/ + ktrans, NULL /*no key*/, NULL /*no key*/, + ktrans, ktrans, ktrans +), +// LAYER 4 +KB_MATRIX_LAYER( + // unused + NULL /*no key*/, + // left hand + NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, /*no key*/ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, /*no key*/ /*no key*/ + // left thumb + /*no key*/ NULL, NULL, + NULL /*no key*/, NULL /*no key*/, NULL, + NULL, NULL, NULL, + + // right hand + NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, + /*no key*/ NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, + /*no key*/ /*no key*/ NULL, NULL, NULL, NULL, NULL, + // right thumb + NULL, NULL, /*no key*/ + NULL, NULL /*no key*/, NULL /*no key*/, + NULL, NULL, NULL +), +// LAYER 5 +KB_MATRIX_LAYER( + // unused + NULL /*no key*/, + // left hand + NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, /*no key*/ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, /*no key*/ /*no key*/ + // left thumb + /*no key*/ NULL, NULL, + NULL /*no key*/, NULL /*no key*/, NULL, + NULL, NULL, NULL, + + // right hand + NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, + /*no key*/ NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, + /*no key*/ /*no key*/ NULL, NULL, NULL, NULL, NULL, + // right thumb + NULL, NULL, /*no key*/ + NULL, NULL /*no key*/, NULL /*no key*/, + NULL, NULL, NULL +), +// LAYER 6 +KB_MATRIX_LAYER( + // unused + NULL /*no key*/, + // left hand + NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, /*no key*/ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, /*no key*/ /*no key*/ + // left thumb + /*no key*/ NULL, NULL, + NULL /*no key*/, NULL /*no key*/, NULL, + NULL, NULL, NULL, + + // right hand + NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, + /*no key*/ NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, + /*no key*/ /*no key*/ NULL, NULL, NULL, NULL, NULL, + // right thumb + NULL, NULL, /*no key*/ + NULL, NULL /*no key*/, NULL /*no key*/, + NULL, NULL, NULL +), +// LAYER 7 +KB_MATRIX_LAYER( + // unused + NULL /*no key*/, + // left hand + NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, /*no key*/ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, /*no key*/ /*no key*/ + // left thumb + /*no key*/ NULL, NULL, + NULL /*no key*/, NULL /*no key*/, NULL, + NULL, NULL, NULL, + + // right hand + NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, + /*no key*/ NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, + /*no key*/ /*no key*/ NULL, NULL, NULL, NULL, NULL, + // right thumb + NULL, NULL, /*no key*/ + NULL, NULL /*no key*/, NULL /*no key*/, + NULL, NULL, NULL +), +// LAYER 8 +KB_MATRIX_LAYER( + // unused + NULL /*no key*/, + // left hand + NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, /*no key*/ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, /*no key*/ /*no key*/ + // left thumb + /*no key*/ NULL, NULL, + NULL /*no key*/, NULL /*no key*/, NULL, + NULL, NULL, NULL, + + // right hand + NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, + /*no key*/ NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, + /*no key*/ /*no key*/ NULL, NULL, NULL, NULL, NULL, + // right thumb + NULL, NULL, /*no key*/ + NULL, NULL /*no key*/, NULL /*no key*/, + NULL, NULL, NULL +), +// LAYER 9 +KB_MATRIX_LAYER( + // unused + NULL /*no key*/, + // left hand + NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, /*no key*/ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, /*no key*/ /*no key*/ + // left thumb + /*no key*/ NULL, NULL, + NULL /*no key*/, NULL /*no key*/, NULL, + NULL, NULL, NULL, + + // right hand + NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, + /*no key*/ NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, + /*no key*/ /*no key*/ NULL, NULL, NULL, NULL, NULL, + // right thumb + NULL, NULL, /*no key*/ + NULL, NULL /*no key*/, NULL /*no key*/, + NULL, NULL, NULL +), +}; +// ---------------------------------------------------------------------------- + +// RELEASE -------------------------------------------------------------------- +const void_funptr_t PROGMEM _kb_layout_release[KB_LAYERS][KB_ROWS][KB_COLUMNS] = { +// LAYER 0 +KB_MATRIX_LAYER( + // unused + NULL /*no key*/, + // left hand + kprrel, sshprre, sshprre, sshprre, sshprre, sshprre, kprrel, + kprrel, kprrel, kprrel, kprrel, kprrel, kprrel, lpop1, + kprrel, kprrel, kprrel, kprrel, kprrel, kprrel, /*no key*/ + kprrel, kprrel, kprrel, kprrel, kprrel, kprrel, kprrel, + kprrel, kprrel, kprrel, kprrel, kprrel, /*no key*/ /*no key*/ + // left thumb + /*no key*/ kprrel, kprrel, + NULL /*no key*/, NULL /*no key*/, kprrel, + kprrel, kprrel, kprrel, + + // right hand + NULL, sshprre, sshprre, sshprre, sshprre, sshprre, kprrel, + lpop1, kprrel, kprrel, kprrel, kprrel, kprrel, kprrel, + /*no key*/ kprrel, kprrel, kprrel, kprrel, kprrel, kprrel, + kprrel, kprrel, kprrel, kprrel, kprrel, kprrel, kprrel, + /*no key*/ /*no key*/ kprrel, kprrel, kprrel, kprrel, kprrel, + // right thumb + kprrel, kprrel, /*no key*/ + kprrel, NULL /*no key*/, NULL /*no key*/, + kprrel, kprrel, kprrel +), +// LAYER 1 +KB_MATRIX_LAYER( + // unused + NULL /*no key*/, + // left hand + kprrel, kprrel, kprrel, kprrel, kprrel, kprrel, kprrel, + ktrans, ktrans, ktrans, ktrans, ktrans, ktrans, ktrans, + ktrans, ktrans, ktrans, ktrans, ktrans, ktrans, /*no key*/ + ktrans, ktrans, ktrans, ktrans, ktrans, ktrans, ktrans, + NULL, ktrans, ktrans, ktrans, ktrans, /*no key*/ /*no key*/ + // left thumb + /*no key*/ ktrans, ktrans, + NULL /*no key*/, NULL /*no key*/, ktrans, + ktrans, ktrans, ktrans, + + // right hand + kprrel, kprrel, kprrel, kprrel, kprrel, kprrel, kprrel, + ktrans, ktrans, ktrans, ktrans, ktrans, ktrans, ktrans, + /*no key*/ ktrans, ktrans, ktrans, ktrans, ktrans, ktrans, + ktrans, ktrans, ktrans, ktrans, ktrans, ktrans, ktrans, + /*no key*/ /*no key*/ kprrel, kprrel, ktrans, ktrans, NULL, + // right thumb + ktrans, ktrans, /*no key*/ + ktrans, NULL /*no key*/, NULL /*no key*/, + ktrans, ktrans, ktrans +), +// LAYER 2 +KB_MATRIX_LAYER( + // unused + NULL /*no key*/, + // left hand + ktrans, ktrans, ktrans, ktrans, ktrans, ktrans, ktrans, + ktrans, ktrans, ktrans, ktrans, ktrans, ktrans, ktrans, + ktrans, ktrans, ktrans, ktrans, ktrans, ktrans, /*no key*/ + ktrans, ktrans, ktrans, ktrans, ktrans, ktrans, ktrans, + ktrans, ktrans, kprrel, ktrans, ktrans, /*no key*/ /*no key*/ + // left thumb + /*no key*/ ktrans, ktrans, + NULL /*no key*/, NULL /*no key*/, ktrans, + ktrans, ktrans, ktrans, + + // right hand + NULL, ktrans, kprrel, kprrel, kprrel, kprrel, ktrans, + ktrans, ktrans, kprrel, kprrel, kprrel, kprrel, ktrans, + /*no key*/ ktrans, kprrel, kprrel, kprrel, kprrel, ktrans, + ktrans, ktrans, kprrel, kprrel, kprrel, kprrel, ktrans, + /*no key*/ /*no key*/ ktrans, ktrans, kprrel, kprrel, ktrans, + // right thumb + ktrans, ktrans, /*no key*/ + ktrans, NULL /*no key*/, NULL /*no key*/, + ktrans, ktrans, kprrel +), +// LAYER 3 +KB_MATRIX_LAYER( + // unused + NULL /*no key*/, + // left hand + ktrans, ktrans, ktrans, ktrans, ktrans, ktrans, ktrans, + ktrans, kprrel, kprrel, kprrel, kprrel, kprrel, ktrans, + ktrans, kprrel, kprrel, kprrel, kprrel, kprrel, /*no key*/ + ktrans, kprrel, kprrel, kprrel, kprrel, kprrel, ktrans, + ktrans, ktrans, ktrans, ktrans, ktrans, /*no key*/ /*no key*/ + // left thumb + /*no key*/ ktrans, ktrans, + NULL /*no key*/, NULL /*no key*/, ktrans, + ktrans, ktrans, ktrans, + + // right hand + ktrans, ktrans, ktrans, ktrans, ktrans, ktrans, ktrans, + ktrans, kprrel, kprrel, kprrel, kprrel, kprrel, ktrans, + /*no key*/ kprrel, kprrel, kprrel, kprrel, kprrel, ktrans, + ktrans, kprrel, kprrel, ktrans, ktrans, ktrans, ktrans, + /*no key*/ /*no key*/ ktrans, ktrans, ktrans, ktrans, ktrans, + // right thumb + ktrans, ktrans, /*no key*/ + ktrans, NULL /*no key*/, NULL /*no key*/, + ktrans, ktrans, ktrans +), +// LAYER 4 +KB_MATRIX_LAYER( + // unused + NULL /*no key*/, + // left hand + NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, /*no key*/ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, /*no key*/ /*no key*/ + // left thumb + /*no key*/ NULL, NULL, + NULL /*no key*/, NULL /*no key*/, NULL, + NULL, NULL, NULL, + + // right hand + NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, + /*no key*/ NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, + /*no key*/ /*no key*/ NULL, NULL, NULL, NULL, NULL, + // right thumb + NULL, NULL, /*no key*/ + NULL, NULL /*no key*/, NULL /*no key*/, + NULL, NULL, NULL +), +// LAYER 5 +KB_MATRIX_LAYER( + // unused + NULL /*no key*/, + // left hand + NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, /*no key*/ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, /*no key*/ /*no key*/ + // left thumb + /*no key*/ NULL, NULL, + NULL /*no key*/, NULL /*no key*/, NULL, + NULL, NULL, NULL, + + // right hand + NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, + /*no key*/ NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, + /*no key*/ /*no key*/ NULL, NULL, NULL, NULL, NULL, + // right thumb + NULL, NULL, /*no key*/ + NULL, NULL /*no key*/, NULL /*no key*/, + NULL, NULL, NULL +), +// LAYER 6 +KB_MATRIX_LAYER( + // unused + NULL /*no key*/, + // left hand + NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, /*no key*/ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, /*no key*/ /*no key*/ + // left thumb + /*no key*/ NULL, NULL, + NULL /*no key*/, NULL /*no key*/, NULL, + NULL, NULL, NULL, + + // right hand + NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, + /*no key*/ NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, + /*no key*/ /*no key*/ NULL, NULL, NULL, NULL, NULL, + // right thumb + NULL, NULL, /*no key*/ + NULL, NULL /*no key*/, NULL /*no key*/, + NULL, NULL, NULL +), +// LAYER 7 +KB_MATRIX_LAYER( + // unused + NULL /*no key*/, + // left hand + NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, /*no key*/ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, /*no key*/ /*no key*/ + // left thumb + /*no key*/ NULL, NULL, + NULL /*no key*/, NULL /*no key*/, NULL, + NULL, NULL, NULL, + + // right hand + NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, + /*no key*/ NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, + /*no key*/ /*no key*/ NULL, NULL, NULL, NULL, NULL, + // right thumb + NULL, NULL, /*no key*/ + NULL, NULL /*no key*/, NULL /*no key*/, + NULL, NULL, NULL +), +// LAYER 8 +KB_MATRIX_LAYER( + // unused + NULL /*no key*/, + // left hand + NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, /*no key*/ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, /*no key*/ /*no key*/ + // left thumb + /*no key*/ NULL, NULL, + NULL /*no key*/, NULL /*no key*/, NULL, + NULL, NULL, NULL, + + // right hand + NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, + /*no key*/ NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, + /*no key*/ /*no key*/ NULL, NULL, NULL, NULL, NULL, + // right thumb + NULL, NULL, /*no key*/ + NULL, NULL /*no key*/, NULL /*no key*/, + NULL, NULL, NULL +), +// LAYER 9 +KB_MATRIX_LAYER( + // unused + NULL /*no key*/, + // left hand + NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, /*no key*/ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, /*no key*/ /*no key*/ + // left thumb + /*no key*/ NULL, NULL, + NULL /*no key*/, NULL /*no key*/, NULL, + NULL, NULL, NULL, + + // right hand + NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, + /*no key*/ NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, + /*no key*/ /*no key*/ NULL, NULL, NULL, NULL, NULL, + // right thumb + NULL, NULL, /*no key*/ + NULL, NULL /*no key*/, NULL /*no key*/, + NULL, NULL, NULL +), +}; +// ---------------------------------------------------------------------------- diff --git a/src/keyboard/ergodox/layout/workman-p-kinesis-mod.h b/src/keyboard/ergodox/layout/workman-p-kinesis-mod.h new file mode 100644 index 0000000..89eccab --- /dev/null +++ b/src/keyboard/ergodox/layout/workman-p-kinesis-mod.h @@ -0,0 +1,30 @@ +/* ---------------------------------------------------------------------------- + * ergoDOX : layout : DEFAULT : exports + * ---------------------------------------------------------------------------- + * Copyright (c) 2012 Ben Blazak + * Released under The MIT License (MIT) (see "license.md") + * Project located at + * ------------------------------------------------------------------------- */ + + +#ifndef KEYBOARD__ERGODOX__LAYOUT__DEFAULT_h + #define KEYBOARD__ERGODOX__LAYOUT__DEFAULT_h + + #include "../controller.h" + + // -------------------------------------------------------------------- + + #define kb_led_num_on() _kb_led_1_on() + #define kb_led_num_off() _kb_led_1_off() + #define kb_led_caps_on() _kb_led_2_on() + #define kb_led_caps_off() _kb_led_2_off() + #define kb_led_scroll_on() _kb_led_3_on() + #define kb_led_scroll_off() _kb_led_3_off() + + // -------------------------------------------------------------------- + + #include "./default--led-control.h" + #include "./default--matrix-control.h" + +#endif +