qmk-keychron-q3-colemak-dh/users/yet-another-developer/tap_dances.c
Yet Another Developer 3d53ea439c [Keymap] Ergodash keymap for yet-another-developer (#7046)
* Initialize ergodash rev 1 keymap

./util/new_keymap.sh ergodash/rev1 yet-another-developer

* Add user space configurations referenced from drashna

* Start community layout for ergodash in ortho_5x14

* Remove unused layers

* Add userspace layers

* Add Userspace gitignore

Hide Secrets

* Remove userspace unused drashna features

* Scrap default keymap and follow drashna's template

* Add code referenced from kuchosauronad0

* Make sure that the author is named Developer

* Replace middle keys del and bksp with curly brace

* Reduce ONESHOT_TIMEOUT from 3sec to 2sec

* Remove adjust key AG_SWAP

* Disable UNICODEMAP_ENABLE, remove code causing build fail

* Increase TAPPING_TERM to 240

Reason:  Because Space is also LOWER, space sometimes not registering.
PS: I dont want to #define RETRO_TAPPING yet

* Update KC_MAKE to use :flash

* Remove TAP_ONCE, use tap_code

Signed-off-by: Developer <anotherdeveloper@icloud.com>

* Remove redundant code implementation of keyboard_post_init_user

https://github.com/qmk/qmk_firmware/pull/7046

users/yet-another-developer/leader.c
```
  static bool has_ran_yet;
  if (!has_ran_yet) {
    has_ran_yet = true;
    startup_user();
```
Comment for lines +11  – +14
 @drashna: Not needed anymore. You can use keyboard_post_init_user now.

Signed-off-by: Developer <anotherdeveloper@icloud.com>
2019-10-20 11:07:56 -07:00

56 lines
1.9 KiB
C

#include "tap_dances.h"
void td_parenthesis (qk_tap_dance_state_t *state, void *user_data) {
if (state->count == 1) {
// SEND_STRING ("\(");
tap_code(KC_QUOT);
reset_tap_dance (state);
}
else if (state->count == 2) {
SEND_STRING("()" SS_TAP(X_LEFT));
reset_tap_dance (state);
}
else if (state->count == 3) {
SEND_STRING("[]" SS_TAP(X_LEFT));
reset_tap_dance (state);
}
else if (state->count == 4) {
SEND_STRING("{}" SS_TAP(X_LEFT));
reset_tap_dance (state);
}
else if (state->count >= 5) {
SEND_STRING("<>" SS_TAP(X_LEFT));
reset_tap_dance (state);
}
}
void safe_reset(qk_tap_dance_state_t *state, void *user_data) {
if (state->count >= 3) {
// Reset the keyboard if you tap the key more than three times
reset_keyboard();
reset_tap_dance(state);
}
}
qk_tap_dance_action_t tap_dance_actions[] = {
[TD_RESET] = ACTION_TAP_DANCE_FN(safe_reset),
[TD_NUM1] = ACTION_TAP_DANCE_DOUBLE(KC_1, KC_4),
[TD_NUM2] = ACTION_TAP_DANCE_DOUBLE(KC_2, KC_5),
[TD_NUM3] = ACTION_TAP_DANCE_DOUBLE(KC_3, KC_6),
[TD_QT1] = ACTION_TAP_DANCE_DOUBLE(KC_QUOT, MC_QT1),
[TD_QT2] = ACTION_TAP_DANCE_DOUBLE(LSFT(KC_QUOT), MC_QT2),
[TD_QT3] = ACTION_TAP_DANCE_DOUBLE(KC_GRV, MC_QT3),
[TD_EOL] = ACTION_TAP_DANCE_DOUBLE(KC_E, MC_EOL), // end of line
[TD_BOL] = ACTION_TAP_DANCE_DOUBLE(KC_A, MC_BOL), // beginning of line
[TD_NW] = ACTION_TAP_DANCE_DOUBLE(KC_F, MC_NW), // next word
[TD_PW] = ACTION_TAP_DANCE_DOUBLE(KC_B, MC_PW), // pevious word
[TD_DW] = ACTION_TAP_DANCE_DOUBLE(KC_W, MC_DW), // pevious word
[TD_SPC] = ACTION_TAP_DANCE_FN(td_parenthesis), // \(, (), [], {}, <>
[TD_PAR] = ACTION_TAP_DANCE_DOUBLE(KC_LPRN, MC_PAR), // ()
[TD_SQR] = ACTION_TAP_DANCE_DOUBLE(KC_LBRC, MC_SQR), // []
[TD_CUR] = ACTION_TAP_DANCE_DOUBLE(LSFT(KC_LCBR), MC_CUR),// {}
[TD_ABR] = ACTION_TAP_DANCE_DOUBLE(LSFT(KC_COMM), MC_ABR),//
};