From d421e8d7220fe88ebf23c5020ee902b488d69778 Mon Sep 17 00:00:00 2001 From: Christoph Cullmann Date: Sat, 12 Aug 2023 16:08:58 +0200 Subject: try again with achordion --- planck/keymap.c | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) (limited to 'planck/keymap.c') diff --git a/planck/keymap.c b/planck/keymap.c index 403f5a5..024673b 100644 --- a/planck/keymap.c +++ b/planck/keymap.c @@ -155,3 +155,37 @@ layer_state_t layer_state_set_user(layer_state_t state) rgblight_set_layer_state(_NAV, layer_state_cmp(state, _NAV)); return state; } + +// +// improve home row modifiers via achordion +// + +#include "achordion.h" + +bool process_record_user(uint16_t keycode, keyrecord_t* record) +{ + if (!process_achordion(keycode, record)) { + return false; + } + + return true; +} + +void matrix_scan_user(void) +{ + achordion_task(); +} + +static bool planck_on_left_hand(keypos_t pos) +{ + // planck is like a split keyboard, beside for the last row + return (pos.row < 3) || (pos.row == 3 && pos.col < 3) || (pos.row == 7 && pos.col > 2); +} + +bool achordion_chord(uint16_t tap_hold_keycode, + keyrecord_t* tap_hold_record, + uint16_t other_keycode, + keyrecord_t* other_record) +{ + return planck_on_left_hand(tap_hold_record->event.key) != planck_on_left_hand(other_record->event.key); +} -- cgit v1.2.3