diff options
Diffstat (limited to 'docs')
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 | |||
| 3 | A 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 | |||
| 5 | Some 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 | |||
| 20 | If 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 | |||
| 24 | If 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 | |||
| 28 | We 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 | |||
| 30 | Your 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 | |||
| 32 | If 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 | |||
| 36 | Understanding 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 | |||
| 38 | Commenting on your pull request and being responsive to questions, comments, and change requests is much appreciated. | ||
| 39 | |||
| 40 | ### Ask for Help | ||
| 41 | |||
| 42 | Having 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 | ||
| 144 | This command examines your environment and alerts you to potential build or flash problems. | 144 | This 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 | ``` |
| 149 | qmk doctor | 149 | qmk doctor [-y] [-n] |
| 150 | ``` | 150 | ``` |
| 151 | 151 | ||
| 152 | **Examples**: | ||
| 153 | |||
| 154 | Check your environment for problems and prompt to fix them: | ||
| 155 | |||
| 156 | qmk doctor | ||
| 157 | |||
| 158 | Check your environment and automatically fix any problems found: | ||
| 159 | |||
| 160 | qmk doctor -y | ||
| 161 | |||
| 162 | Check your environment and report problems only: | ||
| 163 | |||
| 164 | qmk doctor -n | ||
| 165 | |||
| 152 | ## `qmk json-keymap` | 166 | ## `qmk json-keymap` |
| 153 | 167 | ||
| 154 | Creates a keymap.c from a QMK Configurator export. | 168 | Creates 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 | ||
| 282 | This 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. | 287 | This 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 | |||
| 3 | QMK provides a mechanism to supplement or replace the default matrix scanning routine with your own code. | ||
| 4 | |||
| 5 | The 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 | |||
| 15 | Implementing custom matrix usually involves compilation of an additional source file. It is recommended that for consistency, this file is called `matrix.c`. | ||
| 16 | |||
| 17 | Add a new file to your keyboard directory: | ||
| 18 | ```text | ||
| 19 | keyboards/<keyboard>/matrix.c | ||
| 20 | ``` | ||
| 21 | |||
| 22 | And to configure compilation for the new file, add this to your `rules.mk`: | ||
| 23 | ```make | ||
| 24 | SRC += matrix.c | ||
| 25 | ``` | ||
| 26 | |||
| 27 | ## 'lite' | ||
| 28 | |||
| 29 | Provides a default implementation for various scanning functions, reducing the boilerplate code when implementing custom matrix. | ||
| 30 | To configure it, add this to your `rules.mk`: | ||
| 31 | |||
| 32 | ```make | ||
| 33 | CUSTOM_MATRIX = lite | ||
| 34 | ``` | ||
| 35 | |||
| 36 | And implement the following functions in a `matrix.c` file in your keyboard folder: | ||
| 37 | |||
| 38 | ```c | ||
| 39 | void matrix_init_custom(void) { | ||
| 40 | // TODO: initialize hardware here | ||
| 41 | } | ||
| 42 | |||
| 43 | bool 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 | |||
| 55 | When more control over the scanning routine is required, you can choose to implement the full scanning routine. | ||
| 56 | To configure it, add this to your rules.mk: | ||
| 57 | |||
| 58 | ```make | ||
| 59 | CUSTOM_MATRIX = yes | ||
| 60 | ``` | ||
| 61 | |||
| 62 | And implement the following functions in a `matrix.c` file in your keyboard folder: | ||
| 63 | |||
| 64 | ```c | ||
| 65 | matrix_row_t matrix_get_row(uint8_t row) { | ||
| 66 | // TODO: return the requested row data | ||
| 67 | } | ||
| 68 | |||
| 69 | void matrix_print(void) { | ||
| 70 | // TODO: use print() to dump the current matrix state to console | ||
| 71 | } | ||
| 72 | |||
| 73 | void 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 | |||
| 83 | uint8_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 | |||
| 98 | And 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 | |||
| 3 | The EEPROM driver can be swapped out depending on the needs of the keyboard, or whether extra hardware is present. | ||
| 4 | |||
| 5 | Driver | 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 | |||
| 13 | No configurable options are available. | ||
| 14 | |||
| 15 | ## I2C Driver Configuration | ||
| 16 | |||
| 17 | Currently 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 | |||
| 28 | Default values and extended descriptions can be found in `drivers/eeprom/eeprom_i2c.h`. | ||
| 29 | |||
| 30 | Alternatively, there are pre-defined hardware configurations for available chips/modules: | ||
| 31 | |||
| 32 | Module | Equivalent `#define` | Source | ||
| 33 | -----------------|---------------------------------|------------------------------------------ | ||
| 34 | CAT24C512 EEPROM | `#define EEPROM_I2C_CAT24C512` | <https://www.sparkfun.com/products/14764> | ||
| 35 | RM24C512C EEPROM | `#define EEPROM_I2C_RM24C512C` | <https://www.sparkfun.com/products/14764> | ||
| 36 | 24LC128 EEPROM | `#define EEPROM_I2C_24LC128` | <https://www.microchip.com/wwwproducts/en/24LC128> | ||
| 37 | 24LC256 EEPROM | `#define EEPROM_I2C_24LC256` | <https://www.sparkfun.com/products/525> | ||
| 38 | MB85RC256V 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 | |||
| 44 | The 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 | |||
| 50 | Default 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 | ||
| 294 | For 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 | |||
| 300 | You can then add the following function to your keymap: | ||
| 301 | |||
| 302 | ```c | ||
| 303 | bool 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 | ||
| 296 | To enable `tapping force hold`, add the following to your `config.h`: | 315 | To 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 | ||
| 337 | For 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 | |||
| 343 | You can then add the following function to your keymap: | ||
| 344 | |||
| 345 | ```c | ||
| 346 | bool 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 | ||
| 320 | To enable `retro tapping`, add the following to your `config.h`: | 358 | To 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 | ||
| 5 | OLED modules using SSD1306 or SH1106 driver ICs, communicating over I2C. | 5 | OLED modules using SSD1306 or SH1106 driver ICs, communicating over I2C. |
| 6 | Tested combinations: | 6 | Tested 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 | ||
| 15 | Hardware configurations using ARM-based microcontrollers or different sizes of OLED modules may be compatible, but are untested. | 15 | Hardware 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 | ||
| 21 | To 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.: | 21 | To 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 |
| 24 | OLED_DRIVER_ENABLE = yes | 24 | OLED_DRIVER_ENABLE = yes |
| 25 | ``` | 25 | ``` |
| 26 | 26 | ||
| 27 | This 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: | 27 | Then 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 |
| 31 | void oled_task_user(void) { | 31 | void 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 | ||
| 60 | In 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: | 61 | In 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 |
| 63 | static void render_logo(void) { | 64 | static 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 | ||
| 75 | In 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: | 77 | In 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 |
| 79 | oled_rotation_t oled_init_user(oled_rotation_t rotation) { | 81 | oled_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 | ||
| 85 | void oled_task_user(void) { | 89 | void 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 |
| 138 | typedef enum { | 141 | typedef 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. | 149 | OLED 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: | 151 | 90 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 |
| 172 | typedef enum { | 175 | typedef 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 | ``` |
| 203 | This sets the maximum timeout when detecting master/slave when using `SPLIT_USB_DETECT`. | 203 | This 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 | ``` | ||
| 208 | This sets the poll frequency when detecting master/slave when using `SPLIT_USB_DETECT` | ||
| 209 | |||
| 205 | ## Additional Resources | 210 | ## Additional Resources |
| 206 | 211 | ||
| 207 | Nicinabox 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. | 212 | Nicinabox 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 | ||
| 138 | Lets 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(). | 138 | Lets 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 | ||
| 35 | Support 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. | 35 | Support 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 | |||
| 39 | Support 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 | ||
| 73 | ARM MCU ã¯ã€ã‚¯ãƒãƒƒã‚¯ä¿¡å·(SWCLK) ã¨ãƒ‡ãƒ¼ã‚¿ä¿¡å·(SWDIO) ã§æ§‹æˆã•れる Single Wire Debug (SWD) プãƒãƒˆã‚³ãƒ«ã‚’使ã„ã¾ã™ã€‚MCUã‚’ å®Œå…¨ã«æ“作ã™ã‚‹ã«ã¯ã€ã“ã®2本ã®ãƒ¯ã‚¤ãƒ¤ã¨ã‚°ãƒ©ã‚¦ãƒ³ãƒ‰ã‚’接続ã™ã‚‹ã ã‘ã§å分ã§ã™ã€‚ã“ã“ã§ã¯ã€ã‚ーボード㯠USB を介ã—ã¦é›»åŠ›ãŒä¾›çµ¦ã•ã‚Œã‚‹ã¨æƒ³å®šã—ã¦ã„ã¾ã™ã€‚手動ã§ãƒªã‚»ãƒƒãƒˆãƒœã‚¿ãƒ³ã‚’使ãˆã‚‹ãŸã‚ã€RESET ä¿¡å·ã¯å¿…è¦ã‚りã¾ã›ã‚“。より高度ãªã‚»ãƒƒãƒˆã‚¢ãƒƒãƒ—ã®ãŸã‚ã« printf 㨠scanf をホストã«éžåŒæœŸã«ãƒ‘イプã™ã‚‹ SWO ä¿¡å·ã‚’使用ã§ãã¾ã™ãŒã€ç§ãŸã¡ã®ã‚»ãƒƒãƒˆã‚¢ãƒƒãƒ—ã§ã¯ç„¡è¦–ã—ã¾ã™ã€‚ | 73 | ARM 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 | ||
| 8 | QMK ã¯ã»ã¼ç„¡åˆ¶é™ã«è¨å®šå¯èƒ½ã§ã™ã€‚å¯èƒ½ãªã¨ã“ã‚ã¯ã„ã‹ãªã‚‹ã¨ã“ã‚ã§ã‚‚ã€ã‚„りã™ãŽãªç¨‹ã€ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒã‚³ãƒ¼ãƒ‰ã‚µã‚¤ã‚ºã‚’çŠ ç‰²ã«ã—ã¦ã§ã‚‚彼らã®ã‚ーボードをカスタマイズをã™ã‚‹ã“ã¨ã‚’許ã—ã¦ã„ã¾ã™ã€‚ãŸã ã—ã€ã“ã®ãƒ¬ãƒ™ãƒ«ã®æŸ”軟性ã«ã‚ˆã‚Šè¨å®šãŒå›°é›£ã«ãªã‚Šã¾ã™ã€‚ | 8 | QMK ã¯ã»ã¼ç„¡åˆ¶é™ã«è¨å®šå¯èƒ½ã§ã™ã€‚å¯èƒ½ãªã¨ã“ã‚ã¯ã„ã‹ãªã‚‹ã¨ã“ã‚ã§ã‚‚ã€ã‚„りã™ãŽãªç¨‹ã€ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒã‚³ãƒ¼ãƒ‰ã‚µã‚¤ã‚ºã‚’çŠ ç‰²ã«ã—ã¦ã§ã‚‚彼らã®ã‚ーボードをカスタマイズをã™ã‚‹ã“ã¨ã‚’許ã—ã¦ã„ã¾ã™ã€‚ãŸã ã—ã€ã“ã®ãƒ¬ãƒ™ãƒ«ã®æŸ”軟性ã«ã‚ˆã‚Šè¨å®šãŒå›°é›£ã«ãªã‚Šã¾ã™ã€‚ |
| @@ -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 ã«æŽ¥ç¶šã•れã¦ã„ãªã„å´ã¯ã‚¹ãƒ¬ãƒ¼ãƒ–ã§ã™ã€‚ | 221 | 1ã¤è¦šãˆã¦ãŠã‹ãªã‘れã°ãªã‚‰ãªã„ã“ã¨ã¯ã€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 | ||
| 64 | 2分割ã®å³ã‚·ãƒ•ト: 両方ã¨ã‚‚å³ã‚·ãƒ•トã§åŸ‹ã‚ã¾ã™ã€‚ | 64 | 2分割ã®å³ã‚·ãƒ•ト: 両方ã¨ã‚‚å³ã‚·ãƒ•トã§åŸ‹ã‚ã¾ã™ã€‚ |
| 65 | 65 | ||
| 66 | 左シフトã¨ISOサãƒãƒ¼ãƒˆç”¨ã«1ã¤ãšã¤: 両方ã¨ã‚‚左シフトã§åŸ‹ã‚ã¾ã™ã€‚ | 66 | 左シフト㨠ISO サãƒãƒ¼ãƒˆç”¨ã«1ã¤ãšã¤: 両方ã¨ã‚‚左シフトã§åŸ‹ã‚ã¾ã™ã€‚ |
| 67 | 67 | ||
| 68 | 5分割ã ãŒ4ã‚ーã®ã¿: 以å‰ã‚„ã£ãŸã“ã¨ãŒã‚る人を推測ã—ã¦ç¢ºèªã™ã‚‹ã‹å°‹ãã¦ãã ã•ã„。 | 68 | 5分割ã ãŒ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 ã§ã—ã‹ä½¿ãˆã¾ã›ã‚“。 |
| 16 | Linuxを使用ã—ã¦ã„ã‚‹å ´åˆ(ãŠã‚ˆã³ã€ã‚³ãƒžãƒ³ãƒ‰ãƒ©ã‚¤ãƒ³ã§ãƒ•ァームウェアを書ãè¾¼ã¿ãŸã„å ´åˆ)ã¯ã€ä¸‹ã®æ–¹ã§æ¦‚説ã™ã‚‹[方法](ja/newbs_flashing.md#flash-your-keyboard-from-the-command-line)ã§è¡Œãªã†å¿…è¦ãŒã‚りã¾ã™ã€‚ | 16 | Linux を使用ã—ã¦ã„ã‚‹å ´åˆ(ãŠã‚ˆã³ã€ã‚³ãƒžãƒ³ãƒ‰ãƒ©ã‚¤ãƒ³ã§ãƒ•ァームウェアを書ãè¾¼ã¿ãŸã„å ´åˆ)ã¯ã€ä¸‹ã®æ–¹ã§æ¦‚説ã™ã‚‹[方法](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 種類ã®ã‚‚ã®ãŒä½¿ã‚れã¦ã„ã¾ã™ã€‚ |
| 124 | Pro Micro ã¨ãã®ã‚¯ãƒãƒ¼ãƒ³ã¯ Caterina ã‚’ã€Teensy 㯠HalfKay ã‚’ã€OLKBã® AVR ボード㯠QMK-DFU ã‚’ã€ãã®ä»–ã® ATmega32U4 ボード㯠DFU ã‚’ã€ãã—ã¦å¤šãã® ARM ボード㯠ARM DFU を使ã„ã¾ã™ã€‚ | 124 | Pro 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 | ||
| 14 | QMK ã¯ã€ç°¡å˜ãªã“ã¨ã¯ç°¡å˜ã«ã€ãã—ã¦ã€é›£ã—ã„ã“ã¨ã‚’å¯èƒ½ãªã“ã¨ã«ã™ã‚‹ã“ã¨ã§ã€ã‚ãªãŸã®æ‰‹ã«ãŸãã•ã‚“ã®ãƒ‘ワーをもãŸã‚‰ã—ã¾ã™ã€‚ | 14 | QMK ã¯ã€ç°¡å˜ãªã“ã¨ã¯ç°¡å˜ã«ã€ãã—ã¦ã€é›£ã—ã„ã“ã¨ã‚’å¯èƒ½ãªã“ã¨ã«ã™ã‚‹ã“ã¨ã§ã€ã‚ãªãŸã®æ‰‹ã«ãŸãã•ã‚“ã®ãƒ‘ワーをもãŸã‚‰ã—ã¾ã™ã€‚ |
| 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 リãƒã‚¸ãƒˆãƒªã‹ã‚‰ã€ãƒ–ランãƒã¨ã‚¿ã‚° — "refs" ã¨ç·ç§°ã•れã¾ã™ — ã‚’å–å¾—ã—ã¾ã™ã€‚ | 41 | ã“ã®ã‚³ãƒžãƒ³ãƒ‰ã¯ `upstream` ã¨ã„ã†ãƒ‹ãƒƒã‚¯ãƒãƒ¼ãƒ ã‚’æŒã¤ QMK リãƒã‚¸ãƒˆãƒªã‹ã‚‰ã€ãƒ–ランãƒã¨ã‚¿ã‚° — "refs" ã¨ç·ç§°ã•れã¾ã™ — ã‚’å–å¾—ã—ã¾ã™ã€‚ |
| 42 | ã“れã§ã€ã‚ãªãŸã®ãƒ•ォーク `origin` ã®ãƒ‡ãƒ¼ã‚¿ã‚’ QMK ãŒä¿æŒã™ã‚‹ãƒ‡ãƒ¼ã‚¿ã¨æ¯”較ã§ãã¾ã™ã€‚ | 42 | ã“れã§ã€ã‚ãªãŸã®ãƒ•ォーク `origin` ã®ãƒ‡ãƒ¼ã‚¿ã‚’ QMK ãŒä¿æŒã™ã‚‹ãƒ‡ãƒ¼ã‚¿ã¨æ¯”較ã§ãã¾ã™ã€‚ |
| 43 | 43 | ||
| 44 | ã‚ãªãŸã®ãƒ•ォーク㮠`master` ã‚’æ›´æ–°ã™ã‚‹ã«ã¯ã€æ¬¡ã‚’実行ã—ã¾ã™ã€å„行ã®å¾Œã«Enterã‚ーを押ã—ã¦ãã ã•ã„: | 44 | ã‚ãªãŸã®ãƒ•ォーク㮠`master` ã‚’æ›´æ–°ã™ã‚‹ã«ã¯ã€æ¬¡ã‚’実行ã—ã¾ã™ã€å„行ã®å¾Œã« Enter ã‚ーを押ã—ã¦ãã ã•ã„: |
| 45 | 45 | ||
| 46 | ``` | 46 | ``` |
| 47 | git checkout master | 47 | git checkout master |
| @@ -98,4 +98,4 @@ git commit -m "My commit message." | |||
| 98 | 98 | ||
| 99 | 最後ã®ã‚¹ãƒ†ãƒƒãƒ—ã¯ã€å¤‰æ›´ã‚’フォークã«ãƒ—ッシュã™ã‚‹ã“ã¨ã§ã™ã€‚ | 99 | 最後ã®ã‚¹ãƒ†ãƒƒãƒ—ã¯ã€å¤‰æ›´ã‚’フォークã«ãƒ—ッシュã™ã‚‹ã“ã¨ã§ã™ã€‚ |
| 100 | ã“れを行ã†ã«ã¯ã€`git push`ã¨å…¥åŠ›ã—ã¾ã™ã€‚ | 100 | ã“れを行ã†ã«ã¯ã€`git push`ã¨å…¥åŠ›ã—ã¾ã™ã€‚ |
| 101 | Gitã¯ã€ `dev_branch`ã®ç¾åœ¨ã®çŠ¶æ…‹ã‚’ãƒ•ã‚©ãƒ¼ã‚¯ã«å…¬é–‹ã—ã¾ã™ã€‚ | 101 | Git ã¯ã€ `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>`</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>`</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>`</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) | | ||
