summaryrefslogtreecommitdiff
path: root/keyboards/planck
diff options
context:
space:
mode:
authorJouke Witteveen <j.witteveen@gmail.com>2022-06-13 22:12:55 +0200
committerGitHub <noreply@github.com>2022-06-13 22:12:55 +0200
commit1706da9054f8c4aa77493062a8937a7b64970a9e (patch)
tree1a77464586942c66bdcae99a26bf1558862a7842 /keyboards/planck
parentb17324498ee8e7bf1e8ed57cc8c9b505ca0ce85b (diff)
tap-dance: Restructure code and document in more detail (#16394)
Diffstat (limited to 'keyboards/planck')
-rw-r--r--keyboards/planck/keymaps/ariccb/config.h1
-rw-r--r--keyboards/planck/keymaps/ariccb/keymap.c13
-rw-r--r--keyboards/planck/keymaps/rootiest/config.h1
-rw-r--r--keyboards/planck/keymaps/rootiest/keymap.c23
4 files changed, 31 insertions, 7 deletions
diff --git a/keyboards/planck/keymaps/ariccb/config.h b/keyboards/planck/keymaps/ariccb/config.h
index 322aa9277f..464a8cd5db 100644
--- a/keyboards/planck/keymaps/ariccb/config.h
+++ b/keyboards/planck/keymaps/ariccb/config.h
@@ -40,6 +40,7 @@
//#define MIDI_ADVANCED
#define TAPPING_TERM 150
+#define TAPPING_TERM_PER_KEY
#define IGNORE_MOD_TAP_INTERRUPT
// #define IGNORE_MOD_TAP_INTERRUPT
// #define HOLD_ON_OTHER_KEY_PRESS
diff --git a/keyboards/planck/keymaps/ariccb/keymap.c b/keyboards/planck/keymaps/ariccb/keymap.c
index c0b4e490fa..33d0a26273 100644
--- a/keyboards/planck/keymaps/ariccb/keymap.c
+++ b/keyboards/planck/keymaps/ariccb/keymap.c
@@ -379,9 +379,18 @@ void usl_reset(qk_tap_dance_state_t *state, void *user_data) {
// Associate our tap dance key with its functionality
qk_tap_dance_action_t tap_dance_actions[] = {
- [UNDS_LOWER] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(NULL, usl_finished, usl_reset, 175)
+ [UNDS_LOWER] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, usl_finished, usl_reset)
};
+uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case TD(UNDS_LOWER):
+ return 175;
+ default:
+ return TAPPING_TERM;
+ }
+}
+
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
if (!process_select_word(keycode, record, SELWORD)) { return false; }
if (!process_caps_word(keycode, record)) { return false; }
@@ -661,4 +670,4 @@ void process_combo_event(uint16_t combo_index, bool pressed) {
}
break;
}
-} \ No newline at end of file
+}
diff --git a/keyboards/planck/keymaps/rootiest/config.h b/keyboards/planck/keymaps/rootiest/config.h
index fc1fc81761..5bb5a73a29 100644
--- a/keyboards/planck/keymaps/rootiest/config.h
+++ b/keyboards/planck/keymaps/rootiest/config.h
@@ -87,6 +87,7 @@
/*
* TAP-DANCE options
*/
+#define TAPPING_TERM_PER_KEY // Control Tap-Dance time individually by key
#define TAPPING_TERM 250 // Default time allowed before resetting a Tap-Dance combo
#define ONESHOT_TAP_TOGGLE 5 /* Tapping this number of times holds the key until tapped once again. */
#define ONESHOT_TIMEOUT 5000 /* Time (in ms) before the one shot key is released */
diff --git a/keyboards/planck/keymaps/rootiest/keymap.c b/keyboards/planck/keymaps/rootiest/keymap.c
index 634bf2829e..857d7a9e21 100644
--- a/keyboards/planck/keymaps/rootiest/keymap.c
+++ b/keyboards/planck/keymaps/rootiest/keymap.c
@@ -1656,13 +1656,26 @@ void sml_reset(qk_tap_dance_state_t* state, void* user_data) { sml_state.state =
// Tap Dance definitions
qk_tap_dance_action_t tap_dance_actions[] = {
// Tap once for °, twice for ℉, thrice for ℃
- [TD_DEG_DEGF] = ACTION_TAP_DANCE_FN(send_degree_symbol), //
- [TD_LSHFT_CAPS] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(NULL, scap_finished, scap_reset, 200), //
- [TD_LCTL_STICKY] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(NULL, slctl_finished, slctl_reset, 200), //
- [TD_LALT_STICKY] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(NULL, slalt_finished, slalt_reset, 200), //
- [TD_SMILEY] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(NULL, sml_finished, sml_reset, 500),
+ [TD_DEG_DEGF] = ACTION_TAP_DANCE_FN(send_degree_symbol), //
+ [TD_LSHFT_CAPS] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, scap_finished, scap_reset), //
+ [TD_LCTL_STICKY] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, slctl_finished, slctl_reset), //
+ [TD_LALT_STICKY] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, slalt_finished, slalt_reset), //
+ [TD_SMILEY] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, sml_finished, sml_reset),
};
+uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case TD(TD_LSHFT_CAPS):
+ case TD(TD_LCTL_STICKY):
+ case TD(TD_LALT_STICKY):
+ return 200;
+ case TD(TD_SMILEY):
+ return 500;
+ default:
+ return TAPPING_TERM;
+ }
+}
+
// Dip-Switch controls
void dip_switch_update_user(uint8_t index, bool active) {
switch (index) {