From 453b862cd610b00aa92df29df11c48af8eab61f9 Mon Sep 17 00:00:00 2001 From: bfayers Date: Thu, 14 Dec 2023 13:53:45 +0000 Subject: [PATCH 01/34] Personal keymap --- .../k2_pro/iso/rgb/keymaps/bfayers/keymap.c | 59 +++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/keymap.c diff --git a/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/keymap.c b/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/keymap.c new file mode 100644 index 000000000000..052251bd8b92 --- /dev/null +++ b/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/keymap.c @@ -0,0 +1,59 @@ +/* Copyright 2022 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +// clang-format off +enum layers{ + MAC_BASE, + MAC_FN, + WIN_BASE, + WIN_FN +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[MAC_BASE] = LAYOUT_iso_85( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_DEL, RGB_MOD, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_ENT, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, KC_HOME, + KC_LSFT, KC_INT1, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, + KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD,MO(MAC_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + +[MAC_FN] = LAYOUT_iso_85( + KC_TRNS, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS, RGB_TOG, + KC_TRNS, BT_HST1, BT_HST2, BT_HST3, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, DM_REC1, DM_REC2, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, DM_PLY1, DM_PLY2, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BAT_LVL, NK_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + +[WIN_BASE] = LAYOUT_iso_85( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_DEL, RGB_MOD, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_ENT, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, KC_HOME, + KC_LSFT, KC_INT1, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, MO(WIN_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + +[WIN_FN] = LAYOUT_iso_85( + KC_TRNS, KC_BRID, KC_BRIU, KC_TASK, KC_FILE, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS, RGB_TOG, + KC_TRNS, BT_HST1, BT_HST2, BT_HST3, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, DM_REC1, DM_REC2, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, DM_PLY1, DM_PLY2, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BAT_LVL, NK_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) +}; \ No newline at end of file From fdc64908e17955b6e4073f195d291a4b8be3f5c0 Mon Sep 17 00:00:00 2001 From: bfayers Date: Thu, 14 Dec 2023 14:00:54 +0000 Subject: [PATCH 02/34] Add tap dance for leftshift/caps --- .../k2_pro/iso/rgb/keymaps/bfayers/keymap.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/keymap.c b/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/keymap.c index 052251bd8b92..93e1c2e1c67d 100644 --- a/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/keymap.c +++ b/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/keymap.c @@ -30,7 +30,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_ENT, KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, KC_HOME, - KC_LSFT, KC_INT1, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, + TD(TD_LSHIFT_CAPS), KC_INT1, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD,MO(MAC_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), [MAC_FN] = LAYOUT_iso_85( @@ -46,7 +46,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_ENT, KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, KC_HOME, - KC_LSFT, KC_INT1, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, + TD(TD_LSHIFT_CAPS), KC_INT1, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, MO(WIN_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), [WIN_FN] = LAYOUT_iso_85( @@ -56,4 +56,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, DM_PLY1, DM_PLY2, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BAT_LVL, NK_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) +}; + +// Tap Dance Declarations +enum { + TD_LSHIFT_CAPS, +}; + +// Tap Dance Definitions +tap_dance_action_t tap_dance_actions[] = { + // Tap once for Escape, twice for Caps Lock + [TD_LSHIFT_CAPS] = ACTION_TAP_DANCE_DOUBLE(KC_LSFT, KC_CAPS), }; \ No newline at end of file From 49af0c5495b978a36254762fb2e1f99ae24611d1 Mon Sep 17 00:00:00 2001 From: bfayers Date: Thu, 14 Dec 2023 14:01:08 +0000 Subject: [PATCH 03/34] Add config + rules --- keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/config.h | 2 ++ keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/rules.mk | 2 ++ 2 files changed, 4 insertions(+) create mode 100644 keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/config.h create mode 100644 keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/rules.mk diff --git a/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/config.h b/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/config.h new file mode 100644 index 000000000000..7fb1e3d19542 --- /dev/null +++ b/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/config.h @@ -0,0 +1,2 @@ +//Set default RGB mode to 'Splash' +#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SPLASH \ No newline at end of file diff --git a/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/rules.mk b/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/rules.mk new file mode 100644 index 000000000000..e0d6e64e008f --- /dev/null +++ b/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/rules.mk @@ -0,0 +1,2 @@ +TAP_DANCE_ENABLE = yes +DYNAMIC_MACRO_ENABLE = yes \ No newline at end of file From 3c01485a6d5b52e6d7e4b34dce9c7059e4a99f54 Mon Sep 17 00:00:00 2001 From: bfayers Date: Thu, 14 Dec 2023 14:11:32 +0000 Subject: [PATCH 04/34] Add macros --- .../k2_pro/iso/rgb/keymaps/bfayers/keymap.c | 28 +++++++++++++++++-- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/keymap.c b/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/keymap.c index 93e1c2e1c67d..3700667543aa 100644 --- a/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/keymap.c +++ b/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/keymap.c @@ -26,7 +26,7 @@ enum layers{ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MAC_BASE] = LAYOUT_iso_85( - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_DEL, RGB_MOD, + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, MAC_SSHOT, KC_DEL, RGB_MOD, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_ENT, KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, KC_HOME, @@ -42,7 +42,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), [WIN_BASE] = LAYOUT_iso_85( - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_DEL, RGB_MOD, + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, WIN_SSHOT, KC_DEL, RGB_MOD, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_ENT, KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, KC_HOME, @@ -67,4 +67,26 @@ enum { tap_dance_action_t tap_dance_actions[] = { // Tap once for Escape, twice for Caps Lock [TD_LSHIFT_CAPS] = ACTION_TAP_DANCE_DOUBLE(KC_LSFT, KC_CAPS), -}; \ No newline at end of file +}; + +// Macro Definitions +enum custom_keycodes { + MAC_SSHOT = SAFE_RANGE, + WIN_SSHOT, +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case MAC_SSHOT: + if (record->event.pressed) { + SEND_STRING(SS_LCMD(SS_LOPT("8"))); + } + break; + case WIN_SSHOT: + if (record->event.pressed) { + SEND_STRING(SS_LGUI(SS_LSFT("S"))); + } + break; + } + return true; +} \ No newline at end of file From e1765d8fc0e271ac54db4753a978a832021317a3 Mon Sep 17 00:00:00 2001 From: bfayers Date: Thu, 14 Dec 2023 14:12:17 +0000 Subject: [PATCH 05/34] Move macros/tap dance above the keymaps --- .../k2_pro/iso/rgb/keymaps/bfayers/keymap.c | 68 +++++++++---------- 1 file changed, 34 insertions(+), 34 deletions(-) diff --git a/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/keymap.c b/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/keymap.c index 3700667543aa..67f875612f6b 100644 --- a/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/keymap.c +++ b/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/keymap.c @@ -16,6 +16,39 @@ #include QMK_KEYBOARD_H +// Tap Dance Declarations +enum { + TD_LSHIFT_CAPS, +}; + +// Tap Dance Definitions +tap_dance_action_t tap_dance_actions[] = { + // Tap once for Escape, twice for Caps Lock + [TD_LSHIFT_CAPS] = ACTION_TAP_DANCE_DOUBLE(KC_LSFT, KC_CAPS), +}; + +// Macro Definitions +enum custom_keycodes { + MAC_SSHOT = SAFE_RANGE, + WIN_SSHOT, +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case MAC_SSHOT: + if (record->event.pressed) { + SEND_STRING(SS_LCMD(SS_LOPT("8"))); + } + break; + case WIN_SSHOT: + if (record->event.pressed) { + SEND_STRING(SS_LGUI(SS_LSFT("S"))); + } + break; + } + return true; +} + // clang-format off enum layers{ MAC_BASE, @@ -56,37 +89,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, DM_PLY1, DM_PLY2, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BAT_LVL, NK_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) -}; - -// Tap Dance Declarations -enum { - TD_LSHIFT_CAPS, -}; - -// Tap Dance Definitions -tap_dance_action_t tap_dance_actions[] = { - // Tap once for Escape, twice for Caps Lock - [TD_LSHIFT_CAPS] = ACTION_TAP_DANCE_DOUBLE(KC_LSFT, KC_CAPS), -}; - -// Macro Definitions -enum custom_keycodes { - MAC_SSHOT = SAFE_RANGE, - WIN_SSHOT, -}; - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case MAC_SSHOT: - if (record->event.pressed) { - SEND_STRING(SS_LCMD(SS_LOPT("8"))); - } - break; - case WIN_SSHOT: - if (record->event.pressed) { - SEND_STRING(SS_LGUI(SS_LSFT("S"))); - } - break; - } - return true; -} \ No newline at end of file +}; \ No newline at end of file From 52d6713ce8768a149058bf7bc432e31936dd9531 Mon Sep 17 00:00:00 2001 From: bfayers Date: Thu, 14 Dec 2023 14:14:20 +0000 Subject: [PATCH 06/34] Ensure that rgb matrix is enabled --- keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/rules.mk | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/rules.mk b/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/rules.mk index e0d6e64e008f..dd1c00a6cfd8 100644 --- a/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/rules.mk +++ b/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/rules.mk @@ -1,2 +1,5 @@ TAP_DANCE_ENABLE = yes -DYNAMIC_MACRO_ENABLE = yes \ No newline at end of file +DYNAMIC_MACRO_ENABLE = yes + +RGB_MATRIX_ENABLE = yes +RGB_MATRIX_DRIVER = CKLED2001 \ No newline at end of file From 6826464ad6bd7a5421cab5e870034c696d01751d Mon Sep 17 00:00:00 2001 From: bfayers Date: Thu, 14 Dec 2023 14:19:19 +0000 Subject: [PATCH 07/34] Add cmd+spc on capslock --- .../keychron/k2_pro/iso/rgb/keymaps/bfayers/keymap.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/keymap.c b/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/keymap.c index 67f875612f6b..59ca621d2371 100644 --- a/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/keymap.c +++ b/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/keymap.c @@ -31,6 +31,7 @@ tap_dance_action_t tap_dance_actions[] = { enum custom_keycodes { MAC_SSHOT = SAFE_RANGE, WIN_SSHOT, + CMD_SPC, }; bool process_record_user(uint16_t keycode, keyrecord_t *record) { @@ -45,6 +46,11 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { SEND_STRING(SS_LGUI(SS_LSFT("S"))); } break; + case CMD_SPC: + if (record->event.pressed) { + SEND_STRING(SS_LCMD(" ")); + } + break; } return true; } @@ -62,7 +68,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, MAC_SSHOT, KC_DEL, RGB_MOD, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_ENT, KC_PGDN, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, KC_HOME, + CMD_SPC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, KC_HOME, TD(TD_LSHIFT_CAPS), KC_INT1, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD,MO(MAC_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), From bee44660d8f6fb99b3a16292d4845f14e7ae4a98 Mon Sep 17 00:00:00 2001 From: bfayers Date: Thu, 14 Dec 2023 14:33:56 +0000 Subject: [PATCH 08/34] strip out redundant mac_keycode --- keyboards/keychron/k2_pro/k2_pro.c | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/keyboards/keychron/k2_pro/k2_pro.c b/keyboards/keychron/k2_pro/k2_pro.c index 8657593a3e8b..a738d2fbbf59 100644 --- a/keyboards/keychron/k2_pro/k2_pro.c +++ b/keyboards/keychron/k2_pro/k2_pro.c @@ -38,7 +38,6 @@ typedef struct PACKED { static uint32_t power_on_indicator_timer_buffer; static uint32_t siri_timer_buffer = 0; -static uint8_t mac_keycode[4] = {KC_LOPT, KC_ROPT, KC_LCMD, KC_RCMD}; key_combination_t key_comb_list[4] = { {2, {KC_LWIN, KC_TAB}}, // Task (win) @@ -75,16 +74,6 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { static uint8_t host_idx = 0; switch (keycode) { - case KC_LOPTN: - case KC_ROPTN: - case KC_LCMMD: - case KC_RCMMD: - if (record->event.pressed) { - register_code(mac_keycode[keycode - KC_LOPTN]); - } else { - unregister_code(mac_keycode[keycode - KC_LOPTN]); - } - return false; // Skip all further processing of this key) case KC_TASK: case KC_FILE: case KC_SNAP: From 432a153fd6f9a1bdf449934d0abade7293611d85 Mon Sep 17 00:00:00 2001 From: bfayers Date: Thu, 14 Dec 2023 14:35:07 +0000 Subject: [PATCH 09/34] strip out snap&cortana --- keyboards/keychron/k2_pro/k2_pro.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/keyboards/keychron/k2_pro/k2_pro.c b/keyboards/keychron/k2_pro/k2_pro.c index a738d2fbbf59..37da2f2080fe 100644 --- a/keyboards/keychron/k2_pro/k2_pro.c +++ b/keyboards/keychron/k2_pro/k2_pro.c @@ -41,9 +41,7 @@ static uint32_t siri_timer_buffer = 0; key_combination_t key_comb_list[4] = { {2, {KC_LWIN, KC_TAB}}, // Task (win) - {2, {KC_LWIN, KC_E}}, // Files (win) - {3, {KC_LSFT, KC_LGUI, KC_4}}, // Snapshot (mac) - {2, {KC_LWIN, KC_C}} // Cortana (win) + {2, {KC_LWIN, KC_E}} // Files (win) }; #ifdef KC_BLUETOOTH_ENABLE @@ -76,8 +74,6 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { switch (keycode) { case KC_TASK: case KC_FILE: - case KC_SNAP: - case KC_CTANA: if (record->event.pressed) { for (uint8_t i = 0; i < key_comb_list[keycode - KC_TASK].len; i++) register_code(key_comb_list[keycode - KC_TASK].keycode[i]); From 144f63374ab160d36b2a6d87ca4688dbdecdfdf4 Mon Sep 17 00:00:00 2001 From: bfayers Date: Thu, 14 Dec 2023 14:38:20 +0000 Subject: [PATCH 10/34] strip out siri key --- keyboards/keychron/k2_pro/k2_pro.c | 7 ------- keyboards/keychron/k2_pro/k2_pro.h | 9 +-------- 2 files changed, 1 insertion(+), 15 deletions(-) diff --git a/keyboards/keychron/k2_pro/k2_pro.c b/keyboards/keychron/k2_pro/k2_pro.c index 37da2f2080fe..ec94fa29926e 100644 --- a/keyboards/keychron/k2_pro/k2_pro.c +++ b/keyboards/keychron/k2_pro/k2_pro.c @@ -82,13 +82,6 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { unregister_code(key_comb_list[keycode - KC_TASK].keycode[i]); } return false; // Skip all further processing of this key - case KC_SIRI: - if (record->event.pressed && siri_timer_buffer == 0) { - register_code(KC_LGUI); - register_code(KC_SPACE); - siri_timer_buffer = sync_timer_read32() | 1; - } - return false; // Skip all further processing of this key #ifdef KC_BLUETOOTH_ENABLE case BT_HST1 ... BT_HST3: if (get_transport() == TRANSPORT_BLUETOOTH) { diff --git a/keyboards/keychron/k2_pro/k2_pro.h b/keyboards/keychron/k2_pro/k2_pro.h index be5196903d45..05bd3ba10178 100644 --- a/keyboards/keychron/k2_pro/k2_pro.h +++ b/keyboards/keychron/k2_pro/k2_pro.h @@ -31,15 +31,8 @@ // clang-format off enum { - KC_LOPTN = USER_START, - KC_ROPTN, - KC_LCMMD, - KC_RCMMD, - KC_TASK, + KC_TASK = USER_START, KC_FILE, - KC_SNAP, - KC_CTANA, - KC_SIRI, #ifdef KC_BLUETOOTH_ENABLE BT_HST1, BT_HST2, From 6c651b9c89359c7642e0133cacd6e9aa51405f57 Mon Sep 17 00:00:00 2001 From: bfayers Date: Thu, 14 Dec 2023 14:38:42 +0000 Subject: [PATCH 11/34] comments --- keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/keymap.c | 1 + 1 file changed, 1 insertion(+) diff --git a/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/keymap.c b/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/keymap.c index 59ca621d2371..f75c9da0f0cf 100644 --- a/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/keymap.c +++ b/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/keymap.c @@ -34,6 +34,7 @@ enum custom_keycodes { CMD_SPC, }; +// Macro Processing bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { case MAC_SSHOT: From d9edfef18af062a0aa74c720e09381525cc6f34c Mon Sep 17 00:00:00 2001 From: bfayers Date: Thu, 14 Dec 2023 15:12:48 +0000 Subject: [PATCH 12/34] Move RGB settings to info.json --- keyboards/keychron/k2_pro/iso/rgb/info.json | 21 ++++--------------- .../k2_pro/iso/rgb/keymaps/bfayers/config.h | 3 +-- .../k2_pro/iso/rgb/keymaps/bfayers/rules.mk | 5 +---- 3 files changed, 6 insertions(+), 23 deletions(-) diff --git a/keyboards/keychron/k2_pro/iso/rgb/info.json b/keyboards/keychron/k2_pro/iso/rgb/info.json index 93e95864436c..240bd239074d 100644 --- a/keyboards/keychron/k2_pro/iso/rgb/info.json +++ b/keyboards/keychron/k2_pro/iso/rgb/info.json @@ -8,28 +8,15 @@ }, "rgb_matrix": { "driver": "CKLED2001", + "default": { + "animation": "splash" + }, "animations": { - "breathing": true, - "band_spiral_val": true, - "cycle_all": true, - "cycle_left_right": true, - "cycle_up_down": true, - "rainbow_moving_chevron": true, - "cycle_out_in": true, - "cycle_out_in_dual": true, - "cycle_pinwheel": true, - "cycle_spiral": true, - "dual_beacon": true, "rainbow_beacon": true, - "jellybean_raindrops": true, "pixel_rain": true, "typing_heatmap": true, "digital_rain": true, - "solid_reactive_simple": true, - "solid_reactive_multiwide": true, - "solid_reactive_multinexus": true, - "splash": true, - "solid_splash": true + "splash": true } } } diff --git a/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/config.h b/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/config.h index 7fb1e3d19542..ea4c9e997c81 100644 --- a/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/config.h +++ b/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/config.h @@ -1,2 +1 @@ -//Set default RGB mode to 'Splash' -#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SPLASH \ No newline at end of file +//Blank for now \ No newline at end of file diff --git a/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/rules.mk b/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/rules.mk index dd1c00a6cfd8..e0d6e64e008f 100644 --- a/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/rules.mk +++ b/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/rules.mk @@ -1,5 +1,2 @@ TAP_DANCE_ENABLE = yes -DYNAMIC_MACRO_ENABLE = yes - -RGB_MATRIX_ENABLE = yes -RGB_MATRIX_DRIVER = CKLED2001 \ No newline at end of file +DYNAMIC_MACRO_ENABLE = yes \ No newline at end of file From 0d773929f29936eee1b92e9b2aae4d9fd6d04e4e Mon Sep 17 00:00:00 2001 From: bfayers Date: Thu, 14 Dec 2023 16:11:56 +0000 Subject: [PATCH 13/34] define default rgb animation --- keyboards/keychron/k2_pro/iso/rgb/info.json | 3 --- keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/config.h | 3 ++- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/keyboards/keychron/k2_pro/iso/rgb/info.json b/keyboards/keychron/k2_pro/iso/rgb/info.json index 240bd239074d..e13cbb107143 100644 --- a/keyboards/keychron/k2_pro/iso/rgb/info.json +++ b/keyboards/keychron/k2_pro/iso/rgb/info.json @@ -8,9 +8,6 @@ }, "rgb_matrix": { "driver": "CKLED2001", - "default": { - "animation": "splash" - }, "animations": { "rainbow_beacon": true, "pixel_rain": true, diff --git a/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/config.h b/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/config.h index ea4c9e997c81..7fb1e3d19542 100644 --- a/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/config.h +++ b/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/config.h @@ -1 +1,2 @@ -//Blank for now \ No newline at end of file +//Set default RGB mode to 'Splash' +#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SPLASH \ No newline at end of file From b1db330281e2bdd6e1cd74db7bafa953d5d12b49 Mon Sep 17 00:00:00 2001 From: bfayers Date: Thu, 14 Dec 2023 17:08:39 +0000 Subject: [PATCH 14/34] create macro that fires differently on mac vs windows --- .../k2_pro/iso/rgb/keymaps/bfayers/keymap.c | 19 +++++++++++++++++++ keyboards/keychron/k2_pro/rules.mk | 2 +- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/keymap.c b/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/keymap.c index f75c9da0f0cf..d0373a7d482c 100644 --- a/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/keymap.c +++ b/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/keymap.c @@ -32,8 +32,18 @@ enum custom_keycodes { MAC_SSHOT = SAFE_RANGE, WIN_SSHOT, CMD_SPC, + TEST_MACRO, }; +bool win_mac = false; + +bool dip_switch_update_user(uint8_t index, bool active) { + if (index == 0) { + win_mac = active; + } + return true; +} + // Macro Processing bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { @@ -52,6 +62,15 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { SEND_STRING(SS_LCMD(" ")); } break; + case TEST_MACRO: + if (record->event.pressed) { + if (win_mac) { + SEND_STRING("Hello World! WIN"); + } else { + SEND_STRING("Hello World! MAC"); + } + } + break; } return true; } diff --git a/keyboards/keychron/k2_pro/rules.mk b/keyboards/keychron/k2_pro/rules.mk index 8e536fc34563..a863e1d0ce9e 100644 --- a/keyboards/keychron/k2_pro/rules.mk +++ b/keyboards/keychron/k2_pro/rules.mk @@ -1,6 +1,6 @@ # Enter lower-power sleep mode when on the ChibiOS idle thread OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE -OPT_DEFS += -DNO_USB_STARTUP_CHECK -DENABLE_FACTORY_TEST +OPT_DEFS += -DNO_USB_STARTUP_CHECK SRC += matrix.c From 3fb84336b370f55139c5e79add285b05ed47ea48 Mon Sep 17 00:00:00 2001 From: bfayers Date: Thu, 14 Dec 2023 17:09:10 +0000 Subject: [PATCH 15/34] remove factory_test.c from compile, as it interferes with defining dip_switch_update_user --- keyboards/keychron/bluetooth/bluetooth.mk | 1 - 1 file changed, 1 deletion(-) diff --git a/keyboards/keychron/bluetooth/bluetooth.mk b/keyboards/keychron/bluetooth/bluetooth.mk index 3a57a6d75dfb..085c12f2aa5d 100644 --- a/keyboards/keychron/bluetooth/bluetooth.mk +++ b/keyboards/keychron/bluetooth/bluetooth.mk @@ -12,7 +12,6 @@ SRC += \ $(BLUETOOTH_DIR)/lpm.c \ $(BLUETOOTH_DIR)/lpm_stm32l432.c \ $(BLUETOOTH_DIR)/battery.c \ - $(BLUETOOTH_DIR)/factory_test.c \ $(BLUETOOTH_DIR)/bat_level_animation.c \ $(BLUETOOTH_DIR)/rtc_timer.c From 7beef47a072ab7653053e44c9cf09c8252cd0543 Mon Sep 17 00:00:00 2001 From: bfayers Date: Thu, 14 Dec 2023 17:17:11 +0000 Subject: [PATCH 16/34] Comments --- keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/keymap.c | 1 + 1 file changed, 1 insertion(+) diff --git a/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/keymap.c b/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/keymap.c index d0373a7d482c..d99cd8d2f260 100644 --- a/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/keymap.c +++ b/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/keymap.c @@ -35,6 +35,7 @@ enum custom_keycodes { TEST_MACRO, }; +// This will be true when the switch is set to windows, and false when the switch is set to mac. bool win_mac = false; bool dip_switch_update_user(uint8_t index, bool active) { From 86cbd6cef6d37035872ff95b820036e018704a5c Mon Sep 17 00:00:00 2001 From: bfayers Date: Thu, 14 Dec 2023 21:13:18 +0000 Subject: [PATCH 17/34] make sshot macro dynamic to OS switch --- .../k2_pro/iso/rgb/keymaps/bfayers/keymap.c | 22 +++++++++---------- 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/keymap.c b/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/keymap.c index d99cd8d2f260..3bdb8927a142 100644 --- a/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/keymap.c +++ b/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/keymap.c @@ -29,14 +29,13 @@ tap_dance_action_t tap_dance_actions[] = { // Macro Definitions enum custom_keycodes { - MAC_SSHOT = SAFE_RANGE, - WIN_SSHOT, + SSHOT = SAFE_RANGE, CMD_SPC, TEST_MACRO, }; // This will be true when the switch is set to windows, and false when the switch is set to mac. -bool win_mac = false; +bool win_mac = true; bool dip_switch_update_user(uint8_t index, bool active) { if (index == 0) { @@ -48,14 +47,13 @@ bool dip_switch_update_user(uint8_t index, bool active) { // Macro Processing bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { - case MAC_SSHOT: + case SSHOT: if (record->event.pressed) { - SEND_STRING(SS_LCMD(SS_LOPT("8"))); - } - break; - case WIN_SSHOT: - if (record->event.pressed) { - SEND_STRING(SS_LGUI(SS_LSFT("S"))); + if (win_mac) { + SEND_STRING(SS_LGUI(SS_LSFT("S"))); + } else { + SEND_STRING(SS_LCMD(SS_LOPT("8"))); + } } break; case CMD_SPC: @@ -86,7 +84,7 @@ enum layers{ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MAC_BASE] = LAYOUT_iso_85( - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, MAC_SSHOT, KC_DEL, RGB_MOD, + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, SSHOT, KC_DEL, RGB_MOD, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_ENT, KC_PGDN, CMD_SPC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, KC_HOME, @@ -102,7 +100,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), [WIN_BASE] = LAYOUT_iso_85( - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, WIN_SSHOT, KC_DEL, RGB_MOD, + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, SSHOT, KC_DEL, RGB_MOD, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_ENT, KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, KC_HOME, From d06bd0becfefa4809242324aa021be18426237d2 Mon Sep 17 00:00:00 2001 From: bfayers Date: Thu, 14 Dec 2023 21:17:52 +0000 Subject: [PATCH 18/34] default win_mac --- keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/keymap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/keymap.c b/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/keymap.c index 3bdb8927a142..c713a0cff63e 100644 --- a/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/keymap.c +++ b/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/keymap.c @@ -35,7 +35,7 @@ enum custom_keycodes { }; // This will be true when the switch is set to windows, and false when the switch is set to mac. -bool win_mac = true; +bool win_mac = false; bool dip_switch_update_user(uint8_t index, bool active) { if (index == 0) { From 3f019deba3ae325999fd5a98beed5779447ce154 Mon Sep 17 00:00:00 2001 From: bfayers Date: Thu, 14 Dec 2023 21:22:25 +0000 Subject: [PATCH 19/34] aligning base layers --- .../k2_pro/iso/rgb/keymaps/bfayers/keymap.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/keymap.c b/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/keymap.c index c713a0cff63e..8e3d2c05e30e 100644 --- a/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/keymap.c +++ b/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/keymap.c @@ -30,7 +30,7 @@ tap_dance_action_t tap_dance_actions[] = { // Macro Definitions enum custom_keycodes { SSHOT = SAFE_RANGE, - CMD_SPC, + GUI_SPC, TEST_MACRO, }; @@ -56,9 +56,9 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } } break; - case CMD_SPC: + case GUI_SPC: if (record->event.pressed) { - SEND_STRING(SS_LCMD(" ")); + SEND_STRING(SS_LGUI(" ")); } break; case TEST_MACRO: @@ -87,9 +87,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, SSHOT, KC_DEL, RGB_MOD, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_ENT, KC_PGDN, - CMD_SPC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, KC_HOME, - TD(TD_LSHIFT_CAPS), KC_INT1, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, - KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD,MO(MAC_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + GUI_SPC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, KC_HOME, + TD(TD_LSHIFT_CAPS), KC_INT1, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, MO(MAC_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), [MAC_FN] = LAYOUT_iso_85( KC_TRNS, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS, RGB_TOG, @@ -103,9 +103,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, SSHOT, KC_DEL, RGB_MOD, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_ENT, KC_PGDN, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, KC_HOME, - TD(TD_LSHIFT_CAPS), KC_INT1, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, - KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, MO(WIN_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + GUI_SPC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, KC_HOME, + TD(TD_LSHIFT_CAPS), KC_INT1, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, MO(WIN_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), [WIN_FN] = LAYOUT_iso_85( KC_TRNS, KC_BRID, KC_BRIU, KC_TASK, KC_FILE, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS, RGB_TOG, From 5801230af3f1425df538d90fbde4029fa67f4473 Mon Sep 17 00:00:00 2001 From: bfayers Date: Thu, 14 Dec 2023 21:46:40 +0000 Subject: [PATCH 20/34] Use a single base layer, and a special layer key to mix mac and windows FN accordingly --- .../k2_pro/iso/rgb/keymaps/bfayers/keymap.c | 58 +++++++++---------- keyboards/keychron/k2_pro/k2_pro.c | 4 +- 2 files changed, 28 insertions(+), 34 deletions(-) diff --git a/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/keymap.c b/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/keymap.c index 8e3d2c05e30e..96e1e5978ad2 100644 --- a/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/keymap.c +++ b/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/keymap.c @@ -16,6 +16,13 @@ #include QMK_KEYBOARD_H +// clang-format off +enum layers{ + BASE, + MAC_FN, + WIN_FN +}; + // Tap Dance Declarations enum { TD_LSHIFT_CAPS, @@ -31,15 +38,15 @@ tap_dance_action_t tap_dance_actions[] = { enum custom_keycodes { SSHOT = SAFE_RANGE, GUI_SPC, - TEST_MACRO, + OS_FN }; // This will be true when the switch is set to windows, and false when the switch is set to mac. -bool win_mac = false; +bool on_windows = false; bool dip_switch_update_user(uint8_t index, bool active) { if (index == 0) { - win_mac = active; + on_windows = active; } return true; } @@ -49,7 +56,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { case SSHOT: if (record->event.pressed) { - if (win_mac) { + if (on_windows) { SEND_STRING(SS_LGUI(SS_LSFT("S"))); } else { SEND_STRING(SS_LCMD(SS_LOPT("8"))); @@ -61,35 +68,30 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { SEND_STRING(SS_LGUI(" ")); } break; - case TEST_MACRO: + case OS_FN: if (record->event.pressed) { - if (win_mac) { - SEND_STRING("Hello World! WIN"); - } else { - SEND_STRING("Hello World! MAC"); + layer_move(MAC_FN); + if (on_windows) { + //If we are on the windows side also enable the WIN_FN layer to mix them. + layer_on(WIN_FN); } + } else { + //When we release the OS_FN key, move back to the BASE layer. + layer_move(BASE); } break; } return true; } -// clang-format off -enum layers{ - MAC_BASE, - MAC_FN, - WIN_BASE, - WIN_FN -}; - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[MAC_BASE] = LAYOUT_iso_85( +[BASE] = LAYOUT_iso_85( KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, SSHOT, KC_DEL, RGB_MOD, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_ENT, KC_PGDN, GUI_SPC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, KC_HOME, TD(TD_LSHIFT_CAPS), KC_INT1, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, - KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, MO(MAC_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, OS_FN, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), [MAC_FN] = LAYOUT_iso_85( KC_TRNS, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS, RGB_TOG, @@ -99,19 +101,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BAT_LVL, NK_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), -[WIN_BASE] = LAYOUT_iso_85( - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, SSHOT, KC_DEL, RGB_MOD, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_ENT, KC_PGDN, - GUI_SPC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, KC_HOME, - TD(TD_LSHIFT_CAPS), KC_INT1, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, - KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, MO(WIN_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), - [WIN_FN] = LAYOUT_iso_85( - KC_TRNS, KC_BRID, KC_BRIU, KC_TASK, KC_FILE, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS, RGB_TOG, - KC_TRNS, BT_HST1, BT_HST2, BT_HST3, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, DM_REC1, DM_REC2, KC_TRNS, KC_TRNS, - KC_TRNS, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, DM_PLY1, DM_PLY2, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BAT_LVL, NK_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TASK, KC_FILE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) }; \ No newline at end of file diff --git a/keyboards/keychron/k2_pro/k2_pro.c b/keyboards/keychron/k2_pro/k2_pro.c index ec94fa29926e..0b30a3ae187a 100644 --- a/keyboards/keychron/k2_pro/k2_pro.c +++ b/keyboards/keychron/k2_pro/k2_pro.c @@ -56,9 +56,9 @@ static void pairing_key_timer_cb(void *arg) { #endif bool dip_switch_update_kb(uint8_t index, bool active) { - if (index == 0) { + /*if (index == 0) { default_layer_set(1UL << (active ? 2 : 0)); - } + }*/ dip_switch_update_user(index, active); return true; From 8af793e5539df39639209b9ebf47740bfa9b6dc1 Mon Sep 17 00:00:00 2001 From: bfayers Date: Thu, 14 Dec 2023 22:49:13 +0000 Subject: [PATCH 21/34] move KC_TASK and KC_FILE into keymap --- .../k2_pro/iso/rgb/keymaps/bfayers/keymap.c | 18 +++++++++++++++++- keyboards/keychron/k2_pro/k2_pro.c | 15 --------------- keyboards/keychron/k2_pro/k2_pro.h | 4 +--- 3 files changed, 18 insertions(+), 19 deletions(-) diff --git a/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/keymap.c b/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/keymap.c index 96e1e5978ad2..e2a398018455 100644 --- a/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/keymap.c +++ b/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/keymap.c @@ -38,7 +38,9 @@ tap_dance_action_t tap_dance_actions[] = { enum custom_keycodes { SSHOT = SAFE_RANGE, GUI_SPC, - OS_FN + OS_FN, + KC_TASK, + KC_FILE }; // This will be true when the switch is set to windows, and false when the switch is set to mac. @@ -54,6 +56,18 @@ bool dip_switch_update_user(uint8_t index, bool active) { // Macro Processing bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { + case KC_TASK: + if (record->event.pressed) { + SEND_STRING(SS_LGUI(SS_TAP(X_TAB))); + return false; + } + break; + case KC_FILE: + if (record->event.pressed) { + SEND_STRING(SS_LGUI(SS_TAP(X_E))); + return false; + } + break; case SSHOT: if (record->event.pressed) { if (on_windows) { @@ -61,11 +75,13 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } else { SEND_STRING(SS_LCMD(SS_LOPT("8"))); } + return false; } break; case GUI_SPC: if (record->event.pressed) { SEND_STRING(SS_LGUI(" ")); + return false; } break; case OS_FN: diff --git a/keyboards/keychron/k2_pro/k2_pro.c b/keyboards/keychron/k2_pro/k2_pro.c index 0b30a3ae187a..f2d7642829b6 100644 --- a/keyboards/keychron/k2_pro/k2_pro.c +++ b/keyboards/keychron/k2_pro/k2_pro.c @@ -39,11 +39,6 @@ typedef struct PACKED { static uint32_t power_on_indicator_timer_buffer; static uint32_t siri_timer_buffer = 0; -key_combination_t key_comb_list[4] = { - {2, {KC_LWIN, KC_TAB}}, // Task (win) - {2, {KC_LWIN, KC_E}} // Files (win) -}; - #ifdef KC_BLUETOOTH_ENABLE bool firstDisconnect = true; bool bt_factory_reset = false; @@ -72,16 +67,6 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { static uint8_t host_idx = 0; switch (keycode) { - case KC_TASK: - case KC_FILE: - if (record->event.pressed) { - for (uint8_t i = 0; i < key_comb_list[keycode - KC_TASK].len; i++) - register_code(key_comb_list[keycode - KC_TASK].keycode[i]); - } else { - for (uint8_t i = 0; i < key_comb_list[keycode - KC_TASK].len; i++) - unregister_code(key_comb_list[keycode - KC_TASK].keycode[i]); - } - return false; // Skip all further processing of this key #ifdef KC_BLUETOOTH_ENABLE case BT_HST1 ... BT_HST3: if (get_transport() == TRANSPORT_BLUETOOTH) { diff --git a/keyboards/keychron/k2_pro/k2_pro.h b/keyboards/keychron/k2_pro/k2_pro.h index 05bd3ba10178..1936d43b3be8 100644 --- a/keyboards/keychron/k2_pro/k2_pro.h +++ b/keyboards/keychron/k2_pro/k2_pro.h @@ -31,10 +31,8 @@ // clang-format off enum { - KC_TASK = USER_START, - KC_FILE, #ifdef KC_BLUETOOTH_ENABLE - BT_HST1, + BT_HST1 = USER_START, BT_HST2, BT_HST3, BAT_LVL, From 1ccfb917d06fcc0a88b4305c8588e9daecced4a1 Mon Sep 17 00:00:00 2001 From: bfayers Date: Thu, 14 Dec 2023 22:49:47 +0000 Subject: [PATCH 22/34] comments for keymap --- keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/keymap.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/keymap.c b/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/keymap.c index e2a398018455..2f42db825d25 100644 --- a/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/keymap.c +++ b/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/keymap.c @@ -17,6 +17,7 @@ #include QMK_KEYBOARD_H // clang-format off +// List of Layers enum layers{ BASE, MAC_FN, @@ -100,6 +101,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return true; } +//Definition of layers const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [BASE] = LAYOUT_iso_85( KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, SSHOT, KC_DEL, RGB_MOD, From 66a0e3946a8a05ec14e131553bb9e608f0383bc8 Mon Sep 17 00:00:00 2001 From: bfayers Date: Fri, 15 Dec 2023 02:30:55 +0000 Subject: [PATCH 23/34] actually make dynamic start hook send direction variable --- quantum/process_keycode/process_dynamic_macro.c | 10 +++++----- quantum/process_keycode/process_dynamic_macro.h | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/quantum/process_keycode/process_dynamic_macro.c b/quantum/process_keycode/process_dynamic_macro.c index c2e7e7716f5f..bf6af566e2a8 100644 --- a/quantum/process_keycode/process_dynamic_macro.c +++ b/quantum/process_keycode/process_dynamic_macro.c @@ -29,7 +29,7 @@ void dynamic_macro_led_blink(void) { /* User hooks for Dynamic Macros */ -__attribute__((weak)) void dynamic_macro_record_start_user(void) { +__attribute__((weak)) void dynamic_macro_record_start_user(int8_t direction) { dynamic_macro_led_blink(); } @@ -62,10 +62,10 @@ __attribute__((weak)) bool dynamic_macro_valid_key_user(uint16_t keycode, keyrec * @param[out] macro_pointer The new macro buffer iterator. * @param[in] macro_buffer The macro buffer used to initialize macro_pointer. */ -void dynamic_macro_record_start(keyrecord_t **macro_pointer, keyrecord_t *macro_buffer) { +void dynamic_macro_record_start(keyrecord_t **macro_pointer, keyrecord_t *macro_buffer, int8_t direction) { dprintln("dynamic macro recording: started"); - dynamic_macro_record_start_user(); + dynamic_macro_record_start_user(direction); clear_keyboard(); layer_clear(); @@ -213,11 +213,11 @@ bool process_dynamic_macro(uint16_t keycode, keyrecord_t *record) { if (!record->event.pressed) { switch (keycode) { case QK_DYNAMIC_MACRO_RECORD_START_1: - dynamic_macro_record_start(¯o_pointer, macro_buffer); + dynamic_macro_record_start(¯o_pointer, macro_buffer, +1); macro_id = 1; return false; case QK_DYNAMIC_MACRO_RECORD_START_2: - dynamic_macro_record_start(¯o_pointer, r_macro_buffer); + dynamic_macro_record_start(¯o_pointer, r_macro_buffer, -1); macro_id = 2; return false; case QK_DYNAMIC_MACRO_PLAY_1: diff --git a/quantum/process_keycode/process_dynamic_macro.h b/quantum/process_keycode/process_dynamic_macro.h index 39036541b8d9..ab70726897cb 100644 --- a/quantum/process_keycode/process_dynamic_macro.h +++ b/quantum/process_keycode/process_dynamic_macro.h @@ -35,7 +35,7 @@ void dynamic_macro_led_blink(void); bool process_dynamic_macro(uint16_t keycode, keyrecord_t *record); -void dynamic_macro_record_start_user(void); +void dynamic_macro_record_start_user(int8_t direction); void dynamic_macro_play_user(int8_t direction); void dynamic_macro_record_key_user(int8_t direction, keyrecord_t *record); void dynamic_macro_record_end_user(int8_t direction); From 15b9a72d4277abaccf9f481915b448e01161b25f Mon Sep 17 00:00:00 2001 From: bfayers Date: Fri, 15 Dec 2023 13:28:49 +0000 Subject: [PATCH 24/34] Attempt at dynamic macro record indicators --- .../k2_pro/iso/rgb/keymaps/bfayers/keymap.c | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/keymap.c b/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/keymap.c index 2f42db825d25..681389bbb3aa 100644 --- a/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/keymap.c +++ b/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/keymap.c @@ -101,6 +101,53 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return true; } +bool dynamic_recording = false; +bool lit = false; +bool using_1 = true; +static uint16_t recording_timer; +// Dynamic Macro Hooks +void dynamic_macro_record_start_user(int8_t direction) { + dynamic_recording = true; + if (direction == 1) { + using_1 = true; + } else { + using_1 = false; + } + recording_timer = timer_read(); +} +void dynamic_macro_record_end_user(int8_t direction) { + dynamic_recording = false; +} + +bool rgb_matrix_indicators_user(void) { + if (dynamic_recording) { + if (lit) { + if (timer_elapsed(recording_timer) > 1500) { + if (using_1) { + rgb_matrix_set_color(42, 0, 0, 0); + } else { + rgb_matrix_set_color(43, 0, 0, 0); + } + lit = false; + recording_timer = timer_read(); + } + } else { + if (timer_elapsed(recording_timer) > 1000) { + if (using_1) { + rgb_matrix_set_color(42, 255, 0, 0); + } else { + rgb_matrix_set_color(43, 255, 0, 0); + } + lit = true; + recording_timer = timer_read(); + } + } + } + return true; +} + + + //Definition of layers const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [BASE] = LAYOUT_iso_85( From 5f945563e2524fd3aa20441742f423763000514b Mon Sep 17 00:00:00 2001 From: bfayers Date: Fri, 15 Dec 2023 13:31:52 +0000 Subject: [PATCH 25/34] Whole keyboard flash on recording --- keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/keymap.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/keymap.c b/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/keymap.c index 681389bbb3aa..744a3815650d 100644 --- a/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/keymap.c +++ b/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/keymap.c @@ -121,7 +121,7 @@ void dynamic_macro_record_end_user(int8_t direction) { bool rgb_matrix_indicators_user(void) { if (dynamic_recording) { - if (lit) { + /*if (lit) { if (timer_elapsed(recording_timer) > 1500) { if (using_1) { rgb_matrix_set_color(42, 0, 0, 0); @@ -141,6 +141,10 @@ bool rgb_matrix_indicators_user(void) { lit = true; recording_timer = timer_read(); } + }*/ + if (timer_elapsed(recording_timer) > 750) { + rgb_matrix_toggle(); + recording_timer = timer_read(); } } return true; From 78b26c8cd1ab3d30e41378f79ebc3b075a75ca00 Mon Sep 17 00:00:00 2001 From: bfayers Date: Fri, 15 Dec 2023 13:54:57 +0000 Subject: [PATCH 26/34] remove attempts at dynamic macro recording indicator --- .../k2_pro/iso/rgb/keymaps/bfayers/keymap.c | 50 ------------------- 1 file changed, 50 deletions(-) diff --git a/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/keymap.c b/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/keymap.c index 744a3815650d..83bf1b0a1bfe 100644 --- a/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/keymap.c +++ b/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/keymap.c @@ -101,56 +101,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return true; } -bool dynamic_recording = false; -bool lit = false; -bool using_1 = true; -static uint16_t recording_timer; -// Dynamic Macro Hooks -void dynamic_macro_record_start_user(int8_t direction) { - dynamic_recording = true; - if (direction == 1) { - using_1 = true; - } else { - using_1 = false; - } - recording_timer = timer_read(); -} -void dynamic_macro_record_end_user(int8_t direction) { - dynamic_recording = false; -} - -bool rgb_matrix_indicators_user(void) { - if (dynamic_recording) { - /*if (lit) { - if (timer_elapsed(recording_timer) > 1500) { - if (using_1) { - rgb_matrix_set_color(42, 0, 0, 0); - } else { - rgb_matrix_set_color(43, 0, 0, 0); - } - lit = false; - recording_timer = timer_read(); - } - } else { - if (timer_elapsed(recording_timer) > 1000) { - if (using_1) { - rgb_matrix_set_color(42, 255, 0, 0); - } else { - rgb_matrix_set_color(43, 255, 0, 0); - } - lit = true; - recording_timer = timer_read(); - } - }*/ - if (timer_elapsed(recording_timer) > 750) { - rgb_matrix_toggle(); - recording_timer = timer_read(); - } - } - return true; -} - - //Definition of layers const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { From 4f3bf3ac6011b484bf4c1267bdae1b025f2a756e Mon Sep 17 00:00:00 2001 From: bfayers Date: Fri, 15 Dec 2023 16:32:13 +0000 Subject: [PATCH 27/34] turn on debug console --- keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/rules.mk | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/rules.mk b/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/rules.mk index e0d6e64e008f..9cd214d6403c 100644 --- a/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/rules.mk +++ b/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/rules.mk @@ -1,2 +1,3 @@ TAP_DANCE_ENABLE = yes -DYNAMIC_MACRO_ENABLE = yes \ No newline at end of file +DYNAMIC_MACRO_ENABLE = yes +CONSOLE_ENABLE = yes \ No newline at end of file From 05b2926d86e8b33155a5e77e7e5be179e76c816d Mon Sep 17 00:00:00 2001 From: bfayers Date: Fri, 15 Dec 2023 17:29:52 +0000 Subject: [PATCH 28/34] enable custom rgb matrix effects --- keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/rules.mk | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/rules.mk b/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/rules.mk index 9cd214d6403c..9b0f66831801 100644 --- a/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/rules.mk +++ b/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/rules.mk @@ -1,3 +1,4 @@ TAP_DANCE_ENABLE = yes DYNAMIC_MACRO_ENABLE = yes -CONSOLE_ENABLE = yes \ No newline at end of file +CONSOLE_ENABLE = yes +RGB_MATRIX_CUSTOM_USER = yes \ No newline at end of file From 9e2e50eb774dae71043beac36bf15709fd621039 Mon Sep 17 00:00:00 2001 From: bfayers Date: Fri, 15 Dec 2023 17:30:14 +0000 Subject: [PATCH 29/34] create empty custom matrix effect --- .../iso/rgb/keymaps/bfayers/rgb_matrix_user.inc | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/rgb_matrix_user.inc diff --git a/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/rgb_matrix_user.inc b/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/rgb_matrix_user.inc new file mode 100644 index 000000000000..4173ca70f137 --- /dev/null +++ b/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/rgb_matrix_user.inc @@ -0,0 +1,14 @@ +RGB_MATRIX_EFFECT(empty_effect) + +#ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS + +// https://github.com/qmk/qmk_firmware/issues/14686 +// [Bug] Cannot control RGB Matrix manually, colors repeatedly overwritten with solid color under RGB_MATRIX_NONE mode #14686 +// As a workaround, define a custom effect that does nothing, set it as the init default in keymap.c: rgb_matrix_mode_noeeprom(RGB_MATRIX_CUSTOM_empty_effect); +// When this effect is active, values written with rgb_matrix_set_color() aren't overwritten. + +bool empty_effect(effect_params_t* params) { + return false; +} + +#endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS \ No newline at end of file From 9c29a1c869ef6291f21b47f3a3d7437815fb7df0 Mon Sep 17 00:00:00 2001 From: bfayers Date: Fri, 15 Dec 2023 17:30:35 +0000 Subject: [PATCH 30/34] Create function to blink dynamic macro key when recording --- .../k2_pro/iso/rgb/keymaps/bfayers/keymap.c | 58 +++++++++++++++++++ 1 file changed, 58 insertions(+) diff --git a/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/keymap.c b/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/keymap.c index 83bf1b0a1bfe..7466ee6a646d 100644 --- a/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/keymap.c +++ b/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/keymap.c @@ -101,6 +101,64 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return true; } +bool dynamic_recording = false; +bool lit = false; +bool using_1 = true; +static uint16_t recording_timer; +// Dynamic Macro Hooks +void dynamic_macro_record_start_user(int8_t direction) { + //Switch to custom defined empty RGB effect + rgb_matrix_mode_noeeprom(RGB_MATRIX_CUSTOM_empty_effect); + //Turn off all keys + rgb_matrix_set_color_all(0,0,0); + dynamic_recording = true; + print("Dynamic macro recording started\n"); + if (direction == 1) { + using_1 = true; + print("Using macro 1\n"); + } else { + using_1 = false; + print("Using macro 2\n"); + } + recording_timer = timer_read(); +} +void dynamic_macro_record_end_user(int8_t direction) { + dynamic_recording = false; + //Restore previous RGB mode. + rgb_matrix_reload_from_eeprom(); + print("Dynamic macro recording finished\n"); +} + +bool rgb_matrix_indicators_user(void) { + if (dynamic_recording) { + if (lit) { + if (timer_elapsed(recording_timer) > 500) { + if (using_1) { + rgb_matrix_set_color(42, 0, 0, 0); + print("Macro 1 light off\n"); + } else { + rgb_matrix_set_color(43, 0, 0, 0); + print("Macro 2 light off\n"); + } + lit = false; + recording_timer = timer_read(); + } + } else { + if (timer_elapsed(recording_timer) > 250) { + if (using_1) { + rgb_matrix_set_color(42, 255, 0, 0); + print("Macro 1 light on\n"); + } else { + rgb_matrix_set_color(43, 255, 0, 0); + print("Macro 2 light on\n"); + } + lit = true; + recording_timer = timer_read(); + } + } + } + return true; +} //Definition of layers const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { From 80d905940fe577a663c38a385610bb98e4a1cbb6 Mon Sep 17 00:00:00 2001 From: bfayers Date: Fri, 15 Dec 2023 17:31:01 +0000 Subject: [PATCH 31/34] Remove all debug prints --- .../keychron/k2_pro/iso/rgb/keymaps/bfayers/keymap.c | 8 -------- 1 file changed, 8 deletions(-) diff --git a/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/keymap.c b/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/keymap.c index 7466ee6a646d..f3016e5f57a1 100644 --- a/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/keymap.c +++ b/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/keymap.c @@ -112,13 +112,10 @@ void dynamic_macro_record_start_user(int8_t direction) { //Turn off all keys rgb_matrix_set_color_all(0,0,0); dynamic_recording = true; - print("Dynamic macro recording started\n"); if (direction == 1) { using_1 = true; - print("Using macro 1\n"); } else { using_1 = false; - print("Using macro 2\n"); } recording_timer = timer_read(); } @@ -126,7 +123,6 @@ void dynamic_macro_record_end_user(int8_t direction) { dynamic_recording = false; //Restore previous RGB mode. rgb_matrix_reload_from_eeprom(); - print("Dynamic macro recording finished\n"); } bool rgb_matrix_indicators_user(void) { @@ -135,10 +131,8 @@ bool rgb_matrix_indicators_user(void) { if (timer_elapsed(recording_timer) > 500) { if (using_1) { rgb_matrix_set_color(42, 0, 0, 0); - print("Macro 1 light off\n"); } else { rgb_matrix_set_color(43, 0, 0, 0); - print("Macro 2 light off\n"); } lit = false; recording_timer = timer_read(); @@ -147,10 +141,8 @@ bool rgb_matrix_indicators_user(void) { if (timer_elapsed(recording_timer) > 250) { if (using_1) { rgb_matrix_set_color(42, 255, 0, 0); - print("Macro 1 light on\n"); } else { rgb_matrix_set_color(43, 255, 0, 0); - print("Macro 2 light on\n"); } lit = true; recording_timer = timer_read(); From 2a65939c05f91e1d2dc049f4cd0c2007e204b67d Mon Sep 17 00:00:00 2001 From: bfayers Date: Fri, 15 Dec 2023 17:31:14 +0000 Subject: [PATCH 32/34] disable debug console --- keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/rules.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/rules.mk b/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/rules.mk index 9b0f66831801..f5bb8daff3ce 100644 --- a/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/rules.mk +++ b/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/rules.mk @@ -1,4 +1,4 @@ TAP_DANCE_ENABLE = yes DYNAMIC_MACRO_ENABLE = yes -CONSOLE_ENABLE = yes +# CONSOLE_ENABLE = yes RGB_MATRIX_CUSTOM_USER = yes \ No newline at end of file From a80fd5aeb4b036ccd2147d0fc7f6f4451a2e5fdc Mon Sep 17 00:00:00 2001 From: bfayers Date: Fri, 15 Dec 2023 17:35:40 +0000 Subject: [PATCH 33/34] link where file was taken from --- .../keychron/k2_pro/iso/rgb/keymaps/bfayers/rgb_matrix_user.inc | 1 + 1 file changed, 1 insertion(+) diff --git a/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/rgb_matrix_user.inc b/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/rgb_matrix_user.inc index 4173ca70f137..6624bf7e59cc 100644 --- a/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/rgb_matrix_user.inc +++ b/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/rgb_matrix_user.inc @@ -2,6 +2,7 @@ RGB_MATRIX_EFFECT(empty_effect) #ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS +// Taken from https://github.com/tcteo/qmk_firmware/blob/28487fb8695f5afdc9594514174ffe9635d4eec0/keyboards/kbdcraft/adam0110/keymaps/tcteo/rgb_matrix_user.inc // https://github.com/qmk/qmk_firmware/issues/14686 // [Bug] Cannot control RGB Matrix manually, colors repeatedly overwritten with solid color under RGB_MATRIX_NONE mode #14686 // As a workaround, define a custom effect that does nothing, set it as the init default in keymap.c: rgb_matrix_mode_noeeprom(RGB_MATRIX_CUSTOM_empty_effect); From c80d192ac23be45770e06c63ddeed8f121353c75 Mon Sep 17 00:00:00 2001 From: bfayers Date: Sat, 16 Dec 2023 01:52:20 +0000 Subject: [PATCH 34/34] move some macros (task,file) back to k2_pro.c/h to solve some issues --- .../k2_pro/iso/rgb/keymaps/bfayers/keymap.c | 17 ++--------------- keyboards/keychron/k2_pro/k2_pro.c | 12 ++++++++++++ keyboards/keychron/k2_pro/k2_pro.h | 4 +++- 3 files changed, 17 insertions(+), 16 deletions(-) diff --git a/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/keymap.c b/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/keymap.c index f3016e5f57a1..7d437975edd9 100644 --- a/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/keymap.c +++ b/keyboards/keychron/k2_pro/iso/rgb/keymaps/bfayers/keymap.c @@ -39,9 +39,7 @@ tap_dance_action_t tap_dance_actions[] = { enum custom_keycodes { SSHOT = SAFE_RANGE, GUI_SPC, - OS_FN, - KC_TASK, - KC_FILE + OS_FN }; // This will be true when the switch is set to windows, and false when the switch is set to mac. @@ -57,18 +55,6 @@ bool dip_switch_update_user(uint8_t index, bool active) { // Macro Processing bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { - case KC_TASK: - if (record->event.pressed) { - SEND_STRING(SS_LGUI(SS_TAP(X_TAB))); - return false; - } - break; - case KC_FILE: - if (record->event.pressed) { - SEND_STRING(SS_LGUI(SS_TAP(X_E))); - return false; - } - break; case SSHOT: if (record->event.pressed) { if (on_windows) { @@ -96,6 +82,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { //When we release the OS_FN key, move back to the BASE layer. layer_move(BASE); } + return false; break; } return true; diff --git a/keyboards/keychron/k2_pro/k2_pro.c b/keyboards/keychron/k2_pro/k2_pro.c index f2d7642829b6..825f0571d138 100644 --- a/keyboards/keychron/k2_pro/k2_pro.c +++ b/keyboards/keychron/k2_pro/k2_pro.c @@ -67,6 +67,18 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { static uint8_t host_idx = 0; switch (keycode) { + case KC_TASK: + if (record->event.pressed) { + SEND_STRING(SS_LGUI(SS_TAP(X_TAB))); + return false; + } + break; + case KC_FILE: + if (record->event.pressed) { + SEND_STRING(SS_LGUI(SS_TAP(X_E))); + return false; + } + break; #ifdef KC_BLUETOOTH_ENABLE case BT_HST1 ... BT_HST3: if (get_transport() == TRANSPORT_BLUETOOTH) { diff --git a/keyboards/keychron/k2_pro/k2_pro.h b/keyboards/keychron/k2_pro/k2_pro.h index 1936d43b3be8..05bd3ba10178 100644 --- a/keyboards/keychron/k2_pro/k2_pro.h +++ b/keyboards/keychron/k2_pro/k2_pro.h @@ -31,8 +31,10 @@ // clang-format off enum { + KC_TASK = USER_START, + KC_FILE, #ifdef KC_BLUETOOTH_ENABLE - BT_HST1 = USER_START, + BT_HST1, BT_HST2, BT_HST3, BAT_LVL,