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 up and right hand's right side
49 if (record->event.pressed) {
54 // If return true, QMK sends keycode in new layer,
55 // but these keys are only available in old layer.
60 if (record->event.pressed) {
67 // vowel keys, symbol keys and modifier keys
68 if (record->event.pressed) {
72 // combination vowel keys
74 if (record->event.pressed) {
79 if (record->event.pressed) {
84 if (record->event.pressed) {
89 if (record->event.pressed) {
94 if (record->event.pressed) {
99 if (record->event.pressed) {
104 if (record->event.pressed) {
109 if (record->event.pressed) {
114 // AOEIU and other (symbol, modifier) keys
118 bool process_record_edvorakjp_swap_scln(uint16_t keycode, keyrecord_t *record) {
120 static const uint8_t shift_bits = MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT);
121 static uint8_t last_mods_status;
122 if (keycode == KC_SCLN) {
123 if (record->event.pressed) {
124 last_mods_status = get_mods();
127 if (last_mods_status & shift_bits) {
128 set_mods(last_mods_status & ~shift_bits);
130 set_mods(last_mods_status | MOD_BIT(KC_LSFT));
133 set_mods(last_mods_status);
134 last_mods_status = 0;
141 bool process_record_edvorakjp_config(uint16_t keycode, keyrecord_t *record) {
145 if (record->event.pressed) {
146 set_enable_kc_lang(keycode == KC_MAC);
151 if (record->event.pressed) {
152 set_enable_jp_extra_layer(keycode == KC_EXTON);
159 bool process_record_layer(uint16_t keycode, keyrecord_t *record) {
162 if (record->event.pressed) {
163 set_single_persistent_default_layer(_EDVORAK);
167 if (record->event.pressed) {
169 set_single_persistent_default_layer(_QWERTY);
172 #if TAP_DANCE_ENABLE != yes
174 if (record->event.pressed) {
176 time_on_pressed = record->event.time;
180 if (TIMER_DIFF_16(record->event.time, time_on_pressed) < TAPPING_TERM) {
181 set_japanese_mode(false);
187 if (record->event.pressed) {
189 time_on_pressed = record->event.time;
193 if (TIMER_DIFF_16(record->event.time, time_on_pressed) < TAPPING_TERM) {
194 set_japanese_mode(true);
204 bool process_record_ime(uint16_t keycode, keyrecord_t *record) {
208 if (record->event.pressed) {
209 set_japanese_mode(keycode == KC_JPN);