|
|
|
@ -58,12 +58,53 @@ const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|
|
|
|
* `-------------------------------------------'
|
|
|
|
|
*/
|
|
|
|
|
KEYMAP(GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS,DEL, \
|
|
|
|
|
TRNS,TRNS,TRNS,ESC, TRNS,TRNS,TRNS,HOME,UP, END, PSCR,SLCK,PAUS,INS, \
|
|
|
|
|
TRNS,TRNS,TRNS,ESC, TRNS,TRNS,TRNS,HOME,FN3, END, PSCR,SLCK,PAUS,INS, \
|
|
|
|
|
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,PGUP,LEFT,DOWN,RGHT,TRNS,TRNS,TRNS, \
|
|
|
|
|
TRNS,TRNS,TRNS,TRNS,TRNS,SPC, PGDN,GRV, FN2, TRNS,TRNS,TRNS,NO, \
|
|
|
|
|
TRNS,TRNS, TRNS, TRNS,TRNS),
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* user defined action function
|
|
|
|
|
*/
|
|
|
|
|
enum function_id {
|
|
|
|
|
CTRL_SPACE_I, // Ctrl + Up(SpaceFN) -> PgUp
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
void action_function(keyrecord_t *record, uint8_t id, uint8_t opt)
|
|
|
|
|
{
|
|
|
|
|
# define MODS_CTRL_MASK (MOD_BIT(KC_LCTRL)|MOD_BIT(KC_RCTRL))
|
|
|
|
|
static uint8_t ctrl_space_i_prev_ctrl;
|
|
|
|
|
|
|
|
|
|
switch (id) {
|
|
|
|
|
// Ctrl + Up(SpaceFN) -> PgUp
|
|
|
|
|
case CTRL_SPACE_I:
|
|
|
|
|
ctrl_space_i_prev_ctrl = get_mods()&MODS_CTRL_MASK;
|
|
|
|
|
if (record->event.pressed) {
|
|
|
|
|
if (ctrl_space_i_prev_ctrl) {
|
|
|
|
|
del_mods(ctrl_space_i_prev_ctrl); // remove Ctrl
|
|
|
|
|
add_key(KC_PGUP);
|
|
|
|
|
send_keyboard_report(); // send PgUp without Ctrl
|
|
|
|
|
add_mods(ctrl_space_i_prev_ctrl); // return Ctrl but not sent
|
|
|
|
|
} else {
|
|
|
|
|
add_key(KC_UP);
|
|
|
|
|
send_keyboard_report();
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
if (ctrl_space_i_prev_ctrl) {
|
|
|
|
|
del_key(KC_PGUP);
|
|
|
|
|
send_keyboard_report();
|
|
|
|
|
} else {
|
|
|
|
|
del_key(KC_UP);
|
|
|
|
|
send_keyboard_report();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* Fn action definition
|
|
|
|
|
*/
|
|
|
|
@ -71,5 +112,5 @@ const uint16_t PROGMEM fn_actions[] = {
|
|
|
|
|
[0] = ACTION_LAYER_MOMENTARY(1),
|
|
|
|
|
[1] = ACTION_LAYER_TAP_KEY(2, KC_SPACE),
|
|
|
|
|
[2] = ACTION_MODS_KEY(MOD_LSFT, KC_GRV), // tilde
|
|
|
|
|
[3] = ACTION_FUNCTION(CTRL_SPACE_I), // Ctrl + Up(SpaceFN) -> PgUp
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|