From bbf7a20b33de2d203518687cb5cd1aa85005ea27 Mon Sep 17 00:00:00 2001 From: Ryan Date: Mon, 13 Feb 2023 03:19:02 +1100 Subject: Refactor Leader key feature (#19632) Co-authored-by: Drashna Jaelre --- keyboards/signum/3_0/keymaps/sgurenkov/keymap.c | 70 ++++++++++++++----------- 1 file changed, 40 insertions(+), 30 deletions(-) (limited to 'keyboards/signum/3_0/keymaps') diff --git a/keyboards/signum/3_0/keymaps/sgurenkov/keymap.c b/keyboards/signum/3_0/keymaps/sgurenkov/keymap.c index cfd848fcfd..9353d28472 100644 --- a/keyboards/signum/3_0/keymaps/sgurenkov/keymap.c +++ b/keyboards/signum/3_0/keymaps/sgurenkov/keymap.c @@ -92,37 +92,47 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return true; } -LEADER_EXTERNS(); - -void matrix_scan_user(void) { - LEADER_DICTIONARY() { - leading = false; - leader_end(); - - // Cancel task CTRL+C - SEQ_ONE_KEY(KC_C) { tap_code16(C(KC_C)); } - // copy - SEQ_ONE_KEY(KC_Y) { tap_code16(G(KC_C)); } - // cut - SEQ_ONE_KEY(KC_X) { tap_code16(G(KC_X)); } - // paste - SEQ_ONE_KEY(KC_P) { tap_code16(G(KC_V)); } - // undo - SEQ_ONE_KEY(KC_U) { tap_code16(G(KC_Z)); } - // redo - SEQ_ONE_KEY(KC_R) { tap_code16(S(G(KC_Z))); } - // delete line - SEQ_TWO_KEYS(KC_D, KC_D) { - register_code(KC_LGUI); +void leader_end_user(void) { + // Cancel task CTRL+C + if (leader_sequence_one_key(KC_C)) { + tap_code16(C(KC_C)); + } + // copy + if (leader_sequence_one_key(KC_Y)) { + tap_code16(G(KC_C)); + } + // cut + if (leader_sequence_one_key(KC_X)) { + tap_code16(G(KC_X)); + } + // paste + if (leader_sequence_one_key(KC_P)) { + tap_code16(G(KC_V)); + } + // undo + if (leader_sequence_one_key(KC_U)) { + tap_code16(G(KC_Z)); + } + // redo + if (leader_sequence_one_key(KC_R)) { + tap_code16(S(G(KC_Z))); + } + // delete line + if (leader_sequence_two_keys(KC_D, KC_D)) { + register_code(KC_LGUI); - tap_code(KC_RIGHT); + tap_code(KC_RIGHT); - tap_code(KC_BACKSPACE); + tap_code(KC_BACKSPACE); - unregister_code(KC_LGUI); - } - // go to the beginning of the string - SEQ_ONE_KEY(KC_H) { tap_code16(G(KC_LEFT)); } - // go to the end of the string - SEQ_ONE_KEY(KC_L) { tap_code16(G(KC_RIGHT)); } + unregister_code(KC_LGUI); + } + // go to the beginning of the string + if (leader_sequence_one_key(KC_H)) { + tap_code16(G(KC_LEFT)); } + // go to the end of the string + if (leader_sequence_one_key(KC_L)) { + tap_code16(G(KC_RIGHT)); + } +} -- cgit v1.2.3