aboutsummaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
Diffstat (limited to 'docs')
-rw-r--r--docs/_summary.md3
-rw-r--r--docs/breaking_changes.md4
-rw-r--r--docs/breaking_changes_instructions.md42
-rw-r--r--docs/cli.md18
-rw-r--r--docs/config_options.md7
-rw-r--r--docs/custom_matrix.md108
-rw-r--r--docs/eeprom_driver.md50
-rw-r--r--docs/feature_advanced_keycodes.md38
-rw-r--r--docs/feature_oled_driver.md227
-rw-r--r--docs/feature_rgb_matrix.md4
-rw-r--r--docs/feature_split_keyboard.md7
-rw-r--r--docs/getting_started_make_guide.md2
-rw-r--r--docs/hardware_drivers.md4
-rw-r--r--docs/ja/_summary.md38
-rw-r--r--docs/ja/arm_debugging.md4
-rw-r--r--docs/ja/config_options.md12
-rw-r--r--docs/ja/newbs_building_firmware_configurator.md4
-rw-r--r--docs/ja/newbs_flashing.md16
-rw-r--r--docs/ja/newbs_getting_started.md2
-rw-r--r--docs/ja/newbs_git_resynchronize_a_branch.md2
-rw-r--r--docs/ja/newbs_git_using_your_master_branch.md4
-rw-r--r--docs/ja/newbs_learn_more_resources.md2
-rw-r--r--docs/ja/newbs_testing_debugging.md6
-rw-r--r--docs/keycodes.md33
-rw-r--r--docs/quantum_keycodes.md13
25 files changed, 473 insertions, 177 deletions
diff --git a/docs/_summary.md b/docs/_summary.md
index f6b03867f..a429138b8 100644
--- a/docs/_summary.md
+++ b/docs/_summary.md
@@ -18,6 +18,7 @@
18 * [Getting Help](getting_started_getting_help.md) 18 * [Getting Help](getting_started_getting_help.md)
19 19
20* [Breaking Changes](breaking_changes.md) 20* [Breaking Changes](breaking_changes.md)
21 * [My Pull Request Was Flagged](breaking_changes_instructions.md)
21 * [2019 Aug 30](ChangeLog/20190830.md) 22 * [2019 Aug 30](ChangeLog/20190830.md)
22 23
23* [FAQ](faq.md) 24* [FAQ](faq.md)
@@ -104,7 +105,9 @@
104 * [ADC Driver](adc_driver.md) 105 * [ADC Driver](adc_driver.md)
105 * [I2C Driver](i2c_driver.md) 106 * [I2C Driver](i2c_driver.md)
106 * [WS2812 Driver](ws2812_driver.md) 107 * [WS2812 Driver](ws2812_driver.md)
108 * [EEPROM Driver](eeprom_driver.md)
107 * [GPIO Controls](internals_gpio_control.md) 109 * [GPIO Controls](internals_gpio_control.md)
110 * [Custom Matrix](custom_matrix.md)
108 * [Proton C Conversion](proton_c_conversion.md) 111 * [Proton C Conversion](proton_c_conversion.md)
109 112
110* For a Deeper Understanding 113* For a Deeper Understanding
diff --git a/docs/breaking_changes.md b/docs/breaking_changes.md
index 56d14438d..d3af3c79b 100644
--- a/docs/breaking_changes.md
+++ b/docs/breaking_changes.md
@@ -15,8 +15,8 @@ The next Breaking Change is scheduled for February 29, 2020.
15### Important Dates 15### Important Dates
16 16
17* [x] 2019 Sep 21 - `future` is created. It will be rebased weekly. 17* [x] 2019 Sep 21 - `future` is created. It will be rebased weekly.
18* [ ] 2020 Feb 1 - `future` closed to new PR's. 18* [x] 2020 Feb 1 - `future` closed to new PR's.
19* [ ] 2020 Feb 1 - Call for testers. 19* [x] 2020 Feb 1 - Call for testers.
20* [ ] 2020 Feb 26 - `master` is locked, no PR's merged. 20* [ ] 2020 Feb 26 - `master` is locked, no PR's merged.
21* [ ] 2020 Feb 28 - Merge `future` to `master`. 21* [ ] 2020 Feb 28 - Merge `future` to `master`.
22* [ ] 2020 Feb 29 - `master` is unlocked. PR's can be merged again. 22* [ ] 2020 Feb 29 - `master` is unlocked. PR's can be merged again.
diff --git a/docs/breaking_changes_instructions.md b/docs/breaking_changes_instructions.md
new file mode 100644
index 000000000..3f2f93834
--- /dev/null
+++ b/docs/breaking_changes_instructions.md
@@ -0,0 +1,42 @@
1# Breaking Changes: My Pull Request Was Flagged
2
3A QMK member may have replied to your pull request stating that your submission is a breaking change. In their judgment, the changes you have proposed have greater implications for either QMK, or its users.
4
5Some things that may cause a pull request to be flagged are:
6
7- **Edits to User Keymaps**
8 A user may submit their keymap to QMK, then some time later open a pull request with further updates, only to find it can't be merged because it was edited in the `qmk/qmk_firmware` repository. As not all users are proficient at using Git or GitHub, the user may find themself unable to fix the issue on their own.
9- **Changes to Expected Behavior**
10 Changes to QMK behavior may cause users to believe their hardware or QMK is broken if they flash new firmware that incorporates changes to existing QMK features, and find themselves without a means to restore the desired behavior.
11- **Changes Requiring User Action**
12 Changes may also require action to be taken by users, such as updating a toolchain or taking some action in Git.
13- **Changes Necessitating Increased Scrutiny**
14 On occasion, a submission may have implications for QMK as a project. This could be copyright/licensing issues, coding conventions, large feature overhauls, "high-risk" changes that need wider testing by our community, or something else entirely.
15- **Changes Requiring Communication to End Users**
16 This includes warnings about future deprecations, outdated practices, and anything else that needs to be communicated but doesn't fit into one of the above categories.
17
18## What Do I Do?
19
20If it is determined that your submission is a breaking change, there are a few things you can do to smooth the process:
21
22### Consider Splitting Up Your PR
23
24If you are contributing core code, and the only reason it needs to go through breaking changes is that you are updating keymaps to match your change, consider whether you can submit your feature in a way that the old keymaps continue to work. Then submit a separate PR that goes through the breaking changes process to remove the old code.
25
26### Contribute a ChangeLog Entry
27
28We require submissions that go through the Breaking Change process to include a changelog entry. The entry should be a short summary of the changes your pull request makes – [each section here started as a changelog](ChangeLog/20190830.md "n.b. This should link to the 2019 Aug 30 Breaking Changes doc - @noroadsleft").
29
30Your changelog should be located at `docs/ChangeLog/YYYYMMDD/PR####.md`, where `YYYYMMDD` is the date on which QMK's breaking change branch – usually named `future` – will be merged into the `master` branch, and `####` is the number of your pull request.
31
32If your submission requires action on the part of users, your changelog should instruct users what action(s) must be taken, or link to a location that does so.
33
34### Document Your Changes
35
36Understanding the purpose for your submission, and possible implications or actions it will require can make the review process more straightforward. A changelog may suffice for this purpose, but more extensive changes may require a level of detail that is ill-suited for a changelog.
37
38Commenting on your pull request and being responsive to questions, comments, and change requests is much appreciated.
39
40### Ask for Help
41
42Having your submission flagged may have caught you off guard. If you find yourself intimidated or overwhelmed, let us know. Comment on your pull request, or [reach out to the QMK team on Discord](https://discord.gg/Uq7gcHh).
diff --git a/docs/cli.md b/docs/cli.md
index 1c0952722..4f328a75a 100644
--- a/docs/cli.md
+++ b/docs/cli.md
@@ -141,14 +141,28 @@ qmk docs [-p PORT]
141 141
142## `qmk doctor` 142## `qmk doctor`
143 143
144This command examines your environment and alerts you to potential build or flash problems. 144This command examines your environment and alerts you to potential build or flash problems. It can fix many of them if you want it to.
145 145
146**Usage**: 146**Usage**:
147 147
148``` 148```
149qmk doctor 149qmk doctor [-y] [-n]
150``` 150```
151 151
152**Examples**:
153
154Check your environment for problems and prompt to fix them:
155
156 qmk doctor
157
158Check your environment and automatically fix any problems found:
159
160 qmk doctor -y
161
162Check your environment and report problems only:
163
164 qmk doctor -n
165
152## `qmk json-keymap` 166## `qmk json-keymap`
153 167
154Creates a keymap.c from a QMK Configurator export. 168Creates a keymap.c from a QMK Configurator export.
diff --git a/docs/config_options.md b/docs/config_options.md
index 0b83ed9e4..be328405e 100644
--- a/docs/config_options.md
+++ b/docs/config_options.md
@@ -149,6 +149,8 @@ If you define these options you will enable the associated feature, which may in
149 * makes it possible to use a dual role key as modifier shortly after having been tapped 149 * makes it possible to use a dual role key as modifier shortly after having been tapped
150 * See [Hold after tap](feature_advanced_keycodes.md#tapping-force-hold) 150 * See [Hold after tap](feature_advanced_keycodes.md#tapping-force-hold)
151 * Breaks any Tap Toggle functionality (`TT` or the One Shot Tap Toggle) 151 * Breaks any Tap Toggle functionality (`TT` or the One Shot Tap Toggle)
152* `#define TAPPING_FORCE_HOLD_PER_KEY`
153 * enables handling for per key `TAPPING_FORCE_HOLD` settings
152* `#define LEADER_TIMEOUT 300` 154* `#define LEADER_TIMEOUT 300`
153 * how long before the leader key times out 155 * how long before the leader key times out
154 * If you're having issues finishing the sequence before it times out, you may need to increase the timeout setting. Or you may want to enable the `LEADER_PER_KEY_TIMING` option, which resets the timeout after each key is tapped. 156 * If you're having issues finishing the sequence before it times out, you may need to increase the timeout setting. Or you may want to enable the `LEADER_PER_KEY_TIMING` option, which resets the timeout after each key is tapped.
@@ -274,9 +276,12 @@ There are a few different ways to set handedness for split keyboards (listed in
274 * Default behavior for ARM 276 * Default behavior for ARM
275 * Required for AVR Teensy 277 * Required for AVR Teensy
276 278
277* `#define SPLIT_USB_TIMEOUT 2500` 279* `#define SPLIT_USB_TIMEOUT 2000`
278 * Maximum timeout when detecting master/slave when using `SPLIT_USB_DETECT` 280 * Maximum timeout when detecting master/slave when using `SPLIT_USB_DETECT`
279 281
282* `#define SPLIT_USB_TIMEOUT_POLL 10`
283 * Poll frequency when detecting master/slave when using `SPLIT_USB_DETECT`
284
280# The `rules.mk` File 285# The `rules.mk` File
281 286
282This is a [make](https://www.gnu.org/software/make/manual/make.html) file that is included by the top-level `Makefile`. It is used to set some information about the MCU that we will be compiling for as well as enabling and disabling certain features. 287This is a [make](https://www.gnu.org/software/make/manual/make.html) file that is included by the top-level `Makefile`. It is used to set some information about the MCU that we will be compiling for as well as enabling and disabling certain features.
diff --git a/docs/custom_matrix.md b/docs/custom_matrix.md
new file mode 100644
index 000000000..cfa900a33
--- /dev/null
+++ b/docs/custom_matrix.md
@@ -0,0 +1,108 @@
1# Custom Matrix
2
3QMK provides a mechanism to supplement or replace the default matrix scanning routine with your own code.
4
5The reasons to use this feature include:
6
7* Extra hardware between the keyboard's switches and MCU pins
8 * I/O multiplexer
9 * Line decoder
10* Irregular switch matrix
11 * Simultaneous use of `COL2ROW` and `ROW2COL`
12
13## Prerequisites
14
15Implementing custom matrix usually involves compilation of an additional source file. It is recommended that for consistency, this file is called `matrix.c`.
16
17Add a new file to your keyboard directory:
18```text
19keyboards/<keyboard>/matrix.c
20```
21
22And to configure compilation for the new file, add this to your `rules.mk`:
23```make
24SRC += matrix.c
25```
26
27## 'lite'
28
29Provides a default implementation for various scanning functions, reducing the boilerplate code when implementing custom matrix.
30To configure it, add this to your `rules.mk`:
31
32```make
33CUSTOM_MATRIX = lite
34```
35
36And implement the following functions in a `matrix.c` file in your keyboard folder:
37
38```c
39void matrix_init_custom(void) {
40 // TODO: initialize hardware here
41}
42
43bool matrix_scan_custom(matrix_row_t current_matrix[]) {
44 bool matrix_has_changed = false;
45
46 // TODO: add matrix scanning routine here
47
48 return matrix_has_changed;
49}
50```
51
52
53## Full Replacement
54
55When more control over the scanning routine is required, you can choose to implement the full scanning routine.
56To configure it, add this to your rules.mk:
57
58```make
59CUSTOM_MATRIX = yes
60```
61
62And implement the following functions in a `matrix.c` file in your keyboard folder:
63
64```c
65matrix_row_t matrix_get_row(uint8_t row) {
66 // TODO: return the requested row data
67}
68
69void matrix_print(void) {
70 // TODO: use print() to dump the current matrix state to console
71}
72
73void matrix_init(void) {
74 // TODO: initialize hardware and global matrix state here
75
76 // Unless hardware debouncing - Init the configured debounce routine
77 debounce_init(MATRIX_ROWS);
78
79 // This *must* be called for correct keyboard behavior
80 matrix_init_quantum();
81}
82
83uint8_t matrix_scan(void) {
84 bool matrix_has_changed = false;
85
86 // TODO: add matrix scanning routine here
87
88 // Unless hardware debouncing - use the configured debounce routine
89 debounce(raw_matrix, matrix, MATRIX_ROWS, changed);
90
91 // This *must* be called for correct keyboard behavior
92 matrix_scan_quantum();
93
94 return matrix_has_changed;
95}
96```
97
98And also provide defaults for the following callbacks:
99
100```c
101__attribute__((weak)) void matrix_init_kb(void) { matrix_init_user(); }
102
103__attribute__((weak)) void matrix_scan_kb(void) { matrix_scan_user(); }
104
105__attribute__((weak)) void matrix_init_user(void) {}
106
107__attribute__((weak)) void matrix_scan_user(void) {}
108```
diff --git a/docs/eeprom_driver.md b/docs/eeprom_driver.md
new file mode 100644
index 000000000..dd12d8ec7
--- /dev/null
+++ b/docs/eeprom_driver.md
@@ -0,0 +1,50 @@
1# EEPROM Driver Configuration
2
3The EEPROM driver can be swapped out depending on the needs of the keyboard, or whether extra hardware is present.
4
5Driver | Description
6--------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
7`EEPROM_DRIVER = vendor` | Uses the on-chip driver provided by the chip manufacturer. For AVR, this is provided by avr-libc. This is supported on ARM for a subset of chips -- STM32F3xx, STM32F1xx, and STM32F072xB will be emulated by writing to flash. Other chips will generally act as "transient" below.
8`EEPROM_DRIVER = i2c` | Supports writing to I2C-based 24xx EEPROM chips. See the driver section below.
9`EEPROM_DRIVER = transient` | Fake EEPROM driver -- supports reading/writing to RAM, and will be discarded when power is lost.
10
11## Vendor Driver Configuration
12
13No configurable options are available.
14
15## I2C Driver Configuration
16
17Currently QMK supports 24xx-series chips over I2C. As such, requires a working i2c_master driver configuration. You can override the driver configuration via your config.h:
18
19`config.h` override | Description | Default Value
20------------------------------------------- | ----------------------------------------------------------------------------------- | ------------------------------------
21`#define EXTERNAL_EEPROM_I2C_BASE_ADDRESS` | Base I2C address for the EEPROM -- shifted left by 1 as per i2c_master requirements | 0b10100000
22`#define EXTERNAL_EEPROM_I2C_ADDRESS(addr)` | Calculated I2C address for the EEPROM | `(EXTERNAL_EEPROM_I2C_BASE_ADDRESS)`
23`#define EXTERNAL_EEPROM_BYTE_COUNT` | Total size of the EEPROM in bytes | 8192
24`#define EXTERNAL_EEPROM_PAGE_SIZE` | Page size of the EEPROM in bytes, as specified in the datasheet | 32
25`#define EXTERNAL_EEPROM_ADDRESS_SIZE` | The number of bytes to transmit for the memory location within the EEPROM | 2
26`#define EXTERNAL_EEPROM_WRITE_TIME` | Write cycle time of the EEPROM, as specified in the datasheet | 5
27
28Default values and extended descriptions can be found in `drivers/eeprom/eeprom_i2c.h`.
29
30Alternatively, there are pre-defined hardware configurations for available chips/modules:
31
32Module | Equivalent `#define` | Source
33-----------------|---------------------------------|------------------------------------------
34CAT24C512 EEPROM | `#define EEPROM_I2C_CAT24C512` | <https://www.sparkfun.com/products/14764>
35RM24C512C EEPROM | `#define EEPROM_I2C_RM24C512C` | <https://www.sparkfun.com/products/14764>
3624LC128 EEPROM | `#define EEPROM_I2C_24LC128` | <https://www.microchip.com/wwwproducts/en/24LC128>
3724LC256 EEPROM | `#define EEPROM_I2C_24LC256` | <https://www.sparkfun.com/products/525>
38MB85RC256V FRAM | `#define EEPROM_I2C_MB85RC256V` | <https://www.adafruit.com/product/1895>
39
40?> If you find that the EEPROM is not cooperating, ensure you've correctly shifted up your EEPROM address by 1. For example, the datasheet might state the address as `0b01010000` -- the correct value of `EXTERNAL_EEPROM_I2C_BASE_ADDRESS` needs to be `0b10100000`.
41
42## Transient Driver configuration
43
44The only configurable item for the transient EEPROM driver is its size:
45
46`config.h` override | Description | Default Value
47------------------------------- | ----------------------------------------- | -------------
48`#define TRANSIENT_EEPROM_SIZE` | Total size of the EEPROM storage in bytes | 64
49
50Default values and extended descriptions can be found in `drivers/eeprom/eeprom_transient.h`.
diff --git a/docs/feature_advanced_keycodes.md b/docs/feature_advanced_keycodes.md
index ec3807f40..ebb24dc99 100644
--- a/docs/feature_advanced_keycodes.md
+++ b/docs/feature_advanced_keycodes.md
@@ -291,6 +291,25 @@ Normally, this would send `X` (`SHIFT`+`x`). With `Ignore Mod Tap Interrupt` ena
291 291
292?> If you have `Permissive Hold` enabled, as well, this will modify how both work. The regular key has the modifier added if the first key is released first or if both keys are held longer than the `TAPPING_TERM`. 292?> If you have `Permissive Hold` enabled, as well, this will modify how both work. The regular key has the modifier added if the first key is released first or if both keys are held longer than the `TAPPING_TERM`.
293 293
294For more granular control of this feature, you can add the following to your `config.h`:
295
296```c
297#define IGNORE_MOD_TAP_INTERRUPT_PER_KEY
298```
299
300You can then add the following function to your keymap:
301
302```c
303bool get_ignore_mod_tap_interrupt(uint16_t keycode) {
304 switch (keycode) {
305 case SFT_T(KC_SPC):
306 return true;
307 default:
308 return false;
309 }
310}
311```
312
294## Tapping Force Hold 313## Tapping Force Hold
295 314
296To enable `tapping force hold`, add the following to your `config.h`: 315To enable `tapping force hold`, add the following to your `config.h`:
@@ -315,6 +334,25 @@ With `TAPPING_FORCE_HOLD`, the second press will be interpreted as a Shift, allo
315 334
316!> `TAPPING_FORCE_HOLD` will break anything that uses tapping toggles (Such as the `TT` layer keycode, and the One Shot Tapping Toggle). 335!> `TAPPING_FORCE_HOLD` will break anything that uses tapping toggles (Such as the `TT` layer keycode, and the One Shot Tapping Toggle).
317 336
337For more granular control of this feature, you can add the following to your `config.h`:
338
339```c
340#define TAPPING_FORCE_HOLD_PER_KEY
341```
342
343You can then add the following function to your keymap:
344
345```c
346bool get_tapping_force_hold(uint16_t keycode, keyrecord_t *record) {
347 switch (keycode) {
348 case LT(1, KC_BSPC):
349 return true;
350 default:
351 return false;
352 }
353}
354```
355
318## Retro Tapping 356## Retro Tapping
319 357
320To enable `retro tapping`, add the following to your `config.h`: 358To enable `retro tapping`, add the following to your `config.h`:
diff --git a/docs/feature_oled_driver.md b/docs/feature_oled_driver.md
index b124ba5a8..29548cb82 100644
--- a/docs/feature_oled_driver.md
+++ b/docs/feature_oled_driver.md
@@ -1,139 +1,142 @@
1# OLED Driver 1# OLED Driver
2 2
3## OLED Supported Hardware 3## Supported Hardware
4 4
5OLED modules using SSD1306 or SH1106 driver ICs, communicating over I2C. 5OLED modules using SSD1306 or SH1106 driver ICs, communicating over I2C.
6Tested combinations: 6Tested combinations:
7 7
8| IC driver | Size | Keyboard Platform | Notes | 8|IC |Size |Platform|Notes |
9|-----------|--------|-------------------|--------------------------| 9|---------|------|--------|------------------------|
10| SSD1306 | 128x32 | AVR | Primary support | 10|SSD1306 |128x32|AVR |Primary support |
11| SSD1306 | 128x64 | AVR | Verified working | 11|SSD1306 |128x64|AVR |Verified working |
12| SSD1306 | 128x32 | ARM | | 12|SSD1306 |128x32|Arm | |
13| SH1106 | 128x64 | AVR | No rotation or scrolling | 13|SH1106 |128x64|AVR |No rotation or scrolling|
14 14
15Hardware configurations using ARM-based microcontrollers or different sizes of OLED modules may be compatible, but are untested. 15Hardware configurations using Arm-based microcontrollers or different sizes of OLED modules may be compatible, but are untested.
16 16
17!> Warning: This OLED Driver currently uses the new i2c_master driver from split common code. If your split keyboard uses I2C to communicate between sides, this driver could cause an address conflict (serial is fine). Please contact your keyboard vendor and ask them to migrate to the latest split common code to fix this. In addition, the display timeout system to reduce OLED burn-in also uses split common to detect keypresses, so you will need to implement custom timeout logic for non-split common keyboards. 17!> Warning: This OLED driver currently uses the new i2c_master driver from Split Common code. If your split keyboard uses I2C to communicate between sides, this driver could cause an address conflict (serial is fine). Please contact your keyboard vendor and ask them to migrate to the latest Split Common code to fix this. In addition, the display timeout system to reduce OLED burn-in also uses Split Common to detect keypresses, so you will need to implement custom timeout logic for non-Split Common keyboards.
18 18
19## Usage 19## Usage
20 20
21To enable the OLED feature, there are three steps. First, when compiling your keyboard, you'll need to set `OLED_DRIVER_ENABLE=yes` in `rules.mk`, e.g.: 21To enable the OLED feature, there are three steps. First, when compiling your keyboard, you'll need to add the following to your `rules.mk`:
22 22
23``` 23```make
24OLED_DRIVER_ENABLE = yes 24OLED_DRIVER_ENABLE = yes
25``` 25```
26 26
27This enables the feature and the `OLED_DRIVER_ENABLE` define. Then in your `keymap.c` file, you will need to implement the user task call, e.g: 27Then in your `keymap.c` file, implement the OLED task call. This example assumes your keymap has three layers named `_QWERTY`, `_FN` and `_ADJ`:
28 28
29```C++ 29```c
30#ifdef OLED_DRIVER_ENABLE 30#ifdef OLED_DRIVER_ENABLE
31void oled_task_user(void) { 31void oled_task_user(void) {
32 // Host Keyboard Layer Status 32 // Host Keyboard Layer Status
33 oled_write_P(PSTR("Layer: "), false); 33 oled_write_P(PSTR("Layer: "), false);
34 switch (get_highest_layer(layer_state)) { 34
35 case _QWERTY: 35 switch (get_highest_layer(layer_state)) {
36 oled_write_P(PSTR("Default\n"), false); 36 case _QWERTY:
37 break; 37 oled_write_P(PSTR("Default\n"), false);
38 case _FN: 38 break;
39 oled_write_P(PSTR("FN\n"), false); 39 case _FN:
40 break; 40 oled_write_P(PSTR("FN\n"), false);
41 case _ADJ: 41 break;
42 oled_write_P(PSTR("ADJ\n"), false); 42 case _ADJ:
43 break; 43 oled_write_P(PSTR("ADJ\n"), false);
44 default: 44 break;
45 // Or use the write_ln shortcut over adding '\n' to the end of your string 45 default:
46 oled_write_ln_P(PSTR("Undefined"), false); 46 // Or use the write_ln shortcut over adding '\n' to the end of your string
47 } 47 oled_write_ln_P(PSTR("Undefined"), false);
48 48 }
49 // Host Keyboard LED Status 49
50 uint8_t led_usb_state = host_keyboard_leds(); 50 // Host Keyboard LED Status
51 oled_write_P(led_usb_state & (1<<USB_LED_NUM_LOCK) ? PSTR("NUMLCK ") : PSTR(" "), false); 51 led_t led_state = host_keyboard_led_state();
52 oled_write_P(led_usb_state & (1<<USB_LED_CAPS_LOCK) ? PSTR("CAPLCK ") : PSTR(" "), false); 52 oled_write_P(led_state.num_lock ? PSTR("NUM ") : PSTR(" "), false);
53 oled_write_P(led_usb_state & (1<<USB_LED_SCROLL_LOCK) ? PSTR("SCRLCK ") : PSTR(" "), false); 53 oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR(" "), false);
54 oled_write_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false);
54} 55}
55#endif 56#endif
56``` 57```
57 58
58## Logo Example 59## Logo Example
59 60
60In the default font, ranges in the font file are reserved for a QMK Logo. To Render this logo to the oled screen, use the following code example: 61In the default font, certain ranges of characters are reserved for a QMK logo. To render this logo to the OLED screen, use the following code example:
61 62
62```C++ 63```c
63static void render_logo(void) { 64static void render_logo(void) {
64 static const char PROGMEM qmk_logo[] = { 65 static const char PROGMEM qmk_logo[] = {
65 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94, 66 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x91, 0x92, 0x93, 0x94,
66 0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4, 67 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4,
67 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,0}; 68 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0x00
69 };
68 70
69 oled_write_P(qmk_logo, false); 71 oled_write_P(qmk_logo, false);
70} 72}
71``` 73```
72 74
73## Other Examples 75## Other Examples
74 76
75In split keyboards, it is very common to have two OLED displays that each render different content and oriented flipped differently. You can do this by switching which content to render by using the return from `is_keyboard_master()` or `is_keyboard_left()` found in `split_util.h`, e.g: 77In split keyboards, it is very common to have two OLED displays that each render different content and are oriented or flipped differently. You can do this by switching which content to render by using the return value from `is_keyboard_master()` or `is_keyboard_left()` found in `split_util.h`, e.g:
76 78
77```C++ 79```c
78#ifdef OLED_DRIVER_ENABLE 80#ifdef OLED_DRIVER_ENABLE
79oled_rotation_t oled_init_user(oled_rotation_t rotation) { 81oled_rotation_t oled_init_user(oled_rotation_t rotation) {
80 if (!is_keyboard_master()) 82 if (!is_keyboard_master()) {
81 return OLED_ROTATION_180; // flips the display 180 degrees if offhand 83 return OLED_ROTATION_180; // flips the display 180 degrees if offhand
82 return rotation; 84 }
85
86 return rotation;
83} 87}
84 88
85void oled_task_user(void) { 89void oled_task_user(void) {
86 if (is_keyboard_master()) { 90 if (is_keyboard_master()) {
87 render_status(); // Renders the current keyboard state (layer, lock, caps, scroll, etc) 91 render_status(); // Renders the current keyboard state (layer, lock, caps, scroll, etc)
88 } else { 92 } else {
89 render_logo(); // Renders a statuc logo 93 render_logo(); // Renders a static logo
90 oled_scroll_left(); // Turns on scrolling 94 oled_scroll_left(); // Turns on scrolling
91 } 95 }
92} 96}
93#endif 97#endif
94``` 98```
95 99
96 100## Basic Configuration
97 ## Basic Configuration 101
98 102|Define |Default |Description |
99| Define | Default | Description | 103|---------------------------|-----------------|--------------------------------------------------------------------------------------------------------------------------|
100|----------------------------|-------------------|----------------------------------------------------------------------------------------------------------------------------| 104|`OLED_DISPLAY_ADDRESS` |`0x3C` |The i2c address of the OLED Display |
101| `OLED_DISPLAY_ADDRESS` | `0x3C` | The i2c address of the OLED Display | 105|`OLED_FONT_H` |`"glcdfont.c"` |The font code file to use for custom fonts |
102| `OLED_FONT_H` | `"glcdfont.c"` | The font code file to use for custom fonts | 106|`OLED_FONT_START` |`0` |The starting characer index for custom fonts |
103| `OLED_FONT_START` | `0` | The starting characer index for custom fonts | 107|`OLED_FONT_END` |`224` |The ending characer index for custom fonts |
104| `OLED_FONT_END` | `224` | The ending characer index for custom fonts | 108|`OLED_FONT_WIDTH` |`6` |The font width |
105| `OLED_FONT_WIDTH` | `6` | The font width | 109|`OLED_FONT_HEIGHT` |`8` |The font height (untested) |
106| `OLED_FONT_HEIGHT` | `8` | The font height (untested) | 110|`OLED_TIMEOUT` |`60000` |Turns off the OLED screen after 60000ms of keyboard inactivity. Helps reduce OLED Burn-in. Set to 0 to disable. |
107| `OLED_TIMEOUT` | `60000` | Turns off the OLED screen after 60000ms of keyboard inactivity. Helps reduce OLED Burn-in. Set to 0 to disable. | 111|`OLED_SCROLL_TIMEOUT` |`0` |Scrolls the OLED screen after 0ms of OLED inactivity. Helps reduce OLED Burn-in. Set to 0 to disable. |
108| `OLED_SCROLL_TIMEOUT` | `0` | Scrolls the OLED screen after 0ms of OLED inactivity. Helps reduce OLED Burn-in. Set to 0 to disable. | 112|`OLED_SCROLL_TIMEOUT_RIGHT`|*Not defined* |Scroll timeout direction is right when defined, left when undefined. |
109| `OLED_SCROLL_TIMEOUT_RIGHT`| *Not defined* | Scroll timeout direction is right when defined, left when undefined. | 113|`OLED_IC` |`OLED_IC_SSD1306`|Set to `OLED_IC_SH1106` if you're using the SH1106 OLED controller. |
110| `OLED_IC` | `OLED_IC_SSD1306` | Set to `OLED_IC_SH1106` if you're using the SH1106 OLED controller. | 114|`OLED_COLUMN_OFFSET` |`0` |(SH1106 only.) Shift output to the right this many pixels.<br />Useful for 128x64 displays centered on a 132x64 SH1106 IC.|
111| `OLED_COLUMN_OFFSET` | `0` | (SH1106 only.) Shift output to the right this many pixels.<br />Useful for 128x64 displays centered on a 132x64 SH1106 IC. |
112 115
113 ## 128x64 & Custom sized OLED Displays 116 ## 128x64 & Custom sized OLED Displays
114 117
115 The default display size for this feature is 128x32 and all necessary defines are precalculated with that in mind. We have added a define, `OLED_DISPLAY_128X64`, to switch all the values to be used in a 128x64 display, as well as added a custom define, `OLED_DISPLAY_CUSTOM`, that allows you to provide the necessary values to the driver. 118 The default display size for this feature is 128x32 and all necessary defines are precalculated with that in mind. We have added a define, `OLED_DISPLAY_128X64`, to switch all the values to be used in a 128x64 display, as well as added a custom define, `OLED_DISPLAY_CUSTOM`, that allows you to provide the necessary values to the driver.
116 119
117|Define |Default |Description | 120|Define |Default |Description |
118|-----------------------|---------------|-----------------------------------------------------------------| 121|---------------------|---------------|----------------------------------------------------------------------------------------------------------------------------------------|
119|`OLED_DISPLAY_128X64` |*Not defined* |Changes the display defines for use with 128x64 displays. | 122|`OLED_DISPLAY_128X64`|*Not defined* |Changes the display defines for use with 128x64 displays. |
120|`OLED_DISPLAY_CUSTOM` |*Not defined* |Changes the display defines for use with custom displays.<br />Requires user to implement the below defines. | 123|`OLED_DISPLAY_CUSTOM`|*Not defined* |Changes the display defines for use with custom displays.<br>Requires user to implement the below defines. |
121|`OLED_DISPLAY_WIDTH` |`128` |The width of the OLED display. | 124|`OLED_DISPLAY_WIDTH` |`128` |The width of the OLED display. |
122|`OLED_DISPLAY_HEIGHT` |`32` |The height of the OLED display. | 125|`OLED_DISPLAY_HEIGHT`|`32` |The height of the OLED display. |
123|`OLED_MATRIX_SIZE` |`512` |The local buffer size to allocate.<br />`(OLED_DISPLAY_HEIGHT / 8 * OLED_DISPLAY_WIDTH)`. | 126|`OLED_MATRIX_SIZE` |`512` |The local buffer size to allocate.<br>`(OLED_DISPLAY_HEIGHT / 8 * OLED_DISPLAY_WIDTH)`. |
124|`OLED_BLOCK_TYPE` |`uint16_t` |The unsigned integer type to use for dirty rendering. | 127|`OLED_BLOCK_TYPE` |`uint16_t` |The unsigned integer type to use for dirty rendering. |
125|`OLED_BLOCK_COUNT` |`16` |The number of blocks the display is divided into for dirty rendering.<br />`(sizeof(OLED_BLOCK_TYPE) * 8)`. | 128|`OLED_BLOCK_COUNT` |`16` |The number of blocks the display is divided into for dirty rendering.<br>`(sizeof(OLED_BLOCK_TYPE) * 8)`. |
126|`OLED_BLOCK_SIZE` |`32` |The size of each block for dirty rendering<br />`(OLED_MATRIX_SIZE / OLED_BLOCK_COUNT)`. | 129|`OLED_BLOCK_SIZE` |`32` |The size of each block for dirty rendering<br>`(OLED_MATRIX_SIZE / OLED_BLOCK_COUNT)`. |
127|`OLED_COM_PINS` |`COM_PINS_SEQ` |How the SSD1306 chip maps it's memory to display.<br />Options are `COM_PINS_SEQ`, `COM_PINS_ALT`, `COM_PINS_SEQ_LR`, & `COM_PINS_ALT_LR`. | 130|`OLED_COM_PINS` |`COM_PINS_SEQ` |How the SSD1306 chip maps it's memory to display.<br>Options are `COM_PINS_SEQ`, `COM_PINS_ALT`, `COM_PINS_SEQ_LR`, & `COM_PINS_ALT_LR`.|
128|`OLED_SOURCE_MAP` |`{ 0, ... N }` |Precalculated source array to use for mapping source buffer to target OLED memory in 90 degree rendering. | 131|`OLED_SOURCE_MAP` |`{ 0, ... N }` |Precalculated source array to use for mapping source buffer to target OLED memory in 90 degree rendering. |
129|`OLED_TARGET_MAP` |`{ 24, ... N }`|Precalculated target array to use for mapping source buffer to target OLED memory in 90 degree rendering. | 132|`OLED_TARGET_MAP` |`{ 24, ... N }`|Precalculated target array to use for mapping source buffer to target OLED memory in 90 degree rendering. |
130 133
131 134
132### 90 Degree Rotation - Technical Mumbo Jumbo 135### 90 Degree Rotation - Technical Mumbo Jumbo
133 136
134!> Rotation is unsupported on the SH1106. 137!> Rotation is unsupported on the SH1106.
135 138
136```C 139```c
137// OLED Rotation enum values are flags 140// OLED Rotation enum values are flags
138typedef enum { 141typedef enum {
139 OLED_ROTATION_0 = 0, 142 OLED_ROTATION_0 = 0,
@@ -143,9 +146,9 @@ typedef enum {
143} oled_rotation_t; 146} oled_rotation_t;
144``` 147```
145 148
146 OLED displays driven by SSD1306 drivers only natively support in hard ware 0 degree and 180 degree rendering. This feature is done in software and not free. Using this feature will increase the time to calculate what data to send over i2c to the OLED. If you are strapped for cycles, this can cause keycodes to not register. In testing however, the rendering time on an `atmega32u4` board only went from 2ms to 5ms and keycodes not registering was only noticed once we hit 15ms. 149OLED displays driven by SSD1306 drivers only natively support in hardware 0 degree and 180 degree rendering. This feature is done in software and not free. Using this feature will increase the time to calculate what data to send over i2c to the OLED. If you are strapped for cycles, this can cause keycodes to not register. In testing however, the rendering time on an ATmega32U4 board only went from 2ms to 5ms and keycodes not registering was only noticed once we hit 15ms.
147 150
148 90 Degree Rotated Rendering is achieved by using bitwise operations to rotate each 8 block of memory and uses two precalculated arrays to remap buffer memory to OLED memory. The memory map defines are precalculated for remap performance and are calculated based on the OLED Height, Width, and Block Size. For example, in the 128x32 implementation with a `uint8_t` block type, we have a 64 byte block size. This gives us eight 8 byte blocks that need to be rotated and rendered. The OLED renders horizontally two 8 byte blocks before moving down a page, e.g: 15190 degree rotation is achieved by using bitwise operations to rotate each 8 block of memory and uses two precalculated arrays to remap buffer memory to OLED memory. The memory map defines are precalculated for remap performance and are calculated based on the display height, width, and block size. For example, in the 128x32 implementation with a `uint8_t` block type, we have a 64 byte block size. This gives us eight 8 byte blocks that need to be rotated and rendered. The OLED renders horizontally two 8 byte blocks before moving down a page, e.g:
149 152
150| | | | | | | 153| | | | | | |
151|---|---|---|---|---|---| 154|---|---|---|---|---|---|
@@ -167,8 +170,8 @@ So those precalculated arrays just index the memory offsets in the order in whic
167 170
168## OLED API 171## OLED API
169 172
170```C++ 173```c
171// OLED Rotation enum values are flags 174// OLED rotation enum values are flags
172typedef enum { 175typedef enum {
173 OLED_ROTATION_0 = 0, 176 OLED_ROTATION_0 = 0,
174 OLED_ROTATION_90 = 1, 177 OLED_ROTATION_90 = 1,
@@ -272,26 +275,26 @@ uint8_t oled_max_lines(void);
272 275
273!> Scrolling and rotation are unsupported on the SH1106. 276!> Scrolling and rotation are unsupported on the SH1106.
274 277
275## SSD1306.h driver conversion guide 278## SSD1306.h Driver Conversion Guide
276 279
277|Old API |Recommended New API | 280|Old API |Recommended New API |
278|---------------------------|-----------------------------------| 281|-------------------------|---------------------------------|
279|`struct CharacterMatrix` |*removed - delete all references* | 282|`struct CharacterMatrix` |*removed - delete all references*|
280|`iota_gfx_init` |`oled_init` | 283|`iota_gfx_init` |`oled_init` |
281|`iota_gfx_on` |`oled_on` | 284|`iota_gfx_on` |`oled_on` |
282|`iota_gfx_off` |`oled_off` | 285|`iota_gfx_off` |`oled_off` |
283|`iota_gfx_flush` |`oled_render` | 286|`iota_gfx_flush` |`oled_render` |
284|`iota_gfx_write_char` |`oled_write_char` | 287|`iota_gfx_write_char` |`oled_write_char` |
285|`iota_gfx_write` |`oled_write` | 288|`iota_gfx_write` |`oled_write` |
286|`iota_gfx_write_P` |`oled_write_P` | 289|`iota_gfx_write_P` |`oled_write_P` |
287|`iota_gfx_clear_screen` |`oled_clear` | 290|`iota_gfx_clear_screen` |`oled_clear` |
288|`matrix_clear` |*removed - delete all references* | 291|`matrix_clear` |*removed - delete all references*|
289|`matrix_write_char_inner` |`oled_write_char` | 292|`matrix_write_char_inner`|`oled_write_char` |
290|`matrix_write_char` |`oled_write_char` | 293|`matrix_write_char` |`oled_write_char` |
291|`matrix_write` |`oled_write` | 294|`matrix_write` |`oled_write` |
292|`matrix_write_ln` |`oled_write_ln` | 295|`matrix_write_ln` |`oled_write_ln` |
293|`matrix_write_P` |`oled_write_P` | 296|`matrix_write_P` |`oled_write_P` |
294|`matrix_write_ln_P` |`oled_write_ln_P` | 297|`matrix_write_ln_P` |`oled_write_ln_P` |
295|`matrix_render` |`oled_render` | 298|`matrix_render` |`oled_render` |
296|`iota_gfx_task` |`oled_task` | 299|`iota_gfx_task` |`oled_task` |
297|`iota_gfx_task_user` |`oled_task_user` | 300|`iota_gfx_task_user` |`oled_task_user` |
diff --git a/docs/feature_rgb_matrix.md b/docs/feature_rgb_matrix.md
index 92fd62b32..23082ef2a 100644
--- a/docs/feature_rgb_matrix.md
+++ b/docs/feature_rgb_matrix.md
@@ -380,6 +380,10 @@ These are defined in [`rgblight_list.h`](https://github.com/qmk/qmk_firmware/blo
380#define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness) 380#define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness)
381#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 // limits maximum brightness of LEDs to 200 out of 255. If not defined maximum brightness is set to 255 381#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 // limits maximum brightness of LEDs to 200 out of 255. If not defined maximum brightness is set to 255
382#define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_LEFT_RIGHT // Sets the default mode, if none has been set 382#define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_LEFT_RIGHT // Sets the default mode, if none has been set
383#define RGB_MATRIX_STARTUP_HUE 0 // Sets the default hue value, if none has been set
384#define RGB_MATRIX_STARTUP_SAT 255 // Sets the default saturation value, if none has been set
385#define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS // Sets the default brightness value, if none has been set
386#define RGB_MATRIX_STARTUP_SPD 127 // Sets the default animation speed, if none has been set
383``` 387```
384 388
385## EEPROM storage 389## EEPROM storage
diff --git a/docs/feature_split_keyboard.md b/docs/feature_split_keyboard.md
index affce3429..66194c5f4 100644
--- a/docs/feature_split_keyboard.md
+++ b/docs/feature_split_keyboard.md
@@ -198,10 +198,15 @@ This option changes the startup behavior to detect an active USB connection when
198?> This setting will stop the ability to demo using battery packs. 198?> This setting will stop the ability to demo using battery packs.
199 199
200```c 200```c
201#define SPLIT_USB_TIMEOUT 2500 201#define SPLIT_USB_TIMEOUT 2000
202``` 202```
203This sets the maximum timeout when detecting master/slave when using `SPLIT_USB_DETECT`. 203This sets the maximum timeout when detecting master/slave when using `SPLIT_USB_DETECT`.
204 204
205```c
206#define SPLIT_USB_TIMEOUT_POLL 10
207```
208This sets the poll frequency when detecting master/slave when using `SPLIT_USB_DETECT`
209
205## Additional Resources 210## Additional Resources
206 211
207Nicinabox has a [very nice and detailed guide](https://github.com/nicinabox/lets-split-guide) for the Let's Split keyboard, that covers most everything you need to know, including troubleshooting information. 212Nicinabox has a [very nice and detailed guide](https://github.com/nicinabox/lets-split-guide) for the Let's Split keyboard, that covers most everything you need to know, including troubleshooting information.
diff --git a/docs/getting_started_make_guide.md b/docs/getting_started_make_guide.md
index bf8d472d0..df82a001f 100644
--- a/docs/getting_started_make_guide.md
+++ b/docs/getting_started_make_guide.md
@@ -135,7 +135,7 @@ As there is no standard split communication driver for ARM-based split keyboards
135 135
136`CUSTOM_MATRIX` 136`CUSTOM_MATRIX`
137 137
138Lets you replace the default matrix scanning routine with your own code. You will need to provide your own implementations of matrix_init() and matrix_scan(). 138Lets you replace the default matrix scanning routine with your own code. For further details, see the [Custom Matrix page](custom_matrix.md).
139 139
140`DEBOUNCE_TYPE` 140`DEBOUNCE_TYPE`
141 141
diff --git a/docs/hardware_drivers.md b/docs/hardware_drivers.md
index 165187795..7e89c0d2b 100644
--- a/docs/hardware_drivers.md
+++ b/docs/hardware_drivers.md
@@ -33,3 +33,7 @@ Support for up to 2 drivers. Each driver impliments 2 charlieplex matrices to in
33## IS31FL3733 33## IS31FL3733
34 34
35Support for up to a single driver with room for expansion. Each driver can control 192 individual LEDs or 64 RGB LEDs. For more information on how to setup the driver see the [RGB Matrix](feature_rgb_matrix.md) page. 35Support for up to a single driver with room for expansion. Each driver can control 192 individual LEDs or 64 RGB LEDs. For more information on how to setup the driver see the [RGB Matrix](feature_rgb_matrix.md) page.
36
37## 24xx series external I2C EEPROM
38
39Support for an external I2C-based EEPROM instead of using the on-chip EEPROM. For more information on how to setup the driver see the [EEPROM Driver](eeprom_driver.md) page.
diff --git a/docs/ja/_summary.md b/docs/ja/_summary.md
index e5e19ddc8..afe962f86 100644
--- a/docs/ja/_summary.md
+++ b/docs/ja/_summary.md
@@ -10,32 +10,34 @@
10 * [学習リソース](ja/newbs_learn_more_resources.md) 10 * [学習リソース](ja/newbs_learn_more_resources.md)
11 11
12* [QMKã®åŸºæœ¬](ja/README.md) 12* [QMKã®åŸºæœ¬](ja/README.md)
13 * [QMKã®å°Žå…¥](ja/getting_started_introduction.md) 13 * [QMK ã®å°Žå…¥](ja/getting_started_introduction.md)
14 * [QMK CLI](ja/cli.md) 14 * [QMK CLI](ja/cli.md)
15 * [QMK CLI 設定](ja/cli_configuration.md) 15 * [QMK CLI 設定](ja/cli_configuration.md)
16 * [QMKã¸ã®è²¢çŒ®](ja/contributing.md) 16 * [QMK ã¸ã®è²¢çŒ®](ja/contributing.md)
17 * [Githubã®ä½¿ã„æ–¹](ja/getting_started_github.md) 17 * [Github ã®ä½¿ã„æ–¹](ja/getting_started_github.md)
18 * [ヘルプ](ja/getting_started_getting_help.md) 18 * [ヘルプ](ja/getting_started_getting_help.md)
19 19
20* [破壊的ãªå¤‰æ›´](ja/breaking_changes.md) 20* [破壊的ãªå¤‰æ›´](ja/breaking_changes.md)
21 * [プルリクエストã«ãƒ•ラグãŒä»˜ã‘られãŸ](ja/breaking_changes_instructions.md)
21 * [2019年8月30日](ja/ChangeLog/20190830.md) 22 * [2019年8月30日](ja/ChangeLog/20190830.md)
22 23
23* [FAQ](ja/faq.md) 24* [FAQ](ja/faq.md)
24 * [一般的ãªFAQ](ja/faq_general.md) 25 * [一般的㪠FAQ](ja/faq_general.md)
25 * [QMKã®ãƒ“ルド/コンパイル](ja/faq_build.md) 26 * [QMK ã®ãƒ“ルド/コンパイル](ja/faq_build.md)
26 * [QMKã®ãƒ‡ãƒãƒƒã‚°/トラブルシューティング](ja/faq_debug.md) 27 * [QMK ã®ãƒ‡ãƒãƒƒã‚°/トラブルシューティング](ja/faq_debug.md)
27 * [キーマップ](ja/faq_keymap.md) 28 * [キーマップ](ja/faq_keymap.md)
28 * [Zadigを使ã£ãŸãƒ‰ãƒ©ã‚¤ãƒã®ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«](ja/driver_installation_zadig.md) 29 * [Zadig を使ã£ãŸãƒ‰ãƒ©ã‚¤ãƒã®ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«](ja/driver_installation_zadig.md)
29 30
30* 詳細ãªã‚¬ã‚¤ãƒ‰ 31* 詳細ãªã‚¬ã‚¤ãƒ‰
31 * [ビルドツールã®ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«](ja/getting_started_build_tools.md) 32 * [ビルドツールã®ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«](ja/getting_started_build_tools.md)
32 * [Vagrantã®ã‚¬ã‚¤ãƒ‰](ja/getting_started_vagrant.md) 33 * [Vagrant ã®ã‚¬ã‚¤ãƒ‰](ja/getting_started_vagrant.md)
33 * [ビルド/コンパイルã®èª¬æ˜Ž](ja/getting_started_make_guide.md) 34 * [ビルド/コンパイルã®èª¬æ˜Ž](ja/getting_started_make_guide.md)
34 * [ファームウェアã®ãƒ•ラッシュ](ja/flashing.md) 35 * [ファームウェアã®ãƒ•ラッシュ](ja/flashing.md)
35 * [機能ã®ã‚«ã‚¹ã‚¿ãƒžã‚¤ã‚º](ja/custom_quantum_functions.md) 36 * [機能ã®ã‚«ã‚¹ã‚¿ãƒžã‚¤ã‚º](ja/custom_quantum_functions.md)
36 * [ã‚­ãƒ¼ãƒžãƒƒãƒ—ã®æ¦‚è¦](ja/keymap.md) 37 * [ã‚­ãƒ¼ãƒžãƒƒãƒ—ã®æ¦‚è¦](ja/keymap.md)
37 38
38* [ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢](ja/hardware.md) 39* [ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢](ja/hardware.md)
40 * [äº’æ›æ€§ã®ã‚るマイクロコントローラ](ja/compatible_microcontrollers.md)
39 * [AVR プロセッサ](ja/hardware_avr.md) 41 * [AVR プロセッサ](ja/hardware_avr.md)
40 * [ドライãƒ](ja/hardware_drivers.md) 42 * [ドライãƒ](ja/hardware_drivers.md)
41 43
@@ -66,7 +68,7 @@
66 * [ブートマジック](ja/feature_bootmagic.md) 68 * [ブートマジック](ja/feature_bootmagic.md)
67 * [コンボ](ja/feature_combo.md) 69 * [コンボ](ja/feature_combo.md)
68 * [コマンド](ja/feature_command.md) 70 * [コマンド](ja/feature_command.md)
69 * [Debounce API](ja/feature_debounce_type.md) 71 * [デãƒã‚¦ãƒ³ã‚¹ API](ja/feature_debounce_type.md)
70 * [DIP スイッãƒ](ja/feature_dip_switch.md) 72 * [DIP スイッãƒ](ja/feature_dip_switch.md)
71 * [動的マクロ](ja/feature_dynamic_macros.md) 73 * [動的マクロ](ja/feature_dynamic_macros.md)
72 * [エンコーダ](ja/feature_encoders.md) 74 * [エンコーダ](ja/feature_encoders.md)
@@ -90,27 +92,31 @@
90 * [Stenography](ja/feature_stenography.md) 92 * [Stenography](ja/feature_stenography.md)
91 * [Swap Hands](ja/feature_swap_hands.md) 93 * [Swap Hands](ja/feature_swap_hands.md)
92 * [タップ ダンス](ja/feature_tap_dance.md) 94 * [タップ ダンス](ja/feature_tap_dance.md)
93 * [Terminal](ja/feature_terminal.md) 95 * [ターミナル](ja/feature_terminal.md)
94 * [感熱å¼ãƒ—リンタ](ja/feature_thermal_printer.md) 96 * [感熱å¼ãƒ—リンタ](ja/feature_thermal_printer.md)
95 * [ユニコード](ja/feature_unicode.md) 97 * [ユニコード](ja/feature_unicode.md)
96 * [Userspace](ja/feature_userspace.md) 98 * [ユーザスペース](ja/feature_userspace.md)
97 * [Velocikey](ja/feature_velocikey.md) 99 * [Velocikey](ja/feature_velocikey.md)
98 100
99* メーカーãŠã‚ˆã³ãƒ¢ãƒƒãƒ€ãƒ¼ã®ãŸã‚ã« 101* メーカーãŠã‚ˆã³ãƒ¢ãƒƒãƒ€ãƒ¼ã®ãŸã‚ã«
100 * [Hand Wiring Guide](ja/hand_wire.md) 102 * [Hand Wiring ガイド](ja/hand_wire.md)
101 * [ISP Flashing Guide](ja/isp_flashing_guide.md) 103 * [ISP 書ãè¾¼ã¿ã‚¬ã‚¤ãƒ‰](ja/isp_flashing_guide.md)
102 * [ARM デãƒãƒƒã‚° ガイド](ja/arm_debugging.md) 104 * [ARM デãƒãƒƒã‚° ガイド](ja/arm_debugging.md)
105 * [ADC ドライãƒ](ja/adc_driver.md)
103 * [I2C ドライãƒ](ja/i2c_driver.md) 106 * [I2C ドライãƒ](ja/i2c_driver.md)
107 * [WS2812 ドライãƒ](ja/ws2812_driver.md)
108 * [EEPROM ドライãƒ](ja/eeprom_driver.md)
104 * [GPIO コントロール](ja/internals_gpio_control.md) 109 * [GPIO コントロール](ja/internals_gpio_control.md)
110 * [カスタムマトリックス](ja/custom_matrix.md)
105 * [Proton C è¦ç´„](ja/proton_c_conversion.md) 111 * [Proton C è¦ç´„](ja/proton_c_conversion.md)
106 112
107* より深ã知るãŸã‚ã« 113* より深ã知るãŸã‚ã«
108 * [キーボードãŒã©ã®ã‚ˆã†ã«å‹•作ã™ã‚‹ã‹](ja/how_keyboards_work.md) 114 * [キーボードãŒã©ã®ã‚ˆã†ã«å‹•作ã™ã‚‹ã‹](ja/how_keyboards_work.md)
109 * [QMKã®ç†è§£](ja/understanding_qmk.md) 115 * [QMK ã®ç†è§£](ja/understanding_qmk.md)
110 116
111* ä»–ã®è©±é¡Œ 117* ä»–ã®è©±é¡Œ
112 * [Eclipseã§QMKを使用](ja/other_eclipse.md) 118 * [Eclipse ã§ QMK を使用](ja/other_eclipse.md)
113 * [VSCodeã§QMKを使用](ja/other_vscode.md) 119 * [VSCode ã§ QMK を使用](ja/other_vscode.md)
114 * [サãƒãƒ¼ãƒˆ](ja/support.md) 120 * [サãƒãƒ¼ãƒˆ](ja/support.md)
115 * [翻訳を追加ã™ã‚‹æ–¹æ³•](ja/translating.md) 121 * [翻訳を追加ã™ã‚‹æ–¹æ³•](ja/translating.md)
116 122
diff --git a/docs/ja/arm_debugging.md b/docs/ja/arm_debugging.md
index 6267d0f8a..9a6cd515a 100644
--- a/docs/ja/arm_debugging.md
+++ b/docs/ja/arm_debugging.md
@@ -64,13 +64,13 @@ Eclipse ã« QMK をビルドã—よã†ã¨ã™ã‚‹ãƒ‡ãƒã‚¤ã‚¹ã‚’æ•™ãˆã‚‹å¿…è¦ãŒã
64 64
65## ビルド 65## ビルド
66 66
67å…¨ã¦æ­£ã—ãセットアップã§ãã¦ã„れã°ã€ãƒãƒ³ãƒžãƒ¼ãƒœã‚¿ãƒ³ã‚’押ã™ã¨ãƒ•ァームウェアãŒãƒ“ルドã•れã€.binファイルãŒå‡ºåŠ›ã•れるã¯ãšã§ã™ã€‚ 67å…¨ã¦æ­£ã—ãセットアップã§ãã¦ã„れã°ã€ãƒãƒ³ãƒžãƒ¼ãƒœã‚¿ãƒ³ã‚’押ã™ã¨ãƒ•ァームウェアãŒãƒ“ルドã•れã€.bin ファイルãŒå‡ºåŠ›ã•れるã¯ãšã§ã™ã€‚
68 68
69## デãƒãƒƒã‚° 69## デãƒãƒƒã‚°
70 70
71### デãƒãƒƒã‚¬ã®æŽ¥ç¶š 71### デãƒãƒƒã‚¬ã®æŽ¥ç¶š
72 72
73ARM MCU ã¯ã€ã‚¯ãƒ­ãƒƒã‚¯ä¿¡å·(SWCLK) ã¨ãƒ‡ãƒ¼ã‚¿ä¿¡å·(SWDIO) ã§æ§‹æˆã•れる Single Wire Debug (SWD) プロトコルを使ã„ã¾ã™ã€‚MCUã‚’ å®Œå…¨ã«æ“作ã™ã‚‹ã«ã¯ã€ã“ã®2本ã®ãƒ¯ã‚¤ãƒ¤ã¨ã‚°ãƒ©ã‚¦ãƒ³ãƒ‰ã‚’接続ã™ã‚‹ã ã‘ã§å分ã§ã™ã€‚ã“ã“ã§ã¯ã€ã‚­ãƒ¼ãƒœãƒ¼ãƒ‰ã¯ USB を介ã—ã¦é›»åŠ›ãŒä¾›çµ¦ã•ã‚Œã‚‹ã¨æƒ³å®šã—ã¦ã„ã¾ã™ã€‚手動ã§ãƒªã‚»ãƒƒãƒˆãƒœã‚¿ãƒ³ã‚’使ãˆã‚‹ãŸã‚ã€RESET ä¿¡å·ã¯å¿…è¦ã‚りã¾ã›ã‚“。より高度ãªã‚»ãƒƒãƒˆã‚¢ãƒƒãƒ—ã®ãŸã‚ã« printf 㨠scanf をホストã«éžåŒæœŸã«ãƒ‘イプã™ã‚‹ SWO ä¿¡å·ã‚’使用ã§ãã¾ã™ãŒã€ç§ãŸã¡ã®ã‚»ãƒƒãƒˆã‚¢ãƒƒãƒ—ã§ã¯ç„¡è¦–ã—ã¾ã™ã€‚ 73ARM MCU ã¯ã€ã‚¯ãƒ­ãƒƒã‚¯ä¿¡å·(SWCLK) ã¨ãƒ‡ãƒ¼ã‚¿ä¿¡å·(SWDIO) ã§æ§‹æˆã•れる Single Wire Debug (SWD) プロトコルを使ã„ã¾ã™ã€‚MCU ã‚’ å®Œå…¨ã«æ“作ã™ã‚‹ã«ã¯ã€ã“ã®2本ã®ãƒ¯ã‚¤ãƒ¤ã¨ã‚°ãƒ©ã‚¦ãƒ³ãƒ‰ã‚’接続ã™ã‚‹ã ã‘ã§å分ã§ã™ã€‚ã“ã“ã§ã¯ã€ã‚­ãƒ¼ãƒœãƒ¼ãƒ‰ã¯ USB を介ã—ã¦é›»åŠ›ãŒä¾›çµ¦ã•ã‚Œã‚‹ã¨æƒ³å®šã—ã¦ã„ã¾ã™ã€‚手動ã§ãƒªã‚»ãƒƒãƒˆãƒœã‚¿ãƒ³ã‚’使ãˆã‚‹ãŸã‚ã€RESET ä¿¡å·ã¯å¿…è¦ã‚りã¾ã›ã‚“。より高度ãªã‚»ãƒƒãƒˆã‚¢ãƒƒãƒ—ã®ãŸã‚ã« printf 㨠scanf をホストã«éžåŒæœŸã«ãƒ‘イプã™ã‚‹ SWO ä¿¡å·ã‚’使用ã§ãã¾ã™ãŒã€ç§ãŸã¡ã®ã‚»ãƒƒãƒˆã‚¢ãƒƒãƒ—ã§ã¯ç„¡è¦–ã—ã¾ã™ã€‚
74 74
75注æ„: SWCLK 㨠SWDIO ピンãŒã‚­ãƒ¼ãƒœãƒ¼ãƒ‰ã®ãƒžãƒˆãƒªãƒƒã‚¯ã‚¹ã§ä½¿ã‚れã¦ã„ãªã„ã“ã¨ã‚’確èªã—ã¦ãã ã•ã„。もã—使ã‚れã¦ã„ã‚‹å ´åˆã¯ã€ä¸€æ™‚çš„ã«ä»–ã®ãƒ”ンã«åˆ‡ã‚Šæ›¿ãˆã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ 75注æ„: SWCLK 㨠SWDIO ピンãŒã‚­ãƒ¼ãƒœãƒ¼ãƒ‰ã®ãƒžãƒˆãƒªãƒƒã‚¯ã‚¹ã§ä½¿ã‚れã¦ã„ãªã„ã“ã¨ã‚’確èªã—ã¦ãã ã•ã„。もã—使ã‚れã¦ã„ã‚‹å ´åˆã¯ã€ä¸€æ™‚çš„ã«ä»–ã®ãƒ”ンã«åˆ‡ã‚Šæ›¿ãˆã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚
76 76
diff --git a/docs/ja/config_options.md b/docs/ja/config_options.md
index 6cdbd2cf1..a1d745438 100644
--- a/docs/ja/config_options.md
+++ b/docs/ja/config_options.md
@@ -1,8 +1,8 @@
1# QMK ã®è¨­å®š 1# QMK ã®è¨­å®š
2 2
3<!--- 3<!---
4 original document: 0f43c2652:docs/config_options.md 4 original document: 9ff61601e:docs/config_options.md
5 git diff 0f43c2652 HEAD -- docs/config_options.md | cat 5 git diff 9ff61601e HEAD -- docs/config_options.md | cat
6--> 6-->
7 7
8QMK ã¯ã»ã¼ç„¡åˆ¶é™ã«è¨­å®šå¯èƒ½ã§ã™ã€‚å¯èƒ½ãªã¨ã“ã‚ã¯ã„ã‹ãªã‚‹ã¨ã“ã‚ã§ã‚‚ã€ã‚„りã™ãŽãªç¨‹ã€ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒã‚³ãƒ¼ãƒ‰ã‚µã‚¤ã‚ºã‚’犠牲ã«ã—ã¦ã§ã‚‚彼らã®ã‚­ãƒ¼ãƒœãƒ¼ãƒ‰ã‚’カスタマイズをã™ã‚‹ã“ã¨ã‚’許ã—ã¦ã„ã¾ã™ã€‚ãŸã ã—ã€ã“ã®ãƒ¬ãƒ™ãƒ«ã®æŸ”軟性ã«ã‚ˆã‚Šè¨­å®šãŒå›°é›£ã«ãªã‚Šã¾ã™ã€‚ 8QMK ã¯ã»ã¼ç„¡åˆ¶é™ã«è¨­å®šå¯èƒ½ã§ã™ã€‚å¯èƒ½ãªã¨ã“ã‚ã¯ã„ã‹ãªã‚‹ã¨ã“ã‚ã§ã‚‚ã€ã‚„りã™ãŽãªç¨‹ã€ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒã‚³ãƒ¼ãƒ‰ã‚µã‚¤ã‚ºã‚’犠牲ã«ã—ã¦ã§ã‚‚彼らã®ã‚­ãƒ¼ãƒœãƒ¼ãƒ‰ã‚’カスタマイズをã™ã‚‹ã“ã¨ã‚’許ã—ã¦ã„ã¾ã™ã€‚ãŸã ã—ã€ã“ã®ãƒ¬ãƒ™ãƒ«ã®æŸ”軟性ã«ã‚ˆã‚Šè¨­å®šãŒå›°é›£ã«ãªã‚Šã¾ã™ã€‚
@@ -154,6 +154,8 @@ QMK ã§ã®å…¨ã¦ã®åˆ©ç”¨å¯èƒ½ãªè¨­å®šã«ã¯ãƒ‡ãƒ•ォルトãŒã‚りã¾ã™ã€‚ã
154 * タップã•れãŸç›´å¾Œã«ã€ãƒ‡ãƒ¥ã‚¢ãƒ«ãƒ­ãƒ¼ãƒ«ã‚­ãƒ¼ã‚’修飾å­ã¨ã—ã¦ä½¿ç”¨ã§ãるよã†ã«ã—ã¾ã™ 154 * タップã•れãŸç›´å¾Œã«ã€ãƒ‡ãƒ¥ã‚¢ãƒ«ãƒ­ãƒ¼ãƒ«ã‚­ãƒ¼ã‚’修飾å­ã¨ã—ã¦ä½¿ç”¨ã§ãるよã†ã«ã—ã¾ã™
155 * [Hold after tap](ja/feature_advanced_keycodes.md#tapping-force-hold)を見ã¦ãã ã•ã„ 155 * [Hold after tap](ja/feature_advanced_keycodes.md#tapping-force-hold)を見ã¦ãã ã•ã„
156 * タップトグル機能を無効ã«ã—ã¾ã™ (`TT` ã‚ã‚‹ã„㯠One Shot Tap Toggle) 156 * タップトグル機能を無効ã«ã—ã¾ã™ (`TT` ã‚ã‚‹ã„㯠One Shot Tap Toggle)
157* `#define TAPPING_FORCE_HOLD_PER_KEY`
158 * キーã”ã¨ã® `TAPPING_FORCE_HOLD` 設定処ç†ã‚’有効ã«ã—ã¾ã™ã€‚
157* `#define LEADER_TIMEOUT 300` 159* `#define LEADER_TIMEOUT 300`
158 * リーダーキーãŒã‚¿ã‚¤ãƒ ã‚¢ã‚¦ãƒˆã™ã‚‹ã¾ã§ã®æ™‚é–“ 160 * リーダーキーãŒã‚¿ã‚¤ãƒ ã‚¢ã‚¦ãƒˆã™ã‚‹ã¾ã§ã®æ™‚é–“
159 * タイムアウトã™ã‚‹å‰ã«ã‚·ãƒ¼ã‚±ãƒ³ã‚¹ã‚’終了ã§ããªã„å ´åˆã¯ã€ã‚¿ã‚¤ãƒ ã‚¢ã‚¦ãƒˆã®è¨­å®šã‚’増やã™å¿…è¦ãŒã‚ã‚‹ã‹ã‚‚ã—れã¾ã›ã‚“。ã‚ã‚‹ã„ã¯ã€`LEADER_PER_KEY_TIMING` オプションを有効ã«ã™ã‚‹ã¨è‰¯ã„ã§ã—ょã†ã€‚ã“れã¯å„キーãŒã‚¿ãƒƒãƒ—ã•れãŸå¾Œã§ã‚¿ã‚¤ãƒ ã‚¢ã‚¦ãƒˆã‚’å†è¨­å®šã—ã¾ã™ã€‚ 161 * タイムアウトã™ã‚‹å‰ã«ã‚·ãƒ¼ã‚±ãƒ³ã‚¹ã‚’終了ã§ããªã„å ´åˆã¯ã€ã‚¿ã‚¤ãƒ ã‚¢ã‚¦ãƒˆã®è¨­å®šã‚’増やã™å¿…è¦ãŒã‚ã‚‹ã‹ã‚‚ã—れã¾ã›ã‚“。ã‚ã‚‹ã„ã¯ã€`LEADER_PER_KEY_TIMING` オプションを有効ã«ã™ã‚‹ã¨è‰¯ã„ã§ã—ょã†ã€‚ã“れã¯å„キーãŒã‚¿ãƒƒãƒ—ã•れãŸå¾Œã§ã‚¿ã‚¤ãƒ ã‚¢ã‚¦ãƒˆã‚’å†è¨­å®šã—ã¾ã™ã€‚
@@ -187,7 +189,7 @@ QMK ã§ã®å…¨ã¦ã®åˆ©ç”¨å¯èƒ½ãªè¨­å®šã«ã¯ãƒ‡ãƒ•ォルトãŒã‚りã¾ã™ã€‚ã
187* `#define RGBLIGHT_SPLIT` 189* `#define RGBLIGHT_SPLIT`
188 * 分割キーボードã®å·¦åŠåˆ†ã® RGB LED ã®å‡ºåŠ›ã‚’å³åŠåˆ†ã® RGB LED ã®å…¥åŠ›ã«ã¤ãªã’ã‚‹ã‹ã‚りã«ã€ãれãžã‚Œã®å´ã§å€‹åˆ¥ã«ã‚³ãƒ³ãƒˆãƒ­ãƒ¼ãƒ©ã®å‡ºåŠ›ãƒ”ãƒ³ãŒç›´æŽ¥ RGB LED ã®å…¥åŠ›ã«ç¹‹ãŒã£ã¦ã„ã‚‹ã¨ãã¯ã€ã“ã®å®šç¾©ãŒå¿…è¦ã§ã™ã€‚ 190 * 分割キーボードã®å·¦åŠåˆ†ã® RGB LED ã®å‡ºåŠ›ã‚’å³åŠåˆ†ã® RGB LED ã®å…¥åŠ›ã«ã¤ãªã’ã‚‹ã‹ã‚りã«ã€ãれãžã‚Œã®å´ã§å€‹åˆ¥ã«ã‚³ãƒ³ãƒˆãƒ­ãƒ¼ãƒ©ã®å‡ºåŠ›ãƒ”ãƒ³ãŒç›´æŽ¥ RGB LED ã®å…¥åŠ›ã«ç¹‹ãŒã£ã¦ã„ã‚‹ã¨ãã¯ã€ã“ã®å®šç¾©ãŒå¿…è¦ã§ã™ã€‚
189* `#define RGBLED_SPLIT { 6, 6 }` 191* `#define RGBLED_SPLIT { 6, 6 }`
190 * 分割キーボードã®å„åŠåˆ†ã® `RGB_DI_PIN` ã«ç›´æŽ¥é…ç·šã•れã¦ã„る接続ã•れã¦ã„ã‚‹LEDã®æ•° 192 * 分割キーボードã®å„åŠåˆ†ã® `RGB_DI_PIN` ã«ç›´æŽ¥é…ç·šã•れã¦ã„る接続ã•れã¦ã„ã‚‹ LED ã®æ•°
191 * 最åˆã®å€¤ã¯å·¦åŠåˆ†ã® LED ã®æ•°ã‚’示ã—ã€2番目ã®å€¤ã¯å³åŠåˆ†ã§ã™ã€‚ 193 * 最åˆã®å€¤ã¯å·¦åŠåˆ†ã® LED ã®æ•°ã‚’示ã—ã€2番目ã®å€¤ã¯å³åŠåˆ†ã§ã™ã€‚
192 * RGBLED_SPLIT ãŒå®šç¾©ã•れã¦ã„ã‚‹å ´åˆã€RGBLIGHT_SPLIT ã¯æš—黙的ã«å®šç¾©ã•れã¾ã™ã€‚ 194 * RGBLED_SPLIT ãŒå®šç¾©ã•れã¦ã„ã‚‹å ´åˆã€RGBLIGHT_SPLIT ã¯æš—黙的ã«å®šç¾©ã•れã¾ã™ã€‚
193* `#define RGBLIGHT_HUE_STEP 12` 195* `#define RGBLIGHT_HUE_STEP 12`
@@ -216,7 +218,7 @@ QMK ã§ã®å…¨ã¦ã®åˆ©ç”¨å¯èƒ½ãªè¨­å®šã«ã¯ãƒ‡ãƒ•ォルトãŒã‚りã¾ã™ã€‚ã
216 218
217### å·¦å³ã®è¨­å®š 219### å·¦å³ã®è¨­å®š
218 220
219一ã¤è¦šãˆã¦ãŠã‹ãªã‘れã°ãªã‚‰ãªã„ã“ã¨ã¯ã€USB ãƒãƒ¼ãƒˆãŒæŽ¥ç¶šã•れã¦ã„ã‚‹å´ãŒå¸¸ã«ãƒžã‚¹ã‚¿ãƒ¼å´ã§ã‚ã‚‹ã¨ã„ã†ã“ã¨ã§ã™ã€‚USB ã«æŽ¥ç¶šã•れã¦ã„ãªã„å´ã¯ã‚¹ãƒ¬ãƒ¼ãƒ–ã§ã™ã€‚ 2211ã¤è¦šãˆã¦ãŠã‹ãªã‘れã°ãªã‚‰ãªã„ã“ã¨ã¯ã€USB ãƒãƒ¼ãƒˆãŒæŽ¥ç¶šã•れã¦ã„ã‚‹å´ãŒå¸¸ã«ãƒžã‚¹ã‚¿ãƒ¼å´ã§ã‚ã‚‹ã¨ã„ã†ã“ã¨ã§ã™ã€‚USB ã«æŽ¥ç¶šã•れã¦ã„ãªã„å´ã¯ã‚¹ãƒ¬ãƒ¼ãƒ–ã§ã™ã€‚
220 222
221分割キーボードã®å·¦å³ã‚’設定ã™ã‚‹ã«ã¯ã€å¹¾ã¤ã‹ã®ç•°ãªã‚‹æ–¹æ³•ãŒã‚りã¾ã™ (優先度ã®é †ã«ãƒªã‚¹ãƒˆã•れã¦ã„ã¾ã™): 223分割キーボードã®å·¦å³ã‚’設定ã™ã‚‹ã«ã¯ã€å¹¾ã¤ã‹ã®ç•°ãªã‚‹æ–¹æ³•ãŒã‚りã¾ã™ (優先度ã®é †ã«ãƒªã‚¹ãƒˆã•れã¦ã„ã¾ã™):
222 224
@@ -260,7 +262,7 @@ QMK ã§ã®å…¨ã¦ã®åˆ©ç”¨å¯èƒ½ãªè¨­å®šã«ã¯ãƒ‡ãƒ•ォルトãŒã‚りã¾ã™ã€‚ã
260* `#define SELECT_SOFT_SERIAL_SPEED <speed>` (デフォルトã®é€Ÿåº¦ã¯1ã§ã™) 262* `#define SELECT_SOFT_SERIAL_SPEED <speed>` (デフォルトã®é€Ÿåº¦ã¯1ã§ã™)
261 * serial é€šä¿¡ã‚’ä½¿ã†æ™‚ã®ãƒ—ロトコルã®é€Ÿåº¦ã‚’設定ã—ã¾ã™ã€‚ 263 * serial é€šä¿¡ã‚’ä½¿ã†æ™‚ã®ãƒ—ロトコルã®é€Ÿåº¦ã‚’設定ã—ã¾ã™ã€‚
262 * 速度: 264 * 速度:
263 * 0: ç´„189kbps (実験目的ã®ã¿) 265 * 0: ç´„ 189kbps (実験目的ã®ã¿)
264 * 1: 約 137kbps (デフォルト) 266 * 1: 約 137kbps (デフォルト)
265 * 2: ç´„ 75kbps 267 * 2: ç´„ 75kbps
266 * 3: ç´„ 39kbps 268 * 3: ç´„ 39kbps
diff --git a/docs/ja/newbs_building_firmware_configurator.md b/docs/ja/newbs_building_firmware_configurator.md
index ae3d3cf28..89c37a1e6 100644
--- a/docs/ja/newbs_building_firmware_configurator.md
+++ b/docs/ja/newbs_building_firmware_configurator.md
@@ -63,7 +63,7 @@ QMK Configurator 㯠Chrome/Firefox ã§æœ€é©ã«å‹•作ã—ã¾ã™ã€‚
63 63
642分割ã®å³ã‚·ãƒ•ト: 両方ã¨ã‚‚å³ã‚·ãƒ•トã§åŸ‹ã‚ã¾ã™ã€‚ 642分割ã®å³ã‚·ãƒ•ト: 両方ã¨ã‚‚å³ã‚·ãƒ•トã§åŸ‹ã‚ã¾ã™ã€‚
65 65
66左シフトã¨ISOサãƒãƒ¼ãƒˆç”¨ã«1ã¤ãšã¤: 両方ã¨ã‚‚左シフトã§åŸ‹ã‚ã¾ã™ã€‚ 66左シフト㨠ISO サãƒãƒ¼ãƒˆç”¨ã«1ã¤ãšã¤: 両方ã¨ã‚‚左シフトã§åŸ‹ã‚ã¾ã™ã€‚
67 67
685分割ã ãŒ4キーã®ã¿: 以å‰ã‚„ã£ãŸã“ã¨ãŒã‚る人を推測ã—ã¦ç¢ºèªã™ã‚‹ã‹å°‹ã­ã¦ãã ã•ã„。 685分割ã ãŒ4キーã®ã¿: 以å‰ã‚„ã£ãŸã“ã¨ãŒã‚る人を推測ã—ã¦ç¢ºèªã™ã‚‹ã‹å°‹ã­ã¦ãã ã•ã„。
69 69
@@ -73,7 +73,7 @@ QMK Configurator 㯠Chrome/Firefox ã§æœ€é©ã«å‹•作ã—ã¾ã™ã€‚
73 73
74後日ã€`Import Keymap` ボタンを押ã™ã“ã¨ã§ã€ã“ã® .json ファイルをロードã§ãã¾ã™ã€‚ 74後日ã€`Import Keymap` ボタンを押ã™ã“ã¨ã§ã€ã“ã® .json ファイルをロードã§ãã¾ã™ã€‚
75 75
76!> **注æ„:** ã“ã®ãƒ•ァイルã¯ã€kbfirmware.com ã¾ãŸã¯ãã®ä»–ã®ãƒ„ールã«ä½¿ç”¨ã•れる .jsonファイルã¨åŒã˜å½¢å¼ã§ã¯ã‚りã¾ã›ã‚“。ã“れらã®ãƒ„ールã«ã“れを使用ã—ãŸã‚Šã€QMK Configurator ã§ã“れらã®ãƒ„ール㮠.json を使用ã—よã†ã¨ã™ã‚‹ã¨ã€ã‚­ãƒ¼ãƒœãƒ¼ãƒ‰ãŒ **爆発** ã™ã‚‹å¯èƒ½æ€§ãŒã‚りã¾ã™ã€‚ 76!> **注æ„:** ã“ã®ãƒ•ァイルã¯ã€kbfirmware.com ã¾ãŸã¯ãã®ä»–ã®ãƒ„ールã«ä½¿ç”¨ã•れる .json ファイルã¨åŒã˜å½¢å¼ã§ã¯ã‚りã¾ã›ã‚“。ã“れらã®ãƒ„ールã«ã“れを使用ã—ãŸã‚Šã€QMK Configurator ã§ã“れらã®ãƒ„ール㮠.json を使用ã—よã†ã¨ã™ã‚‹ã¨ã€ã‚­ãƒ¼ãƒœãƒ¼ãƒ‰ãŒ **爆発** ã™ã‚‹å¯èƒ½æ€§ãŒã‚りã¾ã™ã€‚
77 77
78## ファームウェアファイルを生æˆã™ã‚‹ 78## ファームウェアファイルを生æˆã™ã‚‹
79 79
diff --git a/docs/ja/newbs_flashing.md b/docs/ja/newbs_flashing.md
index f2ca914ee..a407066a5 100644
--- a/docs/ja/newbs_flashing.md
+++ b/docs/ja/newbs_flashing.md
@@ -13,7 +13,7 @@
13ã‚­ãƒ¼ãƒœãƒ¼ãƒ‰ã«æ›¸ã込む最も簡å˜ãªæ–¹æ³•㯠[QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) を使ã†ã“ã¨ã§ã™ã€‚ 13ã‚­ãƒ¼ãƒœãƒ¼ãƒ‰ã«æ›¸ã込む最も簡å˜ãªæ–¹æ³•㯠[QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) を使ã†ã“ã¨ã§ã™ã€‚
14 14
15ãŸã ã—ã€QMK Toolbox ã¯ã€ç¾åœ¨ã¯ Windows 㨠macOS ã§ã—ã‹ä½¿ãˆã¾ã›ã‚“。 15ãŸã ã—ã€QMK Toolbox ã¯ã€ç¾åœ¨ã¯ Windows 㨠macOS ã§ã—ã‹ä½¿ãˆã¾ã›ã‚“。
16Linuxを使用ã—ã¦ã„ã‚‹å ´åˆ(ãŠã‚ˆã³ã€ã‚³ãƒžãƒ³ãƒ‰ãƒ©ã‚¤ãƒ³ã§ãƒ•ァームウェアを書ãè¾¼ã¿ãŸã„å ´åˆ)ã¯ã€ä¸‹ã®æ–¹ã§æ¦‚説ã™ã‚‹[方法](ja/newbs_flashing.md#flash-your-keyboard-from-the-command-line)ã§è¡Œãªã†å¿…è¦ãŒã‚りã¾ã™ã€‚ 16Linux を使用ã—ã¦ã„ã‚‹å ´åˆ(ãŠã‚ˆã³ã€ã‚³ãƒžãƒ³ãƒ‰ãƒ©ã‚¤ãƒ³ã§ãƒ•ァームウェアを書ãè¾¼ã¿ãŸã„å ´åˆ)ã¯ã€ä¸‹ã®æ–¹ã§æ¦‚説ã™ã‚‹[方法](ja/newbs_flashing.md#flash-your-keyboard-from-the-command-line)ã§è¡Œãªã†å¿…è¦ãŒã‚りã¾ã™ã€‚
17 17
18### QMK Toolbox ã«ãƒ•ァイルをロードã™ã‚‹ 18### QMK Toolbox ã«ãƒ•ァイルをロードã™ã‚‹
19 19
@@ -65,7 +65,7 @@ planck_rev5_default.hex
65* 基æ¿(PCB)ã«ä»˜ã‘られã¦ã„る物ç†çš„㪠`RESET` ボタンを押㙠65* 基æ¿(PCB)ã«ä»˜ã‘られã¦ã„る物ç†çš„㪠`RESET` ボタンを押ã™
66* PCB 上㮠`BOOT0` ã‹ `RESET` ã®ãƒ©ãƒ™ãƒ«ã®ä»˜ã„ãŸãƒ˜ãƒƒãƒ€ãƒ”ンを探ã—ã€PCB 接続中ã«ãれらを互ã„ã«ã‚·ãƒ§ãƒ¼ãƒˆã™ã‚‹ 66* PCB 上㮠`BOOT0` ã‹ `RESET` ã®ãƒ©ãƒ™ãƒ«ã®ä»˜ã„ãŸãƒ˜ãƒƒãƒ€ãƒ”ンを探ã—ã€PCB 接続中ã«ãれらを互ã„ã«ã‚·ãƒ§ãƒ¼ãƒˆã™ã‚‹
67 67
68ã†ã¾ãã„ã‘ã°ã€QMK Toolboxã«æ¬¡ã®ã‚ˆã†ãªãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ãŒè¡¨ç¤ºã•れã¾ã™ã€‚ 68ã†ã¾ãã„ã‘ã°ã€QMK Toolbox ã«æ¬¡ã®ã‚ˆã†ãªãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ãŒè¡¨ç¤ºã•れã¾ã™ã€‚
69 69
70``` 70```
71*** Clueboard - Clueboard 66% HotSwap disconnected -- 0xC1ED:0x2390 71*** Clueboard - Clueboard 66% HotSwap disconnected -- 0xC1ED:0x2390
@@ -121,7 +121,7 @@ QMK Toolbox ã® `Flash` ボタンをクリックã—ã¾ã™ã€‚
121ã“ã®å ´åˆã€ã‚ãªãŸã¯æ˜Žç¤ºçš„ã«ãƒ–ートローダを指定ã™ã‚‹æ–¹æ³•を使ã‚ãªã‘れã°ãªã‚Šã¾ã›ã‚“。 121ã“ã®å ´åˆã€ã‚ãªãŸã¯æ˜Žç¤ºçš„ã«ãƒ–ートローダを指定ã™ã‚‹æ–¹æ³•を使ã‚ãªã‘れã°ãªã‚Šã¾ã›ã‚“。
122 122
123ブートローダã¯ä¸»ã« 5 種類ã®ã‚‚ã®ãŒä½¿ã‚れã¦ã„ã¾ã™ã€‚ 123ブートローダã¯ä¸»ã« 5 種類ã®ã‚‚ã®ãŒä½¿ã‚れã¦ã„ã¾ã™ã€‚
124Pro Micro ã¨ãã®ã‚¯ãƒ­ãƒ¼ãƒ³ã¯ Caterina ã‚’ã€Teensy 㯠HalfKay ã‚’ã€OLKBã® AVR ボード㯠QMK-DFU ã‚’ã€ãã®ä»–ã® ATmega32U4 ボード㯠DFU ã‚’ã€ãã—ã¦å¤šãã® ARM ボード㯠ARM DFU を使ã„ã¾ã™ã€‚ 124Pro Micro ã¨ãã®ã‚¯ãƒ­ãƒ¼ãƒ³ã¯ Caterina ã‚’ã€Teensy 㯠HalfKay ã‚’ã€OLKB ã® AVR ボード㯠QMK-DFU ã‚’ã€ãã®ä»–ã® ATmega32U4 ボード㯠DFU ã‚’ã€ãã—ã¦å¤šãã® ARM ボード㯠ARM DFU を使ã„ã¾ã™ã€‚
125 125
126より詳ã—ã„ãƒ–ãƒ¼ãƒˆãƒ­ãƒ¼ãƒ€ã®æƒ…å ±ã¯ã€[Flashing Instructions and Bootloader Information](ja/flashing.md) ã«ã‚りã¾ã™ã€‚ 126より詳ã—ã„ãƒ–ãƒ¼ãƒˆãƒ­ãƒ¼ãƒ€ã®æƒ…å ±ã¯ã€[Flashing Instructions and Bootloader Information](ja/flashing.md) ã«ã‚りã¾ã™ã€‚
127 127
@@ -178,10 +178,10 @@ Checking file size of planck_rev5_xyverz.hex
178 178
179ファームウェアを DFU デãƒã‚¤ã‚¹ã«æ›¸ã込むãŸã‚ã«ä½¿ç”¨ã§ãã‚‹ DFU コマンドãŒã„ãã¤ã‹ã‚りã¾ã™ã€‚ 179ファームウェアを DFU デãƒã‚¤ã‚¹ã«æ›¸ã込むãŸã‚ã«ä½¿ç”¨ã§ãã‚‹ DFU コマンドãŒã„ãã¤ã‹ã‚りã¾ã™ã€‚
180 180
181* `:dfu` - ã“れãŒé€šå¸¸ã®ã‚ªãƒ—ションã§ã€DFUデãƒã‚¤ã‚¹ãŒä½¿ç”¨å¯èƒ½ã«ãªã‚‹ã¾ã§å¾…機ã—ãŸã®ã¡ãƒ•ァームウェアを書ãè¾¼ã¿ã¾ã™ã€‚5ç§’ã”ã¨ã«ã€DFUデãƒã‚¤ã‚¹ãŒå­˜åœ¨ã™ã‚‹ã‹ãƒã‚§ãƒƒã‚¯ã—ã¦ã„ã¾ã™ã€‚ 181* `:dfu` - ã“れãŒé€šå¸¸ã®ã‚ªãƒ—ションã§ã€DFU デãƒã‚¤ã‚¹ãŒä½¿ç”¨å¯èƒ½ã«ãªã‚‹ã¾ã§å¾…機ã—ãŸã®ã¡ãƒ•ァームウェアを書ãè¾¼ã¿ã¾ã™ã€‚5ç§’ã”ã¨ã«ã€DFU デãƒã‚¤ã‚¹ãŒå­˜åœ¨ã™ã‚‹ã‹ãƒã‚§ãƒƒã‚¯ã—ã¦ã„ã¾ã™ã€‚
182* `:dfu-ee` - 通常㮠hex ファイルã®ä»£ã‚り㫠`eep` ファイルを書ãè¾¼ã¿ã¾ã™ã€‚ã“れを使用ã™ã‚‹ã®ã¯ã¾ã‚Œã§ã™ã€‚ 182* `:dfu-ee` - 通常㮠hex ファイルã®ä»£ã‚り㫠`eep` ファイルを書ãè¾¼ã¿ã¾ã™ã€‚ã“れを使用ã™ã‚‹ã®ã¯ã¾ã‚Œã§ã™ã€‚
183* `:dfu-split-left` - デフォルトオプション (`:dfu`) ã¨åŒæ§˜ã«ã€é€šå¸¸ã®ãƒ•ã‚¡ãƒ¼ãƒ ã‚¦ã‚§ã‚¢ãŒæ›¸ãè¾¼ã¾ã‚Œã¾ã™ã€‚ãŸã ã—ã€åˆ†å‰²ã‚­ãƒ¼ãƒœãƒ¼ãƒ‰ã®ã€Œå·¦å´ã®ã€ EEPROMファイルも書ãè¾¼ã¾ã‚Œã¾ã™ã€‚_ã“れã¯ã€Elite C ベースã®åˆ†å‰²ã‚­ãƒ¼ãƒœãƒ¼ãƒ‰ã«æœ€é©ã§ã™ã€‚_ 183* `:dfu-split-left` - デフォルトオプション (`:dfu`) ã¨åŒæ§˜ã«ã€é€šå¸¸ã®ãƒ•ã‚¡ãƒ¼ãƒ ã‚¦ã‚§ã‚¢ãŒæ›¸ãè¾¼ã¾ã‚Œã¾ã™ã€‚ãŸã ã—ã€åˆ†å‰²ã‚­ãƒ¼ãƒœãƒ¼ãƒ‰ã®ã€Œå·¦å´ã®ã€ EEPROM ファイルも書ãè¾¼ã¾ã‚Œã¾ã™ã€‚_ã“れã¯ã€Elite C ベースã®åˆ†å‰²ã‚­ãƒ¼ãƒœãƒ¼ãƒ‰ã«æœ€é©ã§ã™ã€‚_
184* `:dfu-split-right` - デフォルトオプション (`:dfu`) ã¨åŒæ§˜ã«ã€é€šå¸¸ã®ãƒ•ã‚¡ãƒ¼ãƒ ã‚¦ã‚§ã‚¢ãŒæ›¸ãè¾¼ã¾ã‚Œã¾ã™ã€‚ãŸã ã—ã€åˆ†å‰²ã‚­ãƒ¼ãƒœãƒ¼ãƒ‰ã®ã€Œå³å´ã®ã€EEPROMファイルも書ãè¾¼ã¾ã‚Œã¾ã™ã€‚_ã“れã¯ã€Elite C ベースã®åˆ†å‰²ã‚­ãƒ¼ãƒœãƒ¼ãƒ‰ã«æœ€é©ã§ã™ã€‚_ 184* `:dfu-split-right` - デフォルトオプション (`:dfu`) ã¨åŒæ§˜ã«ã€é€šå¸¸ã®ãƒ•ã‚¡ãƒ¼ãƒ ã‚¦ã‚§ã‚¢ãŒæ›¸ãè¾¼ã¾ã‚Œã¾ã™ã€‚ãŸã ã—ã€åˆ†å‰²ã‚­ãƒ¼ãƒœãƒ¼ãƒ‰ã®ã€Œå³å´ã®ã€EEPROM ファイルも書ãè¾¼ã¾ã‚Œã¾ã™ã€‚_ã“れã¯ã€Elite C ベースã®åˆ†å‰²ã‚­ãƒ¼ãƒœãƒ¼ãƒ‰ã«æœ€é©ã§ã™ã€‚_
185 185
186 186
187### Caterina 187### Caterina
@@ -259,8 +259,8 @@ avrdude.exe done. Thank you.
259 259
260* `:avrdude` - ã“れãŒé€šå¸¸ã®ã‚ªãƒ—ションã§ã€Caterina デãƒã‚¤ã‚¹ãŒ(æ–°ã—ã„ COM ãƒãƒ¼ãƒˆã‚’検出ã—ã¦)使用å¯èƒ½ã«ãªã‚‹ã¾ã§å¾…機ã—ã€ãƒ•ァームウェアを書ãè¾¼ã¿ã¾ã™ã€‚ 260* `:avrdude` - ã“れãŒé€šå¸¸ã®ã‚ªãƒ—ションã§ã€Caterina デãƒã‚¤ã‚¹ãŒ(æ–°ã—ã„ COM ãƒãƒ¼ãƒˆã‚’検出ã—ã¦)使用å¯èƒ½ã«ãªã‚‹ã¾ã§å¾…機ã—ã€ãƒ•ァームウェアを書ãè¾¼ã¿ã¾ã™ã€‚
261* `:avrdude-loop` - ã“れ㯠`:avrdude` ã¨åŒã˜ã§ã™ã€‚ãŸã ã—書ãè¾¼ã¿ãŒçµ‚了ã™ã‚‹ã¨å†ã³ Caterina デãƒã‚¤ã‚¹ã®æ›¸ãè¾¼ã¿å¾…ã¡ã«æˆ»ã‚Šã¾ã™ã€‚ã“れã¯ä½•å°ã‚‚ã®ãƒ‡ãƒã‚¤ã‚¹ã¸ã®æ›¸ãè¾¼ã¿ã«ä¾¿åˆ©ã§ã™ã€‚_Control+C を押ã—ã¦ã€æ‰‹å‹•ã§ã“ã®ç¹°ã‚Šè¿”ã—を終了ã•ã›ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚_ 261* `:avrdude-loop` - ã“れ㯠`:avrdude` ã¨åŒã˜ã§ã™ã€‚ãŸã ã—書ãè¾¼ã¿ãŒçµ‚了ã™ã‚‹ã¨å†ã³ Caterina デãƒã‚¤ã‚¹ã®æ›¸ãè¾¼ã¿å¾…ã¡ã«æˆ»ã‚Šã¾ã™ã€‚ã“れã¯ä½•å°ã‚‚ã®ãƒ‡ãƒã‚¤ã‚¹ã¸ã®æ›¸ãè¾¼ã¿ã«ä¾¿åˆ©ã§ã™ã€‚_Control+C を押ã—ã¦ã€æ‰‹å‹•ã§ã“ã®ç¹°ã‚Šè¿”ã—を終了ã•ã›ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚_
262* `:avrdude-split-left` - デフォルトオプション(`:avrdude`)ã¨åŒæ§˜ã«é€šå¸¸ã®ãƒ•ã‚¡ãƒ¼ãƒ ã‚¦ã‚§ã‚¢ãŒæ›¸ãè¾¼ã¾ã‚Œã¾ã™ã€‚ãŸã ã—ã€åˆ†å‰²ã‚­ãƒ¼ãƒœãƒ¼ãƒ‰ã®ã€Œå·¦å´ã®ã€EEPROMファイルもフラッシュã•れã¾ã™ã€‚ _ã“れã¯ã€Pro Micro ベースã®åˆ†å‰²ã‚­ãƒ¼ãƒœãƒ¼ãƒ‰ã«æœ€é©ã§ã™ã€‚_ 262* `:avrdude-split-left` - デフォルトオプション(`:avrdude`)ã¨åŒæ§˜ã«é€šå¸¸ã®ãƒ•ã‚¡ãƒ¼ãƒ ã‚¦ã‚§ã‚¢ãŒæ›¸ãè¾¼ã¾ã‚Œã¾ã™ã€‚ãŸã ã—ã€åˆ†å‰²ã‚­ãƒ¼ãƒœãƒ¼ãƒ‰ã®ã€Œå·¦å´ã®ã€EEPROM ファイルもフラッシュã•れã¾ã™ã€‚ _ã“れã¯ã€Pro Micro ベースã®åˆ†å‰²ã‚­ãƒ¼ãƒœãƒ¼ãƒ‰ã«æœ€é©ã§ã™ã€‚_
263* `:avrdude-split-right` - デフォルトオプション(`:avrdude`)ã¨åŒæ§˜ã«é€šå¸¸ã®ãƒ•ã‚¡ãƒ¼ãƒ ã‚¦ã‚§ã‚¢ãŒæ›¸ãè¾¼ã¾ã‚Œã¾ã™ã€‚ãŸã ã—ã€åˆ†å‰²ã‚­ãƒ¼ãƒœãƒ¼ãƒ‰ã®ã€Œå³å´ã®ã€EEPROMファイルもフラッシュã•れã¾ã™ã€‚ _ã“れã¯ã€Pro Micro ベースã®åˆ†å‰²ã‚­ãƒ¼ãƒœãƒ¼ãƒ‰ã«æœ€é©ã§ã™ã€‚_ 263* `:avrdude-split-right` - デフォルトオプション(`:avrdude`)ã¨åŒæ§˜ã«é€šå¸¸ã®ãƒ•ã‚¡ãƒ¼ãƒ ã‚¦ã‚§ã‚¢ãŒæ›¸ãè¾¼ã¾ã‚Œã¾ã™ã€‚ãŸã ã—ã€åˆ†å‰²ã‚­ãƒ¼ãƒœãƒ¼ãƒ‰ã®ã€Œå³å´ã®ã€EEPROM ファイルもフラッシュã•れã¾ã™ã€‚ _ã“れã¯ã€Pro Micro ベースã®åˆ†å‰²ã‚­ãƒ¼ãƒœãƒ¼ãƒ‰ã«æœ€é©ã§ã™ã€‚_
264 264
265### HalfKay 265### HalfKay
266 266
diff --git a/docs/ja/newbs_getting_started.md b/docs/ja/newbs_getting_started.md
index 6f5cd92cd..2e283840c 100644
--- a/docs/ja/newbs_getting_started.md
+++ b/docs/ja/newbs_getting_started.md
@@ -12,7 +12,7 @@ QMK ã¯ã€ãã®ã‚½ãƒ•トウェアã®å½¹å‰²ã‚’æžœãŸã—ã€ãƒœã‚¿ãƒ³ã®æŠ¼ä¸‹ã‚’æ
12カスタムキーマップを作るã¨ã„ã†ã“ã¨ã¯ã€ã‚­ãƒ¼ãƒœãƒ¼ãƒ‰ä¸Šã§å‹•ãプログラムを作るã¨ã„ã†ã“ã¨ãªã®ã§ã™ã€‚ 12カスタムキーマップを作るã¨ã„ã†ã“ã¨ã¯ã€ã‚­ãƒ¼ãƒœãƒ¼ãƒ‰ä¸Šã§å‹•ãプログラムを作るã¨ã„ã†ã“ã¨ãªã®ã§ã™ã€‚
13 13
14QMK ã¯ã€ç°¡å˜ãªã“ã¨ã¯ç°¡å˜ã«ã€ãã—ã¦ã€é›£ã—ã„ã“ã¨ã‚’å¯èƒ½ãªã“ã¨ã«ã™ã‚‹ã“ã¨ã§ã€ã‚ãªãŸã®æ‰‹ã«ãŸãã•ã‚“ã®ãƒ‘ワーをもãŸã‚‰ã—ã¾ã™ã€‚ 14QMK ã¯ã€ç°¡å˜ãªã“ã¨ã¯ç°¡å˜ã«ã€ãã—ã¦ã€é›£ã—ã„ã“ã¨ã‚’å¯èƒ½ãªã“ã¨ã«ã™ã‚‹ã“ã¨ã§ã€ã‚ãªãŸã®æ‰‹ã«ãŸãã•ã‚“ã®ãƒ‘ワーをもãŸã‚‰ã—ã¾ã™ã€‚
15パワフルãªã‚­ãƒ¼ãƒžãƒƒãƒ—を作るãŸã‚ã«ãƒ—ログラムを作æˆã™ã‚‹æ–¹æ³•を知る必è¦ã¯ã‚りã¾ã›ã‚“。ã„ãã¤ã‹ã®ã‚·ãƒ³ãƒ—ãƒ«ãªæ–‡æ³•ã«å¾“ã†ã ã‘ã§OKã§ã™ã€‚ 15パワフルãªã‚­ãƒ¼ãƒžãƒƒãƒ—を作るãŸã‚ã«ãƒ—ログラムを作æˆã™ã‚‹æ–¹æ³•を知る必è¦ã¯ã‚りã¾ã›ã‚“。ã„ãã¤ã‹ã®ã‚·ãƒ³ãƒ—ãƒ«ãªæ–‡æ³•ã«å¾“ã†ã ã‘ã§ OK ã§ã™ã€‚
16 16
17# ã¯ã˜ã‚ã« 17# ã¯ã˜ã‚ã«
18 18
diff --git a/docs/ja/newbs_git_resynchronize_a_branch.md b/docs/ja/newbs_git_resynchronize_a_branch.md
index 80ae794a9..e81d2da1f 100644
--- a/docs/ja/newbs_git_resynchronize_a_branch.md
+++ b/docs/ja/newbs_git_resynchronize_a_branch.md
@@ -7,7 +7,7 @@
7--> 7-->
8 8
9ä»®ã«ã‚ãªãŸã® `master` ブランãƒã«ã‚ãªãŸã®ã‚³ãƒŸãƒƒãƒˆã‚’行ã„ã€ãã—ã¦ã‚ãªãŸã® QMK リãƒã‚¸ãƒˆãƒªã®æ›´æ–°ãŒå¿…è¦ã«ãªã£ãŸã¨ã—ã¾ã™ã€‚ 9ä»®ã«ã‚ãªãŸã® `master` ブランãƒã«ã‚ãªãŸã®ã‚³ãƒŸãƒƒãƒˆã‚’行ã„ã€ãã—ã¦ã‚ãªãŸã® QMK リãƒã‚¸ãƒˆãƒªã®æ›´æ–°ãŒå¿…è¦ã«ãªã£ãŸã¨ã—ã¾ã™ã€‚
10(フォーク元ã®) QMKã® `master` ブランãƒã‚’ã‚ãªãŸã® `master` ブランãƒã« `git pull` ã™ã‚‹ã“ã¨ã‚‚ã§ãã¾ã™ãŒã€GitHub ã¯ã€ã‚ãªãŸã®ãƒ–ランãƒãŒ `qmk:master` より何コミットã‹å…ˆè¡Œã—ã¦ã„ã‚‹ã¨é€šçŸ¥ã—ã¾ã™ã€ã“ã®çŠ¶æ…‹ã§ QMK ã«ãƒ—ルリクエストを行ã†å ´åˆã€å•題ãŒç™ºç”Ÿã™ã‚‹å¯èƒ½æ€§ãŒã‚りã¾ã™ã€‚ 10(フォーク元ã®) QMK ã® `master` ブランãƒã‚’ã‚ãªãŸã® `master` ブランãƒã« `git pull` ã™ã‚‹ã“ã¨ã‚‚ã§ãã¾ã™ãŒã€GitHub ã¯ã€ã‚ãªãŸã®ãƒ–ランãƒãŒ `qmk:master` より何コミットã‹å…ˆè¡Œã—ã¦ã„ã‚‹ã¨é€šçŸ¥ã—ã¾ã™ã€ã“ã®çŠ¶æ…‹ã§ QMK ã«ãƒ—ルリクエストを行ã†å ´åˆã€å•題ãŒç™ºç”Ÿã™ã‚‹å¯èƒ½æ€§ãŒã‚りã¾ã™ã€‚
11(訳注:ã“ã®é€šçŸ¥ã¯ã€GitHub ã®ã‚ãªãŸã®ãƒªãƒã‚¸ãƒˆãƒªã® code ペインã®ãƒ–ランãƒé¸æŠžãƒ¡ãƒ‹ãƒ¥ãƒ¼ã®ä¸‹ã®ã‚ãŸã‚Šã§ `This branch is 3 commit ahead of qmk:master` ã¨ã„ã†æ§˜ãªæ–‡é¢ã§è¡¨ç¤ºã•れã¦ã„ã¾ã™ã€‚) 11(訳注:ã“ã®é€šçŸ¥ã¯ã€GitHub ã®ã‚ãªãŸã®ãƒªãƒã‚¸ãƒˆãƒªã® code ペインã®ãƒ–ランãƒé¸æŠžãƒ¡ãƒ‹ãƒ¥ãƒ¼ã®ä¸‹ã®ã‚ãŸã‚Šã§ `This branch is 3 commit ahead of qmk:master` ã¨ã„ã†æ§˜ãªæ–‡é¢ã§è¡¨ç¤ºã•れã¦ã„ã¾ã™ã€‚)
12 12
13?> ã“ã®ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆã¯ [ã‚ãªãŸã®ãƒ•ォーク㮠master ブランãƒ: æ›´æ–°ã¯é »ç¹ã«ã€ã‚³ãƒŸãƒƒãƒˆã¯ã—ãªã„ã“ã¨](ja/newbs_git_using_your_master_branch.md) ã§è©³è¿°ã•れã¦ã„る概念ã«åŸºã¥ã„ã¦ã„ã¾ã™ã€‚ãã®æ¦‚å¿µã«æ…£ã‚Œã¦ã„ãªã„å ´åˆã¯ã€ã¾ãšãれを読んã§ã‹ã‚‰ã€ã“ã“ã«æˆ»ã£ã¦ãã ã•ã„。 13?> ã“ã®ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆã¯ [ã‚ãªãŸã®ãƒ•ォーク㮠master ブランãƒ: æ›´æ–°ã¯é »ç¹ã«ã€ã‚³ãƒŸãƒƒãƒˆã¯ã—ãªã„ã“ã¨](ja/newbs_git_using_your_master_branch.md) ã§è©³è¿°ã•れã¦ã„る概念ã«åŸºã¥ã„ã¦ã„ã¾ã™ã€‚ãã®æ¦‚å¿µã«æ…£ã‚Œã¦ã„ãªã„å ´åˆã¯ã€ã¾ãšãれを読んã§ã‹ã‚‰ã€ã“ã“ã«æˆ»ã£ã¦ãã ã•ã„。
diff --git a/docs/ja/newbs_git_using_your_master_branch.md b/docs/ja/newbs_git_using_your_master_branch.md
index 086005034..3ee1996c1 100644
--- a/docs/ja/newbs_git_using_your_master_branch.md
+++ b/docs/ja/newbs_git_using_your_master_branch.md
@@ -41,7 +41,7 @@ upstream https://github.com/qmk/qmk_firmware.git (push)
41ã“ã®ã‚³ãƒžãƒ³ãƒ‰ã¯ `upstream` ã¨ã„ã†ãƒ‹ãƒƒã‚¯ãƒãƒ¼ãƒ ã‚’æŒã¤ QMK リãƒã‚¸ãƒˆãƒªã‹ã‚‰ã€ãƒ–ランãƒã¨ã‚¿ã‚° &mdash; "refs" ã¨ç·ç§°ã•れã¾ã™ &mdash; ã‚’å–å¾—ã—ã¾ã™ã€‚ 41ã“ã®ã‚³ãƒžãƒ³ãƒ‰ã¯ `upstream` ã¨ã„ã†ãƒ‹ãƒƒã‚¯ãƒãƒ¼ãƒ ã‚’æŒã¤ QMK リãƒã‚¸ãƒˆãƒªã‹ã‚‰ã€ãƒ–ランãƒã¨ã‚¿ã‚° &mdash; "refs" ã¨ç·ç§°ã•れã¾ã™ &mdash; ã‚’å–å¾—ã—ã¾ã™ã€‚
42ã“れã§ã€ã‚ãªãŸã®ãƒ•ォーク `origin` ã®ãƒ‡ãƒ¼ã‚¿ã‚’ QMK ãŒä¿æŒã™ã‚‹ãƒ‡ãƒ¼ã‚¿ã¨æ¯”較ã§ãã¾ã™ã€‚ 42ã“れã§ã€ã‚ãªãŸã®ãƒ•ォーク `origin` ã®ãƒ‡ãƒ¼ã‚¿ã‚’ QMK ãŒä¿æŒã™ã‚‹ãƒ‡ãƒ¼ã‚¿ã¨æ¯”較ã§ãã¾ã™ã€‚
43 43
44ã‚ãªãŸã®ãƒ•ォーク㮠`master` ã‚’æ›´æ–°ã™ã‚‹ã«ã¯ã€æ¬¡ã‚’実行ã—ã¾ã™ã€å„行ã®å¾Œã«Enterキーを押ã—ã¦ãã ã•ã„: 44ã‚ãªãŸã®ãƒ•ォーク㮠`master` ã‚’æ›´æ–°ã™ã‚‹ã«ã¯ã€æ¬¡ã‚’実行ã—ã¾ã™ã€å„行ã®å¾Œã« Enter キーを押ã—ã¦ãã ã•ã„:
45 45
46``` 46```
47git checkout master 47git checkout master
@@ -98,4 +98,4 @@ git commit -m "My commit message."
98 98
99最後ã®ã‚¹ãƒ†ãƒƒãƒ—ã¯ã€å¤‰æ›´ã‚’フォークã«ãƒ—ッシュã™ã‚‹ã“ã¨ã§ã™ã€‚ 99最後ã®ã‚¹ãƒ†ãƒƒãƒ—ã¯ã€å¤‰æ›´ã‚’フォークã«ãƒ—ッシュã™ã‚‹ã“ã¨ã§ã™ã€‚
100ã“れを行ã†ã«ã¯ã€`git push`ã¨å…¥åŠ›ã—ã¾ã™ã€‚ 100ã“れを行ã†ã«ã¯ã€`git push`ã¨å…¥åŠ›ã—ã¾ã™ã€‚
101Gitã¯ã€ `dev_branch`ã®ç¾åœ¨ã®çŠ¶æ…‹ã‚’ãƒ•ã‚©ãƒ¼ã‚¯ã«å…¬é–‹ã—ã¾ã™ã€‚ 101Git ã¯ã€ `dev_branch`ã®ç¾åœ¨ã®çŠ¶æ…‹ã‚’ãƒ•ã‚©ãƒ¼ã‚¯ã«å…¬é–‹ã—ã¾ã™ã€‚
diff --git a/docs/ja/newbs_learn_more_resources.md b/docs/ja/newbs_learn_more_resources.md
index 9adcf5360..523d91a05 100644
--- a/docs/ja/newbs_learn_more_resources.md
+++ b/docs/ja/newbs_learn_more_resources.md
@@ -6,7 +6,7 @@
6 git diff ed0575fc8 HEAD -- docs/newbs_learn_more_resources.md | cat 6 git diff ed0575fc8 HEAD -- docs/newbs_learn_more_resources.md | cat
7--> 7-->
8 8
9ã“れらã®ãƒªã‚½ãƒ¼ã‚¹ã¯ã€QMKã‚³ãƒŸãƒ¥ãƒ‹ãƒ†ã‚£ã®æ–°ã—ã„メンãƒãƒ¼ã«ã€åˆå¿ƒè€…å‘ã‘ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆã§æä¾›ã•れã¦ã„る情報ã«å¯¾ã™ã‚‹ç†è§£ã‚’æ·±ã‚ã‚‹ã“ã¨ã‚’目的ã¨ã—ã¦ã„ã¾ã™ã€‚ 9ã“れらã®ãƒªã‚½ãƒ¼ã‚¹ã¯ã€QMK ã‚³ãƒŸãƒ¥ãƒ‹ãƒ†ã‚£ã®æ–°ã—ã„メンãƒãƒ¼ã«ã€åˆå¿ƒè€…å‘ã‘ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆã§æä¾›ã•れã¦ã„る情報ã«å¯¾ã™ã‚‹ç†è§£ã‚’æ·±ã‚ã‚‹ã“ã¨ã‚’目的ã¨ã—ã¦ã„ã¾ã™ã€‚
10 10
11## Git ã«é–¢ã™ã‚‹ãƒªãƒ¼ã‚¹: 11## Git ã«é–¢ã™ã‚‹ãƒªãƒ¼ã‚¹:
12 12
diff --git a/docs/ja/newbs_testing_debugging.md b/docs/ja/newbs_testing_debugging.md
index 5ec5811a1..784f872e6 100644
--- a/docs/ja/newbs_testing_debugging.md
+++ b/docs/ja/newbs_testing_debugging.md
@@ -12,7 +12,7 @@
12 12
13通常ã€ã‚­ãƒ¼ãƒœãƒ¼ãƒ‰ã‚’テストã™ã‚‹ã®ã¯éžå¸¸ã«ç°¡å˜ã§ã™ã€‚å…¨ã¦ã®ã‚­ãƒ¼ã‚’ã²ã¨ã¤ãšã¤æŠ¼ã—ã¦ã€æœŸå¾…ã•れるキーãŒé€ä¿¡ã•れã¦ã„ã‚‹ã“ã¨ã‚’確èªã—ã¾ã™ã€‚キーを押ã—ãŸã“ã¨ã‚’見逃ã•ãªã„ãŸã‚ã®ãƒ—ログラムもã‚りã¾ã™ã€‚ 13通常ã€ã‚­ãƒ¼ãƒœãƒ¼ãƒ‰ã‚’テストã™ã‚‹ã®ã¯éžå¸¸ã«ç°¡å˜ã§ã™ã€‚å…¨ã¦ã®ã‚­ãƒ¼ã‚’ã²ã¨ã¤ãšã¤æŠ¼ã—ã¦ã€æœŸå¾…ã•れるキーãŒé€ä¿¡ã•れã¦ã„ã‚‹ã“ã¨ã‚’確èªã—ã¾ã™ã€‚キーを押ã—ãŸã“ã¨ã‚’見逃ã•ãªã„ãŸã‚ã®ãƒ—ログラムもã‚りã¾ã™ã€‚
14 14
15メモ: ã“れらã®ãƒ—ログラムã¯QMKã«ã‚ˆã£ã¦æä¾›ãƒ»æ‰¿èªã•れãŸã‚‚ã®ã§ã¯ã‚りã¾ã›ã‚“。 15メモ: ã“れらã®ãƒ—ログラム㯠QMK ã«ã‚ˆã£ã¦æä¾›ãƒ»æ‰¿èªã•れãŸã‚‚ã®ã§ã¯ã‚りã¾ã›ã‚“。
16 16
17* [QMK Configurator](https://config.qmk.fm/#/test/) (Web Based) 17* [QMK Configurator](https://config.qmk.fm/#/test/) (Web Based)
18* [Switch Hitter](https://web.archive.org/web/20190413233743/https://elitekeyboards.com/switchhitter.php) (Windows Only) 18* [Switch Hitter](https://web.archive.org/web/20190413233743/https://elitekeyboards.com/switchhitter.php) (Windows Only)
@@ -40,7 +40,7 @@ void keyboard_post_init_user(void) {
40 40
41### hid_listenを使ã£ãŸãƒ‡ãƒãƒƒã‚° 41### hid_listenを使ã£ãŸãƒ‡ãƒãƒƒã‚°
42 42
43ã‚¿ãƒ¼ãƒŸãƒŠãƒ«ãƒ™ãƒ¼ã‚¹ã®æ–¹æ³•ãŒãŠå¥½ã¿ã§ã™ã‹ï¼ŸPJRCãŒæä¾›ã™ã‚‹[hid_listen](https://www.pjrc.com/teensy/hid_listen.html)もデãƒãƒƒã‚°ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã®è¡¨ç¤ºã«ä½¿ç”¨ã§ãã¾ã™ã€‚ビルド済ã¿ã®å®Ÿè¡Œãƒ•ァイルã¯Windows, Linux, MacOS用ãŒç”¨æ„ã•れã¦ã„ã¾ã™ã€‚ 43ã‚¿ãƒ¼ãƒŸãƒŠãƒ«ãƒ™ãƒ¼ã‚¹ã®æ–¹æ³•ãŒãŠå¥½ã¿ã§ã™ã‹ï¼ŸPJRC ãŒæä¾›ã™ã‚‹[hid_listen](https://www.pjrc.com/teensy/hid_listen.html)もデãƒãƒƒã‚°ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã®è¡¨ç¤ºã«ä½¿ç”¨ã§ãã¾ã™ã€‚ビルド済ã¿ã®å®Ÿè¡Œãƒ•ァイル㯠Windows, Linux, MacOS 用ãŒç”¨æ„ã•れã¦ã„ã¾ã™ã€‚
44 44
45<!-- FIXME: Describe the debugging messages here. --> 45<!-- FIXME: Describe the debugging messages here. -->
46 46
@@ -50,7 +50,7 @@ void keyboard_post_init_user(void) {
50 50
51 #include <print.h> 51 #include <print.h>
52 52
53ãã®ã‚ã¨ã¯ã€ã„ãã¤ã‹ã®ç•°ãªã£ãŸprint関数を使用ã™ã‚‹ã“ã¨ãŒå‡ºæ¥ã¾ã™ã€‚ 53ãã®ã‚ã¨ã¯ã€ã„ãã¤ã‹ã®ç•°ãªã£ãŸ print 関数を使用ã™ã‚‹ã“ã¨ãŒå‡ºæ¥ã¾ã™ã€‚
54 54
55* `print("string")`: ã‚·ãƒ³ãƒ—ãƒ«ãªæ–‡å­—列を出力ã—ã¾ã™ 55* `print("string")`: ã‚·ãƒ³ãƒ—ãƒ«ãªæ–‡å­—列を出力ã—ã¾ã™
56* `uprintf("%s string", var)`: フォーマットã•ã‚ŒãŸæ–‡å­—列を出力ã—ã¾ã™ 56* `uprintf("%s string", var)`: フォーマットã•ã‚ŒãŸæ–‡å­—列を出力ã—ã¾ã™
diff --git a/docs/keycodes.md b/docs/keycodes.md
index dd4c4418b..c151c5700 100644
--- a/docs/keycodes.md
+++ b/docs/keycodes.md
@@ -208,14 +208,11 @@ This is a reference only. Each group of keys links to the page documenting their
208 208
209## [Quantum Keycodes](quantum_keycodes.md#qmk-keycodes) 209## [Quantum Keycodes](quantum_keycodes.md#qmk-keycodes)
210 210
211|Key |Aliases |Description | 211|Key |Aliases |Description |
212|---------------|-----------|---------------------------------------------------------------------| 212|--------------|---------|-------------------------------------------------------|
213|`RESET` | |Put the keyboard into DFU mode for flashing | 213|`RESET` | |Put the keyboard into bootloader mode for flashing |
214|`DEBUG` | |Toggle debug mode | 214|`DEBUG` | |Toggle debug mode |
215|`EEPROM_RESET` |`EEP_RST` |Resets EEPROM state by reinitializing it | 215|`EEPROM_RESET`|`EEP_RST`|Reinitializes the keyboard's EEPROM (persistent memory)|
216|`KC_GESC` |`GRAVE_ESC`|Escape when tapped, <code>&#96;</code> when pressed with Shift or GUI|
217|`KC_LEAD` | |The [Leader key](feature_leader_key.md) |
218|`KC_LOCK` | |The [Lock key](feature_key_lock.md) |
219 216
220## [Audio Keys](feature_audio.md) 217## [Audio Keys](feature_audio.md)
221 218
@@ -289,7 +286,7 @@ This is a reference only. Each group of keys links to the page documenting their
289 286
290## [Dynamic Macros](feature_dynamic_macros.md) 287## [Dynamic Macros](feature_dynamic_macros.md)
291 288
292|Key |Alias |Description | 289|Key |Aliases |Description |
293|-----------------|---------|--------------------------------------------------| 290|-----------------|---------|--------------------------------------------------|
294|`DYN_REC_START1` |`DM_REC1`|Start recording Macro 1 | 291|`DYN_REC_START1` |`DM_REC1`|Start recording Macro 1 |
295|`DYN_REC_START2` |`DM_REC2`|Start recording Macro 2 | 292|`DYN_REC_START2` |`DM_REC2`|Start recording Macro 2 |
@@ -297,6 +294,18 @@ This is a reference only. Each group of keys links to the page documenting their
297|`DYN_MACRO_PLAY2`|`DM_PLY2`|Replay Macro 2 | 294|`DYN_MACRO_PLAY2`|`DM_PLY2`|Replay Macro 2 |
298|`DYN_REC_STOP` |`DM_RSTP`|Finish the macro that is currently being recorded.| 295|`DYN_REC_STOP` |`DM_RSTP`|Finish the macro that is currently being recorded.|
299 296
297## [Grave Escape](feature_grave_esc.md)
298
299|Key |Aliases |Description |
300|-----------|---------|------------------------------------------------------------------|
301|`GRAVE_ESC`|`KC_GESC`|Escape when pressed, <code>&#96;</code> when Shift or GUI are held|
302
303## [Key Lock](feature_key_lock.md)
304
305|Key |Description |
306|---------|--------------------------------------------------------------|
307|`KC_LOCK`|Hold down the next key pressed, until the key is pressed again|
308
300## [Layer Switching](feature_advanced_keycodes.md#switching-and-toggling-layers) 309## [Layer Switching](feature_advanced_keycodes.md#switching-and-toggling-layers)
301 310
302|Key |Description | 311|Key |Description |
@@ -310,6 +319,12 @@ This is a reference only. Each group of keys links to the page documenting their
310|`TO(layer)` |Turns on `layer` and turns off all other layers, except the default layer | 319|`TO(layer)` |Turns on `layer` and turns off all other layers, except the default layer |
311|`TT(layer)` |Normally acts like MO unless it's tapped multiple times, which toggles `layer` on | 320|`TT(layer)` |Normally acts like MO unless it's tapped multiple times, which toggles `layer` on |
312 321
322## [Leader Key](feature_leader_key.md)
323
324|Key |Description |
325|---------|------------------------|
326|`KC_LEAD`|Begins a leader sequence|
327
313## [Mouse Keys](feature_mouse_keys.md) 328## [Mouse Keys](feature_mouse_keys.md)
314 329
315|Key |Aliases |Description | 330|Key |Aliases |Description |
diff --git a/docs/quantum_keycodes.md b/docs/quantum_keycodes.md
index 26ce6d244..969849cda 100644
--- a/docs/quantum_keycodes.md
+++ b/docs/quantum_keycodes.md
@@ -8,11 +8,8 @@ On this page we have documented keycodes between `0x00FF` and `0xFFFF` which are
8 8
9## QMK Keycodes 9## QMK Keycodes
10 10
11|Key |Aliases |Description | 11|Key |Aliases |Description |
12|---------------|-----------|---------------------------------------------------------------------| 12|--------------|---------|-------------------------------------------------------|
13|`RESET` | |Put the keyboard into DFU mode for flashing | 13|`RESET` | |Put the keyboard into bootloader mode for flashing |
14|`DEBUG` | |Toggle debug mode | 14|`DEBUG` | |Toggle debug mode |
15|`EEPROM_RESET` |`EEP_RST` |Resets EEPROM state by reinitializing it | 15|`EEPROM_RESET`|`EEP_RST`|Reinitializes the keyboard's EEPROM (persistent memory)|
16|`KC_GESC` |`GRAVE_ESC`|Escape when tapped, <code>&#96;</code> when pressed with Shift or GUI|
17|`KC_LEAD` | |The [Leader key](feature_leader_key.md) |
18|`KC_LOCK` | |The [Lock key](feature_key_lock.md) |