X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=keyboard%2Fergodox%2Fkeymap_cub.h;h=e3a636b8fb249fbb2a43dcc4c667100c82e35839;hb=2381945e3079ab92ffb752e1fc9a3e4723d3530b;hp=f7db486784996e162dc7dcb36214dcf20b0dcab3;hpb=142820c687191451ab2cd34eafd9afaae93d2830;p=tmk_firmware.git diff --git a/keyboard/ergodox/keymap_cub.h b/keyboard/ergodox/keymap_cub.h index f7db486..e3a636b 100644 --- a/keyboard/ergodox/keymap_cub.h +++ b/keyboard/ergodox/keymap_cub.h @@ -145,7 +145,7 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // right hand SLCK,NLCK,PSLS,PAST,PAST,PMNS,BSPC, TRNS,NO, P7, P8, P9, PMNS,PGUP, - TRNS,P4, P5, P6, PPLS,PGDN, + NO, P4, P5, P6, PPLS,PGDN, TRNS,NO, P1, P2, P3, PPLS,PENT, P0, PDOT,SLSH,PENT,PENT, TRNS,TRNS, @@ -185,12 +185,12 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { TRNS, TRNS,TRNS,TRNS, - // in Workman right hand will be: - // + - // ^ { } ( ) = - // ' ! $ " ; \ - // # [ < > ] \ - // + /* in Workman right hand will be: + + + ^ { } ( ) = + ' ! $ " ; \ + # [ < > ] \ + */ // right hand NO, NO, NO, NO, NO, NO, PPLS, @@ -224,21 +224,21 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { TRNS,TRNS,TRNS ), - KEYMAP( // Layer6: F-keys, cursor, Workman-layer switch, Teensy, leftled:top/white+onboard + KEYMAP( // Layer6: F-keys + utils(Teensy, Workman-layer switch), leftled:top/white+onboard // left hand TRNS,F1, F2, F3, F4, F5, F6, - FN0, NO, PGUP,UP, PGDN,PGUP,TRNS, - TRNS,NO, LEFT,DOWN,RGHT,PGDN, - TRNS,INS, DEL, END, HOME,NO, TRNS, + FN0, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, FN18,TRNS,TRNS,TRNS,TRNS, TRNS,TRNS, TRNS, TRNS,TRNS,TRNS, // right hand - F7, F8, F9, F10, F11, F12, MINS, - TRNS,PGUP,PGUP,UP, PGDN,NO, FN0, - PGDN,LEFT,DOWN,RGHT,NO, TRNS, - TRNS,NO, HOME,END, DEL, INS, TRNS, + 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, TRNS,TRNS,TRNS,TRNS,TRNS, TRNS,TRNS, TRNS, @@ -267,22 +267,22 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { TRNS,TRNS,TRNS,TRNS,TRNS, TRNS,TRNS, TRNS, - TRNS,TRNS,TRNS + SLEP,TRNS,TRNS ), 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,NO, NO, NO, ACL0,NO, TRNS, + TRNS,NO, NO, TRNS,ACL1,NO, + TRNS,NO, NO, TRNS,ACL2,NO, TRNS, TRNS,TRNS,TRNS,TRNS,TRNS, TRNS,TRNS, TRNS, TRNS,TRNS,TRNS, // right hand - TRNS,NO, NO, NO, NO, NO, NO, + TRNS,MPLY,MPRV,MNXT,VOLD,VOLU,MUTE, 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, @@ -342,65 +342,100 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* id for user defined functions */ enum function_id { TEENSY_KEY, + L_CTRL_ALT_ENT, + R_CTRL_ALT_ENT, }; /* * Fn action definition */ static const uint16_t PROGMEM fn_actions[] = { - ACTION_FUNCTION(TEENSY_KEY), // FN0 - Teensy key - - ACTION_MODS_KEY(MOD_LSFT, KC_BSLS), // FN1 = Shifted BackSlash // " in Workman - ACTION_MODS_KEY(MOD_LSFT, KC_MINS), // FN2 = Shifted Minus // \ in Workman - ACTION_MODS_KEY(MOD_LSFT, KC_COMM), // FN3 = Shifted comma // < in Workman - ACTION_MODS_KEY(MOD_LSFT, KC_DOT), // FN4 = Shifted dot // > in Workman - - ACTION_MODS_TAP_KEY(MOD_LCTL, KC_BSPC), // FN5 = LShift with tap BackSpace - ACTION_MODS_TAP_KEY(MOD_LSFT, KC_DEL), // FN6 = LCtrl with tap Delete - ACTION_MODS_TAP_KEY(MOD_LALT, KC_ESC), // FN7 = LAlt with tap Escape - ACTION_MODS_TAP_KEY(MOD_RALT, KC_INS), // FN8 = RAlt with tap Ins - ACTION_MODS_TAP_KEY(MOD_RSFT, KC_ENT), // FN9 = RShift with tap Enter - ACTION_MODS_TAP_KEY(MOD_RCTL, KC_SPC), // FN10 = RCtrl with tap Space - - ACTION_MODS_TAP_KEY(MOD_LSFT, KC_TAB), // FN11 = LShift with tap Tab - ACTION_MODS_TAP_KEY(MOD_LCTL, KC_GRV), // FN12 = LCtrl with tap Tilda - ACTION_MODS_TAP_KEY(MOD_LALT, KC_SPC), // FN13 = LAlt with tap Space - ACTION_MODS_TAP_KEY(MOD_LGUI, KC_ESC), // FN14 = LGui with tap Escape - ACTION_MODS_TAP_KEY(MOD_RSFT, KC_QUOT), // FN15 = RShift with tap quotes - ACTION_MODS_TAP_KEY(MOD_RCTL, KC_RBRC), // FN16 = RCtrl with tap ] - - ACTION_LAYER_SET(0, ON_BOTH), // FN17 - set Layer0 - ACTION_LAYER_SET(1, ON_BOTH), // FN18 - set Layer1, to use Workman layout at firmware level - ACTION_LAYER_SET(2, ON_BOTH), // FN19 - set Layer2, to use with Numpad keys - - ACTION_LAYER_MOMENTARY(2), // FN20 - momentary Layer2, to use with Numpad keys - ACTION_LAYER_TAP_KEY(5, KC_ENT), // FN21 - momentary Layer5 on Enter, to use with F* keys on top row - ACTION_LAYER_TAP_KEY(6, KC_ENT), // FN22 - momentary Layer6 on Enter, to use with F* keys on top row, cursor, Teensy, Workman-layer switch - ACTION_LAYER_TAP_KEY(7, KC_BSLS), // FN23 - momentary Layer7 on ' , to use with F* keys (F1-F24) - - ACTION_LAYER_TAP_KEY(4, KC_Z), // FN24 = momentary Layer4 on Z key, to use with unconvenient keys - ACTION_LAYER_TAP_KEY(3, KC_X), // FN25 = momentary Layer3 on X key, to use with F* keys - ACTION_LAYER_TAP_KEY(8, KC_C), // FN26 = momentary Layer8 on C key, to use with mouse and navigation keys - ACTION_LAYER_TAP_KEY(2, KC_V), // FN27 = momentary Layer2 on V key, to use with Numpad keys + [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 ] + + [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 + + [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 + utils + + [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 // i'd like to remove this - will try to get used to live without this and convert them to usual keys - ACTION_LAYER_TAP_KEY(4, KC_A), // FN28 = momentary Layer4 on A key, to use with unconvenient keys - ACTION_LAYER_TAP_KEY(3, KC_S), // FN29 = momentary Layer3 on S key, to use with F* keys - ACTION_LAYER_TAP_KEY(8, KC_D), // FN30 = momentary Layer8 on D key, to use with mouse and navigation keys - ACTION_LAYER_TAP_KEY(2, KC_F), // FN31 = momentary Layer2 on F key, to use with Numpad keys + [20] = ACTION_LAYER_MOMENTARY(2), // FN20 - momentary Layer2, to use with Numpad keys + [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 }; -void action_function(keyrecord_t *event, uint8_t id, uint8_t opt) +void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { - print("action_function called\n"); - print("id = "); phex(id); print("\n"); - print("opt = "); phex(opt); print("\n"); + // 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); + _delay_ms(50); 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(); + } + } + } }