File tree Expand file tree Collapse file tree
keyboards/framework/iso/keymaps/default Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -88,7 +88,25 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
8888
8989// Make sure to keep FN Lock even after reset
9090bool process_record_user (uint16_t keycode , keyrecord_t * record ) {
91+ static uint16_t bootloader_key_timer = 0 ;
92+ static bool bootloader_other_key_recorded = false; // track if any key other than CapsLock has been pressed
93+ if (keycode != KC_CAPS ) { bootloader_other_key_recorded = true; }
94+
9195 switch (keycode ) {
96+ case KC_CAPS : // enter bootloader if CapsLock is held for 5 seconds
97+ if (record -> event .pressed ) {
98+ bootloader_key_timer = timer_read ();
99+ bootloader_other_key_recorded = false; // start tracking other keys
100+ } else {
101+ if (!bootloader_other_key_recorded ) { // only go to bootloader if no other key has been pressed
102+ if (timer_elapsed (bootloader_key_timer ) >= 5000 ) {
103+ bootloader_jump ();
104+ }
105+ }
106+ bootloader_key_timer = 0 ; // reset timer counter on release so it can be used for tracking if CapsLock is pressed
107+ }
108+ break ;
109+
92110 case FN_LOCK :
93111 if (record -> event .pressed ) {
94112 if (layer_state_is (_FN )) {
You can’t perform that action at this time.
0 commit comments