From b865b9e1706ad28ae4882bd2e0331e98808295fa Mon Sep 17 00:00:00 2001 From: Ryan Date: Mon, 27 Feb 2023 20:28:15 +1100 Subject: Add changelog for Leader Key refactor (#19953) --- docs/ChangeLog/20230226.md | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'docs/ChangeLog') diff --git a/docs/ChangeLog/20230226.md b/docs/ChangeLog/20230226.md index f16371b99f..df5095ac7b 100644 --- a/docs/ChangeLog/20230226.md +++ b/docs/ChangeLog/20230226.md @@ -82,6 +82,31 @@ uint16_t get_quick_tap_term(uint16_t keycode, keyrecord_t *record) { For more details, please read the updated documentation section on [Quick Tap Term](tap_hold.md#quick-tap-term). +### Leader Key Rework :id=leader-key-rework ([#19632](https://github.com/qmk/qmk_firmware/pull/19632)) + +The Leader Key feature API has been significantly improved, along with some bugfixes and added tests. + +Instead of defining your leader sequences in `matrix_scan_user()`, they are now handled in the `leader_end_user()` callback, and the `LEADER_EXTERNS()`/`LEADER_DICTIONARY()` macros are no longer needed: + +```c +void leader_end_user(void) { + if (leader_sequence_one_key(KC_F)) { + // Leader, f => Types the below string + SEND_STRING("QMK is awesome."); + } else if (leader_sequence_two_keys(KC_D, KC_D)) { + // Leader, d, d => Ctrl+A, Ctrl+C + SEND_STRING(SS_LCTL("a") SS_LCTL("c")); + } else if (leader_sequence_three_keys(KC_D, KC_D, KC_S)) { + // Leader, d, d, s => Types the below string + SEND_STRING("https://start.duckduckgo.com\n"); + } else if (leader_sequence_two_keys(KC_A, KC_S)) { + // Leader, a, s => GUI+S + tap_code16(LGUI(KC_S)); + } +} +``` + +For more information please see the [Leader Key documentation](feature_leader_key.md). ### Updated Keyboard Codebases :id=updated-keyboard-codebases -- cgit v1.2.3