remove old layouts

master
Stefan Dorn 2016-02-04 09:26:41 +00:00
parent f0da34b909
commit d1c105848b
10 changed files with 0 additions and 2551 deletions

View File

@ -1,298 +0,0 @@
/* ----------------------------------------------------------------------------
* ergoDOX layout : COLEMAK JC Sticky Keys Mod
* created by Ryan Prince
* Description: This layout is designed for programming with a focus on
* minimizing/elimnating the need to take the hands out of home-row position
* to reach other keys. Layer sticky keys are used to reduce the average
* number of keystrokes required to access keys in other layers. Some
* redundancy of navigation and spacing keys is added to the left hand to
* allow for greater one-handed access when using a mouse with the right
* hand.
* The alpha key layout is COLEMAK with sticky layer keys on the thumb
* switches for a symbol layer and a ten-key/function
* layer.
* Modifiers are symetric on each hand with the exception of the Alt
* key because my primary machine is a Mac which utilizes command and ctrl
* for chorded shortcuts more frequenty than ctrl and alt. The layer sticky
* keys compliment standard modifier sticky keys (for shift, ctrl, command,
* alt) to allow fast touch typing with minimal chording in favor of
* sequential keying (preferably on alternate hands) for multi-key shortcuts
* as chording introduces strain and fatigue and takes your hands out of
* home row position increasing the likelihood of mistyping.
* Sticky keys for standard modifiers are used as an operating system setting
* for the benefit of key state visualization, though this can interfere
* with the kbfun_shift_press_release() behavior which implicitly adds the
* shift down modifier to output symbols that require it without knowledge
* of the virtual sticky state maintained by the operating system.
* The ErgoDox Layout Configurator layout that best approximates the layout
* defined in this file is available here:
* https://www.massdrop.com/ext/ergodox/?referer=EAZJPJ&hash=f26761358ba99e21ae937173da512849
* The differences are mainly the use of layer toggles instead of sticky
* layer keys and many of the symbols add the kbfun_shift_press_release()
* which is not accessible for all keys in the cofigurator (as of
* 2013-04-10).
* -----------------------------------------------------------------------------
* Copyright (c) 2012 Ben Blazak <benblazak.dev@gmail.com>,
* 2013 Ryan Prince <judascleric@gmail.com>
* Released under The MIT License (MIT) (see "license.md")
* Project located at <https://github.com/benblazak/ergodox-firmware>
* -------------------------------------------------------------------------- */
#include <stdint.h>
#include <stddef.h>
#include <avr/pgmspace.h>
#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 ----------------------------------------------------------------
#define kprrel &kbfun_press_release
#define kprpst &kbfun_press_release_preserve_sticky
#define mprrel &kbfun_mediakey_press_release
#define ktrans &kbfun_transparent
#define lpush1 &kbfun_layer_push_1
#define lpush2 &kbfun_layer_push_2
#define lsticky1 &kbfun_layer_sticky_1
#define lsticky2 &kbfun_layer_sticky_2
#define lpop &kbfun_layer_pop_all
#define lpop1 &kbfun_layer_pop_1
#define lpop2 &kbfun_layer_pop_2
#define dbtldr &kbfun_jump_to_bootloader
#define sshprre &kbfun_shift_press_release
// ----------------------------------------------------------------------------
// LAYOUT ---------------------------------------------------------------------
const uint8_t PROGMEM _kb_layout[KB_LAYERS][KB_ROWS][KB_COLUMNS] = {
// LAYER 0
KB_MATRIX_LAYER(
// unused
0,
// left hand
KEY_GraveAccent_Tilde, KEY_1_Exclamation, KEY_2_At, KEY_3_Pound, KEY_4_Dollar, KEY_5_Percent, KEY_LeftBracket_LeftBrace,
KEY_LeftControl, KEY_q_Q, KEY_w_W, KEY_f_F, KEY_p_P, KEY_g_G, KEY_Equal_Plus,
KEY_LeftShift, KEY_a_A, KEY_r_R, KEY_s_S, KEY_t_T, KEY_d_D,
KEY_LeftGUI, KEY_z_Z, KEY_x_X, KEY_c_C, KEY_v_V, KEY_b_B, 0,
KEY_Home, KEY_End, KEY_PageUp, KEY_PageDown, 1,
KEY_Tab, KEY_Spacebar,
0, 0, KEY_ReturnEnter,
KEY_Escape, 2, KEY_LeftAlt,
// right hand
KEY_RightBracket_RightBrace, KEY_6_Caret, KEY_7_Ampersand, KEY_8_Asterisk, KEY_9_LeftParenthesis, KEY_0_RightParenthesis, KEY_Backslash_Pipe,
KEY_Dash_Underscore, KEY_j_J, KEY_l_L, KEY_u_U, KEY_y_Y, KEY_Semicolon_Colon, KEY_RightControl,
KEY_h_H, KEY_n_N, KEY_e_E, KEY_i_I, KEY_o_O, KEY_RightShift,
2, KEY_k_K, KEY_m_M, KEY_Comma_LessThan, KEY_Period_GreaterThan, KEY_Slash_Question, KEY_RightGUI,
1, KEY_DownArrow, KEY_UpArrow, KEY_LeftArrow, KEY_RightArrow,
KEY_Insert, KEY_DeleteForward,
0, 0, 0,
KEY_DeleteBackspace, KEY_ReturnEnter, KEY_Spacebar
),
// LAYER 1
KB_MATRIX_LAYER(
// unused
0,
// left hand
0, 0, 0, 0, 0, 0, 0,
0, KEY_1_Exclamation, KEY_2_At, KEY_3_Pound, KEY_4_Dollar, KEY_5_Percent, 0,
0, KEY_SingleQuote_DoubleQuote, 0x34, 0x2F, 0x30, KEY_Equal_Plus,
0, 0x31, KEY_Backslash_Pipe, KEY_Dash_Underscore, KEY_DeleteBackspace, KEY_Tab, 0,
KEY_LeftArrow, KEY_RightArrow, KEY_UpArrow, KEY_DownArrow, 0,
0, 0,
0, 0, 0,
0, 0, 0,
// right hand
0, 0, MEDIAKEY_PREV_TRACK, MEDIAKEY_PLAY_PAUSE, MEDIAKEY_NEXT_TRACK, 0, 0,
0, KEY_6_Caret, KEY_7_Ampersand, KEYPAD_Asterisk, KEYPAD_Minus, KEY_GraveAccent_Tilde, 0,
KEYPAD_Plus, KEY_9_LeftParenthesis, KEY_0_RightParenthesis, KEY_LeftBracket_LeftBrace, KEY_RightBracket_RightBrace, 0,
0, KEY_GraveAccent_Tilde, KEY_DownArrow, KEY_UpArrow, KEY_LeftArrow, KEY_RightArrow, 0,
0, 0, 0, 0, 0,
0, 0,
0, 0, 0,
0, 0, 0
),
// LAYER 2
KB_MATRIX_LAYER(
// unused
0,
// left hand
0, 0, 0, 0, 0, 0, 0,
0, KEY_F9, KEY_F10, KEY_F11, KEY_F12, KEY_VolumeUp, 0,
0, KEY_F5, KEY_F6, KEY_F7, KEY_F8, KEY_VolumeDown,
0, KEY_F1, KEY_F2, KEY_F3, KEY_F4, KEY_Mute, 0,
0, 0, 0, 0, 0,
0, 0,
0, 0, 0,
0, 0, 0,
// right hand
0, 0, KEYPAD_NumLock_Clear, KEYPAD_Asterisk, KEYPAD_Slash, KEY_5_Percent, 0,
0, KEYPAD_Minus, KEYPAD_7_Home, KEYPAD_8_UpArrow, KEYPAD_9_PageUp, KEYPAD_Plus, 0,
KEYPAD_Equal, KEYPAD_4_LeftArrow, KEYPAD_5, KEYPAD_6_RightArrow, KEYPAD_0_Insert, 0,
0, KEY_Comma_LessThan, KEYPAD_1_End, KEYPAD_2_DownArrow, KEYPAD_3_PageDown, KEYPAD_Period_Delete, 0,
0, 0, 0, 0, 0,
0, 0,
0, 0, 0,
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,
// left hand
kprrel, kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
kprrel, kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
kprrel, kprrel, kprrel, kprrel, kprrel, kprrel, lpop,
kprrel, kprrel, kprrel, kprrel, lsticky1,
kprrel, kprrel,
NULL, NULL, kprrel,
kprrel, lsticky2, kprrel,
// right hand
kprrel, kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
kprrel, kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
lsticky2, kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
lsticky1, kprrel, kprrel, kprrel, kprrel,
kprrel, kprrel,
lpop, NULL, NULL,
kprrel, kprrel, kprrel
),
// LAYER 1
KB_MATRIX_LAYER(
// unused
NULL,
// left hand
ktrans, ktrans, ktrans, ktrans, ktrans, ktrans, ktrans,
ktrans, sshprre, sshprre, sshprre, sshprre, sshprre, ktrans,
ktrans, kprrel, sshprre, sshprre, sshprre, kprrel,
ktrans, sshprre, kprrel, sshprre, kprrel, kprrel, ktrans,
kprrel, kprrel, kprrel, kprrel, ktrans,
ktrans, ktrans,
NULL, NULL, ktrans,
ktrans, ktrans, ktrans,
// right hand
ktrans, ktrans, mprrel, mprrel, mprrel, ktrans, ktrans,
ktrans, sshprre, sshprre, kprrel, kprrel, kprrel, ktrans,
kprrel, sshprre, sshprre, kprrel, kprrel, ktrans,
ktrans, sshprre, kprrel, kprrel, kprrel, kprrel, ktrans,
ktrans, ktrans, ktrans, ktrans, ktrans,
ktrans, ktrans,
ktrans, NULL, NULL,
ktrans, ktrans, ktrans
),
// LAYER 2
KB_MATRIX_LAYER(
// unused
NULL,
// left hand
ktrans, ktrans, ktrans, ktrans, ktrans, ktrans, ktrans,
ktrans, kprrel, kprrel, kprrel, kprrel, kprrel, ktrans,
ktrans, kprrel, kprrel, kprrel, kprrel, kprrel,
ktrans, kprrel, kprrel, kprrel, kprrel, kprrel, ktrans,
ktrans, ktrans, ktrans, ktrans, ktrans,
ktrans, ktrans,
NULL, NULL, ktrans,
ktrans, ktrans, ktrans,
// right hand
dbtldr, kprrel, kprrel, kprrel, kprrel, sshprre, ktrans,
ktrans, kprrel, kprrel, kprrel, kprrel, kprrel, ktrans,
kprrel, kprrel, kprrel, kprrel, kprrel, ktrans,
ktrans, kprrel, kprrel, kprrel, kprrel, kprrel, ktrans,
ktrans, ktrans, ktrans, ktrans, ktrans,
ktrans, ktrans,
ktrans, NULL, NULL,
ktrans, ktrans, ktrans
),
};
// ----------------------------------------------------------------------------
// RELEASE --------------------------------------------------------------------
const void_funptr_t PROGMEM _kb_layout_release[KB_LAYERS][KB_ROWS][KB_COLUMNS] = {
// LAYER 0
KB_MATRIX_LAYER(
// unused
NULL,
// left hand
kprrel, kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
kprrel, kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
kprrel, kprrel, kprrel, kprrel, kprrel, kprrel, NULL,
kprrel, kprrel, kprrel, kprrel, lsticky1,
kprrel, kprrel,
NULL, NULL, kprrel,
kprrel, lsticky2, kprrel,
// right hand
kprrel, kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
kprrel, kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
lsticky2, kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
lsticky1, kprrel, kprrel, kprrel, kprrel,
kprrel, kprrel,
NULL, NULL, NULL,
kprrel, kprrel, kprrel
),
// LAYER 1
KB_MATRIX_LAYER(
// unused
NULL,
// left hand
ktrans, ktrans, ktrans, ktrans, ktrans, ktrans, ktrans,
ktrans, sshprre, sshprre, sshprre, sshprre, sshprre, ktrans,
ktrans, kprrel, sshprre, sshprre, sshprre, kprrel,
kprrel, sshprre, kprrel, sshprre, kprrel, kprrel, ktrans,
kprrel, kprrel, kprrel, kprrel, ktrans,
ktrans, ktrans,
NULL, NULL, ktrans,
ktrans, ktrans, ktrans,
// right hand
ktrans, ktrans, mprrel, mprrel, mprrel, ktrans, ktrans,
ktrans, sshprre, sshprre, kprrel, kprrel, kprrel, ktrans,
kprrel, sshprre, sshprre, kprrel, kprrel, ktrans,
ktrans, sshprre, kprrel, kprrel, kprrel, kprrel, ktrans,
ktrans, ktrans, ktrans, ktrans, ktrans,
ktrans, ktrans,
ktrans, NULL, NULL,
ktrans, ktrans, ktrans
),
// LAYER 2
KB_MATRIX_LAYER(
// unused
NULL,
// left hand
ktrans, ktrans, ktrans, ktrans, ktrans, ktrans, ktrans,
ktrans, kprrel, kprrel, kprrel, kprrel, kprrel, ktrans,
ktrans, kprrel, kprrel, kprrel, kprrel, kprrel,
kprrel, kprrel, kprrel, kprrel, kprrel, kprrel, ktrans,
ktrans, ktrans, ktrans, ktrans, ktrans,
ktrans, ktrans,
NULL, NULL, ktrans,
kprrel, ktrans, ktrans,
// right hand
NULL, kprrel, kprrel, kprrel, kprrel, sshprre, ktrans,
ktrans, kprrel, kprrel, kprrel, kprrel, kprrel, ktrans,
kprrel, kprrel, kprrel, kprrel, kprrel, ktrans,
ktrans, kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
ktrans, ktrans, ktrans, ktrans, ktrans,
ktrans, ktrans,
ktrans, NULL, NULL,
ktrans, ktrans, ktrans
),
};
// ----------------------------------------------------------------------------

View File

@ -1,30 +0,0 @@
/* ----------------------------------------------------------------------------
* ergoDOX : layout : DEFAULT : exports
* ----------------------------------------------------------------------------
* Copyright (c) 2012 Ben Blazak <benblazak.dev@gmail.com>
* Released under The MIT License (MIT) (see "license.md")
* Project located at <https://github.com/benblazak/ergodox-firmware>
* ------------------------------------------------------------------------- */
#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

View File

@ -1,383 +0,0 @@
/* ----------------------------------------------------------------------------
* ergoDOX layout : COLEMAK (modified from the Kinesis layout)
*
* Submitted by Jason Trill [jjt] (https://github.com/jjt)
* ----------------------------------------------------------------------------
* Copyright (c) 2012 Ben Blazak <benblazak.dev@gmail.com>
* Released under The MIT License (MIT) (see "license.md")
* Project located at <https://github.com/benblazak/ergodox-firmware>
* ------------------------------------------------------------------------- */
#include <stdint.h>
#include <stddef.h>
#include <avr/pgmspace.h>
#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"
// ----------------------------------------------------------------------------
// ----------------------------------------------------------------------------
const uint8_t PROGMEM _kb_layout[KB_LAYERS][KB_ROWS][KB_COLUMNS] = {
// LAYOUT L0: COLEMAK
KB_MATRIX_LAYER( 0,
// left hand
_equal, _1, _2, _3, _4, _5, 2,
_tab, _Q, _W, _F, _P, _G, _esc,
_ctrlL, _A, _R, _S, _T, _D,
_shiftL, _Z, _X, _C, _V, _B, 2,
_guiL, _grave, _backslash, _altL, 1,
_ctrlL, _altL,
0, 0, _home,
_space, _enter, _end,
// right hand
3, _6, _7, _8, _9, _0, _dash,
_esc, _J, _L, _U, _Y, _semicolon, _backslash,
_H, _N, _E, _I, _O, _quote,
3, _K, _M, _comma, _period, _slash, _shiftR,
1, _arrowL, _arrowD, _arrowU, _arrowR,
_altR, _ctrlR,
_pageU, 0, 0,
_pageD, _del, _bs ),
// LAYOUT L1: function and symbol keys
KB_MATRIX_LAYER( 0,
// left hand
0, _F1, _F2, _F3, _F4, _F5, _F11,
0, _bracketL, _bracketR, _bracketL, _bracketR, _semicolon, 0,
0, _backslash, _slash, _9, _0, _semicolon,
0, _1, _2, _3, _4, _5, 0,
0, 0, 0, 0, 0,
0, 0,
0, 0, 0,
0, 0, 0,
// right hand
_F12, _F6, _F7, _F8, _F9, _F10, _power,
0, 0, _equal, _equal, _dash, _dash, 0,
_arrowL, _arrowD, _arrowU, _arrowR, 0, 0,
0, _6, _7, _8, _9, _0, _mute,
0, 0, 0, 0, 0,
0, 0,
0, 0, 0,
0, 0, 0 ),
// LAYOUT L2: QWERTY alphanum
KB_MATRIX_LAYER( 0,
// left hand
0, _1, _2, _3, _4, _5, 0,
0, _Q, _W, _E, _R, _T, 0,
0, _A, _S, _D, _F, _G,
0, _Z, _X, _C, _V, _B, 0,
0, 0, 0, 0, 0,
0, 0,
0, 0, 0,
0, 0, 0,
// right hand
0, _6, _7, _8, _9, _0, 0,
0, _Y, _U, _I, _O, _P, 0,
_H, _J, _K, _L, _semicolon, 0,
0, _N, _M, _comma, _period, _slash, 0,
0, 0, 0, 0, 0,
0, 0,
0, 0, 0,
0, 0, 0 ),
// LAYOUT L3: numpad
KB_MATRIX_LAYER( 0,
// left hand
0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0,
0, _insert, 0, 0, 0,
0, 0,
0, 0, 0,
0, 0, 0,
// right hand
3, 0, 3, _equal_kp, _div_kp, _mul_kp, 0,
0, 0, _7_kp, _8_kp, _9_kp, _sub_kp, 0,
0, _4_kp, _5_kp, _6_kp, _add_kp, 0,
0, 0, _1_kp, _2_kp, _3_kp, _enter_kp, 0,
0, 0, _period, _enter_kp, 0,
0, 0,
0, 0, 0,
0, 0, _0_kp ),
};
// ----------------------------------------------------------------------------
// ----------------------------------------------------------------------------
// aliases
// basic
#define kprrel &kbfun_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 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
// ----------------------------------------------------------------------------
// ----------------------------------------------------------------------------
const void_funptr_t PROGMEM _kb_layout_press[KB_LAYERS][KB_ROWS][KB_COLUMNS] = {
// PRESS L0: COLEMAK
KB_MATRIX_LAYER( NULL,
// left hand
kprrel, kprrel, kprrel, kprrel, kprrel, kprrel, lpush2,
kprrel, kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
s2kcap, kprrel, kprrel, kprrel, kprrel, kprrel, lpush2,
kprrel, kprrel, kprrel, kprrel, lpush1,
kprrel, kprrel,
NULL, NULL, kprrel,
kprrel, kprrel, kprrel,
// right hand
slpunum, kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
kprrel, kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
slpunum, kprrel, kprrel, kprrel, kprrel, kprrel, s2kcap,
lpush1, kprrel, kprrel, kprrel, kprrel,
kprrel, kprrel,
kprrel, NULL, NULL,
kprrel, kprrel, kprrel ),
// PRESS L1: function and symbol keys
KB_MATRIX_LAYER( NULL,
// left hand
NULL, kprrel, kprrel, kprrel, kprrel, kprrel, ktrans,
ktrans, sshprre, sshprre, kprrel, kprrel, sshprre, ktrans,
ktrans, kprrel, kprrel, sshprre, sshprre, kprrel,
ktrans, sshprre, sshprre, sshprre, sshprre, sshprre, ktrans,
ktrans, ktrans, ktrans, ktrans, ktrans,
ktrans, ktrans,
ktrans, ktrans, ktrans,
ktrans, ktrans, ktrans,
// right hand
kprrel, kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
ktrans, kprrel, kprrel, sshprre, kprrel, sshprre, kprrel,
kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
ktrans, sshprre, sshprre, sshprre, sshprre, sshprre, ktrans,
ktrans, ktrans, ktrans, ktrans, ktrans,
ktrans, ktrans,
ktrans, ktrans, ktrans,
ktrans, ktrans, ktrans ),
// PRESS L2: QWERTY
KB_MATRIX_LAYER( NULL,
// left hand
ktrans, kprrel, kprrel, kprrel, kprrel, kprrel, lpop2,
ktrans, kprrel, kprrel, kprrel, kprrel, kprrel, ktrans,
ktrans, kprrel, kprrel, kprrel, kprrel, kprrel,
ktrans, kprrel, kprrel, kprrel, kprrel, kprrel, ktrans,
ktrans, ktrans, ktrans, ktrans, ktrans,
ktrans, ktrans,
ktrans, ktrans, ktrans,
ktrans, ktrans, ktrans,
// right hand
ktrans, kprrel, kprrel, kprrel, kprrel, kprrel, ktrans,
ktrans, kprrel, kprrel, kprrel, kprrel, kprrel, ktrans,
kprrel, kprrel, kprrel, kprrel, kprrel, ktrans,
ktrans, kprrel, kprrel, kprrel, kprrel, kprrel, ktrans,
ktrans, ktrans, ktrans, ktrans, ktrans,
ktrans, ktrans,
ktrans, ktrans, ktrans,
ktrans, ktrans, ktrans ),
// PRESS L3: numpad
KB_MATRIX_LAYER( NULL,
// left hand
ktrans, ktrans, ktrans, ktrans, ktrans, ktrans, ktrans,
ktrans, ktrans, ktrans, ktrans, ktrans, ktrans, ktrans,
ktrans, ktrans, ktrans, ktrans, ktrans, ktrans,
ktrans, ktrans, ktrans, ktrans, ktrans, ktrans, ktrans,
ktrans, kprrel, ktrans, ktrans, ktrans,
ktrans, ktrans,
ktrans, ktrans, ktrans,
ktrans, ktrans, ktrans,
// right hand
slponum, ktrans, slponum, kprrel, kprrel, kprrel, ktrans,
ktrans, ktrans, kprrel, kprrel, kprrel, kprrel, ktrans,
ktrans, kprrel, kprrel, kprrel, kprrel, ktrans,
ktrans, ktrans, kprrel, kprrel, kprrel, kprrel, ktrans,
ktrans, ktrans, kprrel, kprrel, ktrans,
ktrans, ktrans,
ktrans, ktrans, ktrans,
ktrans, ktrans, kprrel ),
};
// ----------------------------------------------------------------------------
// ----------------------------------------------------------------------------
const void_funptr_t PROGMEM _kb_layout_release[KB_LAYERS][KB_ROWS][KB_COLUMNS] = {
// RELEASE L0: COLEMAK
KB_MATRIX_LAYER( NULL,
// left hand
kprrel, kprrel, kprrel, kprrel, kprrel, kprrel, NULL,
kprrel, kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
s2kcap, kprrel, kprrel, kprrel, kprrel, kprrel, lpop2,
kprrel, kprrel, kprrel, kprrel, lpop1,
kprrel, kprrel,
NULL, NULL, kprrel,
kprrel, kprrel, kprrel,
// right hand
NULL, kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
kprrel, kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
slponum, kprrel, kprrel, kprrel, kprrel, kprrel, s2kcap,
lpop1, kprrel, kprrel, kprrel, kprrel,
kprrel, kprrel,
kprrel, NULL, NULL,
kprrel, kprrel, kprrel ),
// RELEASE L1: function and symbol keys
KB_MATRIX_LAYER( NULL,
// left hand
NULL, kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
ktrans, sshprre, sshprre, kprrel, kprrel, sshprre, ktrans,
ktrans, kprrel, kprrel, sshprre, sshprre, kprrel,
ktrans, sshprre, sshprre, sshprre, sshprre, sshprre, ktrans,
ktrans, ktrans, ktrans, ktrans, ktrans,
ktrans, ktrans,
ktrans, ktrans, ktrans,
ktrans, ktrans, ktrans,
// right hand
kprrel, kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
ktrans, kprrel, kprrel, sshprre, kprrel, sshprre, kprrel,
kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
ktrans, sshprre, sshprre, sshprre, sshprre, sshprre, ktrans,
ktrans, ktrans, ktrans, ktrans, ktrans,
ktrans, ktrans,
ktrans, ktrans, ktrans,
ktrans, ktrans, ktrans ),
// RELEASE L2: QWERTY
KB_MATRIX_LAYER( NULL,
// left hand
ktrans, kprrel, kprrel, kprrel, kprrel, kprrel, NULL,
ktrans, kprrel, kprrel, kprrel, kprrel, kprrel, ktrans,
ktrans, kprrel, kprrel, kprrel, kprrel, kprrel,
ktrans, kprrel, kprrel, kprrel, kprrel, kprrel, ktrans,
ktrans, ktrans, ktrans, ktrans, ktrans,
ktrans, ktrans,
ktrans, ktrans, ktrans,
ktrans, ktrans, ktrans,
// right hand
ktrans, kprrel, kprrel, kprrel, kprrel, kprrel, ktrans,
ktrans, kprrel, kprrel, kprrel, kprrel, kprrel, ktrans,
kprrel, kprrel, kprrel, kprrel, kprrel, ktrans,
ktrans, kprrel, kprrel, kprrel, kprrel, kprrel, ktrans,
ktrans, ktrans, ktrans, ktrans, ktrans,
ktrans, ktrans,
ktrans, ktrans, ktrans,
ktrans, ktrans, ktrans ),
// RELEASE L3: numpad
KB_MATRIX_LAYER( NULL,
// left hand
ktrans, ktrans, ktrans, ktrans, ktrans, ktrans, ktrans,
ktrans, ktrans, ktrans, ktrans, ktrans, ktrans, ktrans,
ktrans, ktrans, ktrans, ktrans, ktrans, ktrans,
ktrans, ktrans, ktrans, ktrans, ktrans, ktrans, ktrans,
ktrans, kprrel, ktrans, ktrans, ktrans,
ktrans, ktrans,
ktrans, ktrans, ktrans,
ktrans, ktrans, ktrans,
// right hand
NULL, ktrans, NULL, kprrel, kprrel, kprrel, ktrans,
ktrans, ktrans, kprrel, kprrel, kprrel, kprrel, ktrans,
ktrans, kprrel, kprrel, kprrel, kprrel, ktrans,
lpop3, ktrans, kprrel, kprrel, kprrel, kprrel, ktrans,
ktrans, ktrans, kprrel, kprrel, ktrans,
ktrans, ktrans,
ktrans, ktrans, ktrans,
ktrans, ktrans, kprrel ),
// RELEASE L3: nothing (just making sure unused
// functions don't get compiled out)
KB_MATRIX_LAYER( NULL,
// other
kprrel, lpush8, lpop8, NULL, NULL, NULL, NULL, NULL,
ktog, lpush9, lpop9, NULL, NULL, NULL, NULL, NULL,
ktrans, lpush10,lpop10, NULL, NULL, NULL, NULL, NULL,
lpush1, lpop1, NULL, NULL, NULL, NULL, NULL, NULL,
lpush2, lpop2, dbtldr, NULL, NULL, NULL, NULL, NULL,
lpush3, lpop3, NULL, NULL, NULL, NULL, NULL, NULL,
lpush4, lpop4, s2kcap, NULL, NULL, NULL, NULL, NULL,
lpush5, lpop5, slpunum,NULL, NULL, NULL, NULL, NULL,
lpush6, lpop6, slponum,NULL, NULL, NULL, NULL, NULL,
lpush7, lpop7, NULL, NULL, NULL, NULL, NULL, NULL )
};

View File

@ -1,32 +0,0 @@
/* ----------------------------------------------------------------------------
* ergoDOX : layout : COLEMAK : exports
*
* Submitted by Jason Trill [jjt] (https://github.com/jjt)
* ----------------------------------------------------------------------------
* Copyright (c) 2012 Ben Blazak <benblazak.dev@gmail.com>
* Released under The MIT License (MIT) (see "license.md")
* Project located at <https://github.com/benblazak/ergodox-firmware>
* ------------------------------------------------------------------------- */
#ifndef KEYBOARD__ERGODOX__LAYOUT__COLEMAK_h
#define KEYBOARD__ERGODOX__LAYOUT__COLEMAK_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

View File

@ -1,370 +0,0 @@
/* ----------------------------------------------------------------------------
* ergoDOX layout : Dvorak (modified from the Kinesis layout)
* ----------------------------------------------------------------------------
* Copyright (c) 2012 Ben Blazak <benblazak.dev@gmail.com>
* Released under The MIT License (MIT) (see "license.md")
* Project located at <https://github.com/benblazak/ergodox-firmware>
* ------------------------------------------------------------------------- */
#include <stdint.h>
#include <stddef.h>
#include <avr/pgmspace.h>
#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"
// ----------------------------------------------------------------------------
// ----------------------------------------------------------------------------
const uint8_t PROGMEM _kb_layout[KB_LAYERS][KB_ROWS][KB_COLUMNS] = {
KB_MATRIX_LAYER( // layout: layer 0: default
// unused
0,
// left hand
_equal, _1, _2, _3, _4, _5, _esc,
_backslash, _quote, _comma, _period, _P, _Y, 1,
_tab, _A, _O, _E, _U, _I,
_shiftL, _semicolon, _Q, _J, _K, _X, 1,
_guiL, _grave, _backslash, _arrowL, _arrowR,
_ctrlL, _altL,
0, 0, _home,
_bs, _del, _end,
// right hand
3, _6, _7, _8, _9, _0, _dash,
_bracketL, _F, _G, _C, _R, _L, _bracketR,
_D, _H, _T, _N, _S, _slash,
1, _B, _M, _W, _V, _Z, _shiftR,
_arrowL, _arrowD, _arrowU, _arrowR, _guiR,
_altR, _ctrlR,
_pageU, 0, 0,
_pageD, _enter, _space ),
KB_MATRIX_LAYER( // layout: layer 1: function and symbol keys
// unused
0,
// left hand
0, _F1, _F2, _F3, _F4, _F5, _F11,
0, _bracketL, _bracketR, _bracketL, _bracketR, 0, 1,
0, _semicolon, _slash, _dash, _0_kp,_semicolon,
0, _6_kp, _7_kp, _8_kp, _9_kp, _equal, 2,
0, 0, 0, 0, 0,
0, 0,
0, 0, 0,
0, 0, 0,
// right hand
_F12, _F6, _F7, _F8, _F9, _F10, _power,
0, 0, _dash, _comma, _period,_currencyUnit, _volumeU,
_backslash, _1_kp, _9, _0, _equal, _volumeD,
2, _8, _2_kp, _3_kp, _4_kp, _5_kp, _mute,
0, 0, 0, 0, 0,
0, 0,
0, 0, 0,
0, 0, 0 ),
KB_MATRIX_LAYER( // layout: layer 2: keyboard functions
// unused
0,
// left hand
0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0,
0, 0,
0, 0, 0,
0, 0, 0,
// right hand
0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0,
0, 0,
0, 0, 0,
0, 0, 0 ),
KB_MATRIX_LAYER( // layout: layer 3: numpad
// unused
0,
// left hand
0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0,
0, _insert, 0, 0, 0,
0, 0,
0, 0, 0,
0, 0, 0,
// right hand
3, 0, 3, _equal_kp, _div_kp, _mul_kp, 0,
0, 0, _7_kp, _8_kp, _9_kp, _sub_kp, 0,
0, _4_kp, _5_kp, _6_kp, _add_kp, 0,
0, 0, _1_kp, _2_kp, _3_kp, _enter_kp, 0,
0, 0, _period, _enter_kp, 0,
0, 0,
0, 0, 0,
0, 0, _0_kp ),
};
// ----------------------------------------------------------------------------
// ----------------------------------------------------------------------------
// aliases
// basic
#define kprrel &kbfun_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 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
// ----------------------------------------------------------------------------
// ----------------------------------------------------------------------------
const void_funptr_t PROGMEM _kb_layout_press[KB_LAYERS][KB_ROWS][KB_COLUMNS] = {
KB_MATRIX_LAYER( // press: layer 0: default
// unused
NULL,
// left hand
kprrel, kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
kprrel, kprrel, kprrel, kprrel, kprrel, kprrel, lpush1,
kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
s2kcap, kprrel, kprrel, kprrel, kprrel, kprrel, lpush1,
kprrel, kprrel, kprrel, kprrel, kprrel,
kprrel, kprrel,
NULL, NULL, kprrel,
kprrel, kprrel, kprrel,
// right hand
slpunum, kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
kprrel, kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
lpush1, kprrel, kprrel, kprrel, kprrel, kprrel, s2kcap,
kprrel, kprrel, kprrel, kprrel, kprrel,
kprrel, kprrel,
kprrel, NULL, NULL,
kprrel, kprrel, kprrel ),
KB_MATRIX_LAYER( // press: layer 1: function and symbol keys
// unused
NULL,
// left hand
NULL, kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
ktrans,sshprre,sshprre, kprrel, kprrel, NULL, lpop1,
ktrans, kprrel, kprrel, kprrel, kprrel,sshprre,
ktrans, kprrel, kprrel, kprrel, kprrel,sshprre, lpush2,
ktrans, ktrans, ktrans, ktrans, ktrans,
ktrans, ktrans,
ktrans, ktrans, ktrans,
ktrans, ktrans, ktrans,
// right hand
kprrel, kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
ktrans, NULL, kprrel,sshprre,sshprre, kprrel, kprrel,
kprrel, kprrel,sshprre,sshprre,sshprre, kprrel,
lpush2,sshprre, kprrel, kprrel, kprrel, kprrel, kprrel,
ktrans, ktrans, ktrans, ktrans, ktrans,
ktrans, ktrans,
ktrans, ktrans, ktrans,
ktrans, ktrans, ktrans ),
KB_MATRIX_LAYER( // press: layer 2: keyboard functions
// unused
NULL,
// left hand
dbtldr, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL,
NULL, NULL,
NULL, NULL, NULL,
NULL, NULL, NULL,
// right hand
NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL,
NULL, NULL,
NULL, NULL, NULL,
NULL, NULL, NULL ),
KB_MATRIX_LAYER( // press: layer 3: numpad
// unused
NULL,
// left hand
ktrans, ktrans, ktrans, ktrans, ktrans, ktrans, ktrans,
ktrans, ktrans, ktrans, ktrans, ktrans, ktrans, ktrans,
ktrans, ktrans, ktrans, ktrans, ktrans, ktrans,
ktrans, ktrans, ktrans, ktrans, ktrans, ktrans, ktrans,
ktrans, kprrel, ktrans, ktrans, ktrans,
ktrans, ktrans,
ktrans, ktrans, ktrans,
ktrans, ktrans, ktrans,
// right hand
slponum, ktrans,slponum, kprrel, kprrel, kprrel, ktrans,
ktrans, ktrans, kprrel, kprrel, kprrel, kprrel, ktrans,
ktrans, kprrel, kprrel, kprrel, kprrel, ktrans,
ktrans, ktrans, kprrel, kprrel, kprrel, kprrel, ktrans,
ktrans, ktrans, kprrel, kprrel, ktrans,
ktrans, ktrans,
ktrans, ktrans, ktrans,
ktrans, ktrans, kprrel ),
};
// ----------------------------------------------------------------------------
// ----------------------------------------------------------------------------
const void_funptr_t PROGMEM _kb_layout_release[KB_LAYERS][KB_ROWS][KB_COLUMNS] = {
KB_MATRIX_LAYER( // release: layer 0: default
// unused
NULL,
// left hand
kprrel, kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
kprrel, kprrel, kprrel, kprrel, kprrel, kprrel, NULL,
kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
s2kcap, kprrel, kprrel, kprrel, kprrel, kprrel, lpop1,
kprrel, kprrel, kprrel, kprrel, kprrel,
kprrel, kprrel,
NULL, NULL, kprrel,
kprrel, kprrel, kprrel,
// right hand
NULL, kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
kprrel, kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
lpop1, kprrel, kprrel, kprrel, kprrel, kprrel, s2kcap,
kprrel, kprrel, kprrel, kprrel, kprrel,
kprrel, kprrel,
kprrel, NULL, NULL,
kprrel, kprrel, kprrel ),
KB_MATRIX_LAYER( // release: layer 1: function and symbol keys
// unused
NULL,
// left hand
NULL, kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
ktrans,sshprre,sshprre, kprrel, kprrel, NULL, NULL,
ktrans, kprrel, kprrel, kprrel, kprrel,sshprre,
ktrans, kprrel, kprrel, kprrel, kprrel,sshprre, lpop2,
ktrans, ktrans, ktrans, ktrans, ktrans,
ktrans, ktrans,
ktrans, ktrans, ktrans,
ktrans, ktrans, ktrans,
// right hand
kprrel, kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
ktrans, NULL, kprrel,sshprre,sshprre, kprrel, kprrel,
kprrel, kprrel,sshprre,sshprre,sshprre, kprrel,
lpop2,sshprre, kprrel, kprrel, kprrel, kprrel, kprrel,
ktrans, ktrans, ktrans, ktrans, ktrans,
ktrans, ktrans,
ktrans, ktrans, ktrans,
ktrans, ktrans, ktrans ),
KB_MATRIX_LAYER( // release: layer 2: keyboard functions
// unused
NULL,
// left hand
NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL,
NULL, NULL,
NULL, NULL, NULL,
NULL, NULL, NULL,
// right hand
NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL,
NULL, NULL,
NULL, NULL, NULL,
NULL, NULL, NULL ),
KB_MATRIX_LAYER( // release: layer 3: numpad
// unused
NULL,
// left hand
ktrans, ktrans, ktrans, ktrans, ktrans, ktrans, ktrans,
ktrans, ktrans, ktrans, ktrans, ktrans, ktrans, ktrans,
ktrans, ktrans, ktrans, ktrans, ktrans, ktrans,
ktrans, ktrans, ktrans, ktrans, ktrans, ktrans, ktrans,
ktrans, kprrel, ktrans, ktrans, ktrans,
ktrans, ktrans,
ktrans, ktrans, ktrans,
ktrans, ktrans, ktrans,
// right hand
NULL, ktrans, NULL, kprrel, kprrel, kprrel, ktrans,
ktrans, ktrans, kprrel, kprrel, kprrel, kprrel, ktrans,
ktrans, kprrel, kprrel, kprrel, kprrel, ktrans,
ktrans, ktrans, kprrel, kprrel, kprrel, kprrel, ktrans,
ktrans, ktrans, kprrel, kprrel, ktrans,
ktrans, ktrans,
ktrans, ktrans, ktrans,
ktrans, ktrans, kprrel ),
KB_MATRIX_LAYER( // release: layer 3: nothing (just making sure unused
// functions don't get compiled out)
// unused
NULL,
// other
kprrel, lpush8, lpop8, NULL, NULL, NULL, NULL, NULL,
ktog, lpush9, lpop9, NULL, NULL, NULL, NULL, NULL,
ktrans,lpush10, lpop10, NULL, NULL, NULL, NULL, NULL,
lpush1, lpop1, NULL, NULL, NULL, NULL, NULL, NULL,
lpush2, lpop2, dbtldr, NULL, NULL, NULL, NULL, NULL,
lpush3, lpop3, NULL, NULL, NULL, NULL, NULL, NULL,
lpush4, lpop4, s2kcap, NULL, NULL, NULL, NULL, NULL,
lpush5, lpop5,slpunum, NULL, NULL, NULL, NULL, NULL,
lpush6, lpop6,slponum, NULL, NULL, NULL, NULL, NULL,
lpush7, lpop7, NULL, NULL, NULL, NULL, NULL, NULL )
};

View File

@ -1,30 +0,0 @@
/* ----------------------------------------------------------------------------
* ergoDOX : layout : Dvorak : exports
* ----------------------------------------------------------------------------
* Copyright (c) 2012 Ben Blazak <benblazak.dev@gmail.com>
* Released under The MIT License (MIT) (see "license.md")
* Project located at <https://github.com/benblazak/ergodox-firmware>
* ------------------------------------------------------------------------- */
#ifndef KEYBOARD__ERGODOX__LAYOUT__DVORAK_h
#define KEYBOARD__ERGODOX__LAYOUT__DVORAK_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

View File

@ -1,370 +0,0 @@
/* ----------------------------------------------------------------------------
* ergoDOX layout : QWERTY (modified from the Kinesis layout)
* ----------------------------------------------------------------------------
* Copyright (c) 2012 Ben Blazak <benblazak.dev@gmail.com>
* Released under The MIT License (MIT) (see "license.md")
* Project located at <https://github.com/benblazak/ergodox-firmware>
* ------------------------------------------------------------------------- */
#include <stdint.h>
#include <stddef.h>
#include <avr/pgmspace.h>
#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"
// ----------------------------------------------------------------------------
// ----------------------------------------------------------------------------
const uint8_t PROGMEM _kb_layout[KB_LAYERS][KB_ROWS][KB_COLUMNS] = {
KB_MATRIX_LAYER( // layout: layer 0: default
// unused
0,
// left hand
_equal, _1, _2, _3, _4, _5, _esc,
_backslash, _Q, _W, _E, _R, _T, 1,
_tab, _A, _S, _D, _F, _G,
_shiftL, _Z, _X, _C, _V, _B, 1,
_guiL, _grave, _backslash, _arrowL, _arrowR,
_ctrlL, _altL,
0, 0, _home,
_bs, _del, _end,
// right hand
3, _6, _7, _8, _9, _0, _dash,
_bracketL, _Y, _U, _I, _O, _P, _bracketR,
_H, _J, _K, _L, _semicolon, _quote,
1, _N, _M, _comma, _period, _slash, _shiftR,
_arrowL, _arrowD, _arrowU, _arrowR, _guiR,
_altR, _ctrlR,
_pageU, 0, 0,
_pageD, _enter, _space ),
KB_MATRIX_LAYER( // layout: layer 1: function and symbol keys
// unused
0,
// left hand
0, _F1, _F2, _F3, _F4, _F5, _F11,
0, _bracketL, _bracketR, _bracketL, _bracketR, 0, 1,
0, _semicolon, _slash, _dash, _0_kp,_semicolon,
0, _6_kp, _7_kp, _8_kp, _9_kp, _equal, 2,
0, 0, 0, 0, 0,
0, 0,
0, 0, 0,
0, 0, 0,
// right hand
_F12, _F6, _F7, _F8, _F9, _F10, _power,
0, 0, _dash, _comma, _period,_currencyUnit, _volumeU,
_backslash, _1_kp, _9, _0, _equal, _volumeD,
2, _8, _2_kp, _3_kp, _4_kp, _5_kp, _mute,
0, 0, 0, 0, 0,
0, 0,
0, 0, 0,
0, 0, 0 ),
KB_MATRIX_LAYER( // layout: layer 2: keyboard functions
// unused
0,
// left hand
0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0,
0, 0,
0, 0, 0,
0, 0, 0,
// right hand
0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0,
0, 0,
0, 0, 0,
0, 0, 0 ),
KB_MATRIX_LAYER( // layout: layer 3: numpad
// unused
0,
// left hand
0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0,
0, _insert, 0, 0, 0,
0, 0,
0, 0, 0,
0, 0, 0,
// right hand
3, 0, 3, _equal_kp, _div_kp, _mul_kp, 0,
0, 0, _7_kp, _8_kp, _9_kp, _sub_kp, 0,
0, _4_kp, _5_kp, _6_kp, _add_kp, 0,
0, 0, _1_kp, _2_kp, _3_kp, _enter_kp, 0,
0, 0, _period, _enter_kp, 0,
0, 0,
0, 0, 0,
0, 0, _0_kp ),
};
// ----------------------------------------------------------------------------
// ----------------------------------------------------------------------------
// aliases
// basic
#define kprrel &kbfun_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 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
// ----------------------------------------------------------------------------
// ----------------------------------------------------------------------------
const void_funptr_t PROGMEM _kb_layout_press[KB_LAYERS][KB_ROWS][KB_COLUMNS] = {
KB_MATRIX_LAYER( // press: layer 0: default
// unused
NULL,
// left hand
kprrel, kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
kprrel, kprrel, kprrel, kprrel, kprrel, kprrel, lpush1,
kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
s2kcap, kprrel, kprrel, kprrel, kprrel, kprrel, lpush1,
kprrel, kprrel, kprrel, kprrel, kprrel,
kprrel, kprrel,
NULL, NULL, kprrel,
kprrel, kprrel, kprrel,
// right hand
slpunum, kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
kprrel, kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
lpush1, kprrel, kprrel, kprrel, kprrel, kprrel, s2kcap,
kprrel, kprrel, kprrel, kprrel, kprrel,
kprrel, kprrel,
kprrel, NULL, NULL,
kprrel, kprrel, kprrel ),
KB_MATRIX_LAYER( // press: layer 1: function and symbol keys
// unused
NULL,
// left hand
NULL, kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
ktrans,sshprre,sshprre, kprrel, kprrel, NULL, lpop1,
ktrans, kprrel, kprrel, kprrel, kprrel,sshprre,
ktrans, kprrel, kprrel, kprrel, kprrel,sshprre, lpush2,
ktrans, ktrans, ktrans, ktrans, ktrans,
ktrans, ktrans,
ktrans, ktrans, ktrans,
ktrans, ktrans, ktrans,
// right hand
kprrel, kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
ktrans, NULL, kprrel,sshprre,sshprre, kprrel, kprrel,
kprrel, kprrel,sshprre,sshprre,sshprre, kprrel,
lpush2,sshprre, kprrel, kprrel, kprrel, kprrel, kprrel,
ktrans, ktrans, ktrans, ktrans, ktrans,
ktrans, ktrans,
ktrans, ktrans, ktrans,
ktrans, ktrans, ktrans ),
KB_MATRIX_LAYER( // press: layer 2: keyboard functions
// unused
NULL,
// left hand
dbtldr, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL,
NULL, NULL,
NULL, NULL, NULL,
NULL, NULL, NULL,
// right hand
NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL,
NULL, NULL,
NULL, NULL, NULL,
NULL, NULL, NULL ),
KB_MATRIX_LAYER( // press: layer 3: numpad
// unused
NULL,
// left hand
ktrans, ktrans, ktrans, ktrans, ktrans, ktrans, ktrans,
ktrans, ktrans, ktrans, ktrans, ktrans, ktrans, ktrans,
ktrans, ktrans, ktrans, ktrans, ktrans, ktrans,
ktrans, ktrans, ktrans, ktrans, ktrans, ktrans, ktrans,
ktrans, kprrel, ktrans, ktrans, ktrans,
ktrans, ktrans,
ktrans, ktrans, ktrans,
ktrans, ktrans, ktrans,
// right hand
slponum, ktrans,slponum, kprrel, kprrel, kprrel, ktrans,
ktrans, ktrans, kprrel, kprrel, kprrel, kprrel, ktrans,
ktrans, kprrel, kprrel, kprrel, kprrel, ktrans,
ktrans, ktrans, kprrel, kprrel, kprrel, kprrel, ktrans,
ktrans, ktrans, kprrel, kprrel, ktrans,
ktrans, ktrans,
ktrans, ktrans, ktrans,
ktrans, ktrans, kprrel ),
};
// ----------------------------------------------------------------------------
// ----------------------------------------------------------------------------
const void_funptr_t PROGMEM _kb_layout_release[KB_LAYERS][KB_ROWS][KB_COLUMNS] = {
KB_MATRIX_LAYER( // release: layer 0: default
// unused
NULL,
// left hand
kprrel, kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
kprrel, kprrel, kprrel, kprrel, kprrel, kprrel, NULL,
kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
s2kcap, kprrel, kprrel, kprrel, kprrel, kprrel, lpop1,
kprrel, kprrel, kprrel, kprrel, kprrel,
kprrel, kprrel,
NULL, NULL, kprrel,
kprrel, kprrel, kprrel,
// right hand
NULL, kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
kprrel, kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
lpop1, kprrel, kprrel, kprrel, kprrel, kprrel, s2kcap,
kprrel, kprrel, kprrel, kprrel, kprrel,
kprrel, kprrel,
kprrel, NULL, NULL,
kprrel, kprrel, kprrel ),
KB_MATRIX_LAYER( // release: layer 1: function and symbol keys
// unused
NULL,
// left hand
NULL, kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
ktrans,sshprre,sshprre, kprrel, kprrel, NULL, NULL,
ktrans, kprrel, kprrel, kprrel, kprrel,sshprre,
ktrans, kprrel, kprrel, kprrel, kprrel,sshprre, lpop2,
ktrans, ktrans, ktrans, ktrans, ktrans,
ktrans, ktrans,
ktrans, ktrans, ktrans,
ktrans, ktrans, ktrans,
// right hand
kprrel, kprrel, kprrel, kprrel, kprrel, kprrel, kprrel,
ktrans, NULL, kprrel,sshprre,sshprre, kprrel, kprrel,
kprrel, kprrel,sshprre,sshprre,sshprre, kprrel,
lpop2,sshprre, kprrel, kprrel, kprrel, kprrel, kprrel,
ktrans, ktrans, ktrans, ktrans, ktrans,
ktrans, ktrans,
ktrans, ktrans, ktrans,
ktrans, ktrans, ktrans ),
KB_MATRIX_LAYER( // release: layer 2: keyboard functions
// unused
NULL,
// left hand
NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL,
NULL, NULL,
NULL, NULL, NULL,
NULL, NULL, NULL,
// right hand
NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL,
NULL, NULL,
NULL, NULL, NULL,
NULL, NULL, NULL ),
KB_MATRIX_LAYER( // release: layer 3: numpad
// unused
NULL,
// left hand
ktrans, ktrans, ktrans, ktrans, ktrans, ktrans, ktrans,
ktrans, ktrans, ktrans, ktrans, ktrans, ktrans, ktrans,
ktrans, ktrans, ktrans, ktrans, ktrans, ktrans,
ktrans, ktrans, ktrans, ktrans, ktrans, ktrans, ktrans,
ktrans, kprrel, ktrans, ktrans, ktrans,
ktrans, ktrans,
ktrans, ktrans, ktrans,
ktrans, ktrans, ktrans,
// right hand
NULL, ktrans, NULL, kprrel, kprrel, kprrel, ktrans,
ktrans, ktrans, kprrel, kprrel, kprrel, kprrel, ktrans,
ktrans, kprrel, kprrel, kprrel, kprrel, ktrans,
ktrans, ktrans, kprrel, kprrel, kprrel, kprrel, ktrans,
ktrans, ktrans, kprrel, kprrel, ktrans,
ktrans, ktrans,
ktrans, ktrans, ktrans,
ktrans, ktrans, kprrel ),
KB_MATRIX_LAYER( // release: layer 3: nothing (just making sure unused
// functions don't get compiled out)
// unused
NULL,
// other
kprrel, lpush8, lpop8, NULL, NULL, NULL, NULL, NULL,
ktog, lpush9, lpop9, NULL, NULL, NULL, NULL, NULL,
ktrans,lpush10, lpop10, NULL, NULL, NULL, NULL, NULL,
lpush1, lpop1, NULL, NULL, NULL, NULL, NULL, NULL,
lpush2, lpop2, dbtldr, NULL, NULL, NULL, NULL, NULL,
lpush3, lpop3, NULL, NULL, NULL, NULL, NULL, NULL,
lpush4, lpop4, s2kcap, NULL, NULL, NULL, NULL, NULL,
lpush5, lpop5,slpunum, NULL, NULL, NULL, NULL, NULL,
lpush6, lpop6,slponum, NULL, NULL, NULL, NULL, NULL,
lpush7, lpop7, NULL, NULL, NULL, NULL, NULL, NULL )
};

View File

@ -1,30 +0,0 @@
/* ----------------------------------------------------------------------------
* ergoDOX : layout : QWERTY : exports
* ----------------------------------------------------------------------------
* Copyright (c) 2012 Ben Blazak <benblazak.dev@gmail.com>
* Released under The MIT License (MIT) (see "license.md")
* Project located at <https://github.com/benblazak/ergodox-firmware>
* ------------------------------------------------------------------------- */
#ifndef KEYBOARD__ERGODOX__LAYOUT__QWERTY_h
#define KEYBOARD__ERGODOX__LAYOUT__QWERTY_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

View File

@ -1,978 +0,0 @@
/* ----------------------------------------------------------------------------
* ergoDOX layout : Workman-P (modified from the Kinesis layout)
* -----------------------------------------------------------------------------
* Copyright (c) 2012 Ben Blazak <benblazak.dev@gmail.com>
* Released under The MIT License (MIT) (see "license.md")
* Project located at <https://github.com/benblazak/ergodox-firmware>
* -------------------------------------------------------------------------- */
// TODO: there is a bug where if you hit an inverted key and a normal key, at
// the same time, when the 6 key buffer and modifier states are sent the
// inverted key's shift state can be used for the non-inverted key.
// Example: hit 1 and q at the same time in workman-p, you may end up with "!Q"
// instead of "!q". Not sure how to fix this at present, but it may require
// sending two frames of updates to properly denote an order (shifted in one
// update, unshifted added in another, as though shift was released).
#include <stdint.h>
#include <stddef.h>
#include <avr/pgmspace.h>
#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"
#include "../../../main.h"
#define USING_WORKMAN_P // undef to use standard workman
// convenience macros
#define LAYER main_arg_layer
#define LAYER_OFFSET main_arg_layer_offset
#define ROW main_arg_row
#define COL main_arg_col
#define IS_PRESSED main_arg_is_pressed
#define WAS_PRESSED main_arg_was_pressed
// 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();
}
static uint8_t inverted_keys_pressed;
static bool physical_lshift_pressed;
static bool physical_rshift_pressed;
void invert_shift_state() {
// make lshift's state the inverted shift stated
_kbfun_press_release(!(physical_lshift_pressed|physical_rshift_pressed), KEY_LeftShift);
// release rshift
_kbfun_press_release(false, KEY_RightShift);
}
void restore_shift_state() {
// restore the state of left and right shift
_kbfun_press_release(physical_lshift_pressed, KEY_LeftShift);
_kbfun_press_release(physical_rshift_pressed, KEY_RightShift);
}
/*
* [name]
* Invert shift + press|release
*
* [description]
* Generate a 'shift' press or release before the normal keypress or
* key release if shift is not pressed. Generate a normal keypress or
* key release if shift is pressed.
*/
void kbfun_invert_shift_press_release(void) {
if (IS_PRESSED) {
++inverted_keys_pressed;
invert_shift_state();
}
kbfun_press_release();
if (!IS_PRESSED) {
// if this is the last key we're releasing
if (inverted_keys_pressed == 1) {
restore_shift_state();
}
// avoid underflow
if (inverted_keys_pressed) {
--inverted_keys_pressed;
}
}
}
/*
* [name]
* Shift state fix + press|release
*
* [description]
* If no inverted keys are pressed, simply perform a press and release.
* If inverted keys are pressed, fix the shift state back to that of the
* physical keys before pressing the key.
*/
void kbfun_fix_shifted_press_release(void) {
uint8_t keycode = kb_layout_get(LAYER, ROW, COL);
switch (keycode) {
// shift state toggles
case KEY_LeftShift:
physical_lshift_pressed = IS_PRESSED;
break;
case KEY_RightShift:
physical_rshift_pressed = IS_PRESSED;
break;
// Keys which don't break it
case KEY_CapsLock:
case KEYPAD_NumLock_Clear:
kbfun_press_release();
return;
default:
// If we're not just changing the modifier, we need our true shift state.
if (inverted_keys_pressed) {
inverted_keys_pressed = 0;
restore_shift_state();
}
kbfun_press_release();
return;
}
// We only get here if we pressed left or right shift
if (inverted_keys_pressed) {
invert_shift_state();
} else {
kbfun_press_release();
}
}
// DEFINITIONS ----------------------------------------------------------------
// basic
#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
// custom
#ifdef USING_WORKMAN_P
#define sinvert &kbfun_invert_shift_press_release
#define kprrel &kbfun_fix_shifted_press_release
#else
#define kprrel &kbfun_press_release
#define sinvert &kbfun_press_release
#endif
// ----------------------------------------------------------------------------
// 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*/ MEDIAKEY_AUDIO_VOL_UP, MEDIAKEY_AUDIO_VOL_DOWN, MEDIAKEY_AUDIO_MUTE, 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, sinvert, sinvert, sinvert, sinvert, sinvert, 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, sinvert, sinvert, sinvert, sinvert, sinvert, 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*/ mprrel, mprrel, mprrel, 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, sinvert, sinvert, sinvert, sinvert, sinvert, 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, sinvert, sinvert, sinvert, sinvert, sinvert, 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, 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*/ mprrel, mprrel, mprrel, ktrans, NULL,
// 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
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
),
};
// ----------------------------------------------------------------------------

View File

@ -1,30 +0,0 @@
/* ----------------------------------------------------------------------------
* ergoDOX : layout : Workman-P : exports
* ----------------------------------------------------------------------------
* Copyright (c) 2012 Ben Blazak <benblazak.dev@gmail.com>
* Released under The MIT License (MIT) (see "license.md")
* Project located at <https://github.com/benblazak/ergodox-firmware>
* ------------------------------------------------------------------------- */
#ifndef KEYBOARD__ERGODOX__LAYOUT__WORKMAN_P_h
#define KEYBOARD__ERGODOX__LAYOUT__WORKMAN_P_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