8 #define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT))
10 // Each layer gets a name for readability, which is then used in the keymap matrix below.
11 // The underscores don't mean anything - you can have a layer called STUFF or any other name.
12 // Layer names don't all need to be of the same length, obviously, and you can also skip them
13 // entirely and just use numbers.
17 #define _______ KC_TRNS
19 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
20 /* Keymap _BL: (Base Layer) Default Layer
21 * ,-------------------.
23 * |----|----|----|----|
24 * | F1 | F2 | F3 | F4 |
25 * |----|----|----|----|
27 * |----|----|----|----|
29 * |----|----|----|----|
31 * |----|----|----|----|
32 * |Left|Down| Up |Rght|
33 * `-------------------'
38 KC_ESC, KC_TAB, KC_MINS,KC_EQL, \
39 KC_F1, KC_F2, KC_F3, KC_F4, \
40 KC_P7, KC_P8, KC_P9, KC_PMNS, \
41 KC_P4, KC_P5, KC_P6, KC_PENT, \
42 KC_P1, KC_P2, KC_P3, KC_BSLS, \
43 KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT),
45 /* Keymap _FL: Function Layer
46 * ,-------------------.
48 * |----|----|----|----|
50 * |----|----|----|----|
52 * |----|----|----|RST |
54 * |----|----|----|----|
56 * |----|----|----| En |
58 * `-------------------'
62 KC_ESC,KC_TAB,KC_BSPC,KC_PEQL, \
63 KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, \
64 KC_P7, KC_P8, KC_P9, RESET, \
65 KC_P4, KC_P5, KC_P6, KC_PENT, \
66 KC_P1, KC_P2, KC_P3, KC_PENT, \
67 KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT),
74 const uint16_t PROGMEM fn_actions[] = {
75 [0] = ACTION_FUNCTION(SHIFT_ESC),
78 void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
79 static uint8_t shift_esc_shift_mask;
82 shift_esc_shift_mask = get_mods()&MODS_CTRL_MASK;
83 if (record->event.pressed) {
84 if (shift_esc_shift_mask) {
86 send_keyboard_report();
89 send_keyboard_report();
92 if (shift_esc_shift_mask) {
94 send_keyboard_report();
97 send_keyboard_report();