diff options
author | Pete Johanson <peter@peterjohanson.com> | 2020-06-21 21:43:44 -0400 |
---|---|---|
committer | Pete Johanson <peter@peterjohanson.com> | 2020-06-21 21:43:44 -0400 |
commit | 223edf05ad08938b066f9187668ebfae43c5e91a (patch) | |
tree | e2719b609c701a72b9185b371d3824edf3af8620 /app/src/behaviors/behavior_hid.c | |
parent | 7e659851c80bf2819554d93ad9971f56aa5b225b (diff) |
Refactor global bindings, implement mod-tap.
* Use extra comptible = "zmk,behavior-global" to add
behaviors to global bindings for event notification.
* Implement mod-tap, as a keymap binding and global one
to skip tap if other keycode pressed while held.
Diffstat (limited to 'app/src/behaviors/behavior_hid.c')
-rw-r--r-- | app/src/behaviors/behavior_hid.c | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/app/src/behaviors/behavior_hid.c b/app/src/behaviors/behavior_hid.c index 2779568..0aeade5 100644 --- a/app/src/behaviors/behavior_hid.c +++ b/app/src/behaviors/behavior_hid.c @@ -42,9 +42,27 @@ static int on_keycode_released(struct device *dev, u32_t keycode) return zmk_endpoints_send_report(changes); } +static int on_modifiers_pressed(struct device *dev, zmk_mod_flags modifiers) +{ + LOG_DBG("modifiers %d", modifiers); + + zmk_hid_register_mods(modifiers); + return zmk_endpoints_send_report(Keypad); +} + +static int on_modifiers_released(struct device *dev, zmk_mod_flags modifiers) +{ + LOG_DBG("modifiers %d", modifiers); + + zmk_hid_unregister_mods(modifiers); + return zmk_endpoints_send_report(Keypad); +} + static const struct behavior_driver_api behavior_hid_driver_api = { .keycode_pressed = on_keycode_pressed, - .keycode_released = on_keycode_released + .keycode_released = on_keycode_released, + .modifiers_pressed = on_modifiers_pressed, + .modifiers_released = on_modifiers_released }; |