tmk_keyboard/keyboard/ergodox/keymap_cub.h

441 lines
21 KiB
C
Raw Normal View History

2013-08-10 22:57:01 +03:00
static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
2013-09-09 04:32:19 +03:00
/*
* Keymap: Default Layer in QWERTY
2013-08-10 22:57:01 +03:00
*
* ,--------------------------------------------------. ,--------------------------------------------------.
2013-09-25 22:13:27 +03:00
* | ~ | 1 | 2 | 3 | 4 | 5 | \ | | - | 6 | 7 | 8 | 9 | 0 | = |
2013-08-10 22:57:01 +03:00
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
2013-09-25 22:13:27 +03:00
* | Tab | Q | W | E | R | T | ~L5 | | ~L6 | Y | U | I | O | P | [ |
2013-08-10 22:57:01 +03:00
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
2013-09-25 18:28:13 +03:00
* | Tab/Shf| A | S | D | F | G |------| |------| H | J | K | L | ; | ' |
* |--------+------+------+------+------+------| L0 | | ~L7 |------+------+------+------+------+--------|
* | LCtrl | Z | X | C | V | B | | | | N | M | , | . | / | ] |
2013-08-10 22:57:01 +03:00
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* | ~L5 | ~L2 | Caps | LAlt | LGui | | Lft | Up | Dn | Rght | ~L6 |
2013-08-10 22:57:01 +03:00
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
2013-09-09 04:32:19 +03:00
* | +L2 | Home | | PgUp | Del |
2013-08-10 22:57:01 +03:00
* ,------|------|------| |------+------+------.
* | | | End | | PgDn | | |
* | BkSp | ESC |------| |------| Enter| Space|
* | | | Spc | | Ins | | |
* `--------------------' `--------------------'
2013-09-09 04:32:19 +03:00
*
*
*
****************************************************************************************************
*
* Under XOrg, I use my own mapping from QWERTY to "Workman for Programmers"
* See XOrg files in ./addons/ subdirectory.
*
* I have to do so, because of two things:
* 1) my native language is Russian, and XOrg keymap for it is based on QWERTY layout
* 2) I want to have non-standart shifted keys, like $ (as normal) and @ (as shifted), or _ and -
*
* And even if (2) could be solved using FN* keys (but there is limit in firmware for only 32 such
* keys), then (1) can't be solved at firmware level at all.
*
* So, I have to stick with QWERTY as my main layout + my own XOrg keyboard layout for English.
* But sometimes I have to input something when XOrg is not active - for example, in Linux console,
* or in firmware console (while debugging firmware), or when keyboard is connected to not my computer.
*
* For such cases I have Layer1 :)
* // hint: switch to Layer1 is only at Layer6
2013-09-09 04:32:19 +03:00
*
****************************************************************************************************
*
*
*
* Keymap: Default Layer in Workman
*
* ,--------------------------------------------------. ,--------------------------------------------------.
2013-09-25 22:13:27 +03:00
* | ~ | ; | ! | # | { | } | ' | | ^ | [ | ] | * | ( | ) | = |
2013-09-09 04:32:19 +03:00
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
2013-10-14 23:31:13 +03:00
* | Tab | Q | D | R | W | B | NO | | ~L7 | J | F | U | P | $ | : |
2013-09-09 04:32:19 +03:00
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
2013-09-25 18:28:13 +03:00
* | Tab/Shf| A | S | H | T | G |------| |------| Y | N | E | O | I | - |
2013-10-14 23:31:13 +03:00
* |--------+------+------+------+------+------| Home | | End |------+------+------+------+------+--------|
* | LCtrl | Z | X | M | C | V | | | | K | L | , | . | / | | |
2013-09-09 04:32:19 +03:00
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* | ~L5 | ~L2 | Caps | LAlt | LGui | | Lft | Up | Dn | Rght | ~L6 |
2013-09-09 04:32:19 +03:00
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
2013-10-14 23:31:13 +03:00
* | L0 | +L2 | | PgUp | Del |
2013-09-09 04:32:19 +03:00
* ,------|------|------| |------+------+------.
2013-10-14 23:31:13 +03:00
* | | | NO | | PgDn | | |
2013-09-09 04:32:19 +03:00
* | BkSp | ESC |------| |------| Enter| Space|
* | | | Spc | | Ins | | |
* `--------------------' `--------------------'
*
* Keymap: Default Layer in Workman / with Shift
*
* ,--------------------------------------------------. ,--------------------------------------------------.
2013-10-07 16:52:26 +03:00
* | ` | 1 | 2 | 3 | 4 | 5 | " | | \ | 6 | 7 | 8 | 9 | 0 | + |
2013-09-09 04:32:19 +03:00
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
2013-10-14 23:31:13 +03:00
* | Tab | Q | D | R | W | B | NO | | ~L7 | J | F | U | P | @ | % |
2013-09-09 04:32:19 +03:00
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
2013-09-25 18:28:13 +03:00
* | Tab/Shf| A | S | H | T | G |------| |------| Y | N | E | O | I | _ |
2013-10-14 23:31:13 +03:00
* |--------+------+------+------+------+------| Home | | End |------+------+------+------+------+--------|
* | LCtrl | Z | X | M | C | V | | | | K | L | , | . | / | & |
2013-09-09 04:32:19 +03:00
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* | ~L5 | ~L2 | Caps | LAlt | LGui | | Lft | Up | Dn | Rght | ~L6 |
2013-09-09 04:32:19 +03:00
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
2013-10-14 23:31:13 +03:00
* | L0 | +L2 | | PgUp | Del |
2013-09-09 04:32:19 +03:00
* ,------|------|------| |------+------+------.
2013-10-14 23:31:13 +03:00
* | | | NO | | PgDn | | |
2013-09-09 04:32:19 +03:00
* | BkSp | ESC |------| |------| Enter| Space|
* | | | Spc | | Ins | | |
* `--------------------' `--------------------'
*
2013-08-10 22:57:01 +03:00
*/
KEYMAP( // Layer0: default, leftled:none
2013-08-10 22:57:01 +03:00
// left hand
2013-09-25 22:13:27 +03:00
GRV, 1, 2, 3, 4, 5, BSLS,
2014-03-30 04:30:32 +03:00
TAB, Q, W, E, R, T, FN23,
2013-09-25 22:13:27 +03:00
FN11,FN28,FN29,FN30,FN31,G,
2013-10-14 23:31:13 +03:00
FN12,FN24,FN25,FN26,FN27,B, HOME,
2013-09-25 22:13:27 +03:00
FN21,FN20,CAPS,FN13,FN14,
2013-10-14 23:31:13 +03:00
FN17,FN19,
NO,
FN5, FN6, FN7,
2013-08-10 22:57:01 +03:00
// right hand
MINS,6, 7, 8, 9, 0, EQL,
2013-10-14 23:31:13 +03:00
FN23,Y, U, I, O, P, LBRC,
2013-09-25 22:13:27 +03:00
H, J, K, L, SCLN,FN15,
2013-10-14 23:31:13 +03:00
END, N, M, COMM,DOT, SLSH,FN16,
2013-09-25 22:13:27 +03:00
LEFT,UP, DOWN,RGHT,FN22,
2013-08-10 22:57:01 +03:00
PGUP,DEL,
PGDN,
FN8, FN9, FN10
2013-08-10 22:57:01 +03:00
),
KEYMAP( // Layer1: Workman layout, leftled:all
2013-08-10 22:57:01 +03:00
// 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,
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
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,
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
),
2014-03-30 04:30:32 +03:00
KEYMAP( // Layer2: numpad, leftled:mid/blue
2013-08-10 22:57:01 +03:00
// left hand
TRNS,NO, NO, NO, NO, PAUS,PSCR,
TRNS,NO, NO, NO, NO, NO, TRNS,
TRNS,NO, NO, NO, TRNS,NO,
TRNS,NO, NO, NO, TRNS,NO, TRNS,
2013-08-10 22:57:01 +03:00
TRNS,TRNS,TRNS,TRNS,TRNS,
TRNS,TRNS,
TRNS,
TRNS,TRNS,TRNS,
// right hand
SLCK,NLCK,PSLS,PAST,PAST,PMNS,BSPC,
2013-10-07 16:53:01 +03:00
TRNS,NO, P7, P8, P9, PMNS,PGUP,
TRNS,P4, P5, P6, PPLS,PGDN,
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
),
2014-03-30 04:30:32 +03:00
KEYMAP( // Layer3: F-keys + PgUp/PgDn on right hand, leftled:bot/green
2013-08-10 22:57:01 +03:00
// left hand
2013-09-09 04:32:19 +03:00
TRNS,NO, NO, NO, NO, NO, NO,
TRNS,NO, NO, NO, NO, NO, TRNS,
TRNS,NO, TRNS,NO, NO, NO,
TRNS,NO, TRNS,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, F1, F2, F3, F4, PGUP,
NO, F5, F6, F7, F8, PGDN,
TRNS,NO, F9, F10, F11, F12, APP,
RGUI,RALT,TRNS,TRNS,TRNS,
TRNS,TRNS,
TRNS,
TRNS,RSFT,RCTL
),
2014-03-30 04:30:32 +03:00
KEYMAP( // Layer4: unconvenient keys on right hand, leftled:top/white
// left hand
TRNS,NO, NO, NO, NO, NO, NO,
TRNS,NO, NO, NO, NO, NO, TRNS,
TRNS,TRNS,NO, NO, NO, NO,
TRNS,TRNS,NO, NO, NO, NO, TRNS,
TRNS,TRNS,TRNS,LALT,LGUI,
2013-08-10 22:57:01 +03:00
TRNS,TRNS,
TRNS,
2013-09-05 00:03:22 +03:00
TRNS,TRNS,TRNS,
2014-04-16 03:50:23 +03:00
/* in Workman right hand will be:
+
^ { } ( ) =
' ! $ " ; \
# [ < > ] \
*/
2013-08-10 22:57:01 +03:00
// right hand
2013-10-28 15:17:05 +02:00
NO, NO, NO, NO, NO, NO, PPLS,
TRNS,MINS,4, 5, 9, 0, EQL,
BSLS,2, P, FN1, 1, FN2,
TRNS,3, 6, FN3, FN4, 7, FN2,
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
),
2014-03-30 04:30:32 +03:00
KEYMAP( // Layer5: F-keys instead of numbers, leftled:top/white
2013-08-10 22:57:01 +03:00
// 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,
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
F7, F8, F9, F10, F11, F12, TRNS,
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
),
KEYMAP( // Layer6: F-keys, Teensy, Workman-layer switch, leftled:top/white+onboard
2013-08-10 22:57:01 +03:00
// left hand
TRNS,F1, F2, F3, F4, F5, F6,
FN0, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,
2013-09-25 22:13:27 +03:00
FN18,TRNS,TRNS,TRNS,TRNS,
2013-08-10 22:57:01 +03:00
TRNS,TRNS,
TRNS,
TRNS,TRNS,TRNS,
// right hand
F7, F8, F9, F10, F11, F12, TRNS,
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,FN0,
TRNS,TRNS,TRNS,TRNS,TRNS,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
),
//
// rarely used
//
2014-03-30 04:30:32 +03:00
KEYMAP( // Layer7: F-keys only, leftled:top/white
2013-09-09 04:32:19 +03:00
// 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,
TRNS,TRNS,TRNS,TRNS,TRNS,
2013-09-09 04:32:19 +03:00
TRNS,TRNS,
TRNS,
TRNS,TRNS,TRNS,
2013-09-09 04:32:19 +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,
TRNS,TRNS,TRNS,TRNS,TRNS,
2013-09-09 04:32:19 +03:00
TRNS,TRNS,
TRNS,
TRNS,TRNS,TRNS
2013-09-09 04:32:19 +03:00
),
2014-03-30 04:30:32 +03:00
KEYMAP( // Layer8: mouse and navigation, leftled:mid/blue+bot/green
// left hand
TRNS,NO, NO, NO, NO, NO, NO,
TRNS,NO, NO, NO, NO, NO, TRNS,
TRNS,NO, NO, TRNS,NO, NO,
TRNS,NO, NO, TRNS,NO, NO, TRNS,
TRNS,TRNS,TRNS,TRNS,TRNS,
TRNS,TRNS,
TRNS,
TRNS,TRNS,TRNS,
// right hand
TRNS,NO, NO, NO, NO, NO, NO,
TRNS,BTN2,WH_L,WH_U,WH_D,WH_R,PGUP,
BTN1,MS_L,MS_U,MS_D,MS_R,PGDN,
TRNS,BTN3,HOME,END, DEL, INS, NO,
TRNS,TRNS,TRNS,TRNS,TRNS,
TRNS,TRNS,
TRNS,
TRNS,TRNS,TRNS
),
2013-08-10 22:57:01 +03:00
/*
2013-09-05 00:03:22 +03:00
// templates to copy from
KEYMAP( // LayerN: transparent on edges + hard-defined thumb keys, all others are empty
2013-08-10 22:57:01 +03:00
// left hand
2013-09-09 04:32:19 +03:00
TRNS,NO, NO, NO, NO, NO, NO,
2013-08-10 22:57:01 +03:00
TRNS,NO, NO, NO, NO, NO, TRNS,
2013-09-09 04:32:19 +03:00
TRNS,NO, NO, NO, NO, NO,
2013-08-10 22:57:01 +03:00
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( // LayerN: fully transparent
2013-08-10 22:57:01 +03:00
// 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,
L_CTRL_ALT_ENT,
R_CTRL_ALT_ENT,
2013-08-10 22:57:01 +03:00
};
/*
* Fn action definition
*/
static const uint16_t PROGMEM fn_actions[] = {
[0] = ACTION_FUNCTION(TEENSY_KEY), // FN0 - Teensy key
[1] = ACTION_MODS_KEY(MOD_LSFT, KC_BSLS), // FN1 = Shifted BackSlash // " in Workman
[2] = ACTION_MODS_KEY(MOD_LSFT, KC_MINS), // FN2 = Shifted Minus // \ in Workman
[3] = ACTION_MODS_KEY(MOD_LSFT, KC_COMM), // FN3 = Shifted comma // < in Workman
[4] = ACTION_MODS_KEY(MOD_LSFT, KC_DOT), // FN4 = Shifted dot // > in Workman
[5] = ACTION_MODS_TAP_KEY(MOD_LCTL, KC_BSPC), // FN5 = LShift with tap BackSpace
[6] = ACTION_MODS_TAP_KEY(MOD_LSFT, KC_DEL), // FN6 = LCtrl with tap Delete
[7] = ACTION_MODS_TAP_KEY(MOD_LALT, KC_ESC), // FN7 = LAlt with tap Escape
[8] = ACTION_MODS_TAP_KEY(MOD_RALT, KC_INS), // FN8 = RAlt with tap Ins
[9] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_ENT), // FN9 = RShift with tap Enter
[10] = ACTION_MODS_TAP_KEY(MOD_RCTL, KC_SPC), // FN10 = RCtrl with tap Space
[11] = ACTION_MODS_TAP_KEY(MOD_LSFT, KC_TAB), // FN11 = LShift with tap Tab
[12] = ACTION_MODS_TAP_KEY(MOD_LCTL, KC_GRV), // FN12 = LCtrl with tap Tilda
[13] = ACTION_MODS_TAP_KEY(MOD_LALT, KC_SPC), // FN13 = LAlt with tap Space
[14] = ACTION_MODS_TAP_KEY(MOD_LGUI, KC_ESC), // FN14 = LGui with tap Escape
[15] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_QUOT), // FN15 = RShift with tap quotes
[16] = ACTION_MODS_TAP_KEY(MOD_RCTL, KC_RBRC), // FN16 = RCtrl with tap ]
2013-09-05 00:03:22 +03:00
[17] = ACTION_LAYER_SET(0, ON_BOTH), // FN17 - set Layer0
[18] = ACTION_LAYER_SET(1, ON_BOTH), // FN18 - set Layer1, to use Workman layout at firmware level
[19] = ACTION_LAYER_SET(2, ON_BOTH), // FN19 - set Layer2, to use with Numpad keys
2013-09-05 00:03:22 +03:00
[20] = ACTION_LAYER_MOMENTARY(2), // FN20 - momentary Layer2, to use with Numpad keys
[21] = ACTION_FUNCTION_TAP(L_CTRL_ALT_ENT), // FN21 - momentary Layer5+CTRL+ALT on Enter, to use with F* keys on top row
[22] = ACTION_FUNCTION_TAP(R_CTRL_ALT_ENT), // FN22 - momentary Layer6+CTRL+ALT on Enter, to use with F* keys on top row, Teensy, Workman-layer switch
[23] = ACTION_LAYER_TAP_KEY(7, KC_BSLS), // FN23 - momentary Layer7 on ' , to use with F* keys (F1-F24)
[24] = ACTION_LAYER_TAP_KEY(4, KC_Z), // FN24 = momentary Layer4 on Z key, to use with unconvenient keys
[25] = ACTION_LAYER_TAP_KEY(3, KC_X), // FN25 = momentary Layer3 on X key, to use with F* keys
[26] = ACTION_LAYER_TAP_KEY(8, KC_C), // FN26 = momentary Layer8 on C key, to use with mouse and navigation keys
[27] = ACTION_LAYER_TAP_KEY(2, KC_V), // FN27 = momentary Layer2 on V key, to use with Numpad keys
2013-09-25 22:05:13 +03:00
// i'd like to remove this - will try to get used to live without this and convert them to usual keys
[28] = ACTION_LAYER_TAP_KEY(4, KC_A), // FN28 = momentary Layer4 on A key, to use with unconvenient keys
[29] = ACTION_LAYER_TAP_KEY(3, KC_S), // FN29 = momentary Layer3 on S key, to use with F* keys
[30] = ACTION_LAYER_TAP_KEY(8, KC_D), // FN30 = momentary Layer8 on D key, to use with mouse and navigation keys
[31] = ACTION_LAYER_TAP_KEY(2, KC_F), // FN31 = momentary Layer2 on F key, to use with Numpad keys
2013-08-10 22:57:01 +03:00
};
void action_function(keyrecord_t *record, uint8_t id, uint8_t opt)
2013-08-10 22:57:01 +03:00
{
2014-04-16 03:51:47 +03:00
// print("action_function called\n");
// print("id = "); phex(id); print("\n");
// print("opt = "); phex(opt); print("\n");
2013-08-10 22:57:01 +03:00
if (id == TEENSY_KEY) {
clear_keyboard();
print("\n\nJump to bootloader... ");
2014-04-16 03:52:49 +03:00
_delay_ms(50);
2013-08-10 22:57:01 +03:00
bootloader_jump(); // should not return
print("not supported.\n");
}
if (id == L_CTRL_ALT_ENT || id == R_CTRL_ALT_ENT) {
if (record->tap.count == 0 || record->tap.interrupted) {
uint8_t weak_mods;
uint8_t layer;
if (id == L_CTRL_ALT_ENT) {
weak_mods = MOD_BIT(KC_LCTL) | MOD_BIT(KC_LALT);
layer = 5;
} else {
weak_mods = MOD_BIT(KC_RCTL) | MOD_BIT(KC_RALT);
layer = 6;
}
if (record->event.pressed) {
layer_on(layer);
add_weak_mods(weak_mods);
} else {
del_weak_mods(weak_mods);
layer_off(layer);
}
} else {
if (record->event.pressed) {
add_key(KC_ENT);
send_keyboard_report();
} else {
del_key(KC_ENT);
send_keyboard_report();
}
}
}
2013-08-10 22:57:01 +03:00
}