mirror of
https://github.com/qmk/qmk_firmware
synced 2024-12-22 08:26:21 +00:00
[docs] Organize driver & feature docs into subfolders (#23848)
Co-authored-by: Nick Brassel <nick@tzarc.org>
This commit is contained in:
parent
fa6d23235b
commit
78a0adfbb4
@ -10,11 +10,11 @@ It is also now possible to define combos that have keys overlapping with other c
|
|||||||
|
|
||||||
### Key Overrides ([#11422](https://github.com/qmk/qmk_firmware/pull/11422)) {#key-overrides}
|
### Key Overrides ([#11422](https://github.com/qmk/qmk_firmware/pull/11422)) {#key-overrides}
|
||||||
|
|
||||||
QMK now has a new feature: [key overrides](../feature_key_overrides). This feature allows for overriding the output of key combinations involving modifiers. As an example, pressing <kbd>Shift+2</kbd> normally results in an <kbd>@</kbd> on US-ANSI keyboard layouts -- the new key overrides allow for adding similar functionality, but for any <kbd>modifier + key</kbd> press.
|
QMK now has a new feature: [key overrides](../features/key_overrides). This feature allows for overriding the output of key combinations involving modifiers. As an example, pressing <kbd>Shift+2</kbd> normally results in an <kbd>@</kbd> on US-ANSI keyboard layouts -- the new key overrides allow for adding similar functionality, but for any <kbd>modifier + key</kbd> press.
|
||||||
|
|
||||||
To illustrate, it's now possible to use the key overrides feature to translate <kbd>Shift + Backspace</kbd> into <kbd>Delete</kbd> -- an often-requested example of where this functionality comes in handy.
|
To illustrate, it's now possible to use the key overrides feature to translate <kbd>Shift + Backspace</kbd> into <kbd>Delete</kbd> -- an often-requested example of where this functionality comes in handy.
|
||||||
|
|
||||||
There's far more to describe that what lives in this changelog, so head over to the [key overrides documentation](../feature_key_overrides) for more examples and info.
|
There's far more to describe that what lives in this changelog, so head over to the [key overrides documentation](../features/key_overrides) for more examples and info.
|
||||||
|
|
||||||
### Digitizer support ([#12851](https://github.com/qmk/qmk_firmware/pull/12851))
|
### Digitizer support ([#12851](https://github.com/qmk/qmk_firmware/pull/12851))
|
||||||
|
|
||||||
|
@ -31,7 +31,7 @@ QMK now has core-supplied support for the following pointing device peripherals:
|
|||||||
| `POINTING_DEVICE_DRIVER = pimoroni_trackball` | Pimoroni Trackball |
|
| `POINTING_DEVICE_DRIVER = pimoroni_trackball` | Pimoroni Trackball |
|
||||||
| `POINTING_DEVICE_DRIVER = pmw3360` | PMW 3360 |
|
| `POINTING_DEVICE_DRIVER = pmw3360` | PMW 3360 |
|
||||||
|
|
||||||
See the new documentation for the [Pointing Device](../feature_pointing_device) feature for more information on specific configuration for each driver.
|
See the new documentation for the [Pointing Device](../features/pointing_device) feature for more information on specific configuration for each driver.
|
||||||
|
|
||||||
### Dynamic Tapping Term ([#11036](https://github.com/qmk/qmk_firmware/pull/11036)) {#dynamic-tapping-term}
|
### Dynamic Tapping Term ([#11036](https://github.com/qmk/qmk_firmware/pull/11036)) {#dynamic-tapping-term}
|
||||||
|
|
||||||
@ -116,7 +116,7 @@ Related to the previous section -- RGB Matrix modes have now been made to be opt
|
|||||||
|
|
||||||
Most keyboards keep their original functionality, but over time the QMK maintainers have found that removal of animations ends up being the quickest way to free up space... and some keyboards have had animations such as reactive effects disabled by default in order to still fit within the flash space available.
|
Most keyboards keep their original functionality, but over time the QMK maintainers have found that removal of animations ends up being the quickest way to free up space... and some keyboards have had animations such as reactive effects disabled by default in order to still fit within the flash space available.
|
||||||
|
|
||||||
The full list of configurables to turn specific animations back on can be found at on the [RGB Matrix documentation](../feature_rgb_matrix#rgb-matrix-effects) page.
|
The full list of configurables to turn specific animations back on can be found at on the [RGB Matrix documentation](../features/rgb_matrix#rgb-matrix-effects) page.
|
||||||
|
|
||||||
### OLED task refactoring ([#14864](https://github.com/qmk/qmk_firmware/pull/14864)) {#oled-task-refactor}
|
### OLED task refactoring ([#14864](https://github.com/qmk/qmk_firmware/pull/14864)) {#oled-task-refactor}
|
||||||
|
|
||||||
|
@ -12,7 +12,7 @@ Something something *Lets go gamers!*
|
|||||||
|
|
||||||
Pointing devices can now be shared across a split keyboard with support for a single pointing device or a pointing device on each side.
|
Pointing devices can now be shared across a split keyboard with support for a single pointing device or a pointing device on each side.
|
||||||
|
|
||||||
See the [Pointing Device](../feature_pointing_device) documentation for further configuration options.
|
See the [Pointing Device](../features/pointing_device) documentation for further configuration options.
|
||||||
|
|
||||||
## Changes Requiring User Action {#changes-requiring-user-action}
|
## Changes Requiring User Action {#changes-requiring-user-action}
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@ This is a new feature that allows for capslock-like functionality that turns its
|
|||||||
|
|
||||||
For instance, if you wish to type "QMK" without holding shift the entire time, you can either tap both left and right shift, or double-tap shift, to turn on _Caps Word_ -- then type `qmk` (lowercase) without holding shift. Once you hit any key other than `a`--`z`, `0`--`9`, `-`, `_`, delete, or backspace, this will go back to normal typing!
|
For instance, if you wish to type "QMK" without holding shift the entire time, you can either tap both left and right shift, or double-tap shift, to turn on _Caps Word_ -- then type `qmk` (lowercase) without holding shift. Once you hit any key other than `a`--`z`, `0`--`9`, `-`, `_`, delete, or backspace, this will go back to normal typing!
|
||||||
|
|
||||||
There are other activation mechanisms as well as configurable options like timeout and the like -- see the [Caps Word documentation](../feature_caps_word) for more information.
|
There are other activation mechanisms as well as configurable options like timeout and the like -- see the [Caps Word documentation](../features/caps_word) for more information.
|
||||||
|
|
||||||
### Quantum Painter ([#10174](https://github.com/qmk/qmk_firmware/pull/10174)) {#quantum-painter}
|
### Quantum Painter ([#10174](https://github.com/qmk/qmk_firmware/pull/10174)) {#quantum-painter}
|
||||||
|
|
||||||
@ -26,7 +26,7 @@ Quantum Painter is not supported on AVR due to complexity and size constraints.
|
|||||||
|
|
||||||
### Encoder Mapping ([#13286](https://github.com/qmk/qmk_firmware/pull/13286)) {#encoder-mapping}
|
### Encoder Mapping ([#13286](https://github.com/qmk/qmk_firmware/pull/13286)) {#encoder-mapping}
|
||||||
|
|
||||||
One of the long-standing complaints with Encoders is that there has been no easy way to configure them in user keymaps. [#13286](https://github.com/qmk/qmk_firmware/pull/13286) added support for [Encoder Mapping](../feature_encoders#encoder-map), which allows users to define encoder functionality in a similar way to their normal keymap.
|
One of the long-standing complaints with Encoders is that there has been no easy way to configure them in user keymaps. [#13286](https://github.com/qmk/qmk_firmware/pull/13286) added support for [Encoder Mapping](../features/encoders#encoder-map), which allows users to define encoder functionality in a similar way to their normal keymap.
|
||||||
|
|
||||||
::: warning
|
::: warning
|
||||||
This is not yet supported by QMK Configurator. It is also unlikely to ever be supported by VIA.
|
This is not yet supported by QMK Configurator. It is also unlikely to ever be supported by VIA.
|
||||||
|
@ -83,7 +83,7 @@ The now-EOL kbfirmware allowed people who aren't set up with QMK the ability to
|
|||||||
|
|
||||||
QMK has had the ability to write to internal MCU flash in order to emulate EEPROM for some time now, but it was only limited to a small number of MCUs. The base HAL used by QMK for a large number of ARM devices provides a "proper" embedded MCU flash driver, so _@tzarc_ decoupled the wear-leveling algorithm from the old flash writing code, improved it, wrote some tests, and enabled its use for a much larger number of other devices... including RP2040's XIP flash, and external SPI NOR Flash.
|
QMK has had the ability to write to internal MCU flash in order to emulate EEPROM for some time now, but it was only limited to a small number of MCUs. The base HAL used by QMK for a large number of ARM devices provides a "proper" embedded MCU flash driver, so _@tzarc_ decoupled the wear-leveling algorithm from the old flash writing code, improved it, wrote some tests, and enabled its use for a much larger number of other devices... including RP2040's XIP flash, and external SPI NOR Flash.
|
||||||
|
|
||||||
See the [EEPROM Driver](../eeprom_driver) documentation for more information.
|
See the [EEPROM Driver](../drivers/eeprom) documentation for more information.
|
||||||
|
|
||||||
### Pointing Device Improvements ([#16371](https://github.com/qmk/qmk_firmware/pull/16371), [#17111](https://github.com/qmk/qmk_firmware/pull/17111), [#17176](https://github.com/qmk/qmk_firmware/pull/17176), [#17482](https://github.com/qmk/qmk_firmware/pull/17482), [#17776](https://github.com/qmk/qmk_firmware/pull/17776), [#17613](https://github.com/qmk/qmk_firmware/pull/17613)) {#pointing-device-improvements}
|
### Pointing Device Improvements ([#16371](https://github.com/qmk/qmk_firmware/pull/16371), [#17111](https://github.com/qmk/qmk_firmware/pull/17111), [#17176](https://github.com/qmk/qmk_firmware/pull/17176), [#17482](https://github.com/qmk/qmk_firmware/pull/17482), [#17776](https://github.com/qmk/qmk_firmware/pull/17776), [#17613](https://github.com/qmk/qmk_firmware/pull/17613)) {#pointing-device-improvements}
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
### Autocorrect ([#15699](https://github.com/qmk/qmk_firmware/pull/15699)) {#autocorrect}
|
### Autocorrect ([#15699](https://github.com/qmk/qmk_firmware/pull/15699)) {#autocorrect}
|
||||||
|
|
||||||
_@getreuer_ in their infinite wisdom decided that autocorrect was a feature needed by QMK. As is customary, _@drashna_ adapted it to core and got it into a state that everyone else can use it. See [Feature: Autocorrect](../feature_autocorrect) for more ifnormation (grin).
|
_@getreuer_ in their infinite wisdom decided that autocorrect was a feature needed by QMK. As is customary, _@drashna_ adapted it to core and got it into a state that everyone else can use it. See [Feature: Autocorrect](../features/autocorrect) for more ifnormation (grin).
|
||||||
|
|
||||||
## Changes Requiring User Action {#changes-requiring-user-action}
|
## Changes Requiring User Action {#changes-requiring-user-action}
|
||||||
|
|
||||||
@ -132,7 +132,7 @@ The equivalent transformations should be done for LED Matrix boards.
|
|||||||
|
|
||||||
### Unicode mode refactoring {#unicode-mode-renaming}
|
### Unicode mode refactoring {#unicode-mode-renaming}
|
||||||
|
|
||||||
Unicode modes were renamed in order to prevent collision with equivalent keycodes. The available values for `UNICODE_SELECTED_MODES` changed -- see [Feature: Unicode](../feature_unicode#setting-the-input-mode) for the new list of values and how to configure them.
|
Unicode modes were renamed in order to prevent collision with equivalent keycodes. The available values for `UNICODE_SELECTED_MODES` changed -- see [Feature: Unicode](../features/unicode#setting-the-input-mode) for the new list of values and how to configure them.
|
||||||
|
|
||||||
## Notable core changes {#notable-core}
|
## Notable core changes {#notable-core}
|
||||||
|
|
||||||
|
@ -106,7 +106,7 @@ void leader_end_user(void) {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
For more information please see the [Leader Key documentation](../feature_leader_key).
|
For more information please see the [Leader Key documentation](../features/leader_key).
|
||||||
|
|
||||||
### Updated Keyboard Codebases {#updated-keyboard-codebases}
|
### Updated Keyboard Codebases {#updated-keyboard-codebases}
|
||||||
|
|
||||||
|
@ -24,7 +24,7 @@ Of note for keyboard designers:
|
|||||||
|
|
||||||
A new pair of keys has been added to QMK -- namely `QK_REPEAT_KEY` and `QK_ALT_REPEAT_KEY` (shortened: `QK_REP`/`QK_AREP`). These allow you to repeat the last key pressed, or in the case of the alternate key, press the "opposite" of the last key. For example, if you press `KC_LEFT`, pressing `QK_REPEAT_KEY` afterwards repeats `KC_LEFT`, but pressing `QK_ALT_REPEAT_KEY` instead sends `KC_RIGHT`.
|
A new pair of keys has been added to QMK -- namely `QK_REPEAT_KEY` and `QK_ALT_REPEAT_KEY` (shortened: `QK_REP`/`QK_AREP`). These allow you to repeat the last key pressed, or in the case of the alternate key, press the "opposite" of the last key. For example, if you press `KC_LEFT`, pressing `QK_REPEAT_KEY` afterwards repeats `KC_LEFT`, but pressing `QK_ALT_REPEAT_KEY` instead sends `KC_RIGHT`.
|
||||||
|
|
||||||
The full list of default alternate keys is available on the [Repeat Key](../feature_repeat_key) documentation.
|
The full list of default alternate keys is available on the [Repeat Key](../features/repeat_key) documentation.
|
||||||
|
|
||||||
To enable these keys, in your keymap's `rules.mk`, add:
|
To enable these keys, in your keymap's `rules.mk`, add:
|
||||||
|
|
||||||
@ -93,7 +93,7 @@ Additionally, this ensures that builds on QMK Configurator produce some sort of
|
|||||||
|
|
||||||
The "classic" OLED driver picked up support for additional sizes of OLED displays, support for the SH1107 controller, and SPI-based OLED support.
|
The "classic" OLED driver picked up support for additional sizes of OLED displays, support for the SH1107 controller, and SPI-based OLED support.
|
||||||
|
|
||||||
Other configurable items are available and can be found on the [OLED Driver page](../feature_oled_driver).
|
Other configurable items are available and can be found on the [OLED Driver page](../features/oled_driver).
|
||||||
|
|
||||||
## Full changelist {#full-changelist}
|
## Full changelist {#full-changelist}
|
||||||
|
|
||||||
|
@ -42,7 +42,7 @@ AVR sees minimal (if any) benefit -- `double` was interpreted as `float` on AVR
|
|||||||
|
|
||||||
### Remove encoder in-matrix workaround code ([#20389](https://github.com/qmk/qmk_firmware/pull/20389)) {#remove-encoder-in-matrix-workaround-code}
|
### Remove encoder in-matrix workaround code ([#20389](https://github.com/qmk/qmk_firmware/pull/20389)) {#remove-encoder-in-matrix-workaround-code}
|
||||||
|
|
||||||
Some keyboards "hacked" encoder support into spare slots in the key matrix in order to interoperate with VIA. This workaround is no longer necessary, and the code has been removed. If you have a keyboard that uses this workaround, you will need to update your keymap to use the new [Encoder Map](../feature_encoders#encoder-map) API instead.
|
Some keyboards "hacked" encoder support into spare slots in the key matrix in order to interoperate with VIA. This workaround is no longer necessary, and the code has been removed. If you have a keyboard that uses this workaround, you will need to update your keymap to use the new [Encoder Map](../features/encoders#encoder-map) API instead.
|
||||||
|
|
||||||
### Unicodemap keycodes rename ([#21092](https://github.com/qmk/qmk_firmware/pull/21092)) {#unicodemap-keycodes-rename}
|
### Unicodemap keycodes rename ([#21092](https://github.com/qmk/qmk_firmware/pull/21092)) {#unicodemap-keycodes-rename}
|
||||||
|
|
||||||
|
@ -120,7 +120,7 @@ In some cases, accidental automatic activation of the mouse layer made it diffic
|
|||||||
|
|
||||||
### DIP Switch Mapping ([#22543](https://github.com/qmk/qmk_firmware/pull/22543)) {#dip-switch-map}
|
### DIP Switch Mapping ([#22543](https://github.com/qmk/qmk_firmware/pull/22543)) {#dip-switch-map}
|
||||||
|
|
||||||
Much like Encoder Mapping, DIP Switch Mapping allows for specifying a table of actions to execute when a DIP switch state changes. See the [DIP Switch Documentation](../feature_dip_switch#dip-switch-map) for more information.
|
Much like Encoder Mapping, DIP Switch Mapping allows for specifying a table of actions to execute when a DIP switch state changes. See the [DIP Switch Documentation](../features/dip_switch#dip-switch-map) for more information.
|
||||||
|
|
||||||
```c
|
```c
|
||||||
#if defined(DIP_SWITCH_MAP_ENABLE)
|
#if defined(DIP_SWITCH_MAP_ENABLE)
|
||||||
|
@ -103,45 +103,45 @@
|
|||||||
{
|
{
|
||||||
"text": "Advanced Keycodes",
|
"text": "Advanced Keycodes",
|
||||||
"items": [
|
"items": [
|
||||||
{ "text": "Command", "link": "/feature_command" },
|
{ "text": "Command", "link": "/features/command" },
|
||||||
{ "text": "Dynamic Macros", "link": "/feature_dynamic_macros" },
|
{ "text": "Dynamic Macros", "link": "/features/dynamic_macros" },
|
||||||
{ "text": "Grave Escape", "link": "/feature_grave_esc" },
|
{ "text": "Grave Escape", "link": "/features/grave_esc" },
|
||||||
{ "text": "Leader Key", "link": "/feature_leader_key" },
|
{ "text": "Leader Key", "link": "/features/leader_key" },
|
||||||
{ "text": "Mod-Tap", "link": "/mod_tap" },
|
{ "text": "Mod-Tap", "link": "/mod_tap" },
|
||||||
{ "text": "Macros", "link": "/feature_macros" },
|
{ "text": "Macros", "link": "/feature_macros" },
|
||||||
{ "text": "Mouse Keys", "link": "/feature_mouse_keys" },
|
{ "text": "Mouse Keys", "link": "/features/mouse_keys" },
|
||||||
{ "text": "Programmable Button", "link": "/feature_programmable_button" },
|
{ "text": "Programmable Button", "link": "/features/programmable_button" },
|
||||||
{ "text": "Repeat Key", "link": "/feature_repeat_key" },
|
{ "text": "Repeat Key", "link": "/features/repeat_key" },
|
||||||
{ "text": "Space Cadet Shift", "link": "/feature_space_cadet" },
|
{ "text": "Space Cadet Shift", "link": "/features/space_cadet" },
|
||||||
{ "text": "US ANSI Shifted Keys", "link": "/keycodes_us_ansi_shifted" }
|
{ "text": "US ANSI Shifted Keys", "link": "/keycodes_us_ansi_shifted" }
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"text": "Software Features",
|
"text": "Software Features",
|
||||||
"items": [
|
"items": [
|
||||||
{ "text": "Auto Shift", "link": "/feature_auto_shift" },
|
{ "text": "Auto Shift", "link": "/features/auto_shift" },
|
||||||
{ "text": "Autocorrect", "link": "/feature_autocorrect" },
|
{ "text": "Autocorrect", "link": "/features/autocorrect" },
|
||||||
{ "text": "Caps Word", "link": "/feature_caps_word" },
|
{ "text": "Caps Word", "link": "/features/caps_word" },
|
||||||
{ "text": "Combos", "link": "/feature_combo" },
|
{ "text": "Combos", "link": "/features/combo" },
|
||||||
{ "text": "Debounce API", "link": "/feature_debounce_type" },
|
{ "text": "Debounce API", "link": "/feature_debounce_type" },
|
||||||
{ "text": "Digitizer", "link": "/feature_digitizer" },
|
{ "text": "Digitizer", "link": "/features/digitizer" },
|
||||||
{ "text": "EEPROM", "link": "/feature_eeprom" },
|
{ "text": "EEPROM", "link": "/feature_eeprom" },
|
||||||
{ "text": "Key Lock", "link": "/feature_key_lock" },
|
{ "text": "Key Lock", "link": "/features/key_lock" },
|
||||||
{ "text": "Key Overrides", "link": "/feature_key_overrides" },
|
{ "text": "Key Overrides", "link": "/features/key_overrides" },
|
||||||
{ "text": "Layers", "link": "/feature_layers" },
|
{ "text": "Layers", "link": "/feature_layers" },
|
||||||
{ "text": "One Shot Keys", "link": "/one_shot_keys" },
|
{ "text": "One Shot Keys", "link": "/one_shot_keys" },
|
||||||
{ "text": "OS Detection", "link": "/feature_os_detection" },
|
{ "text": "OS Detection", "link": "/features/os_detection" },
|
||||||
{ "text": "Raw HID", "link": "/feature_rawhid" },
|
{ "text": "Raw HID", "link": "/features/rawhid" },
|
||||||
{ "text": "Secure", "link": "/feature_secure" },
|
{ "text": "Secure", "link": "/features/secure" },
|
||||||
{ "text": "Send String", "link": "/feature_send_string" },
|
{ "text": "Send String", "link": "/features/send_string" },
|
||||||
{ "text": "Sequencer", "link": "/feature_sequencer" },
|
{ "text": "Sequencer", "link": "/features/sequencer" },
|
||||||
{ "text": "Swap Hands", "link": "/feature_swap_hands" },
|
{ "text": "Swap Hands", "link": "/features/swap_hands" },
|
||||||
{ "text": "Tap Dance", "link": "/feature_tap_dance" },
|
{ "text": "Tap Dance", "link": "/features/tap_dance" },
|
||||||
{ "text": "Tap-Hold Configuration", "link": "/tap_hold" },
|
{ "text": "Tap-Hold Configuration", "link": "/tap_hold" },
|
||||||
{ "text": "Tri Layer", "link": "/feature_tri_layer" },
|
{ "text": "Tri Layer", "link": "/features/tri_layer" },
|
||||||
{ "text": "Unicode", "link": "/feature_unicode" },
|
{ "text": "Unicode", "link": "/features/unicode" },
|
||||||
{ "text": "Userspace", "link": "/feature_userspace" },
|
{ "text": "Userspace", "link": "/feature_userspace" },
|
||||||
{ "text": "WPM Calculation", "link": "/feature_wpm" }
|
{ "text": "WPM Calculation", "link": "/features/wpm" }
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -157,35 +157,35 @@
|
|||||||
{ "text": "Quantum Painter LVGL Integration", "link": "/quantum_painter_lvgl" }
|
{ "text": "Quantum Painter LVGL Integration", "link": "/quantum_painter_lvgl" }
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{ "text": "HD44780 LCD Driver", "link": "/feature_hd44780" },
|
{ "text": "HD44780 LCD Driver", "link": "/features/hd44780" },
|
||||||
{ "text": "ST7565 LCD Driver", "link": "/feature_st7565" },
|
{ "text": "ST7565 LCD Driver", "link": "/features/st7565" },
|
||||||
{ "text": "OLED Driver", "link": "/feature_oled_driver" }
|
{ "text": "OLED Driver", "link": "/features/oled_driver" }
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"text": "Lighting",
|
"text": "Lighting",
|
||||||
"items": [
|
"items": [
|
||||||
{ "text": "Backlight", "link": "/feature_backlight" },
|
{ "text": "Backlight", "link": "/features/backlight" },
|
||||||
{ "text": "LED Matrix", "link": "/feature_led_matrix" },
|
{ "text": "LED Matrix", "link": "/features/led_matrix" },
|
||||||
{ "text": "RGB Lighting", "link": "/feature_rgblight" },
|
{ "text": "RGB Lighting", "link": "/features/rgblight" },
|
||||||
{ "text": "RGB Matrix", "link": "/feature_rgb_matrix" }
|
{ "text": "RGB Matrix", "link": "/features/rgb_matrix" }
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{ "text": "Audio", "link": "/feature_audio" },
|
{ "text": "Audio", "link": "/features/audio" },
|
||||||
{ "text": "Bluetooth", "link": "/feature_bluetooth" },
|
{ "text": "Bluetooth", "link": "/features/bluetooth" },
|
||||||
{ "text": "Bootmagic Lite", "link": "/feature_bootmagic" },
|
{ "text": "Bootmagic Lite", "link": "/features/bootmagic" },
|
||||||
{ "text": "Converters", "link": "/feature_converters" },
|
{ "text": "Converters", "link": "/feature_converters" },
|
||||||
{ "text": "Custom Matrix", "link": "/custom_matrix" },
|
{ "text": "Custom Matrix", "link": "/custom_matrix" },
|
||||||
{ "text": "DIP Switch", "link": "/feature_dip_switch" },
|
{ "text": "DIP Switch", "link": "/features/dip_switch" },
|
||||||
{ "text": "Encoders", "link": "/feature_encoders" },
|
{ "text": "Encoders", "link": "/features/encoders" },
|
||||||
{ "text": "Haptic Feedback", "link": "/feature_haptic_feedback" },
|
{ "text": "Haptic Feedback", "link": "/features/haptic_feedback" },
|
||||||
{ "text": "Joystick", "link": "/feature_joystick" },
|
{ "text": "Joystick", "link": "/features/joystick" },
|
||||||
{ "text": "LED Indicators", "link": "/feature_led_indicators" },
|
{ "text": "LED Indicators", "link": "/features/led_indicators" },
|
||||||
{ "text": "MIDI", "link": "/feature_midi" },
|
{ "text": "MIDI", "link": "/features/midi" },
|
||||||
{ "text": "Pointing Device", "link": "/feature_pointing_device" },
|
{ "text": "Pointing Device", "link": "/features/pointing_device" },
|
||||||
{ "text": "PS/2 Mouse", "link": "/feature_ps2_mouse" },
|
{ "text": "PS/2 Mouse", "link": "/features/ps2_mouse" },
|
||||||
{ "text": "Split Keyboard", "link": "/feature_split_keyboard" },
|
{ "text": "Split Keyboard", "link": "/features/split_keyboard" },
|
||||||
{ "text": "Stenography", "link": "/feature_stenography" }
|
{ "text": "Stenography", "link": "/features/stenography" }
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -226,19 +226,19 @@
|
|||||||
"text": "Drivers",
|
"text": "Drivers",
|
||||||
"link": "hardware_drivers",
|
"link": "hardware_drivers",
|
||||||
"items": [
|
"items": [
|
||||||
{ "text": "ADC Driver", "link": "/adc_driver" },
|
{ "text": "ADC Driver", "link": "/drivers/adc" },
|
||||||
{ "text": "APA102 Driver", "link": "/apa102_driver" },
|
{ "text": "APA102 Driver", "link": "/drivers/apa102" },
|
||||||
{ "text": "Audio Driver", "link": "/audio_driver" },
|
{ "text": "Audio Driver", "link": "/drivers/audio" },
|
||||||
{ "text": "I2C Driver", "link": "/i2c_driver" },
|
{ "text": "EEPROM Driver", "link": "/drivers/eeprom" },
|
||||||
{ "text": "SPI Driver", "link": "/spi_driver" },
|
{ "text": "Flash Driver", "link": "/drivers/flash" },
|
||||||
{ "text": "WS2812 Driver", "link": "/ws2812_driver" },
|
{ "text": "I2C Driver", "link": "/drivers/i2c" },
|
||||||
{ "text": "EEPROM Driver", "link": "/eeprom_driver" },
|
{ "text": "'serial' Driver", "link": "/drivers/serial" },
|
||||||
{ "text": "Flash Driver", "link": "/flash_driver" },
|
{ "text": "SPI Driver", "link": "/drivers/spi" },
|
||||||
{ "text": "'serial' Driver", "link": "/serial_driver" },
|
{ "text": "UART Driver", "link": "/drivers/uart" },
|
||||||
{ "text": "UART Driver", "link": "/uart_driver" }
|
{ "text": "WS2812 Driver", "link": "/drivers/ws2812" }
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{ "text": "GPIO Controls", "link": "/gpio_control" },
|
{ "text": "GPIO Controls", "link": "/drivers/gpio" },
|
||||||
{ "text": "Keyboard Guidelines", "link": "/hardware_keyboard_guidelines" }
|
{ "text": "Keyboard Guidelines", "link": "/hardware_keyboard_guidelines" }
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -749,7 +749,7 @@ options:
|
|||||||
|
|
||||||
## `qmk generate-rgb-breathe-table`
|
## `qmk generate-rgb-breathe-table`
|
||||||
|
|
||||||
This command generates a lookup table (LUT) header file for the [RGB Lighting](feature_rgblight) feature's breathing animation. Place this file in your keyboard or keymap directory as `rgblight_breathe_table.h` to override the default LUT in `quantum/rgblight/`.
|
This command generates a lookup table (LUT) header file for the [RGB Lighting](features/rgblight) feature's breathing animation. Place this file in your keyboard or keymap directory as `rgblight_breathe_table.h` to override the default LUT in `quantum/rgblight/`.
|
||||||
|
|
||||||
**Usage**:
|
**Usage**:
|
||||||
|
|
||||||
|
@ -207,7 +207,7 @@ If you define these options you will enable the associated feature, which may in
|
|||||||
* `#define TAP_HOLD_CAPS_DELAY 80`
|
* `#define TAP_HOLD_CAPS_DELAY 80`
|
||||||
* Sets the delay for Tap Hold keys (`LT`, `MT`) when using `KC_CAPS_LOCK` keycode, as this has some special handling on MacOS. The value is in milliseconds, and defaults to 80 ms if not defined. For macOS, you may want to set this to 200 or higher.
|
* Sets the delay for Tap Hold keys (`LT`, `MT`) when using `KC_CAPS_LOCK` keycode, as this has some special handling on MacOS. The value is in milliseconds, and defaults to 80 ms if not defined. For macOS, you may want to set this to 200 or higher.
|
||||||
* `#define KEY_OVERRIDE_REPEAT_DELAY 500`
|
* `#define KEY_OVERRIDE_REPEAT_DELAY 500`
|
||||||
* Sets the key repeat interval for [key overrides](feature_key_overrides).
|
* Sets the key repeat interval for [key overrides](features/key_overrides).
|
||||||
* `#define LEGACY_MAGIC_HANDLING`
|
* `#define LEGACY_MAGIC_HANDLING`
|
||||||
* Enables magic configuration handling for advanced keycodes (such as Mod Tap and Layer Tap)
|
* Enables magic configuration handling for advanced keycodes (such as Mod Tap and Layer Tap)
|
||||||
|
|
||||||
@ -217,14 +217,14 @@ If you define these options you will enable the associated feature, which may in
|
|||||||
* `#define WS2812_DI_PIN D7`
|
* `#define WS2812_DI_PIN D7`
|
||||||
* pin the DI on the WS2812 is hooked-up to
|
* pin the DI on the WS2812 is hooked-up to
|
||||||
* `#define RGBLIGHT_LAYERS`
|
* `#define RGBLIGHT_LAYERS`
|
||||||
* Lets you define [lighting layers](feature_rgblight#lighting-layers) that can be toggled on or off. Great for showing the current keyboard layer or caps lock state.
|
* Lets you define [lighting layers](features/rgblight#lighting-layers) that can be toggled on or off. Great for showing the current keyboard layer or caps lock state.
|
||||||
* `#define RGBLIGHT_MAX_LAYERS`
|
* `#define RGBLIGHT_MAX_LAYERS`
|
||||||
* Defaults to 8. Can be expanded up to 32 if more [lighting layers](feature_rgblight#lighting-layers) are needed.
|
* Defaults to 8. Can be expanded up to 32 if more [lighting layers](features/rgblight#lighting-layers) are needed.
|
||||||
* Note: Increasing the maximum will increase the firmware size and slow sync on split keyboards.
|
* Note: Increasing the maximum will increase the firmware size and slow sync on split keyboards.
|
||||||
* `#define RGBLIGHT_LAYER_BLINK`
|
* `#define RGBLIGHT_LAYER_BLINK`
|
||||||
* Adds ability to [blink](feature_rgblight#lighting-layer-blink) a lighting layer for a specified number of milliseconds (e.g. to acknowledge an action).
|
* Adds ability to [blink](features/rgblight#lighting-layer-blink) a lighting layer for a specified number of milliseconds (e.g. to acknowledge an action).
|
||||||
* `#define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF`
|
* `#define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF`
|
||||||
* If defined, then [lighting layers](feature_rgblight#overriding-rgb-lighting-onoff-status) will be shown even if RGB Light is off.
|
* If defined, then [lighting layers](features/rgblight#overriding-rgb-lighting-onoff-status) will be shown even if RGB Light is off.
|
||||||
* `#define RGBLIGHT_LED_COUNT 12`
|
* `#define RGBLIGHT_LED_COUNT 12`
|
||||||
* number of LEDs
|
* number of LEDs
|
||||||
* `#define RGBLIGHT_SPLIT`
|
* `#define RGBLIGHT_SPLIT`
|
||||||
@ -358,7 +358,7 @@ There are a few different ways to set handedness for split keyboards (listed in
|
|||||||
|
|
||||||
* `#define SPLIT_TRANSACTION_IDS_KB .....`
|
* `#define SPLIT_TRANSACTION_IDS_KB .....`
|
||||||
* `#define SPLIT_TRANSACTION_IDS_USER .....`
|
* `#define SPLIT_TRANSACTION_IDS_USER .....`
|
||||||
* Allows for custom data sync with the slave when using the QMK-provided split transport. See [custom data sync between sides](feature_split_keyboard#custom-data-sync) for more information.
|
* Allows for custom data sync with the slave when using the QMK-provided split transport. See [custom data sync between sides](features/split_keyboard#custom-data-sync) for more information.
|
||||||
|
|
||||||
# The `rules.mk` File
|
# The `rules.mk` File
|
||||||
|
|
||||||
|
@ -206,7 +206,7 @@ Similar to `matrix_scan_*`, these are called as often as the MCU can handle. To
|
|||||||
|
|
||||||
### Example `void housekeeping_task_user(void)` implementation
|
### Example `void housekeeping_task_user(void)` implementation
|
||||||
|
|
||||||
This example will show you how to use `void housekeeping_task_user(void)` to turn off [RGB Light](feature_rgblight). For RGB Matrix, the [builtin](feature_rgb_matrix#additional-configh-options) `RGB_MATRIX_TIMEOUT` should be used.
|
This example will show you how to use `void housekeeping_task_user(void)` to turn off [RGB Light](features/rgblight). For RGB Matrix, the [builtin](features/rgb_matrix#additional-configh-options) `RGB_MATRIX_TIMEOUT` should be used.
|
||||||
|
|
||||||
First, add the following lines to your keymap's `config.h`:
|
First, add the following lines to your keymap's `config.h`:
|
||||||
|
|
||||||
|
@ -69,4 +69,4 @@ This page describes my cool feature. You can use my cool feature to make coffee
|
|||||||
|KC_SUGAR||Order Sugar|
|
|KC_SUGAR||Order Sugar|
|
||||||
```
|
```
|
||||||
|
|
||||||
Place your documentation into `docs/feature_<my_cool_feature>.md`, and add that file to the appropriate place in `docs/_sidebar.json`. If you have added any keycodes be sure to add them to `docs/keycodes.md` with a link back to your feature page.
|
Place your documentation into `docs/features/<my_cool_feature>.md`, and add that file to the appropriate place in `docs/_sidebar.json`. If you have added any keycodes be sure to add them to `docs/keycodes.md` with a link back to your feature page.
|
||||||
|
@ -8,8 +8,8 @@ We recommend the use of the [Zadig](https://zadig.akeo.ie/) utility. If you have
|
|||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
Put your keyboard into bootloader mode, either by hitting the `QK_BOOT` keycode (which may be on a different layer), or by pressing the reset switch that's usually located on the underside of the board. If your keyboard has neither, try holding Escape or Space+`B` as you plug it in (see the [Bootmagic Lite](feature_bootmagic) docs for more details). Some boards use [Command](feature_command) instead of Bootmagic; in this case, you can enter bootloader mode by hitting Left Shift+Right Shift+`B` or Left Shift+Right Shift+Escape at any point while the keyboard is plugged in.
|
Put your keyboard into bootloader mode, either by hitting the `QK_BOOT` keycode (which may be on a different layer), or by pressing the reset switch that's usually located on the underside of the board. If your keyboard has neither, try holding Escape or Space+`B` as you plug it in (see the [Bootmagic Lite](features/bootmagic) docs for more details). Some boards use [Command](features/command) instead of Bootmagic; in this case, you can enter bootloader mode by hitting Left Shift+Right Shift+`B` or Left Shift+Right Shift+Escape at any point while the keyboard is plugged in.
|
||||||
Some keyboards may have specific instructions for entering the bootloader. For example, the [Bootmagic Lite](feature_bootmagic) key (default: Escape) might be on a different key, e.g. Left Control; or the magic combination for Command (default: Left Shift+Right Shift) might require you to hold something else, e.g. Left Control+Right Control. Refer to the board's README file if you are unsure.
|
Some keyboards may have specific instructions for entering the bootloader. For example, the [Bootmagic Lite](features/bootmagic) key (default: Escape) might be on a different key, e.g. Left Control; or the magic combination for Command (default: Left Shift+Right Shift) might require you to hold something else, e.g. Left Control+Right Control. Refer to the board's README file if you are unsure.
|
||||||
|
|
||||||
To put a device in bootloader mode with USBaspLoader, tap the `RESET` button while holding down the `BOOT` button.
|
To put a device in bootloader mode with USBaspLoader, tap the `RESET` button while holding down the `BOOT` button.
|
||||||
Alternatively, hold `BOOT` while inserting the USB cable.
|
Alternatively, hold `BOOT` while inserting the USB cable.
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
# ADC Driver
|
# ADC Driver
|
||||||
|
|
||||||
QMK can leverage the Analog-to-Digital Converter (ADC) on supported MCUs to measure voltages on certain pins. This can be useful for implementing things such as battery level indicators for Bluetooth keyboards, or volume controls using a potentiometer, as opposed to a [rotary encoder](feature_encoders).
|
QMK can leverage the Analog-to-Digital Converter (ADC) on supported MCUs to measure voltages on certain pins. This can be useful for implementing things such as battery level indicators for Bluetooth keyboards, or volume controls using a potentiometer, as opposed to a [rotary encoder](../features/encoders).
|
||||||
|
|
||||||
This driver currently supports both AVR and a limited selection of ARM devices. The values returned are 10-bit integers (0-1023) mapped between 0V and VCC (usually 5V or 3.3V for AVR, 3.3V only for ARM), however on ARM there is more flexibility in control of operation through `#define`s if you need more precision.
|
This driver currently supports both AVR and a limited selection of ARM devices. The values returned are 10-bit integers (0-1023) mapped between 0V and VCC (usually 5V or 3.3V for AVR, 3.3V only for ARM), however on ARM there is more flexibility in control of operation through `#define`s if you need more precision.
|
||||||
|
|
@ -1,10 +1,10 @@
|
|||||||
# APA102 Driver {#apa102-driver}
|
# APA102 Driver {#apa102-driver}
|
||||||
|
|
||||||
This driver provides support for APA102 addressable RGB LEDs. They are similar to the [WS2812](ws2812_driver) LEDs, but have increased data and refresh rates.
|
This driver provides support for APA102 addressable RGB LEDs. They are similar to the [WS2812](ws2812) LEDs, but have increased data and refresh rates.
|
||||||
|
|
||||||
## Usage {#usage}
|
## Usage {#usage}
|
||||||
|
|
||||||
In most cases, the APA102 driver code is automatically included if you are using either the [RGBLight](feature_rgblight) or [RGB Matrix](feature_rgb_matrix) feature with the `apa102` driver set, and you would use those APIs instead.
|
In most cases, the APA102 driver code is automatically included if you are using either the [RGBLight](../features/rgblight) or [RGB Matrix](../features/rgb_matrix) feature with the `apa102` driver set, and you would use those APIs instead.
|
||||||
|
|
||||||
However, if you need to use the driver standalone, add the following to your `rules.mk`:
|
However, if you need to use the driver standalone, add the following to your `rules.mk`:
|
||||||
|
|
@ -1,6 +1,6 @@
|
|||||||
# Audio Driver {#audio-driver}
|
# Audio Driver {#audio-driver}
|
||||||
|
|
||||||
The [Audio feature](feature_audio) breaks the hardware specifics out into separate, exchangeable driver units, with a common interface to the audio-"core" - which itself handles playing songs and notes while tracking their progress in an internal state, initializing/starting/stopping the driver as needed.
|
The [Audio feature](../features/audio) breaks the hardware specifics out into separate, exchangeable driver units, with a common interface to the audio-"core" - which itself handles playing songs and notes while tracking their progress in an internal state, initializing/starting/stopping the driver as needed.
|
||||||
|
|
||||||
Not all MCUs support every available driver, either the platform-support is not there (yet?) or the MCU simply does not have the required hardware peripheral.
|
Not all MCUs support every available driver, either the platform-support is not there (yet?) or the MCU simply does not have the required hardware peripheral.
|
||||||
|
|
@ -133,7 +133,7 @@ If your MCU does not boot after swapping to the EFL wear-leveling driver, it's l
|
|||||||
|
|
||||||
## Wear-leveling SPI Flash Driver Configuration {#wear_leveling-flash_spi-driver-configuration}
|
## Wear-leveling SPI Flash Driver Configuration {#wear_leveling-flash_spi-driver-configuration}
|
||||||
|
|
||||||
This driver performs writes to an external SPI NOR Flash peripheral. It also requires a working configuration for the SPI NOR Flash peripheral -- see the [flash driver](flash_driver) documentation for more information.
|
This driver performs writes to an external SPI NOR Flash peripheral. It also requires a working configuration for the SPI NOR Flash peripheral -- see the [flash driver](flash) documentation for more information.
|
||||||
|
|
||||||
Configurable options in your keyboard's `config.h`:
|
Configurable options in your keyboard's `config.h`:
|
||||||
|
|
@ -4,7 +4,7 @@ The I2C Master drivers used in QMK have a set of common functions to allow porta
|
|||||||
|
|
||||||
## Usage {#usage}
|
## Usage {#usage}
|
||||||
|
|
||||||
In most cases, the I2C Master driver code is automatically included if you are using a feature or driver which requires it, such as [OLED](feature_oled_driver).
|
In most cases, the I2C Master driver code is automatically included if you are using a feature or driver which requires it, such as [OLED](../features/oled_driver).
|
||||||
|
|
||||||
However, if you need to use the driver standalone, add the following to your `rules.mk`:
|
However, if you need to use the driver standalone, add the following to your `rules.mk`:
|
||||||
|
|
@ -1,6 +1,6 @@
|
|||||||
# 'serial' Driver
|
# 'serial' Driver
|
||||||
|
|
||||||
The Serial driver powers the [Split Keyboard](feature_split_keyboard) feature. Several implementations are available that cater to the platform and capabilites of MCU in use. Note that none of the drivers support split keyboards with more than two halves.
|
The Serial driver powers the [Split Keyboard](../features/split_keyboard) feature. Several implementations are available that cater to the platform and capabilites of MCU in use. Note that none of the drivers support split keyboards with more than two halves.
|
||||||
|
|
||||||
| Driver | AVR | ARM | Connection between halves |
|
| Driver | AVR | ARM | Connection between halves |
|
||||||
| --------------------------------------- | ------------------ | ------------------ | --------------------------------------------------------------------------------------------- |
|
| --------------------------------------- | ------------------ | ------------------ | --------------------------------------------------------------------------------------------- |
|
||||||
@ -298,7 +298,7 @@ If you're having issues withe serial communication, you can enable debug message
|
|||||||
```
|
```
|
||||||
|
|
||||||
::: tip
|
::: tip
|
||||||
The messages will be printed out to the `CONSOLE` output. For additional information, refer to [Debugging/Troubleshooting QMK](faq_debug).
|
The messages will be printed out to the `CONSOLE` output. For additional information, refer to [Debugging/Troubleshooting QMK](../faq_debug).
|
||||||
:::
|
:::
|
||||||
|
|
||||||
## Alternate Functions for selected STM32 MCUs
|
## Alternate Functions for selected STM32 MCUs
|
@ -4,7 +4,7 @@ The SPI Master drivers used in QMK have a set of common functions to allow porta
|
|||||||
|
|
||||||
## Usage {#usage}
|
## Usage {#usage}
|
||||||
|
|
||||||
In most cases, the SPI Master driver code is automatically included if you are using a feature or driver which requires it, such as [OLED](feature_oled_driver).
|
In most cases, the SPI Master driver code is automatically included if you are using a feature or driver which requires it, such as [OLED](../features/oled_driver).
|
||||||
|
|
||||||
However, if you need to use the driver standalone, add the following to your `rules.mk`:
|
However, if you need to use the driver standalone, add the following to your `rules.mk`:
|
||||||
|
|
@ -10,7 +10,7 @@ The LEDs can be chained together, and the remaining data is passed on to the nex
|
|||||||
|
|
||||||
## Usage {#usage}
|
## Usage {#usage}
|
||||||
|
|
||||||
In most cases, the WS2812 driver code is automatically included if you are using either the [RGBLight](feature_rgblight) or [RGB Matrix](feature_rgb_matrix) feature with the `ws2812` driver set, and you would use those APIs instead.
|
In most cases, the WS2812 driver code is automatically included if you are using either the [RGBLight](../features/rgblight) or [RGB Matrix](../features/rgb_matrix) feature with the `ws2812` driver set, and you would use those APIs instead.
|
||||||
|
|
||||||
However, if you need to use the driver standalone, add the following to your `rules.mk`:
|
However, if you need to use the driver standalone, add the following to your `rules.mk`:
|
||||||
|
|
@ -5,7 +5,7 @@ Have you ever needed an easy way to program a controller, such as a Proton C or
|
|||||||
There are different styles of Easy Maker available depending on your needs:
|
There are different styles of Easy Maker available depending on your needs:
|
||||||
|
|
||||||
* [Direct Pin](https://config.qmk.fm/#/?filter=ez_maker/direct) - Connect a single switch to a single pin
|
* [Direct Pin](https://config.qmk.fm/#/?filter=ez_maker/direct) - Connect a single switch to a single pin
|
||||||
* Direct Pin + Backlight (Coming Soon) - Like Direct Pin but dedicates a single pin to [Backlight](feature_backlight) control
|
* Direct Pin + Backlight (Coming Soon) - Like Direct Pin but dedicates a single pin to [Backlight](features/backlight) control
|
||||||
* Direct Pin + Numlock (Coming Soon) - Like Direct Pin but dedicates a single pin to the Numlock LED
|
* Direct Pin + Numlock (Coming Soon) - Like Direct Pin but dedicates a single pin to the Numlock LED
|
||||||
* Direct Pin + Capslock (Coming Soon) - Like Direct Pin but dedicates a single pin to the Capslock LED
|
* Direct Pin + Capslock (Coming Soon) - Like Direct Pin but dedicates a single pin to the Capslock LED
|
||||||
* Direct Pin + Encoder (Coming Soon) - Like Direct Pin but uses 2 pins to add a single rotary encoder
|
* Direct Pin + Encoder (Coming Soon) - Like Direct Pin but uses 2 pins to add a single rotary encoder
|
||||||
|
@ -66,4 +66,4 @@ Due to how EEPROM works on ARM based chips, saved settings may no longer be vali
|
|||||||
[Planck rev6 reset EEPROM](https://cdn.discordapp.com/attachments/473506116718952450/539284620861243409/planck_rev6_default.bin) can be used to force an eeprom reset. After flashing this image, flash your normal firmware again which should restore your keyboard to _normal_ working order.
|
[Planck rev6 reset EEPROM](https://cdn.discordapp.com/attachments/473506116718952450/539284620861243409/planck_rev6_default.bin) can be used to force an eeprom reset. After flashing this image, flash your normal firmware again which should restore your keyboard to _normal_ working order.
|
||||||
[Preonic rev3 reset EEPROM](https://cdn.discordapp.com/attachments/473506116718952450/537849497313738762/preonic_rev3_default.bin)
|
[Preonic rev3 reset EEPROM](https://cdn.discordapp.com/attachments/473506116718952450/537849497313738762/preonic_rev3_default.bin)
|
||||||
|
|
||||||
If bootmagic is enabled in any form, you should be able to do this too (see [Bootmagic docs](feature_bootmagic) and keyboard info for specifics on how to do this).
|
If bootmagic is enabled in any form, you should be able to do this too (see [Bootmagic docs](features/bootmagic) and keyboard info for specifics on how to do this).
|
||||||
|
@ -4,7 +4,7 @@ This page details various common questions people have about troubleshooting the
|
|||||||
|
|
||||||
## Debugging {#debugging}
|
## Debugging {#debugging}
|
||||||
|
|
||||||
Your keyboard will output debug information if you have `CONSOLE_ENABLE = yes` in your `rules.mk`. By default the output is very limited, but you can turn on debug mode to increase the amount of debug output. Use the `DB_TOGG` keycode in your keymap, use the [Command](feature_command) feature to enable debug mode, or add the following code to your keymap.
|
Your keyboard will output debug information if you have `CONSOLE_ENABLE = yes` in your `rules.mk`. By default the output is very limited, but you can turn on debug mode to increase the amount of debug output. Use the `DB_TOGG` keycode in your keymap, use the [Command](features/command) feature to enable debug mode, or add the following code to your keymap.
|
||||||
|
|
||||||
```c
|
```c
|
||||||
void keyboard_post_init_user(void) {
|
void keyboard_post_init_user(void) {
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user