summaryrefslogtreecommitdiffstats
path: root/docs
diff options
context:
space:
mode:
Diffstat (limited to 'docs')
-rw-r--r--docs/ChangeLog/20211127.md10
-rw-r--r--docs/ChangeLog/20221126.md24
-rw-r--r--docs/_summary.md4
-rw-r--r--docs/api_docs.md4
-rw-r--r--docs/audio_driver.md10
-rw-r--r--docs/breaking_changes.md19
-rw-r--r--docs/breaking_changes_history.md1
-rw-r--r--docs/config_options.md13
-rw-r--r--docs/configurator_default_keymaps.md36
-rw-r--r--docs/data_driven_config.md2
-rw-r--r--docs/faq_debug.md2
-rw-r--r--docs/feature_audio.md71
-rw-r--r--docs/feature_auto_shift.md30
-rw-r--r--docs/feature_autocorrect.md295
-rw-r--r--docs/feature_backlight.md18
-rw-r--r--docs/feature_bluetooth.md10
-rw-r--r--docs/feature_caps_word.md4
-rw-r--r--docs/feature_combo.md12
-rw-r--r--docs/feature_converters.md50
-rw-r--r--docs/feature_digitizer.md118
-rw-r--r--docs/feature_dynamic_macros.md24
-rw-r--r--docs/feature_eeprom.md16
-rw-r--r--docs/feature_encoders.md14
-rw-r--r--docs/feature_haptic_feedback.md36
-rw-r--r--docs/feature_joystick.md121
-rw-r--r--docs/feature_key_lock.md6
-rw-r--r--docs/feature_key_overrides.md14
-rw-r--r--docs/feature_leader_key.md12
-rw-r--r--docs/feature_led_indicators.md7
-rw-r--r--docs/feature_led_matrix.md50
-rw-r--r--docs/feature_macros.md6
-rw-r--r--docs/feature_midi.md306
-rw-r--r--docs/feature_mouse_keys.md34
-rw-r--r--docs/feature_pointing_device.md273
-rw-r--r--docs/feature_programmable_button.md200
-rw-r--r--docs/feature_ps2_mouse.md18
-rw-r--r--docs/feature_rgb_matrix.md89
-rw-r--r--docs/feature_rgblight.md6
-rw-r--r--docs/feature_secure.md12
-rw-r--r--docs/feature_space_cadet.md30
-rw-r--r--docs/feature_split_keyboard.md15
-rw-r--r--docs/feature_thermal_printer.md10
-rw-r--r--docs/feature_unicode.md55
-rw-r--r--docs/feature_velocikey.md2
-rw-r--r--docs/ja/feature_ps2_mouse.md16
-rw-r--r--docs/keycodes.md584
-rw-r--r--docs/keycodes_basic.md2
-rw-r--r--docs/keymap.md4
-rw-r--r--docs/platformdev_rp2040.md5
-rw-r--r--docs/quantum_painter.md576
-rw-r--r--docs/ref_functions.md2
-rw-r--r--docs/squeezing_avr.md1
-rw-r--r--docs/tap_hold.md10
-rw-r--r--docs/understanding_qmk.md1
-rw-r--r--docs/ws2812_driver.md2
-rw-r--r--docs/zh-cn/configurator_default_keymaps.md36
56 files changed, 2185 insertions, 1143 deletions
diff --git a/docs/ChangeLog/20211127.md b/docs/ChangeLog/20211127.md
index d954bb9f61..0780ab6a44 100644
--- a/docs/ChangeLog/20211127.md
+++ b/docs/ChangeLog/20211127.md
@@ -56,19 +56,19 @@ You can now define up to 32 macros in your `keymap.json` file, as used by [QMK C
"keyboard": "handwired/my_macropad",
"keymap": "my_keymap",
"macros": [
- [ // first listed is MACRO_0...
+ [ // first listed is QK_MACRO_0...
{"action":"down", "keycodes": ["LSFT"]},
"hello world1",
{"action": "up","keycodes": ["LSFT"]}
],
- [ // ...then MACRO_1...
+ [ // ...then QK_MACRO_1...
{"action":"tap", "keycodes": ["LCTL", "LALT", "DEL"]}
],
- [ // ...then MACRO_2...
+ [ // ...then QK_MACRO_2...
"ding!",
{"action":"beep"}
],
- [ // ...and MACRO_3.
+ [ // ...and QK_MACRO_3.
{"action":"tap", "keycodes": ["F1"]},
{"action":"delay", "duration": "1000"},
{"action":"tap", "keycodes": ["PGDN"]}
@@ -76,7 +76,7 @@ You can now define up to 32 macros in your `keymap.json` file, as used by [QMK C
],
"layout": "LAYOUT_all",
"layers": [
- ["MACRO_0", "MACRO_1", "MACRO_2", "MACRO_3"]
+ ["QK_MACRO_0", "QK_MACRO_1", "QK_MACRO_2", "QK_MACRO_3"]
]
}
```
diff --git a/docs/ChangeLog/20221126.md b/docs/ChangeLog/20221126.md
new file mode 100644
index 0000000000..87f1fd2332
--- /dev/null
+++ b/docs/ChangeLog/20221126.md
@@ -0,0 +1,24 @@
+# QMK Breaking Changes - 2022 November 26 Changelog
+
+## Notable Features :id=notable-features
+
+## Changes Requiring User Action :id=changes-requiring-user-action
+
+### Updated Keyboard Codebases :id=updated-keyboard-codebases
+
+The following keyboards have had their source moved within QMK:
+
+| Old Keyboard Name | New Keyboard Name |
+|--------------------------------------|--------------------------------------|
+| converter/numeric_keypad_IIe | converter/numeric_keypad_iie |
+| durgod/k3x0/k310 | durgod/k310 |
+| durgod/k3x0/k320 | durgod/k320 |
+| emptystring/NQG | emptystring/nqg |
+| handwired/hillside/46 | hillside/46 |
+| handwired/hillside/48 | hillside/48 |
+| handwired/hillside/52 | hillside/52 |
+| maple_computing/christmas_tree/V2017 | maple_computing/christmas_tree/v2017 |
+
+## Notable core changes :id=notable-core
+
+## Full changelist :id=full-changelist
diff --git a/docs/_summary.md b/docs/_summary.md
index 7dc4ddb0e4..738c24ee42 100644
--- a/docs/_summary.md
+++ b/docs/_summary.md
@@ -76,6 +76,7 @@
* Software Features
* [Auto Shift](feature_auto_shift.md)
+ * [Autocorrect](feature_autocorrect.md)
* [Caps Word](feature_caps_word.md)
* [Combos](feature_combo.md)
* [Debounce API](feature_debounce_type.md)
@@ -122,7 +123,6 @@
* [PS/2 Mouse](feature_ps2_mouse.md)
* [Split Keyboard](feature_split_keyboard.md)
* [Stenography](feature_stenography.md)
- * [Thermal Printer](feature_thermal_printer.md)
* [Velocikey](feature_velocikey.md)
* Keyboard Building
@@ -136,7 +136,7 @@
* Breaking Changes
* [Overview](breaking_changes.md)
* [My Pull Request Was Flagged](breaking_changes_instructions.md)
- * [Most Recent ChangeLog](ChangeLog/20220827.md "QMK v0.18.0 - 2022 Aug 27")
+ * [Most Recent ChangeLog](ChangeLog/20221126.md "QMK v0.19.0 - 2022 Nov 26")
* [Past Breaking Changes](breaking_changes_history.md)
* C Development
diff --git a/docs/api_docs.md b/docs/api_docs.md
index 237b02fed2..2594821ab0 100644
--- a/docs/api_docs.md
+++ b/docs/api_docs.md
@@ -14,8 +14,8 @@ This service is an asynchronous API for compiling custom keymaps. You POST some
"keymap": "my_awesome_keymap",
"layout": "LAYOUT_all",
"layers": [
- ["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_GRV","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_BSLS","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_NUHS","KC_ENT","KC_LSFT","KC_NUBS","KC_Z","KC_X","KC_C","KC_V","KC_B","KC_N","KC_M","KC_COMM","KC_DOT","KC_SLSH","KC_RO","KC_RSFT","KC_UP","KC_LCTL","KC_LGUI","KC_LALT","KC_MHEN","KC_SPC","KC_SPC","KC_HENK","KC_RALT","KC_RCTL","MO(1)","KC_LEFT","KC_DOWN","KC_RIGHT"],
- ["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_TRNS","KC_DEL","BL_STEP","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","_______","KC_TRNS","KC_PSCR","KC_SLCK","KC_PAUS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","MO(2)","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_PGUP","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","MO(1)","KC_LEFT","KC_PGDN","KC_RGHT"],
+ ["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_GRV","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_BSLS","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_NUHS","KC_ENT","KC_LSFT","KC_NUBS","KC_Z","KC_X","KC_C","KC_V","KC_B","KC_N","KC_M","KC_COMM","KC_DOT","KC_SLSH","KC_INT1","KC_RSFT","KC_UP","KC_LCTL","KC_LGUI","KC_LALT","KC_INT5","KC_SPC","KC_SPC","KC_INT4","KC_RALT","KC_RCTL","MO(1)","KC_LEFT","KC_DOWN","KC_RIGHT"],
+ ["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_TRNS","KC_DEL","BL_STEP","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","_______","KC_TRNS","KC_PSCR","KC_SCRL","KC_PAUS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","MO(2)","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_PGUP","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","MO(1)","KC_LEFT","KC_PGDN","KC_RGHT"],
["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","QK_BOOT","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","MO(2)","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","MO(1)","KC_TRNS","KC_TRNS","KC_TRNS"]
]
}
diff --git a/docs/audio_driver.md b/docs/audio_driver.md
index ffd9c8d5ad..a0bbb22e19 100644
--- a/docs/audio_driver.md
+++ b/docs/audio_driver.md
@@ -159,7 +159,6 @@ A configuration example for the STM32F103C8 would be:
//halconf.h:
#define HAL_USE_PWM TRUE
#define HAL_USE_PAL TRUE
-#define HAL_USE_GPT TRUE
#include_next <halconf.h>
```
@@ -168,8 +167,6 @@ A configuration example for the STM32F103C8 would be:
#include_next <mcuconf.h>
#undef STM32_PWM_USE_TIM1
#define STM32_PWM_USE_TIM1 TRUE
-#undef STM32_GPT_USE_TIM4
-#define STM32_GPT_USE_TIM4 TRUE
```
If we now target pin A8, looking through the data-sheet of the STM32F103C8, for the timers and alternate functions
@@ -184,7 +181,6 @@ with all this information, the configuration would contain these lines:
#define AUDIO_PIN A8
#define AUDIO_PWM_DRIVER PWMD1
#define AUDIO_PWM_CHANNEL 1
-#define AUDIO_STATE_TIMER GPTD4
```
ChibiOS uses GPIOv1 for the F103, which only knows of one alternate function.
@@ -207,15 +203,15 @@ You can also change the timer used for software PWM by defining the driver. For
While not an exhaustive list, the following table provides the scenarios that have been partially validated:
-| | DAC basic | DAC additive | PWM hardware | PWM software |
-|--------------------------|--------------------|--------------------|--------------------|--------------------|
+| | DAC basic | DAC additive | PWM hardware | PWM software |
+| ------------------------ | ------------------ | ------------------ | ------------------ | ------------------ |
| Atmega32U4 | :o: | :o: | :heavy_check_mark: | :o: |
+| RP2040 | :x: | :x: | :heavy_check_mark: | ? |
| STM32F103C8 (bluepill) | :x: | :x: | :heavy_check_mark: | :heavy_check_mark: |
| STM32F303CCT6 (proton-c) | :heavy_check_mark: | :heavy_check_mark: | ? | :heavy_check_mark: |
| STM32F405VG | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| L0xx | :x: (no Tim8) | ? | ? | ? |
-
:heavy_check_mark: : works and was tested
:o: : does not apply
:x: : not supported by MCU
diff --git a/docs/breaking_changes.md b/docs/breaking_changes.md
index b701a70eeb..8bceb39409 100644
--- a/docs/breaking_changes.md
+++ b/docs/breaking_changes.md
@@ -8,6 +8,7 @@ The breaking change period is when we will merge PR's that change QMK in dangero
## What has been included in past Breaking Changes?
+* [2022 Nov 26](ChangeLog/20221126.md)
* [2022 Aug 27](ChangeLog/20220827.md)
* [2022 May 28](ChangeLog/20220528.md)
* [2022 Feb 26](ChangeLog/20220226.md)
@@ -23,18 +24,18 @@ The breaking change period is when we will merge PR's that change QMK in dangero
## When is the next Breaking Change?
-The next Breaking Change is scheduled for November 26, 2022.
+The next Breaking Change is scheduled for February 26, 2023.
### Important Dates
-* 2022 Aug 27 - `develop` is tagged with a new release version. Each push to `master` is subsequently merged to `develop` by GitHub actions.
-* 2022 Oct 29 - `develop` closed to new PR's.
-* 2022 Oct 29 - Call for testers.
-* 2022 Nov 12 - Last day for merges -- after this point `develop` is locked for testing and accepts only bugfixes
-* 2022 Nov 19 - `develop` is locked, only critical bugfix PR's merged.
-* 2022 Nov 24 - `master` is locked, no PR's merged.
-* 2022 Nov 26 - Merge `develop` to `master`.
-* 2022 Nov 26 - `master` is unlocked. PR's can be merged again.
+* 2022 Nov 27 - `develop` is tagged with a new release version. Each push to `master` is subsequently merged to `develop` by GitHub actions.
+* 2022 Jan 29 - `develop` closed to new PR's.
+* 2022 Jan 29 - Call for testers.
+* 2022 Feb 12 - Last day for merges -- after this point `develop` is locked for testing and accepts only bugfixes
+* 2022 Feb 19 - `develop` is locked, only critical bugfix PR's merged.
+* 2022 Feb 24 - `master` is locked, no PR's merged.
+* 2022 Feb 26 - Merge `develop` to `master`.
+* 2023 Feb 26 - `master` is unlocked. PR's can be merged again.
## What changes will be included?
diff --git a/docs/breaking_changes_history.md b/docs/breaking_changes_history.md
index 38af505701..df94b81e04 100644
--- a/docs/breaking_changes_history.md
+++ b/docs/breaking_changes_history.md
@@ -2,6 +2,7 @@
This page links to all previous changelogs from the QMK Breaking Changes process.
+* [2022 Nov 26](ChangeLog/20221126.md) - version 0.19.0
* [2022 Aug 27](ChangeLog/20220827.md) - version 0.18.0
* [2022 May 28](ChangeLog/20220528.md) - version 0.17.0
* [2022 Feb 26](ChangeLog/20220226.md) - version 0.16.0
diff --git a/docs/config_options.md b/docs/config_options.md
index 676db3b62d..6b1f83214c 100644
--- a/docs/config_options.md
+++ b/docs/config_options.md
@@ -49,11 +49,11 @@ This is a C header file that is one of the first things included, and will persi
* defines your VID, and for most DIY projects, can be whatever you want
* `#define PRODUCT_ID 0x5678`
* defines your PID, and for most DIY projects, can be whatever you want
-* `#define DEVICE_VER 0`
+* `#define DEVICE_VER 0x0100`
* defines the device version (often used for revisions)
-* `#define MANUFACTURER Me`
+* `#define MANUFACTURER "Me"`
* generally who/whatever brand produced the board
-* `#define PRODUCT Board`
+* `#define PRODUCT "Board"`
* the name of the keyboard
* `#define MATRIX_ROWS 5`
* the number of rows in your keyboard's matrix
@@ -325,6 +325,13 @@ There are a few different ways to set handedness for split keyboards (listed in
* `#define SPLIT_USB_TIMEOUT_POLL 10`
* Poll frequency when detecting master/slave when using `SPLIT_USB_DETECT`
+
+* `#define SPLIT_WATCHDOG_ENABLE`
+ * Reboot slave if no communication from master within timeout.
+ * Helps resolve issue where both sides detect as slave using `SPLIT_USB_DETECT`
+
+* `#define SPLIT_WATCHDOG_TIMEOUT 3000`
+ * Maximum slave timeout when waiting for communication from master when using `SPLIT_WATCHDOG_ENABLE`
* `#define FORCED_SYNC_THROTTLE_MS 100`
* Deadline for synchronizing data from master to slave when using the QMK-provided split transport.
diff --git a/docs/configurator_default_keymaps.md b/docs/configurator_default_keymaps.md
index 3fea15166a..d08ec29539 100644
--- a/docs/configurator_default_keymaps.md
+++ b/docs/configurator_default_keymaps.md
@@ -122,26 +122,26 @@ There is a way to support custom keycodes: if the logic for a custom keycode is
```c
enum custom_keycodes {
- MACRO_1 = SAFE_RANGE,
- MACRO_2,
- MACRO_3
+ CUSTOM_1 = SAFE_RANGE,
+ CUSTOM_2,
+ CUSTOM_3
};
...
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch(keycode) {
- case MACRO_1:
+ case CUSTOM_1:
if (record->event.pressed) {
- SEND_STRING("This is macro #1.");
+ SEND_STRING("This is custom keycode #1.");
}
return false;
- case MACRO_2:
+ case CUSTOM_2:
if (record->event.pressed) {
- SEND_STRING("This is macro #2.");
+ SEND_STRING("This is custom keycode #2.");
}
return false;
- case MACRO_3:
+ case CUSTOM_3:
if (record->event.pressed) {
- SEND_STRING("This is macro #3.");
+ SEND_STRING("This is custom keycode #3.");
}
return false;
}
@@ -153,9 +153,9 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
```c
enum keyboard_keycodes {
- MACRO_1 = SAFE_RANGE,
- MACRO_2,
- MACRO_3,
+ CUSTOM_1 = SAFE_RANGE,
+ CUSTOM_2,
+ CUSTOM_3,
NEW_SAFE_RANGE // Important!
};
```
@@ -165,19 +165,19 @@ enum keyboard_keycodes {
```c
bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
switch(keycode) {
- case MACRO_1:
+ case CUSTOM_1:
if (record->event.pressed) {
- SEND_STRING("This is macro #1.");
+ SEND_STRING("This is custom keycode #1.");
}
return false;
- case MACRO_2:
+ case CUSTOM_2:
if (record->event.pressed) {
- SEND_STRING("This is macro #2.");
+ SEND_STRING("This is custom keycode #2.");
}
return false;
- case MACRO_3:
+ case CUSTOM_3:
if (record->event.pressed) {
- SEND_STRING("This is macro #3.");
+ SEND_STRING("This is custom keycode #3.");
}
return false;
}
diff --git a/docs/data_driven_config.md b/docs/data_driven_config.md
index 1a2e4ca54a..ba287f5688 100644
--- a/docs/data_driven_config.md
+++ b/docs/data_driven_config.md
@@ -41,7 +41,7 @@ In other cases you should group like options together in an `object`. This is pa
### Add a mapping
-In most cases you can add a simple mapping. These are maintained as JSON files in `data/mappings/info_config.json` and `data/mappings/info_rules.json`, and control mapping for `config.h` and `rules.mk`, respectively. Each mapping is keyed by the `config.h` or `rules.mk` variable, and the value is a hash with the following keys:
+In most cases you can add a simple mapping. These are maintained as JSON files in `data/mappings/info_config.hjson` and `data/mappings/info_rules.hjson`, and control mapping for `config.h` and `rules.mk`, respectively. Each mapping is keyed by the `config.h` or `rules.mk` variable, and the value is a hash with the following keys:
* `info_key`: (required) The location within `info.json` for this value. See below.
* `value_type`: (optional) Default `raw`. The format for this variable's value. See below.
diff --git a/docs/faq_debug.md b/docs/faq_debug.md
index b639b7ea04..cad98bc331 100644
--- a/docs/faq_debug.md
+++ b/docs/faq_debug.md
@@ -4,7 +4,7 @@ This page details various common questions people have about troubleshooting the
## Debugging :id=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 `DEBUG` keycode in your keymap, use the [Command](feature_command.md) 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](feature_command.md) feature to enable debug mode, or add the following code to your keymap.
```c
void keyboard_post_init_user(void) {
diff --git a/docs/feature_audio.md b/docs/feature_audio.md
index 8c02f7c153..5227d063c3 100644
--- a/docs/feature_audio.md
+++ b/docs/feature_audio.md
@@ -161,9 +161,11 @@ It's advised that you wrap all audio features in `#ifdef AUDIO_ENABLE` / `#endif
The available keycodes for audio are:
-* `AU_ON` - Turn Audio Feature on
-* `AU_OFF` - Turn Audio Feature off
-* `AU_TOG` - Toggle Audio Feature state
+|Key |Aliases |Description |
+|-------------------------|---------|-------------------------------------------|
+|`QK_AUDIO_ON` |`AU_ON` |Turns on Audio Feature |
+|`QK_AUDIO_OFF` |`AU_OFF` |Turns off Audio Feature |
+|`QK_AUDIO_TOGGLE` |`AU_TOGG`|Toggles Audio state |
!> These keycodes turn all of the audio functionality on and off. Turning it off means that audio feedback, audio clicky, music mode, etc. are disabled, completely.
@@ -219,6 +221,12 @@ Aka "audio effects", different ones can be enabled by setting in `config.h` thes
`#define AUDIO_VOICES` to enable the feature, and `#define AUDIO_VOICE_DEFAULT something` to select a specific effect
for details see quantum/audio/voices.h and .c
+Keycodes available:
+
+|Key |Aliases |Description |
+|-------------------------|---------|-------------------------------------------|
+|`QK_AUDIO_VOICE_NEXT` |`AU_NEXT`|Cycles through the audio voices |
+|`QK_AUDIO_VOICE_PREVIOUS`|`AU_PREV`|Cycles through the audio voices in reverse |
## Music Mode
@@ -228,10 +236,14 @@ Recording is experimental due to some memory issues - if you experience some wei
Keycodes available:
-* `MU_ON` - Turn music mode on
-* `MU_OFF` - Turn music mode off
-* `MU_TOG` - Toggle music mode
-* `MU_MOD` - Cycle through the music modes:
+|Key |Aliases |Description |
+|-------------------------|---------|-------------------------------------------|
+|`QK_MUSIC_ON` |`MU_ON` |Turns on Music Mode |
+|`QK_MUSIC_OFF` |`MU_OFF` |Turns off Music Mode |
+|`QK_MUSIC_TOGGLE` |`MU_TOGG`|Toggles Music Mode |
+|`QK_MUSIC_MODE_NEXT` |`MU_NEXT`|Cycles through the music modes |
+
+Available Modes:
* `CHROMATIC_MODE` - Chromatic scale, row changes the octave
* `GUITAR_MODE` - Chromatic scale, but the row changes the string (+5 st)
* `VIOLIN_MODE` - Chromatic scale, but the row changes the string (+7 st)
@@ -300,13 +312,16 @@ You can look at the [Planck Keyboard](https://github.com/qmk/qmk_firmware/blob/e
This adds a click sound each time you hit a button, to simulate click sounds from the keyboard. And the sounds are slightly different for each keypress, so it doesn't sound like a single long note, if you type rapidly.
-* `CK_TOGG` - Toggles the status (will play sound if enabled)
-* `CK_ON` - Turns on Audio Click (plays sound)
-* `CK_OFF` - Turns off Audio Click (doesn't play sound)
-* `CK_RST` - Resets the frequency to the default state (plays sound at default frequency)
-* `CK_UP` - Increases the frequency of the clicks (plays sound at new frequency)
-* `CK_DOWN` - Decreases the frequency of the clicks (plays sound at new frequency)
+Keycodes available:
+|Key |Aliases |Description |
+|-------------------------|---------|-------------------------------------------|
+|`QK_AUDIO_CLICKY_TOGGLE` |`CK_TOGG`|Toggles Audio clicky mode |
+|`QK_AUDIO_CLICKY_ON` |`CK_ON` |Turns on Audio clicky mode |
+|`QK_AUDIO_CLICKY_OFF` |`CK_OFF` |Turns on Audio clicky mode |
+|`QK_AUDIO_CLICKY_UP` |`CK_UP` |Increases frequency of the clicks |
+|`QK_AUDIO_CLICKY_DOWN` |`CK_DOWN`|Decreases frequency of the clicks |
+|`QK_AUDIO_CLICKY_RESET` |`CK_RST` |Resets frequency to default |
The feature is disabled by default, to save space. To enable it, add this to your `config.h`:
@@ -333,16 +348,20 @@ See [MIDI](feature_midi.md)
## Audio Keycodes
-|Key |Aliases |Description |
-|----------------|---------|----------------------------------|
-|`AU_ON` | |Audio mode on |
-|`AU_OFF` | |Audio mode off |
-|`AU_TOG` | |Toggles Audio mode |
-|`CLICKY_TOGGLE` |`CK_TOGG`|Toggles Audio clicky mode |
-|`CLICKY_UP` |`CK_UP` |Increases frequency of the clicks |
-|`CLICKY_DOWN` |`CK_DOWN`|Decreases frequency of the clicks |
-|`CLICKY_RESET` |`CK_RST` |Resets frequency to default |
-|`MU_ON`