[Keymap] Remove LAYOUT_kc macros from edvorakjp keymaps (#12217)
This commit is contained in:
@@ -2,72 +2,68 @@
|
||||
#include "process_keycode/process_tap_dance.h"
|
||||
|
||||
enum tap_state {
|
||||
NONE = 0,
|
||||
SINGLE_TAP = 1,
|
||||
DOUBLE_TAP = 2,
|
||||
HOLD
|
||||
NONE = 0,
|
||||
SINGLE_TAP = 1,
|
||||
DOUBLE_TAP = 2,
|
||||
HOLD,
|
||||
};
|
||||
|
||||
typedef struct {
|
||||
uint8_t lower;
|
||||
uint8_t raise;
|
||||
uint8_t lower;
|
||||
uint8_t raise;
|
||||
} td_status_t;
|
||||
static td_status_t td_status = {NONE, NONE};
|
||||
|
||||
int cur_dance(qk_tap_dance_state_t *state) {
|
||||
if (state->interrupted || !state->pressed) {
|
||||
return state->count == 1 ? SINGLE_TAP : DOUBLE_TAP;
|
||||
} else {
|
||||
return HOLD;
|
||||
}
|
||||
uint8_t cur_dance(qk_tap_dance_state_t *state) {
|
||||
if (state->interrupted || !state->pressed) {
|
||||
return state->count == 1 ? SINGLE_TAP : DOUBLE_TAP;
|
||||
} else {
|
||||
return HOLD;
|
||||
}
|
||||
}
|
||||
|
||||
void td_lower_finished(qk_tap_dance_state_t *state, void *user_data) {
|
||||
td_status.lower = cur_dance(state);
|
||||
switch(td_status.lower) {
|
||||
case SINGLE_TAP:
|
||||
set_japanese_mode(false);
|
||||
break;
|
||||
case DOUBLE_TAP:
|
||||
set_japanese_mode(false);
|
||||
register_code(KC_ESC);
|
||||
break;
|
||||
case HOLD:
|
||||
break;
|
||||
}
|
||||
layer_on(_LOWER);
|
||||
td_status.lower = cur_dance(state);
|
||||
switch (td_status.lower) {
|
||||
case SINGLE_TAP:
|
||||
set_japanese_mode(false);
|
||||
break;
|
||||
case DOUBLE_TAP:
|
||||
set_japanese_mode(false);
|
||||
register_code(KC_ESC);
|
||||
break;
|
||||
}
|
||||
layer_on(L_EDVORAKJP_LOWER);
|
||||
}
|
||||
|
||||
void td_lower_reset(qk_tap_dance_state_t *state, void *user_data) {
|
||||
if (td_status.lower == DOUBLE_TAP) {
|
||||
unregister_code(KC_ESC);
|
||||
}
|
||||
layer_off(_LOWER);
|
||||
td_status.lower = NONE;
|
||||
switch (td_status.lower) {
|
||||
case DOUBLE_TAP:
|
||||
unregister_code(KC_ESC);
|
||||
break;
|
||||
}
|
||||
layer_off(L_EDVORAKJP_LOWER);
|
||||
td_status.lower = NONE;
|
||||
}
|
||||
|
||||
void td_raise_finished(qk_tap_dance_state_t *state, void *user_data) {
|
||||
td_status.raise = cur_dance(state);
|
||||
switch(td_status.raise) {
|
||||
case DOUBLE_TAP:
|
||||
// same as single
|
||||
case SINGLE_TAP:
|
||||
set_japanese_mode(true);
|
||||
break;
|
||||
case HOLD:
|
||||
break;
|
||||
}
|
||||
layer_on(_RAISE);
|
||||
td_status.raise = cur_dance(state);
|
||||
switch (td_status.raise) {
|
||||
case DOUBLE_TAP:
|
||||
// same as single
|
||||
case SINGLE_TAP:
|
||||
set_japanese_mode(true);
|
||||
break;
|
||||
}
|
||||
layer_on(L_EDVORAKJP_RAISE);
|
||||
}
|
||||
|
||||
void td_raise_reset(qk_tap_dance_state_t *state, void *user_data) {
|
||||
layer_off(_RAISE);
|
||||
td_status.raise = NONE;
|
||||
layer_off(L_EDVORAKJP_RAISE);
|
||||
td_status.raise = NONE;
|
||||
}
|
||||
|
||||
qk_tap_dance_action_t tap_dance_actions[] = {
|
||||
[TD_LOWER] =
|
||||
ACTION_TAP_DANCE_FN_ADVANCED_TIME(NULL, td_lower_finished, td_lower_reset, 100),
|
||||
[TD_RAISE] =
|
||||
ACTION_TAP_DANCE_FN_ADVANCED_TIME(NULL, td_raise_finished, td_raise_reset, 100)
|
||||
[TD_EDVORAKJP_LOWER] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(NULL, td_lower_finished, td_lower_reset, 150),
|
||||
[TD_EDVORAKJP_RAISE] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(NULL, td_raise_finished, td_raise_reset, 150),
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user