浏览代码

Add ability to enter bootloader mode from `QK_MAKE` (#17745)

jack 2 年之前
父节点
当前提交
a6f3194397
共有 3 个文件被更改,包括 17 次插入14 次删除
  1. 7 7
      docs/keycodes.md
  2. 7 7
      docs/quantum_keycodes.md
  3. 3 0
      quantum/quantum.c

+ 7 - 7
docs/keycodes.md

@@ -219,13 +219,13 @@ See also: [Basic Keycodes](keycodes_basic.md)
 
 
 See also: [Quantum Keycodes](quantum_keycodes.md#qmk-keycodes)
 See also: [Quantum Keycodes](quantum_keycodes.md#qmk-keycodes)
 
 
-|Key              |Aliases  |Description                                                                      |
-|-----------------|---------|---------------------------------------------------------------------------------|
-|`QK_BOOTLOADER`  |`QK_BOOT`|Put the keyboard into bootloader mode for flashing                               |
-|`QK_DEBUG_TOGGLE`|`DB_TOGG`|Toggle debug mode                                                                |
-|`QK_CLEAR_EEPROM`|`EE_CLR` |Reinitializes the keyboard's EEPROM (persistent memory)                          |
-|`QK_MAKE`        |         |Sends `qmk compile -kb (keyboard) -km (keymap)`, or `qmk flash` if shift is held |
-|`QK_REBOOT`      |`QK_RBT` |Resets the keyboard. Does not load the bootloader                                |
+|Key              |Aliases  |Description                                                                                                                                      |
+|-----------------|---------|-------------------------------------------------------------------------------------------------------------------------------------------------|
+|`QK_BOOTLOADER`  |`QK_BOOT`|Put the keyboard into bootloader mode for flashing                                                                                               |
+|`QK_DEBUG_TOGGLE`|`DB_TOGG`|Toggle debug mode                                                                                                                                |
+|`QK_CLEAR_EEPROM`|`EE_CLR` |Reinitializes the keyboard's EEPROM (persistent memory)                                                                                          |
+|`QK_MAKE`        |         |Sends `qmk compile -kb (keyboard) -km (keymap)`, or `qmk flash` if shift is held. Puts keyboard into bootloader mode if shift & control are held |
+|`QK_REBOOT`      |`QK_RBT` |Resets the keyboard. Does not load the bootloader                                                                                                |
 
 
 ## Audio Keys :id=audio-keys
 ## Audio Keys :id=audio-keys
 
 

+ 7 - 7
docs/quantum_keycodes.md

@@ -8,10 +8,10 @@ On this page we have documented keycodes between `0x00FF` and `0xFFFF` which are
 
 
 ## QMK Keycodes :id=qmk-keycodes
 ## QMK Keycodes :id=qmk-keycodes
 
 
-|Key              |Aliases  |Description                                                                      |
-|-----------------|---------|---------------------------------------------------------------------------------|
-|`QK_BOOTLOADER`  |`QK_BOOT`|Put the keyboard into bootloader mode for flashing                               |
-|`QK_DEBUG_TOGGLE`|`DB_TOGG`|Toggle debug mode                                                                |
-|`QK_CLEAR_EEPROM`|`EE_CLR` |Reinitializes the keyboard's EEPROM (persistent memory)                          |
-|`QK_MAKE`        |         |Sends `qmk compile -kb (keyboard) -km (keymap)`, or `qmk flash` if shift is held |
-|`QK_REBOOT`      |`QK_RBT` |Resets the keyboard. Does not load the bootloader                                |
+|Key              |Aliases  |Description                                                                                                                                      |
+|-----------------|---------|-------------------------------------------------------------------------------------------------------------------------------------------------|
+|`QK_BOOTLOADER`  |`QK_BOOT`|Put the keyboard into bootloader mode for flashing                                                                                               |
+|`QK_DEBUG_TOGGLE`|`DB_TOGG`|Toggle debug mode                                                                                                                                |
+|`QK_CLEAR_EEPROM`|`EE_CLR` |Reinitializes the keyboard's EEPROM (persistent memory)                                                                                          |
+|`QK_MAKE`        |         |Sends `qmk compile -kb (keyboard) -km (keymap)`, or `qmk flash` if shift is held. Puts keyboard into bootloader mode if shift & control are held |
+|`QK_REBOOT`      |`QK_RBT` |Resets the keyboard. Does not load the bootloader                                                                                                |

+ 3 - 0
quantum/quantum.c

@@ -400,6 +400,9 @@ bool process_record_quantum(keyrecord_t *record) {
                     SEND_STRING_DELAY(" compile ", TAP_CODE_DELAY);
                     SEND_STRING_DELAY(" compile ", TAP_CODE_DELAY);
                 }
                 }
                 SEND_STRING_DELAY("-kb " QMK_KEYBOARD " -km " QMK_KEYMAP SS_TAP(X_ENTER), TAP_CODE_DELAY);
                 SEND_STRING_DELAY("-kb " QMK_KEYBOARD " -km " QMK_KEYMAP SS_TAP(X_ENTER), TAP_CODE_DELAY);
+                if (temp_mod & MOD_MASK_CS) {
+                    reset_keyboard();
+                }
             }
             }
 #endif
 #endif
         }
         }