3 #if TAP_DANCE_ENABLE != yes
4 static uint16_t time_on_pressed;
7 * Each process_record_* methods defined here are
8 * return false if handle edvorak_keycodes, or return true others.
10 bool process_record_edvorakjp_ext(uint16_t keycode, keyrecord_t *record) {
11 if (!(default_layer_state == 1UL<<_EDVORAK &&
12 get_enable_jp_extra_layer() && get_japanese_mode())) {
17 // layer_on(J1) or layer_on(J2) are defined based on key positions.
19 // right hand's left side w/o N
28 if (record->event.pressed) {
35 if (record->event.pressed) {
36 biton32(layer_state) == _EDVORAK ? layer_on(_EDVORAKJ1) : dvorakj_layer_off();
40 // left hand and right hand's right side
53 if (record->event.pressed) {
59 // vowel keys, symbol keys and modifier keys
60 if (record->event.pressed) {
64 // combination vowel keys
66 if (record->event.pressed) {
71 if (record->event.pressed) {
76 if (record->event.pressed) {
81 if (record->event.pressed) {
86 if (record->event.pressed) {
91 if (record->event.pressed) {
96 if (record->event.pressed) {
101 if (record->event.pressed) {
106 // AOEIU and other (symbol, modifier) keys
110 bool process_record_edvorakjp_swap_scln(uint16_t keycode, keyrecord_t *record) {
112 static const uint8_t shift_bits = MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT);
113 static uint8_t last_mods_status;
114 if (keycode == KC_SCLN) {
115 if (record->event.pressed) {
116 last_mods_status = get_mods();
119 if (last_mods_status & shift_bits) {
120 set_mods(last_mods_status & ~shift_bits);
122 set_mods(last_mods_status | MOD_BIT(KC_LSFT));
125 set_mods(last_mods_status);
126 last_mods_status = 0;
133 bool process_record_edvorakjp_config(uint16_t keycode, keyrecord_t *record) {
137 if (record->event.pressed) {
138 set_enable_kc_lang(keycode == KC_MAC);
143 if (record->event.pressed) {
144 set_enable_jp_extra_layer(keycode == KC_EXTON);
151 bool process_record_layer(uint16_t keycode, keyrecord_t *record) {
154 if (record->event.pressed) {
155 set_single_persistent_default_layer(_EDVORAK);
159 if (record->event.pressed) {
161 set_single_persistent_default_layer(_QWERTY);
164 #if TAP_DANCE_ENABLE != yes
166 if (record->event.pressed) {
168 time_on_pressed = record->event.time;
172 if (TIMER_DIFF_16(record->event.time, time_on_pressed) < TAPPING_TERM) {
173 set_japanese_mode(false);
179 if (record->event.pressed) {
181 time_on_pressed = record->event.time;
185 if (TIMER_DIFF_16(record->event.time, time_on_pressed) < TAPPING_TERM) {
186 set_japanese_mode(true);
196 bool process_record_ime(uint16_t keycode, keyrecord_t *record) {
200 if (record->event.pressed) {
201 set_japanese_mode(keycode == KC_JPN);