tmk_keyboard/keyboard/ergodox/keymap_cub.h

241 lines
9.9 KiB
C
Raw Normal View History

2013-08-10 22:57:01 +03:00
static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Keymap 0: Default Layer
*
* ,--------------------------------------------------. ,--------------------------------------------------.
* | ~ | 1 | 2 | 3 | 4 | 5 | \ | | ' | 6 | 7 | 8 | 9 | 0 | = |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | Tab | Q | W | E | R | T | ~Fn1 | | ~Fn3 | Y | U | I | O | P | [ |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | LShift | A | S | D | F | G |------| |------| H | J | K | L | ; | RShift |
* |--------+------+------+------+------+------| Fn0 | | ~Fn4 |------+------+------+------+------+--------|
* | LCtrl | Z | X | C | V | B | | | | N | M | , | . | / | RCtrl |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* | ~Fn1 | ~Fn2 | Caps | LAlt | LGui | | Lft | Up | Dn | Rght | ~Fn4 |
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
* | +Fn2 | Home | | PgUp | Del |
* ,------|------|------| |------+------+------.
* | | | End | | PgDn | | |
* | BkSp | ESC |------| |------| Enter| Space|
* | | | Spc | | Ins | | |
* `--------------------' `--------------------'
*/
KEYMAP( // layout: layer 0: default
// left hand
GRV, 1, 2, 3, 4, 5, BSLS,
TAB, Q, W, E, R, T, FN1,
LSFT,A, S, D, F, G,
LCTL,Z, X, C, V, B, FN0,
FN1, FN6, CAPS,LALT,LGUI,
FN2, HOME,
END,
2013-09-05 00:03:22 +03:00
FN8, FN9, FN10,
2013-08-10 22:57:01 +03:00
// right hand
QUOT,6, 7, 8, 9, 0, EQL,
FN3, Y, U, I, O, P, LBRC,
FN16,J, K, L, SCLN,FN14,
FN4, N, M, COMM,DOT, SLSH,FN15,
2013-08-10 22:57:01 +03:00
LEFT,UP, DOWN,RGHT,FN4,
PGUP,DEL,
PGDN,
2013-09-05 00:03:22 +03:00
FN11,FN12,FN13
2013-08-10 22:57:01 +03:00
),
KEYMAP( // layout: layer 1: F-keys instead of numbers
// left hand
TRNS,F1, F2, F3, F4, F5, F6,
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,
2013-09-05 00:03:22 +03:00
TRNS,TRNS,TRNS,TRNS,TRNS,
2013-08-10 22:57:01 +03:00
TRNS,TRNS,
TRNS,
2013-09-05 00:03:22 +03:00
TRNS,TRNS,TRNS,
2013-08-10 22:57:01 +03:00
// right hand
2013-09-05 00:03:22 +03:00
F7, F8, F9, F10, F11, F12, TRNS,
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,
2013-08-10 22:57:01 +03:00
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,
2013-09-05 00:03:22 +03:00
TRNS,TRNS,TRNS,TRNS,TRNS,
2013-08-10 22:57:01 +03:00
TRNS,TRNS,
TRNS,
2013-09-05 00:03:22 +03:00
TRNS,TRNS,TRNS
2013-08-10 22:57:01 +03:00
),
KEYMAP( // layout: layer 2: mouse + numpad
// left hand
TRNS,NO, NO, NO, NO, PAUS,PSCR,
TRNS,WH_L,WH_U,WH_D,WH_R,BTN2,TRNS,
TRNS,MS_L,MS_U,MS_D,MS_R,BTN1,
TRNS,NO, NO, NO, NO, BTN3,TRNS,
TRNS,TRNS,TRNS,TRNS,TRNS,
TRNS,TRNS,
TRNS,
TRNS,TRNS,TRNS,
// right hand
SLCK,NLCK,PSLS,PAST,PAST,PMNS,BSPC,
TRNS,NO, P7, P8, P9, PMNS,BSPC,
TRNS,P4, P5, P6, PPLS,PENT,
2013-08-10 22:57:01 +03:00
TRNS,NO, P1, P2, P3, PPLS,PENT,
P0, PDOT,SLSH,PENT,PENT,
TRNS,TRNS,
TRNS,
TRNS,TRNS,TRNS
),
KEYMAP( // layout: layer 3: F-keys only
// left hand
TRNS,NO, NO, NO, NO, NO, NO,
TRNS,F13, F14, F15, F16, NO, TRNS,
TRNS,F17, F18, F19, F20, NO,
TRNS,F21, F22, F23, F24, NO, TRNS,
2013-09-05 00:03:22 +03:00
TRNS,TRNS,TRNS,TRNS,TRNS,
2013-08-10 22:57:01 +03:00
TRNS,TRNS,
TRNS,
2013-09-05 00:03:22 +03:00
TRNS,TRNS,TRNS,
2013-08-10 22:57:01 +03:00
// right hand
NO, NO, NO, NO, NO, NO, TRNS,
TRNS,NO, F1, F2, F3, F4, TRNS,
NO, F5, F6, F7, F8, TRNS,
TRNS,NO, F9, F10, F11, F12, TRNS,
2013-09-05 00:03:22 +03:00
TRNS,TRNS,TRNS,TRNS,TRNS,
2013-08-10 22:57:01 +03:00
TRNS,TRNS,
TRNS,
2013-09-05 00:03:22 +03:00
TRNS,TRNS,TRNS
2013-08-10 22:57:01 +03:00
),
KEYMAP( // layout: layer 4: F-keys + cursor
// left hand
TRNS,F1, F2, F3, F4, F5, F6,
FN7, NO, PGUP,UP, PGDN,PGUP,TRNS,
TRNS,NO, LEFT,DOWN,RGHT,PGDN,
TRNS,NO, NO, END, HOME,NO, TRNS,
2013-09-05 00:03:22 +03:00
FN5, TRNS,TRNS,TRNS,TRNS,
2013-08-10 22:57:01 +03:00
TRNS,TRNS,
TRNS,
2013-09-05 00:03:22 +03:00
TRNS,TRNS,TRNS,
2013-08-10 22:57:01 +03:00
// right hand
F7, F8, F9, F10, F11, F12, MINS,
TRNS,PGUP,PGUP,UP, PGDN,NO, FN7,
PGDN,LEFT,DOWN,RGHT,NO, TRNS,
TRNS,NO, HOME,END, NO, NO, TRNS,
2013-09-05 00:03:22 +03:00
TRNS,TRNS,TRNS,TRNS,TRNS,
2013-08-10 22:57:01 +03:00
TRNS,TRNS,
TRNS,
2013-09-05 00:03:22 +03:00
TRNS,TRNS,TRNS
2013-08-10 22:57:01 +03:00
),
KEYMAP( // layout: layer 5: Workman layout
// left hand
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,
TRNS,Q, D, R, W, B, TRNS,
TRNS,A, S, H, T, G,
TRNS,Z, X, M, C, V, TRNS,
TRNS,TRNS,TRNS,TRNS,TRNS,
TRNS,TRNS,
TRNS,
TRNS,TRNS,TRNS,
// right hand
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,
TRNS,J, F, U, P, 4, TRNS,
Y, N, E, O, I, TRNS,
TRNS,K, L, TRNS,TRNS,TRNS,TRNS,
TRNS,TRNS,TRNS,TRNS,TRNS,
TRNS,TRNS,
TRNS,
TRNS,TRNS,TRNS
),
/*
2013-09-05 00:03:22 +03:00
// templates to copy from
2013-08-10 22:57:01 +03:00
KEYMAP( // layout: layer N: transparent on edges, all others are empty
// left hand
TRNS,NO, NO, NO, NO, NO, NO,
TRNS,NO, NO, NO, NO, NO, TRNS,
TRNS,NO, NO, NO, NO, NO,
TRNS,NO, NO, NO, NO, NO, TRNS,
TRNS,TRNS,TRNS,LALT,LGUI,
TRNS,TRNS,
TRNS,
LCTL,LSFT,TRNS,
// right hand
NO, NO, NO, NO, NO, NO, TRNS,
TRNS,NO, NO, NO, NO, NO, TRNS,
NO, NO, NO, NO, NO, TRNS,
TRNS,NO, NO, NO, NO, NO, TRNS,
RGUI,RALT,TRNS,TRNS,TRNS,
TRNS,TRNS,
TRNS,
TRNS,RSFT,RCTL
),
KEYMAP( // layout: layer N: fully transparent
// left hand
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,
TRNS,TRNS,TRNS,TRNS,TRNS,
TRNS,TRNS,
TRNS,
TRNS,TRNS,TRNS,
// right hand
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,
TRNS,TRNS,TRNS,TRNS,TRNS,
TRNS,TRNS,
TRNS,
TRNS,TRNS,TRNS
),
*/
};
/* id for user defined functions */
enum function_id {
TEENSY_KEY,
};
/*
* Fn action definition
*/
static const uint16_t PROGMEM fn_actions[] = {
2013-09-05 00:03:22 +03:00
ACTION_LAYER_SET(0, ON_BOTH), // FN0 - switch to Layer0
2013-08-10 22:57:01 +03:00
ACTION_LAYER_MOMENTARY(1), // FN1 - push Layer1
2013-09-05 00:03:22 +03:00
ACTION_LAYER_SET(2, ON_BOTH), // FN2 - switch to Layer2
2013-08-10 22:57:01 +03:00
ACTION_LAYER_MOMENTARY(3), // FN3 - push Layer3
ACTION_LAYER_MOMENTARY(4), // FN4 - push Layer4
2013-09-05 00:03:22 +03:00
ACTION_LAYER_SET(5, ON_BOTH), // FN5 - switch to Layer5
2013-08-10 22:57:01 +03:00
ACTION_LAYER_MOMENTARY(2), // FN6 - push Layer2
ACTION_FUNCTION(TEENSY_KEY), // FN7 - Teensy key
2013-09-05 00:03:22 +03:00
ACTION_MODS_TAP_KEY(MOD_LCTL, KC_BSPC), // FN8 = LShift with tap BackSpace
ACTION_MODS_TAP_KEY(MOD_LSFT, KC_ESC), // FN9 = LCtrl with tap Escape
ACTION_MODS_TAP_KEY(MOD_LALT, KC_SPC), // FN10 = LAlt with tap Space
ACTION_MODS_TAP_KEY(MOD_RALT, KC_INS), // FN11 = RAlt with tap Ins
ACTION_MODS_TAP_KEY(MOD_RSFT, KC_ENT), // FN12 = RShift with tap Enter
ACTION_MODS_TAP_KEY(MOD_RCTL, KC_SPC), // FN13 = RCtrl with tap Space
ACTION_MODS_TAP_KEY(MOD_RSFT, KC_MINS), // FN14 = RShift with tap Enter
ACTION_MODS_TAP_KEY(MOD_RCTL, KC_RBRC), // FN15 = RCtrl with tap Space
2013-09-05 00:03:22 +03:00
ACTION_LAYER_TAP_KEY(2, KC_H), // FN16 = L2 symbols on J key, to use with Mouse keys
2013-08-10 22:57:01 +03:00
};
void action_function(keyrecord_t *event, uint8_t id, uint8_t opt)
{
print("action_function called\n");
print("id = "); phex(id); print("\n");
print("opt = "); phex(opt); print("\n");
if (id == TEENSY_KEY) {
clear_keyboard();
print("\n\nJump to bootloader... ");
_delay_ms(250);
bootloader_jump(); // should not return
print("not supported.\n");
}
}