tests
This commit is contained in:
parent
4c94647eb9
commit
a26e001bfd
151 changed files with 14 additions and 894 deletions
|
@ -73,9 +73,6 @@ struct active_hold_tap {
|
||||||
const struct behavior_hold_tap_config *config;
|
const struct behavior_hold_tap_config *config;
|
||||||
struct k_delayed_work work;
|
struct k_delayed_work work;
|
||||||
bool work_is_cancelled;
|
bool work_is_cancelled;
|
||||||
|
|
||||||
// Initialized to -1, which is to be interpreted as "no other key has been pressed yet".
|
|
||||||
int32_t position_of_first_other_key_pressed;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// The undecided hold tap is the hold tap that needs to be decided before
|
// The undecided hold tap is the hold tap that needs to be decided before
|
||||||
|
@ -212,9 +209,6 @@ static struct active_hold_tap *store_hold_tap(uint32_t position, uint32_t param_
|
||||||
active_hold_taps[i].param_hold = param_hold;
|
active_hold_taps[i].param_hold = param_hold;
|
||||||
active_hold_taps[i].param_tap = param_tap;
|
active_hold_taps[i].param_tap = param_tap;
|
||||||
active_hold_taps[i].timestamp = timestamp;
|
active_hold_taps[i].timestamp = timestamp;
|
||||||
|
|
||||||
// Initialized to -1, which is to be interpreted as "no other key has been pressed yet".
|
|
||||||
active_hold_taps[i].position_of_first_other_key_pressed = -1;
|
|
||||||
return &active_hold_taps[i];
|
return &active_hold_taps[i];
|
||||||
}
|
}
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@ -319,6 +313,8 @@ static inline const char *flavor_str(enum flavor flavor) {
|
||||||
return "balanced";
|
return "balanced";
|
||||||
case FLAVOR_TAP_PREFERRED:
|
case FLAVOR_TAP_PREFERRED:
|
||||||
return "tap-preferred";
|
return "tap-preferred";
|
||||||
|
case FLAVOR_TAP_POSITIONALLY_PREFERRED:
|
||||||
|
return "tap-positionally-preferred";
|
||||||
default:
|
default:
|
||||||
return "UNKNOWN FLAVOR";
|
return "UNKNOWN FLAVOR";
|
||||||
}
|
}
|
||||||
|
@ -495,7 +491,7 @@ static int on_hold_tap_binding_pressed(struct zmk_behavior_binding *binding,
|
||||||
undecided_hold_tap = hold_tap;
|
undecided_hold_tap = hold_tap;
|
||||||
|
|
||||||
if (is_quick_tap(hold_tap)) {
|
if (is_quick_tap(hold_tap)) {
|
||||||
decide_hold_tap(hold_tap, HT_QUICK_TAP);
|
decide_hold_tap(hold_tap, HT_QUICK_TAP, -1);
|
||||||
}
|
}
|
||||||
|
|
||||||
// if this behavior was queued we have to adjust the timer to only
|
// if this behavior was queued we have to adjust the timer to only
|
||||||
|
@ -518,10 +514,10 @@ static int on_hold_tap_binding_released(struct zmk_behavior_binding *binding,
|
||||||
// We insert a timer event before the TH_KEY_UP event to verify.
|
// We insert a timer event before the TH_KEY_UP event to verify.
|
||||||
int work_cancel_result = k_delayed_work_cancel(&hold_tap->work);
|
int work_cancel_result = k_delayed_work_cancel(&hold_tap->work);
|
||||||
if (event.timestamp > (hold_tap->timestamp + hold_tap->config->tapping_term_ms)) {
|
if (event.timestamp > (hold_tap->timestamp + hold_tap->config->tapping_term_ms)) {
|
||||||
decide_hold_tap(hold_tap, HT_TIMER_EVENT);
|
decide_hold_tap(hold_tap, HT_TIMER_EVENT, -1);
|
||||||
}
|
}
|
||||||
|
|
||||||
decide_hold_tap(hold_tap, HT_KEY_UP);
|
decide_hold_tap(hold_tap, HT_KEY_UP, -1);
|
||||||
decide_retro_tap(hold_tap);
|
decide_retro_tap(hold_tap);
|
||||||
release_binding(hold_tap);
|
release_binding(hold_tap);
|
||||||
|
|
||||||
|
@ -553,14 +549,6 @@ static int position_state_changed_listener(const zmk_event_t *eh) {
|
||||||
return ZMK_EV_EVENT_BUBBLE;
|
return ZMK_EV_EVENT_BUBBLE;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Store the position of pressed key for positional hold-tap purposes.
|
|
||||||
if ((ev->state) // i.e. key pressed (not released)
|
|
||||||
&& (undecided_hold_tap->position_of_first_other_key_pressed ==
|
|
||||||
-1) // i.e. no other key has been pressed yet
|
|
||||||
) {
|
|
||||||
undecided_hold_tap->position_of_first_other_key_pressed = ev->position;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (undecided_hold_tap->position == ev->position) {
|
if (undecided_hold_tap->position == ev->position) {
|
||||||
if (ev->state) { // keydown
|
if (ev->state) { // keydown
|
||||||
LOG_ERR("hold-tap listener should be called before before most other listeners!");
|
LOG_ERR("hold-tap listener should be called before before most other listeners!");
|
||||||
|
@ -576,7 +564,7 @@ static int position_state_changed_listener(const zmk_event_t *eh) {
|
||||||
// have run out.
|
// have run out.
|
||||||
if (ev->timestamp >
|
if (ev->timestamp >
|
||||||
(undecided_hold_tap->timestamp + undecided_hold_tap->config->tapping_term_ms)) {
|
(undecided_hold_tap->timestamp + undecided_hold_tap->config->tapping_term_ms)) {
|
||||||
decide_hold_tap(undecided_hold_tap, HT_TIMER_EVENT);
|
decide_hold_tap(undecided_hold_tap, HT_TIMER_EVENT, -1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!ev->state && find_captured_keydown_event(ev->position) == NULL) {
|
if (!ev->state && find_captured_keydown_event(ev->position) == NULL) {
|
||||||
|
@ -636,7 +624,7 @@ void behavior_hold_tap_timer_work_handler(struct k_work *item) {
|
||||||
if (hold_tap->work_is_cancelled) {
|
if (hold_tap->work_is_cancelled) {
|
||||||
clear_hold_tap(hold_tap);
|
clear_hold_tap(hold_tap);
|
||||||
} else {
|
} else {
|
||||||
decide_hold_tap(hold_tap, HT_TIMER_EVENT);
|
decide_hold_tap(hold_tap, HT_TIMER_EVENT, -1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,5 +0,0 @@
|
||||||
ht_binding_pressed: 0 new undecided hold_tap
|
|
||||||
ht_decide: 0 decided tap (balanced decision moment key-up)
|
|
||||||
kp_pressed: usage_page 0x07 keycode 0x09 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
kp_released: usage_page 0x07 keycode 0x09 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
ht_binding_released: 0 cleaning up hold-tap
|
|
|
@ -1,5 +0,0 @@
|
||||||
ht_binding_pressed: 0 new undecided hold_tap
|
|
||||||
ht_decide: 0 decided tap (balanced decision moment timer)
|
|
||||||
kp_pressed: usage_page 0x07 keycode 0x09 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
kp_released: usage_page 0x07 keycode 0x09 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
ht_binding_released: 0 cleaning up hold-tap
|
|
|
@ -1,7 +0,0 @@
|
||||||
kp_pressed: usage_page 0x07 keycode 0x07 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
ht_binding_pressed: 0 new undecided hold_tap
|
|
||||||
kp_released: usage_page 0x07 keycode 0x07 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
ht_decide: 0 decided tap (balanced decision moment key-up)
|
|
||||||
kp_pressed: usage_page 0x07 keycode 0x09 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
kp_released: usage_page 0x07 keycode 0x09 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
ht_binding_released: 0 cleaning up hold-tap
|
|
|
@ -1,7 +0,0 @@
|
||||||
kp_pressed: usage_page 0x07 keycode 0x07 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
ht_binding_pressed: 0 new undecided hold_tap
|
|
||||||
kp_released: usage_page 0x07 keycode 0x07 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
ht_decide: 0 decided tap (balanced decision moment timer)
|
|
||||||
kp_pressed: usage_page 0x07 keycode 0x09 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
kp_released: usage_page 0x07 keycode 0x09 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
ht_binding_released: 0 cleaning up hold-tap
|
|
|
@ -1,7 +0,0 @@
|
||||||
ht_binding_pressed: 0 new undecided hold_tap
|
|
||||||
ht_decide: 0 decided tap (balanced decision moment timer)
|
|
||||||
kp_pressed: usage_page 0x07 keycode 0x09 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
kp_pressed: usage_page 0x07 keycode 0x07 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
kp_released: usage_page 0x07 keycode 0x07 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
kp_released: usage_page 0x07 keycode 0x09 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
ht_binding_released: 0 cleaning up hold-tap
|
|
|
@ -1,7 +0,0 @@
|
||||||
ht_binding_pressed: 0 new undecided hold_tap
|
|
||||||
ht_decide: 0 decided tap (balanced decision moment other-key-up)
|
|
||||||
kp_pressed: usage_page 0x07 keycode 0x09 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
kp_pressed: usage_page 0x07 keycode 0x07 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
kp_released: usage_page 0x07 keycode 0x07 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
kp_released: usage_page 0x07 keycode 0x09 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
ht_binding_released: 0 cleaning up hold-tap
|
|
|
@ -1,7 +0,0 @@
|
||||||
ht_binding_pressed: 0 new undecided hold_tap
|
|
||||||
ht_decide: 0 decided tap (balanced decision moment other-key-up)
|
|
||||||
kp_pressed: usage_page 0x07 keycode 0x09 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
kp_pressed: usage_page 0x07 keycode 0x07 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
kp_released: usage_page 0x07 keycode 0x07 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
kp_released: usage_page 0x07 keycode 0x09 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
ht_binding_released: 0 cleaning up hold-tap
|
|
|
@ -1,7 +0,0 @@
|
||||||
ht_binding_pressed: 0 new undecided hold_tap
|
|
||||||
ht_decide: 0 decided tap (balanced decision moment key-up)
|
|
||||||
kp_pressed: usage_page 0x07 keycode 0x09 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
kp_pressed: usage_page 0x07 keycode 0x07 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
kp_released: usage_page 0x07 keycode 0x09 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
ht_binding_released: 0 cleaning up hold-tap
|
|
||||||
kp_released: usage_page 0x07 keycode 0x07 implicit_mods 0x00 explicit_mods 0x00
|
|
|
@ -1,29 +0,0 @@
|
||||||
#include <dt-bindings/zmk/keys.h>
|
|
||||||
#include <behaviors.dtsi>
|
|
||||||
#include <dt-bindings/zmk/kscan_mock.h>
|
|
||||||
|
|
||||||
/ {
|
|
||||||
behaviors {
|
|
||||||
ht_bal: behavior_hold_tap_balanced {
|
|
||||||
compatible = "zmk,behavior-hold-tap";
|
|
||||||
label = "HOLD_TAP_BALANCED";
|
|
||||||
#binding-cells = <2>;
|
|
||||||
flavor = "balanced";
|
|
||||||
tapping-term-ms = <300>;
|
|
||||||
quick-tap-ms = <200>;
|
|
||||||
bindings = <&kp>, <&kp>;
|
|
||||||
hold-trigger-key-positions = <60>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
keymap {
|
|
||||||
compatible = "zmk,keymap";
|
|
||||||
label ="Default keymap";
|
|
||||||
|
|
||||||
default_layer {
|
|
||||||
bindings = <
|
|
||||||
&ht_bal LEFT_SHIFT F &kp J
|
|
||||||
&kp D &kp RIGHT_CONTROL>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
|
@ -1,5 +0,0 @@
|
||||||
ht_binding_pressed: 0 new undecided hold_tap
|
|
||||||
ht_decide: 0 decided tap (balanced decision moment key-up)
|
|
||||||
kp_pressed: usage_page 0x07 keycode 0x09 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
kp_released: usage_page 0x07 keycode 0x09 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
ht_binding_released: 0 cleaning up hold-tap
|
|
|
@ -1,5 +0,0 @@
|
||||||
ht_binding_pressed: 0 new undecided hold_tap
|
|
||||||
ht_decide: 0 decided tap (balanced decision moment timer)
|
|
||||||
kp_pressed: usage_page 0x07 keycode 0x09 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
kp_released: usage_page 0x07 keycode 0x09 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
ht_binding_released: 0 cleaning up hold-tap
|
|
|
@ -1,7 +0,0 @@
|
||||||
kp_pressed: usage_page 0x07 keycode 0x07 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
ht_binding_pressed: 0 new undecided hold_tap
|
|
||||||
kp_released: usage_page 0x07 keycode 0x07 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
ht_decide: 0 decided tap (balanced decision moment key-up)
|
|
||||||
kp_pressed: usage_page 0x07 keycode 0x09 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
kp_released: usage_page 0x07 keycode 0x09 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
ht_binding_released: 0 cleaning up hold-tap
|
|
|
@ -1,7 +0,0 @@
|
||||||
kp_pressed: usage_page 0x07 keycode 0x07 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
ht_binding_pressed: 0 new undecided hold_tap
|
|
||||||
kp_released: usage_page 0x07 keycode 0x07 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
ht_decide: 0 decided tap (balanced decision moment timer)
|
|
||||||
kp_pressed: usage_page 0x07 keycode 0x09 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
kp_released: usage_page 0x07 keycode 0x09 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
ht_binding_released: 0 cleaning up hold-tap
|
|
|
@ -1,7 +0,0 @@
|
||||||
ht_binding_pressed: 0 new undecided hold_tap
|
|
||||||
ht_decide: 0 decided hold-timer (balanced decision moment timer)
|
|
||||||
kp_pressed: usage_page 0x07 keycode 0xe1 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
kp_pressed: usage_page 0x07 keycode 0x07 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
kp_released: usage_page 0x07 keycode 0x07 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
kp_released: usage_page 0x07 keycode 0xe1 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
ht_binding_released: 0 cleaning up hold-tap
|
|
|
@ -1,7 +0,0 @@
|
||||||
ht_binding_pressed: 0 new undecided hold_tap
|
|
||||||
ht_decide: 0 decided hold-interrupt (balanced decision moment other-key-up)
|
|
||||||
kp_pressed: usage_page 0x07 keycode 0xe1 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
kp_pressed: usage_page 0x07 keycode 0x07 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
kp_released: usage_page 0x07 keycode 0x07 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
kp_released: usage_page 0x07 keycode 0xe1 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
ht_binding_released: 0 cleaning up hold-tap
|
|
|
@ -1,7 +0,0 @@
|
||||||
ht_binding_pressed: 0 new undecided hold_tap
|
|
||||||
ht_decide: 0 decided hold-interrupt (balanced decision moment other-key-up)
|
|
||||||
kp_pressed: usage_page 0x07 keycode 0xe1 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
kp_pressed: usage_page 0x07 keycode 0x07 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
kp_released: usage_page 0x07 keycode 0x07 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
kp_released: usage_page 0x07 keycode 0xe1 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
ht_binding_released: 0 cleaning up hold-tap
|
|
|
@ -1,7 +0,0 @@
|
||||||
ht_binding_pressed: 0 new undecided hold_tap
|
|
||||||
ht_decide: 0 decided tap (balanced decision moment key-up)
|
|
||||||
kp_pressed: usage_page 0x07 keycode 0x09 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
kp_pressed: usage_page 0x07 keycode 0x07 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
kp_released: usage_page 0x07 keycode 0x09 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
ht_binding_released: 0 cleaning up hold-tap
|
|
||||||
kp_released: usage_page 0x07 keycode 0x07 implicit_mods 0x00 explicit_mods 0x00
|
|
|
@ -1,29 +0,0 @@
|
||||||
#include <dt-bindings/zmk/keys.h>
|
|
||||||
#include <behaviors.dtsi>
|
|
||||||
#include <dt-bindings/zmk/kscan_mock.h>
|
|
||||||
|
|
||||||
/ {
|
|
||||||
behaviors {
|
|
||||||
ht_bal: behavior_hold_tap_balanced {
|
|
||||||
compatible = "zmk,behavior-hold-tap";
|
|
||||||
label = "HOLD_TAP_BALANCED";
|
|
||||||
#binding-cells = <2>;
|
|
||||||
flavor = "balanced";
|
|
||||||
tapping-term-ms = <300>;
|
|
||||||
quick-tap-ms = <200>;
|
|
||||||
bindings = <&kp>, <&kp>;
|
|
||||||
hold-trigger-key-positions = <1 2 3>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
keymap {
|
|
||||||
compatible = "zmk,keymap";
|
|
||||||
label ="Default keymap";
|
|
||||||
|
|
||||||
default_layer {
|
|
||||||
bindings = <
|
|
||||||
&ht_bal LEFT_SHIFT F &kp J
|
|
||||||
&kp D &kp RIGHT_CONTROL>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
|
@ -1,4 +0,0 @@
|
||||||
s/.*hid_listener_keycode/kp/p
|
|
||||||
s/.*mo_keymap_binding/mo/p
|
|
||||||
s/.*on_hold_tap_binding/ht_binding/p
|
|
||||||
s/.*decide_hold_tap/ht_decide/p
|
|
|
@ -1,5 +0,0 @@
|
||||||
ht_binding_pressed: 0 new undecided hold_tap
|
|
||||||
ht_decide: 0 decided tap (hold-preferred decision moment key-up)
|
|
||||||
kp_pressed: usage_page 0x07 keycode 0x09 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
kp_released: usage_page 0x07 keycode 0x09 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
ht_binding_released: 0 cleaning up hold-tap
|
|
|
@ -1,11 +0,0 @@
|
||||||
#include <dt-bindings/zmk/keys.h>
|
|
||||||
#include <behaviors.dtsi>
|
|
||||||
#include <dt-bindings/zmk/kscan_mock.h>
|
|
||||||
#include "../behavior_keymap.dtsi"
|
|
||||||
|
|
||||||
&kscan {
|
|
||||||
events = <
|
|
||||||
ZMK_MOCK_PRESS(0,0,10)
|
|
||||||
ZMK_MOCK_RELEASE(0,0,10)
|
|
||||||
>;
|
|
||||||
};
|
|
|
@ -1,4 +0,0 @@
|
||||||
s/.*hid_listener_keycode/kp/p
|
|
||||||
s/.*mo_keymap_binding/mo/p
|
|
||||||
s/.*on_hold_tap_binding/ht_binding/p
|
|
||||||
s/.*decide_hold_tap/ht_decide/p
|
|
|
@ -1,5 +0,0 @@
|
||||||
ht_binding_pressed: 0 new undecided hold_tap
|
|
||||||
ht_decide: 0 decided tap (hold-preferred decision moment timer)
|
|
||||||
kp_pressed: usage_page 0x07 keycode 0x09 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
kp_released: usage_page 0x07 keycode 0x09 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
ht_binding_released: 0 cleaning up hold-tap
|
|
|
@ -1,11 +0,0 @@
|
||||||
#include <dt-bindings/zmk/keys.h>
|
|
||||||
#include <behaviors.dtsi>
|
|
||||||
#include <dt-bindings/zmk/kscan_mock.h>
|
|
||||||
#include "../behavior_keymap.dtsi"
|
|
||||||
|
|
||||||
&kscan {
|
|
||||||
events = <
|
|
||||||
ZMK_MOCK_PRESS(0,0,500)
|
|
||||||
ZMK_MOCK_RELEASE(0,0,10)
|
|
||||||
>;
|
|
||||||
};
|
|
|
@ -1,4 +0,0 @@
|
||||||
s/.*hid_listener_keycode/kp/p
|
|
||||||
s/.*mo_keymap_binding/mo/p
|
|
||||||
s/.*on_hold_tap_binding/ht_binding/p
|
|
||||||
s/.*decide_hold_tap/ht_decide/p
|
|
|
@ -1,7 +0,0 @@
|
||||||
kp_pressed: usage_page 0x07 keycode 0x07 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
ht_binding_pressed: 0 new undecided hold_tap
|
|
||||||
kp_released: usage_page 0x07 keycode 0x07 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
ht_decide: 0 decided tap (hold-preferred decision moment key-up)
|
|
||||||
kp_pressed: usage_page 0x07 keycode 0x09 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
kp_released: usage_page 0x07 keycode 0x09 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
ht_binding_released: 0 cleaning up hold-tap
|
|
|
@ -1,13 +0,0 @@
|
||||||
#include <dt-bindings/zmk/keys.h>
|
|
||||||
#include <behaviors.dtsi>
|
|
||||||
#include <dt-bindings/zmk/kscan_mock.h>
|
|
||||||
#include "../behavior_keymap.dtsi"
|
|
||||||
|
|
||||||
&kscan {
|
|
||||||
events = <
|
|
||||||
ZMK_MOCK_PRESS(1,0,10) /*d*/
|
|
||||||
ZMK_MOCK_PRESS(0,0,100) /*mt f-shift */
|
|
||||||
ZMK_MOCK_RELEASE(1,0,10)
|
|
||||||
ZMK_MOCK_RELEASE(0,0,10)
|
|
||||||
>;
|
|
||||||
};
|
|
|
@ -1,4 +0,0 @@
|
||||||
s/.*hid_listener_keycode/kp/p
|
|
||||||
s/.*mo_keymap_binding/mo/p
|
|
||||||
s/.*on_hold_tap_binding/ht_binding/p
|
|
||||||
s/.*decide_hold_tap/ht_decide/p
|
|
|
@ -1,7 +0,0 @@
|
||||||
kp_pressed: usage_page 0x07 keycode 0x07 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
ht_binding_pressed: 0 new undecided hold_tap
|
|
||||||
kp_released: usage_page 0x07 keycode 0x07 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
ht_decide: 0 decided tap (hold-preferred decision moment timer)
|
|
||||||
kp_pressed: usage_page 0x07 keycode 0x09 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
kp_released: usage_page 0x07 keycode 0x09 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
ht_binding_released: 0 cleaning up hold-tap
|
|
|
@ -1,13 +0,0 @@
|
||||||
#include <dt-bindings/zmk/keys.h>
|
|
||||||
#include <behaviors.dtsi>
|
|
||||||
#include <dt-bindings/zmk/kscan_mock.h>
|
|
||||||
#include "../behavior_keymap.dtsi"
|
|
||||||
|
|
||||||
&kscan {
|
|
||||||
events = <
|
|
||||||
ZMK_MOCK_PRESS(1,0,10) /* d */
|
|
||||||
ZMK_MOCK_PRESS(0,0,100) /* mt f-shift */
|
|
||||||
ZMK_MOCK_RELEASE(1,0,400)
|
|
||||||
ZMK_MOCK_RELEASE(0,0,10)
|
|
||||||
>;
|
|
||||||
};
|
|
|
@ -1,4 +0,0 @@
|
||||||
s/.*hid_listener_keycode/kp/p
|
|
||||||
s/.*mo_keymap_binding/mo/p
|
|
||||||
s/.*on_hold_tap_binding/ht_binding/p
|
|
||||||
s/.*decide_hold_tap/ht_decide/p
|
|
|
@ -1,7 +0,0 @@
|
||||||
ht_binding_pressed: 0 new undecided hold_tap
|
|
||||||
ht_decide: 0 decided tap (hold-preferred decision moment other-key-down)
|
|
||||||
kp_pressed: usage_page 0x07 keycode 0x09 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
kp_pressed: usage_page 0x07 keycode 0x07 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
kp_released: usage_page 0x07 keycode 0x07 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
kp_released: usage_page 0x07 keycode 0x09 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
ht_binding_released: 0 cleaning up hold-tap
|
|
|
@ -1,14 +0,0 @@
|
||||||
#include <dt-bindings/zmk/keys.h>
|
|
||||||
#include <behaviors.dtsi>
|
|
||||||
#include <dt-bindings/zmk/kscan_mock.h>
|
|
||||||
#include "../behavior_keymap.dtsi"
|
|
||||||
|
|
||||||
&kscan {
|
|
||||||
events = <
|
|
||||||
ZMK_MOCK_PRESS(0,0,200)
|
|
||||||
ZMK_MOCK_PRESS(1,0,200)
|
|
||||||
/* timer fires */
|
|
||||||
ZMK_MOCK_RELEASE(1,0,10)
|
|
||||||
ZMK_MOCK_RELEASE(0,0,10)
|
|
||||||
>;
|
|
||||||
};
|
|
|
@ -1,4 +0,0 @@
|
||||||
s/.*hid_listener_keycode/kp/p
|
|
||||||
s/.*mo_keymap_binding/mo/p
|
|
||||||
s/.*on_hold_tap_binding/ht_binding/p
|
|
||||||
s/.*decide_hold_tap/ht_decide/p
|
|
|
@ -1,7 +0,0 @@
|
||||||
ht_binding_pressed: 0 new undecided hold_tap
|
|
||||||
ht_decide: 0 decided tap (hold-preferred decision moment other-key-down)
|
|
||||||
kp_pressed: usage_page 0x07 keycode 0x09 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
kp_pressed: usage_page 0x07 keycode 0x07 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
kp_released: usage_page 0x07 keycode 0x07 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
kp_released: usage_page 0x07 keycode 0x09 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
ht_binding_released: 0 cleaning up hold-tap
|
|
|
@ -1,14 +0,0 @@
|
||||||
#include <dt-bindings/zmk/keys.h>
|
|
||||||
#include <behaviors.dtsi>
|
|
||||||
#include <dt-bindings/zmk/kscan_mock.h>
|
|
||||||
#include "../behavior_keymap.dtsi"
|
|
||||||
|
|
||||||
&kscan {
|
|
||||||
events = <
|
|
||||||
ZMK_MOCK_PRESS(0,0,100)
|
|
||||||
ZMK_MOCK_PRESS(1,0,100)
|
|
||||||
ZMK_MOCK_RELEASE(1,0,200)
|
|
||||||
/* timer fires */
|
|
||||||
ZMK_MOCK_RELEASE(0,0,10)
|
|
||||||
>;
|
|
||||||
};
|
|
|
@ -1,4 +0,0 @@
|
||||||
s/.*hid_listener_keycode/kp/p
|
|
||||||
s/.*mo_keymap_binding/mo/p
|
|
||||||
s/.*on_hold_tap_binding/ht_binding/p
|
|
||||||
s/.*decide_hold_tap/ht_decide/p
|
|
|
@ -1,7 +0,0 @@
|
||||||
ht_binding_pressed: 0 new undecided hold_tap
|
|
||||||
ht_decide: 0 decided tap (hold-preferred decision moment other-key-down)
|
|
||||||
kp_pressed: usage_page 0x07 keycode 0x09 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
kp_pressed: usage_page 0x07 keycode 0x07 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
kp_released: usage_page 0x07 keycode 0x07 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
kp_released: usage_page 0x07 keycode 0x09 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
ht_binding_released: 0 cleaning up hold-tap
|
|
|
@ -1,14 +0,0 @@
|
||||||
#include <dt-bindings/zmk/keys.h>
|
|
||||||
#include <behaviors.dtsi>
|
|
||||||
#include <dt-bindings/zmk/kscan_mock.h>
|
|
||||||
#include "../behavior_keymap.dtsi"
|
|
||||||
|
|
||||||
&kscan {
|
|
||||||
events = <
|
|
||||||
ZMK_MOCK_PRESS(0,0,10)
|
|
||||||
ZMK_MOCK_PRESS(1,0,10)
|
|
||||||
ZMK_MOCK_RELEASE(1,0,10)
|
|
||||||
ZMK_MOCK_RELEASE(0,0,10)
|
|
||||||
/* timer */
|
|
||||||
>;
|
|
||||||
};
|
|
|
@ -1,4 +0,0 @@
|
||||||
s/.*hid_listener_keycode/kp/p
|
|
||||||
s/.*mo_keymap_binding/mo/p
|
|
||||||
s/.*on_hold_tap_binding/ht_binding/p
|
|
||||||
s/.*decide_hold_tap/ht_decide/p
|
|
|
@ -1,7 +0,0 @@
|
||||||
ht_binding_pressed: 0 new undecided hold_tap
|
|
||||||
ht_decide: 0 decided tap (hold-preferred decision moment other-key-down)
|
|
||||||
kp_pressed: usage_page 0x07 keycode 0x09 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
kp_pressed: usage_page 0x07 keycode 0x07 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
kp_released: usage_page 0x07 keycode 0x09 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
ht_binding_released: 0 cleaning up hold-tap
|
|
||||||
kp_released: usage_page 0x07 keycode 0x07 implicit_mods 0x00 explicit_mods 0x00
|
|
|
@ -1,14 +0,0 @@
|
||||||
#include <dt-bindings/zmk/keys.h>
|
|
||||||
#include <behaviors.dtsi>
|
|
||||||
#include <dt-bindings/zmk/kscan_mock.h>
|
|
||||||
#include "../behavior_keymap.dtsi"
|
|
||||||
|
|
||||||
&kscan {
|
|
||||||
events = <
|
|
||||||
ZMK_MOCK_PRESS(0,0,100)
|
|
||||||
ZMK_MOCK_PRESS(1,0,100)
|
|
||||||
ZMK_MOCK_RELEASE(0,0,200)
|
|
||||||
/* timer fires */
|
|
||||||
ZMK_MOCK_RELEASE(1,0,10)
|
|
||||||
>;
|
|
||||||
};
|
|
|
@ -1,29 +0,0 @@
|
||||||
#include <dt-bindings/zmk/keys.h>
|
|
||||||
#include <behaviors.dtsi>
|
|
||||||
#include <dt-bindings/zmk/kscan_mock.h>
|
|
||||||
|
|
||||||
/ {
|
|
||||||
behaviors {
|
|
||||||
ht_hold: behavior_hold_tap_hold_preferred {
|
|
||||||
compatible = "zmk,behavior-hold-tap";
|
|
||||||
label = "HOLD_TAP_HOLD_PREFERRED";
|
|
||||||
#binding-cells = <2>;
|
|
||||||
flavor = "hold-preferred";
|
|
||||||
tapping-term-ms = <300>;
|
|
||||||
quick-tap-ms = <200>;
|
|
||||||
bindings = <&kp>, <&kp>;
|
|
||||||
hold-trigger-key-positions = <60>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
keymap {
|
|
||||||
compatible = "zmk,keymap";
|
|
||||||
label ="Default keymap";
|
|
||||||
|
|
||||||
default_layer {
|
|
||||||
bindings = <
|
|
||||||
&ht_hold LEFT_SHIFT F &kp J
|
|
||||||
&kp D &kp RIGHT_CONTROL>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
|
@ -1,4 +0,0 @@
|
||||||
s/.*hid_listener_keycode/kp/p
|
|
||||||
s/.*mo_keymap_binding/mo/p
|
|
||||||
s/.*on_hold_tap_binding/ht_binding/p
|
|
||||||
s/.*decide_hold_tap/ht_decide/p
|
|
|
@ -1,5 +0,0 @@
|
||||||
ht_binding_pressed: 0 new undecided hold_tap
|
|
||||||
ht_decide: 0 decided tap (hold-preferred decision moment key-up)
|
|
||||||
kp_pressed: usage_page 0x07 keycode 0x09 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
kp_released: usage_page 0x07 keycode 0x09 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
ht_binding_released: 0 cleaning up hold-tap
|
|
|
@ -1,11 +0,0 @@
|
||||||
#include <dt-bindings/zmk/keys.h>
|
|
||||||
#include <behaviors.dtsi>
|
|
||||||
#include <dt-bindings/zmk/kscan_mock.h>
|
|
||||||
#include "../behavior_keymap.dtsi"
|
|
||||||
|
|
||||||
&kscan {
|
|
||||||
events = <
|
|
||||||
ZMK_MOCK_PRESS(0,0,10)
|
|
||||||
ZMK_MOCK_RELEASE(0,0,10)
|
|
||||||
>;
|
|
||||||
};
|
|
|
@ -1,4 +0,0 @@
|
||||||
s/.*hid_listener_keycode/kp/p
|
|
||||||
s/.*mo_keymap_binding/mo/p
|
|
||||||
s/.*on_hold_tap_binding/ht_binding/p
|
|
||||||
s/.*decide_hold_tap/ht_decide/p
|
|
|
@ -1,5 +0,0 @@
|
||||||
ht_binding_pressed: 0 new undecided hold_tap
|
|
||||||
ht_decide: 0 decided tap (hold-preferred decision moment timer)
|
|
||||||
kp_pressed: usage_page 0x07 keycode 0x09 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
kp_released: usage_page 0x07 keycode 0x09 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
ht_binding_released: 0 cleaning up hold-tap
|
|
|
@ -1,11 +0,0 @@
|
||||||
#include <dt-bindings/zmk/keys.h>
|
|
||||||
#include <behaviors.dtsi>
|
|
||||||
#include <dt-bindings/zmk/kscan_mock.h>
|
|
||||||
#include "../behavior_keymap.dtsi"
|
|
||||||
|
|
||||||
&kscan {
|
|
||||||
events = <
|
|
||||||
ZMK_MOCK_PRESS(0,0,500)
|
|
||||||
ZMK_MOCK_RELEASE(0,0,10)
|
|
||||||
>;
|
|
||||||
};
|
|
|
@ -1,4 +0,0 @@
|
||||||
s/.*hid_listener_keycode/kp/p
|
|
||||||
s/.*mo_keymap_binding/mo/p
|
|
||||||
s/.*on_hold_tap_binding/ht_binding/p
|
|
||||||
s/.*decide_hold_tap/ht_decide/p
|
|
|
@ -1,7 +0,0 @@
|
||||||
kp_pressed: usage_page 0x07 keycode 0x07 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
ht_binding_pressed: 0 new undecided hold_tap
|
|
||||||
kp_released: usage_page 0x07 keycode 0x07 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
ht_decide: 0 decided tap (hold-preferred decision moment key-up)
|
|
||||||
kp_pressed: usage_page 0x07 keycode 0x09 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
kp_released: usage_page 0x07 keycode 0x09 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
ht_binding_released: 0 cleaning up hold-tap
|
|
|
@ -1,13 +0,0 @@
|
||||||
#include <dt-bindings/zmk/keys.h>
|
|
||||||
#include <behaviors.dtsi>
|
|
||||||
#include <dt-bindings/zmk/kscan_mock.h>
|
|
||||||
#include "../behavior_keymap.dtsi"
|
|
||||||
|
|
||||||
&kscan {
|
|
||||||
events = <
|
|
||||||
ZMK_MOCK_PRESS(1,0,10) /*d*/
|
|
||||||
ZMK_MOCK_PRESS(0,0,100) /*mt f-shift */
|
|
||||||
ZMK_MOCK_RELEASE(1,0,10)
|
|
||||||
ZMK_MOCK_RELEASE(0,0,10)
|
|
||||||
>;
|
|
||||||
};
|
|
|
@ -1,4 +0,0 @@
|
||||||
s/.*hid_listener_keycode/kp/p
|
|
||||||
s/.*mo_keymap_binding/mo/p
|
|
||||||
s/.*on_hold_tap_binding/ht_binding/p
|
|
||||||
s/.*decide_hold_tap/ht_decide/p
|
|
|
@ -1,7 +0,0 @@
|
||||||
kp_pressed: usage_page 0x07 keycode 0x07 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
ht_binding_pressed: 0 new undecided hold_tap
|
|
||||||
kp_released: usage_page 0x07 keycode 0x07 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
ht_decide: 0 decided tap (hold-preferred decision moment timer)
|
|
||||||
kp_pressed: usage_page 0x07 keycode 0x09 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
kp_released: usage_page 0x07 keycode 0x09 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
ht_binding_released: 0 cleaning up hold-tap
|
|
|
@ -1,13 +0,0 @@
|
||||||
#include <dt-bindings/zmk/keys.h>
|
|
||||||
#include <behaviors.dtsi>
|
|
||||||
#include <dt-bindings/zmk/kscan_mock.h>
|
|
||||||
#include "../behavior_keymap.dtsi"
|
|
||||||
|
|
||||||
&kscan {
|
|
||||||
events = <
|
|
||||||
ZMK_MOCK_PRESS(1,0,10) /* d */
|
|
||||||
ZMK_MOCK_PRESS(0,0,100) /* mt f-shift */
|
|
||||||
ZMK_MOCK_RELEASE(1,0,400)
|
|
||||||
ZMK_MOCK_RELEASE(0,0,10)
|
|
||||||
>;
|
|
||||||
};
|
|
|
@ -1,4 +0,0 @@
|
||||||
s/.*hid_listener_keycode/kp/p
|
|
||||||
s/.*mo_keymap_binding/mo/p
|
|
||||||
s/.*on_hold_tap_binding/ht_binding/p
|
|
||||||
s/.*decide_hold_tap/ht_decide/p
|
|
|
@ -1,7 +0,0 @@
|
||||||
ht_binding_pressed: 0 new undecided hold_tap
|
|
||||||
ht_decide: 0 decided hold-interrupt (hold-preferred decision moment other-key-down)
|
|
||||||
kp_pressed: usage_page 0x07 keycode 0xe1 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
kp_pressed: usage_page 0x07 keycode 0x07 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
kp_released: usage_page 0x07 keycode 0x07 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
kp_released: usage_page 0x07 keycode 0xe1 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
ht_binding_released: 0 cleaning up hold-tap
|
|
|
@ -1,14 +0,0 @@
|
||||||
#include <dt-bindings/zmk/keys.h>
|
|
||||||
#include <behaviors.dtsi>
|
|
||||||
#include <dt-bindings/zmk/kscan_mock.h>
|
|
||||||
#include "../behavior_keymap.dtsi"
|
|
||||||
|
|
||||||
&kscan {
|
|
||||||
events = <
|
|
||||||
ZMK_MOCK_PRESS(0,0,200)
|
|
||||||
ZMK_MOCK_PRESS(1,0,200)
|
|
||||||
/* timer fires */
|
|
||||||
ZMK_MOCK_RELEASE(1,0,10)
|
|
||||||
ZMK_MOCK_RELEASE(0,0,10)
|
|
||||||
>;
|
|
||||||
};
|
|
|
@ -1,4 +0,0 @@
|
||||||
s/.*hid_listener_keycode/kp/p
|
|
||||||
s/.*mo_keymap_binding/mo/p
|
|
||||||
s/.*on_hold_tap_binding/ht_binding/p
|
|
||||||
s/.*decide_hold_tap/ht_decide/p
|
|
|
@ -1,7 +0,0 @@
|
||||||
ht_binding_pressed: 0 new undecided hold_tap
|
|
||||||
ht_decide: 0 decided hold-interrupt (hold-preferred decision moment other-key-down)
|
|
||||||
kp_pressed: usage_page 0x07 keycode 0xe1 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
kp_pressed: usage_page 0x07 keycode 0x07 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
kp_released: usage_page 0x07 keycode 0x07 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
kp_released: usage_page 0x07 keycode 0xe1 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
ht_binding_released: 0 cleaning up hold-tap
|
|
|
@ -1,14 +0,0 @@
|
||||||
#include <dt-bindings/zmk/keys.h>
|
|
||||||
#include <behaviors.dtsi>
|
|
||||||
#include <dt-bindings/zmk/kscan_mock.h>
|
|
||||||
#include "../behavior_keymap.dtsi"
|
|
||||||
|
|
||||||
&kscan {
|
|
||||||
events = <
|
|
||||||
ZMK_MOCK_PRESS(0,0,100)
|
|
||||||
ZMK_MOCK_PRESS(1,0,100)
|
|
||||||
ZMK_MOCK_RELEASE(1,0,200)
|
|
||||||
/* timer fires */
|
|
||||||
ZMK_MOCK_RELEASE(0,0,10)
|
|
||||||
>;
|
|
||||||
};
|
|
|
@ -1,4 +0,0 @@
|
||||||
s/.*hid_listener_keycode/kp/p
|
|
||||||
s/.*mo_keymap_binding/mo/p
|
|
||||||
s/.*on_hold_tap_binding/ht_binding/p
|
|
||||||
s/.*decide_hold_tap/ht_decide/p
|
|
|
@ -1,7 +0,0 @@
|
||||||
ht_binding_pressed: 0 new undecided hold_tap
|
|
||||||
ht_decide: 0 decided hold-interrupt (hold-preferred decision moment other-key-down)
|
|
||||||
kp_pressed: usage_page 0x07 keycode 0xe1 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
kp_pressed: usage_page 0x07 keycode 0x07 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
kp_released: usage_page 0x07 keycode 0x07 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
kp_released: usage_page 0x07 keycode 0xe1 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
ht_binding_released: 0 cleaning up hold-tap
|
|
|
@ -1,14 +0,0 @@
|
||||||
#include <dt-bindings/zmk/keys.h>
|
|
||||||
#include <behaviors.dtsi>
|
|
||||||
#include <dt-bindings/zmk/kscan_mock.h>
|
|
||||||
#include "../behavior_keymap.dtsi"
|
|
||||||
|
|
||||||
&kscan {
|
|
||||||
events = <
|
|
||||||
ZMK_MOCK_PRESS(0,0,10)
|
|
||||||
ZMK_MOCK_PRESS(1,0,10)
|
|
||||||
ZMK_MOCK_RELEASE(1,0,10)
|
|
||||||
ZMK_MOCK_RELEASE(0,0,10)
|
|
||||||
/* timer */
|
|
||||||
>;
|
|
||||||
};
|
|
|
@ -1,4 +0,0 @@
|
||||||
s/.*hid_listener_keycode/kp/p
|
|
||||||
s/.*mo_keymap_binding/mo/p
|
|
||||||
s/.*on_hold_tap_binding/ht_binding/p
|
|
||||||
s/.*decide_hold_tap/ht_decide/p
|
|
|
@ -1,7 +0,0 @@
|
||||||
ht_binding_pressed: 0 new undecided hold_tap
|
|
||||||
ht_decide: 0 decided hold-interrupt (hold-preferred decision moment other-key-down)
|
|
||||||
kp_pressed: usage_page 0x07 keycode 0xe1 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
kp_pressed: usage_page 0x07 keycode 0x07 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
kp_released: usage_page 0x07 keycode 0xe1 implicit_mods 0x00 explicit_mods 0x00
|
|
||||||
ht_binding_released: 0 cleaning up hold-tap
|
|
||||||
kp_released: usage_page 0x07 keycode 0x07 implicit_mods 0x00 explicit_mods 0x00
|
|
|
@ -1,14 +0,0 @@
|
||||||
#include <dt-bindings/zmk/keys.h>
|
|
||||||
#include <behaviors.dtsi>
|
|
||||||
#include <dt-bindings/zmk/kscan_mock.h>
|
|
||||||
#include "../behavior_keymap.dtsi"
|
|
||||||
|
|
||||||
&kscan {
|
|
||||||
events = <
|
|
||||||
ZMK_MOCK_PRESS(0,0,100)
|
|
||||||
ZMK_MOCK_PRESS(1,0,100)
|
|
||||||
ZMK_MOCK_RELEASE(0,0,200)
|
|
||||||
/* timer fires */
|
|
||||||
ZMK_MOCK_RELEASE(1,0,10)
|
|
||||||
>;
|
|
||||||
};
|
|
|
@ -1,29 +0,0 @@
|
||||||
#include <dt-bindings/zmk/keys.h>
|
|
||||||
#include <behaviors.dtsi>
|
|
||||||
#include <dt-bindings/zmk/kscan_mock.h>
|
|
||||||
|
|
||||||
/ {
|
|
||||||
behaviors {
|
|
||||||
ht_hold: behavior_hold_tap_hold_preferred {
|
|
||||||
compatible = "zmk,behavior-hold-tap";
|
|
||||||
label = "HOLD_TAP_HOLD_PREFERRED";
|
|
||||||
#binding-cells = <2>;
|
|
||||||
flavor = "hold-preferred";
|
|
||||||
tapping-term-ms = <300>;
|
|
||||||
quick-tap-ms = <200>;
|
|
||||||
bindings = <&kp>, <&kp>;
|
|
||||||
hold-trigger-key-positions = <1 2 3>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
keymap {
|
|
||||||
compatible = "zmk,keymap";
|
|
||||||
label ="Default keymap";
|
|
||||||
|
|
||||||
default_layer {
|
|
||||||
bindings = <
|
|
||||||
&ht_hold LEFT_SHIFT F &kp J
|
|
||||||
&kp D &kp RIGHT_CONTROL>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
|
@ -4,15 +4,15 @@
|
||||||
|
|
||||||
/ {
|
/ {
|
||||||
behaviors {
|
behaviors {
|
||||||
ht_tap: behavior_hold_tap_tap_preferred {
|
ht_tpp: behavior_hold_tap_tap_positionally_preferred {
|
||||||
compatible = "zmk,behavior-hold-tap";
|
compatible = "zmk,behavior-hold-tap";
|
||||||
label = "HOLD_TAP_TAP_PREFERRED";
|
label = "HOLD_TAP_TAP_POSITIONALLY_PREFERRED";
|
||||||
#binding-cells = <2>;
|
#binding-cells = <2>;
|
||||||
flavor = "tap-preferred";
|
flavor = "tap-preferred";
|
||||||
tapping-term-ms = <300>;
|
tapping-term-ms = <300>;
|
||||||
quick-tap-ms = <200>;
|
quick-tap-ms = <200>;
|
||||||
bindings = <&kp>, <&kp>;
|
bindings = <&kp>, <&kp>;
|
||||||
hold-trigger-key-positions = <60>;
|
hold-trigger-key-positions = <99>;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -22,7 +22,7 @@
|
||||||
|
|
||||||
default_layer {
|
default_layer {
|
||||||
bindings = <
|
bindings = <
|
||||||
&ht_tap LEFT_SHIFT F &kp J
|
&ht_tpp LEFT_SHIFT F &kp J
|
||||||
&kp D &kp RIGHT_CONTROL>;
|
&kp D &kp RIGHT_CONTROL>;
|
||||||
};
|
};
|
||||||
};
|
};
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue