From fa6d23235bf429446250cd5212e209d5fbfdbac2 Mon Sep 17 00:00:00 2001 From: Ryan Date: Sat, 1 Jun 2024 10:37:40 +1000 Subject: [PATCH 01/46] [docs] Remove gitbook directory (#23839) --- docs/__capabilities.md | 2 +- docs/feature_rgblight.md | 2 +- docs/{gitbook/images => public}/color-wheel.svg | 0 docs/{gitbook/images => public}/favicon.ico | Bin docs/{gitbook/images => public}/favicon.png | Bin 5 files changed, 2 insertions(+), 2 deletions(-) rename docs/{gitbook/images => public}/color-wheel.svg (100%) rename docs/{gitbook/images => public}/favicon.ico (100%) rename docs/{gitbook/images => public}/favicon.png (100%) diff --git a/docs/__capabilities.md b/docs/__capabilities.md index dc576d4a3c1..873ca44664f 100644 --- a/docs/__capabilities.md +++ b/docs/__capabilities.md @@ -41,7 +41,7 @@ Unrelated to styling, high-level tech. ![QMK Light](./public/badge-community-light.svg) ![QMK Dark](./public/badge-community-dark.svg) -HSV Color Wheel +HSV Color Wheel ### Lists diff --git a/docs/feature_rgblight.md b/docs/feature_rgblight.md index bd973ef0095..682d8b8cbae 100644 --- a/docs/feature_rgblight.md +++ b/docs/feature_rgblight.md @@ -49,7 +49,7 @@ Then you should be able to use the keycodes below to change the RGB lighting to QMK uses [Hue, Saturation, and Value](https://en.wikipedia.org/wiki/HSL_and_HSV) to select colors rather than RGB. The color wheel below demonstrates how this works. -HSV Color Wheel +HSV Color Wheel Changing the **Hue** cycles around the circle.
Changing the **Saturation** moves between the inner and outer sections of the wheel, affecting the intensity of the color.
diff --git a/docs/gitbook/images/color-wheel.svg b/docs/public/color-wheel.svg similarity index 100% rename from docs/gitbook/images/color-wheel.svg rename to docs/public/color-wheel.svg diff --git a/docs/gitbook/images/favicon.ico b/docs/public/favicon.ico similarity index 100% rename from docs/gitbook/images/favicon.ico rename to docs/public/favicon.ico diff --git a/docs/gitbook/images/favicon.png b/docs/public/favicon.png similarity index 100% rename from docs/gitbook/images/favicon.png rename to docs/public/favicon.png From 78a0adfbb4d2c4e12f93f2a62ded0020d406243e Mon Sep 17 00:00:00 2001 From: Ryan Date: Sun, 2 Jun 2024 12:42:24 +1000 Subject: [PATCH 02/46] [docs] Organize driver & feature docs into subfolders (#23848) Co-authored-by: Nick Brassel --- docs/ChangeLog/20210828.md | 4 +- docs/ChangeLog/20211127.md | 4 +- docs/ChangeLog/20220226.md | 2 +- docs/ChangeLog/20220528.md | 4 +- docs/ChangeLog/20220827.md | 2 +- docs/ChangeLog/20221126.md | 4 +- docs/ChangeLog/20230226.md | 2 +- docs/ChangeLog/20230528.md | 4 +- docs/ChangeLog/20230827.md | 2 +- docs/ChangeLog/20240225.md | 2 +- docs/_sidebar.json | 112 +++++++++--------- docs/cli_commands.md | 2 +- docs/config_options.md | 12 +- docs/custom_quantum_functions.md | 2 +- docs/documentation_best_practices.md | 2 +- docs/driver_installation_zadig.md | 4 +- docs/{adc_driver.md => drivers/adc.md} | 2 +- docs/{apa102_driver.md => drivers/apa102.md} | 4 +- docs/{audio_driver.md => drivers/audio.md} | 2 +- docs/{eeprom_driver.md => drivers/eeprom.md} | 2 +- docs/{flash_driver.md => drivers/flash.md} | 0 docs/{gpio_control.md => drivers/gpio.md} | 0 docs/{i2c_driver.md => drivers/i2c.md} | 2 +- docs/{serial_driver.md => drivers/serial.md} | 4 +- docs/{spi_driver.md => drivers/spi.md} | 2 +- docs/{uart_driver.md => drivers/uart.md} | 0 docs/{ws2812_driver.md => drivers/ws2812.md} | 2 +- docs/easy_maker.md | 2 +- docs/faq_build.md | 2 +- docs/faq_debug.md | 2 +- docs/faq_keymap.md | 6 +- docs/feature_advanced_keycodes.md | 4 +- docs/feature_converters.md | 16 +-- docs/feature_eeprom.md | 2 +- docs/feature_layers.md | 4 +- docs/feature_macros.md | 4 +- docs/{feature_audio.md => features/audio.md} | 6 +- .../auto_shift.md} | 8 +- .../autocorrect.md} | 2 +- .../backlight.md} | 4 +- .../bluetooth.md} | 2 +- .../bootmagic.md} | 6 +- .../caps_word.md} | 4 +- docs/{feature_combo.md => features/combo.md} | 4 +- .../command.md} | 2 +- .../digitizer.md} | 2 +- .../dip_switch.md} | 0 .../dynamic_macros.md} | 0 .../encoders.md} | 0 .../grave_esc.md} | 0 .../haptic_feedback.md} | 4 +- .../hd44780.md} | 0 .../joystick.md} | 2 +- .../key_lock.md} | 4 +- .../key_overrides.md} | 4 +- .../leader_key.md} | 4 +- .../led_indicators.md} | 2 +- .../led_matrix.md} | 2 +- docs/{feature_midi.md => features/midi.md} | 2 +- .../mouse_keys.md} | 2 +- .../oled_driver.md} | 0 .../os_detection.md} | 0 .../pointing_device.md} | 8 +- .../programmable_button.md} | 0 .../ps2_mouse.md} | 0 .../{feature_rawhid.md => features/rawhid.md} | 0 .../repeat_key.md} | 9 +- .../rgb_matrix.md} | 10 +- .../rgblight.md} | 10 +- .../{feature_secure.md => features/secure.md} | 2 +- .../send_string.md} | 8 +- .../sequencer.md} | 0 .../space_cadet.md} | 2 +- .../split_keyboard.md} | 10 +- .../{feature_st7565.md => features/st7565.md} | 0 .../stenography.md} | 4 +- .../swap_hands.md} | 2 +- .../tap_dance.md} | 4 +- .../tri_layer.md} | 2 +- .../unicode.md} | 4 +- docs/{feature_wpm.md => features/wpm.md} | 0 docs/flashing.md | 4 +- docs/getting_started_make_guide.md | 6 +- docs/hand_wire.md | 2 +- docs/hardware_drivers.md | 10 +- docs/hardware_keyboard_guidelines.md | 2 +- docs/keycodes.md | 42 +++---- docs/mod_tap.md | 2 +- docs/newbs_building_firmware.md | 4 +- docs/platformdev_rp2040.md | 30 ++--- docs/porting_your_keyboard_to_qmk.md | 2 +- docs/pr_checklist.md | 6 +- docs/ref_functions.md | 4 +- docs/reference_glossary.md | 12 +- docs/reference_info_json.md | 44 +++---- docs/syllabus.md | 28 ++--- docs/tap_hold.md | 2 +- 97 files changed, 282 insertions(+), 285 deletions(-) rename docs/{adc_driver.md => drivers/adc.md} (99%) rename docs/{apa102_driver.md => drivers/apa102.md} (85%) rename docs/{audio_driver.md => drivers/audio.md} (97%) rename docs/{eeprom_driver.md => drivers/eeprom.md} (99%) rename docs/{flash_driver.md => drivers/flash.md} (100%) rename docs/{gpio_control.md => drivers/gpio.md} (100%) rename docs/{i2c_driver.md => drivers/i2c.md} (99%) rename docs/{serial_driver.md => drivers/serial.md} (98%) rename docs/{spi_driver.md => drivers/spi.md} (99%) rename docs/{uart_driver.md => drivers/uart.md} (100%) rename docs/{ws2812_driver.md => drivers/ws2812.md} (98%) rename docs/{feature_audio.md => features/audio.md} (99%) rename docs/{feature_auto_shift.md => features/auto_shift.md} (97%) rename docs/{feature_autocorrect.md => features/autocorrect.md} (98%) rename docs/{feature_backlight.md => features/backlight.md} (97%) rename docs/{feature_bluetooth.md => features/bluetooth.md} (96%) rename docs/{feature_bootmagic.md => features/bootmagic.md} (87%) rename docs/{feature_caps_word.md => features/caps_word.md} (98%) rename docs/{feature_combo.md => features/combo.md} (98%) rename docs/{feature_command.md => features/command.md} (95%) rename docs/{feature_digitizer.md => features/digitizer.md} (96%) rename docs/{feature_dip_switch.md => features/dip_switch.md} (100%) rename docs/{feature_dynamic_macros.md => features/dynamic_macros.md} (100%) rename docs/{feature_encoders.md => features/encoders.md} (100%) rename docs/{feature_grave_esc.md => features/grave_esc.md} (100%) rename docs/{feature_haptic_feedback.md => features/haptic_feedback.md} (99%) rename docs/{feature_hd44780.md => features/hd44780.md} (100%) rename docs/{feature_joystick.md => features/joystick.md} (98%) rename docs/{feature_key_lock.md => features/key_lock.md} (86%) rename docs/{feature_key_overrides.md => features/key_overrides.md} (95%) rename docs/{feature_leader_key.md => features/leader_key.md} (94%) rename docs/{feature_led_indicators.md => features/led_indicators.md} (98%) rename docs/{feature_led_matrix.md => features/led_matrix.md} (99%) rename docs/{feature_midi.md => features/midi.md} (99%) rename docs/{feature_mouse_keys.md => features/mouse_keys.md} (98%) rename docs/{feature_oled_driver.md => features/oled_driver.md} (100%) rename docs/{feature_os_detection.md => features/os_detection.md} (100%) rename docs/{feature_pointing_device.md => features/pointing_device.md} (98%) rename docs/{feature_programmable_button.md => features/programmable_button.md} (100%) rename docs/{feature_ps2_mouse.md => features/ps2_mouse.md} (100%) rename docs/{feature_rawhid.md => features/rawhid.md} (100%) rename docs/{feature_repeat_key.md => features/repeat_key.md} (98%) rename docs/{feature_rgb_matrix.md => features/rgb_matrix.md} (99%) rename docs/{feature_rgblight.md => features/rgblight.md} (98%) rename docs/{feature_secure.md => features/secure.md} (97%) rename docs/{feature_send_string.md => features/send_string.md} (93%) rename docs/{feature_sequencer.md => features/sequencer.md} (100%) rename docs/{feature_space_cadet.md => features/space_cadet.md} (97%) rename docs/{feature_split_keyboard.md => features/split_keyboard.md} (97%) rename docs/{feature_st7565.md => features/st7565.md} (100%) rename docs/{feature_stenography.md => features/stenography.md} (98%) rename docs/{feature_swap_hands.md => features/swap_hands.md} (94%) rename docs/{feature_tap_dance.md => features/tap_dance.md} (99%) rename docs/{feature_tri_layer.md => features/tri_layer.md} (98%) rename docs/{feature_unicode.md => features/unicode.md} (98%) rename docs/{feature_wpm.md => features/wpm.md} (100%) diff --git a/docs/ChangeLog/20210828.md b/docs/ChangeLog/20210828.md index f84169cc947..18b1d92b0cd 100644 --- a/docs/ChangeLog/20210828.md +++ b/docs/ChangeLog/20210828.md @@ -10,11 +10,11 @@ It is also now possible to define combos that have keys overlapping with other c ### Key Overrides ([#11422](https://github.com/qmk/qmk_firmware/pull/11422)) {#key-overrides} -QMK now has a new feature: [key overrides](../feature_key_overrides). This feature allows for overriding the output of key combinations involving modifiers. As an example, pressing Shift+2 normally results in an @ on US-ANSI keyboard layouts -- the new key overrides allow for adding similar functionality, but for any modifier + key press. +QMK now has a new feature: [key overrides](../features/key_overrides). This feature allows for overriding the output of key combinations involving modifiers. As an example, pressing Shift+2 normally results in an @ on US-ANSI keyboard layouts -- the new key overrides allow for adding similar functionality, but for any modifier + key press. To illustrate, it's now possible to use the key overrides feature to translate Shift + Backspace into Delete -- an often-requested example of where this functionality comes in handy. -There's far more to describe that what lives in this changelog, so head over to the [key overrides documentation](../feature_key_overrides) for more examples and info. +There's far more to describe that what lives in this changelog, so head over to the [key overrides documentation](../features/key_overrides) for more examples and info. ### Digitizer support ([#12851](https://github.com/qmk/qmk_firmware/pull/12851)) diff --git a/docs/ChangeLog/20211127.md b/docs/ChangeLog/20211127.md index d810be505a4..5ca68c39993 100644 --- a/docs/ChangeLog/20211127.md +++ b/docs/ChangeLog/20211127.md @@ -31,7 +31,7 @@ QMK now has core-supplied support for the following pointing device peripherals: | `POINTING_DEVICE_DRIVER = pimoroni_trackball` | Pimoroni Trackball | | `POINTING_DEVICE_DRIVER = pmw3360` | PMW 3360 | -See the new documentation for the [Pointing Device](../feature_pointing_device) feature for more information on specific configuration for each driver. +See the new documentation for the [Pointing Device](../features/pointing_device) feature for more information on specific configuration for each driver. ### Dynamic Tapping Term ([#11036](https://github.com/qmk/qmk_firmware/pull/11036)) {#dynamic-tapping-term} @@ -116,7 +116,7 @@ Related to the previous section -- RGB Matrix modes have now been made to be opt Most keyboards keep their original functionality, but over time the QMK maintainers have found that removal of animations ends up being the quickest way to free up space... and some keyboards have had animations such as reactive effects disabled by default in order to still fit within the flash space available. -The full list of configurables to turn specific animations back on can be found at on the [RGB Matrix documentation](../feature_rgb_matrix#rgb-matrix-effects) page. +The full list of configurables to turn specific animations back on can be found at on the [RGB Matrix documentation](../features/rgb_matrix#rgb-matrix-effects) page. ### OLED task refactoring ([#14864](https://github.com/qmk/qmk_firmware/pull/14864)) {#oled-task-refactor} diff --git a/docs/ChangeLog/20220226.md b/docs/ChangeLog/20220226.md index f0cbbc0603e..a10b6447eac 100644 --- a/docs/ChangeLog/20220226.md +++ b/docs/ChangeLog/20220226.md @@ -12,7 +12,7 @@ Something something *Lets go gamers!* Pointing devices can now be shared across a split keyboard with support for a single pointing device or a pointing device on each side. -See the [Pointing Device](../feature_pointing_device) documentation for further configuration options. +See the [Pointing Device](../features/pointing_device) documentation for further configuration options. ## Changes Requiring User Action {#changes-requiring-user-action} diff --git a/docs/ChangeLog/20220528.md b/docs/ChangeLog/20220528.md index 31347c9c005..ae84f163d4d 100644 --- a/docs/ChangeLog/20220528.md +++ b/docs/ChangeLog/20220528.md @@ -8,7 +8,7 @@ This is a new feature that allows for capslock-like functionality that turns its For instance, if you wish to type "QMK" without holding shift the entire time, you can either tap both left and right shift, or double-tap shift, to turn on _Caps Word_ -- then type `qmk` (lowercase) without holding shift. Once you hit any key other than `a`--`z`, `0`--`9`, `-`, `_`, delete, or backspace, this will go back to normal typing! -There are other activation mechanisms as well as configurable options like timeout and the like -- see the [Caps Word documentation](../feature_caps_word) for more information. +There are other activation mechanisms as well as configurable options like timeout and the like -- see the [Caps Word documentation](../features/caps_word) for more information. ### Quantum Painter ([#10174](https://github.com/qmk/qmk_firmware/pull/10174)) {#quantum-painter} @@ -26,7 +26,7 @@ Quantum Painter is not supported on AVR due to complexity and size constraints. ### Encoder Mapping ([#13286](https://github.com/qmk/qmk_firmware/pull/13286)) {#encoder-mapping} -One of the long-standing complaints with Encoders is that there has been no easy way to configure them in user keymaps. [#13286](https://github.com/qmk/qmk_firmware/pull/13286) added support for [Encoder Mapping](../feature_encoders#encoder-map), which allows users to define encoder functionality in a similar way to their normal keymap. +One of the long-standing complaints with Encoders is that there has been no easy way to configure them in user keymaps. [#13286](https://github.com/qmk/qmk_firmware/pull/13286) added support for [Encoder Mapping](../features/encoders#encoder-map), which allows users to define encoder functionality in a similar way to their normal keymap. ::: warning This is not yet supported by QMK Configurator. It is also unlikely to ever be supported by VIA. diff --git a/docs/ChangeLog/20220827.md b/docs/ChangeLog/20220827.md index d58db91272f..6d9f82f36a6 100644 --- a/docs/ChangeLog/20220827.md +++ b/docs/ChangeLog/20220827.md @@ -83,7 +83,7 @@ The now-EOL kbfirmware allowed people who aren't set up with QMK the ability to QMK has had the ability to write to internal MCU flash in order to emulate EEPROM for some time now, but it was only limited to a small number of MCUs. The base HAL used by QMK for a large number of ARM devices provides a "proper" embedded MCU flash driver, so _@tzarc_ decoupled the wear-leveling algorithm from the old flash writing code, improved it, wrote some tests, and enabled its use for a much larger number of other devices... including RP2040's XIP flash, and external SPI NOR Flash. -See the [EEPROM Driver](../eeprom_driver) documentation for more information. +See the [EEPROM Driver](../drivers/eeprom) documentation for more information. ### Pointing Device Improvements ([#16371](https://github.com/qmk/qmk_firmware/pull/16371), [#17111](https://github.com/qmk/qmk_firmware/pull/17111), [#17176](https://github.com/qmk/qmk_firmware/pull/17176), [#17482](https://github.com/qmk/qmk_firmware/pull/17482), [#17776](https://github.com/qmk/qmk_firmware/pull/17776), [#17613](https://github.com/qmk/qmk_firmware/pull/17613)) {#pointing-device-improvements} diff --git a/docs/ChangeLog/20221126.md b/docs/ChangeLog/20221126.md index 25cf1d592dd..41b0ad0a6b7 100644 --- a/docs/ChangeLog/20221126.md +++ b/docs/ChangeLog/20221126.md @@ -4,7 +4,7 @@ ### Autocorrect ([#15699](https://github.com/qmk/qmk_firmware/pull/15699)) {#autocorrect} -_@getreuer_ in their infinite wisdom decided that autocorrect was a feature needed by QMK. As is customary, _@drashna_ adapted it to core and got it into a state that everyone else can use it. See [Feature: Autocorrect](../feature_autocorrect) for more ifnormation (grin). +_@getreuer_ in their infinite wisdom decided that autocorrect was a feature needed by QMK. As is customary, _@drashna_ adapted it to core and got it into a state that everyone else can use it. See [Feature: Autocorrect](../features/autocorrect) for more ifnormation (grin). ## Changes Requiring User Action {#changes-requiring-user-action} @@ -132,7 +132,7 @@ The equivalent transformations should be done for LED Matrix boards. ### Unicode mode refactoring {#unicode-mode-renaming} -Unicode modes were renamed in order to prevent collision with equivalent keycodes. The available values for `UNICODE_SELECTED_MODES` changed -- see [Feature: Unicode](../feature_unicode#setting-the-input-mode) for the new list of values and how to configure them. +Unicode modes were renamed in order to prevent collision with equivalent keycodes. The available values for `UNICODE_SELECTED_MODES` changed -- see [Feature: Unicode](../features/unicode#setting-the-input-mode) for the new list of values and how to configure them. ## Notable core changes {#notable-core} diff --git a/docs/ChangeLog/20230226.md b/docs/ChangeLog/20230226.md index ee560686044..87ff9242645 100644 --- a/docs/ChangeLog/20230226.md +++ b/docs/ChangeLog/20230226.md @@ -106,7 +106,7 @@ void leader_end_user(void) { } ``` -For more information please see the [Leader Key documentation](../feature_leader_key). +For more information please see the [Leader Key documentation](../features/leader_key). ### Updated Keyboard Codebases {#updated-keyboard-codebases} diff --git a/docs/ChangeLog/20230528.md b/docs/ChangeLog/20230528.md index 40ab3a420c2..77ad6209b0e 100644 --- a/docs/ChangeLog/20230528.md +++ b/docs/ChangeLog/20230528.md @@ -24,7 +24,7 @@ Of note for keyboard designers: A new pair of keys has been added to QMK -- namely `QK_REPEAT_KEY` and `QK_ALT_REPEAT_KEY` (shortened: `QK_REP`/`QK_AREP`). These allow you to repeat the last key pressed, or in the case of the alternate key, press the "opposite" of the last key. For example, if you press `KC_LEFT`, pressing `QK_REPEAT_KEY` afterwards repeats `KC_LEFT`, but pressing `QK_ALT_REPEAT_KEY` instead sends `KC_RIGHT`. -The full list of default alternate keys is available on the [Repeat Key](../feature_repeat_key) documentation. +The full list of default alternate keys is available on the [Repeat Key](../features/repeat_key) documentation. To enable these keys, in your keymap's `rules.mk`, add: @@ -93,7 +93,7 @@ Additionally, this ensures that builds on QMK Configurator produce some sort of The "classic" OLED driver picked up support for additional sizes of OLED displays, support for the SH1107 controller, and SPI-based OLED support. -Other configurable items are available and can be found on the [OLED Driver page](../feature_oled_driver). +Other configurable items are available and can be found on the [OLED Driver page](../features/oled_driver). ## Full changelist {#full-changelist} diff --git a/docs/ChangeLog/20230827.md b/docs/ChangeLog/20230827.md index aecbcb0d8f4..493ee84349d 100644 --- a/docs/ChangeLog/20230827.md +++ b/docs/ChangeLog/20230827.md @@ -42,7 +42,7 @@ AVR sees minimal (if any) benefit -- `double` was interpreted as `float` on AVR ### Remove encoder in-matrix workaround code ([#20389](https://github.com/qmk/qmk_firmware/pull/20389)) {#remove-encoder-in-matrix-workaround-code} -Some keyboards "hacked" encoder support into spare slots in the key matrix in order to interoperate with VIA. This workaround is no longer necessary, and the code has been removed. If you have a keyboard that uses this workaround, you will need to update your keymap to use the new [Encoder Map](../feature_encoders#encoder-map) API instead. +Some keyboards "hacked" encoder support into spare slots in the key matrix in order to interoperate with VIA. This workaround is no longer necessary, and the code has been removed. If you have a keyboard that uses this workaround, you will need to update your keymap to use the new [Encoder Map](../features/encoders#encoder-map) API instead. ### Unicodemap keycodes rename ([#21092](https://github.com/qmk/qmk_firmware/pull/21092)) {#unicodemap-keycodes-rename} diff --git a/docs/ChangeLog/20240225.md b/docs/ChangeLog/20240225.md index f4103c594e0..1ebfbd23094 100644 --- a/docs/ChangeLog/20240225.md +++ b/docs/ChangeLog/20240225.md @@ -120,7 +120,7 @@ In some cases, accidental automatic activation of the mouse layer made it diffic ### DIP Switch Mapping ([#22543](https://github.com/qmk/qmk_firmware/pull/22543)) {#dip-switch-map} -Much like Encoder Mapping, DIP Switch Mapping allows for specifying a table of actions to execute when a DIP switch state changes. See the [DIP Switch Documentation](../feature_dip_switch#dip-switch-map) for more information. +Much like Encoder Mapping, DIP Switch Mapping allows for specifying a table of actions to execute when a DIP switch state changes. See the [DIP Switch Documentation](../features/dip_switch#dip-switch-map) for more information. ```c #if defined(DIP_SWITCH_MAP_ENABLE) diff --git a/docs/_sidebar.json b/docs/_sidebar.json index f1b7c156e6e..b41719e4b32 100644 --- a/docs/_sidebar.json +++ b/docs/_sidebar.json @@ -103,45 +103,45 @@ { "text": "Advanced Keycodes", "items": [ - { "text": "Command", "link": "/feature_command" }, - { "text": "Dynamic Macros", "link": "/feature_dynamic_macros" }, - { "text": "Grave Escape", "link": "/feature_grave_esc" }, - { "text": "Leader Key", "link": "/feature_leader_key" }, + { "text": "Command", "link": "/features/command" }, + { "text": "Dynamic Macros", "link": "/features/dynamic_macros" }, + { "text": "Grave Escape", "link": "/features/grave_esc" }, + { "text": "Leader Key", "link": "/features/leader_key" }, { "text": "Mod-Tap", "link": "/mod_tap" }, { "text": "Macros", "link": "/feature_macros" }, - { "text": "Mouse Keys", "link": "/feature_mouse_keys" }, - { "text": "Programmable Button", "link": "/feature_programmable_button" }, - { "text": "Repeat Key", "link": "/feature_repeat_key" }, - { "text": "Space Cadet Shift", "link": "/feature_space_cadet" }, + { "text": "Mouse Keys", "link": "/features/mouse_keys" }, + { "text": "Programmable Button", "link": "/features/programmable_button" }, + { "text": "Repeat Key", "link": "/features/repeat_key" }, + { "text": "Space Cadet Shift", "link": "/features/space_cadet" }, { "text": "US ANSI Shifted Keys", "link": "/keycodes_us_ansi_shifted" } ] }, { "text": "Software Features", "items": [ - { "text": "Auto Shift", "link": "/feature_auto_shift" }, - { "text": "Autocorrect", "link": "/feature_autocorrect" }, - { "text": "Caps Word", "link": "/feature_caps_word" }, - { "text": "Combos", "link": "/feature_combo" }, + { "text": "Auto Shift", "link": "/features/auto_shift" }, + { "text": "Autocorrect", "link": "/features/autocorrect" }, + { "text": "Caps Word", "link": "/features/caps_word" }, + { "text": "Combos", "link": "/features/combo" }, { "text": "Debounce API", "link": "/feature_debounce_type" }, - { "text": "Digitizer", "link": "/feature_digitizer" }, + { "text": "Digitizer", "link": "/features/digitizer" }, { "text": "EEPROM", "link": "/feature_eeprom" }, - { "text": "Key Lock", "link": "/feature_key_lock" }, - { "text": "Key Overrides", "link": "/feature_key_overrides" }, + { "text": "Key Lock", "link": "/features/key_lock" }, + { "text": "Key Overrides", "link": "/features/key_overrides" }, { "text": "Layers", "link": "/feature_layers" }, { "text": "One Shot Keys", "link": "/one_shot_keys" }, - { "text": "OS Detection", "link": "/feature_os_detection" }, - { "text": "Raw HID", "link": "/feature_rawhid" }, - { "text": "Secure", "link": "/feature_secure" }, - { "text": "Send String", "link": "/feature_send_string" }, - { "text": "Sequencer", "link": "/feature_sequencer" }, - { "text": "Swap Hands", "link": "/feature_swap_hands" }, - { "text": "Tap Dance", "link": "/feature_tap_dance" }, + { "text": "OS Detection", "link": "/features/os_detection" }, + { "text": "Raw HID", "link": "/features/rawhid" }, + { "text": "Secure", "link": "/features/secure" }, + { "text": "Send String", "link": "/features/send_string" }, + { "text": "Sequencer", "link": "/features/sequencer" }, + { "text": "Swap Hands", "link": "/features/swap_hands" }, + { "text": "Tap Dance", "link": "/features/tap_dance" }, { "text": "Tap-Hold Configuration", "link": "/tap_hold" }, - { "text": "Tri Layer", "link": "/feature_tri_layer" }, - { "text": "Unicode", "link": "/feature_unicode" }, + { "text": "Tri Layer", "link": "/features/tri_layer" }, + { "text": "Unicode", "link": "/features/unicode" }, { "text": "Userspace", "link": "/feature_userspace" }, - { "text": "WPM Calculation", "link": "/feature_wpm" } + { "text": "WPM Calculation", "link": "/features/wpm" } ] }, { @@ -157,35 +157,35 @@ { "text": "Quantum Painter LVGL Integration", "link": "/quantum_painter_lvgl" } ] }, - { "text": "HD44780 LCD Driver", "link": "/feature_hd44780" }, - { "text": "ST7565 LCD Driver", "link": "/feature_st7565" }, - { "text": "OLED Driver", "link": "/feature_oled_driver" } + { "text": "HD44780 LCD Driver", "link": "/features/hd44780" }, + { "text": "ST7565 LCD Driver", "link": "/features/st7565" }, + { "text": "OLED Driver", "link": "/features/oled_driver" } ] }, { "text": "Lighting", "items": [ - { "text": "Backlight", "link": "/feature_backlight" }, - { "text": "LED Matrix", "link": "/feature_led_matrix" }, - { "text": "RGB Lighting", "link": "/feature_rgblight" }, - { "text": "RGB Matrix", "link": "/feature_rgb_matrix" } + { "text": "Backlight", "link": "/features/backlight" }, + { "text": "LED Matrix", "link": "/features/led_matrix" }, + { "text": "RGB Lighting", "link": "/features/rgblight" }, + { "text": "RGB Matrix", "link": "/features/rgb_matrix" } ] }, - { "text": "Audio", "link": "/feature_audio" }, - { "text": "Bluetooth", "link": "/feature_bluetooth" }, - { "text": "Bootmagic Lite", "link": "/feature_bootmagic" }, + { "text": "Audio", "link": "/features/audio" }, + { "text": "Bluetooth", "link": "/features/bluetooth" }, + { "text": "Bootmagic Lite", "link": "/features/bootmagic" }, { "text": "Converters", "link": "/feature_converters" }, { "text": "Custom Matrix", "link": "/custom_matrix" }, - { "text": "DIP Switch", "link": "/feature_dip_switch" }, - { "text": "Encoders", "link": "/feature_encoders" }, - { "text": "Haptic Feedback", "link": "/feature_haptic_feedback" }, - { "text": "Joystick", "link": "/feature_joystick" }, - { "text": "LED Indicators", "link": "/feature_led_indicators" }, - { "text": "MIDI", "link": "/feature_midi" }, - { "text": "Pointing Device", "link": "/feature_pointing_device" }, - { "text": "PS/2 Mouse", "link": "/feature_ps2_mouse" }, - { "text": "Split Keyboard", "link": "/feature_split_keyboard" }, - { "text": "Stenography", "link": "/feature_stenography" } + { "text": "DIP Switch", "link": "/features/dip_switch" }, + { "text": "Encoders", "link": "/features/encoders" }, + { "text": "Haptic Feedback", "link": "/features/haptic_feedback" }, + { "text": "Joystick", "link": "/features/joystick" }, + { "text": "LED Indicators", "link": "/features/led_indicators" }, + { "text": "MIDI", "link": "/features/midi" }, + { "text": "Pointing Device", "link": "/features/pointing_device" }, + { "text": "PS/2 Mouse", "link": "/features/ps2_mouse" }, + { "text": "Split Keyboard", "link": "/features/split_keyboard" }, + { "text": "Stenography", "link": "/features/stenography" } ] }, { @@ -226,19 +226,19 @@ "text": "Drivers", "link": "hardware_drivers", "items": [ - { "text": "ADC Driver", "link": "/adc_driver" }, - { "text": "APA102 Driver", "link": "/apa102_driver" }, - { "text": "Audio Driver", "link": "/audio_driver" }, - { "text": "I2C Driver", "link": "/i2c_driver" }, - { "text": "SPI Driver", "link": "/spi_driver" }, - { "text": "WS2812 Driver", "link": "/ws2812_driver" }, - { "text": "EEPROM Driver", "link": "/eeprom_driver" }, - { "text": "Flash Driver", "link": "/flash_driver" }, - { "text": "'serial' Driver", "link": "/serial_driver" }, - { "text": "UART Driver", "link": "/uart_driver" } + { "text": "ADC Driver", "link": "/drivers/adc" }, + { "text": "APA102 Driver", "link": "/drivers/apa102" }, + { "text": "Audio Driver", "link": "/drivers/audio" }, + { "text": "EEPROM Driver", "link": "/drivers/eeprom" }, + { "text": "Flash Driver", "link": "/drivers/flash" }, + { "text": "I2C Driver", "link": "/drivers/i2c" }, + { "text": "'serial' Driver", "link": "/drivers/serial" }, + { "text": "SPI Driver", "link": "/drivers/spi" }, + { "text": "UART Driver", "link": "/drivers/uart" }, + { "text": "WS2812 Driver", "link": "/drivers/ws2812" } ] }, - { "text": "GPIO Controls", "link": "/gpio_control" }, + { "text": "GPIO Controls", "link": "/drivers/gpio" }, { "text": "Keyboard Guidelines", "link": "/hardware_keyboard_guidelines" } ] }, diff --git a/docs/cli_commands.md b/docs/cli_commands.md index 5a85356e707..7d74d8e6177 100644 --- a/docs/cli_commands.md +++ b/docs/cli_commands.md @@ -749,7 +749,7 @@ options: ## `qmk generate-rgb-breathe-table` -This command generates a lookup table (LUT) header file for the [RGB Lighting](feature_rgblight) feature's breathing animation. Place this file in your keyboard or keymap directory as `rgblight_breathe_table.h` to override the default LUT in `quantum/rgblight/`. +This command generates a lookup table (LUT) header file for the [RGB Lighting](features/rgblight) feature's breathing animation. Place this file in your keyboard or keymap directory as `rgblight_breathe_table.h` to override the default LUT in `quantum/rgblight/`. **Usage**: diff --git a/docs/config_options.md b/docs/config_options.md index 236649a0ea5..a1ca8c8d503 100644 --- a/docs/config_options.md +++ b/docs/config_options.md @@ -207,7 +207,7 @@ If you define these options you will enable the associated feature, which may in * `#define TAP_HOLD_CAPS_DELAY 80` * Sets the delay for Tap Hold keys (`LT`, `MT`) when using `KC_CAPS_LOCK` keycode, as this has some special handling on MacOS. The value is in milliseconds, and defaults to 80 ms if not defined. For macOS, you may want to set this to 200 or higher. * `#define KEY_OVERRIDE_REPEAT_DELAY 500` - * Sets the key repeat interval for [key overrides](feature_key_overrides). + * Sets the key repeat interval for [key overrides](features/key_overrides). * `#define LEGACY_MAGIC_HANDLING` * Enables magic configuration handling for advanced keycodes (such as Mod Tap and Layer Tap) @@ -217,14 +217,14 @@ If you define these options you will enable the associated feature, which may in * `#define WS2812_DI_PIN D7` * pin the DI on the WS2812 is hooked-up to * `#define RGBLIGHT_LAYERS` - * Lets you define [lighting layers](feature_rgblight#lighting-layers) that can be toggled on or off. Great for showing the current keyboard layer or caps lock state. + * Lets you define [lighting layers](features/rgblight#lighting-layers) that can be toggled on or off. Great for showing the current keyboard layer or caps lock state. * `#define RGBLIGHT_MAX_LAYERS` - * Defaults to 8. Can be expanded up to 32 if more [lighting layers](feature_rgblight#lighting-layers) are needed. + * Defaults to 8. Can be expanded up to 32 if more [lighting layers](features/rgblight#lighting-layers) are needed. * Note: Increasing the maximum will increase the firmware size and slow sync on split keyboards. * `#define RGBLIGHT_LAYER_BLINK` - * Adds ability to [blink](feature_rgblight#lighting-layer-blink) a lighting layer for a specified number of milliseconds (e.g. to acknowledge an action). + * Adds ability to [blink](features/rgblight#lighting-layer-blink) a lighting layer for a specified number of milliseconds (e.g. to acknowledge an action). * `#define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF` - * If defined, then [lighting layers](feature_rgblight#overriding-rgb-lighting-onoff-status) will be shown even if RGB Light is off. + * If defined, then [lighting layers](features/rgblight#overriding-rgb-lighting-onoff-status) will be shown even if RGB Light is off. * `#define RGBLIGHT_LED_COUNT 12` * number of LEDs * `#define RGBLIGHT_SPLIT` @@ -358,7 +358,7 @@ There are a few different ways to set handedness for split keyboards (listed in * `#define SPLIT_TRANSACTION_IDS_KB .....` * `#define SPLIT_TRANSACTION_IDS_USER .....` - * Allows for custom data sync with the slave when using the QMK-provided split transport. See [custom data sync between sides](feature_split_keyboard#custom-data-sync) for more information. + * Allows for custom data sync with the slave when using the QMK-provided split transport. See [custom data sync between sides](features/split_keyboard#custom-data-sync) for more information. # The `rules.mk` File diff --git a/docs/custom_quantum_functions.md b/docs/custom_quantum_functions.md index ac21f0e0390..729f0cd0283 100644 --- a/docs/custom_quantum_functions.md +++ b/docs/custom_quantum_functions.md @@ -206,7 +206,7 @@ Similar to `matrix_scan_*`, these are called as often as the MCU can handle. To ### Example `void housekeeping_task_user(void)` implementation -This example will show you how to use `void housekeeping_task_user(void)` to turn off [RGB Light](feature_rgblight). For RGB Matrix, the [builtin](feature_rgb_matrix#additional-configh-options) `RGB_MATRIX_TIMEOUT` should be used. +This example will show you how to use `void housekeeping_task_user(void)` to turn off [RGB Light](features/rgblight). For RGB Matrix, the [builtin](features/rgb_matrix#additional-configh-options) `RGB_MATRIX_TIMEOUT` should be used. First, add the following lines to your keymap's `config.h`: diff --git a/docs/documentation_best_practices.md b/docs/documentation_best_practices.md index d41ec28f196..bc64472e241 100644 --- a/docs/documentation_best_practices.md +++ b/docs/documentation_best_practices.md @@ -69,4 +69,4 @@ This page describes my cool feature. You can use my cool feature to make coffee |KC_SUGAR||Order Sugar| ``` -Place your documentation into `docs/feature_.md`, and add that file to the appropriate place in `docs/_sidebar.json`. If you have added any keycodes be sure to add them to `docs/keycodes.md` with a link back to your feature page. +Place your documentation into `docs/features/.md`, and add that file to the appropriate place in `docs/_sidebar.json`. If you have added any keycodes be sure to add them to `docs/keycodes.md` with a link back to your feature page. diff --git a/docs/driver_installation_zadig.md b/docs/driver_installation_zadig.md index ce16ada166a..099376faeb1 100644 --- a/docs/driver_installation_zadig.md +++ b/docs/driver_installation_zadig.md @@ -8,8 +8,8 @@ We recommend the use of the [Zadig](https://zadig.akeo.ie/) utility. If you have ## Installation -Put your keyboard into bootloader mode, either by hitting the `QK_BOOT` keycode (which may be on a different layer), or by pressing the reset switch that's usually located on the underside of the board. If your keyboard has neither, try holding Escape or Space+`B` as you plug it in (see the [Bootmagic Lite](feature_bootmagic) docs for more details). Some boards use [Command](feature_command) instead of Bootmagic; in this case, you can enter bootloader mode by hitting Left Shift+Right Shift+`B` or Left Shift+Right Shift+Escape at any point while the keyboard is plugged in. -Some keyboards may have specific instructions for entering the bootloader. For example, the [Bootmagic Lite](feature_bootmagic) key (default: Escape) might be on a different key, e.g. Left Control; or the magic combination for Command (default: Left Shift+Right Shift) might require you to hold something else, e.g. Left Control+Right Control. Refer to the board's README file if you are unsure. +Put your keyboard into bootloader mode, either by hitting the `QK_BOOT` keycode (which may be on a different layer), or by pressing the reset switch that's usually located on the underside of the board. If your keyboard has neither, try holding Escape or Space+`B` as you plug it in (see the [Bootmagic Lite](features/bootmagic) docs for more details). Some boards use [Command](features/command) instead of Bootmagic; in this case, you can enter bootloader mode by hitting Left Shift+Right Shift+`B` or Left Shift+Right Shift+Escape at any point while the keyboard is plugged in. +Some keyboards may have specific instructions for entering the bootloader. For example, the [Bootmagic Lite](features/bootmagic) key (default: Escape) might be on a different key, e.g. Left Control; or the magic combination for Command (default: Left Shift+Right Shift) might require you to hold something else, e.g. Left Control+Right Control. Refer to the board's README file if you are unsure. To put a device in bootloader mode with USBaspLoader, tap the `RESET` button while holding down the `BOOT` button. Alternatively, hold `BOOT` while inserting the USB cable. diff --git a/docs/adc_driver.md b/docs/drivers/adc.md similarity index 99% rename from docs/adc_driver.md rename to docs/drivers/adc.md index a1ab5a52513..d89068c2aeb 100644 --- a/docs/adc_driver.md +++ b/docs/drivers/adc.md @@ -1,6 +1,6 @@ # ADC Driver -QMK can leverage the Analog-to-Digital Converter (ADC) on supported MCUs to measure voltages on certain pins. This can be useful for implementing things such as battery level indicators for Bluetooth keyboards, or volume controls using a potentiometer, as opposed to a [rotary encoder](feature_encoders). +QMK can leverage the Analog-to-Digital Converter (ADC) on supported MCUs to measure voltages on certain pins. This can be useful for implementing things such as battery level indicators for Bluetooth keyboards, or volume controls using a potentiometer, as opposed to a [rotary encoder](../features/encoders). This driver currently supports both AVR and a limited selection of ARM devices. The values returned are 10-bit integers (0-1023) mapped between 0V and VCC (usually 5V or 3.3V for AVR, 3.3V only for ARM), however on ARM there is more flexibility in control of operation through `#define`s if you need more precision. diff --git a/docs/apa102_driver.md b/docs/drivers/apa102.md similarity index 85% rename from docs/apa102_driver.md rename to docs/drivers/apa102.md index 0f905e3f181..88868a73b59 100644 --- a/docs/apa102_driver.md +++ b/docs/drivers/apa102.md @@ -1,10 +1,10 @@ # APA102 Driver {#apa102-driver} -This driver provides support for APA102 addressable RGB LEDs. They are similar to the [WS2812](ws2812_driver) LEDs, but have increased data and refresh rates. +This driver provides support for APA102 addressable RGB LEDs. They are similar to the [WS2812](ws2812) LEDs, but have increased data and refresh rates. ## Usage {#usage} -In most cases, the APA102 driver code is automatically included if you are using either the [RGBLight](feature_rgblight) or [RGB Matrix](feature_rgb_matrix) feature with the `apa102` driver set, and you would use those APIs instead. +In most cases, the APA102 driver code is automatically included if you are using either the [RGBLight](../features/rgblight) or [RGB Matrix](../features/rgb_matrix) feature with the `apa102` driver set, and you would use those APIs instead. However, if you need to use the driver standalone, add the following to your `rules.mk`: diff --git a/docs/audio_driver.md b/docs/drivers/audio.md similarity index 97% rename from docs/audio_driver.md rename to docs/drivers/audio.md index 4a71b4f411c..c764c97369a 100644 --- a/docs/audio_driver.md +++ b/docs/drivers/audio.md @@ -1,6 +1,6 @@ # Audio Driver {#audio-driver} -The [Audio feature](feature_audio) breaks the hardware specifics out into separate, exchangeable driver units, with a common interface to the audio-"core" - which itself handles playing songs and notes while tracking their progress in an internal state, initializing/starting/stopping the driver as needed. +The [Audio feature](../features/audio) breaks the hardware specifics out into separate, exchangeable driver units, with a common interface to the audio-"core" - which itself handles playing songs and notes while tracking their progress in an internal state, initializing/starting/stopping the driver as needed. Not all MCUs support every available driver, either the platform-support is not there (yet?) or the MCU simply does not have the required hardware peripheral. diff --git a/docs/eeprom_driver.md b/docs/drivers/eeprom.md similarity index 99% rename from docs/eeprom_driver.md rename to docs/drivers/eeprom.md index 6d13377ed8d..82630c501d1 100644 --- a/docs/eeprom_driver.md +++ b/docs/drivers/eeprom.md @@ -133,7 +133,7 @@ If your MCU does not boot after swapping to the EFL wear-leveling driver, it's l ## Wear-leveling SPI Flash Driver Configuration {#wear_leveling-flash_spi-driver-configuration} -This driver performs writes to an external SPI NOR Flash peripheral. It also requires a working configuration for the SPI NOR Flash peripheral -- see the [flash driver](flash_driver) documentation for more information. +This driver performs writes to an external SPI NOR Flash peripheral. It also requires a working configuration for the SPI NOR Flash peripheral -- see the [flash driver](flash) documentation for more information. Configurable options in your keyboard's `config.h`: diff --git a/docs/flash_driver.md b/docs/drivers/flash.md similarity index 100% rename from docs/flash_driver.md rename to docs/drivers/flash.md diff --git a/docs/gpio_control.md b/docs/drivers/gpio.md similarity index 100% rename from docs/gpio_control.md rename to docs/drivers/gpio.md diff --git a/docs/i2c_driver.md b/docs/drivers/i2c.md similarity index 99% rename from docs/i2c_driver.md rename to docs/drivers/i2c.md index ccc21137b38..10949ed59e0 100644 --- a/docs/i2c_driver.md +++ b/docs/drivers/i2c.md @@ -4,7 +4,7 @@ The I2C Master drivers used in QMK have a set of common functions to allow porta ## Usage {#usage} -In most cases, the I2C Master driver code is automatically included if you are using a feature or driver which requires it, such as [OLED](feature_oled_driver). +In most cases, the I2C Master driver code is automatically included if you are using a feature or driver which requires it, such as [OLED](../features/oled_driver). However, if you need to use the driver standalone, add the following to your `rules.mk`: diff --git a/docs/serial_driver.md b/docs/drivers/serial.md similarity index 98% rename from docs/serial_driver.md rename to docs/drivers/serial.md index ce2fc7a46c4..364e951b869 100644 --- a/docs/serial_driver.md +++ b/docs/drivers/serial.md @@ -1,6 +1,6 @@ # 'serial' Driver -The Serial driver powers the [Split Keyboard](feature_split_keyboard) feature. Several implementations are available that cater to the platform and capabilites of MCU in use. Note that none of the drivers support split keyboards with more than two halves. +The Serial driver powers the [Split Keyboard](../features/split_keyboard) feature. Several implementations are available that cater to the platform and capabilites of MCU in use. Note that none of the drivers support split keyboards with more than two halves. | Driver | AVR | ARM | Connection between halves | | --------------------------------------- | ------------------ | ------------------ | --------------------------------------------------------------------------------------------- | @@ -298,7 +298,7 @@ If you're having issues withe serial communication, you can enable debug message ``` ::: tip -The messages will be printed out to the `CONSOLE` output. For additional information, refer to [Debugging/Troubleshooting QMK](faq_debug). +The messages will be printed out to the `CONSOLE` output. For additional information, refer to [Debugging/Troubleshooting QMK](../faq_debug). ::: ## Alternate Functions for selected STM32 MCUs diff --git a/docs/spi_driver.md b/docs/drivers/spi.md similarity index 99% rename from docs/spi_driver.md rename to docs/drivers/spi.md index b77e2dbb46f..ddc35de8511 100644 --- a/docs/spi_driver.md +++ b/docs/drivers/spi.md @@ -4,7 +4,7 @@ The SPI Master drivers used in QMK have a set of common functions to allow porta ## Usage {#usage} -In most cases, the SPI Master driver code is automatically included if you are using a feature or driver which requires it, such as [OLED](feature_oled_driver). +In most cases, the SPI Master driver code is automatically included if you are using a feature or driver which requires it, such as [OLED](../features/oled_driver). However, if you need to use the driver standalone, add the following to your `rules.mk`: diff --git a/docs/uart_driver.md b/docs/drivers/uart.md similarity index 100% rename from docs/uart_driver.md rename to docs/drivers/uart.md diff --git a/docs/ws2812_driver.md b/docs/drivers/ws2812.md similarity index 98% rename from docs/ws2812_driver.md rename to docs/drivers/ws2812.md index c445e2dbf65..61addf1917e 100644 --- a/docs/ws2812_driver.md +++ b/docs/drivers/ws2812.md @@ -10,7 +10,7 @@ The LEDs can be chained together, and the remaining data is passed on to the nex ## Usage {#usage} -In most cases, the WS2812 driver code is automatically included if you are using either the [RGBLight](feature_rgblight) or [RGB Matrix](feature_rgb_matrix) feature with the `ws2812` driver set, and you would use those APIs instead. +In most cases, the WS2812 driver code is automatically included if you are using either the [RGBLight](../features/rgblight) or [RGB Matrix](../features/rgb_matrix) feature with the `ws2812` driver set, and you would use those APIs instead. However, if you need to use the driver standalone, add the following to your `rules.mk`: diff --git a/docs/easy_maker.md b/docs/easy_maker.md index 6a2f00686fd..e94477322b3 100644 --- a/docs/easy_maker.md +++ b/docs/easy_maker.md @@ -5,7 +5,7 @@ Have you ever needed an easy way to program a controller, such as a Proton C or There are different styles of Easy Maker available depending on your needs: * [Direct Pin](https://config.qmk.fm/#/?filter=ez_maker/direct) - Connect a single switch to a single pin -* Direct Pin + Backlight (Coming Soon) - Like Direct Pin but dedicates a single pin to [Backlight](feature_backlight) control +* Direct Pin + Backlight (Coming Soon) - Like Direct Pin but dedicates a single pin to [Backlight](features/backlight) control * Direct Pin + Numlock (Coming Soon) - Like Direct Pin but dedicates a single pin to the Numlock LED * Direct Pin + Capslock (Coming Soon) - Like Direct Pin but dedicates a single pin to the Capslock LED * Direct Pin + Encoder (Coming Soon) - Like Direct Pin but uses 2 pins to add a single rotary encoder diff --git a/docs/faq_build.md b/docs/faq_build.md index 7fafff10664..54ed576c708 100644 --- a/docs/faq_build.md +++ b/docs/faq_build.md @@ -66,4 +66,4 @@ Due to how EEPROM works on ARM based chips, saved settings may no longer be vali [Planck rev6 reset EEPROM](https://cdn.discordapp.com/attachments/473506116718952450/539284620861243409/planck_rev6_default.bin) can be used to force an eeprom reset. After flashing this image, flash your normal firmware again which should restore your keyboard to _normal_ working order. [Preonic rev3 reset EEPROM](https://cdn.discordapp.com/attachments/473506116718952450/537849497313738762/preonic_rev3_default.bin) -If bootmagic is enabled in any form, you should be able to do this too (see [Bootmagic docs](feature_bootmagic) and keyboard info for specifics on how to do this). +If bootmagic is enabled in any form, you should be able to do this too (see [Bootmagic docs](features/bootmagic) and keyboard info for specifics on how to do this). diff --git a/docs/faq_debug.md b/docs/faq_debug.md index e22bc5d9ced..36374974dfd 100644 --- a/docs/faq_debug.md +++ b/docs/faq_debug.md @@ -4,7 +4,7 @@ This page details various common questions people have about troubleshooting the ## Debugging {#debugging} -Your keyboard will output debug information if you have `CONSOLE_ENABLE = yes` in your `rules.mk`. By default the output is very limited, but you can turn on debug mode to increase the amount of debug output. Use the `DB_TOGG` keycode in your keymap, use the [Command](feature_command) feature to enable debug mode, or add the following code to your keymap. +Your keyboard will output debug information if you have `CONSOLE_ENABLE = yes` in your `rules.mk`. By default the output is very limited, but you can turn on debug mode to increase the amount of debug output. Use the `DB_TOGG` keycode in your keymap, use the [Command](features/command) feature to enable debug mode, or add the following code to your keymap. ```c void keyboard_post_init_user(void) { diff --git a/docs/faq_keymap.md b/docs/faq_keymap.md index 0070b6d1de1..56ccc6f6ccf 100644 --- a/docs/faq_keymap.md +++ b/docs/faq_keymap.md @@ -45,7 +45,7 @@ QMK has a couple of features which allow you to change the behavior of your keyb Refer to the EEPROM clearing methods above, which should return those keys to normal operation. If that doesn't work, look here: * [Magic Keycodes](keycodes_magic) -* [Command](feature_command) +* [Command](features/command) ## The Menu Key Isn't Working @@ -86,7 +86,7 @@ Old vintage mechanical keyboards occasionally have lock switches but modern ones ## Input Special Characters Other Than ASCII like Cédille 'Ç' -See the [Unicode](feature_unicode) feature. +See the [Unicode](features/unicode) feature. ## `Fn` Key on macOS @@ -130,7 +130,7 @@ https://github.com/tekezo/Karabiner/issues/403 ## Esc and ` on a Single Key -See the [Grave Escape](feature_grave_esc) feature. +See the [Grave Escape](features/grave_esc) feature. ## Eject on Mac OSX diff --git a/docs/feature_advanced_keycodes.md b/docs/feature_advanced_keycodes.md index 50dc0bb2815..7f5a10d1c13 100644 --- a/docs/feature_advanced_keycodes.md +++ b/docs/feature_advanced_keycodes.md @@ -160,7 +160,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return true; }; ``` -Alternatively, this can be done with [Key Overrides](feature_key_overrides#simple-example). +Alternatively, this can be done with [Key Overrides](features/key_overrides#simple-example). # Advanced topics {#advanced-topics} @@ -184,4 +184,4 @@ This page used to encompass a large set of features. We have moved many sections ## Key Overrides {#key-overrides} -* [Key Overrides](feature_key_overrides) +* [Key Overrides](features/key_overrides) diff --git a/docs/feature_converters.md b/docs/feature_converters.md index 9b2d027a665..229d1007ab4 100644 --- a/docs/feature_converters.md +++ b/docs/feature_converters.md @@ -39,7 +39,7 @@ qmk flash -c -kb keebio/bdn9/rev1 -km default -e CONVERT_TO=proton_c You can also add the same `CONVERT_TO=` to your keymap's `rules.mk`, which will accomplish the same thing. ::: tip -If you get errors about `PORTB/DDRB`, etc not being defined, you'll need to convert the keyboard's code to use the [GPIO Controls](gpio_control) that will work for both ARM and AVR. This shouldn't affect the AVR builds at all. +If you get errors about `PORTB/DDRB`, etc not being defined, you'll need to convert the keyboard's code to use the [GPIO Controls](drivers/gpio) that will work for both ARM and AVR. This shouldn't affect the AVR builds at all. ::: ### Conditional Configuration @@ -118,11 +118,11 @@ The following defaults are based on what has been implemented for STM32 boards. | Feature | Notes | |----------------------------------------------|------------------------------------------------------------------------------------------------------------------| -| [Audio](feature_audio) | Enabled | -| [RGB Lighting](feature_rgblight) | Disabled | -| [Backlight](feature_backlight) | Forces [task driven PWM](feature_backlight#software-pwm-driver) until ARM can provide automatic configuration | +| [Audio](features/audio) | Enabled | +| [RGB Lighting](features/rgblight) | Disabled | +| [Backlight](features/backlight) | Forces [task driven PWM](features/backlight#software-pwm-driver) until ARM can provide automatic configuration | | USB Host (e.g. USB-USB converter) | Not supported (USB host code is AVR specific and is not currently supported on ARM) | -| [Split keyboards](feature_split_keyboard) | Partial - heavily dependent on enabled features | +| [Split keyboards](features/split_keyboard) | Partial - heavily dependent on enabled features | ### Adafruit KB2040 {#kb2040} @@ -130,10 +130,10 @@ The following defaults are based on what has been implemented for [RP2040](platf | Feature | Notes | |----------------------------------------------|------------------------------------------------------------------------------------------------------------------| -| [RGB Lighting](feature_rgblight) | Enabled via `PIO` vendor driver | -| [Backlight](feature_backlight) | Forces [task driven PWM](feature_backlight#software-pwm-driver) until ARM can provide automatic configuration | +| [RGB Lighting](features/rgblight) | Enabled via `PIO` vendor driver | +| [Backlight](features/backlight) | Forces [task driven PWM](features/backlight#software-pwm-driver) until ARM can provide automatic configuration | | USB Host (e.g. USB-USB converter) | Not supported (USB host code is AVR specific and is not currently supported on ARM) | -| [Split keyboards](feature_split_keyboard) | Partial via `PIO` vendor driver - heavily dependent on enabled features | +| [Split keyboards](features/split_keyboard) | Partial via `PIO` vendor driver - heavily dependent on enabled features | ### SparkFun Pro Micro - RP2040, Blok, Bit-C PRO and Michi {#promicro_rp2040 } diff --git a/docs/feature_eeprom.md b/docs/feature_eeprom.md index 63026d3c102..2912407ac76 100644 --- a/docs/feature_eeprom.md +++ b/docs/feature_eeprom.md @@ -109,7 +109,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } } ``` -And lastly, you want to add the `eeconfig_init_user` function, so that when the EEPROM is reset, you can specify default values, and even custom actions. To force an EEPROM reset, use the `EE_CLR` keycode or [Bootmagic Lite](feature_bootmagic) functionallity. For example, if you want to set rgb layer indication by default, and save the default valued. +And lastly, you want to add the `eeconfig_init_user` function, so that when the EEPROM is reset, you can specify default values, and even custom actions. To force an EEPROM reset, use the `EE_CLR` keycode or [Bootmagic Lite](features/bootmagic) functionallity. For example, if you want to set rgb layer indication by default, and save the default valued. ```c void eeconfig_init_user(void) { // EEPROM is getting reset! diff --git a/docs/feature_layers.md b/docs/feature_layers.md index 77b6ef95313..fe9932fadbe 100644 --- a/docs/feature_layers.md +++ b/docs/feature_layers.md @@ -27,7 +27,7 @@ For a similar reason, the `layer` argument of `LM()` is also limited to layers 0 |:---------------:|:----------------------:|:------------------------:|:----------------:| | ❌ | ❌ | ❌ | ✅ | -Expanding this would be complicated, at best. Moving to a 32-bit keycode would solve a lot of this, but would double the amount of space that the keymap matrix uses. And it could potentially cause issues, too. If you need to apply modifiers to your tapped keycode, [Tap Dance](feature_tap_dance#example-5-using-tap-dance-for-advanced-mod-tap-and-layer-tap-keys) can be used to accomplish this. +Expanding this would be complicated, at best. Moving to a 32-bit keycode would solve a lot of this, but would double the amount of space that the keymap matrix uses. And it could potentially cause issues, too. If you need to apply modifiers to your tapped keycode, [Tap Dance](features/tap_dance#example-5-using-tap-dance-for-advanced-mod-tap-and-layer-tap-keys) can be used to accomplish this. ## Working with Layers {#working-with-layers} @@ -104,7 +104,7 @@ This runs code every time that the layers get changed. This can be useful for l ### Example `layer_state_set_*` Implementation -This example shows how to set the [RGB Underglow](feature_rgblight) lights based on the layer, using the Planck as an example. +This example shows how to set the [RGB Underglow](features/rgblight) lights based on the layer, using the Planck as an example. ```c layer_state_t layer_state_set_user(layer_state_t state) { diff --git a/docs/feature_macros.md b/docs/feature_macros.md index d5a830c0ef5..055bb3ff8f7 100644 --- a/docs/feature_macros.md +++ b/docs/feature_macros.md @@ -86,7 +86,7 @@ All objects have one required key: `action`. This tells QMK what the object does Only basic keycodes (prefixed by `KC_`) are supported. Do not include the `KC_` prefix when listing keycodes. * `beep` - * Play a bell if the keyboard has [audio enabled](feature_audio). + * Play a bell if the keyboard has [audio enabled](features/audio). * Example: `{"action": "beep"}` * `delay` * Pause macro playback. Duration is specified in milliseconds (ms). @@ -108,7 +108,7 @@ Only basic keycodes (prefixed by `KC_`) are supported. Do not include the `KC_` ### `SEND_STRING()` & `process_record_user` -See also: [Send String](feature_send_string) +See also: [Send String](features/send_string) Sometimes you want a key to type out words or phrases. For the most common situations, we've provided `SEND_STRING()`, which will type out a string (i.e. a sequence of characters) for you. All ASCII characters that are easily translatable to a keycode are supported (e.g. `qmk 123\n\t`). diff --git a/docs/feature_audio.md b/docs/features/audio.md similarity index 99% rename from docs/feature_audio.md rename to docs/features/audio.md index ec28860ae9f..2f5e5b2d981 100644 --- a/docs/feature_audio.md +++ b/docs/features/audio.md @@ -27,7 +27,7 @@ per speaker is - for example with a piezo buzzer - the black lead to Ground, and ## ARM based boards -for more technical details, see the notes on [Audio driver](audio_driver). +for more technical details, see the notes on [Audio driver](../drivers/audio). ### DAC (basic) @@ -196,7 +196,7 @@ These keycodes turn all of the audio functionality on and off. Turning it off m |`GUITAR_SONG` | `GUITAR_SOUND` |Plays when the guitar music mode is selected (process_music.c) | |`VIOLIN_SONG` | `VIOLIN_SOUND` |Plays when the violin music mode is selected (process_music.c) | |`MAJOR_SONG` | `MAJOR_SOUND` |Plays when the major music mode is selected (process_music.c) | -|`DEFAULT_LAYER_SONGS` | *Not defined* |Plays song when switched default layers with [`set_single_persistent_default_layer(layer)`](ref_functions.md#setting-the-persistent-default-layer)(quantum.c). | +|`DEFAULT_LAYER_SONGS` | *Not defined* |Plays song when switched default layers with [`set_single_persistent_default_layer(layer)`](../ref_functions#setting-the-persistent-default-layer)(quantum.c). | |`SENDSTRING_BELL` | *Not defined* |Plays chime when the "enter" ("\a") character is sent (send_string.c) | ## Tempo @@ -354,7 +354,7 @@ You can configure the default, min and max frequencies, the stepping and built i ## MIDI Functionality -See [MIDI](feature_midi) +See [MIDI](midi) ## Audio Keycodes diff --git a/docs/feature_auto_shift.md b/docs/features/auto_shift.md similarity index 97% rename from docs/feature_auto_shift.md rename to docs/features/auto_shift.md index 53635e39f06..45b9048f039 100644 --- a/docs/feature_auto_shift.md +++ b/docs/features/auto_shift.md @@ -294,7 +294,7 @@ Holding and releasing a Tap Hold key without pressing another key will ordinaril result in only the hold. With `retro shift` enabled this action will instead produce a shifted version of the tap keycode on release. -It does not require [Retro Tapping](tap_hold#retro-tapping) to be enabled, and +It does not require [Retro Tapping](../tap_hold#retro-tapping) to be enabled, and if both are enabled the state of `retro tapping` will only apply if the tap keycode is not matched by Auto Shift. `RETRO_TAPPING_PER_KEY` and its corresponding function, however, are checked before `retro shift` is applied. @@ -318,10 +318,10 @@ Without a value set, holds of any length without an interrupting key will produc This value (if set) must be greater than one's `TAPPING_TERM`, as the key press must be designated as a 'hold' by `process_tapping` before we send the modifier. -[Per-key tapping terms](tap_hold#tapping-term) can be used as a workaround. +[Per-key tapping terms](../tap_hold#tapping-term) can be used as a workaround. There is no such limitation in regards to `AUTO_SHIFT_TIMEOUT` for normal keys. -**Note:** Tap Holds must be added to Auto Shift, see [here.](feature_auto_shift#auto-shift-per-key) +**Note:** Tap Holds must be added to Auto Shift, see [here.](auto_shift#auto-shift-per-key) `IS_RETRO` may be helpful if one wants all Tap Holds retro shifted. ### Retro Shift and Tap Hold Configurations @@ -330,7 +330,7 @@ Tap Hold Configurations work a little differently when using Retro Shift. Referencing `TAPPING_TERM` makes little sense, as holding longer would result in shifting one of the keys. -`RETRO_SHIFT` enables [`PERMISSIVE_HOLD`-like behaviour](tap_hold#permissive-hold) (even if not explicitly enabled) on all mod-taps for which `RETRO_SHIFT` applies. +`RETRO_SHIFT` enables [`PERMISSIVE_HOLD`-like behaviour](../tap_hold#permissive-hold) (even if not explicitly enabled) on all mod-taps for which `RETRO_SHIFT` applies. ## Using Auto Shift Setup diff --git a/docs/feature_autocorrect.md b/docs/features/autocorrect.md similarity index 98% rename from docs/feature_autocorrect.md rename to docs/features/autocorrect.md index 1ad582207aa..df3f2e0fd8f 100644 --- a/docs/feature_autocorrect.md +++ b/docs/features/autocorrect.md @@ -113,7 +113,7 @@ Additionally, you can use the `AC_TOGG` keycode to toggle the on/off status for Callback function `bool process_autocorrect_user(uint16_t *keycode, keyrecord_t *record, uint8_t *typo_buffer_size, uint8_t *mods)` is available to customise incoming keycodes and handle exceptions. You can use this function to sanitise input before they are passed onto the autocorrect engine ::: tip -Sanitisation of input is required because autocorrect will only match 8-bit [basic keycodes](keycodes_basic) for typos. If valid modifier keys or 16-bit keycodes that are part of a user's word input (such as Shift + A) is passed through, they will fail typo letter detection. For example a [Mod-Tap](mod_tap) key such as `LCTL_T(KC_A)` is 16-bit and should be masked for the 8-bit `KC_A`. +Sanitisation of input is required because autocorrect will only match 8-bit [basic keycodes](../keycodes_basic) for typos. If valid modifier keys or 16-bit keycodes that are part of a user's word input (such as Shift + A) is passed through, they will fail typo letter detection. For example a [Mod-Tap](../mod_tap) key such as `LCTL_T(KC_A)` is 16-bit and should be masked for the 8-bit `KC_A`. ::: The default user callback function is found inside `quantum/process_keycode/process_autocorrect.c`. It covers most use-cases for QMK special functions and quantum keycodes, including [overriding autocorrect](#overriding-autocorrect) with a modifier other than shift. The `process_autocorrect_user` function is `weak` defined to allow user's copy inside `keymap.c` (or code files) to overwrite it. diff --git a/docs/feature_backlight.md b/docs/features/backlight.md similarity index 97% rename from docs/feature_backlight.md rename to docs/features/backlight.md index 545d7be9495..94726756fdb 100644 --- a/docs/feature_backlight.md +++ b/docs/features/backlight.md @@ -1,6 +1,6 @@ # Backlighting {#backlighting} -Many keyboards support backlit keys by way of individual LEDs placed through or underneath the keyswitches. This feature is distinct from both the [RGB Underglow](feature_rgblight) and [RGB Matrix](feature_rgb_matrix) features as it usually allows for only a single colour per switch, though you can obviously install multiple different single coloured LEDs on a keyboard. +Many keyboards support backlit keys by way of individual LEDs placed through or underneath the keyswitches. This feature is distinct from both the [RGB Underglow](rgblight) and [RGB Matrix](rgb_matrix) features as it usually allows for only a single colour per switch, though you can obviously install multiple different single coloured LEDs on a keyboard. QMK is able to control the brightness of these LEDs by switching them on and off rapidly in a certain ratio, a technique known as *Pulse Width Modulation*, or PWM. By altering the duty cycle of the PWM signal, it creates the illusion of dimming. @@ -153,7 +153,7 @@ The following `#define`s apply only to the `timer` driver: |-----------------------|-------|----------------| |`BACKLIGHT_PWM_TIMER` |`1` |The timer to use| -Note that the choice of timer may conflict with the [Audio](feature_audio) feature. +Note that the choice of timer may conflict with the [Audio](audio) feature. ## ChibiOS/ARM Configuration {#arm-configuration} diff --git a/docs/feature_bluetooth.md b/docs/features/bluetooth.md similarity index 96% rename from docs/feature_bluetooth.md rename to docs/features/bluetooth.md index 7562a75447d..1dbf15f4e10 100644 --- a/docs/feature_bluetooth.md +++ b/docs/features/bluetooth.md @@ -26,7 +26,7 @@ A Bluefruit UART friend can be converted to an SPI friend, however this [require ## Bluetooth Rules.mk Options -The currently supported Bluetooth chipsets do not support [N-Key Rollover (NKRO)](reference_glossary#n-key-rollover-nkro), so `rules.mk` must contain `NKRO_ENABLE = no`. +The currently supported Bluetooth chipsets do not support [N-Key Rollover (NKRO)](../reference_glossary#n-key-rollover-nkro), so `rules.mk` must contain `NKRO_ENABLE = no`. Add the following to your `rules.mk`: diff --git a/docs/feature_bootmagic.md b/docs/features/bootmagic.md similarity index 87% rename from docs/feature_bootmagic.md rename to docs/features/bootmagic.md index df0344ee8e9..49fae5ba450 100644 --- a/docs/feature_bootmagic.md +++ b/docs/features/bootmagic.md @@ -25,7 +25,7 @@ Using Bootmagic will **always reset** the EEPROM, so you will lose any settings ## Split Keyboards -When [handedness](feature_split_keyboard#setting-handedness) is predetermined via options like `SPLIT_HAND_PIN` or `EE_HANDS`, you might need to configure a different key between halves. To identify the correct key for the right half, examine the split key matrix defined in the `.h` file, e.g.: +When [handedness](split_keyboard#setting-handedness) is predetermined via options like `SPLIT_HAND_PIN` or `EE_HANDS`, you might need to configure a different key between halves. To identify the correct key for the right half, examine the split key matrix defined in the `.h` file, e.g.: ```c #define LAYOUT_split_3x5_2( \ @@ -80,6 +80,6 @@ You can define additional logic here. For instance, resetting the EEPROM or requ ## Addenda -To manipulate settings that were formerly configured through the now-deprecated full Bootmagic feature, see [Magic Keycodes](keycodes_magic). +To manipulate settings that were formerly configured through the now-deprecated full Bootmagic feature, see [Magic Keycodes](../keycodes_magic). -The Command feature, formerly known as Magic, also allows you to control different aspects of your keyboard. While it shares some functionality with Magic Keycodes, it also allows you to do things that Magic Keycodes cannot, such as printing version information to the console. For more information, see [Command](feature_command). +The Command feature, formerly known as Magic, also allows you to control different aspects of your keyboard. While it shares some functionality with Magic Keycodes, it also allows you to do things that Magic Keycodes cannot, such as printing version information to the console. For more information, see [Command](command). diff --git a/docs/feature_caps_word.md b/docs/features/caps_word.md similarity index 98% rename from docs/feature_caps_word.md rename to docs/features/caps_word.md index 666edecb6ec..15361aab962 100644 --- a/docs/feature_caps_word.md +++ b/docs/features/caps_word.md @@ -62,7 +62,7 @@ Next, use one the following methods to activate Caps Word: * **Custom activation**: You can activate Caps Word from code by calling `caps_word_on()`. This may be used to activate Caps Word through [a - combo](feature_combo) or [tap dance](feature_tap_dance) or any means + combo](combo) or [tap dance](tap_dance) or any means you like. ### Troubleshooting: Command {#troubleshooting-command} @@ -71,7 +71,7 @@ When using `BOTH_SHIFTS_TURNS_ON_CAPS_WORD`, you might see a compile message **"BOTH_SHIFTS_TURNS_ON_CAPS_WORD and Command should not be enabled at the same time, since both use the Left Shift + Right Shift key combination."** -Many keyboards enable the [Command feature](feature_command), which by +Many keyboards enable the [Command feature](command), which by default is also activated using the Left Shift + Right Shift key combination. To fix this conflict, please disable Command by adding in rules.mk: diff --git a/docs/feature_combo.md b/docs/features/combo.md similarity index 98% rename from docs/feature_combo.md rename to docs/features/combo.md index b49a4448049..bdb8c4b15fc 100644 --- a/docs/feature_combo.md +++ b/docs/features/combo.md @@ -18,7 +18,7 @@ combo_t key_combos[] = { This will send "Escape" if you hit the A and B keys, and Ctrl+Z when you hit the C and D keys. ## Advanced Keycodes Support -Advanced keycodes, such as [Mod-Tap](mod_tap) and [Tap Dance](feature_tap_dance) are also supported together with combos. If you use these advanced keycodes in your keymap, you will need to place the full keycode in the combo definition, e.g.: +Advanced keycodes, such as [Mod-Tap](../mod_tap) and [Tap Dance](tap_dance) are also supported together with combos. If you use these advanced keycodes in your keymap, you will need to place the full keycode in the combo definition, e.g.: ```c const uint16_t PROGMEM test_combo1[] = {LSFT_T(KC_A), LT(1, KC_B), COMBO_END}; @@ -99,7 +99,7 @@ void process_combo_event(uint16_t combo_index, bool pressed) { This will send "john.doe@example.com" if you chord E and M together, and clear the current line with Backspace and Left-Shift. You could change this to do stuff like play sounds or change settings. -It is worth noting that `COMBO_ACTION`s are not needed anymore. As of [PR#8591](https://github.com/qmk/qmk_firmware/pull/8591/), it is possible to run your own custom keycodes from combos. Just define the custom keycode, program its functionality in `process_record_user`, and define a combo with `COMBO(, )`. See the first example in [Macros](feature_macros). +It is worth noting that `COMBO_ACTION`s are not needed anymore. As of [PR#8591](https://github.com/qmk/qmk_firmware/pull/8591/), it is possible to run your own custom keycodes from combos. Just define the custom keycode, program its functionality in `process_record_user`, and define a combo with `COMBO(, )`. See the first example in [Macros](../feature_macros). ## Keycodes You can enable, disable and toggle the Combo feature on the fly. This is useful if you need to disable them temporarily, such as for a game. The following keycodes are available for use in your `keymap.c` diff --git a/docs/feature_command.md b/docs/features/command.md similarity index 95% rename from docs/feature_command.md rename to docs/features/command.md index 4aba9cfb630..7ad45103c78 100644 --- a/docs/feature_command.md +++ b/docs/features/command.md @@ -1,6 +1,6 @@ # Command -Command, formerly known as Magic, is a way to change your keyboard's behavior without having to flash or unplug it to use [Bootmagic Lite](feature_bootmagic). There is a lot of overlap between this functionality and the [Magic Keycodes](keycodes_magic). Wherever possible we encourage you to use that feature instead of Command. +Command, formerly known as Magic, is a way to change your keyboard's behavior without having to flash or unplug it to use [Bootmagic Lite](bootmagic). There is a lot of overlap between this functionality and the [Magic Keycodes](../keycodes_magic). Wherever possible we encourage you to use that feature instead of Command. On some keyboards Command is disabled by default. If this is the case, it must be explicitly enabled in your `rules.mk`: diff --git a/docs/feature_digitizer.md b/docs/features/digitizer.md similarity index 96% rename from docs/feature_digitizer.md rename to docs/features/digitizer.md index 475d5b4d51f..e5248776368 100644 --- a/docs/feature_digitizer.md +++ b/docs/features/digitizer.md @@ -1,6 +1,6 @@ # Digitizer {#digitizer} -Digitizers allow the mouse cursor to be placed at absolute coordinates, unlike the [Pointing Device](feature_pointing_device) feature which applies relative displacements. +Digitizers allow the mouse cursor to be placed at absolute coordinates, unlike the [Pointing Device](pointing_device) feature which applies relative displacements. This feature implements a stylus device with a tip switch and barrel switch (generally equivalent to the primary and secondary mouse buttons respectively). Tip pressure is not currently implemented. diff --git a/docs/feature_dip_switch.md b/docs/features/dip_switch.md similarity index 100% rename from docs/feature_dip_switch.md rename to docs/features/dip_switch.md diff --git a/docs/feature_dynamic_macros.md b/docs/features/dynamic_macros.md similarity index 100% rename from docs/feature_dynamic_macros.md rename to docs/features/dynamic_macros.md diff --git a/docs/feature_encoders.md b/docs/features/encoders.md similarity index 100% rename from docs/feature_encoders.md rename to docs/features/encoders.md diff --git a/docs/feature_grave_esc.md b/docs/features/grave_esc.md similarity index 100% rename from docs/feature_grave_esc.md rename to docs/features/grave_esc.md diff --git a/docs/feature_haptic_feedback.md b/docs/features/haptic_feedback.md similarity index 99% rename from docs/feature_haptic_feedback.md rename to docs/features/haptic_feedback.md index 16370327cbc..52667965a04 100644 --- a/docs/feature_haptic_feedback.md +++ b/docs/features/haptic_feedback.md @@ -192,11 +192,11 @@ The Haptic Exclusion is implemented as `__attribute__((weak)) bool get_haptic_en With the entry of `#define NO_HAPTIC_MOD` in config.h, the following keys will not trigger feedback: * Usual modifier keys such as Control/Shift/Alt/Gui (For example `KC_LCTL`) -* `MO()` momentary keys. See also [Layers](feature_layers). +* `MO()` momentary keys. See also [Layers](../feature_layers). * `LM()` momentary keys with mod active. * `LT()` layer tap keys, when held to activate a layer. However when tapped, and the key is quickly released, and sends a keycode, haptic feedback is still triggered. * `TT()` layer tap toggle keys, when held to activate a layer. However when tapped `TAPPING_TOGGLE` times to permanently toggle the layer, on the last tap haptic feedback is still triggered. -* `MT()` mod tap keys, when held to keep a usual modifier key pressed. However when tapped, and the key is quickly released, and sends a keycode, haptic feedback is still triggered. See also [Mod-Tap](mod_tap). +* `MT()` mod tap keys, when held to keep a usual modifier key pressed. However when tapped, and the key is quickly released, and sends a keycode, haptic feedback is still triggered. See also [Mod-Tap](../mod_tap). ### NO_HAPTIC_ALPHA With the entry of `#define NO_HAPTIC_ALPHA` in config.h, none of the alpha keys (A ... Z) will trigger a feedback. diff --git a/docs/feature_hd44780.md b/docs/features/hd44780.md similarity index 100% rename from docs/feature_hd44780.md rename to docs/features/hd44780.md diff --git a/docs/feature_joystick.md b/docs/features/joystick.md similarity index 98% rename from docs/feature_joystick.md rename to docs/features/joystick.md index 75bffa605ae..f3fd209d5a9 100644 --- a/docs/feature_joystick.md +++ b/docs/features/joystick.md @@ -1,6 +1,6 @@ # Joystick {#joystick} -This feature provides game controller input as a joystick device supporting up to 6 axes and 32 buttons. Axes can be read either from an [ADC-capable input pin](adc_driver), or can be virtual, so that its value is provided by your code. +This feature provides game controller input as a joystick device supporting up to 6 axes and 32 buttons. Axes can be read either from an [ADC-capable input pin](../drivers/adc), or can be virtual, so that its value is provided by your code. An analog device such as a [potentiometer](https://en.wikipedia.org/wiki/Potentiometer) found on an analog joystick's axes is based on a voltage divider, where adjusting the movable wiper controls the output voltage which can then be read by the microcontroller's ADC. diff --git a/docs/feature_key_lock.md b/docs/features/key_lock.md similarity index 86% rename from docs/feature_key_lock.md rename to docs/features/key_lock.md index 1a0a2dfb601..ba3b71ef06c 100644 --- a/docs/feature_key_lock.md +++ b/docs/features/key_lock.md @@ -16,8 +16,8 @@ First, enable Key Lock by setting `KEY_LOCK_ENABLE = yes` in your `rules.mk`. Th ## Caveats -Key Lock is only able to hold standard action keys and [One Shot modifier](one_shot_keys) keys (for example, if you have your Shift defined as `OSM(MOD_LSFT)`). -This does not include any of the QMK special functions (except One Shot modifiers), or shifted versions of keys such as `KC_LPRN`. If it's in the [Basic Keycodes](keycodes_basic) list, it can be held. +Key Lock is only able to hold standard action keys and [One Shot modifier](../one_shot_keys) keys (for example, if you have your Shift defined as `OSM(MOD_LSFT)`). +This does not include any of the QMK special functions (except One Shot modifiers), or shifted versions of keys such as `KC_LPRN`. If it's in the [Basic Keycodes](../keycodes_basic) list, it can be held. Switching layers will not cancel the Key Lock. The Key Lock can be cancelled by calling the `cancel_key_lock()` function. diff --git a/docs/feature_key_overrides.md b/docs/features/key_overrides.md similarity index 95% rename from docs/feature_key_overrides.md rename to docs/features/key_overrides.md index b9fbd35966a..4c568f16791 100644 --- a/docs/feature_key_overrides.md +++ b/docs/features/key_overrides.md @@ -103,7 +103,7 @@ const key_override_t **key_overrides = (const key_override_t *[]){ ``` ### Flexible macOS-friendly Grave Escape {#flexible-macos-friendly-grave-escape} -The [Grave Escape feature](feature_grave_esc) is limited in its configurability and has [bugs when used on macOS](feature_grave_esc#caveats). Key overrides can be used to achieve a similar functionality as Grave Escape, but with more customization and without bugs on macOS. +The [Grave Escape feature](grave_esc) is limited in its configurability and has [bugs when used on macOS](grave_esc#caveats). Key overrides can be used to achieve a similar functionality as Grave Escape, but with more customization and without bugs on macOS. ```c // Shift + esc = ~ @@ -224,7 +224,7 @@ The duration of the key repeat delay is controlled with the `KEY_OVERRIDE_REPEAT ## Difference to Combos {#difference-to-combos} -Note that key overrides are very different from [combos](feature_combo). Combos require that you press down several keys almost _at the same time_ and can work with any combination of non-modifier keys. Key overrides work like keyboard shortcuts (e.g. `ctrl` + `z`): They take combinations of _multiple_ modifiers and _one_ non-modifier key to then perform some custom action. Key overrides are implemented with much care to behave just like normal keyboard shortcuts would in regards to the order of pressed keys, timing, and interaction with other pressed keys. There are a number of optional settings that can be used to really fine-tune the behavior of each key override as well. Using key overrides also does not delay key input for regular key presses, which inherently happens in combos and may be undesirable. +Note that key overrides are very different from [combos](combo). Combos require that you press down several keys almost _at the same time_ and can work with any combination of non-modifier keys. Key overrides work like keyboard shortcuts (e.g. `ctrl` + `z`): They take combinations of _multiple_ modifiers and _one_ non-modifier key to then perform some custom action. Key overrides are implemented with much care to behave just like normal keyboard shortcuts would in regards to the order of pressed keys, timing, and interaction with other pressed keys. There are a number of optional settings that can be used to really fine-tune the behavior of each key override as well. Using key overrides also does not delay key input for regular key presses, which inherently happens in combos and may be undesirable. ## Solution to the problem of flashing modifiers {#neutralize-flashing-modifiers} diff --git a/docs/feature_leader_key.md b/docs/features/leader_key.md similarity index 94% rename from docs/feature_leader_key.md rename to docs/features/leader_key.md index 641c2d7ae58..a36e630a366 100644 --- a/docs/feature_leader_key.md +++ b/docs/features/leader_key.md @@ -1,6 +1,6 @@ # The Leader Key: A New Kind of Modifier {#the-leader-key} -If you're a Vim user, you probably know what a Leader key is. In contrast to [Combos](feature_combo), the Leader key allows you to hit a *sequence* of up to five keys instead, which triggers some custom functionality once complete. +If you're a Vim user, you probably know what a Leader key is. In contrast to [Combos](combo), the Leader key allows you to hit a *sequence* of up to five keys instead, which triggers some custom functionality once complete. ## Usage {#usage} @@ -86,7 +86,7 @@ Now, after you hit the leader key, you will have an infinite amount of time to s ### Strict Key Processing {#strict-key-processing} -By default, only the "tap keycode" portions of [Mod-Taps](mod_tap) and [Layer Taps](feature_layers#switching-and-toggling-layers) are added to the sequence buffer. This means if you press eg. `LT(3, KC_A)` as part of a sequence, `KC_A` will be added to the buffer, rather than the entire `LT(3, KC_A)` keycode. +By default, only the "tap keycode" portions of [Mod-Taps](../mod_tap) and [Layer Taps](../feature_layers#switching-and-toggling-layers) are added to the sequence buffer. This means if you press eg. `LT(3, KC_A)` as part of a sequence, `KC_A` will be added to the buffer, rather than the entire `LT(3, KC_A)` keycode. This gives a more expected behaviour for most users, however you may want to change this. diff --git a/docs/feature_led_indicators.md b/docs/features/led_indicators.md similarity index 98% rename from docs/feature_led_indicators.md rename to docs/features/led_indicators.md index e28c222e765..8435c69a552 100644 --- a/docs/feature_led_indicators.md +++ b/docs/features/led_indicators.md @@ -1,7 +1,7 @@ # LED Indicators ::: tip -LED indicators on split keyboards will require state information synced to the slave half (e.g. `#define SPLIT_LED_STATE_ENABLE`). See [data sync options](feature_split_keyboard#data-sync-options) for more details. +LED indicators on split keyboards will require state information synced to the slave half (e.g. `#define SPLIT_LED_STATE_ENABLE`). See [data sync options](split_keyboard#data-sync-options) for more details. ::: QMK provides methods to read 5 of the LEDs defined in the HID spec: diff --git a/docs/feature_led_matrix.md b/docs/features/led_matrix.md similarity index 99% rename from docs/feature_led_matrix.md rename to docs/features/led_matrix.md index 78afb36d2c6..fee7b139bce 100644 --- a/docs/feature_led_matrix.md +++ b/docs/features/led_matrix.md @@ -2,7 +2,7 @@ This feature allows you to use LED matrices driven by external drivers. It hooks into the backlight system so you can use the same keycodes as backlighting to control it. -If you want to use RGB LED's you should use the [RGB Matrix Subsystem](feature_rgb_matrix) instead. +If you want to use RGB LED's you should use the [RGB Matrix Subsystem](rgb_matrix) instead. ## Driver configuration {#driver-configuration} --- diff --git a/docs/feature_midi.md b/docs/features/midi.md similarity index 99% rename from docs/feature_midi.md rename to docs/features/midi.md index 89c6af05085..32c062e54d2 100644 --- a/docs/feature_midi.md +++ b/docs/features/midi.md @@ -34,7 +34,7 @@ To enable advanced MIDI, add the following to your `config.h`: If you're aiming to emulate the features of something like a Launchpad or other MIDI controller you'll need to access the internal MIDI device directly. -Because there are so many possible CC messages, not all of them are implemented as keycodes. Additionally, you might need to provide more than just two values that you would get from a keycode (pressed and released) - for example, the analog values from a fader or a potentiometer. So, you will need to implement [custom keycodes](feature_macros) if you want to use them in your keymap directly using `process_record_user()`. +Because there are so many possible CC messages, not all of them are implemented as keycodes. Additionally, you might need to provide more than just two values that you would get from a keycode (pressed and released) - for example, the analog values from a fader or a potentiometer. So, you will need to implement [custom keycodes](../feature_macros) if you want to use them in your keymap directly using `process_record_user()`. For reference of all the possible control code numbers see [MIDI Specification](#midi-specification) diff --git a/docs/feature_mouse_keys.md b/docs/features/mouse_keys.md similarity index 98% rename from docs/feature_mouse_keys.md rename to docs/features/mouse_keys.md index 240f6bf9be0..c2b3e98f424 100644 --- a/docs/feature_mouse_keys.md +++ b/docs/features/mouse_keys.md @@ -205,4 +205,4 @@ Tips: ## Use with PS/2 Mouse and Pointing Device -Mouse keys button state is shared with [PS/2 mouse](feature_ps2_mouse) and [pointing device](feature_pointing_device) so mouse keys button presses can be used for clicks and drags. +Mouse keys button state is shared with [PS/2 mouse](ps2_mouse) and [pointing device](pointing_device) so mouse keys button presses can be used for clicks and drags. diff --git a/docs/feature_oled_driver.md b/docs/features/oled_driver.md similarity index 100% rename from docs/feature_oled_driver.md rename to docs/features/oled_driver.md diff --git a/docs/feature_os_detection.md b/docs/features/os_detection.md similarity index 100% rename from docs/feature_os_detection.md rename to docs/features/os_detection.md diff --git a/docs/feature_pointing_device.md b/docs/features/pointing_device.md similarity index 98% rename from docs/feature_pointing_device.md rename to docs/features/pointing_device.md index 933202a009b..a6bf521a184 100644 --- a/docs/feature_pointing_device.md +++ b/docs/features/pointing_device.md @@ -420,7 +420,7 @@ Any pointing device with a lift/contact status can integrate inertial cursor fea ## Split Keyboard Configuration -The following configuration options are only available when using `SPLIT_POINTING_ENABLE` see [data sync options](feature_split_keyboard#data-sync-options). The rotation and invert `*_RIGHT` options are only used with `POINTING_DEVICE_COMBINED`. If using `POINTING_DEVICE_LEFT` or `POINTING_DEVICE_RIGHT` use the common configuration above to configure your pointing device. +The following configuration options are only available when using `SPLIT_POINTING_ENABLE` see [data sync options](split_keyboard#data-sync-options). The rotation and invert `*_RIGHT` options are only used with `POINTING_DEVICE_COMBINED`. If using `POINTING_DEVICE_LEFT` or `POINTING_DEVICE_RIGHT` use the common configuration above to configure your pointing device. | Setting | Description | Default | | ------------------------------------ | ----------------------------------------------------------------------------------------------------- | ------------- | @@ -434,7 +434,7 @@ The following configuration options are only available when using `SPLIT_POINTIN | `POINTING_DEVICE_INVERT_Y_RIGHT` | (Optional) Inverts the Y axis report. | _not defined_ | ::: warning -If there is a `_RIGHT` configuration option or callback, the [common configuration](feature_pointing_device#common-configuration) option will work for the left. For correct left/right detection you should setup a [handedness option](feature_split_keyboard#setting-handedness), `EE_HANDS` is usually a good option for an existing board that doesn't do handedness by hardware. +If there is a `_RIGHT` configuration option or callback, the [common configuration](pointing_device#common-configuration) option will work for the left. For correct left/right detection you should setup a [handedness option](split_keyboard#setting-handedness), `EE_HANDS` is usually a good option for an existing board that doesn't do handedness by hardware. ::: @@ -458,7 +458,7 @@ If there is a `_RIGHT` configuration option or callback, the [common configurati ## Split Keyboard Callbacks and Functions -The combined functions below are only available when using `SPLIT_POINTING_ENABLE` and `POINTING_DEVICE_COMBINED`. The 2 callbacks `pointing_device_task_combined_*` replace the single sided equivalents above. See the [combined pointing devices example](feature_pointing_device#combined-pointing-devices) +The combined functions below are only available when using `SPLIT_POINTING_ENABLE` and `POINTING_DEVICE_COMBINED`. The 2 callbacks `pointing_device_task_combined_*` replace the single sided equivalents above. See the [combined pointing devices example](pointing_device#combined-pointing-devices) | Function | Description | | --------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ | @@ -684,7 +684,7 @@ If you are having issues with pointing device drivers debug messages can be enab ``` ::: tip -The messages will be printed out to the `CONSOLE` output. For additional information, refer to [Debugging/Troubleshooting QMK](faq_debug). +The messages will be printed out to the `CONSOLE` output. For additional information, refer to [Debugging/Troubleshooting QMK](../faq_debug). ::: diff --git a/docs/feature_programmable_button.md b/docs/features/programmable_button.md similarity index 100% rename from docs/feature_programmable_button.md rename to docs/features/programmable_button.md diff --git a/docs/feature_ps2_mouse.md b/docs/features/ps2_mouse.md similarity index 100% rename from docs/feature_ps2_mouse.md rename to docs/features/ps2_mouse.md diff --git a/docs/feature_rawhid.md b/docs/features/rawhid.md similarity index 100% rename from docs/feature_rawhid.md rename to docs/features/rawhid.md diff --git a/docs/feature_repeat_key.md b/docs/features/repeat_key.md similarity index 98% rename from docs/feature_repeat_key.md rename to docs/features/repeat_key.md index c353ec5b59b..53495e0f4d6 100644 --- a/docs/feature_repeat_key.md +++ b/docs/features/repeat_key.md @@ -172,7 +172,7 @@ uint16_t get_alt_repeat_key_keycode_user(uint16_t keycode, uint8_t mods) { #### Typing shortcuts A useful possibility is having Alternate Repeat press [a -macro](feature_macros). This way macros can be used without having to +macro](../feature_macros). This way macros can be used without having to dedicate keys to them. The following defines a couple shortcuts. * Typing K, Alt Repeat produces "`keyboard`," with the @@ -281,11 +281,8 @@ bool remember_last_key_user(uint16_t keycode, keyrecord_t* record, ``` ::: tip -See [Layer Functions](feature_layers#functions) and [Checking Modifier +See [Layer Functions](../feature_layers#functions) and [Checking Modifier State](../feature_advanced_keycodes#checking-modifier-state) for further details. ::: -State](feature_advanced_keycodes#checking-modifier-state) for further -details. - ## Handle how a key is repeated @@ -388,7 +385,7 @@ By leveraging `get_last_keycode()` in macros, it is possible to define additional, distinct "Alternate Repeat"-like keys. The following defines two keys `ALTREP2` and `ALTREP3` and implements ten shortcuts with them for common English 5-gram letter patterns, taking inspiration from -[Stenotype](feature_stenography): +[Stenotype](stenography): | Typing | Produces | Typing | Produces | diff --git a/docs/feature_rgb_matrix.md b/docs/features/rgb_matrix.md similarity index 99% rename from docs/feature_rgb_matrix.md rename to docs/features/rgb_matrix.md index b9c01dcbf5f..f7f693f239f 100644 --- a/docs/feature_rgb_matrix.md +++ b/docs/features/rgb_matrix.md @@ -2,7 +2,7 @@ This feature allows you to use RGB LED matrices driven by external drivers. It hooks into the RGBLIGHT system so you can use the same keycodes as RGBLIGHT to control it. -If you want to use single color LED's you should use the [LED Matrix Subsystem](feature_led_matrix) instead. +If you want to use single color LED's you should use the [LED Matrix Subsystem](led_matrix) instead. ## Driver configuration {#driver-configuration} --- @@ -444,7 +444,7 @@ Configure the hardware via your `config.h`: ``` ::: tip -There are additional configuration options for ARM controllers that offer increased performance over the default bitbang driver. Please see [WS2812 Driver](ws2812_driver) for more information. +There are additional configuration options for ARM controllers that offer increased performance over the default bitbang driver. Please see [WS2812 Driver](../drivers/ws2812) for more information. ::: --- @@ -619,7 +619,7 @@ All RGB keycodes are currently shared with the RGBLIGHT system: ::: warning -By default, if you have both the [RGB Light](feature_rgblight) and the RGB Matrix feature enabled, these keycodes will work for both features, at the same time. You can disable the keycode functionality by defining the `*_DISABLE_KEYCODES` option for the specific feature. +By default, if you have both the [RGB Light](rgblight) and the RGB Matrix feature enabled, these keycodes will work for both features, at the same time. You can disable the keycode functionality by defining the `*_DISABLE_KEYCODES` option for the specific feature. ::: ## RGB Matrix Effects {#rgb-matrix-effects} @@ -1060,7 +1060,7 @@ bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { ``` ::: tip -Split keyboards will require layer state data syncing with `#define SPLIT_LAYER_STATE_ENABLE`. See [Data Sync Options](feature_split_keyboard#data-sync-options) for more details. +Split keyboards will require layer state data syncing with `#define SPLIT_LAYER_STATE_ENABLE`. See [Data Sync Options](split_keyboard#data-sync-options) for more details. ::: #### Examples {#indicator-examples-2} @@ -1105,7 +1105,7 @@ bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { ``` ::: tip -RGB indicators on split keyboards will require state information synced to the slave half (e.g. `#define SPLIT_LAYER_STATE_ENABLE`). See [data sync options](feature_split_keyboard#data-sync-options) for more details. +RGB indicators on split keyboards will require state information synced to the slave half (e.g. `#define SPLIT_LAYER_STATE_ENABLE`). See [data sync options](split_keyboard#data-sync-options) for more details. ::: #### Indicators without RGB Matrix Effect diff --git a/docs/feature_rgblight.md b/docs/features/rgblight.md similarity index 98% rename from docs/feature_rgblight.md rename to docs/features/rgblight.md index 682d8b8cbae..ece1c104677 100644 --- a/docs/feature_rgblight.md +++ b/docs/features/rgblight.md @@ -23,7 +23,7 @@ RGBLIGHT_ENABLE = yes ``` ::: tip -There are additional configuration options for ARM controllers that offer increased performance over the default WS2812 bitbang driver. Please see [WS2812 Driver](ws2812_driver) for more information. +There are additional configuration options for ARM controllers that offer increased performance over the default WS2812 bitbang driver. Please see [WS2812 Driver](../drivers/ws2812) for more information. ::: For APA102 LEDs, add the following to your `rules.mk`: @@ -49,7 +49,7 @@ Then you should be able to use the keycodes below to change the RGB lighting to QMK uses [Hue, Saturation, and Value](https://en.wikipedia.org/wiki/HSL_and_HSV) to select colors rather than RGB. The color wheel below demonstrates how this works. -HSV Color Wheel +HSV Color Wheel Changing the **Hue** cycles around the circle.
Changing the **Saturation** moves between the inner and outer sections of the wheel, affecting the intensity of the color.
@@ -87,7 +87,7 @@ Changing the **Value** sets the overall brightness.
::: warning -By default, if you have both the RGB Light and the [RGB Matrix](feature_rgb_matrix) feature enabled, these keycodes will work for both features, at the same time. You can disable the keycode functionality by defining the `*_DISABLE_KEYCODES` option for the specific feature. +By default, if you have both the RGB Light and the [RGB Matrix](rgb_matrix) feature enabled, these keycodes will work for both features, at the same time. You can disable the keycode functionality by defining the `*_DISABLE_KEYCODES` option for the specific feature. ::: ## Configuration @@ -218,7 +218,7 @@ const uint8_t RGBLED_GRADIENT_RANGES[] PROGMEM = {255, 170, 127, 85, 64}; ## Lighting Layers ::: tip -**Note:** Lighting Layers is an RGB Light feature, it will not work for RGB Matrix. See [RGB Matrix Indicators](feature_rgb_matrix#indicators) for details on how to do so. +**Note:** Lighting Layers is an RGB Light feature, it will not work for RGB Matrix. See [RGB Matrix Indicators](rgb_matrix#indicators) for details on how to do so. ::: By including `#define RGBLIGHT_LAYERS` in your `config.h` file you can enable lighting layers. These make @@ -353,7 +353,7 @@ rgblight_blink_layer(2, 500); ``` ::: warning -Lighting layers on split keyboards will require layer state synced to the slave half (e.g. `#define SPLIT_LAYER_STATE_ENABLE`). See [data sync options](feature_split_keyboard#data-sync-options) for more details. +Lighting layers on split keyboards will require layer state synced to the slave half (e.g. `#define SPLIT_LAYER_STATE_ENABLE`). See [data sync options](split_keyboard#data-sync-options) for more details. ::: ### Overriding RGB Lighting on/off status diff --git a/docs/feature_secure.md b/docs/features/secure.md similarity index 97% rename from docs/feature_secure.md rename to docs/features/secure.md index 5ca9eed65fc..02ed20a470c 100644 --- a/docs/feature_secure.md +++ b/docs/features/secure.md @@ -16,7 +16,7 @@ To unlock, the user must perform a set of actions. This can optionally be config ### Automatic Locking Once unlocked, the keyboard will revert back to a locked state after the configured timeout. -The timeout can be refreshed by using the `secure_activity_event` function, for example from one of the various [hooks](custom_quantum_functions). +The timeout can be refreshed by using the `secure_activity_event` function, for example from one of the various [hooks](../custom_quantum_functions). ## Usage diff --git a/docs/feature_send_string.md b/docs/features/send_string.md similarity index 93% rename from docs/feature_send_string.md rename to docs/features/send_string.md index 97e4ccc8096..ed9311e20a5 100644 --- a/docs/feature_send_string.md +++ b/docs/features/send_string.md @@ -5,7 +5,7 @@ The Send String API is part of QMK's macro system. It allows for sequences of ke The full ASCII character set is supported, along with all of the keycodes in the Basic Keycode range (as these are the only ones that will actually be sent to the host). ::: tip -Unicode characters are **not** supported with this API -- see the [Unicode](feature_unicode) feature instead. +Unicode characters are **not** supported with this API -- see the [Unicode](unicode) feature instead. ::: ## Usage {#usage} @@ -22,12 +22,12 @@ Add the following to your `config.h`: |Define |Default |Description | |-----------------|----------------|------------------------------------------------------------------------------------------------------------| -|`SENDSTRING_BELL`|*Not defined* |If the [Audio](feature_audio) feature is enabled, the `\a` character (ASCII `BEL`) will beep the speaker.| +|`SENDSTRING_BELL`|*Not defined* |If the [Audio](audio) feature is enabled, the `\a` character (ASCII `BEL`) will beep the speaker.| |`BELL_SOUND` |`TERMINAL_SOUND`|The song to play when the `\a` character is encountered. By default, this is an eighth note of C5. | ## Keycodes {#keycodes} -The Send String functions accept C string literals, but specific keycodes can be injected with the below macros. All of the keycodes in the [Basic Keycode range](keycodes_basic) are supported (as these are the only ones that will actually be sent to the host), but with an `X_` prefix instead of `KC_`. +The Send String functions accept C string literals, but specific keycodes can be injected with the below macros. All of the keycodes in the [Basic Keycode range](../keycodes_basic) are supported (as these are the only ones that will actually be sent to the host), but with an `X_` prefix instead of `KC_`. |Macro |Description | |--------------|-------------------------------------------------------------------| @@ -48,7 +48,7 @@ The following characters are also mapped to their respective keycodes for conven ### Language Support {#language-support} -By default, Send String assumes your OS keyboard layout is set to US ANSI. If you are using a different keyboard layout, you can [override the lookup tables used to convert ASCII characters to keystrokes](reference_keymap_extras#sendstring-support). +By default, Send String assumes your OS keyboard layout is set to US ANSI. If you are using a different keyboard layout, you can [override the lookup tables used to convert ASCII characters to keystrokes](../reference_keymap_extras#sendstring-support). ## Examples {#examples} diff --git a/docs/feature_sequencer.md b/docs/features/sequencer.md similarity index 100% rename from docs/feature_sequencer.md rename to docs/features/sequencer.md diff --git a/docs/feature_space_cadet.md b/docs/features/space_cadet.md similarity index 97% rename from docs/feature_space_cadet.md rename to docs/features/space_cadet.md index cbb79e10adf..0abdaebf33a 100644 --- a/docs/feature_space_cadet.md +++ b/docs/features/space_cadet.md @@ -24,7 +24,7 @@ Firstly, in your keymap, do one of the following: ## Caveats -Space Cadet's functionality can conflict with the default Command functionality when both Shift keys are held at the same time. See the [Command feature](feature_command) for info on how to change it, or make sure that Command is disabled in your `rules.mk` with: +Space Cadet's functionality can conflict with the default Command functionality when both Shift keys are held at the same time. See the [Command feature](command) for info on how to change it, or make sure that Command is disabled in your `rules.mk` with: ```make COMMAND_ENABLE = no diff --git a/docs/feature_split_keyboard.md b/docs/features/split_keyboard.md similarity index 97% rename from docs/feature_split_keyboard.md rename to docs/features/split_keyboard.md index c39d0a7e083..6efa1c2a35c 100644 --- a/docs/feature_split_keyboard.md +++ b/docs/features/split_keyboard.md @@ -20,12 +20,12 @@ Both sides must use the same MCU family, for eg two Pro Micro-compatible control | Transport | AVR | ARM | |------------------------------|--------------------|--------------------| -| ['serial'](serial_driver) | :heavy_check_mark: | :white_check_mark: 1 | +| ['serial'](../drivers/serial) | :heavy_check_mark: | :white_check_mark: 1 | | I2C | :heavy_check_mark: | | Notes: -1. Both hardware and software limitations are detailed within the [driver documentation](serial_driver). +1. Both hardware and software limitations are detailed within the [driver documentation](../drivers/serial). ## Hardware Configuration @@ -173,10 +173,10 @@ Some controllers (e.g. Blackpill with DFU compatible bootloader) will need to be ::: ::: tip -[QMK Toolbox]() can also be used to flash EEPROM handedness files. Place the controller in bootloader mode and select menu option Tools -> EEPROM -> Set Left/Right Hand +[QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases/) can also be used to flash EEPROM handedness files. Place the controller in bootloader mode and select menu option Tools -> EEPROM -> Set Left/Right Hand ::: -This setting is not changed when re-initializing the EEPROM using the `EE_CLR` key, or using the `eeconfig_init()` function. However, if you reset the EEPROM outside of the firmware's built in options (such as flashing a file that overwrites the `EEPROM`, like how the [QMK Toolbox]()'s "Reset EEPROM" button works), you'll need to re-flash the controller with the `EEPROM` files. +This setting is not changed when re-initializing the EEPROM using the `EE_CLR` key, or using the `eeconfig_init()` function. However, if you reset the EEPROM outside of the firmware's built in options (such as flashing a file that overwrites the `EEPROM`, like how the [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases/)'s "Reset EEPROM" button works), you'll need to re-flash the controller with the `EEPROM` files. You can find the `EEPROM` files in the QMK firmware repo, [here](https://github.com/qmk/qmk_firmware/tree/master/quantum/split_common). @@ -307,7 +307,7 @@ This enables transmitting the current ST7565 on/off status to the slave side of This enables transmitting the pointing device status to the master side of the split keyboard. The purpose of this feature is to enable use pointing devices on the slave side. ::: warning -There is additional required configuration for `SPLIT_POINTING_ENABLE` outlined in the [pointing device documentation](feature_pointing_device#split-keyboard-configuration). +There is additional required configuration for `SPLIT_POINTING_ENABLE` outlined in the [pointing device documentation](pointing_device#split-keyboard-configuration). ::: ```c diff --git a/docs/feature_st7565.md b/docs/features/st7565.md similarity index 100% rename from docs/feature_st7565.md rename to docs/features/st7565.md diff --git a/docs/feature_stenography.md b/docs/features/stenography.md similarity index 98% rename from docs/feature_stenography.md rename to docs/features/stenography.md index 6827117a6b3..c6c2155a9af 100644 --- a/docs/feature_stenography.md +++ b/docs/features/stenography.md @@ -25,7 +25,7 @@ Note: Due to hardware limitations, you might not be able to run both a virtual s ::: ::: warning -Serial stenography protocols are not supported on [V-USB keyboards](compatible_microcontrollers#atmel-avr). +Serial stenography protocols are not supported on [V-USB keyboards](../compatible_microcontrollers#atmel-avr). ::: To enable stenography protocols, add the following lines to your `rules.mk`: @@ -94,7 +94,7 @@ STENO_ENABLE = yes STENO_PROTOCOL = all ``` -If you want to switch protocols programatically, as part of a custom macro for example, don't use `tap_code(QK_STENO_*)`, as `tap_code` only supports [basic keycodes](keycodes_basic). Instead, you should use `steno_set_mode(STENO_MODE_*)`, whose valid arguments are `STENO_MODE_BOLT` and `STENO_MODE_GEMINI`. +If you want to switch protocols programatically, as part of a custom macro for example, don't use `tap_code(QK_STENO_*)`, as `tap_code` only supports [basic keycodes](../keycodes_basic). Instead, you should use `steno_set_mode(STENO_MODE_*)`, whose valid arguments are `STENO_MODE_BOLT` and `STENO_MODE_GEMINI`. The default protocol is Gemini PR but the last protocol used is stored in non-volatile memory so QMK will remember your choice between reboots of your keyboard — assuming that your keyboard features (emulated) EEPROM. diff --git a/docs/feature_swap_hands.md b/docs/features/swap_hands.md similarity index 94% rename from docs/feature_swap_hands.md rename to docs/features/swap_hands.md index 7546823d841..3560fe22f09 100644 --- a/docs/feature_swap_hands.md +++ b/docs/features/swap_hands.md @@ -30,7 +30,7 @@ Note that the array indices are reversed same as the matrix and the values are o |`QK_SWAP_HANDS_TAP_TOGGLE` |`SH_TT` |Momentary swap when held, toggle when tapped | |`QK_SWAP_HANDS_ONE_SHOT` |`SH_OS` |Turn on hand swap while held or until next key press| -`SH_TT` swap-hands tap-toggle key is similar to [layer tap-toggle](feature_layers#switching-and-toggling-layers). Tapping repeatedly (5 taps by default) will toggle swap-hands on or off, like `SH_TOGG`. Tap-toggle count can be changed by defining a value for `TAPPING_TOGGLE`. +`SH_TT` swap-hands tap-toggle key is similar to [layer tap-toggle](../feature_layers#switching-and-toggling-layers). Tapping repeatedly (5 taps by default) will toggle swap-hands on or off, like `SH_TOGG`. Tap-toggle count can be changed by defining a value for `TAPPING_TOGGLE`. ## Encoder Mapping diff --git a/docs/feature_tap_dance.md b/docs/features/tap_dance.md similarity index 99% rename from docs/feature_tap_dance.md rename to docs/features/tap_dance.md index e43daf41967..3c4040db224 100644 --- a/docs/feature_tap_dance.md +++ b/docs/features/tap_dance.md @@ -17,7 +17,7 @@ Optionally, you might want to set a custom `TAPPING_TERM` time by adding somethi #define TAPPING_TERM_PER_KEY ``` -The `TAPPING_TERM` time is the maximum time allowed between taps of your Tap Dance key, and is measured in milliseconds. For example, if you used the above `#define` statement and set up a Tap Dance key that sends `Space` on single-tap and `Enter` on double-tap, then this key will send `ENT` only if you tap this key twice in less than 175ms. If you tap the key, wait more than 175ms, and tap the key again you'll end up sending `SPC SPC` instead. The `TAPPING_TERM_PER_KEY` definition is only needed if you control the tapping term through a [custom `get_tapping_term` function](tap_hold#tapping_term), which may be needed because `TAPPING_TERM` affects not just tap-dance keys. +The `TAPPING_TERM` time is the maximum time allowed between taps of your Tap Dance key, and is measured in milliseconds. For example, if you used the above `#define` statement and set up a Tap Dance key that sends `Space` on single-tap and `Enter` on double-tap, then this key will send `ENT` only if you tap this key twice in less than 175ms. If you tap the key, wait more than 175ms, and tap the key again you'll end up sending `SPC SPC` instead. The `TAPPING_TERM_PER_KEY` definition is only needed if you control the tapping term through a [custom `get_tapping_term` function](../tap_hold#tapping_term), which may be needed because `TAPPING_TERM` affects not just tap-dance keys. Next, you will want to define some tap-dance keys, which is easiest to do with the `TD()` macro. That macro takes a number which will later be used as an index into the `tap_dance_actions` array and turns it into a tap-dance keycode. @@ -33,7 +33,7 @@ After this, you'll want to use the `tap_dance_actions` array to specify what act The first option is enough for a lot of cases, that just want dual roles. For example, `ACTION_TAP_DANCE_DOUBLE(KC_SPC, KC_ENT)` will result in `Space` being sent on single-tap, `Enter` otherwise. ::: warning -Keep in mind that only [basic keycodes](keycodes_basic) are supported here. Custom keycodes are not supported. +Keep in mind that only [basic keycodes](../keycodes_basic) are supported here. Custom keycodes are not supported. ::: Similar to the first option, the second and third option are good for simple layer-switching cases. diff --git a/docs/feature_tri_layer.md b/docs/features/tri_layer.md similarity index 98% rename from docs/feature_tri_layer.md rename to docs/features/tri_layer.md index a67ec97a89f..c32e65caed0 100644 --- a/docs/feature_tri_layer.md +++ b/docs/features/tri_layer.md @@ -8,7 +8,7 @@ TRI_LAYER_ENABLE = yes Note that the "upper", "lower" and "adjust" names don't have a particular significance, they are just used to identify and clarify the behavior. Layers are processed from highest numeric value to lowest, however the values are not required to be consecutive. -For a detailed explanation of how the layer stack works, check out [Keymap Overview](keymap#keymap-and-layers). +For a detailed explanation of how the layer stack works, check out [Keymap Overview](../keymap#keymap-and-layers). ## Keycodes {#keycodes} diff --git a/docs/feature_unicode.md b/docs/features/unicode.md similarity index 98% rename from docs/feature_unicode.md rename to docs/features/unicode.md index f9295c1f572..7ed178c30d7 100644 --- a/docs/feature_unicode.md +++ b/docs/features/unicode.md @@ -31,7 +31,7 @@ Add the following to your `config.h`: ### Audio Feedback {#audio-feedback} -If you have the [Audio](feature_audio) feature enabled on your board, you can configure it to play sounds when the input mode is changed. +If you have the [Audio](audio) feature enabled on your board, you can configure it to play sounds when the input mode is changed. Add the following to your `config.h`: @@ -199,7 +199,7 @@ Emacs supports code point input with the `insert-char` command. **Mode Name:** `UNICODE_MODE_BSD` -Not currently implemented. If you're a BSD user and want to contribute support for this input mode, please [feel free](contributing)! +Not currently implemented. If you're a BSD user and want to contribute support for this input mode, please [feel free](../contributing)! ::::: diff --git a/docs/feature_wpm.md b/docs/features/wpm.md similarity index 100% rename from docs/feature_wpm.md rename to docs/features/wpm.md diff --git a/docs/flashing.md b/docs/flashing.md index c1e9f2a43d4..798331eb23d 100644 --- a/docs/flashing.md +++ b/docs/flashing.md @@ -53,7 +53,7 @@ QMK maintains [a fork of the LUFA DFU bootloader](https://github.com/qmk/lufa/tr //#define QMK_LED E6 //#define QMK_SPEAKER C6 ``` -Currently we do not recommend making `QMK_ESC` the same key as the one designated for [Bootmagic Lite](feature_bootmagic), as holding it down will cause the MCU to loop back and forth between entering and exiting the bootloader. +Currently we do not recommend making `QMK_ESC` the same key as the one designated for [Bootmagic Lite](features/bootmagic), as holding it down will cause the MCU to loop back and forth between entering and exiting the bootloader. The manufacturer and product strings are automatically pulled from `config.h`, with " Bootloader" appended to the product string. @@ -209,7 +209,7 @@ To enable the additional features, add the following defines to your `config.h`: //#define QMK_SPEAKER C6 ``` -Currently we do not recommend making `QMK_ESC` the same key as the one designated for [Bootmagic Lite](feature_bootmagic), as holding it down will cause the MCU to loop back and forth between entering and exiting the bootloader. +Currently we do not recommend making `QMK_ESC` the same key as the one designated for [Bootmagic Lite](features/bootmagic), as holding it down will cause the MCU to loop back and forth between entering and exiting the bootloader. The manufacturer and product strings are automatically pulled from `config.h`, with " Bootloader" appended to the product string. diff --git a/docs/getting_started_make_guide.md b/docs/getting_started_make_guide.md index 8a66a65c21a..59455adb30e 100644 --- a/docs/getting_started_make_guide.md +++ b/docs/getting_started_make_guide.md @@ -115,11 +115,11 @@ This allows you to send Unicode characters using `UM()` in your keyma This allows you to send Unicode characters by inputting a mnemonic corresponding to the character you want to send. You will need to maintain a mapping table in your keymap file. All possible code points (up to `0x10FFFF`) are supported. -For further details, as well as limitations, see the [Unicode page](feature_unicode). +For further details, as well as limitations, see the [Unicode page](features/unicode). `AUDIO_ENABLE` -This allows you output audio on the C6 pin (needs abstracting). See the [audio page](feature_audio) for more information. +This allows you output audio on the C6 pin (needs abstracting). See the [audio page](features/audio) for more information. `VARIABLE_TRACE` @@ -127,7 +127,7 @@ Use this to debug changes to variable values, see the [tracing variables](unit_t `KEY_LOCK_ENABLE` -This enables [key lock](feature_key_lock). +This enables [key lock](features/key_lock). `SPLIT_KEYBOARD` diff --git a/docs/hand_wire.md b/docs/hand_wire.md index 0928888f0e7..cbb91790607 100644 --- a/docs/hand_wire.md +++ b/docs/hand_wire.md @@ -88,7 +88,7 @@ Note that these methods can be combined. Prepare your lengths of wire before mo ### A note on split keyboards -If you are planning a split keyboard (e.g. Dactyl) each half will require a controller and a means of communicating between them (like a TRRS or hardwired cable). Further information can be found in the [QMK split keyboard documentation.](feature_split_keyboard) +If you are planning a split keyboard (e.g. Dactyl) each half will require a controller and a means of communicating between them (like a TRRS or hardwired cable). Further information can be found in the [QMK split keyboard documentation.](features/split_keyboard) ### Soldering diff --git a/docs/hardware_drivers.md b/docs/hardware_drivers.md index 6960bbcaa18..694d46971ac 100644 --- a/docs/hardware_drivers.md +++ b/docs/hardware_drivers.md @@ -16,20 +16,20 @@ Support for addressing pins on the ProMicro by their Arduino name rather than th ## SSD1306 OLED Driver -Support for SSD1306 based OLED displays. For more information see the [OLED Driver Feature](feature_oled_driver) page. +Support for SSD1306 based OLED displays. For more information see the [OLED Driver Feature](features/oled_driver) page. ## WS2812 -Support for WS2811/WS2812{a,b,c} LED's. For more information see the [RGB Light](feature_rgblight) page. +Support for WS2811/WS2812{a,b,c} LED's. For more information see the [RGB Light](features/rgblight) page. ## IS31FL3731 -Support for up to 2 drivers. Each driver impliments 2 charlieplex matrices to individually address LEDs using I2C. This allows up to 144 same color LEDs or 32 RGB LEDs. For more information on how to setup the driver see the [RGB Matrix](feature_rgb_matrix) page. +Support for up to 2 drivers. Each driver impliments 2 charlieplex matrices to individually address LEDs using I2C. This allows up to 144 same color LEDs or 32 RGB LEDs. For more information on how to setup the driver see the [RGB Matrix](features/rgb_matrix) page. ## IS31FL3733 -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) page. +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](features/rgb_matrix) page. ## 24xx series external I2C EEPROM -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) page. +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](drivers/eeprom) page. diff --git a/docs/hardware_keyboard_guidelines.md b/docs/hardware_keyboard_guidelines.md index 728e09c8a9a..de67fa3bc39 100644 --- a/docs/hardware_keyboard_guidelines.md +++ b/docs/hardware_keyboard_guidelines.md @@ -230,7 +230,7 @@ Given the amount of functionality that QMK exposes it's very easy to confuse new ### Magic Keycodes and Command -[Magic Keycodes](keycodes_magic) and [Command](feature_command) are two related features that allow a user to control their keyboard in non-obvious ways. We recommend you think long and hard about if you're going to enable either feature, and how you will expose this functionality. Keep in mind that users who want this functionality can enable it in their personal keymaps without affecting all the novice users who may be using your keyboard as their first programmable board. +[Magic Keycodes](keycodes_magic) and [Command](features/command) are two related features that allow a user to control their keyboard in non-obvious ways. We recommend you think long and hard about if you're going to enable either feature, and how you will expose this functionality. Keep in mind that users who want this functionality can enable it in their personal keymaps without affecting all the novice users who may be using your keyboard as their first programmable board. By far the most common problem new users encounter is accidentally triggering Bootmagic while they're plugging in their keyboard. They're holding the keyboard by the bottom, unknowingly pressing in alt and spacebar, and then they find that these keys have been swapped on them. We recommend leaving this feature disabled by default, but if you do turn it on consider setting `BOOTMAGIC_KEY_SALT` to a key that is hard to press while plugging your keyboard in. diff --git a/docs/keycodes.md b/docs/keycodes.md index 38ed5ab18d4..4c91d98fa7a 100644 --- a/docs/keycodes.md +++ b/docs/keycodes.md @@ -233,7 +233,7 @@ See also: [Quantum Keycodes](quantum_keycodes#qmk-keycodes) ## Audio Keys {#audio-keys} -See also: [Audio](feature_audio) +See also: [Audio](features/audio) |Key |Aliases |Description | |-------------------------|---------|-------------------------------------------| @@ -255,7 +255,7 @@ See also: [Audio](feature_audio) ## Auto Shift {#auto-shift} -See also: [Auto Shift](feature_auto_shift) +See also: [Auto Shift](features/auto_shift) |Key |Aliases |Description | |----------------------|---------|--------------------------------------------| @@ -268,7 +268,7 @@ See also: [Auto Shift](feature_auto_shift) ## Autocorrect {#autocorrect} -See also: [Autocorrect](feature_autocorrect) +See also: [Autocorrect](features/autocorrect) |Key |Aliases |Description | |-----------------------|---------|----------------------------------------------| @@ -278,7 +278,7 @@ See also: [Autocorrect](feature_autocorrect) ## Backlighting {#backlighting} -See also: [Backlighting](feature_backlight) +See also: [Backlighting](features/backlight) | Key | Aliases | Description | |---------------------------------|-----------|-------------------------------------| @@ -292,7 +292,7 @@ See also: [Backlighting](feature_backlight) ## Bluetooth {#bluetooth} -See also: [Bluetooth](feature_bluetooth) +See also: [Bluetooth](features/bluetooth) |Key |Aliases |Description | |---------------------|---------|----------------------------------------------| @@ -302,7 +302,7 @@ See also: [Bluetooth](feature_bluetooth) ## Caps Word {#caps-word} -See also: [Caps Word](feature_caps_word) +See also: [Caps Word](features/caps_word) |Key |Aliases |Description | |---------------------|---------|------------------------------| @@ -310,7 +310,7 @@ See also: [Caps Word](feature_caps_word) ## Dynamic Macros {#dynamic-macros} -See also: [Dynamic Macros](feature_dynamic_macros) +See also: [Dynamic Macros](features/dynamic_macros) |Key |Aliases |Description | |---------------------------------|---------|--------------------------------------------------| @@ -322,7 +322,7 @@ See also: [Dynamic Macros](feature_dynamic_macros) ## Grave Escape {#grave-escape} -See also: [Grave Escape](feature_grave_esc) +See also: [Grave Escape](features/grave_esc) |Key |Aliases |Description | |-----------------|---------|------------------------------------------------------------------| @@ -330,7 +330,7 @@ See also: [Grave Escape](feature_grave_esc) ## Joystick {#joystick} -See also: [Joystick](feature_joystick) +See also: [Joystick](features/joystick) |Key |Aliases|Description| |-----------------------|-------|-----------| @@ -369,7 +369,7 @@ See also: [Joystick](feature_joystick) ## Key Lock {#key-lock} -See also: [Key Lock](feature_key_lock) +See also: [Key Lock](features/key_lock) |Key |Description | |---------|--------------------------------------------------------------| @@ -392,7 +392,7 @@ See also: [Layer Switching](feature_layers#switching-and-toggling-layers) ## Leader Key {#leader-key} -See also: [Leader Key](feature_leader_key) +See also: [Leader Key](features/leader_key) |Key |Description | |---------|------------------------| @@ -400,7 +400,7 @@ See also: [Leader Key](feature_leader_key) ## LED Matrix {#led-matrix} -See also: [LED Matrix](feature_led_matrix) +See also: [LED Matrix](features/led_matrix) |Key |Aliases |Description | |-------------------------------|---------|-----------------------------------| @@ -458,7 +458,7 @@ See also: [Magic Keycodes](keycodes_magic) ## MIDI {#midi} -See also: [MIDI](feature_midi) +See also: [MIDI](features/midi) |Key |Aliases |Description | |-------------------------------|------------------|---------------------------------| @@ -609,7 +609,7 @@ See also: [MIDI](feature_midi) ## Mouse Keys {#mouse-keys} -See also: [Mouse Keys](feature_mouse_keys) +See also: [Mouse Keys](features/mouse_keys) |Key |Aliases |Description | |----------------|---------|---------------------------| @@ -699,7 +699,7 @@ See also: [Dynamic Tapping Term](tap_hold#dynamic-tapping-term) ## RGB Lighting {#rgb-lighting} -See also: [RGB Lighting](feature_rgblight) +See also: [RGB Lighting](features/rgblight) |Key |Aliases |Description | |-------------------|----------|--------------------------------------------------------------------| @@ -724,7 +724,7 @@ See also: [RGB Lighting](feature_rgblight) ## RGB Matrix Lighting {#rgb-matrix-lighting} -See also: [RGB Matrix Lighting](feature_rgb_matrix) +See also: [RGB Matrix Lighting](features/rgb_matrix) |Key |Aliases |Description | |-------------------|----------|--------------------------------------------------------------------------------------| @@ -782,7 +782,7 @@ See also: [One Shot Keys](one_shot_keys) ## Programmable Button Support {#programmable-button} -See also: [Programmable Button](feature_programmable_button) +See also: [Programmable Button](features/programmable_button) |Key |Aliases|Description | |---------------------------|-------|----------------------| @@ -821,7 +821,7 @@ See also: [Programmable Button](feature_programmable_button) ## Repeat Key {#repeat-key} -See also: [Repeat Key](feature_repeat_key) +See also: [Repeat Key](features/repeat_key) |Keycode |Aliases |Description | |-----------------------|---------|-------------------------------------| @@ -830,7 +830,7 @@ See also: [Repeat Key](feature_repeat_key) ## Space Cadet {#space-cadet} -See also: [Space Cadet](feature_space_cadet) +See also: [Space Cadet](features/space_cadet) |Key |Aliases |Description | |----------------------------------------------|---------|----------------------------------------| @@ -844,7 +844,7 @@ See also: [Space Cadet](feature_space_cadet) ## Swap Hands {#swap-hands} -See also: [Swap Hands](feature_swap_hands) +See also: [Swap Hands](features/swap_hands) |Key |Aliases |Description | |-----------------------------|---------|----------------------------------------------------| @@ -859,7 +859,7 @@ See also: [Swap Hands](feature_swap_hands) ## Unicode Support {#unicode-support} -See also: [Unicode Support](feature_unicode) +See also: [Unicode Support](features/unicode) |Key |Aliases |Description | |----------------------------|---------|----------------------------------------------------------------| diff --git a/docs/mod_tap.md b/docs/mod_tap.md index 0008967c524..37c2ba3473b 100644 --- a/docs/mod_tap.md +++ b/docs/mod_tap.md @@ -55,7 +55,7 @@ For convenience, QMK includes some Mod-Tap shortcuts to make common combinations Currently, the `kc` argument of `MT()` is limited to the [Basic Keycode set](keycodes_basic), meaning you can't use keycodes like `LCTL()`, `KC_TILD`, or anything greater than `0xFF`. This is because QMK uses 16-bit keycodes, of which 3 bits are used for the function identifier, 1 bit for selecting right or left mods, and 4 bits to tell which mods are used, leaving only 8 bits for the keycode. Additionally, if at least one right-handed modifier is specified in a Mod-Tap, it will cause all modifiers specified to become right-handed, so it is not possible to mix and match the two - for example, Left Control and Right Shift would become Right Control and Right Shift. -Expanding this would be complicated, at best. Moving to a 32-bit keycode would solve a lot of this, but would double the amount of space that the keymap matrix uses. And it could potentially cause issues, too. If you need to apply modifiers to your tapped keycode, [Tap Dance](feature_tap_dance#example-5-using-tap-dance-for-advanced-mod-tap-and-layer-tap-keys) can be used to accomplish this. +Expanding this would be complicated, at best. Moving to a 32-bit keycode would solve a lot of this, but would double the amount of space that the keymap matrix uses. And it could potentially cause issues, too. If you need to apply modifiers to your tapped keycode, [Tap Dance](features/tap_dance#example-5-using-tap-dance-for-advanced-mod-tap-and-layer-tap-keys) can be used to accomplish this. You may also run into issues when using Remote Desktop Connection on Windows. Because these keycodes send key events faster than a human, Remote Desktop could miss them. To fix this, open Remote Desktop Connection, click on "Show Options", open the "Local Resources" tab, and in the keyboard section, change the drop down to "On this Computer". This will fix the issue, and allow the characters to work correctly. diff --git a/docs/newbs_building_firmware.md b/docs/newbs_building_firmware.md index d7c1157b2d5..f3afd6a8968 100644 --- a/docs/newbs_building_firmware.md +++ b/docs/newbs_building_firmware.md @@ -64,8 +64,8 @@ How to complete this step is entirely up to you. Make the one change that's been * [Basic Keycodes](keycodes_basic) * [Quantum Keycodes](quantum_keycodes) -* [Grave/Escape](feature_grave_esc) -* [Mouse keys](feature_mouse_keys) +* [Grave/Escape](features/grave_esc) +* [Mouse keys](features/mouse_keys) ::: tip While you get a feel for how keymaps work, keep each change small. Bigger changes make it harder to debug any problems that arise. diff --git a/docs/platformdev_rp2040.md b/docs/platformdev_rp2040.md index f0b006cf6ee..1269ffeeb51 100644 --- a/docs/platformdev_rp2040.md +++ b/docs/platformdev_rp2040.md @@ -4,16 +4,16 @@ The following table shows the current driver status for peripherals on RP2040 MC | System | Support | | ---------------------------------------------------------------- | ---------------------------------------------- | -| [ADC driver](adc_driver) | :heavy_check_mark: | -| [Audio](audio_driver#pwm-hardware) | :heavy_check_mark: | -| [Backlight](feature_backlight) | :heavy_check_mark: | -| [I2C driver](i2c_driver) | :heavy_check_mark: | -| [SPI driver](spi_driver) | :heavy_check_mark: | -| [WS2812 driver](ws2812_driver) | :heavy_check_mark: using `PIO` driver | -| [External EEPROMs](eeprom_driver) | :heavy_check_mark: using `I2C` or `SPI` driver | -| [EEPROM emulation](eeprom_driver#wear_leveling-configuration) | :heavy_check_mark: | -| [serial driver](serial_driver) | :heavy_check_mark: using `SIO` or `PIO` driver | -| [UART driver](uart_driver) | :heavy_check_mark: using `SIO` driver | +| [ADC driver](drivers/adc) | :heavy_check_mark: | +| [Audio](drivers/audio#pwm-hardware) | :heavy_check_mark: | +| [Backlight](features/backlight) | :heavy_check_mark: | +| [I2C driver](drivers/i2c) | :heavy_check_mark: | +| [SPI driver](drivers/spi) | :heavy_check_mark: | +| [WS2812 driver](drivers/ws2812) | :heavy_check_mark: using `PIO` driver | +| [External EEPROMs](drivers/eeprom) | :heavy_check_mark: using `I2C` or `SPI` driver | +| [EEPROM emulation](drivers/eeprom#wear_leveling-configuration) | :heavy_check_mark: | +| [serial driver](drivers/serial) | :heavy_check_mark: using `SIO` or `PIO` driver | +| [UART driver](drivers/uart) | :heavy_check_mark: using `SIO` driver | ## GPIO @@ -43,7 +43,7 @@ QMK RP2040 support builds upon ChibiOS and thus follows their convention for act | `I2C0` | `RP_I2C_USE_I2C0` | `I2CD0` | | `I2C1` | `RP_I2C_USE_I2C1` | `I2CD1` | -To configure the I2C driver please read the [ChibiOS/ARM](i2c_driver#arm-configuration) section. +To configure the I2C driver please read the [ChibiOS/ARM](drivers/i2c#arm-configuration) section. ### SPI Driver @@ -52,7 +52,7 @@ To configure the I2C driver please read the [ChibiOS/ARM](i2c_driver#arm-configu | `SPI0` | `RP_SPI_USE_SPI0` | `SPID0` | | `SPI1` | `RP_SPI_USE_SPI1` | `SPID1` | -To configure the SPI driver please read the [ChibiOS/ARM](spi_driver#chibiosarm-configuration) section. +To configure the SPI driver please read the [ChibiOS/ARM](drivers/spi#chibiosarm-configuration) section. ### UART Driver @@ -92,7 +92,7 @@ This is the default board that is chosen, unless any other RP2040 board is selec | `SPI_MISO_PIN` | `GP20` | | `SPI_MOSI_PIN` | `GP19` | | **Serial driver** | | -| `SERIAL_USART_DRIVER` ([SIO Driver](serial_driver#the-sio-driver) only) | `SIOD0` | +| `SERIAL_USART_DRIVER` ([SIO Driver](drivers/serial#the-sio-driver) only) | `SIOD0` | | `SOFT_SERIAL_PIN` | undefined, use `SERIAL_USART_TX_PIN` | | `SERIAL_USART_TX_PIN` | `GP0` | | `SERIAL_USART_RX_PIN` | `GP1` | @@ -115,9 +115,9 @@ BOARD = GENERIC_RP_RP2040 ## Split keyboard support -Split keyboards are fully supported using the [serial driver](serial_driver) in both full-duplex and half-duplex configurations. Two driver subsystems are supported by the RP2040, the hardware UART based `SIO` and the Programmable IO based `PIO` driver. +Split keyboards are fully supported using the [serial driver](drivers/serial) in both full-duplex and half-duplex configurations. Two driver subsystems are supported by the RP2040, the hardware UART based `SIO` and the Programmable IO based `PIO` driver. -| Feature | [SIO Driver](serial_driver#the-sio-driver) | [PIO Driver](serial_driver#the-pio-driver) | +| Feature | [SIO Driver](drivers/serial#the-sio-driver) | [PIO Driver](drivers/serial#the-pio-driver) | | ----------------------------- | --------------------------------------------- | --------------------------------------------- | | Half-Duplex operation | | :heavy_check_mark: | | Full-Duplex operation | :heavy_check_mark: | :heavy_check_mark: | diff --git a/docs/porting_your_keyboard_to_qmk.md b/docs/porting_your_keyboard_to_qmk.md index c91e5ca31df..eb45790128d 100644 --- a/docs/porting_your_keyboard_to_qmk.md +++ b/docs/porting_your_keyboard_to_qmk.md @@ -153,7 +153,7 @@ In the above example, * `"matrix": [0, 0]` defines the electrical position ::: tip -See also: [Split Keyboard Layout Macro](feature_split_keyboard#layout-macro) and [Matrix to Physical Layout](understanding_qmk#matrix-to-physical-layout-map). +See also: [Split Keyboard Layout Macro](features/split_keyboard#layout-macro) and [Matrix to Physical Layout](understanding_qmk#matrix-to-physical-layout-map). ::: ## Additional Configuration diff --git a/docs/pr_checklist.md b/docs/pr_checklist.md index e5ed1d67b66..f7b16e1d852 100644 --- a/docs/pr_checklist.md +++ b/docs/pr_checklist.md @@ -126,7 +126,7 @@ https://github.com/qmk/qmk_firmware/pulls?q=is%3Apr+is%3Aclosed+label%3Akeyboard - commented-out functions removed too - `matrix_init_board()` etc. migrated to `keyboard_pre_init_kb()`, see: [keyboard_pre_init*](custom_quantum_functions#keyboard_pre_init_-function-documentation) - prefer `CUSTOM_MATRIX = lite` if custom matrix used, allows for standard debounce, see [custom matrix 'lite'](custom_matrix#lite) - - prefer LED indicator [Configuration Options](feature_led_indicators#configuration-options) to custom `led_update_*()` implementations where possible + - prefer LED indicator [Configuration Options](features/led_indicators#configuration-options) to custom `led_update_*()` implementations where possible - hardware that's enabled at the keyboard level and requires configuration such as OLED displays or encoders should have basic functionality implemented here - `.h` - `#include "quantum.h"` appears at the top @@ -135,12 +135,12 @@ https://github.com/qmk/qmk_firmware/pulls?q=is%3Apr+is%3Aclosed+label%3Akeyboard - no duplication of `rules.mk` or `config.h` from keyboard - `keymaps/default/keymap.c` - `QMKBEST`/`QMKURL` example macros removed - - if using `MO(1)` and `MO(2)` keycodes together to access a third layer, the [Tri Layer](feature_tri_layer) feature should be used, rather than manually implementing this using `layer_on/off()` and `update_tri_layer()` functions in the keymap's `process_record_user()`. + - if using `MO(1)` and `MO(2)` keycodes together to access a third layer, the [Tri Layer](features/tri_layer) feature should be used, rather than manually implementing this using `layer_on/off()` and `update_tri_layer()` functions in the keymap's `process_record_user()`. - default (and via) keymaps should be "pristine" - bare minimum to be used as a "clean slate" for another user to develop their own user-specific keymap - what does pristine mean? no custom keycodes. no advanced features like tap dance or macros. basic mod taps and home row mods would be acceptable where their use is necessary - standard layouts preferred in these keymaps, if possible - - should use [encoder map feature](feature_encoders#encoder-map), rather than `encoder_update_user()` + - should use [encoder map feature](features/encoders#encoder-map), rather than `encoder_update_user()` - default keymap should not enable VIA -- the VIA integration documentation requires a keymap called `via` - submitters can add an example (or bells-and-whistles) keymap showcasing capabilities in the same PR but it shouldn't be embedded in the 'default' keymap - submitters can also have a "manufacturer-matching" keymap that mirrors existing functionality of the commercial product, if porting an existing board diff --git a/docs/ref_functions.md b/docs/ref_functions.md index 156c9ed20b1..577273c05d3 100644 --- a/docs/ref_functions.md +++ b/docs/ref_functions.md @@ -71,7 +71,7 @@ Do you want to set the default layer, so that it's retained even after you unplu To use this, you would use `set_single_persistent_default_layer(layer)`. If you have a name defined for your layer, you can use that instead (such as _QWERTY, _DVORAK or _COLEMAK). -This will set the default layer, update the persistent settings, and play a tune if you have [Audio](feature_audio) enabled on your board, and the default layer sounds set. +This will set the default layer, update the persistent settings, and play a tune if you have [Audio](features/audio) enabled on your board, and the default layer sounds set. To configure the default layer sounds, you would want to define this in your `config.h` file, like this: @@ -99,7 +99,7 @@ To reset to the bootloader use `QK_BOOTLOADER` or `QK_BOOT` keycode or `reset_ke ## Wiping the EEPROM (Persistent Storage) -If you're having issues with Audio, RGB Underglow, backlighting or keys acting weird, then you can reset the EEPROM (persistent setting storage). To force an EEPROM reset, use the [`EE_CLR` keycode](quantum_keycodes) or [Bootmagic Lite](feature_bootmagic) functionality. If neither of those are an option, then you can use a custom macro to do so. +If you're having issues with Audio, RGB Underglow, backlighting or keys acting weird, then you can reset the EEPROM (persistent setting storage). To force an EEPROM reset, use the [`EE_CLR` keycode](quantum_keycodes) or [Bootmagic Lite](features/bootmagic) functionality. If neither of those are an option, then you can use a custom macro to do so. To wipe the EEPROM, run `eeconfig_init()` from your function or macro to reset most of the settings to default. diff --git a/docs/reference_glossary.md b/docs/reference_glossary.md index cf8c8f0d75f..d24576b3330 100644 --- a/docs/reference_glossary.md +++ b/docs/reference_glossary.md @@ -36,7 +36,7 @@ An alternative keyboard layout developed by Dr. August Dvorak in the 1930's. A s ## Dynamic Macro A macro which has been recorded on the keyboard and which will be lost when the keyboard is unplugged or the computer rebooted. -* [Dynamic Macro Documentation](feature_dynamic_macros) +* [Dynamic Macro Documentation](features/dynamic_macros) ## Eclipse An IDE that is popular with many C developers. @@ -76,7 +76,7 @@ An abstraction used to allow a key to serve multiple purposes. The highest activ ## Leader Key A feature that allows you to tap the leader key followed by a sequence of 1, 2, or 3 keys to activate key presses or other quantum features. -* [Leader Key Documentation](feature_leader_key) +* [Leader Key Documentation](features/leader_key) ## LED Light Emitting Diode, the most common device used for indicators on a keyboard. @@ -101,7 +101,7 @@ A key that is held down while typing another key to modify the action of that ke ## Mousekeys A feature that lets you control your mouse cursor and click from your keyboard. -* [Mousekeys Documentation](feature_mouse_keys) +* [Mousekeys Documentation](features/mouse_keys) ## N-Key Rollover (NKRO) A term that applies to keyboards that are capable of reporting any number of key-presses at once. @@ -130,7 +130,7 @@ A 1 byte number that is sent as part of a HID report over USB that represents a ## Space Cadet Shift A special set of shift keys which allow you to type various types of braces by tapping the left or right shift one or more times. -* [Space Cadet Shift Documentation](feature_space_cadet) +* [Space Cadet Shift Documentation](features/space_cadet) ## Tap Pressing and releasing a key. In some situations you will need to distinguish between a key down and a key up event, and Tap always refers to both at once. @@ -138,7 +138,7 @@ Pressing and releasing a key. In some situations you will need to distinguish be ## Tap Dance A feature that lets you assign multiple keycodes to the same key based on how many times you press it. -* [Tap Dance Documentation](feature_tap_dance) +* [Tap Dance Documentation](features/tap_dance) ## Teensy A low-cost AVR development board that is commonly used for hand-wired builds. A teensy is often chosen despite costing a few dollars more due to its halfkay bootloader, which makes flashing very simple. @@ -149,7 +149,7 @@ A generic term for LEDs that light the underside of the board. These LEDs typica ## Unicode In the larger computer world Unicode is a set of encoding schemes for representing characters in any language. As it relates to QMK it means using various OS schemes to send unicode codepoints instead of scancodes. -* [Unicode Documentation](feature_unicode) +* [Unicode Documentation](features/unicode) ## Unit Testing A framework for running automated tests against QMK. Unit testing helps us be confident that our changes do not break anything. diff --git a/docs/reference_info_json.md b/docs/reference_info_json.md index 25d2e9d1d83..2db2cd14277 100644 --- a/docs/reference_info_json.md +++ b/docs/reference_info_json.md @@ -95,7 +95,7 @@ You can create `info.json` files at every level under `qmk_firmware/keyboards/ - * [Audio](feature_audio) + * [Audio](features/audio) * Lighting - * [Backlight](feature_backlight) - * [LED Matrix](feature_led_matrix) - * [RGB Lighting](feature_rgblight) - * [RGB Matrix](feature_rgb_matrix) + * [Backlight](features/backlight) + * [LED Matrix](features/led_matrix) + * [RGB Lighting](features/rgblight) + * [RGB Matrix](features/rgb_matrix) * [Tap-Hold Configuration](tap_hold) * [Squeezing Space from AVR](squeezing_avr) * **Learn More About Keymaps** * [Keymaps](keymap) * [Custom Functions and Keycodes](custom_quantum_functions) * Macros - * [Dynamic Macros](feature_dynamic_macros) + * [Dynamic Macros](features/dynamic_macros) * [Compiled Macros](feature_macros) - * [Tap Dance](feature_tap_dance) - * [Combos](feature_combo) + * [Tap Dance](features/tap_dance) + * [Combos](features/combo) * [Userspace](feature_userspace) - * [Key Overrides](feature_key_overrides) + * [Key Overrides](features/key_overrides) # Advanced Topics @@ -53,15 +53,15 @@ Everything below here requires a lot of foundational knowledge. Besides being ab * [info.json Reference](reference_info_json) * [Debounce API](feature_debounce_type) * **Advanced Features** - * [Unicode](feature_unicode) + * [Unicode](features/unicode) * [API](api_overview) - * [Bootmagic Lite](feature_bootmagic) + * [Bootmagic Lite](features/bootmagic) * **Hardware** * [How Keyboards Work](how_keyboards_work) * [How A Keyboard Matrix Works](how_a_matrix_works) - * [Split Keyboards](feature_split_keyboard) - * [Stenography](feature_stenography) - * [Pointing Devices](feature_pointing_device) + * [Split Keyboards](features/split_keyboard) + * [Stenography](features/stenography) + * [Pointing Devices](features/pointing_device) * **Core Development** * [Coding Conventions](coding_conventions_c) * [Compatible Microcontrollers](compatible_microcontrollers) diff --git a/docs/tap_hold.md b/docs/tap_hold.md index fe862894b45..9b7f6552cbf 100644 --- a/docs/tap_hold.md +++ b/docs/tap_hold.md @@ -497,7 +497,7 @@ Do not use `MOD_xxx` constants like `MOD_LSFT` or `MOD_RALT`, since they're 5-bi ### Retro Shift -[Auto Shift,](feature_auto_shift) has its own version of `retro tapping` called `retro shift`. It is extremely similar to `retro tapping`, but holding the key past `AUTO_SHIFT_TIMEOUT` results in the value it sends being shifted. Other configurations also affect it differently; see [here](feature_auto_shift#retro-shift) for more information. +[Auto Shift,](features/auto_shift) has its own version of `retro tapping` called `retro shift`. It is extremely similar to `retro tapping`, but holding the key past `AUTO_SHIFT_TIMEOUT` results in the value it sends being shifted. Other configurations also affect it differently; see [here](features/auto_shift#retro-shift) for more information. ## Why do we include the key record for the per key functions? From 41dbb4c86c2afd45480ed38c0d5f058eef41a92f Mon Sep 17 00:00:00 2001 From: Alex Mayer Date: Sat, 1 Jun 2024 23:19:23 -0400 Subject: [PATCH 03/46] Fix Vitamins Included Keymap Formatting (#23803) --- .../keymaps/default/keymap.c | 48 +++++++++---------- 1 file changed, 23 insertions(+), 25 deletions(-) diff --git a/keyboards/vitamins_included/keymaps/default/keymap.c b/keyboards/vitamins_included/keymaps/default/keymap.c index 12219b723ad..3fcb08b8da1 100644 --- a/keyboards/vitamins_included/keymaps/default/keymap.c +++ b/keyboards/vitamins_included/keymaps/default/keymap.c @@ -1,7 +1,5 @@ #include QMK_KEYBOARD_H -// Layer names - enum layer_names { _QWERTY, _COLEMAK, @@ -25,9 +23,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Qwerty * ,-----------------------------------------------------------------------------------. * | Esc | Q | W | E | R | T | Y | U | I | O | P | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| + * |------+------+------+------+------+------+------+------+------+------+------+------| * | Tab | A | S | D | F | G | H | J | K | L | ; | ' | - * |------+------+------+------+------+------|------+------+------+------+------+------| + * |------+------+------+------+------+------+------+------+------+------+------+------| * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | * |------+------+------+------+------+------+------+------+------+------+------+------| * | Ctrl | GUI | Alt |Adjust|Lower |Space |Space |Raise | Left | Down | Up |Right | @@ -43,9 +41,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Colemak * ,-----------------------------------------------------------------------------------. * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| + * |------+------+------+------+------+------+------+------+------+------+------+------| * | Esc | A | R | S | T | D | H | N | E | I | O | ' | - * |------+------+------+------+------+------|------+------+------+------+------+------| + * |------+------+------+------+------+------+------+------+------+------+------+------| * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | * |------+------+------+------+------+------+------+------+------+------+------+------| * |Adjust| Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right | @@ -61,9 +59,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Dvorak * ,-----------------------------------------------------------------------------------. * | Tab | ' | , | . | P | Y | F | G | C | R | L | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| + * |------+------+------+------+------+------+------+------+------+------+------+------| * | Esc | A | O | E | U | I | D | H | T | N | S | / | - * |------+------+------+------+------+------|------+------+------+------+------+------| + * |------+------+------+------+------+------+------+------+------+------+------+------| * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | * |------+------+------+------+------+------+------+------+------+------+------+------| * |Adjust| Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right | @@ -79,30 +77,30 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Lower * ,-----------------------------------------------------------------------------------. * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | | \ | | | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * |QK_BOOT | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | | |Enter | * |------+------+------+------+------+------+------+------+------+------+------+------| - * |TGNKRO| | | | | | | Next | Vol- | Vol+ | Play | + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | | \ | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | BOOT | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | | |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * |TGNKRO| | | | | | | | Next | Vol- | Vol+ | Play | * `-----------------------------------------------------------------------------------' */ [_LOWER] = LAYOUT_ortho_4x12( - KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, - KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, - QK_BOOT, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),_______,_______,_______, - NK_TOGG, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, + QK_BOOT, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), _______, _______, _______, + NK_TOGG, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY ), /* Raise * ,-----------------------------------------------------------------------------------. * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / | |TGNKRO|QK_BOOT | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | Next | Vol- | Vol+ | Play | + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / | |TGNKRO| BOOT | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | Next | Vol- | Vol+ | Play | * `-----------------------------------------------------------------------------------' */ [_RAISE] = LAYOUT_ortho_4x12( @@ -115,12 +113,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Adjust (Lower + Raise) * ,-----------------------------------------------------------------------------------. * | |Qwerty|Colemk|Dvorak| | | | | | | | | - * |------+------+------+------+------+-------------+------+------+------+------+------| + * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | |Qwerty|Colemk|Dvorak| | | - * |------+------+------+------+------+------|------+------+------+------+------+------| + * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | | | | | | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | |Audoff Audon | | | | |RGBMOD| + * | | | | | |Audoff|Audon | | | | |RGBMOD| * `-----------------------------------------------------------------------------------' */ [_ADJUST] = LAYOUT_ortho_4x12( From 282253a7e0c51717234bd64159a37ee527d16dc2 Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Mon, 3 Jun 2024 08:55:03 +1000 Subject: [PATCH 04/46] [docs] Add ability to redirect based on input path. (#23851) --- .../docsgen/.vitepress/theme/QMKLayout.vue | 15 +++- docs/_aliases.json | 74 +++++++++++++++++++ 2 files changed, 87 insertions(+), 2 deletions(-) create mode 100644 docs/_aliases.json diff --git a/builddefs/docsgen/.vitepress/theme/QMKLayout.vue b/builddefs/docsgen/.vitepress/theme/QMKLayout.vue index 30d0780d7c3..9d7a41f9e2d 100644 --- a/builddefs/docsgen/.vitepress/theme/QMKLayout.vue +++ b/builddefs/docsgen/.vitepress/theme/QMKLayout.vue @@ -2,11 +2,22 @@ import DefaultTheme from 'vitepress/theme' import { useRouter } from 'vitepress' import { onBeforeMount } from 'vue'; +import aliases from "../../../../docs/_aliases.json"; const router = useRouter() onBeforeMount(async () => { - if (window.location.href.includes('/#/')) { - const newUrl = window.location.href.replace(/\/#\//, '/').replace(/\?id=/, '#'); + // Convert from docsify-style to vitepress-style URLs + let newUrl = window.location.href.replace(/\/#\//, '/').replace(/\?id=/, '#'); + + // Convert any aliases + let testUrl = new URL(newUrl); + while (testUrl.pathname in aliases) { + testUrl.pathname = aliases[testUrl.pathname]; + } + newUrl = testUrl.toString(); + + // Redirect if required + if (newUrl != window.location.href) { window.history.replaceState({}, '', newUrl); await router.go(newUrl); } diff --git a/docs/_aliases.json b/docs/_aliases.json new file mode 100644 index 00000000000..a2224bd0d54 --- /dev/null +++ b/docs/_aliases.json @@ -0,0 +1,74 @@ +{ + "/adding_a_keyboard_to_qmk": "/hardware_keyboard_guidelines", + "/build_environment_setup": "/newbs_getting_started", + "/cli_dev_configuration": "/cli_configuration", + "/dynamic_macros": "/feature_dynamic_macros", + "/feature_common_shortcuts": "/feature_advanced_keycodes", + "/getting_started_build_tools": "/newbs_getting_started", + "/getting_started_getting_help": "/support", + "/glossary": "/reference_glossary", + "/key_lock": "/feature_key_lock", + "/make_instructions": "/getting_started_make_guide", + "/python_development": "/cli_development", + "/space_cadet_shift": "/feature_space_cadet_shift", + "/tap_dance": "/feature_tap_dance", + "/tutorial": "/newbs", + "/unicode": "/feature_unicode", + + "/adc_driver": "/drivers/adc", + "/apa102_driver": "/drivers/apa102", + "/audio_driver": "/drivers/audio", + "/eeprom_driver": "/drivers/eeprom", + "/feature_audio": "/features/audio", + "/feature_auto_shift": "/features/auto_shift", + "/feature_autocorrect": "/features/autocorrect", + "/feature_backlight": "/features/backlight", + "/feature_bluetooth": "/features/bluetooth", + "/feature_bootmagic": "/features/bootmagic", + "/feature_caps_word": "/features/caps_word", + "/feature_combo": "/features/combo", + "/feature_command": "/features/command", + "/feature_digitizer": "/features/digitizer", + "/feature_dip_switch": "/features/dip_switch", + "/feature_dynamic_macros": "/features/dynamic_macros", + "/feature_encoders": "/features/encoders", + "/feature_grave_esc": "/features/grave_esc", + "/feature_haptic_feedback": "/features/haptic_feedback", + "/feature_hd44780": "/features/hd44780", + "/feature_joystick": "/features/joystick", + "/feature_key_lock": "/features/key_lock", + "/feature_key_overrides": "/features/key_overrides", + "/feature_leader_key": "/features/leader_key", + "/feature_led_indicators": "/features/led_indicators", + "/feature_led_matrix": "/features/led_matrix", + "/feature_midi": "/features/midi", + "/feature_mouse_keys": "/features/mouse_keys", + "/feature_oled_driver": "/features/oled_driver", + "/feature_os_detection": "/features/os_detection", + "/feature_pointing_device": "/features/pointing_device", + "/feature_programmable_button": "/features/programmable_button", + "/feature_ps2_mouse": "/features/ps2_mouse", + "/feature_rawhid": "/features/rawhid", + "/feature_repeat_key": "/features/repeat_key", + "/feature_rgb_matrix": "/features/rgb_matrix", + "/feature_rgblight": "/features/rgblight", + "/feature_secure": "/features/secure", + "/feature_send_string": "/features/send_string", + "/feature_sequencer": "/features/sequencer", + "/feature_space_cadet": "/features/space_cadet", + "/feature_split_keyboard": "/features/split_keyboard", + "/feature_st7565": "/features/st7565", + "/feature_stenography": "/features/stenography", + "/feature_swap_hands": "/features/swap_hands", + "/feature_tap_dance": "/features/tap_dance", + "/feature_tri_layer": "/features/tri_layer", + "/feature_unicode": "/features/unicode", + "/feature_wpm": "/features/wpm", + "/flash_driver": "/drivers/flash", + "/gpio_control": "/drivers/gpio", + "/i2c_driver": "/drivers/i2c", + "/serial_driver": "/drivers/serial", + "/spi_driver": "/drivers/spi", + "/uart_driver": "/drivers/uart", + "/ws2812_driver": "/drivers/ws2812" +} From 8253697a6389aaec73f85a29dd25247b32389502 Mon Sep 17 00:00:00 2001 From: Stefan Kerkmann Date: Mon, 3 Jun 2024 14:35:46 +0200 Subject: [PATCH 05/46] [FIX] ChibiOS: USB Digitizer and Joystick IN endpoint compilation (#23854) Co-authored-by: Ryan --- tmk_core/protocol/chibios/usb_endpoints.c | 4 ++-- tmk_core/protocol/usb_descriptor.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/tmk_core/protocol/chibios/usb_endpoints.c b/tmk_core/protocol/chibios/usb_endpoints.c index 37ec3c722f6..856df624260 100644 --- a/tmk_core/protocol/chibios/usb_endpoints.c +++ b/tmk_core/protocol/chibios/usb_endpoints.c @@ -57,11 +57,11 @@ usb_endpoint_in_t usb_endpoints_in[USB_ENDPOINT_IN_COUNT] = { #endif #if defined(JOYSTICK_ENABLE) && !defined(JOYSTICK_SHARED_EP) - [USB_ENDPOINT_IN_JOYSTICK] = QMK_USB_ENDPOINT_IN(USB_EP_MODE_TYPE_INTR, JOYSTICK_EPSIZE, JOYSTICK_IN_EPNUM, JOYSTICK_IN_CAPACITY, QMK_USB_REPORT_STORAGE_DEFAULT(sizeof(report_joystick_t))), + [USB_ENDPOINT_IN_JOYSTICK] = QMK_USB_ENDPOINT_IN(USB_EP_MODE_TYPE_INTR, JOYSTICK_EPSIZE, JOYSTICK_IN_EPNUM, JOYSTICK_IN_CAPACITY, NULL, QMK_USB_REPORT_STORAGE_DEFAULT(sizeof(report_joystick_t))), #endif #if defined(DIGITIZER_ENABLE) && !defined(DIGITIZER_SHARED_EP) - [USB_ENDPOINT_IN_JOYSTICK] = QMK_USB_ENDPOINT_IN(USB_EP_MODE_TYPE_INTR, DIGITIZER_EPSIZE, DIGITIZER_IN_EPNUM, DIGITIZER_IN_CAPACITY, QMK_USB_REPORT_STORAGE_DEFAULT(sizeof(report_digitizer_t))), + [USB_ENDPOINT_IN_DIGITIZER] = QMK_USB_ENDPOINT_IN(USB_EP_MODE_TYPE_INTR, DIGITIZER_EPSIZE, DIGITIZER_IN_EPNUM, DIGITIZER_IN_CAPACITY, NULL, QMK_USB_REPORT_STORAGE_DEFAULT(sizeof(report_digitizer_t))), #endif #if defined(CONSOLE_ENABLE) diff --git a/tmk_core/protocol/usb_descriptor.c b/tmk_core/protocol/usb_descriptor.c index 0e2e63ad8ee..7efd085ea32 100644 --- a/tmk_core/protocol/usb_descriptor.c +++ b/tmk_core/protocol/usb_descriptor.c @@ -990,7 +990,7 @@ const USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor = { .Attributes = (EP_TYPE_INTERRUPT | ENDPOINT_ATTR_NO_SYNC | ENDPOINT_USAGE_DATA), .EndpointSize = JOYSTICK_EPSIZE, .PollingIntervalMS = USB_POLLING_INTERVAL_MS - } + }, #endif #if defined(DIGITIZER_ENABLE) && !defined(DIGITIZER_SHARED_EP) From 6d365dd8f11cfb440a1c7e67572d3deb10f7833f Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Tue, 4 Jun 2024 12:23:25 +1000 Subject: [PATCH 06/46] Add helper `make` targets for formatting and pytest. (#23858) --- Makefile | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/Makefile b/Makefile index 78d1a372bc7..5fcd6bbf0f3 100644 --- a/Makefile +++ b/Makefile @@ -465,3 +465,18 @@ distclean_userspace: clean rm -f $(QMK_USERSPACE)/*.bin $(QMK_USERSPACE)/*.hex $(QMK_USERSPACE)/*.uf2 echo 'done.' endif + +# Extra targets for formatting and/or pytest, running within the qmk/qmk_cli container to match GHA. +CONTAINER_PREAMBLE := export HOME="/tmp"; export PATH="/tmp/.local/bin:\$$PATH"; python3 -m pip install --upgrade pip; python3 -m pip install -r requirements-dev.txt + +.PHONY: format-core +format-core: + RUNTIME=docker ./util/docker_cmd.sh bash -lic "$(CONTAINER_PREAMBLE); qmk format-c --core-only -a && qmk format-python -a" + +.PHONY: pytest +pytest: + RUNTIME=docker ./util/docker_cmd.sh bash -lic "$(CONTAINER_PREAMBLE); qmk pytest" + +.PHONY: format-and-pytest +format-and-pytest: + RUNTIME=docker ./util/docker_cmd.sh bash -lic "$(CONTAINER_PREAMBLE); qmk format-c --core-only -a && qmk format-python -a && qmk pytest" From a4da5f219fe0f202a07afa045fc0c08f6ce1f86b Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Wed, 5 Jun 2024 12:20:57 +1000 Subject: [PATCH 07/46] Fixup build failures. (#23869) --- keyboards/matrix/m12og/rev2/rev2.c | 12 ++++++------ keyboards/mechwild/mokulua/info.json | 5 +++++ keyboards/planck/rev4/keyboard.json | 3 +++ keyboards/planck/rev5/keyboard.json | 3 +++ 4 files changed, 17 insertions(+), 6 deletions(-) create mode 100644 keyboards/mechwild/mokulua/info.json diff --git a/keyboards/matrix/m12og/rev2/rev2.c b/keyboards/matrix/m12og/rev2/rev2.c index bf6129c8063..e64640b2d2d 100644 --- a/keyboards/matrix/m12og/rev2/rev2.c +++ b/keyboards/matrix/m12og/rev2/rev2.c @@ -4,12 +4,12 @@ #include "quantum.h" -void matrix_init_user(void) { - gpio_set_pin_output(C6); - gpio_set_pin_output(B2); - gpio_set_pin_output(B1); - - matrix_init_user(); +void matrix_init_kb(void) { + gpio_set_pin_output(C6); + gpio_set_pin_output(B2); + gpio_set_pin_output(B1); + + matrix_init_user(); } bool led_update_kb(led_t led_state) { diff --git a/keyboards/mechwild/mokulua/info.json b/keyboards/mechwild/mokulua/info.json new file mode 100644 index 00000000000..9f75b9c218b --- /dev/null +++ b/keyboards/mechwild/mokulua/info.json @@ -0,0 +1,5 @@ +{ + "build": { + "lto": true + } +} diff --git a/keyboards/planck/rev4/keyboard.json b/keyboards/planck/rev4/keyboard.json index 725a297b2f2..655c48e7dd5 100644 --- a/keyboards/planck/rev4/keyboard.json +++ b/keyboards/planck/rev4/keyboard.json @@ -8,6 +8,9 @@ "pid": "0xAE01", "device_version": "0.0.4" }, + "build": { + "lto": true + }, "features": { "audio": true, "bootmagic": true, diff --git a/keyboards/planck/rev5/keyboard.json b/keyboards/planck/rev5/keyboard.json index f816d23e9b0..debf8dcdfca 100644 --- a/keyboards/planck/rev5/keyboard.json +++ b/keyboards/planck/rev5/keyboard.json @@ -8,6 +8,9 @@ "pid": "0xAE01", "device_version": "0.0.5" }, + "build": { + "lto": true + }, "features": { "audio": true, "bootmagic": true, From 260e9a546ebfa3f6f0f32038c99751122f53d131 Mon Sep 17 00:00:00 2001 From: Kim Viberti <45943577+ilkimo@users.noreply.github.com> Date: Thu, 6 Jun 2024 04:09:44 +0200 Subject: [PATCH 08/46] Fix documentation error (#23872) Co-authored-by: Nick Brassel Co-authored-by: Ryan --- docs/features/swap_hands.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/features/swap_hands.md b/docs/features/swap_hands.md index 3560fe22f09..0090ce77a9d 100644 --- a/docs/features/swap_hands.md +++ b/docs/features/swap_hands.md @@ -1,6 +1,6 @@ # Swap-Hands Action -The swap-hands action allows support for one-handed typing without requiring a separate layer. Set `SWAP_HANDS_ENABLE` in the Makefile and define a `hand_swap_config` entry in your keymap. Now whenever the `ACTION_SWAP_HANDS` command key is pressed the keyboard is mirrored. For instance, to type "Hello, World" on QWERTY you would type `^Ge^s^s^w^c W^wr^sd` +The swap-hands action allows support for one-handed typing without requiring a separate layer. Set `SWAP_HANDS_ENABLE = yes` in your keymap's `rules.mk` (creating it if needed), and define a `hand_swap_config` entry in your keymap. Now whenever the `ACTION_SWAP_HANDS` command key is pressed the keyboard is mirrored. For instance, to type "Hello, World" on QWERTY you would type `^Ge^s^s^w^c W^wr^sd` ## Configuration From 950d7653708965bb37f3b4919db041ab98d42f69 Mon Sep 17 00:00:00 2001 From: "Syenasweta a.k.a. Nashrullah Ali Fauzi" Date: Fri, 7 Jun 2024 08:17:21 +0700 Subject: [PATCH 09/46] Add SyenaKeyboards Elaruus (#23870) * add syenakeyboard elaruus * add syenakeyboards elaruus * add syenakeyboards elaruus * add syenakeyboards elaruus * add syenakeyboards/elaruus * add syenakeyboards elaruus * add syenakeyboards elaruus * add syenakeyboards elaruus * Update keyboards/syenakeyboards/elaruus/keyboard.json Co-authored-by: jack <0x6a73@protonmail.com> * Update keyboards/syenakeyboards/elaruus/keymaps/default/keymap.c Co-authored-by: jack <0x6a73@protonmail.com> * Update keyboards/syenakeyboards/elaruus/keymaps/via/keymap.c Co-authored-by: jack <0x6a73@protonmail.com> --------- Co-authored-by: Syenasweta Co-authored-by: jack <0x6a73@protonmail.com> --- .../syenakeyboards/elaruus/keyboard.json | 31 +++++++++++++++++++ .../elaruus/keymaps/default/keymap.c | 16 ++++++++++ .../elaruus/keymaps/via/keymap.c | 16 ++++++++++ .../elaruus/keymaps/via/rules.mk | 1 + keyboards/syenakeyboards/elaruus/readme.md | 25 +++++++++++++++ 5 files changed, 89 insertions(+) create mode 100644 keyboards/syenakeyboards/elaruus/keyboard.json create mode 100644 keyboards/syenakeyboards/elaruus/keymaps/default/keymap.c create mode 100644 keyboards/syenakeyboards/elaruus/keymaps/via/keymap.c create mode 100644 keyboards/syenakeyboards/elaruus/keymaps/via/rules.mk create mode 100644 keyboards/syenakeyboards/elaruus/readme.md diff --git a/keyboards/syenakeyboards/elaruus/keyboard.json b/keyboards/syenakeyboards/elaruus/keyboard.json new file mode 100644 index 00000000000..535a46eb7cb --- /dev/null +++ b/keyboards/syenakeyboards/elaruus/keyboard.json @@ -0,0 +1,31 @@ +{ + "manufacturer": "Syenasweta", + "keyboard_name": "SyenaKeyboards Elaruus", + "maintainer": "syenasweta", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true + }, + "matrix_pins": { + "cols": ["GP21", "GP19"], + "rows": ["GP10"] + }, + "processor": "RP2040", + "url": "https://github.com/syenasweta/syenakeyboards", + "usb": { + "device_version": "1.0.0", + "pid": "0x6172", + "vid": "0x5373" + }, + "layouts": { + "LAYOUT_ortho_1x2": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0} + ] + } + } +} diff --git a/keyboards/syenakeyboards/elaruus/keymaps/default/keymap.c b/keyboards/syenakeyboards/elaruus/keymaps/default/keymap.c new file mode 100644 index 00000000000..329ad7f77ef --- /dev/null +++ b/keyboards/syenakeyboards/elaruus/keymaps/default/keymap.c @@ -0,0 +1,16 @@ +// Copyright 2024 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_ortho_1x2( + LT(1,KC_LEFT), LT(2,KC_RIGHT) + ), + [1] = LAYOUT_ortho_1x2( + _______, KC_UP + ), + [2] = LAYOUT_ortho_1x2( + KC_DOWN, _______ + ) +}; diff --git a/keyboards/syenakeyboards/elaruus/keymaps/via/keymap.c b/keyboards/syenakeyboards/elaruus/keymaps/via/keymap.c new file mode 100644 index 00000000000..329ad7f77ef --- /dev/null +++ b/keyboards/syenakeyboards/elaruus/keymaps/via/keymap.c @@ -0,0 +1,16 @@ +// Copyright 2024 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_ortho_1x2( + LT(1,KC_LEFT), LT(2,KC_RIGHT) + ), + [1] = LAYOUT_ortho_1x2( + _______, KC_UP + ), + [2] = LAYOUT_ortho_1x2( + KC_DOWN, _______ + ) +}; diff --git a/keyboards/syenakeyboards/elaruus/keymaps/via/rules.mk b/keyboards/syenakeyboards/elaruus/keymaps/via/rules.mk new file mode 100644 index 00000000000..036bd6d1c3e --- /dev/null +++ b/keyboards/syenakeyboards/elaruus/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/syenakeyboards/elaruus/readme.md b/keyboards/syenakeyboards/elaruus/readme.md new file mode 100644 index 00000000000..4d95dd6cf08 --- /dev/null +++ b/keyboards/syenakeyboards/elaruus/readme.md @@ -0,0 +1,25 @@ +# SyenaKeyboards Elaruus + +![SyenaKeyboards Elaruus](https://i.imgur.com/6qU13gi.jpeg) + +Elaruus is ortholinear 1x2 mechanical keyboard with two switch for everythinks. The default functions are `left`, `right`. Elaruus is supported by QMK Firmware and VIA. + +* Keyboard Maintainer: [Syenasweta](https://github.com/syenasweta) +* Hardware Supported: RP2040 +* Hardware Availability: [Tokopedia (Syenasweta)](https://tokopedia.link/Ak0c4uqpbKb) + +Make example for this keyboard (after setting up your build environment): + + make syenakeyboards/elaruus:default + +Flashing example for this keyboard: + + make syenakeyboards/elaruss:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 1 ways: + +* **Bootmagic reset**: Hold down the top left key (assigned to `left` by default) and plug in the keyboard. From e7a08ef1a99b407f7326e146239d785e552c9aba Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Fri, 7 Jun 2024 14:25:20 +0100 Subject: [PATCH 10/46] Fix broken link in PR checklist (#23877) --- docs/pr_checklist.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/pr_checklist.md b/docs/pr_checklist.md index f7b16e1d852..e0b0810aef7 100644 --- a/docs/pr_checklist.md +++ b/docs/pr_checklist.md @@ -88,7 +88,7 @@ https://github.com/qmk/qmk_firmware/pulls?q=is%3Apr+is%3Aclosed+label%3Akeyboard - RGB Matrix Configuration - Run `qmk format-json` on this file before submitting your PR. Be sure to append the `-i` flag to directly modify the file, or paste the outputted code into the file. - `readme.md` - - must follow the [template](https://github.com/qmk/qmk_firmware/blob/master/data/templates/keyboard/readme) + - must follow the [template](https://github.com/qmk/qmk_firmware/blob/master/data/templates/keyboard/readme.md) - flash command is present, and has `:flash` at end - valid hardware availability link (unless handwired) -- private groupbuys are okay, but one-off prototypes will be questioned. If open-source, a link to files should be provided. - clear instructions on how to reset the board into bootloader mode From 9dc183afe43ef37dcda66a23d2e151ed629abbf5 Mon Sep 17 00:00:00 2001 From: Alex Mayer Date: Sun, 9 Jun 2024 13:57:45 -0400 Subject: [PATCH 11/46] Fix Tri-Layer Keycode Descriptions (#23888) --- docs/features/tri_layer.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/features/tri_layer.md b/docs/features/tri_layer.md index c32e65caed0..8c34fc65b34 100644 --- a/docs/features/tri_layer.md +++ b/docs/features/tri_layer.md @@ -14,8 +14,8 @@ For a detailed explanation of how the layer stack works, check out [Keymap Overv | Keycode | Alias | Description | |----------------------|-----------|---------------------------------------------------------------------------------------------------------| -| `QK_TRI_LAYER_LOWER` | `TL_LOWR` | Momentarily enables the "lower" layer. Enables the "adjust" layer if the "upper" layer is also enabled" | -| `QK_TRI_LAYER_UPPER` | `TL_UPPR` | Momentarily enables the "upper" layer. Enables the "adjust" layer if the "lower" layer is also enabled" | +| `QK_TRI_LAYER_LOWER` | `TL_LOWR` | Momentarily enables the "lower" layer. Enables the "adjust" layer if the "upper" layer is also enabled. | +| `QK_TRI_LAYER_UPPER` | `TL_UPPR` | Momentarily enables the "upper" layer. Enables the "adjust" layer if the "lower" layer is also enabled. | ## Configuration From e484a3a17926dae6abc37e9997b78043ff383efd Mon Sep 17 00:00:00 2001 From: Alabahuy Date: Mon, 10 Jun 2024 02:47:48 +0700 Subject: [PATCH 12/46] [Keyboard] add jaykeeb jk60 (#23876) --- keyboards/jaykeeb/jk60/keyboard.json | 585 ++++++++++++++++++ .../jaykeeb/jk60/keymaps/default/keymap.c | 22 + keyboards/jaykeeb/jk60/keymaps/via/keymap.c | 21 + keyboards/jaykeeb/jk60/keymaps/via/rules.mk | 1 + keyboards/jaykeeb/jk60/matrix_diagram.md | 24 + keyboards/jaykeeb/jk60/readme.md | 27 + 6 files changed, 680 insertions(+) create mode 100644 keyboards/jaykeeb/jk60/keyboard.json create mode 100644 keyboards/jaykeeb/jk60/keymaps/default/keymap.c create mode 100644 keyboards/jaykeeb/jk60/keymaps/via/keymap.c create mode 100644 keyboards/jaykeeb/jk60/keymaps/via/rules.mk create mode 100644 keyboards/jaykeeb/jk60/matrix_diagram.md create mode 100644 keyboards/jaykeeb/jk60/readme.md diff --git a/keyboards/jaykeeb/jk60/keyboard.json b/keyboards/jaykeeb/jk60/keyboard.json new file mode 100644 index 00000000000..99eb3d4a381 --- /dev/null +++ b/keyboards/jaykeeb/jk60/keyboard.json @@ -0,0 +1,585 @@ +{ + "manufacturer": "Jaykeeb Studio", + "keyboard_name": "JK60", + "maintainer": "Alabahuy", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["GP16", "GP3", "GP15", "GP14", "GP13", "GP12", "GP11", "GP10", "GP9", "GP8", "GP7", "GP6", "GP5", "GP4"], + "rows": ["GP29", "GP0", "GP2", "GP18", "GP19"] + }, + "indicators": { + "caps_lock": "GP17", + "on_state": 0 + }, + "processor": "RP2040", + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0x7760", + "vid": "0x414C" + }, + "community_layouts": ["60_ansi", "60_ansi_split_bs_rshift", "60_ansi_tsangan", "60_tsangan_hhkb", "60_ansi_wkl", "60_ansi_wkl_split_bs_rshift", "60_hhkb"], + "layouts": { + "LAYOUT_all": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "2", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "3", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "4", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "5", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "6", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "7", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "8", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "9", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "0", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "-", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "=", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0}, + {"label": "Delete", "matrix": [1, 13], "x": 14, "y": 0}, + + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "[", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "]", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "\\", "matrix": [2, 13], "x": 13.5, "y": 1, "w": 1.5}, + + {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ";", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "'", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "Enter", "matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, + + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"label": "\\", "matrix": [3, 1], "x": 1.25, "y": 3}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": ",", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ".", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "/", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "Fn", "matrix": [3, 13], "x": 14, "y": 3}, + + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"label": "GUI", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"label": "Space", "matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"label": "Alt", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"label": "GUI", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"label": "Menu", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"label": "Ctrl", "matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_ansi": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "2", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "3", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "4", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "5", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "6", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "7", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "8", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "9", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "0", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "-", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "=", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "[", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "]", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "\\", "matrix": [2, 13], "x": 13.5, "y": 1, "w": 1.5}, + + {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ";", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "'", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "Enter", "matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, + + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": ",", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ".", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "/", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, + + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"label": "GUI", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"label": "Space", "matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"label": "Alt", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"label": "GUI", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"label": "Menu", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"label": "Ctrl", "matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_ansi_split_bs_rshift": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "2", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "3", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "4", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "5", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "6", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "7", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "8", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "9", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "0", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "-", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "=", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0}, + {"label": "Delete", "matrix": [1, 13], "x": 14, "y": 0}, + + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "[", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "]", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "\\", "matrix": [2, 13], "x": 13.5, "y": 1, "w": 1.5}, + + {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ";", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "'", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "Enter", "matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, + + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": ",", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ".", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "/", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "Fn", "matrix": [3, 13], "x": 14, "y": 3}, + + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"label": "GUI", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"label": "Space", "matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"label": "Alt", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"label": "GUI", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"label": "Menu", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"label": "Ctrl", "matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_ansi_tsangan": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "2", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "3", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "4", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "5", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "6", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "7", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "8", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "9", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "0", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "-", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "=", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "[", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "]", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "\\", "matrix": [2, 13], "x": 13.5, "y": 1, "w": 1.5}, + + {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ";", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "'", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "Enter", "matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, + + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": ",", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ".", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "/", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, + + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"label": "GUI", "matrix": [4, 1], "x": 1.5, "y": 4}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"label": "Space", "matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"label": "Alt", "matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, + {"label": "GUI", "matrix": [4, 11], "x": 12.5, "y": 4}, + {"label": "Ctrl", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_tsangan_hhkb": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "2", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "3", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "4", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "5", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "6", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "7", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "8", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "9", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "0", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "-", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "=", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0}, + {"label": "Delete", "matrix": [1, 13], "x": 14, "y": 0}, + + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "[", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "]", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "\\", "matrix": [2, 13], "x": 13.5, "y": 1, "w": 1.5}, + + {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ";", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "'", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "Enter", "matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, + + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": ",", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ".", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "/", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "Fn", "matrix": [3, 13], "x": 14, "y": 3}, + + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"label": "GUI", "matrix": [4, 1], "x": 1.5, "y": 4}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"label": "Space", "matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"label": "Alt", "matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, + {"label": "GUI", "matrix": [4, 11], "x": 12.5, "y": 4}, + {"label": "Ctrl", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_ansi_wkl": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "2", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "3", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "4", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "5", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "6", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "7", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "8", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "9", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "0", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "-", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "=", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "[", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "]", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "\\", "matrix": [2, 13], "x": 13.5, "y": 1, "w": 1.5}, + + {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ";", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "'", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "Enter", "matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, + + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": ",", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ".", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "/", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, + + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"label": "Space", "matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"label": "Alt", "matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, + {"label": "Ctrl", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_ansi_wkl_split_bs_rshift": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "2", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "3", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "4", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "5", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "6", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "7", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "8", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "9", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "0", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "-", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "=", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0}, + {"label": "Delete", "matrix": [1, 13], "x": 14, "y": 0}, + + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "[", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "]", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "\\", "matrix": [2, 13], "x": 13.5, "y": 1, "w": 1.5}, + + {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ";", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "'", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "Enter", "matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, + + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": ",", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ".", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "/", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "Fn", "matrix": [3, 13], "x": 14, "y": 3}, + + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"label": "Space", "matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"label": "Alt", "matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, + {"label": "Ctrl", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_hhkb": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "2", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "3", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "4", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "5", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "6", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "7", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "8", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "9", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "0", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "-", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "=", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0}, + {"label": "Delete", "matrix": [1, 13], "x": 14, "y": 0}, + + {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "[", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "]", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "\\", "matrix": [2, 13], "x": 13.5, "y": 1, "w": 1.5}, + + {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": ";", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "'", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "Enter", "matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, + + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": ",", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ".", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "/", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "Fn", "matrix": [3, 13], "x": 14, "y": 3}, + + {"label": "GUI", "matrix": [4, 1], "x": 1.5, "y": 4}, + {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"label": "Space", "matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"label": "Alt", "matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, + {"label": "GUI", "matrix": [4, 11], "x": 12.5, "y": 4} + ] + } + } +} diff --git a/keyboards/jaykeeb/jk60/keymaps/default/keymap.c b/keyboards/jaykeeb/jk60/keymaps/default/keymap.c new file mode 100644 index 00000000000..449fccc1686 --- /dev/null +++ b/keyboards/jaykeeb/jk60/keymaps/default/keymap.c @@ -0,0 +1,22 @@ +// Copyright 2024 Alabahuy +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_60_ansi( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL + ), + + [1] = LAYOUT_60_ansi( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, + _______, _______, _______, QK_BOOT, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/jaykeeb/jk60/keymaps/via/keymap.c b/keyboards/jaykeeb/jk60/keymaps/via/keymap.c new file mode 100644 index 00000000000..dccacd7127e --- /dev/null +++ b/keyboards/jaykeeb/jk60/keymaps/via/keymap.c @@ -0,0 +1,21 @@ +// Copyright 2024 Alabahuy +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_all( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL + ), + [1] = LAYOUT_all( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, + _______, _______, _______, QK_BOOT, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/jaykeeb/jk60/keymaps/via/rules.mk b/keyboards/jaykeeb/jk60/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/jaykeeb/jk60/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/jaykeeb/jk60/matrix_diagram.md b/keyboards/jaykeeb/jk60/matrix_diagram.md new file mode 100644 index 00000000000..89cd664562c --- /dev/null +++ b/keyboards/jaykeeb/jk60/matrix_diagram.md @@ -0,0 +1,24 @@ +# Matrix Diagram for Jaykeeb JK60 + +``` + ┌───────┐ + 2u Backspace │0D │ + └───────┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ +│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │1D │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ +│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │2D │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ +│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ +│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │ +├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤ +│40 │41 │42 │46 │4A │4B │4C │4D │ +└────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ +┌────────┐ ┌──────────┐ +│30 │ 2.25u LShift │3C │ 2.75u RShift +└────────┘ └──────────┘ +┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐ +│40 │41 │42 │46 │4B │4C │4D │ Tsangan/WKL/HHKB +└─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ +``` diff --git a/keyboards/jaykeeb/jk60/readme.md b/keyboards/jaykeeb/jk60/readme.md new file mode 100644 index 00000000000..f38abe1550a --- /dev/null +++ b/keyboards/jaykeeb/jk60/readme.md @@ -0,0 +1,27 @@ +# JK60 + +![jk60]( https://i.imgur.com/394cDVG.png ) + +Layout 60% support multi layout and keyboard case existing + +* Keyboard Maintainer: [Alabahuy](https://github.com/Alabahuy) +* Hardware Supported: JK60 PCB, RP2040 +* Hardware Availability: Private GB + +Make example for this keyboard (after setting up your build environment): + + make jaykeeb/jk60:default + +Flashing example for this keyboard: + + make jaykeeb/jk60:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available From df4538d894d8e5c1321c239ecbe4293a4ec3ee2d Mon Sep 17 00:00:00 2001 From: Ryan Date: Mon, 10 Jun 2024 06:14:48 +1000 Subject: [PATCH 13/46] Fix Iris/Irispad keymaps (#23856) --- keyboards/keebio/iris/keymaps/default/keymap.json | 2 +- keyboards/keebio/irispad/keymaps/default/keymap.json | 2 +- keyboards/keebio/irispad/keymaps/via/keymap.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/keyboards/keebio/iris/keymaps/default/keymap.json b/keyboards/keebio/iris/keymaps/default/keymap.json index 8b141d992fd..623c532a303 100644 --- a/keyboards/keebio/iris/keymaps/default/keymap.json +++ b/keyboards/keebio/iris/keymaps/default/keymap.json @@ -1,6 +1,6 @@ { "config": { "features": {"tri_layer": true} }, - "keyboard": "keebio/iris", + "keyboard": "keebio/iris/rev8", "keymap": "default", "layout": "LAYOUT", "layers": [ diff --git a/keyboards/keebio/irispad/keymaps/default/keymap.json b/keyboards/keebio/irispad/keymaps/default/keymap.json index fd0dc3bb5ee..e9c52fa99fd 100644 --- a/keyboards/keebio/irispad/keymaps/default/keymap.json +++ b/keyboards/keebio/irispad/keymaps/default/keymap.json @@ -1,6 +1,6 @@ { "config": { "features": {"encoder_map": true, "tri_layer": true} }, - "keyboard": "keebio/irispad", + "keyboard": "keebio/irispad/rev8", "keymap": "default", "layout": "LAYOUT", "layers": [ diff --git a/keyboards/keebio/irispad/keymaps/via/keymap.json b/keyboards/keebio/irispad/keymaps/via/keymap.json index 97fc085b92e..bf681822f6d 100644 --- a/keyboards/keebio/irispad/keymaps/via/keymap.json +++ b/keyboards/keebio/irispad/keymaps/via/keymap.json @@ -1,6 +1,6 @@ { "config": { "features": {"encoder_map": true, "via": true} }, - "keyboard": "keebio/irispad", + "keyboard": "keebio/irispad/rev8", "keymap": "via", "layout": "LAYOUT", "layers": [ From 8b5cdfabf5d05958a607efa174e64377d36e4b64 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Mon, 10 Jun 2024 01:23:25 +0100 Subject: [PATCH 14/46] Re-implement `eeprom_write_qword` as define (#23890) --- platforms/eeprom.h | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/platforms/eeprom.h b/platforms/eeprom.h index 8e69eecc4cb..067fa016164 100644 --- a/platforms/eeprom.h +++ b/platforms/eeprom.h @@ -22,9 +22,14 @@ void eeprom_update_dword(uint32_t *__p, uint32_t __value); void eeprom_update_block(const void *__src, void *__dst, size_t __n); #endif -static inline void eeprom_write_qword(uint64_t *__p, uint64_t __value) { - eeprom_update_block(&__value, __p, sizeof(uint64_t)); -} +// While newer avr-libc versions may have an implementation +// use preprocessor as to not cause conflicts +#undef eeprom_write_qword +#define eeprom_write_qword(__p, __value) \ + do { \ + uint64_t tmp = __value; \ + eeprom_update_block(&tmp, __p, sizeof(uint64_t)); \ + } while (0) #if defined(EEPROM_CUSTOM) # ifndef EEPROM_SIZE From 8041a88f5d39709548bdb44908afe0548651d640 Mon Sep 17 00:00:00 2001 From: Ryan Date: Wed, 12 Jun 2024 10:50:25 +1000 Subject: [PATCH 15/46] Slight clarification of LED/RGB Matrix custom effect docs (#23897) --- docs/features/led_matrix.md | 21 ++++++++++----------- docs/features/rgb_matrix.md | 12 ++++++------ 2 files changed, 16 insertions(+), 17 deletions(-) diff --git a/docs/features/led_matrix.md b/docs/features/led_matrix.md index fee7b139bce..164cbc0f5fc 100644 --- a/docs/features/led_matrix.md +++ b/docs/features/led_matrix.md @@ -300,18 +300,11 @@ These modes introduce additional logic that can increase firmware size. ## Custom LED Matrix Effects {#custom-led-matrix-effects} -By setting `LED_MATRIX_CUSTOM_USER` (and/or `LED_MATRIX_CUSTOM_KB`) in `rules.mk`, new effects can be defined directly from userspace, without having to edit any QMK core files. +By setting `LED_MATRIX_CUSTOM_USER = yes` in `rules.mk`, new effects can be defined directly from your keymap or userspace, without having to edit any QMK core files. To declare new effects, create a `led_matrix_user.inc` file in the user keymap directory or userspace folder. -To declare new effects, create a new `led_matrix_user/kb.inc` that looks something like this: - -`led_matrix_user.inc` should go in the root of the keymap directory. -`led_matrix_kb.inc` should go in the root of the keyboard directory. - -To use custom effects in your code, simply prepend `LED_MATRIX_CUSTOM_` to the effect name specified in `LED_MATRIX_EFFECT()`. For example, an effect declared as `LED_MATRIX_EFFECT(my_cool_effect)` would be referenced with: - -```c -led_matrix_mode(led_MATRIX_CUSTOM_my_cool_effect); -``` +::: tip +Hardware maintainers who want to limit custom effects to a specific keyboard can create a `led_matrix_kb.inc` file in the root of the keyboard directory, and add `LED_MATRIX_CUSTOM_KB = yes` to the keyboard level `rules.mk`. +::: ```c // !!! DO NOT ADD #pragma once !!! // @@ -356,6 +349,12 @@ static bool my_cool_effect2(effect_params_t* params) { #endif // LED_MATRIX_CUSTOM_EFFECT_IMPLS ``` +To switch to your custom effect programmatically, simply call `led_matrix_mode()` and prepend `LED_MATRIX_CUSTOM_` to the effect name your specified in `LED_MATRIX_EFFECT()`. For example, an effect declared as `LED_MATRIX_EFFECT(my_cool_effect)` would be referenced with: + +```c +led_matrix_mode(LED_MATRIX_CUSTOM_my_cool_effect); +``` + For inspiration and examples, check out the built-in effects under `quantum/led_matrix/animations/`. diff --git a/docs/features/rgb_matrix.md b/docs/features/rgb_matrix.md index f7f693f239f..448d1cdfb56 100644 --- a/docs/features/rgb_matrix.md +++ b/docs/features/rgb_matrix.md @@ -807,12 +807,6 @@ By setting `RGB_MATRIX_CUSTOM_USER = yes` in `rules.mk`, new effects can be defi Hardware maintainers who want to limit custom effects to a specific keyboard can create a `rgb_matrix_kb.inc` file in the root of the keyboard directory, and add `RGB_MATRIX_CUSTOM_KB = yes` to the keyboard level `rules.mk`. ::: -To use custom effects in your code, simply prepend `RGB_MATRIX_CUSTOM_` to the effect name specified in `RGB_MATRIX_EFFECT()`. For example, an effect declared as `RGB_MATRIX_EFFECT(my_cool_effect)` would be referenced with: - -```c -rgb_matrix_mode(RGB_MATRIX_CUSTOM_my_cool_effect); -``` - ```c // !!! DO NOT ADD #pragma once !!! // @@ -856,6 +850,12 @@ static bool my_cool_effect2(effect_params_t* params) { #endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS ``` +To switch to your custom effect programmatically, simply call `rgb_matrix_mode()` and prepend `RGB_MATRIX_CUSTOM_` to the effect name you specified in `RGB_MATRIX_EFFECT()`. For example, an effect declared as `RGB_MATRIX_EFFECT(my_cool_effect)` would be referenced with: + +```c +rgb_matrix_mode(RGB_MATRIX_CUSTOM_my_cool_effect); +``` + For inspiration and examples, check out the built-in effects under `quantum/rgb_matrix/animations/`. From 031ca3b40bbfae7f1d65e9ece0fab8fdfd9ee8ed Mon Sep 17 00:00:00 2001 From: 4pplet Date: Wed, 12 Jun 2024 09:11:50 +0200 Subject: [PATCH 16/46] [Keyboard] Fix settings for 4pplet/waffling60 (#23862) --- keyboards/4pplet/waffling60/rev_e/keyboard.json | 3 ++- keyboards/4pplet/waffling60/rev_e_ansi/keyboard.json | 3 ++- keyboards/4pplet/waffling60/rev_e_iso/keyboard.json | 1 + 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/keyboards/4pplet/waffling60/rev_e/keyboard.json b/keyboards/4pplet/waffling60/rev_e/keyboard.json index 3a75cf3d06a..4cd2501bbd4 100644 --- a/keyboards/4pplet/waffling60/rev_e/keyboard.json +++ b/keyboards/4pplet/waffling60/rev_e/keyboard.json @@ -15,7 +15,8 @@ "console": false, "extrakey": true, "key_lock": true, - "mousekey": false, + "mousekey": true, + "encoder": true, "nkro": true, "rgblight": true }, diff --git a/keyboards/4pplet/waffling60/rev_e_ansi/keyboard.json b/keyboards/4pplet/waffling60/rev_e_ansi/keyboard.json index c2514700ff0..a1b5d0e11eb 100644 --- a/keyboards/4pplet/waffling60/rev_e_ansi/keyboard.json +++ b/keyboards/4pplet/waffling60/rev_e_ansi/keyboard.json @@ -15,7 +15,8 @@ "console": false, "extrakey": true, "key_lock": true, - "mousekey": false, + "mousekey": true, + "encoder": true, "nkro": true, "rgblight": true }, diff --git a/keyboards/4pplet/waffling60/rev_e_iso/keyboard.json b/keyboards/4pplet/waffling60/rev_e_iso/keyboard.json index e53dcab891c..a9bfad4d629 100644 --- a/keyboards/4pplet/waffling60/rev_e_iso/keyboard.json +++ b/keyboards/4pplet/waffling60/rev_e_iso/keyboard.json @@ -16,6 +16,7 @@ "extrakey": true, "key_lock": true, "mousekey": true, + "encoder": true, "nkro": true, "rgblight": true }, From bdd10ef8e7855ed6a5ed4253df731d8978bc1aa2 Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Wed, 12 Jun 2024 17:43:09 +1000 Subject: [PATCH 17/46] Remove VIA_ENABLE from default keymaps. (#23903) --- .../keychron/q9_plus/ansi_encoder/keymaps/default/rules.mk | 1 - .../zed65/no_backlight/wearhaus66/keymaps/default/rules.mk | 3 +-- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/keyboards/keychron/q9_plus/ansi_encoder/keymaps/default/rules.mk b/keyboards/keychron/q9_plus/ansi_encoder/keymaps/default/rules.mk index f1adcab005e..ee325681483 100755 --- a/keyboards/keychron/q9_plus/ansi_encoder/keymaps/default/rules.mk +++ b/keyboards/keychron/q9_plus/ansi_encoder/keymaps/default/rules.mk @@ -1,2 +1 @@ -VIA_ENABLE = yes ENCODER_MAP_ENABLE = yes diff --git a/keyboards/mechlovin/zed65/no_backlight/wearhaus66/keymaps/default/rules.mk b/keyboards/mechlovin/zed65/no_backlight/wearhaus66/keymaps/default/rules.mk index 43061db1dd4..4da205a168c 100644 --- a/keyboards/mechlovin/zed65/no_backlight/wearhaus66/keymaps/default/rules.mk +++ b/keyboards/mechlovin/zed65/no_backlight/wearhaus66/keymaps/default/rules.mk @@ -1,2 +1 @@ -VIA_ENABLE = yes -LTO_ENABLE = yes \ No newline at end of file +LTO_ENABLE = yes From e69d30a9e915cfed7c4abe07eecb82831747f180 Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Thu, 13 Jun 2024 09:48:24 +1000 Subject: [PATCH 18/46] VIA keymap deprecation notice. (#23905) --- docs/ChangeLog/20240526.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/docs/ChangeLog/20240526.md b/docs/ChangeLog/20240526.md index b5e5b3b6938..b311f869c43 100644 --- a/docs/ChangeLog/20240526.md +++ b/docs/ChangeLog/20240526.md @@ -109,6 +109,16 @@ Essentially, changes were made in the internals of how QMK interacts with USB fo Compliance checks were run against QMK firmwares for the most popular ARM microcontrollers, as well as suspend/resume tests. As far as we can tell, a whole host of hard-to-reproduce issues are mitigated by this change. +## Deprecation Notices + +In line with the [notice period](support_deprecation_policy#how-much-advance-notice-will-be-given), deprecation notices for larger items are listed here. + +### Migration of VIA keymaps to VIA team control + +The QMK team has been in discussion with the VIA maintainers and all VIA-related keymaps in the `qmk_firmware` repository will transition to a `qmk_userspace`-style repository under the VIA team's control at the end of the next breaking changes period. This allows the VIA team to support many more custom keyboard configurations, as well as reduces the turnaround time for any changes to the VIA protocol they wish to make. + +At the end of the breaking changes cycle ending 2024-08-25, VIA-enabled keymaps will no longer be accepted into the QMK repository. At the time of migration, any open PRs against `qmk_firmware` which include new VIA-related keymaps will be subsequently be asked to remove those keymaps and instead raise a PR against the userspace repository containing all VIA keymaps. + ## Full changelist {#full-changelist} Core: From 7247039742fb81cbf1e443c23a8070afb5961762 Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Thu, 13 Jun 2024 11:55:52 +1000 Subject: [PATCH 19/46] Fixup docs. (#23906) --- docs/ChangeLog/20240526.md | 2 +- docs/_sidebar.json | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/ChangeLog/20240526.md b/docs/ChangeLog/20240526.md index b311f869c43..f7efbc64271 100644 --- a/docs/ChangeLog/20240526.md +++ b/docs/ChangeLog/20240526.md @@ -111,7 +111,7 @@ Compliance checks were run against QMK firmwares for the most popular ARM microc ## Deprecation Notices -In line with the [notice period](support_deprecation_policy#how-much-advance-notice-will-be-given), deprecation notices for larger items are listed here. +In line with the [notice period](../support_deprecation_policy#how-much-advance-notice-will-be-given), deprecation notices for larger items are listed here. ### Migration of VIA keymaps to VIA team control diff --git a/docs/_sidebar.json b/docs/_sidebar.json index b41719e4b32..2f64607deae 100644 --- a/docs/_sidebar.json +++ b/docs/_sidebar.json @@ -212,7 +212,8 @@ "text": "Most Recent ChangeLog", "link": "/ChangeLog/20240526" }, - { "text": "Past Breaking Changes", "link": "/breaking_changes_history" } + { "text": "Past Breaking Changes", "link": "/breaking_changes_history" }, + { "text": "Deprecation Policy", "link": "/support_deprecation_policy" } ] }, From fa403562500e1229256ea355d36a8bf4c7967021 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Thu, 13 Jun 2024 02:59:37 +0100 Subject: [PATCH 20/46] Ensure documentation pull requests build (#23908) --- .github/workflows/docs.yml | 36 ++++++++---------------------------- docs/public/.nojekyll | 0 docs/public/CNAME | 1 + 3 files changed, 9 insertions(+), 28 deletions(-) create mode 100644 docs/public/.nojekyll create mode 100644 docs/public/CNAME diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 25311019c6c..0fdd2c7b37d 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -7,7 +7,6 @@ on: push: branches: - master - - vitepress paths: - 'builddefs/docsgen/**' - 'tmk_core/**' @@ -15,6 +14,11 @@ on: - 'platforms/**' - 'docs/**' - '.github/workflows/docs.yml' + pull_request: + paths: + - 'builddefs/docsgen/**' + - 'docs/**' + - '.github/workflows/docs.yml' defaults: run: @@ -25,9 +29,6 @@ jobs: runs-on: ubuntu-latest container: ghcr.io/qmk/qmk_cli - # protect against those who develop with their fork on master - if: github.repository == 'qmk/qmk_firmware' || (github.repository == 'tzarc/qmk_firmware' && github.ref == 'refs/heads/vitepress') - steps: - uses: actions/checkout@v4 with: @@ -35,10 +36,10 @@ jobs: - name: Install dependencies run: | - apt-get update && apt-get install -y rsync doxygen curl + apt-get update && apt-get install -y rsync doxygen # install nvm touch $HOME/.bashrc - curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash + wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash - name: Install node run: | @@ -46,29 +47,15 @@ jobs: nvm install 20 nvm use 20 corepack enable - npm install -g moxygen - name: Build docs run: | source $HOME/.bashrc nvm use 20 qmk --verbose generate-docs - touch '.build/docs/.nojekyll' - - - name: Set CNAME - if: github.repository == 'qmk/qmk_firmware' - run: | - # Override target CNAME - echo 'docs.qmk.fm' > .build/docs/CNAME - - - name: Override CNAME - if: github.repository == 'tzarc/qmk_firmware' - run: | - # Temporarily override target CNAME during development - echo 'vitepress.qmk.fm' > .build/docs/CNAME - name: Deploy - if: github.repository == 'qmk/qmk_firmware' + if: ${{ github.event_name == 'push' && github.repository == 'qmk/qmk_firmware' }} uses: JamesIves/github-pages-deploy-action@v4.6.1 with: token: ${{ secrets.GITHUB_TOKEN }} @@ -76,10 +63,3 @@ jobs: folder: .build/docs git-config-name: QMK Bot git-config-email: hello@qmk.fm - - - name: Deploy - if: github.repository == 'tzarc/qmk_firmware' - uses: JamesIves/github-pages-deploy-action@v4.6.1 - with: - branch: gh-pages - folder: .build/docs diff --git a/docs/public/.nojekyll b/docs/public/.nojekyll new file mode 100644 index 00000000000..e69de29bb2d diff --git a/docs/public/CNAME b/docs/public/CNAME new file mode 100644 index 00000000000..06276c90c40 --- /dev/null +++ b/docs/public/CNAME @@ -0,0 +1 @@ +docs.qmk.fm From be9dfe65dd9cbc9f58e7c55894220b6708a22da7 Mon Sep 17 00:00:00 2001 From: Ryan Date: Thu, 13 Jun 2024 12:55:47 +1000 Subject: [PATCH 21/46] Add API reference section for LED/RGB Matrix docs (#23902) --- docs/features/led_matrix.md | 339 ++++++++++++++++++++++---- docs/features/rgb_matrix.md | 471 +++++++++++++++++++++++++++++++----- 2 files changed, 696 insertions(+), 114 deletions(-) diff --git a/docs/features/led_matrix.md b/docs/features/led_matrix.md index 164cbc0f5fc..3e3c17d2c1c 100644 --- a/docs/features/led_matrix.md +++ b/docs/features/led_matrix.md @@ -380,55 +380,6 @@ For inspiration and examples, check out the built-in effects under `quantum/led_ The EEPROM for it is currently shared with the RGB Matrix system (it's generally assumed only one feature would be used at a time). -### Direct Operation {#direct-operation} -|Function |Description | -|--------------------------------------------|-------------| -|`led_matrix_set_value_all(v)` |Set all of the LEDs to the given value, where `v` is between 0 and 255 (not written to EEPROM) | -|`led_matrix_set_value(index, v)` |Set a single LED to the given value, where `v` is between 0 and 255, and `index` is between 0 and `LED_MATRIX_LED_COUNT` (not written to EEPROM) | - -### Disable/Enable Effects {#disable-enable-effects} -|Function |Description | -|--------------------------------------------|-------------| -|`led_matrix_toggle()` |Toggle effect range LEDs between on and off | -|`led_matrix_toggle_noeeprom()` |Toggle effect range LEDs between on and off (not written to EEPROM) | -|`led_matrix_enable()` |Turn effect range LEDs on, based on their previous state | -|`led_matrix_enable_noeeprom()` |Turn effect range LEDs on, based on their previous state (not written to EEPROM) | -|`led_matrix_disable()` |Turn effect range LEDs off, based on their previous state | -|`led_matrix_disable_noeeprom()` |Turn effect range LEDs off, based on their previous state (not written to EEPROM) | - -### Change Effect Mode {#change-effect-mode} -|Function |Description | -|--------------------------------------------|-------------| -|`led_matrix_mode(mode)` |Set the mode, if LED animations are enabled | -|`led_matrix_mode_noeeprom(mode)` |Set the mode, if LED animations are enabled (not written to EEPROM) | -|`led_matrix_step()` |Change the mode to the next LED animation in the list of enabled LED animations | -|`led_matrix_step_noeeprom()` |Change the mode to the next LED animation in the list of enabled LED animations (not written to EEPROM) | -|`led_matrix_step_reverse()` |Change the mode to the previous LED animation in the list of enabled LED animations | -|`led_matrix_step_reverse_noeeprom()` |Change the mode to the previous LED animation in the list of enabled LED animations (not written to EEPROM) | -|`led_matrix_increase_speed()` |Increase the speed of the animations | -|`led_matrix_increase_speed_noeeprom()` |Increase the speed of the animations (not written to EEPROM) | -|`led_matrix_decrease_speed()` |Decrease the speed of the animations | -|`led_matrix_decrease_speed_noeeprom()` |Decrease the speed of the animations (not written to EEPROM) | -|`led_matrix_set_speed(speed)` |Set the speed of the animations to the given value where `speed` is between 0 and 255 | -|`led_matrix_set_speed_noeeprom(speed)` |Set the speed of the animations to the given value where `speed` is between 0 and 255 (not written to EEPROM) | - -### Change Value {#change-value} -|Function |Description | -|--------------------------------------------|-------------| -|`led_matrix_increase_val()` |Increase the value for effect range LEDs. This wraps around at maximum value | -|`led_matrix_increase_val_noeeprom()` |Increase the value for effect range LEDs. This wraps around at maximum value (not written to EEPROM) | -|`led_matrix_decrease_val()` |Decrease the value for effect range LEDs. This wraps around at minimum value | -|`led_matrix_decrease_val_noeeprom()` |Decrease the value for effect range LEDs. This wraps around at minimum value (not written to EEPROM) | - -### Query Current Status {#query-current-status} -|Function |Description | -|---------------------------------|---------------------------| -|`led_matrix_is_enabled()` |Gets current on/off status | -|`led_matrix_get_mode()` |Gets current mode | -|`led_matrix_get_val()` |Gets current val | -|`led_matrix_get_speed()` |Gets current speed | -|`led_matrix_get_suspend_state()` |Gets current suspend state | - ## Callbacks {#callbacks} ### Indicators {#indicators} @@ -452,3 +403,293 @@ void led_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { return false; } ``` + +## API {#api} + +### `void led_matrix_toggle(void)` {#api-led-matrix-toggle} + +Toggle LED Matrix on or off. + +--- + +### `void led_matrix_toggle_noeeprom(void)` {#api-led-matrix-toggle-noeeprom} + +Toggle LED Matrix on or off. New state is not written to EEPROM. + +--- + +### `void led_matrix_enable(void)` {#api-led-matrix-enable} + +Turn LED Matrix on. + +--- + +### `void led_matrix_enable_noeeprom(void)` {#api-led-matrix-enable-noeeprom} + +Turn LED Matrix on. New state is not written to EEPROM. + +--- + +### `void led_matrix_disable(void)` {#api-led-matrix-disable} + +Turn LED Matrix off. + +--- + +### `void led_matrix_disable_noeeprom(void)` {#api-led-matrix-disable-noeeprom} + +Turn LED Matrix off. New state is not written to EEPROM. + +--- + +### `bool led_matrix_is_enabled(void)` {#api-led-matrix-is-enabled} + +Get the current enabled state of LED Matrix. + +#### Return Value {#api-led-matrix-is-enabled-return} + +`true` if LED Matrix is enabled. + +--- + +### `void led_matrix_set_value(uint8_t index, uint8_t v)` {#led-matrix-set-value} + +Set the brightness of a single LED. + +This function can only be run from within an effect or indicator callback, otherwise the currently running animation will simply overwrite it on the next frame. + +#### Arguments {#api-led-matrix-set-value-arguments} + + - `uint8_t index` + The LED index, from 0 to `LED_MATRIX_LED_COUNT - 1`. + - `uint8_t v` + The brightness value to set. + +--- + +### `void led_matrix_set_value_all(uint8_t v)` {#api-led-matrix-set-value-all} + +Set the brightness of all LEDs. + +This function can only be run from within an effect or indicator callback, otherwise the currently running animation will simply overwrite it on the next frame. + +#### Arguments {#api-led-matrix-set-value-all-arguments} + + - `uint8_t v` + The brightness value to set. + +--- + +### `void led_matrix_mode(uint8_t mode)` {#api-led-matrix-mode} + +Set the currently running effect. + +#### Arguments {#api-led-matrix-mode-arguments} + + - `uint8_t mode` + The effect to switch to. + +--- + +### `void led_matrix_mode_noeeprom(uint8_t mode)` {#api-led-matrix-mode-noeeprom} + +Set the currently running effect. New state is not written to EEPROM. + +#### Arguments {#api-led-matrix-mode-noeeprom-arguments} + + - `uint8_t mode` + The effect to switch to. + +--- + +### `void led_matrix_step(void)` {#api-led-matrix-step} + +Move to the next enabled effect. + +--- + +### `void led_matrix_step_noeeprom(void)` {#api-led-matrix-step-noeeprom} + +Move to the next enabled effect. New state is not written to EEPROM. + +--- + +### `void led_matrix_step_reverse(void)` {#api-led-matrix-step-reverse} + +Move to the previous enabled effect. + +--- + +### `void led_matrix_step_reverse_noeeprom(void)` {#api-led-matrix-step-reverse} + +Move to the previous enabled effect. New state is not written to EEPROM. + +--- + +### `uint8_t led_matrix_get_mode(void)` {#api-led-matrix-get-mode} + +Get the currently running effect. + +#### Return Value {#api-led-matrix-get-mode-return} + +The index of the currently running effect. + +--- + +### `void val_matrix_increase_val(void)` {#api-led-matrix-increase-val} + +Increase the global effect brightness. + +--- + +### `void led_matrix_increase_val_noeeprom(void)` {#api-led-matrix-increase-val-noeeprom} + +Increase the global effect brightness. New state is not written to EEPROM. + +--- + +### `void led_matrix_decrease_val(void)` {#api-led-matrix-decrease-val} + +Decrease the global effect brightness. + +--- + +### `void led_matrix_decrease_val_noeeprom(void)` {#api-led-matrix-decrease-val-noeeprom} + +Decrease the global effect brightness. New state is not written to EEPROM. + +--- + +### `uint8_t led_matrix_get_val(void)` {#api-led-matrix-get-val} + +Get the current global effect brightness. + +#### Return Value {#api-led-matrix-get-val-return} + +The current brightness value, from 0 to 255. + +--- + +### `void led_matrix_increase_speed(void)` {#api-led-matrix-increase-speed} + +Increase the effect speed. + +--- + +### `void led_matrix_increase_speed_noeeprom(void)` {#api-led-matrix-increase-speed-noeeprom} + +Increase the effect speed. New state is not written to EEPROM. + +--- + +### `void led_matrix_decrease_speed(void)` {#api-led-matrix-decrease-speed} + +Decrease the effect speed. + +--- + +### `void led_matrix_decrease_speed_noeeprom(void)` {#api-led-matrix-decrease-speed-noeeprom} + +Decrease the effect speed. New state is not written to EEPROM. + +--- + +### `void led_matrix_set_speed(uint8_t speed)` {#api-led-matrix-set-speed} + +Set the effect speed. + +#### Arguments {#api-led-matrix-set-speed-arguments} + + - `uint8_t speed` + The new speed to set, from 0 to 255. + +--- + +### `void led_matrix_set_speed_noeeprom(uint8_t speed)` {#api-led-matrix-set-speed-noeeprom} + +Set the effect speed. New state is not written to EEPROM. + +#### Arguments {#api-led-matrix-set-speed-noeeprom-arguments} + + - `uint8_t speed` + The new speed to set, from 0 to 255. + +--- + +### `uint8_t led_matrix_get_speed(void)` {#api-led-matrix-get-speed} + +Get the current effect speed. + +#### Return Value {#api-led-matrix-get-speed-return} + +The current effect speed, from 0 to 255. + +--- + +### `void led_matrix_reload_from_eeprom(void)` {#api-led-matrix-reload-from-eeprom} + +Reload the effect configuration (enabled, mode and brightness) from EEPROM. + +--- + +### `bool led_matrix_get_suspend_state(void)` {#api-led-matrix-get-suspend-state} + +Get the current suspend state of LED Matrix. + +#### Return Value {#api-led-matrix-get-suspend-state-return} + +`true` if LED Matrix is currently in the suspended state. + +--- + +### `bool led_matrix_indicators_kb(void)` {#api-led-matrix-indicators-kb} + +Keyboard-level callback, invoked after current animation frame is rendered but before it is flushed to the LEDs. + +#### Return Value {#api-led-matrix-indicators-kb-return} + +Currently unused. + +--- + +### `bool led_matrix_indicators_user(void)` {#api-led-matrix-indicators-user} + +Keymap-level callback, invoked after current animation frame is rendered but before it is flushed to the LEDs. + +#### Return Value {#api-led-matrix-indicators-user-return} + +`true` to continue running the keyboard-level callback. + +--- + +### `bool led_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max)` {#api-led-matrix-indicators-advanced-kb} + +Keyboard-level callback, invoked after current animation frame is rendered but before it is flushed to the LEDs. + +### Arguments {#api-led-matrix-indicators-advanced-kb-arguments} + + - `uint8_t led_min` + The index of the first LED in this batch. + - `uint8_t led_max` + The index of the last LED in this batch. + +#### Return Value {#api-led-matrix-indicators-advanced-kb-return} + +Currently unused. + +--- + +### `bool led_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max)` {#api-led-matrix-indicators-advanced-user} + +Keymap-level callback, invoked after current animation frame is rendered but before it is flushed to the LEDs. + +### Arguments {#api-led-matrix-indicators-advanced-user-arguments} + + - `uint8_t led_min` + The index of the first LED in this batch. + - `uint8_t led_max` + The index of the last LED in this batch. + +#### Return Value {#api-led-matrix-indicators-advanced-user-return} + +`true` to continue running the keyboard-level callback. diff --git a/docs/features/rgb_matrix.md b/docs/features/rgb_matrix.md index 448d1cdfb56..60250c2c9c8 100644 --- a/docs/features/rgb_matrix.md +++ b/docs/features/rgb_matrix.md @@ -914,71 +914,6 @@ These are defined in [`color.h`](https://github.com/qmk/qmk_firmware/blob/master The EEPROM for it is currently shared with the LED Matrix system (it's generally assumed only one feature would be used at a time). -## Functions {#functions} - -### Direct Operation {#direct-operation} -|Function |Description | -|--------------------------------------------|-------------| -|`rgb_matrix_set_color_all(r, g, b)` |Set all of the LEDs to the given RGB value, where `r`/`g`/`b` are between 0 and 255 (not written to EEPROM) | -|`rgb_matrix_set_color(index, r, g, b)` |Set a single LED to the given RGB value, where `r`/`g`/`b` are between 0 and 255, and `index` is between 0 and `RGB_MATRIX_LED_COUNT` (not written to EEPROM) | - -### Disable/Enable Effects {#disable-enable-effects} -|Function |Description | -|--------------------------------------------|-------------| -|`rgb_matrix_toggle()` |Toggle effect range LEDs between on and off | -|`rgb_matrix_toggle_noeeprom()` |Toggle effect range LEDs between on and off (not written to EEPROM) | -|`rgb_matrix_enable()` |Turn effect range LEDs on, based on their previous state | -|`rgb_matrix_enable_noeeprom()` |Turn effect range LEDs on, based on their previous state (not written to EEPROM) | -|`rgb_matrix_disable()` |Turn effect range LEDs off, based on their previous state | -|`rgb_matrix_disable_noeeprom()` |Turn effect range LEDs off, based on their previous state (not written to EEPROM) | - -### Change Effect Mode {#change-effect-mode} -|Function |Description | -|--------------------------------------------|-------------| -|`rgb_matrix_mode(mode)` |Set the mode, if RGB animations are enabled | -|`rgb_matrix_mode_noeeprom(mode)` |Set the mode, if RGB animations are enabled (not written to EEPROM) | -|`rgb_matrix_step()` |Change the mode to the next RGB animation in the list of enabled RGB animations | -|`rgb_matrix_step_noeeprom()` |Change the mode to the next RGB animation in the list of enabled RGB animations (not written to EEPROM) | -|`rgb_matrix_step_reverse()` |Change the mode to the previous RGB animation in the list of enabled RGB animations | -|`rgb_matrix_step_reverse_noeeprom()` |Change the mode to the previous RGB animation in the list of enabled RGB animations (not written to EEPROM) | -|`rgb_matrix_increase_speed()` |Increase the speed of the animations | -|`rgb_matrix_increase_speed_noeeprom()` |Increase the speed of the animations (not written to EEPROM) | -|`rgb_matrix_decrease_speed()` |Decrease the speed of the animations | -|`rgb_matrix_decrease_speed_noeeprom()` |Decrease the speed of the animations (not written to EEPROM) | -|`rgb_matrix_set_speed(speed)` |Set the speed of the animations to the given value where `speed` is between 0 and 255 | -|`rgb_matrix_set_speed_noeeprom(speed)` |Set the speed of the animations to the given value where `speed` is between 0 and 255 (not written to EEPROM) | -|`rgb_matrix_reload_from_eeprom()` |Reload the effect configuration (enabled, mode and color) from EEPROM | - -### Change Color {#change-color} -|Function |Description | -|--------------------------------------------|-------------| -|`rgb_matrix_increase_hue()` |Increase the hue for effect range LEDs. This wraps around at maximum hue | -|`rgb_matrix_increase_hue_noeeprom()` |Increase the hue for effect range LEDs. This wraps around at maximum hue (not written to EEPROM) | -|`rgb_matrix_decrease_hue()` |Decrease the hue for effect range LEDs. This wraps around at minimum hue | -|`rgb_matrix_decrease_hue_noeeprom()` |Decrease the hue for effect range LEDs. This wraps around at minimum hue (not written to EEPROM) | -|`rgb_matrix_increase_sat()` |Increase the saturation for effect range LEDs. This wraps around at maximum saturation | -|`rgb_matrix_increase_sat_noeeprom()` |Increase the saturation for effect range LEDs. This wraps around at maximum saturation (not written to EEPROM) | -|`rgb_matrix_decrease_sat()` |Decrease the saturation for effect range LEDs. This wraps around at minimum saturation | -|`rgb_matrix_decrease_sat_noeeprom()` |Decrease the saturation for effect range LEDs. This wraps around at minimum saturation (not written to EEPROM) | -|`rgb_matrix_increase_val()` |Increase the value for effect range LEDs. This wraps around at maximum value | -|`rgb_matrix_increase_val_noeeprom()` |Increase the value for effect range LEDs. This wraps around at maximum value (not written to EEPROM) | -|`rgb_matrix_decrease_val()` |Decrease the value for effect range LEDs. This wraps around at minimum value | -|`rgb_matrix_decrease_val_noeeprom()` |Decrease the value for effect range LEDs. This wraps around at minimum value (not written to EEPROM) | -|`rgb_matrix_sethsv(h, s, v)` |Set LEDs to the given HSV value where `h`/`s`/`v` are between 0 and 255 | -|`rgb_matrix_sethsv_noeeprom(h, s, v)` |Set LEDs to the given HSV value where `h`/`s`/`v` are between 0 and 255 (not written to EEPROM) | - -### Query Current Status {#query-current-status} -|Function |Description | -|---------------------------------|---------------------------| -|`rgb_matrix_is_enabled()` |Gets current on/off status | -|`rgb_matrix_get_mode()` |Gets current mode | -|`rgb_matrix_get_hue()` |Gets current hue | -|`rgb_matrix_get_sat()` |Gets current sat | -|`rgb_matrix_get_val()` |Gets current val | -|`rgb_matrix_get_hsv()` |Gets hue, sat, and val and returns a [`HSV` structure](https://github.com/qmk/qmk_firmware/blob/7ba6456c0b2e041bb9f97dbed265c5b8b4b12192/quantum/color.h#L56-L61)| -|`rgb_matrix_get_speed()` |Gets current speed | -|`rgb_matrix_get_suspend_state()` |Gets current suspend state | - ## Callbacks {#callbacks} ### Indicators {#indicators} @@ -1117,3 +1052,409 @@ void keyboard_post_init_user(void) { rgb_matrix_sethsv_noeeprom(HSV_OFF); } ``` + +## API {#api} + +### `void rgb_matrix_toggle(void)` {#api-rgb-matrix-toggle} + +Toggle RGB Matrix on or off. + +--- + +### `void rgb_matrix_toggle_noeeprom(void)` {#api-rgb-matrix-toggle-noeeprom} + +Toggle RGB Matrix on or off. New state is not written to EEPROM. + +--- + +### `void rgb_matrix_enable(void)` {#api-rgb-matrix-enable} + +Turn RGB Matrix on. + +--- + +### `void rgb_matrix_enable_noeeprom(void)` {#api-rgb-matrix-enable-noeeprom} + +Turn RGB Matrix on. New state is not written to EEPROM. + +--- + +### `void rgb_matrix_disable(void)` {#api-rgb-matrix-disable} + +Turn RGB Matrix off. + +--- + +### `void rgb_matrix_disable_noeeprom(void)` {#api-rgb-matrix-disable-noeeprom} + +Turn RGB Matrix off. New state is not written to EEPROM. + +--- + +### `bool rgb_matrix_is_enabled(void)` {#api-rgb-matrix-is-enabled} + +Get the current enabled state of RGB Matrix. + +#### Return Value {#api-rgb-matrix-is-enabled-return} + +`true` if RGB Matrix is enabled. + +--- + +### `void rgb_matrix_set_color(uint8_t index, uint8_t r, uint8_t g, uint8_t b)` {#api-rgb-matrix-set-color} + +Set the color of a single LED. + +This function can only be run from within an effect or indicator callback, otherwise the currently running animation will simply overwrite it on the next frame. + +#### Arguments {#api-rgb-matrix-set-color-arguments} + + - `uint8_t index` + The LED index, from 0 to `RGB_MATRIX_LED_COUNT - 1`. + - `uint8_t r` + The red value to set. + - `uint8_t g` + The green value to set. + - `uint8_t b` + The blue value to set. + +--- + +### `void rgb_matrix_set_color_all(uint8_t r, uint8_t g, uint8_t b)` {#api-rgb-matrix-set-color-all} + +Set the color of all LEDs. + +This function can only be run from within an effect or indicator callback, otherwise the currently running animation will simply overwrite it on the next frame. + +#### Arguments {#api-rgb-matrix-set-color-all-arguments} + + - `uint8_t r` + The red value to set. + - `uint8_t g` + The green value to set. + - `uint8_t b` + The blue value to set. + +--- + +### `void rgb_matrix_mode(uint8_t mode)` {#api-rgb-matrix-mode} + +Set the currently running effect. + +#### Arguments {#api-rgb-matrix-mode-arguments} + + - `uint8_t mode` + The effect to switch to. + +--- + +### `void rgb_matrix_mode_noeeprom(uint8_t mode)` {#api-rgb-matrix-mode-noeeprom} + +Set the currently running effect. New state is not written to EEPROM. + +#### Arguments {#api-rgb-matrix-mode-noeeprom-arguments} + + - `uint8_t mode` + The effect to switch to. + +--- + +### `void rgb_matrix_step(void)` {#api-rgb-matrix-step} + +Move to the next enabled effect. + +--- + +### `void rgb_matrix_step_noeeprom(void)` {#api-rgb-matrix-step-noeeprom} + +Move to the next enabled effect. New state is not written to EEPROM. + +--- + +### `void rgb_matrix_step_reverse(void)` {#api-rgb-matrix-step-reverse} + +Move to the previous enabled effect. + +--- + +### `void rgb_matrix_step_reverse_noeeprom(void)` {#api-rgb-matrix-step-reverse} + +Move to the previous enabled effect. New state is not written to EEPROM. + +--- + +### `uint8_t rgb_matrix_get_mode(void)` {#api-rgb-matrix-get-mode} + +Get the currently running effect. + +#### Return Value {#api-rgb-matrix-get-mode-return} + +The index of the currently running effect. + +--- + +### `void rgb_matrix_increase_hue(void)` {#api-rgb-matrix-increase-hue} + +Increase the global effect hue. + +--- + +### `void rgb_matrix_increase_hue_noeeprom(void)` {#api-rgb-matrix-increase-hue-noeeprom} + +Increase the global effect hue. New state is not written to EEPROM. + +--- + +### `void rgb_matrix_decrease_hue(void)` {#api-rgb-matrix-decrease-hue} + +Decrease the global effect hue. + +--- + +### `void rgb_matrix_decrease_hue_noeeprom(void)` {#api-rgb-matrix-decrease-hue-noeeprom} + +Decrease the global effect hue. New state is not written to EEPROM. + +--- + +### `uint8_t rgb_matrix_get_hue(void)` {#api-rgb-matrix-get-hue} + +Get the current global effect hue. + +#### Return Value {#api-rgb-matrix-get-hue-return} + +The current hue value, from 0 to 255. + +--- + +### `void rgb_matrix_increase_sat(void)` {#api-rgb-matrix-increase-sat} + +Increase the global effect saturation. + +--- + +### `void rgb_matrix_increase_sat_noeeprom(void)` {#api-rgb-matrix-increase-sat-noeeprom} + +Increase the global effect saturation. New state is not written to EEPROM. + +--- + +### `void rgb_matrix_decrease_sat(void)` {#api-rgb-matrix-decrease-sat} + +Decrease the global effect saturation. + +--- + +### `void rgb_matrix_decrease_sat_noeeprom(void)` {#api-rgb-matrix-decrease-sat-noeeprom} + +Decrease the global effect saturation. New state is not written to EEPROM. + +--- + +### `uint8_t rgb_matrix_get_sat(void)` {#api-rgb-matrix-get-sat} + +Get the current global effect saturation. + +#### Return Value {#api-rgb-matrix-get-sat-return} + +The current saturation value, from 0 to 255. + +--- + +### `void rgb_matrix_increase_val(void)` {#api-rgb-matrix-increase-val} + +Increase the global effect value (brightness). + +--- + +### `void rgb_matrix_increase_val_noeeprom(void)` {#api-rgb-matrix-increase-val-noeeprom} + +Increase the global effect value (brightness). New state is not written to EEPROM. + +--- + +### `void rgb_matrix_decrease_val(void)` {#api-rgb-matrix-decrease-val} + +Decrease the global effect value (brightness). + +--- + +### `void rgb_matrix_decrease_val_noeeprom(void)` {#api-rgb-matrix-decrease-val-noeeprom} + +Decrease the global effect value (brightness). New state is not written to EEPROM. + +--- + +### `uint8_t rgb_matrix_get_val(void)` {#api-rgb-matrix-get-val} + +Get the current global effect value (brightness). + +#### Return Value {#api-rgb-matrix-get-val-return} + +The current brightness value, from 0 to 255. + +--- + +### `void rgb_matrix_increase_speed(void)` {#api-rgb-matrix-increase-speed} + +Increase the effect speed. + +--- + +### `void rgb_matrix_increase_speed_noeeprom(void)` {#api-rgb-matrix-increase-speed-noeeprom} + +Increase the effect speed. New state is not written to EEPROM. + +--- + +### `void rgb_matrix_decrease_speed(void)` {#api-rgb-matrix-decrease-speed} + +Decrease the effect speed. + +--- + +### `void rgb_matrix_decrease_speed_noeeprom(void)` {#api-rgb-matrix-decrease-speed-noeeprom} + +Decrease the effect speed. New state is not written to EEPROM. + +--- + +### `void rgb_matrix_set_speed(uint8_t speed)` {#api-rgb-matrix-set-speed} + +Set the effect speed. + +#### Arguments {#api-rgb-matrix-set-speed-arguments} + + - `uint8_t speed` + The new speed to set, from 0 to 255. + +--- + +### `void rgb_matrix_set_speed_noeeprom(uint8_t speed)` {#api-rgb-matrix-set-speed-noeeprom} + +Set the effect speed. New state is not written to EEPROM. + +#### Arguments {#api-rgb-matrix-set-speed-noeeprom-arguments} + + - `uint8_t speed` + The new speed to set, from 0 to 255. + +--- + +### `uint8_t rgb_matrix_get_speed(void)` {#api-rgb-matrix-get-speed} + +Get the current effect speed. + +#### Return Value {#api-rgb-matrix-get-speed-return} + +The current effect speed, from 0 to 255. + +--- + +### `void rgb_matrix_sethsv(uint8_t h, uint8_t s, uint8_t v)` {#api-rgb-matrix-sethsv} + +Set the global effect hue, saturation, and value (brightness). + +### Arguments {#api-rgb-matrix-sethsv-arguments} + + - `uint8_t h` + The hue to set, from 0 to 255. + - `uint8_t s` + The saturation to set, from 0 to 255. + - `uint8_t v` + The value (brightness) to set, from 0 to 255. + +--- + +### `void rgb_matrix_sethsv_noeeprom(uint8_t h, uint8_t s, uint8_t v)` {#api-rgb-matrix-sethsv-noeeprom} + +Set the global effect hue, saturation, and value (brightness). New state is not written to EEPROM. + +#### Arguments {#api-rgb-matrix-sethsv-noeeprom-arguments} + + - `uint8_t h` + The hue to set, from 0 to 255. + - `uint8_t s` + The saturation to set, from 0 to 255. + - `uint8_t v` + The value (brightness) to set, from 0 to 255. + +--- + +### `HSV rgb_matrix_get_hsv(void)` {#api-rgb-matrix-get-hsv} + +Get the current global effect hue, saturation, and value (brightness). + +#### Return Value {#api-rgb-matrix-get-hsv-return} + +The current effect HSV as an `HSV` struct. + +--- + +### `void rgb_matrix_reload_from_eeprom(void)` {#api-rgb-matrix-reload-from-eeprom} + +Reload the effect configuration (enabled, mode and color) from EEPROM. + +--- + +### `bool rgb_matrix_get_suspend_state(void)` {#api-rgb-matrix-get-suspend-state} + +Get the current suspend state of RGB Matrix. + +#### Return Value {#api-rgb-matrix-get-suspend-state-return} + +`true` if RGB Matrix is currently in the suspended state. + +--- + +### `bool rgb_matrix_indicators_kb(void)` {#api-rgb-matrix-indicators-kb} + +Keyboard-level callback, invoked after current animation frame is rendered but before it is flushed to the LEDs. + +#### Return Value {#api-rgb-matrix-indicators-kb-return} + +Currently unused. + +--- + +### `bool rgb_matrix_indicators_user(void)` {#api-rgb-matrix-indicators-user} + +Keymap-level callback, invoked after current animation frame is rendered but before it is flushed to the LEDs. + +#### Return Value {#api-rgb-matrix-indicators-user-return} + +`true` to continue running the keyboard-level callback. + +--- + +### `bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max)` {#api-rgb-matrix-indicators-advanced-kb} + +Keyboard-level callback, invoked after current animation frame is rendered but before it is flushed to the LEDs. + +### Arguments {#api-rgb-matrix-indicators-advanced-kb-arguments} + + - `uint8_t led_min` + The index of the first LED in this batch. + - `uint8_t led_max` + The index of the last LED in this batch. + +#### Return Value {#api-rgb-matrix-indicators-advanced-kb-return} + +Currently unused. + +--- + +### `bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max)` {#api-rgb-matrix-indicators-advanced-user} + +Keymap-level callback, invoked after current animation frame is rendered but before it is flushed to the LEDs. + +### Arguments {#api-rgb-matrix-indicators-advanced-user-arguments} + + - `uint8_t led_min` + The index of the first LED in this batch. + - `uint8_t led_max` + The index of the last LED in this batch. + +#### Return Value {#api-rgb-matrix-indicators-advanced-user-return} + +`true` to continue running the keyboard-level callback. From 942c2a8d5acfebe73cc1dafd9b0044cb1cc7e911 Mon Sep 17 00:00:00 2001 From: Ryan Date: Thu, 13 Jun 2024 13:31:03 +1000 Subject: [PATCH 22/46] Fix nonunique anchors (#23910) --- docs/features/led_matrix.md | 2 +- docs/features/rgb_matrix.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/features/led_matrix.md b/docs/features/led_matrix.md index 3e3c17d2c1c..f6587f7b3ea 100644 --- a/docs/features/led_matrix.md +++ b/docs/features/led_matrix.md @@ -520,7 +520,7 @@ Move to the previous enabled effect. --- -### `void led_matrix_step_reverse_noeeprom(void)` {#api-led-matrix-step-reverse} +### `void led_matrix_step_reverse_noeeprom(void)` {#api-led-matrix-step-reverse-noeeprom} Move to the previous enabled effect. New state is not written to EEPROM. diff --git a/docs/features/rgb_matrix.md b/docs/features/rgb_matrix.md index 60250c2c9c8..a42f0a0f736 100644 --- a/docs/features/rgb_matrix.md +++ b/docs/features/rgb_matrix.md @@ -1177,7 +1177,7 @@ Move to the previous enabled effect. --- -### `void rgb_matrix_step_reverse_noeeprom(void)` {#api-rgb-matrix-step-reverse} +### `void rgb_matrix_step_reverse_noeeprom(void)` {#api-rgb-matrix-step-reverse-noeeprom} Move to the previous enabled effect. New state is not written to EEPROM. From 4a4eda4c3ca96a57d44fc1cb5d4d5ef536839d2f Mon Sep 17 00:00:00 2001 From: Danny Date: Thu, 13 Jun 2024 09:00:42 -0400 Subject: [PATCH 23/46] Add missing encode enable for BAMFK-1 (#23821) Add missing encode enable --- keyboards/keebio/bamfk1/keyboard.json | 1 + 1 file changed, 1 insertion(+) diff --git a/keyboards/keebio/bamfk1/keyboard.json b/keyboards/keebio/bamfk1/keyboard.json index 09e7edbd185..babc74f780e 100644 --- a/keyboards/keebio/bamfk1/keyboard.json +++ b/keyboards/keebio/bamfk1/keyboard.json @@ -4,6 +4,7 @@ "maintainer": "nooges", "bootloader": "atmel-dfu", "encoder": { + "enabled": true, "rotary": [ {"pin_a": "C7", "pin_b": "B5"}, {"pin_a": "D7", "pin_b": "D4"} From caf13bb9db0ffa29c25ec55d5cff5c12770f97b9 Mon Sep 17 00:00:00 2001 From: Danny Date: Thu, 13 Jun 2024 18:36:26 -0400 Subject: [PATCH 24/46] Fix order of RGB LEDs to correct one for Iris CE (#23914) --- keyboards/keebio/iris_ce/rev1/keyboard.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/keyboards/keebio/iris_ce/rev1/keyboard.json b/keyboards/keebio/iris_ce/rev1/keyboard.json index c9fc160001a..6086f948b1c 100644 --- a/keyboards/keebio/iris_ce/rev1/keyboard.json +++ b/keyboards/keebio/iris_ce/rev1/keyboard.json @@ -118,11 +118,11 @@ {"matrix": [8, 5], "x": 144, "y": 43, "flags": 4}, {"matrix": [8, 4], "x": 160, "y": 42, "flags": 4}, {"matrix": [8, 3], "x": 176, "y": 40, "flags": 4}, - {"x": 184, "y": 50, "flags": 2}, {"matrix": [8, 2], "x": 192, "y": 42, "flags": 4}, {"matrix": [8, 1], "x": 208, "y": 45, "flags": 4}, - {"x": 216, "y": 43, "flags": 2}, {"matrix": [8, 0], "x": 224, "y": 45, "flags": 4}, + {"x": 216, "y": 43, "flags": 2}, + {"x": 184, "y": 50, "flags": 2}, {"matrix": [9, 2], "x": 168, "y": 47, "flags": 4}, {"matrix": [9, 3], "x": 152, "y": 58, "flags": 4}, {"x": 144, "y": 58, "flags": 2}, @@ -215,4 +215,4 @@ ] } } -} \ No newline at end of file +} From cd565a95a02509c84010974273815f8f81e9b03b Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Fri, 14 Jun 2024 00:23:57 +0100 Subject: [PATCH 25/46] Remove suggestion of creating issues for unsupported keyboards. (#23918) --- docs/configurator_step_by_step.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/configurator_step_by_step.md b/docs/configurator_step_by_step.md index 4da9ea04a28..d0ac268bba8 100644 --- a/docs/configurator_step_by_step.md +++ b/docs/configurator_step_by_step.md @@ -16,7 +16,9 @@ I'll say that again because it's important: **MAKE SURE YOU SELECT THE RIGHT VERSION!** ::: -If your keyboard has been advertised to be powered by QMK but is not in the list, chances are a developer hasn't gotten to it yet or we haven't had a chance to merge it in yet. File an issue at [qmk_firmware](https://github.com/qmk/qmk_firmware/issues) requesting to support that particular keyboard, if there is no active [Pull Request](https://github.com/qmk/qmk_firmware/pulls?q=is%3Aopen+is%3Apr+label%3Akeyboard) for it. There are also QMK powered keyboards that are in their manufacturer's own GitHub accounts. Double check for that as well. +Unfortunately if your keyboard has been advertised to be powered by QMK but is not in the list, you will **not** be able to use Configurator to customize your keyboard. + +Chances are a developer hasn't gotten round to adding support or we haven't had a chance to merge it in yet. If there is no active [Pull Request](https://github.com/qmk/qmk_firmware/pulls?q=is%3Aopen+is%3Apr+label%3Akeyboard), contact the manufacturer and encourage them to add support. ## Step 2: Select Your Keyboard Layout From c92becc57ed94f2106f703b7955e61ad31e0dcfa Mon Sep 17 00:00:00 2001 From: adophoxia <100170946+adophoxia@users.noreply.github.com> Date: Thu, 13 Jun 2024 21:10:23 -0700 Subject: [PATCH 26/46] [Keyboard] Enable dip switch for Keychron Q4 (#23889) --- keyboards/keychron/q4/info.json | 1 + 1 file changed, 1 insertion(+) diff --git a/keyboards/keychron/q4/info.json b/keyboards/keychron/q4/info.json index 59f6caef923..4b9f246b4c8 100644 --- a/keyboards/keychron/q4/info.json +++ b/keyboards/keychron/q4/info.json @@ -5,6 +5,7 @@ "bootloader": "stm32-dfu", "diode_direction": "ROW2COL", "dip_switch": { + "enabled": true, "matrix_grid": [ [4, 4] ] }, "dynamic_keymap": { From 4e8b740dd70cf79e6ade39a75442ff8f4e4e0872 Mon Sep 17 00:00:00 2001 From: Myriam Date: Fri, 14 Jun 2024 09:34:06 +0200 Subject: [PATCH 27/46] fix keymap for kprepublic bm60hsrgb_iso (#23733) Co-authored-by: Duncan Sutherland Co-authored-by: Ryan --- .../kprepublic/bm60hsrgb_iso/rev2/keymaps/default/keymap.c | 4 ++-- keyboards/kprepublic/bm60hsrgb_iso/rev2/keymaps/via/keymap.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/keyboards/kprepublic/bm60hsrgb_iso/rev2/keymaps/default/keymap.c b/keyboards/kprepublic/bm60hsrgb_iso/rev2/keymaps/default/keymap.c index 52610f04d64..3b7ca14c98e 100644 --- a/keyboards/kprepublic/bm60hsrgb_iso/rev2/keymaps/default/keymap.c +++ b/keyboards/kprepublic/bm60hsrgb_iso/rev2/keymaps/default/keymap.c @@ -20,8 +20,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_60_iso_arrow( QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, KC_ENT, - KC_LSFT, KC_SPC, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSFT, KC_UP, KC_SLSH, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSFT, KC_UP, KC_SLSH, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT ), [1] = LAYOUT_60_iso_arrow( diff --git a/keyboards/kprepublic/bm60hsrgb_iso/rev2/keymaps/via/keymap.c b/keyboards/kprepublic/bm60hsrgb_iso/rev2/keymaps/via/keymap.c index d9a22d3bacf..4dcbb20f844 100644 --- a/keyboards/kprepublic/bm60hsrgb_iso/rev2/keymaps/via/keymap.c +++ b/keyboards/kprepublic/bm60hsrgb_iso/rev2/keymaps/via/keymap.c @@ -20,8 +20,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_60_iso_arrow( QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, KC_ENT, - KC_LSFT, KC_SPC, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSFT, KC_UP, KC_SLSH, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSFT, KC_UP, KC_SLSH, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT ), [1] = LAYOUT_60_iso_arrow( From 0594121b683832b3fd5161374c6b6b1d1627b5b9 Mon Sep 17 00:00:00 2001 From: ai03 Date: Fri, 14 Jun 2024 13:26:00 -0700 Subject: [PATCH 28/46] [Keyboard] Add Altair-X (#23879) Co-authored-by: jack <0x6a73@protonmail.com> Co-authored-by: Drashna Jaelre --- keyboards/ai03/altair_x/config.h | 12 ++ keyboards/ai03/altair_x/keyboard.json | 104 ++++++++++++++++++ .../ai03/altair_x/keymaps/default/keymap.c | 29 +++++ keyboards/ai03/altair_x/keymaps/via/keymap.c | 29 +++++ keyboards/ai03/altair_x/keymaps/via/rules.mk | 1 + keyboards/ai03/altair_x/readme.md | 19 ++++ keyboards/ai03/altair_x/rules.mk | 1 + 7 files changed, 195 insertions(+) create mode 100644 keyboards/ai03/altair_x/config.h create mode 100644 keyboards/ai03/altair_x/keyboard.json create mode 100644 keyboards/ai03/altair_x/keymaps/default/keymap.c create mode 100644 keyboards/ai03/altair_x/keymaps/via/keymap.c create mode 100644 keyboards/ai03/altair_x/keymaps/via/rules.mk create mode 100644 keyboards/ai03/altair_x/readme.md create mode 100644 keyboards/ai03/altair_x/rules.mk diff --git a/keyboards/ai03/altair_x/config.h b/keyboards/ai03/altair_x/config.h new file mode 100644 index 00000000000..c54b35498b5 --- /dev/null +++ b/keyboards/ai03/altair_x/config.h @@ -0,0 +1,12 @@ +/* Copyright 2024 ai03 Design Studio */ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#pragma once + +/* VBUS-routed pin for upstream detection */ +#define USB_VBUS_PIN GP0 + +/* RP2040- and hardware-specific config */ +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U +#define PICO_XOSC_STARTUP_DELAY_MULTIPLIER 64 diff --git a/keyboards/ai03/altair_x/keyboard.json b/keyboards/ai03/altair_x/keyboard.json new file mode 100644 index 00000000000..d1448ab8c2f --- /dev/null +++ b/keyboards/ai03/altair_x/keyboard.json @@ -0,0 +1,104 @@ +{ + "manufacturer": "ai03 Design Studio", + "keyboard_name": "Altair-X", + "maintainer": "ai03_2725", + "bootloader": "rp2040", + "build": { + "debounce_type": "asym_eager_defer_pk" + }, + "diode_direction": "COL2ROW", + "dynamic_keymap": { + "layer_count": 6 + }, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["GP20", "GP19", "GP18", "GP17", "GP16", "GP21", "GP9"], + "rows": ["GP26", "GP27", "GP28", "GP10"] + }, + "processor": "RP2040", + "split": { + "bootmagic": { + "matrix": [4, 0] + }, + "enabled": true, + "handedness": { + "pin": "GP8" + }, + "matrix_pins": { + "right": { + "cols": ["GP15", "GP21", "GP9", "GP13", "GP10", "GP11", "GP12"], + "rows": ["GP16", "GP20", "GP28", "GP14"] + } + }, + "soft_serial_pin": "GP29" + }, + "url": "https://ai03.com/", + "usb": { + "device_version": "0.0.1", + "pid": "0x0023", + "vid": "0xA103" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0.38}, + {"matrix": [0, 1], "x": 1, "y": 0.38}, + {"matrix": [0, 2], "x": 2, "y": 0.13}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0.13}, + {"matrix": [0, 5], "x": 5, "y": 0.25}, + {"matrix": [0, 6], "x": 6, "y": 0.5}, + {"matrix": [4, 0], "x": 7.75, "y": 0.5}, + {"matrix": [4, 1], "x": 8.75, "y": 0.25}, + {"matrix": [4, 2], "x": 9.75, "y": 0.13}, + {"matrix": [4, 3], "x": 10.75, "y": 0}, + {"matrix": [4, 4], "x": 11.75, "y": 0.13}, + {"matrix": [4, 5], "x": 12.75, "y": 0.38}, + {"matrix": [4, 6], "x": 13.75, "y": 0.38}, + {"matrix": [1, 0], "x": 0, "y": 1.38}, + {"matrix": [1, 1], "x": 1, "y": 1.38}, + {"matrix": [1, 2], "x": 2, "y": 1.13}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1.13}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.5}, + {"matrix": [5, 0], "x": 7.75, "y": 1.5}, + {"matrix": [5, 1], "x": 8.75, "y": 1.25}, + {"matrix": [5, 2], "x": 9.75, "y": 1.13}, + {"matrix": [5, 3], "x": 10.75, "y": 1}, + {"matrix": [5, 4], "x": 11.75, "y": 1.13}, + {"matrix": [5, 5], "x": 12.75, "y": 1.38}, + {"matrix": [5, 6], "x": 13.75, "y": 1.38}, + {"matrix": [2, 0], "x": 0, "y": 2.38}, + {"matrix": [2, 1], "x": 1, "y": 2.38}, + {"matrix": [2, 2], "x": 2, "y": 2.13}, + {"matrix": [2, 3], "x": 3, "y": 2}, + {"matrix": [2, 4], "x": 4, "y": 2.13}, + {"matrix": [2, 5], "x": 5, "y": 2.25}, + {"matrix": [2, 6], "x": 6, "y": 2.5}, + {"matrix": [6, 0], "x": 7.75, "y": 2.5}, + {"matrix": [6, 1], "x": 8.75, "y": 2.25}, + {"matrix": [6, 2], "x": 9.75, "y": 2.13}, + {"matrix": [6, 3], "x": 10.75, "y": 2}, + {"matrix": [6, 4], "x": 11.75, "y": 2.13}, + {"matrix": [6, 5], "x": 12.75, "y": 2.38}, + {"matrix": [6, 6], "x": 13.75, "y": 2.38}, + {"matrix": [3, 3], "x": 2.71, "y": 3.13}, + {"matrix": [3, 4], "x": 3.73, "y": 3.16}, + {"matrix": [3, 5], "x": 4.74, "y": 3.36}, + {"matrix": [3, 6], "x": 5.75, "y": 3.72}, + {"matrix": [7, 0], "x": 8, "y": 3.72}, + {"matrix": [7, 1], "x": 9.02, "y": 3.36}, + {"matrix": [7, 2], "x": 10.03, "y": 3.18}, + {"matrix": [7, 3], "x": 11.05, "y": 3.13} + ] + } + } +} diff --git a/keyboards/ai03/altair_x/keymaps/default/keymap.c b/keyboards/ai03/altair_x/keymaps/default/keymap.c new file mode 100644 index 00000000000..8eb350993da --- /dev/null +++ b/keyboards/ai03/altair_x/keymaps/default/keymap.c @@ -0,0 +1,29 @@ +/* Copyright 2024 ai03 Design Studio */ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT( + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, XXXXXXX, XXXXXXX, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, XXXXXXX, XXXXXXX, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, XXXXXXX, XXXXXXX, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + KC_LGUI, KC_LALT, MO(1), KC_SPC, KC_SPC, MO(2), KC_TAB, KC_DEL + ), + + [1] = LAYOUT( + _______, KC_1, KC_2, KC_3, KC_4, KC_5, _______, _______, KC_6, KC_7, KC_8, KC_9, KC_0, _______, + _______, KC_GRV, KC_LBRC, KC_LCBR, KC_LPRN, KC_MINS, _______, _______, KC_EQL, KC_RPRN, KC_RCBR, KC_RBRC, KC_BSLS, _______, + _______, KC_TILD, _______, _______, _______, KC_UNDS, _______, _______, KC_PLUS, _______, _______, _______, KC_PIPE, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [2] = LAYOUT( + _______, _______, _______, KC_PGUP, _______, _______, _______, _______, _______, _______, KC_UP, _______, _______, _______, + _______, _______, KC_HOME, KC_PGDN, KC_END, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ) + +}; diff --git a/keyboards/ai03/altair_x/keymaps/via/keymap.c b/keyboards/ai03/altair_x/keymaps/via/keymap.c new file mode 100644 index 00000000000..8eb350993da --- /dev/null +++ b/keyboards/ai03/altair_x/keymaps/via/keymap.c @@ -0,0 +1,29 @@ +/* Copyright 2024 ai03 Design Studio */ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT( + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, XXXXXXX, XXXXXXX, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, XXXXXXX, XXXXXXX, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, XXXXXXX, XXXXXXX, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + KC_LGUI, KC_LALT, MO(1), KC_SPC, KC_SPC, MO(2), KC_TAB, KC_DEL + ), + + [1] = LAYOUT( + _______, KC_1, KC_2, KC_3, KC_4, KC_5, _______, _______, KC_6, KC_7, KC_8, KC_9, KC_0, _______, + _______, KC_GRV, KC_LBRC, KC_LCBR, KC_LPRN, KC_MINS, _______, _______, KC_EQL, KC_RPRN, KC_RCBR, KC_RBRC, KC_BSLS, _______, + _______, KC_TILD, _______, _______, _______, KC_UNDS, _______, _______, KC_PLUS, _______, _______, _______, KC_PIPE, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [2] = LAYOUT( + _______, _______, _______, KC_PGUP, _______, _______, _______, _______, _______, _______, KC_UP, _______, _______, _______, + _______, _______, KC_HOME, KC_PGDN, KC_END, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ) + +}; diff --git a/keyboards/ai03/altair_x/keymaps/via/rules.mk b/keyboards/ai03/altair_x/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/ai03/altair_x/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/ai03/altair_x/readme.md b/keyboards/ai03/altair_x/readme.md new file mode 100644 index 00000000000..221a4615562 --- /dev/null +++ b/keyboards/ai03/altair_x/readme.md @@ -0,0 +1,19 @@ +# Altair-X + +![altair-x](https://i.imgur.com/regfKQC.png) + +ai03's third-generation ergonomic keyboard, 4-row variant + +* Keyboard Maintainer: [ai03](https://github.com/ai03-2725) +* Hardware Supported: Altair-X keyboard PCB +* Hardware Availability: Group buy + +Make example for this keyboard (after setting up your build environment): + + make ai03/altair_x:default + +Flashing example for this keyboard: + + make ai03/altair_x:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/ai03/altair_x/rules.mk b/keyboards/ai03/altair_x/rules.mk new file mode 100644 index 00000000000..161ec22b16e --- /dev/null +++ b/keyboards/ai03/altair_x/rules.mk @@ -0,0 +1 @@ +SERIAL_DRIVER = vendor From aec7569a046a79d0b2483357005d662e18f729be Mon Sep 17 00:00:00 2001 From: ai03 Date: Fri, 14 Jun 2024 13:26:21 -0700 Subject: [PATCH 29/46] [Keyboard] Add Altair (#23878) Co-authored-by: jack <0x6a73@protonmail.com> Co-authored-by: Drashna Jaelre --- keyboards/ai03/altair/config.h | 12 ++ keyboards/ai03/altair/keyboard.json | 118 ++++++++++++++++++ .../ai03/altair/keymaps/default/keymap.c | 24 ++++ keyboards/ai03/altair/keymaps/via/keymap.c | 24 ++++ keyboards/ai03/altair/keymaps/via/rules.mk | 1 + keyboards/ai03/altair/readme.md | 19 +++ keyboards/ai03/altair/rules.mk | 1 + 7 files changed, 199 insertions(+) create mode 100644 keyboards/ai03/altair/config.h create mode 100644 keyboards/ai03/altair/keyboard.json create mode 100644 keyboards/ai03/altair/keymaps/default/keymap.c create mode 100644 keyboards/ai03/altair/keymaps/via/keymap.c create mode 100644 keyboards/ai03/altair/keymaps/via/rules.mk create mode 100644 keyboards/ai03/altair/readme.md create mode 100644 keyboards/ai03/altair/rules.mk diff --git a/keyboards/ai03/altair/config.h b/keyboards/ai03/altair/config.h new file mode 100644 index 00000000000..c54b35498b5 --- /dev/null +++ b/keyboards/ai03/altair/config.h @@ -0,0 +1,12 @@ +/* Copyright 2024 ai03 Design Studio */ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#pragma once + +/* VBUS-routed pin for upstream detection */ +#define USB_VBUS_PIN GP0 + +/* RP2040- and hardware-specific config */ +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U +#define PICO_XOSC_STARTUP_DELAY_MULTIPLIER 64 diff --git a/keyboards/ai03/altair/keyboard.json b/keyboards/ai03/altair/keyboard.json new file mode 100644 index 00000000000..9626716cde3 --- /dev/null +++ b/keyboards/ai03/altair/keyboard.json @@ -0,0 +1,118 @@ +{ + "manufacturer": "ai03 Design Studio", + "keyboard_name": "Altair", + "maintainer": "ai03_2725", + "bootloader": "rp2040", + "build": { + "debounce_type": "asym_eager_defer_pk" + }, + "diode_direction": "COL2ROW", + "dynamic_keymap": { + "layer_count": 6 + }, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["GP20", "GP19", "GP18", "GP17", "GP16", "GP21", "GP9"], + "rows": ["GP11", "GP26", "GP27", "GP28", "GP10"] + }, + "processor": "RP2040", + "split": { + "bootmagic": { + "matrix": [5, 0] + }, + "enabled": true, + "handedness": { + "pin": "GP8" + }, + "matrix_pins": { + "right": { + "cols": ["GP15", "GP21", "GP9", "GP13", "GP10", "GP11", "GP12"], + "rows": ["GP5", "GP16", "GP20", "GP28", "GP14"] + } + }, + "soft_serial_pin": "GP29" + }, + "url": "https://ai03.com/", + "usb": { + "device_version": "0.0.1", + "pid": "0x0022", + "vid": "0xA103" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0.38}, + {"matrix": [0, 1], "x": 1, "y": 0.38}, + {"matrix": [0, 2], "x": 2, "y": 0.13}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0.13}, + {"matrix": [0, 5], "x": 5, "y": 0.25}, + {"matrix": [0, 6], "x": 6, "y": 0.5}, + {"matrix": [5, 0], "x": 7.75, "y": 0.5}, + {"matrix": [5, 1], "x": 8.75, "y": 0.25}, + {"matrix": [5, 2], "x": 9.75, "y": 0.13}, + {"matrix": [5, 3], "x": 10.75, "y": 0}, + {"matrix": [5, 4], "x": 11.75, "y": 0.13}, + {"matrix": [5, 5], "x": 12.75, "y": 0.38}, + {"matrix": [5, 6], "x": 13.75, "y": 0.38}, + {"matrix": [1, 0], "x": 0, "y": 1.38}, + {"matrix": [1, 1], "x": 1, "y": 1.38}, + {"matrix": [1, 2], "x": 2, "y": 1.13}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1.13}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [1, 6], "x": 6, "y": 1.5}, + {"matrix": [6, 0], "x": 7.75, "y": 1.5}, + {"matrix": [6, 1], "x": 8.75, "y": 1.25}, + {"matrix": [6, 2], "x": 9.75, "y": 1.13}, + {"matrix": [6, 3], "x": 10.75, "y": 1}, + {"matrix": [6, 4], "x": 11.75, "y": 1.13}, + {"matrix": [6, 5], "x": 12.75, "y": 1.38}, + {"matrix": [6, 6], "x": 13.75, "y": 1.38}, + {"matrix": [2, 0], "x": 0, "y": 2.38}, + {"matrix": [2, 1], "x": 1, "y": 2.38}, + {"matrix": [2, 2], "x": 2, "y": 2.13}, + {"matrix": [2, 3], "x": 3, "y": 2}, + {"matrix": [2, 4], "x": 4, "y": 2.13}, + {"matrix": [2, 5], "x": 5, "y": 2.25}, + {"matrix": [2, 6], "x": 6, "y": 2.5}, + {"matrix": [7, 0], "x": 7.75, "y": 2.5}, + {"matrix": [7, 1], "x": 8.75, "y": 2.25}, + {"matrix": [7, 2], "x": 9.75, "y": 2.13}, + {"matrix": [7, 3], "x": 10.75, "y": 2}, + {"matrix": [7, 4], "x": 11.75, "y": 2.13}, + {"matrix": [7, 5], "x": 12.75, "y": 2.38}, + {"matrix": [7, 6], "x": 13.75, "y": 2.38}, + {"matrix": [3, 0], "x": 0, "y": 3.38}, + {"matrix": [3, 1], "x": 1, "y": 3.38}, + {"matrix": [3, 2], "x": 2, "y": 3.13}, + {"matrix": [3, 3], "x": 3, "y": 3}, + {"matrix": [3, 4], "x": 4, "y": 3.13}, + {"matrix": [3, 5], "x": 5, "y": 3.25}, + {"matrix": [3, 6], "x": 6, "y": 3.5}, + {"matrix": [8, 0], "x": 7.75, "y": 3.5}, + {"matrix": [8, 1], "x": 8.75, "y": 3.25}, + {"matrix": [8, 2], "x": 9.75, "y": 3.13}, + {"matrix": [8, 3], "x": 10.75, "y": 3}, + {"matrix": [8, 4], "x": 11.75, "y": 3.13}, + {"matrix": [8, 5], "x": 12.75, "y": 3.38}, + {"matrix": [8, 6], "x": 13.75, "y": 3.38}, + {"matrix": [4, 3], "x": 2.71, "y": 4.13}, + {"matrix": [4, 4], "x": 3.73, "y": 4.16}, + {"matrix": [4, 5], "x": 4.74, "y": 4.36}, + {"matrix": [4, 6], "x": 5.75, "y": 4.72}, + {"matrix": [9, 0], "x": 8, "y": 4.72}, + {"matrix": [9, 1], "x": 9.02, "y": 4.36}, + {"matrix": [9, 2], "x": 10.03, "y": 4.18}, + {"matrix": [9, 3], "x": 11.05, "y": 4.13} + ] + } + } +} diff --git a/keyboards/ai03/altair/keymaps/default/keymap.c b/keyboards/ai03/altair/keymaps/default/keymap.c new file mode 100644 index 00000000000..038b2b823dd --- /dev/null +++ b/keyboards/ai03/altair/keymaps/default/keymap.c @@ -0,0 +1,24 @@ +/* Copyright 2024 ai03 Design Studio */ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MINS, KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_CAPS, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_LPRN, KC_RPRN, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_GRV, KC_PSCR, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + KC_LGUI, KC_LALT, MO(1), KC_SPC, KC_SPC, MO(1), KC_TAB, KC_DEL + ), + + [1] = LAYOUT( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, + _______, _______, _______, KC_PGUP, _______, _______, _______, _______, _______, _______, KC_UP, _______, _______, _______, + _______, _______, KC_HOME, KC_PGDN, KC_END, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ) + +}; diff --git a/keyboards/ai03/altair/keymaps/via/keymap.c b/keyboards/ai03/altair/keymaps/via/keymap.c new file mode 100644 index 00000000000..038b2b823dd --- /dev/null +++ b/keyboards/ai03/altair/keymaps/via/keymap.c @@ -0,0 +1,24 @@ +/* Copyright 2024 ai03 Design Studio */ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MINS, KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_CAPS, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_LPRN, KC_RPRN, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_GRV, KC_PSCR, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + KC_LGUI, KC_LALT, MO(1), KC_SPC, KC_SPC, MO(1), KC_TAB, KC_DEL + ), + + [1] = LAYOUT( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, + _______, _______, _______, KC_PGUP, _______, _______, _______, _______, _______, _______, KC_UP, _______, _______, _______, + _______, _______, KC_HOME, KC_PGDN, KC_END, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ) + +}; diff --git a/keyboards/ai03/altair/keymaps/via/rules.mk b/keyboards/ai03/altair/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/ai03/altair/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/ai03/altair/readme.md b/keyboards/ai03/altair/readme.md new file mode 100644 index 00000000000..959759d9454 --- /dev/null +++ b/keyboards/ai03/altair/readme.md @@ -0,0 +1,19 @@ +# Altair + +![altair](https://i.imgur.com/O9UXaCO.png) + +ai03's third-generation ergonomic keyboard, 5-row variant + +* Keyboard Maintainer: [ai03](https://github.com/ai03-2725) +* Hardware Supported: Altair keyboard PCB +* Hardware Availability: Group buy + +Make example for this keyboard (after setting up your build environment): + + make ai03/altair:default + +Flashing example for this keyboard: + + make ai03/altair:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/ai03/altair/rules.mk b/keyboards/ai03/altair/rules.mk new file mode 100644 index 00000000000..161ec22b16e --- /dev/null +++ b/keyboards/ai03/altair/rules.mk @@ -0,0 +1 @@ +SERIAL_DRIVER = vendor From d4654ab8934f795bbfc294f5b128a94aaa645a78 Mon Sep 17 00:00:00 2001 From: Ryan Date: Sat, 15 Jun 2024 07:58:13 +1000 Subject: [PATCH 30/46] Various keyboard fixes (#23919) --- .../eason/meow65/{info.json => keyboard.json} | 0 keyboards/eason/meow65/rules.mk | 1 - .../marek128b/ergosplit44/keyboard.json | 94 ++++++------ .../rev3_4rows/{info.json => keyboard.json} | 0 .../rev3_5rows/{info.json => keyboard.json} | 0 .../irispad/rev8/{info.json => keyboard.json} | 0 keyboards/meetlab/kalice/keyboard.json | 142 +++++++++--------- .../moky/moky67/{info.json => keyboard.json} | 0 keyboards/moky/moky67/rules.mk | 1 - .../75/iso/{info.json => keyboard.json} | 0 keyboards/projectd/75/iso/rules.mk | 1 - .../h4ckb0ard/{info.json => keyboard.json} | 0 keyboards/rot13labs/h4ckb0ard/rules.mk | 1 - .../sleepy_keeb/{info.json => keyboard.json} | 0 .../sleepy_craft_studios/sleepy_keeb/rules.mk | 1 - .../smart68/{info.json => keyboard.json} | 0 keyboards/smart68/rules.mk | 1 - .../cycle7/{info.json => keyboard.json} | 0 keyboards/vertex/cycle7/rules.mk | 1 - .../{info.json => keyboard.json} | 0 keyboards/viktus/tx_roundup_pad/rules.mk | 1 - 21 files changed, 118 insertions(+), 126 deletions(-) rename keyboards/eason/meow65/{info.json => keyboard.json} (100%) delete mode 100644 keyboards/eason/meow65/rules.mk rename keyboards/helix/rev3_4rows/{info.json => keyboard.json} (100%) rename keyboards/helix/rev3_5rows/{info.json => keyboard.json} (100%) rename keyboards/keebio/irispad/rev8/{info.json => keyboard.json} (100%) rename keyboards/moky/moky67/{info.json => keyboard.json} (100%) delete mode 100644 keyboards/moky/moky67/rules.mk rename keyboards/projectd/75/iso/{info.json => keyboard.json} (100%) delete mode 100644 keyboards/projectd/75/iso/rules.mk rename keyboards/rot13labs/h4ckb0ard/{info.json => keyboard.json} (100%) delete mode 100644 keyboards/rot13labs/h4ckb0ard/rules.mk rename keyboards/sleepy_craft_studios/sleepy_keeb/{info.json => keyboard.json} (100%) delete mode 100644 keyboards/sleepy_craft_studios/sleepy_keeb/rules.mk rename keyboards/smart68/{info.json => keyboard.json} (100%) delete mode 100644 keyboards/smart68/rules.mk rename keyboards/vertex/cycle7/{info.json => keyboard.json} (100%) delete mode 100644 keyboards/vertex/cycle7/rules.mk rename keyboards/viktus/tx_roundup_pad/{info.json => keyboard.json} (100%) delete mode 100644 keyboards/viktus/tx_roundup_pad/rules.mk diff --git a/keyboards/eason/meow65/info.json b/keyboards/eason/meow65/keyboard.json similarity index 100% rename from keyboards/eason/meow65/info.json rename to keyboards/eason/meow65/keyboard.json diff --git a/keyboards/eason/meow65/rules.mk b/keyboards/eason/meow65/rules.mk deleted file mode 100644 index 6e7633bfe01..00000000000 --- a/keyboards/eason/meow65/rules.mk +++ /dev/null @@ -1 +0,0 @@ -# This file intentionally left blank diff --git a/keyboards/handwired/marek128b/ergosplit44/keyboard.json b/keyboards/handwired/marek128b/ergosplit44/keyboard.json index 8e0c71fc06f..f9a88576a7d 100644 --- a/keyboards/handwired/marek128b/ergosplit44/keyboard.json +++ b/keyboards/handwired/marek128b/ergosplit44/keyboard.json @@ -107,57 +107,57 @@ "layouts": { "LAYOUT": { "layout": [ - {"label":"tab", "matrix": [0, 0],"x":0, "y":1.25}, - {"label":"Q", "matrix": [0, 1],"x":1, "y":1.25}, - {"label":"W", "matrix": [0, 2],"x":2, "y":0.75}, - {"label":"E", "matrix": [0, 3],"x":3, "y":0.5}, - {"label":"R", "matrix": [0, 4],"x":4, "y":0.75}, - {"label":"T", "matrix": [0, 5],"x":5, "y":1}, - - {"label":"Y", "matrix": [0, 6],"x":9.75, "y":1}, - {"label":"U", "matrix": [0, 7],"x":10.75, "y":0.75}, - {"label":"I", "matrix": [0, 8],"x":11.75, "y":0.5}, - {"label":"O", "matrix": [0, 9],"x":12.75, "y":0.75}, - {"label":"P", "matrix": [0, 10],"x":13.75, "y":1.25}, - {"label":"\u00dc", "matrix": [0, 11],"x":14.75, "y":1.25}, + {"matrix": [0, 0],"x": 0, "y": 0.75}, + {"matrix": [0, 1],"x": 1, "y": 0.75}, + {"matrix": [0, 2],"x": 2, "y": 0.25}, + {"matrix": [0, 3],"x": 3, "y": 0}, + {"matrix": [0, 4],"x": 4, "y": 0.25}, + {"matrix": [0, 5],"x": 5, "y": 0.5}, - {"label":"back-space", "matrix": [1, 0],"x":0, "y":2.25}, - {"label":"A", "matrix": [1, 1],"x":1, "y":2.25}, - {"label":"S", "matrix": [1, 2],"x":2, "y":1.75}, - {"label":"D", "matrix": [1, 3],"x":3, "y":1.5}, - {"label":"F", "matrix": [1, 4],"x":4, "y":1.75}, - {"label":"G", "matrix": [1, 5],"x":5, "y":2}, + {"matrix": [0, 6],"x": 8, "y": 0.5}, + {"matrix": [0, 7],"x": 9, "y": 0.25}, + {"matrix": [0, 8],"x": 10, "y": 0}, + {"matrix": [0, 9],"x": 11, "y": 0.25}, + {"matrix": [0, 10],"x": 12, "y": 0.75}, + {"matrix": [0, 11],"x": 13, "y": 0.75}, - {"label":"H", "matrix": [1, 6],"x":9.75, "y":2}, - {"label":"J", "matrix": [1, 7],"x":10.75, "y":1.75}, - {"label":"K", "matrix": [1, 8],"x":11.75, "y":1.5}, - {"label":"L", "matrix": [1, 9],"x":12.75, "y":1.75}, - {"label":"\u00d6", "matrix": [1, 10],"x":13.75, "y":2.25}, - {"label":"\u00c4", "matrix": [1, 11],"x":14.75, "y":2.25}, - - {"label":"shift", "matrix": [2, 0],"x":0, "y":3.25}, - {"label":"Z", "matrix": [2, 1],"x":1, "y":3.25}, - {"label":"X", "matrix": [2, 2],"x":2, "y":2.75}, - {"label":"C", "matrix": [2, 3],"x":3, "y":2.5}, - {"label":"V", "matrix": [2, 4],"x":4, "y":2.75}, - {"label":"B", "matrix": [2, 5],"x":5, "y":3}, - - {"label":"N", "matrix": [2, 6],"x":9.75, "y":3}, - {"label":"M", "matrix": [2, 7],"x":10.75, "y":2.75}, - {"label":"<", "matrix": [2, 8],"x":11.75, "y":2.5}, - {"label":":", "matrix": [2, 9],"x":12.75, "y":2.75}, - {"label":"_", "matrix": [2, 10],"x":13.75, "y":3.25}, - {"label":"Shift", "matrix": [2, 11],"x":14.75, "y":3.25}, + {"matrix": [1, 0],"x": 0, "y": 1.75}, + {"matrix": [1, 1],"x": 1, "y": 1.75}, + {"matrix": [1, 2],"x": 2, "y": 1.25}, + {"matrix": [1, 3],"x": 3, "y": 1}, + {"matrix": [1, 4],"x": 4, "y": 1.25}, + {"matrix": [1, 5],"x": 5, "y": 1.5}, - {"label":"L2", "matrix": [3, 2],"x":-3.5, "y":4.5}, - {"label":"Alt", "matrix": [3, 3],"x":-2.25, "y":7.25}, - {"label":"Strg", "matrix": [3, 4],"x":-1.0, "y":7.25}, - {"label":"Space", "matrix": [3, 5],"x":0, "y":7}, + {"matrix": [1, 6],"x": 8, "y": 1.5}, + {"matrix": [1, 7],"x": 9, "y": 1.25}, + {"matrix": [1, 8],"x": 10, "y": 1}, + {"matrix": [1, 9],"x": 11, "y": 1.25}, + {"matrix": [1, 10],"x": 12, "y": 1.75}, + {"matrix": [1, 11],"x": 13, "y": 1.75}, - {"label":"Space", "matrix": [3, 6],"x":-1.0, "y":8.5}, - {"label":"Strg", "matrix": [3, 7],"x":0, "y":8.75}, - {"label":"AltGr", "matrix": [3, 8],"x":1.25, "y":8.75}, - {"label":"L1", "matrix": [3, 9],"x":2.5, "y":5.75} + {"matrix": [2, 0],"x": 0, "y": 2.75}, + {"matrix": [2, 1],"x": 1, "y": 2.75}, + {"matrix": [2, 2],"x": 2, "y": 2.25}, + {"matrix": [2, 3],"x": 3, "y": 2}, + {"matrix": [2, 4],"x": 4, "y": 2.25}, + {"matrix": [2, 5],"x": 5, "y": 2.5}, + + {"matrix": [2, 6],"x": 8, "y": 2.5}, + {"matrix": [2, 7],"x": 9, "y": 2.25}, + {"matrix": [2, 8],"x": 10, "y": 2}, + {"matrix": [2, 9],"x": 11, "y": 2.25}, + {"matrix": [2, 10],"x": 12, "y": 2.75}, + {"matrix": [2, 11],"x": 13, "y": 2.75}, + + {"matrix": [3, 2],"x": 2.5, "y": 4}, + {"matrix": [3, 3],"x": 3.5, "y": 4}, + {"matrix": [3, 4],"x": 4.5, "y": 4}, + {"matrix": [3, 5],"x": 5.5, "y": 4}, + + {"matrix": [3, 6],"x": 7.5, "y": 4}, + {"matrix": [3, 7],"x": 8.5, "y": 4}, + {"matrix": [3, 8],"x": 9.5, "y": 4}, + {"matrix": [3, 9],"x": 10.5, "y": 4} ] } } diff --git a/keyboards/helix/rev3_4rows/info.json b/keyboards/helix/rev3_4rows/keyboard.json similarity index 100% rename from keyboards/helix/rev3_4rows/info.json rename to keyboards/helix/rev3_4rows/keyboard.json diff --git a/keyboards/helix/rev3_5rows/info.json b/keyboards/helix/rev3_5rows/keyboard.json similarity index 100% rename from keyboards/helix/rev3_5rows/info.json rename to keyboards/helix/rev3_5rows/keyboard.json diff --git a/keyboards/keebio/irispad/rev8/info.json b/keyboards/keebio/irispad/rev8/keyboard.json similarity index 100% rename from keyboards/keebio/irispad/rev8/info.json rename to keyboards/keebio/irispad/rev8/keyboard.json diff --git a/keyboards/meetlab/kalice/keyboard.json b/keyboards/meetlab/kalice/keyboard.json index 5cb46eb9cf5..5e53fe49049 100644 --- a/keyboards/meetlab/kalice/keyboard.json +++ b/keyboards/meetlab/kalice/keyboard.json @@ -44,77 +44,77 @@ "layouts": { "LAYOUT": { "layout": [ - {"matrix": [0, 0], "x": 0.45, "y": 0}, - {"matrix": [0, 1], "x": 1.75, "y": 0}, - {"matrix": [0, 2], "x": 2.75, "y": 0}, - {"matrix": [0, 3], "x": 3.75, "y": 0}, - {"matrix": [0, 4], "x": 4.75, "y": 0}, - {"matrix": [0, 5], "x": 5.75, "y": 0}, - {"matrix": [0, 6], "x": 6.75, "y": 0}, - {"matrix": [0, 7], "x": 7.75, "y": 0}, - {"matrix": [0, 8], "x": 8.75, "y": 0}, - {"matrix": [0, 9], "x": 9.75, "y": 0}, - {"matrix": [0, 10], "x": 10.75, "y": 0}, - {"matrix": [0, 11], "x": 11.75, "y": 0}, - {"matrix": [0, 12], "x": 12.75, "y": 0}, - {"matrix": [0, 13], "x": 13.75, "y": 0}, - {"matrix": [0, 14], "x": 14.75, "y": 0, "w": 2}, - {"matrix": [0, 15], "x": 16.75, "y": 0}, - {"matrix": [1, 0], "x": 0.3, "y": 1}, - {"matrix": [1, 1], "x": 1.5, "y": 1, "w": 1.5}, - {"matrix": [1, 2], "x": 3, "y": 1}, - {"matrix": [1, 3], "x": 4, "y": 1}, - {"matrix": [1, 4], "x": 5, "y": 1}, - {"matrix": [1, 5], "x": 6, "y": 1}, - {"matrix": [1, 6], "x": 7, "y": 1}, - {"matrix": [1, 7], "x": 8, "y": 1}, - {"matrix": [1, 8], "x": 9, "y": 1}, - {"matrix": [1, 9], "x": 10, "y": 1}, - {"matrix": [1, 10], "x": 11, "y": 1}, - {"matrix": [1, 11], "x": 12, "y": 1}, - {"matrix": [1, 12], "x": 13, "y": 1}, - {"matrix": [1, 13], "x": 14, "y": 1}, - {"matrix": [1, 14], "x": 15, "y": 1, "w": 1.5}, - {"matrix": [1, 15], "x": 16.5, "y": 1}, - {"matrix": [2, 0], "x": 0.15, "y": 2}, - {"matrix": [2, 1], "x": 1.4, "y": 2, "w": 1.75}, - {"matrix": [2, 2], "x": 3.15, "y": 2}, - {"matrix": [2, 3], "x": 4.15, "y": 2}, - {"matrix": [2, 4], "x": 5.15, "y": 2}, - {"matrix": [2, 5], "x": 6.15, "y": 2}, - {"matrix": [2, 6], "x": 7.15, "y": 2}, - {"matrix": [2, 7], "x": 8.15, "y": 2}, - {"matrix": [2, 8], "x": 9.15, "y": 2}, - {"matrix": [2, 9], "x": 10.15, "y": 2}, - {"matrix": [2, 10], "x": 11.15, "y": 2}, - {"matrix": [2, 11], "x": 12.15, "y": 2}, - {"matrix": [2, 12], "x": 13.15, "y": 2}, - {"matrix": [2, 13], "x": 14.15, "y": 2, "w": 2.25}, - {"matrix": [2, 15], "x": 16.4, "y": 2}, - {"matrix": [3, 1], "x": 1.25, "y": 3, "w": 2.25}, - {"matrix": [3, 2], "x": 3.5, "y": 3}, - {"matrix": [3, 3], "x": 4.5, "y": 3}, - {"matrix": [3, 4], "x": 5.5, "y": 3}, - {"matrix": [3, 5], "x": 6.5, "y": 3}, - {"matrix": [3, 6], "x": 7.5, "y": 3}, - {"matrix": [3, 7], "x": 8.5, "y": 3}, - {"matrix": [3, 8], "x": 9.5, "y": 3}, - {"matrix": [3, 9], "x": 10.5, "y": 3}, - {"matrix": [3, 10], "x": 11.5, "y": 3}, - {"matrix": [3, 11], "x": 12.5, "y": 3}, - {"matrix": [3, 12], "x": 13.5, "y": 3}, - {"matrix": [3, 13], "x": 14.5, "y": 3, "w": 1.75}, - {"matrix": [3, 14], "x": 16.25, "y": 3}, - {"matrix": [4, 0], "x": 1.25, "y": 4, "w": 1.25}, - {"matrix": [4, 1], "x": 2.5, "y": 4, "w": 1.25}, - {"matrix": [4, 2], "x": 3.75, "y": 4, "w": 1.5}, - {"matrix": [4, 3], "x": 5.25, "y": 4, "w": 2.25}, - {"matrix": [4, 10], "x": 7.5, "y": 4, "w": 2.75}, - {"matrix": [4, 11], "x": 10.25, "y": 4, "w": 1.5}, - {"matrix": [4, 12], "x": 14, "y": 4, "w": 1.25}, - {"matrix": [4, 13], "x": 15.25, "y": 4}, - {"matrix": [4, 14], "x": 16.25, "y": 4}, - {"matrix": [4, 15], "x": 17.25, "y": 4} + {"matrix": [0, 0], "x": 0.3, "y": 0}, + {"matrix": [0, 1], "x": 1.6, "y": 0}, + {"matrix": [0, 2], "x": 2.6, "y": 0}, + {"matrix": [0, 3], "x": 3.6, "y": 0}, + {"matrix": [0, 4], "x": 4.6, "y": 0}, + {"matrix": [0, 5], "x": 5.6, "y": 0}, + {"matrix": [0, 6], "x": 6.6, "y": 0}, + {"matrix": [0, 7], "x": 7.6, "y": 0}, + {"matrix": [0, 8], "x": 8.6, "y": 0}, + {"matrix": [0, 9], "x": 9.6, "y": 0}, + {"matrix": [0, 10], "x": 10.6, "y": 0}, + {"matrix": [0, 11], "x": 11.6, "y": 0}, + {"matrix": [0, 12], "x": 12.6, "y": 0}, + {"matrix": [0, 13], "x": 13.6, "y": 0}, + {"matrix": [0, 14], "x": 14.6, "y": 0, "w": 2}, + {"matrix": [0, 15], "x": 16.6, "y": 0}, + {"matrix": [1, 0], "x": 0.15, "y": 1}, + {"matrix": [1, 1], "x": 1.35, "y": 1, "w": 1.5}, + {"matrix": [1, 2], "x": 2.85, "y": 1}, + {"matrix": [1, 3], "x": 3.85, "y": 1}, + {"matrix": [1, 4], "x": 4.85, "y": 1}, + {"matrix": [1, 5], "x": 5.85, "y": 1}, + {"matrix": [1, 6], "x": 6.85, "y": 1}, + {"matrix": [1, 7], "x": 7.85, "y": 1}, + {"matrix": [1, 8], "x": 8.85, "y": 1}, + {"matrix": [1, 9], "x": 9.85, "y": 1}, + {"matrix": [1, 10], "x": 10.85, "y": 1}, + {"matrix": [1, 11], "x": 11.85, "y": 1}, + {"matrix": [1, 12], "x": 12.85, "y": 1}, + {"matrix": [1, 13], "x": 13.85, "y": 1}, + {"matrix": [1, 14], "x": 14.85, "y": 1, "w": 1.5}, + {"matrix": [1, 15], "x": 16.35, "y": 1}, + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1.25, "y": 2, "w": 1.75}, + {"matrix": [2, 2], "x": 3, "y": 2}, + {"matrix": [2, 3], "x": 4, "y": 2}, + {"matrix": [2, 4], "x": 5, "y": 2}, + {"matrix": [2, 5], "x": 6, "y": 2}, + {"matrix": [2, 6], "x": 7, "y": 2}, + {"matrix": [2, 7], "x": 8, "y": 2}, + {"matrix": [2, 8], "x": 9, "y": 2}, + {"matrix": [2, 9], "x": 10, "y": 2}, + {"matrix": [2, 10], "x": 11, "y": 2}, + {"matrix": [2, 11], "x": 12, "y": 2}, + {"matrix": [2, 12], "x": 13, "y": 2}, + {"matrix": [2, 13], "x": 14, "y": 2, "w": 2.25}, + {"matrix": [2, 15], "x": 16.25, "y": 2}, + {"matrix": [3, 1], "x": 1.1, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 3.35, "y": 3}, + {"matrix": [3, 3], "x": 4.35, "y": 3}, + {"matrix": [3, 4], "x": 5.35, "y": 3}, + {"matrix": [3, 5], "x": 6.35, "y": 3}, + {"matrix": [3, 6], "x": 7.35, "y": 3}, + {"matrix": [3, 7], "x": 8.35, "y": 3}, + {"matrix": [3, 8], "x": 9.35, "y": 3}, + {"matrix": [3, 9], "x": 10.35, "y": 3}, + {"matrix": [3, 10], "x": 11.35, "y": 3}, + {"matrix": [3, 11], "x": 12.35, "y": 3}, + {"matrix": [3, 12], "x": 13.35, "y": 3}, + {"matrix": [3, 13], "x": 14.35, "y": 3, "w": 1.75}, + {"matrix": [3, 14], "x": 16.1, "y": 3}, + {"matrix": [4, 0], "x": 1.1, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 2.35, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 3.6, "y": 4, "w": 1.5}, + {"matrix": [4, 3], "x": 5.1, "y": 4, "w": 2.25}, + {"matrix": [4, 10], "x": 7.35, "y": 4, "w": 2.75}, + {"matrix": [4, 11], "x": 10.1, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 13.85, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 15.1, "y": 4}, + {"matrix": [4, 14], "x": 16.1, "y": 4}, + {"matrix": [4, 15], "x": 17.1, "y": 4} ] } } diff --git a/keyboards/moky/moky67/info.json b/keyboards/moky/moky67/keyboard.json similarity index 100% rename from keyboards/moky/moky67/info.json rename to keyboards/moky/moky67/keyboard.json diff --git a/keyboards/moky/moky67/rules.mk b/keyboards/moky/moky67/rules.mk deleted file mode 100644 index 7ff128fa692..00000000000 --- a/keyboards/moky/moky67/rules.mk +++ /dev/null @@ -1 +0,0 @@ -# This file intentionally left blank \ No newline at end of file diff --git a/keyboards/projectd/75/iso/info.json b/keyboards/projectd/75/iso/keyboard.json similarity index 100% rename from keyboards/projectd/75/iso/info.json rename to keyboards/projectd/75/iso/keyboard.json diff --git a/keyboards/projectd/75/iso/rules.mk b/keyboards/projectd/75/iso/rules.mk deleted file mode 100644 index 6e7633bfe01..00000000000 --- a/keyboards/projectd/75/iso/rules.mk +++ /dev/null @@ -1 +0,0 @@ -# This file intentionally left blank diff --git a/keyboards/rot13labs/h4ckb0ard/info.json b/keyboards/rot13labs/h4ckb0ard/keyboard.json similarity index 100% rename from keyboards/rot13labs/h4ckb0ard/info.json rename to keyboards/rot13labs/h4ckb0ard/keyboard.json diff --git a/keyboards/rot13labs/h4ckb0ard/rules.mk b/keyboards/rot13labs/h4ckb0ard/rules.mk deleted file mode 100644 index 7ff128fa692..00000000000 --- a/keyboards/rot13labs/h4ckb0ard/rules.mk +++ /dev/null @@ -1 +0,0 @@ -# This file intentionally left blank \ No newline at end of file diff --git a/keyboards/sleepy_craft_studios/sleepy_keeb/info.json b/keyboards/sleepy_craft_studios/sleepy_keeb/keyboard.json similarity index 100% rename from keyboards/sleepy_craft_studios/sleepy_keeb/info.json rename to keyboards/sleepy_craft_studios/sleepy_keeb/keyboard.json diff --git a/keyboards/sleepy_craft_studios/sleepy_keeb/rules.mk b/keyboards/sleepy_craft_studios/sleepy_keeb/rules.mk deleted file mode 100644 index 6e7633bfe01..00000000000 --- a/keyboards/sleepy_craft_studios/sleepy_keeb/rules.mk +++ /dev/null @@ -1 +0,0 @@ -# This file intentionally left blank diff --git a/keyboards/smart68/info.json b/keyboards/smart68/keyboard.json similarity index 100% rename from keyboards/smart68/info.json rename to keyboards/smart68/keyboard.json diff --git a/keyboards/smart68/rules.mk b/keyboards/smart68/rules.mk deleted file mode 100644 index 6e7633bfe01..00000000000 --- a/keyboards/smart68/rules.mk +++ /dev/null @@ -1 +0,0 @@ -# This file intentionally left blank diff --git a/keyboards/vertex/cycle7/info.json b/keyboards/vertex/cycle7/keyboard.json similarity index 100% rename from keyboards/vertex/cycle7/info.json rename to keyboards/vertex/cycle7/keyboard.json diff --git a/keyboards/vertex/cycle7/rules.mk b/keyboards/vertex/cycle7/rules.mk deleted file mode 100644 index 6e7633bfe01..00000000000 --- a/keyboards/vertex/cycle7/rules.mk +++ /dev/null @@ -1 +0,0 @@ -# This file intentionally left blank diff --git a/keyboards/viktus/tx_roundup_pad/info.json b/keyboards/viktus/tx_roundup_pad/keyboard.json similarity index 100% rename from keyboards/viktus/tx_roundup_pad/info.json rename to keyboards/viktus/tx_roundup_pad/keyboard.json diff --git a/keyboards/viktus/tx_roundup_pad/rules.mk b/keyboards/viktus/tx_roundup_pad/rules.mk deleted file mode 100644 index 6e7633bfe01..00000000000 --- a/keyboards/viktus/tx_roundup_pad/rules.mk +++ /dev/null @@ -1 +0,0 @@ -# This file intentionally left blank From 0262161914133e6abfc306e675dbac3ba816a6ee Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Sat, 15 Jun 2024 19:37:47 +1000 Subject: [PATCH 31/46] [CLI] Don't `exit()` when certain exceptions occur. (#23442) --- lib/python/qmk/cli/find.py | 3 +++ .../qmk/cli/generate/autocorrect_data.py | 12 +++++------ lib/python/qmk/cli/mass_compile.py | 3 +++ lib/python/qmk/cli/userspace/compile.py | 3 +++ lib/python/qmk/cli/userspace/list.py | 3 +++ lib/python/qmk/cli/via2json.py | 10 +++++++-- lib/python/qmk/commands.py | 3 ++- lib/python/qmk/info.py | 3 ++- lib/python/qmk/json_schema.py | 6 ++++-- lib/python/qmk/util.py | 21 +++++++++++++++++++ 10 files changed, 55 insertions(+), 12 deletions(-) diff --git a/lib/python/qmk/cli/find.py b/lib/python/qmk/cli/find.py index 8f3a29c90ce..bfed91e22cd 100644 --- a/lib/python/qmk/cli/find.py +++ b/lib/python/qmk/cli/find.py @@ -2,6 +2,7 @@ """ from milc import cli from qmk.search import filter_help, search_keymap_targets +from qmk.util import maybe_exit_config @cli.argument( @@ -19,6 +20,8 @@ from qmk.search import filter_help, search_keymap_targets def find(cli): """Search through all keyboards and keymaps for a given search criteria. """ + maybe_exit_config(should_exit=False, should_reraise=True) + targets = search_keymap_targets([('all', cli.config.find.keymap)], cli.args.filter) for target in sorted(targets, key=lambda t: (t.keyboard, t.keymap)): print(f'{target}') diff --git a/lib/python/qmk/cli/generate/autocorrect_data.py b/lib/python/qmk/cli/generate/autocorrect_data.py index b11c66d95d2..01a29b46fe9 100644 --- a/lib/python/qmk/cli/generate/autocorrect_data.py +++ b/lib/python/qmk/cli/generate/autocorrect_data.py @@ -27,7 +27,6 @@ Example: For full documentation, see QMK Docs """ -import sys import textwrap from typing import Any, Dict, Iterator, List, Tuple @@ -38,6 +37,7 @@ from qmk.constants import GPL2_HEADER_C_LIKE, GENERATED_HEADER_C_LIKE from qmk.keyboard import keyboard_completer, keyboard_folder from qmk.keymap import keymap_completer, locate_keymap from qmk.path import normpath +from qmk.util import maybe_exit KC_A = 4 KC_SPC = 0x2c @@ -88,16 +88,16 @@ def parse_file(file_name: str) -> List[Tuple[str, str]]: # Check that `typo` is valid. if not (all([c in TYPO_CHARS for c in typo])): cli.log.error('{fg_red}Error:%d:{fg_reset} Typo "{fg_cyan}%s{fg_reset}" has characters other than a-z, \' and :.', line_number, typo) - sys.exit(1) + maybe_exit(1) for other_typo in typos: if typo in other_typo or other_typo in typo: cli.log.error('{fg_red}Error:%d:{fg_reset} Typos may not be substrings of one another, otherwise the longer typo would never trigger: "{fg_cyan}%s{fg_reset}" vs. "{fg_cyan}%s{fg_reset}".', line_number, typo, other_typo) - sys.exit(1) + maybe_exit(1) if len(typo) < 5: cli.log.warning('{fg_yellow}Warning:%d:{fg_reset} It is suggested that typos are at least 5 characters long to avoid false triggers: "{fg_cyan}%s{fg_reset}"', line_number, typo) if len(typo) > 127: cli.log.error('{fg_red}Error:%d:{fg_reset} Typo exceeds 127 chars: "{fg_cyan}%s{fg_reset}"', line_number, typo) - sys.exit(1) + maybe_exit(1) check_typo_against_dictionary(typo, line_number, correct_words) @@ -136,7 +136,7 @@ def parse_file_lines(file_name: str) -> Iterator[Tuple[int, str, str]]: tokens = [token.strip() for token in line.split('->', 1)] if len(tokens) != 2 or not tokens[0]: print(f'Error:{line_number}: Invalid syntax: "{line}"') - sys.exit(1) + maybe_exit(1) typo, correction = tokens typo = typo.lower() # Force typos to lowercase. @@ -237,7 +237,7 @@ def encode_link(link: Dict[str, Any]) -> List[int]: byte_offset = link['byte_offset'] if not (0 <= byte_offset <= 0xffff): cli.log.error('{fg_red}Error:{fg_reset} The autocorrection table is too large, a node link exceeds 64KB limit. Try reducing the autocorrection dict to fewer entries.') - sys.exit(1) + maybe_exit(1) return [byte_offset & 255, byte_offset >> 8] diff --git a/lib/python/qmk/cli/mass_compile.py b/lib/python/qmk/cli/mass_compile.py index 7db704d6c25..d13afc61432 100755 --- a/lib/python/qmk/cli/mass_compile.py +++ b/lib/python/qmk/cli/mass_compile.py @@ -12,6 +12,7 @@ from qmk.constants import QMK_FIRMWARE from qmk.commands import find_make, get_make_parallel_args, build_environment from qmk.search import search_keymap_targets, search_make_targets from qmk.build_targets import BuildTarget, JsonKeymapBuildTarget +from qmk.util import maybe_exit_config def mass_compile_targets(targets: List[BuildTarget], clean: bool, dry_run: bool, no_temp: bool, parallel: int, **env): @@ -100,6 +101,8 @@ all: {keyboard_safe}_{keymap_name}_binary def mass_compile(cli): """Compile QMK Firmware against all keyboards. """ + maybe_exit_config(should_exit=False, should_reraise=True) + if len(cli.args.builds) > 0: json_like_targets = list([Path(p) for p in filter(lambda e: Path(e).exists() and Path(e).suffix == '.json', cli.args.builds)]) make_like_targets = list(filter(lambda e: Path(e) not in json_like_targets, cli.args.builds)) diff --git a/lib/python/qmk/cli/userspace/compile.py b/lib/python/qmk/cli/userspace/compile.py index fb320a16f0d..e8cdf6cd971 100644 --- a/lib/python/qmk/cli/userspace/compile.py +++ b/lib/python/qmk/cli/userspace/compile.py @@ -9,6 +9,7 @@ from qmk.userspace import UserspaceDefs from qmk.build_targets import JsonKeymapBuildTarget from qmk.search import search_keymap_targets from qmk.cli.mass_compile import mass_compile_targets +from qmk.util import maybe_exit_config @cli.argument('-t', '--no-temp', arg_only=True, action='store_true', help="Remove temporary files during build.") @@ -22,6 +23,8 @@ def userspace_compile(cli): cli.log.error('Could not determine QMK userspace location. Please run `qmk doctor` or `qmk userspace-doctor` to diagnose.') return False + maybe_exit_config(should_exit=False, should_reraise=True) + userspace = UserspaceDefs(QMK_USERSPACE / 'qmk.json') build_targets = [] diff --git a/lib/python/qmk/cli/userspace/list.py b/lib/python/qmk/cli/userspace/list.py index a63f669dd7b..8689c80a769 100644 --- a/lib/python/qmk/cli/userspace/list.py +++ b/lib/python/qmk/cli/userspace/list.py @@ -10,6 +10,7 @@ from qmk.build_targets import BuildTarget from qmk.keyboard import is_all_keyboards, keyboard_folder from qmk.keymap import is_keymap_target from qmk.search import search_keymap_targets +from qmk.util import maybe_exit_config @cli.argument('-e', '--expand', arg_only=True, action='store_true', help="Expands any use of `all` for either keyboard or keymap.") @@ -19,6 +20,8 @@ def userspace_list(cli): cli.log.error('Could not determine QMK userspace location. Please run `qmk doctor` or `qmk userspace-doctor` to diagnose.') return False + maybe_exit_config(should_exit=False, should_reraise=True) + userspace = UserspaceDefs(QMK_USERSPACE / 'qmk.json') if cli.args.expand: diff --git a/lib/python/qmk/cli/via2json.py b/lib/python/qmk/cli/via2json.py index 77823b5d9d7..73c9a61b3d3 100755 --- a/lib/python/qmk/cli/via2json.py +++ b/lib/python/qmk/cli/via2json.py @@ -69,7 +69,7 @@ def _via_to_keymap(via_backup, keyboard_data, keymap_layout): layout_data = keyboard_data['layouts'].get(keymap_layout) if not layout_data: cli.log.error(f'LAYOUT macro {keymap_layout} is not a valid one for keyboard {cli.args.keyboard}!') - exit(1) + return None layout_data = layout_data['layout'] sorting_hat = list() @@ -118,7 +118,7 @@ def via2json(cli): keymap_layout = cli.args.layout if cli.args.layout else _find_via_layout_macro(cli.args.keyboard) if not keymap_layout: cli.log.error(f"Couldn't find LAYOUT macro for keyboard {cli.args.keyboard}. Please specify it with the '-l' argument.") - exit(1) + return False # Load the VIA backup json with cli.args.filename.open('r') as fd: @@ -126,9 +126,15 @@ def via2json(cli): # Generate keyboard metadata keyboard_data = info_json(cli.args.keyboard) + if not keyboard_data: + cli.log.error(f'LAYOUT macro {keymap_layout} is not a valid one for keyboard {cli.args.keyboard}!') + return False # Get keycode array keymap_data = _via_to_keymap(via_backup, keyboard_data, keymap_layout) + if not keymap_data: + cli.log.error(f'Could not extract valid keycode data from VIA backup matching keyboard {cli.args.keyboard}!') + return False # Convert macros macro_data = list() diff --git a/lib/python/qmk/commands.py b/lib/python/qmk/commands.py index d95ff5f923e..3db8353bfda 100644 --- a/lib/python/qmk/commands.py +++ b/lib/python/qmk/commands.py @@ -11,6 +11,7 @@ import jsonschema from qmk.constants import QMK_USERSPACE, HAS_QMK_USERSPACE from qmk.json_schema import json_load, validate from qmk.keyboard import keyboard_alias_definitions +from qmk.util import maybe_exit def find_make(): @@ -52,7 +53,7 @@ def parse_configurator_json(configurator_file): except jsonschema.ValidationError as e: cli.log.error(f'Invalid JSON keymap: {configurator_file} : {e.message}') - exit(1) + maybe_exit(1) keyboard = user_keymap['keyboard'] aliases = keyboard_alias_definitions() diff --git a/lib/python/qmk/info.py b/lib/python/qmk/info.py index ffc9d57d682..833271c09cc 100644 --- a/lib/python/qmk/info.py +++ b/lib/python/qmk/info.py @@ -14,6 +14,7 @@ from qmk.keyboard import config_h, rules_mk from qmk.commands import parse_configurator_json from qmk.makefile import parse_rules_mk_file from qmk.math import compute +from qmk.util import maybe_exit true_values = ['1', 'on', 'yes'] false_values = ['0', 'off', 'no'] @@ -208,7 +209,7 @@ def _validate(keyboard, info_data): except jsonschema.ValidationError as e: json_path = '.'.join([str(p) for p in e.absolute_path]) cli.log.error('Invalid API data: %s: %s: %s', keyboard, json_path, e.message) - exit(1) + maybe_exit(1) def info_json(keyboard): diff --git a/lib/python/qmk/json_schema.py b/lib/python/qmk/json_schema.py index 1d5f863807f..b11a0ed7ea1 100644 --- a/lib/python/qmk/json_schema.py +++ b/lib/python/qmk/json_schema.py @@ -11,6 +11,8 @@ from copy import deepcopy from milc import cli +from qmk.util import maybe_exit + def _dict_raise_on_duplicates(ordered_pairs): """Reject duplicate keys.""" @@ -38,10 +40,10 @@ def _json_load_impl(json_file, strict=True): except (json.decoder.JSONDecodeError, hjson.HjsonDecodeError) as e: cli.log.error('Invalid JSON encountered attempting to load {fg_cyan}%s{fg_reset}:\n\t{fg_red}%s', json_file, e) - exit(1) + maybe_exit(1) except Exception as e: cli.log.error('Unknown error attempting to load {fg_cyan}%s{fg_reset}:\n\t{fg_red}%s', json_file, e) - exit(1) + maybe_exit(1) def json_load(json_file, strict=True): diff --git a/lib/python/qmk/util.py b/lib/python/qmk/util.py index db7debd5788..0145ab13541 100644 --- a/lib/python/qmk/util.py +++ b/lib/python/qmk/util.py @@ -2,9 +2,30 @@ """ import contextlib import multiprocessing +import sys from milc import cli +maybe_exit_should_exit = True +maybe_exit_reraise = False + + +# Controls whether or not early `exit()` calls should be made +def maybe_exit(rc): + if maybe_exit_should_exit: + sys.exit(rc) + if maybe_exit_reraise: + e = sys.exception() + if e: + raise e + + +def maybe_exit_config(should_exit: bool = True, should_reraise: bool = False): + global maybe_exit_should_exit + global maybe_exit_reraise + maybe_exit_should_exit = should_exit + maybe_exit_reraise = should_reraise + @contextlib.contextmanager def parallelize(): From ad82c4703a4a2e0e5c8d266b2df9e89836b76587 Mon Sep 17 00:00:00 2001 From: David Hoelscher Date: Sat, 15 Jun 2024 23:46:22 -0500 Subject: [PATCH 32/46] [Keyboard] ErgoStrafer RGB (#22936) * adding ergostrafer rgb * removing comment --- keyboards/custommk/ergostrafer_rgb/config.h | 28 +++ keyboards/custommk/ergostrafer_rgb/halconf.h | 30 +++ keyboards/custommk/ergostrafer_rgb/info.json | 189 ++++++++++++++++++ .../ergostrafer_rgb/keymaps/default/keymap.c | 21 ++ .../ergostrafer_rgb/keymaps/default/rules.mk | 1 + .../ergostrafer_rgb/keymaps/via/config.h | 6 + .../ergostrafer_rgb/keymaps/via/keymap.c | 19 ++ .../ergostrafer_rgb/keymaps/via/rules.mk | 2 + keyboards/custommk/ergostrafer_rgb/mcuconf.h | 31 +++ keyboards/custommk/ergostrafer_rgb/readme.md | 27 +++ keyboards/custommk/ergostrafer_rgb/rules.mk | 1 + 11 files changed, 355 insertions(+) create mode 100644 keyboards/custommk/ergostrafer_rgb/config.h create mode 100644 keyboards/custommk/ergostrafer_rgb/halconf.h create mode 100644 keyboards/custommk/ergostrafer_rgb/info.json create mode 100644 keyboards/custommk/ergostrafer_rgb/keymaps/default/keymap.c create mode 100644 keyboards/custommk/ergostrafer_rgb/keymaps/default/rules.mk create mode 100644 keyboards/custommk/ergostrafer_rgb/keymaps/via/config.h create mode 100644 keyboards/custommk/ergostrafer_rgb/keymaps/via/keymap.c create mode 100644 keyboards/custommk/ergostrafer_rgb/keymaps/via/rules.mk create mode 100644 keyboards/custommk/ergostrafer_rgb/mcuconf.h create mode 100644 keyboards/custommk/ergostrafer_rgb/readme.md create mode 100644 keyboards/custommk/ergostrafer_rgb/rules.mk diff --git a/keyboards/custommk/ergostrafer_rgb/config.h b/keyboards/custommk/ergostrafer_rgb/config.h new file mode 100644 index 00000000000..cba40b36d40 --- /dev/null +++ b/keyboards/custommk/ergostrafer_rgb/config.h @@ -0,0 +1,28 @@ +// Copyright 2024 customMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +// FRAM configuration +#define EXTERNAL_EEPROM_SPI_SLAVE_SELECT_PIN B7 +#define EXTERNAL_EEPROM_SPI_CLOCK_DIVISOR 4 // 48MHz / 4 = 12MHz; max supported by MB85R64 is 20MHz + +// SPI configuration +#define SPI_DRIVER SPID1 +#define SPI_SCK_PIN B3 +#define SPI_MOSI_PIN B5 +#define SPI_MISO_PIN B4 + +// Audio configuration +#define AUDIO_PIN B8 +#define AUDIO_PWM_DRIVER PWMD4 +#define AUDIO_PWM_CHANNEL 3 +#define AUDIO_PWM_PAL_MODE 2 +#define AUDIO_STATE_TIMER GPTD5 +#define AUDIO_INIT_DELAY + +#define WS2812_PWM_DRIVER PWMD1 +#define WS2812_PWM_CHANNEL 3 +#define WS2812_PWM_PAL_MODE 1 +#define WS2812_DMA_STREAM STM32_DMA2_STREAM5 +#define WS2812_DMA_CHANNEL 6 diff --git a/keyboards/custommk/ergostrafer_rgb/halconf.h b/keyboards/custommk/ergostrafer_rgb/halconf.h new file mode 100644 index 00000000000..6791d829f9b --- /dev/null +++ b/keyboards/custommk/ergostrafer_rgb/halconf.h @@ -0,0 +1,30 @@ +/* Copyright 2024 customMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define HAL_USE_PWM TRUE + +#define HAL_USE_SPI TRUE + +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD + +#define SERIAL_BUFFERS_SIZE 256 + +// This enables interrupt-driven mode +#define SPI_USE_WAIT TRUE + +#include_next diff --git a/keyboards/custommk/ergostrafer_rgb/info.json b/keyboards/custommk/ergostrafer_rgb/info.json new file mode 100644 index 00000000000..ac058be1a40 --- /dev/null +++ b/keyboards/custommk/ergostrafer_rgb/info.json @@ -0,0 +1,189 @@ +{ + "manufacturer": "customMK", + "keyboard_name": "ErgoStrafer RGB", + "maintainer": "customMK", + "bootloader": "stm32-dfu", + "diode_direction": "ROW2COL", + "dynamic_keymap": { + "layer_count": 32 + }, + "eeprom": { + "driver": "spi" + }, + "encoder": { + "rotary": [ + {"pin_a": "A8", "pin_b": "A4", "resolution": 2}, + {"pin_a": "B12", "pin_b": "B14", "resolution": 2}, + {"pin_a": "B15", "pin_b": "A15", "resolution": 2} + ] + }, + "features": { + "audio": true, + "bootmagic": true, + "encoder": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["B0", "A1", "A2", "A3", "A6", "B6", "B10"], + "rows": ["C13", "C14", "C15", "B1", "A7", "A5"] + }, + "processor": "STM32F411", + "qmk": { + "tap_keycode_delay": 10 + }, + "rgb_matrix": { + "animations": { + "alphas_mods": true, + "band_pinwheel_sat": true, + "band_pinwheel_val": true, + "band_sat": true, + "band_spiral_sat": true, + "band_spiral_val": true, + "band_val": true, + "breathing": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "cycle_up_down": true, + "digital_rain": true, + "dual_beacon": true, + "gradient_left_right": true, + "gradient_up_down": true, + "hue_breathing": true, + "hue_pendulum": true, + "hue_wave": true, + "jellybean_raindrops": true, + "multisplash": true, + "pixel_flow": true, + "pixel_fractal": true, + "pixel_rain": true, + "rainbow_beacon": true, + "rainbow_moving_chevron": true, + "rainbow_pinwheels": true, + "raindrops": true, + "solid_multisplash": true, + "solid_reactive": true, + "solid_reactive_cross": true, + "solid_reactive_multicross": true, + "solid_reactive_multinexus": true, + "solid_reactive_multiwide": true, + "solid_reactive_nexus": true, + "solid_reactive_simple": true, + "solid_reactive_wide": true, + "solid_splash": true, + "splash": true, + "typing_heatmap": true + }, + "center_point": [112, 112], + "driver": "ws2812", + "layout": [ + {"matrix": [0, 1], "x": 32, "y": 45, "flags": 4}, + {"matrix": [0, 2], "x": 57, "y": 40, "flags": 4}, + {"matrix": [0, 3], "x": 83, "y": 38, "flags": 4}, + {"matrix": [0, 4], "x": 109, "y": 40, "flags": 4}, + {"matrix": [0, 5], "x": 134, "y": 45, "flags": 4}, + {"x": 136, "y": 18, "flags": 4}, + {"matrix": [0, 0], "x": 167, "y": 11, "flags": 4}, + {"matrix": [1, 0], "x": 170, "y": 33, "flags": 4}, + {"matrix": [2, 0], "x": 174, "y": 54, "flags": 4}, + {"x": 195, "y": 57, "flags": 4}, + {"x": 211, "y": 81, "flags": 4}, + {"x": 193, "y": 90, "flags": 4}, + {"matrix": [0, 6], "x": 171, "y": 90, "flags": 4}, + {"matrix": [2, 5], "x": 143, "y": 90, "flags": 4}, + {"matrix": [1, 5], "x": 140, "y": 67, "flags": 4}, + {"matrix": [1, 4], "x": 118, "y": 61, "flags": 4}, + {"matrix": [2, 3], "x": 95, "y": 58, "flags": 4}, + {"matrix": [1, 3], "x": 71, "y": 58, "flags": 4}, + {"matrix": [1, 2], "x": 48, "y": 61, "flags": 4}, + {"matrix": [1, 1], "x": 26, "y": 67, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 90, "flags": 4}, + {"matrix": [2, 1], "x": 23, "y": 90, "flags": 4}, + {"matrix": [2, 2], "x": 52, "y": 87, "flags": 4}, + {"matrix": [3, 3], "x": 83, "y": 85, "flags": 4}, + {"matrix": [2, 4], "x": 114, "y": 87, "flags": 4}, + {"matrix": [3, 5], "x": 139, "y": 113, "flags": 4}, + {"matrix": [1, 6], "x": 167, "y": 114, "flags": 4}, + {"x": 207, "y": 112, "flags": 4}, + {"matrix": [5, 6], "x": 224, "y": 146, "flags": 4}, + {"matrix": [3, 6], "x": 184, "y": 147, "flags": 4}, + {"matrix": [2, 6], "x": 156, "y": 147, "flags": 4}, + {"matrix": [4, 5], "x": 127, "y": 135, "flags": 4}, + {"matrix": [3, 4], "x": 111, "y": 112, "flags": 4}, + {"matrix": [4, 3], "x": 83, "y": 112, "flags": 4}, + {"matrix": [3, 2], "x": 55, "y": 112, "flags": 4}, + {"matrix": [3, 1], "x": 20, "y": 114, "flags": 4}, + {"matrix": [4, 1], "x": 15, "y": 138, "flags": 4}, + {"matrix": [5, 1], "x": 14, "y": 162, "flags": 4}, + {"matrix": [4, 2], "x": 52, "y": 137, "flags": 4}, + {"matrix": [5, 3], "x": 83, "y": 139, "flags": 4}, + {"x": 83, "y": 164, "flags": 4}, + {"x": 104, "y": 144, "flags": 4}, + {"matrix": [5, 5], "x": 121, "y": 173, "flags": 4}, + {"matrix": [4, 6], "x": 167, "y": 173, "flags": 4} + ], + "max_brightness": 120, + "sat_steps": 8, + "speed_steps": 10, + "val_steps": 8 + }, + "url": "https://shop.custommk.com/collections/ergostrafer/products/ergostrafer", + "usb": { + "device_version": "1.0.0", + "pid": "0xFAB9", + "vid": "0xF35B" + }, + "ws2812": { + "driver": "pwm", + "pin": "A10" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"label": "F9", "matrix": [0, 0], "x": 7.5, "y": 0}, + {"label": "7", "matrix": [0, 1], "x": 1.5, "y": 1.25}, + {"label": "8", "matrix": [0, 2], "x": 2.5, "y": 1.25}, + {"label": "9", "matrix": [0, 3], "x": 3.5, "y": 1.25}, + {"label": "0", "matrix": [0, 4], "x": 4.5, "y": 1.25}, + {"label": "-", "matrix": [0, 5], "x": 5.5, "y": 1.25}, + {"label": "T", "matrix": [0, 6], "x": 7.25, "y": 3.25, "w": 1.5}, + {"label": "PrtScr", "matrix": [1, 0], "x": 7.5, "y": 1}, + {"label": "1", "matrix": [1, 1], "x": 1, "y": 2.25}, + {"label": "2", "matrix": [1, 2], "x": 2, "y": 2.25}, + {"label": "3", "matrix": [1, 3], "x": 3, "y": 2.25}, + {"label": "5", "matrix": [1, 4], "x": 5, "y": 2.25}, + {"label": "6", "matrix": [1, 5], "x": 6, "y": 2.25}, + {"label": "G", "matrix": [1, 6], "x": 7.25, "y": 4.25, "w": 1.5}, + {"label": "F5", "matrix": [2, 0], "x": 7.5, "y": 2}, + {"label": "Tab", "matrix": [2, 1], "x": 1, "y": 3.5}, + {"label": "Q", "matrix": [2, 2], "x": 2.5, "y": 3.4}, + {"label": "4", "matrix": [2, 3], "x": 4, "y": 2.25}, + {"label": "E", "matrix": [2, 4], "x": 4.5, "y": 3.4}, + {"label": "R", "matrix": [2, 5], "x": 6, "y": 3.3}, + {"label": "B", "matrix": [2, 6], "x": 6.5, "y": 5.75, "w": 1.5}, + {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.5}, + {"label": "L Alt", "matrix": [3, 1], "x": 0.25, "y": 4.75, "w": 1.5}, + {"label": "A", "matrix": [3, 2], "x": 2.5, "y": 4.5}, + {"label": "W", "matrix": [3, 3], "x": 3.5, "y": 3.4}, + {"label": "D", "matrix": [3, 4], "x": 4.5, "y": 4.5}, + {"label": "F", "matrix": [3, 5], "x": 6, "y": 4.3}, + {"label": "P", "matrix": [3, 6], "x": 8, "y": 5.75}, + {"label": "L Shift", "matrix": [4, 1], "x": 0.25, "y": 5.75, "w": 1.5}, + {"label": "Z", "matrix": [4, 2], "x": 2.5, "y": 5.6}, + {"label": "S", "matrix": [4, 3], "x": 3.5, "y": 4.5}, + {"label": "V", "matrix": [4, 5], "x": 5, "y": 5.75, "w": 1.5}, + {"label": "Space", "matrix": [4, 6], "x": 6.5, "y": 6.85, "w": 1.75}, + {"label": "L Ctrl Duck", "matrix": [5, 1], "x": 0.25, "y": 6.75, "w": 1.5}, + {"label": "X", "matrix": [5, 3], "x": 3.5, "y": 5.6}, + {"label": "C", "matrix": [5, 5], "x": 4.75, "y": 6.85, "w": 1.75}, + {"label": "L Ctrl", "matrix": [5, 6], "x": 9.5, "y": 5.75} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/custommk/ergostrafer_rgb/keymaps/default/keymap.c b/keyboards/custommk/ergostrafer_rgb/keymaps/default/keymap.c new file mode 100644 index 00000000000..71a83d4868a --- /dev/null +++ b/keyboards/custommk/ergostrafer_rgb/keymaps/default/keymap.c @@ -0,0 +1,21 @@ +// Copyright 2024 customMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_F9, KC_7, KC_8, KC_9, KC_0, KC_MINUS, KC_T, + KC_PSCR, KC_1, KC_2, KC_3, KC_5, KC_6, KC_G, + KC_F5, KC_TAB, KC_Q, KC_4, KC_E, KC_R, KC_B, + KC_CAPS, KC_LALT, KC_A, KC_W, KC_D, KC_F, KC_P, + KC_LSFT, KC_Z, KC_S, KC_V, KC_SPC, + KC_LCTL, KC_X, KC_C, KC_LCTL + ) +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) } +}; +#endif \ No newline at end of file diff --git a/keyboards/custommk/ergostrafer_rgb/keymaps/default/rules.mk b/keyboards/custommk/ergostrafer_rgb/keymaps/default/rules.mk new file mode 100644 index 00000000000..a40474b4d5c --- /dev/null +++ b/keyboards/custommk/ergostrafer_rgb/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes \ No newline at end of file diff --git a/keyboards/custommk/ergostrafer_rgb/keymaps/via/config.h b/keyboards/custommk/ergostrafer_rgb/keymaps/via/config.h new file mode 100644 index 00000000000..c2dca382777 --- /dev/null +++ b/keyboards/custommk/ergostrafer_rgb/keymaps/via/config.h @@ -0,0 +1,6 @@ +// Copyright 2024 customMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define DYNAMIC_KEYMAP_MACRO_COUNT 128 diff --git a/keyboards/custommk/ergostrafer_rgb/keymaps/via/keymap.c b/keyboards/custommk/ergostrafer_rgb/keymaps/via/keymap.c new file mode 100644 index 00000000000..cddbb912c40 --- /dev/null +++ b/keyboards/custommk/ergostrafer_rgb/keymaps/via/keymap.c @@ -0,0 +1,19 @@ +// Copyright 2024 customMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_F9, KC_7, KC_8, KC_9, KC_0, KC_MINUS, KC_T, + KC_PSCR, KC_1, KC_2, KC_3, KC_5, KC_6, KC_G, + KC_F5, KC_TAB, KC_Q, KC_4, KC_E, KC_R, KC_B, + KC_CAPS, KC_LALT, KC_A, KC_W, KC_D, KC_F, KC_P, + KC_LSFT, KC_Z, KC_S, KC_V, KC_SPC, + KC_LCTL, KC_X, KC_C, KC_LCTL + ) +}; + +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) } +}; \ No newline at end of file diff --git a/keyboards/custommk/ergostrafer_rgb/keymaps/via/rules.mk b/keyboards/custommk/ergostrafer_rgb/keymaps/via/rules.mk new file mode 100644 index 00000000000..4253f570f0b --- /dev/null +++ b/keyboards/custommk/ergostrafer_rgb/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +ENCODER_MAP_ENABLE = yes \ No newline at end of file diff --git a/keyboards/custommk/ergostrafer_rgb/mcuconf.h b/keyboards/custommk/ergostrafer_rgb/mcuconf.h new file mode 100644 index 00000000000..8151abdcba3 --- /dev/null +++ b/keyboards/custommk/ergostrafer_rgb/mcuconf.h @@ -0,0 +1,31 @@ +/* Copyright 2024 customMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include_next + +// Used for audio +#undef STM32_PWM_USE_TIM4 +#define STM32_PWM_USE_TIM4 TRUE + +// Used for FRAM +#undef STM32_SPI_USE_SPI1 +#define STM32_SPI_USE_SPI1 TRUE + +// Used for RGB matrix +#undef STM32_PWM_USE_TIM1 +#define STM32_PWM_USE_TIM1 TRUE \ No newline at end of file diff --git a/keyboards/custommk/ergostrafer_rgb/readme.md b/keyboards/custommk/ergostrafer_rgb/readme.md new file mode 100644 index 00000000000..4536a9841e3 --- /dev/null +++ b/keyboards/custommk/ergostrafer_rgb/readme.md @@ -0,0 +1,27 @@ +# ergostrafer rgb + +![ergostrafer rgb](https://i.imgur.com/3LZImFwh.jpeg) + +ErgoStrafer RGB is a gaming mechanical keyboard with per-key RGB LEDs that reproduces the layout of the discontinued SteelSeries Merc Stealth a.k.a. Zboard. + +* Keyboard Maintainer: [customMK](https://github.com/customMK) +* Hardware Supported: ErgoStrafer RGB +* Hardware Availability: [customMK](https://shop.custommk.com/collections/ergostrafer/products/ergostrafer) + +Make example for this keyboard (after setting up your build environment): + + make custommk/ergostrafer_rgb:default + +Flashing example for this keyboard: + + make custommk/ergostrafer_rgb:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (the "Load" key in the top right corner) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/custommk/ergostrafer_rgb/rules.mk b/keyboards/custommk/ergostrafer_rgb/rules.mk new file mode 100644 index 00000000000..72f75f4367e --- /dev/null +++ b/keyboards/custommk/ergostrafer_rgb/rules.mk @@ -0,0 +1 @@ +AUDIO_DRIVER = pwm_hardware From 7ac1a34a346aed7118018f4f562a1cfdd651a087 Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Sun, 16 Jun 2024 19:53:03 +1000 Subject: [PATCH 33/46] [CLI] Older python compat. (#23933) --- lib/python/qmk/util.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/python/qmk/util.py b/lib/python/qmk/util.py index 0145ab13541..b73fab89d12 100644 --- a/lib/python/qmk/util.py +++ b/lib/python/qmk/util.py @@ -15,7 +15,7 @@ def maybe_exit(rc): if maybe_exit_should_exit: sys.exit(rc) if maybe_exit_reraise: - e = sys.exception() + e = sys.exc_info()[1] if e: raise e From 3c868b9316ea9415288f55c0041c4d25e3e489ae Mon Sep 17 00:00:00 2001 From: Ryan Date: Sun, 16 Jun 2024 22:52:47 +1000 Subject: [PATCH 34/46] `ergodox_ez/base`: Add missing `features` object (#23935) --- keyboards/ergodox_ez/base/keyboard.json | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/keyboards/ergodox_ez/base/keyboard.json b/keyboards/ergodox_ez/base/keyboard.json index be1433ccbaf..5e0f54e40b4 100644 --- a/keyboards/ergodox_ez/base/keyboard.json +++ b/keyboards/ergodox_ez/base/keyboard.json @@ -2,5 +2,11 @@ "keyboard_name": "ErgoDox EZ", "usb": { "pid": "0x4974" + }, + "features": { + "bootmagic": false, + "mousekey": true, + "extrakey": true, + "nkro": true } } From 751fbd75d3faaadbd4ea276b4922d1686c656b62 Mon Sep 17 00:00:00 2001 From: Danny Date: Sun, 16 Jun 2024 14:16:05 -0400 Subject: [PATCH 35/46] Add Chiri CE (#23926) * Add Chiri CE * Add more layers for dynamic keymap * Move EEPROM clear * Convert to keymap.json * Change bootmagic matrix position --- keyboards/keebio/chiri_ce/info.json | 8 + .../chiri_ce/keymaps/default/keymap.json | 32 +++ .../keebio/chiri_ce/keymaps/via/keymap.json | 32 +++ keyboards/keebio/chiri_ce/readme.md | 25 +++ keyboards/keebio/chiri_ce/rev1/config.h | 16 ++ keyboards/keebio/chiri_ce/rev1/keyboard.json | 189 ++++++++++++++++++ keyboards/keebio/chiri_ce/rev1/rules.mk | 1 + 7 files changed, 303 insertions(+) create mode 100644 keyboards/keebio/chiri_ce/info.json create mode 100644 keyboards/keebio/chiri_ce/keymaps/default/keymap.json create mode 100644 keyboards/keebio/chiri_ce/keymaps/via/keymap.json create mode 100644 keyboards/keebio/chiri_ce/readme.md create mode 100644 keyboards/keebio/chiri_ce/rev1/config.h create mode 100644 keyboards/keebio/chiri_ce/rev1/keyboard.json create mode 100644 keyboards/keebio/chiri_ce/rev1/rules.mk diff --git a/keyboards/keebio/chiri_ce/info.json b/keyboards/keebio/chiri_ce/info.json new file mode 100644 index 00000000000..64fa5a05caf --- /dev/null +++ b/keyboards/keebio/chiri_ce/info.json @@ -0,0 +1,8 @@ +{ + "manufacturer": "Keebio", + "maintainer": "Keebio", + "url": "https://keeb.io", + "usb": { + "vid": "0xCB10" + } +} diff --git a/keyboards/keebio/chiri_ce/keymaps/default/keymap.json b/keyboards/keebio/chiri_ce/keymaps/default/keymap.json new file mode 100644 index 00000000000..18c9e441e07 --- /dev/null +++ b/keyboards/keebio/chiri_ce/keymaps/default/keymap.json @@ -0,0 +1,32 @@ +{ + "config": { "features": {"tri_layer": true} }, + "keyboard": "keebio/chiri_ce/rev1", + "keymap": "default", + "layout": "LAYOUT", + "layers": [ + [ + "KC_TAB" , "KC_Q" , "KC_W" , "KC_E" , "KC_R" , "KC_T" , "KC_Y" , "KC_U" , "KC_I" , "KC_O" , "KC_P" , "KC_DEL" , + "KC_LCTL", "KC_A" , "KC_S" , "KC_D" , "KC_F" , "KC_G" , "KC_H" , "KC_J" , "KC_K" , "KC_L" , "KC_SCLN", "KC_QUOT", + "KC_LSFT", "KC_Z" , "KC_X" , "KC_C" , "KC_V" , "KC_B" , "QK_GESC", "KC_BSPC", "KC_N" , "KC_M" , "KC_COMM", "KC_DOT" , "KC_SLSH", "KC_RSFT", + "KC_LGUI", "TL_LOWR", "KC_ENT" , "KC_SPC" , "TL_UPPR", "KC_RALT" + ], + [ + "KC_GRV" , "KC_1" , "KC_2" , "KC_3" , "KC_4" , "KC_5" , "KC_6" , "KC_7" , "KC_8" , "KC_9" , "KC_0" , "KC_BSPC", + "KC_ESC" , "KC_LEFT", "KC_DOWN", "KC_UP" , "KC_RGHT", "KC_LBRC", "KC_RBRC", "KC_P4" , "KC_P5" , "KC_P6" , "KC_PLUS", "KC_PIPE", + "RGB_MOD", "_______", "_______", "_______", "_______", "KC_LCBR", "KC_LPRN", "KC_RPRN", "KC_RCBR", "KC_P1" , "KC_P2" , "KC_P3" , "KC_MINS", "_______", + "_______", "_______", "KC_DEL" , "KC_DEL" , "_______", "KC_P0" + ], + [ + "RGB_TOG", "KC_EXLM", "KC_AT" , "KC_HASH", "KC_DLR" , "KC_PERC", "KC_CIRC", "KC_AMPR", "KC_ASTR", "KC_LPRN", "KC_RPRN", "QK_BOOT", + "RGB_MOD", "KC_MPRV", "KC_MNXT", "KC_VOLU", "KC_PGUP", "KC_UNDS", "KC_EQL" , "KC_HOME", "RGB_HUI", "RGB_SAI", "RGB_VAI", "KC_BSLS", + "KC_MUTE", "KC_MSTP", "KC_MPLY", "KC_VOLD", "KC_PGDN", "KC_MINS", "KC_LPRN", "_______", "KC_PLUS", "KC_END" , "RGB_HUD", "RGB_SAD", "RGB_VAD", "_______", + "_______", "_______", "_______", "_______", "_______", "_______" + ], + [ + "KC_F12" , "KC_F1" , "KC_F2" , "KC_F3" , "KC_F4" , "KC_F5" , "KC_F6" , "KC_F7" , "KC_F8" , "KC_F9" , "KC_F10" , "KC_F11" , + "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", + "_______", "EE_CLR" , "QK_BOOT", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "QK_BOOT", "EE_CLR" , "_______", + "_______", "_______", "_______", "_______", "_______", "_______" + ] + ] +} diff --git a/keyboards/keebio/chiri_ce/keymaps/via/keymap.json b/keyboards/keebio/chiri_ce/keymaps/via/keymap.json new file mode 100644 index 00000000000..e8db1835451 --- /dev/null +++ b/keyboards/keebio/chiri_ce/keymaps/via/keymap.json @@ -0,0 +1,32 @@ +{ + "config": { "features": {"tri_layer": true, "via": true} }, + "keyboard": "keebio/chiri_ce/rev1", + "keymap": "via", + "layout": "LAYOUT", + "layers": [ + [ + "KC_TAB" , "KC_Q" , "KC_W" , "KC_E" , "KC_R" , "KC_T" , "KC_Y" , "KC_U" , "KC_I" , "KC_O" , "KC_P" , "KC_DEL" , + "KC_LCTL", "KC_A" , "KC_S" , "KC_D" , "KC_F" , "KC_G" , "KC_H" , "KC_J" , "KC_K" , "KC_L" , "KC_SCLN", "KC_QUOT", + "KC_LSFT", "KC_Z" , "KC_X" , "KC_C" , "KC_V" , "KC_B" , "QK_GESC", "KC_BSPC", "KC_N" , "KC_M" , "KC_COMM", "KC_DOT" , "KC_SLSH", "KC_RSFT", + "KC_LGUI", "TL_LOWR", "KC_ENT" , "KC_SPC" , "TL_UPPR", "KC_RALT" + ], + [ + "KC_GRV" , "KC_1" , "KC_2" , "KC_3" , "KC_4" , "KC_5" , "KC_6" , "KC_7" , "KC_8" , "KC_9" , "KC_0" , "KC_BSPC", + "KC_ESC" , "KC_LEFT", "KC_DOWN", "KC_UP" , "KC_RGHT", "KC_LBRC", "KC_RBRC", "KC_P4" , "KC_P5" , "KC_P6" , "KC_PLUS", "KC_PIPE", + "RGB_MOD", "_______", "_______", "_______", "_______", "KC_LCBR", "KC_LPRN", "KC_RPRN", "KC_RCBR", "KC_P1" , "KC_P2" , "KC_P3" , "KC_MINS", "_______", + "_______", "_______", "KC_DEL" , "KC_DEL" , "_______", "KC_P0" + ], + [ + "RGB_TOG", "KC_EXLM", "KC_AT" , "KC_HASH", "KC_DLR" , "KC_PERC", "KC_CIRC", "KC_AMPR", "KC_ASTR", "KC_LPRN", "KC_RPRN", "QK_BOOT", + "RGB_MOD", "KC_MPRV", "KC_MNXT", "KC_VOLU", "KC_PGUP", "KC_UNDS", "KC_EQL" , "KC_HOME", "RGB_HUI", "RGB_SAI", "RGB_VAI", "KC_BSLS", + "KC_MUTE", "KC_MSTP", "KC_MPLY", "KC_VOLD", "KC_PGDN", "KC_MINS", "KC_LPRN", "_______", "KC_PLUS", "KC_END" , "RGB_HUD", "RGB_SAD", "RGB_VAD", "_______", + "_______", "_______", "_______", "_______", "_______", "_______" + ], + [ + "KC_F12" , "KC_F1" , "KC_F2" , "KC_F3" , "KC_F4" , "KC_F5" , "KC_F6" , "KC_F7" , "KC_F8" , "KC_F9" , "KC_F10" , "KC_F11" , + "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", + "_______", "EE_CLR" , "QK_BOOT", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "QK_BOOT", "EE_CLR" , "_______", + "_______", "_______", "_______", "_______", "_______", "_______" + ] + ] +} diff --git a/keyboards/keebio/chiri_ce/readme.md b/keyboards/keebio/chiri_ce/readme.md new file mode 100644 index 00000000000..5bc70c0199c --- /dev/null +++ b/keyboards/keebio/chiri_ce/readme.md @@ -0,0 +1,25 @@ +# Chiri CE (Compact Edition) + +A split ergo 3x6 keyboard with 4 thumb keys made and sold by Keebio. Outer columns can be broken off to convert it to 3x5 layout. [More info at Keebio](https://keeb.io). + +* Keyboard Maintainer: [Bakingpy/nooges](https://github.com/nooges) +* Hardware Supported: Chiri CE PCBs w/RP2040 microcontroller +* Hardware Availability: [Keebio](https://keeb.io) + +Make example for this keyboard (after setting up your build environment): + + make keebio/chiri_ce/rev1:default + +Example of flashing this keyboard: + + make keebio/chiri_ce/rev1:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at the top left (for left half) or top right (for right half) and plug in the keyboard +* **Physical reset button**: Press and hold the button on the back of the PCB for at least 1 second and let go +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/keebio/chiri_ce/rev1/config.h b/keyboards/keebio/chiri_ce/rev1/config.h new file mode 100644 index 00000000000..b1eb9da4e9b --- /dev/null +++ b/keyboards/keebio/chiri_ce/rev1/config.h @@ -0,0 +1,16 @@ +// Copyright 2024 Danny Nguyen (danny@keeb.io) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define SPLIT_HAND_PIN GP4 +#define USB_VBUS_PIN GP0 +#define SERIAL_USART_FULL_DUPLEX +#define SERIAL_USART_TX_PIN GP12 +#define SERIAL_USART_RX_PIN GP13 +#define SERIAL_USART_PIN_SWAP +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U +#define I2C_DRIVER I2CD2 +#define I2C1_SDA_PIN GP10 +#define I2C1_SCL_PIN GP11 diff --git a/keyboards/keebio/chiri_ce/rev1/keyboard.json b/keyboards/keebio/chiri_ce/rev1/keyboard.json new file mode 100644 index 00000000000..8b46dd7d6d4 --- /dev/null +++ b/keyboards/keebio/chiri_ce/rev1/keyboard.json @@ -0,0 +1,189 @@ +{ + "keyboard_name": "Chiri CE Rev. 1", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "dynamic_keymap": { + "layer_count": 6 + }, + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["GP29", "GP28", "GP27", "GP2", "GP3", "GP14"], + "rows": ["GP19", "GP20", "GP7", "GP26"] + }, + "processor": "RP2040", + "rgb_matrix": { + "animations": { + "alphas_mods": true, + "band_pinwheel_sat": true, + "band_pinwheel_val": true, + "band_sat": true, + "band_spiral_sat": true, + "band_spiral_val": true, + "band_val": true, + "breathing": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "cycle_up_down": true, + "digital_rain": true, + "dual_beacon": true, + "gradient_left_right": true, + "gradient_up_down": true, + "hue_breathing": true, + "hue_pendulum": true, + "hue_wave": true, + "jellybean_raindrops": true, + "multisplash": true, + "pixel_flow": true, + "pixel_fractal": true, + "pixel_rain": true, + "rainbow_beacon": true, + "rainbow_moving_chevron": true, + "rainbow_pinwheels": true, + "raindrops": true, + "solid_multisplash": true, + "solid_reactive": true, + "solid_reactive_cross": true, + "solid_reactive_multicross": true, + "solid_reactive_multinexus": true, + "solid_reactive_multiwide": true, + "solid_reactive_nexus": true, + "solid_reactive_simple": true, + "solid_reactive_wide": true, + "solid_splash": true, + "splash": true, + "typing_heatmap": true + }, + "driver": "ws2812", + "layout": [ + {"matrix": [0, 5], "x": 80, "y": 3, "flags": 4}, + {"matrix": [0, 4], "x": 64, "y": 5, "flags": 4}, + {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 32, "y": 2, "flags": 4}, + {"matrix": [0, 1], "x": 16, "y": 5, "flags": 4}, + {"matrix": [1, 1], "x": 16, "y": 18, "flags": 4}, + {"matrix": [1, 2], "x": 32, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 48, "y": 13, "flags": 4}, + {"matrix": [1, 4], "x": 64, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 80, "y": 17, "flags": 4}, + {"matrix": [2, 5], "x": 80, "y": 30, "flags": 4}, + {"matrix": [2, 4], "x": 64, "y": 28, "flags": 4}, + {"matrix": [2, 3], "x": 48, "y": 27, "flags": 4}, + {"matrix": [2, 2], "x": 32, "y": 28, "flags": 4}, + {"matrix": [2, 1], "x": 16, "y": 32, "flags": 4}, + {"matrix": [3, 2], "x": 56, "y": 47, "flags": 4}, + {"matrix": [3, 3], "x": 72, "y": 58, "flags": 4}, + {"matrix": [3, 4], "x": 90, "y": 64, "flags": 4}, + {"matrix": [3, 5], "x": 98, "y": 52, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 18, "flags": 4}, + {"matrix": [0, 0], "x": 0, "y": 5, "flags": 4}, + {"matrix": [4, 5], "x": 144, "y": 3, "flags": 4}, + {"matrix": [4, 4], "x": 160, "y": 5, "flags": 4}, + {"matrix": [4, 3], "x": 176, "y": 0, "flags": 4}, + {"matrix": [4, 2], "x": 192, "y": 2, "flags": 4}, + {"matrix": [4, 1], "x": 208, "y": 5, "flags": 4}, + {"matrix": [5, 1], "x": 208, "y": 18, "flags": 4}, + {"matrix": [5, 2], "x": 192, "y": 15, "flags": 4}, + {"matrix": [5, 3], "x": 176, "y": 13, "flags": 4}, + {"matrix": [5, 4], "x": 160, "y": 15, "flags": 4}, + {"matrix": [5, 5], "x": 144, "y": 17, "flags": 4}, + {"matrix": [6, 5], "x": 144, "y": 30, "flags": 4}, + {"matrix": [6, 4], "x": 160, "y": 28, "flags": 4}, + {"matrix": [6, 3], "x": 176, "y": 27, "flags": 4}, + {"matrix": [6, 2], "x": 192, "y": 28, "flags": 4}, + {"matrix": [6, 1], "x": 208, "y": 32, "flags": 4}, + {"matrix": [7, 2], "x": 168, "y": 47, "flags": 4}, + {"matrix": [7, 3], "x": 152, "y": 58, "flags": 4}, + {"matrix": [7, 4], "x": 134, "y": 64, "flags": 4}, + {"matrix": [7, 5], "x": 126, "y": 52, "flags": 4}, + {"matrix": [6, 0], "x": 224, "y": 32, "flags": 4}, + {"matrix": [5, 0], "x": 224, "y": 18, "flags": 4}, + {"matrix": [4, 0], "x": 224, "y": 5, "flags": 4} + ], + "max_brightness": 200, + "split_count": [22, 22], + "sleep": true + }, + "split": { + "bootmagic": { + "matrix": [4, 0] + }, + "enabled": true, + "matrix_pins": { + "right": { + "cols": ["GP29", "GP28", "GP2", "GP27", "GP18", "GP7"], + "rows": ["GP24", "GP23", "GP21", "GP3"] + } + }, + "transport": { + "sync_matrix_state": true + } + }, + "usb": { + "device_version": "1.0.0", + "pid": "0x1546" + }, + "ws2812": { + "driver": "vendor", + "pin": "GP25" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0.375}, + {"matrix": [0, 1], "x": 1, "y": 0.375}, + {"matrix": [0, 2], "x": 2, "y": 0.125}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0.125}, + {"matrix": [0, 5], "x": 5, "y": 0.25}, + {"matrix": [4, 5], "x": 9, "y": 0.25}, + {"matrix": [4, 4], "x": 10, "y": 0.125}, + {"matrix": [4, 3], "x": 11, "y": 0}, + {"matrix": [4, 2], "x": 12, "y": 0.125}, + {"matrix": [4, 1], "x": 13, "y": 0.375}, + {"matrix": [4, 0], "x": 14, "y": 0.375}, + {"matrix": [1, 0], "x": 0, "y": 1.375}, + {"matrix": [1, 1], "x": 1, "y": 1.375}, + {"matrix": [1, 2], "x": 2, "y": 1.125}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1.125}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [5, 5], "x": 9, "y": 1.25}, + {"matrix": [5, 4], "x": 10, "y": 1.125}, + {"matrix": [5, 3], "x": 11, "y": 1}, + {"matrix": [5, 2], "x": 12, "y": 1.125}, + {"matrix": [5, 1], "x": 13, "y": 1.375}, + {"matrix": [5, 0], "x": 14, "y": 1.375}, + {"matrix": [2, 0], "x": 0, "y": 2.375}, + {"matrix": [2, 1], "x": 1, "y": 2.375}, + {"matrix": [2, 2], "x": 2, "y": 2.125}, + {"matrix": [2, 3], "x": 3, "y": 2}, + {"matrix": [2, 4], "x": 4, "y": 2.125}, + {"matrix": [2, 5], "x": 5, "y": 2.25}, + {"matrix": [3, 5], "x": 6.15, "y": 2.75}, + {"matrix": [7, 5], "x": 7.85, "y": 2.75}, + {"matrix": [6, 5], "x": 9, "y": 2.25}, + {"matrix": [6, 4], "x": 10, "y": 2.125}, + {"matrix": [6, 3], "x": 11, "y": 2}, + {"matrix": [6, 2], "x": 12, "y": 2.125}, + {"matrix": [6, 1], "x": 13, "y": 2.375}, + {"matrix": [6, 0], "x": 14, "y": 2.375}, + {"matrix": [3, 2], "x": 3.5, "y": 3.25}, + {"matrix": [3, 3], "x": 4.5, "y": 3.375}, + {"matrix": [3, 4], "x": 5.6, "y": 3.75}, + {"matrix": [7, 4], "x": 8.4, "y": 3.75}, + {"matrix": [7, 3], "x": 9.5, "y": 3.375}, + {"matrix": [7, 2], "x": 10.5, "y": 3.25} + ] + } + } +} diff --git a/keyboards/keebio/chiri_ce/rev1/rules.mk b/keyboards/keebio/chiri_ce/rev1/rules.mk new file mode 100644 index 00000000000..161ec22b16e --- /dev/null +++ b/keyboards/keebio/chiri_ce/rev1/rules.mk @@ -0,0 +1 @@ +SERIAL_DRIVER = vendor From 089a819179fe5a5eb25b8dc3fd595c9b6c485349 Mon Sep 17 00:00:00 2001 From: Ryan Date: Mon, 17 Jun 2024 06:57:37 +1000 Subject: [PATCH 36/46] keyboard.json schema: set minimum value for `key_unit` (#23937) * keyboard.json schema: set minimum value for `key_unit` * Fix invalid `matrix_size` in keyboard.json * Fix bad layout for silverbullet44 --- data/schemas/definitions.jsonschema | 3 +- data/schemas/keyboard.jsonschema | 8 ++--- keyboards/hazel/bad_wings/config.h | 3 ++ keyboards/hazel/bad_wings/keyboard.json | 4 --- keyboards/keychron/q1v2/config.h | 3 ++ keyboards/keychron/q1v2/info.json | 4 --- keyboards/mechlovin/olly/jf/rev1/config.h | 7 ++++ .../mechlovin/olly/jf/rev1/keyboard.json | 4 --- keyboards/silverbullet44/keyboard.json | 34 +++++++++---------- keyboards/snes_macropad/config.h | 3 ++ keyboards/snes_macropad/keyboard.json | 4 --- keyboards/zsa/voyager/config.h | 3 ++ keyboards/zsa/voyager/keyboard.json | 4 --- 13 files changed, 42 insertions(+), 42 deletions(-) create mode 100644 keyboards/mechlovin/olly/jf/rev1/config.h diff --git a/data/schemas/definitions.jsonschema b/data/schemas/definitions.jsonschema index a1fdd2dcc68..ef44915244c 100644 --- a/data/schemas/definitions.jsonschema +++ b/data/schemas/definitions.jsonschema @@ -40,7 +40,8 @@ "pattern": "^[0-9a-z_/\\-]+\\.json$" }, "key_unit": { - "type": "number" + "type": "number", + "minimum": 0 }, "keyboard": { "type": "string", diff --git a/data/schemas/keyboard.jsonschema b/data/schemas/keyboard.jsonschema index b699f862770..e5802fe07dd 100644 --- a/data/schemas/keyboard.jsonschema +++ b/data/schemas/keyboard.jsonschema @@ -515,8 +515,8 @@ "minimum": 0 } }, - "x": {"$ref": "qmk.definitions.v1#/key_unit"}, - "y": {"$ref": "qmk.definitions.v1#/key_unit"}, + "x": {"$ref": "qmk.definitions.v1#/unsigned_int"}, + "y": {"$ref": "qmk.definitions.v1#/unsigned_int"}, "flags": {"$ref": "qmk.definitions.v1#/unsigned_int_8"} } } @@ -601,8 +601,8 @@ "minimum": 0 } }, - "x": {"$ref": "qmk.definitions.v1#/key_unit"}, - "y": {"$ref": "qmk.definitions.v1#/key_unit"}, + "x": {"$ref": "qmk.definitions.v1#/unsigned_int"}, + "y": {"$ref": "qmk.definitions.v1#/unsigned_int"}, "flags": {"$ref": "qmk.definitions.v1#/unsigned_int_8"} } } diff --git a/keyboards/hazel/bad_wings/config.h b/keyboards/hazel/bad_wings/config.h index 47301728357..b69628e7fc4 100644 --- a/keyboards/hazel/bad_wings/config.h +++ b/keyboards/hazel/bad_wings/config.h @@ -3,6 +3,9 @@ #pragma once +#define MATRIX_COLS 8 +#define MATRIX_ROWS 5 + #define SPI_SCK_PIN GP2 #define SPI_MOSI_PIN GP3 #define SPI_MISO_PIN GP4 diff --git a/keyboards/hazel/bad_wings/keyboard.json b/keyboards/hazel/bad_wings/keyboard.json index fef514c539f..983b8c4fc3d 100644 --- a/keyboards/hazel/bad_wings/keyboard.json +++ b/keyboards/hazel/bad_wings/keyboard.json @@ -10,10 +10,6 @@ }, "processor": "RP2040", "bootloader": "rp2040", - "matrix_size": { - "cols": 8, - "rows": 5 - }, "diode_direction": "COL2ROW", "features": { "bootmagic": true, diff --git a/keyboards/keychron/q1v2/config.h b/keyboards/keychron/q1v2/config.h index 326e60e3c0b..2e93d80e4e2 100644 --- a/keyboards/keychron/q1v2/config.h +++ b/keyboards/keychron/q1v2/config.h @@ -16,6 +16,9 @@ #pragma once +#define MATRIX_COLS 16 +#define MATRIX_ROWS 6 + /* RGB Matrix Driver Configuration */ #define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO #define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND diff --git a/keyboards/keychron/q1v2/info.json b/keyboards/keychron/q1v2/info.json index ed718006e36..7eb7038696c 100644 --- a/keyboards/keychron/q1v2/info.json +++ b/keyboards/keychron/q1v2/info.json @@ -32,10 +32,6 @@ "custom": true, "custom_lite": true }, - "matrix_size": { - "cols": 16, - "rows": 6 - }, "diode_direction": "ROW2COL", "rgb_matrix": { "driver": "snled27351", diff --git a/keyboards/mechlovin/olly/jf/rev1/config.h b/keyboards/mechlovin/olly/jf/rev1/config.h new file mode 100644 index 00000000000..9aa7e1c1d32 --- /dev/null +++ b/keyboards/mechlovin/olly/jf/rev1/config.h @@ -0,0 +1,7 @@ +// Copyright 2024 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define MATRIX_COLS 19 +#define MATRIX_ROWS 6 diff --git a/keyboards/mechlovin/olly/jf/rev1/keyboard.json b/keyboards/mechlovin/olly/jf/rev1/keyboard.json index 69f092af07e..1b8fa4a19ad 100644 --- a/keyboards/mechlovin/olly/jf/rev1/keyboard.json +++ b/keyboards/mechlovin/olly/jf/rev1/keyboard.json @@ -16,10 +16,6 @@ "rows": ["D5", "D6", "A5", "A4", "A3", "A6"], "custom_lite": true }, - "matrix_size": { - "cols": 19, - "rows": 6 - }, "backlight": { "pin": "D4", "breathing": true diff --git a/keyboards/silverbullet44/keyboard.json b/keyboards/silverbullet44/keyboard.json index 793ec229e4b..a58aed88206 100644 --- a/keyboards/silverbullet44/keyboard.json +++ b/keyboards/silverbullet44/keyboard.json @@ -92,29 +92,29 @@ {"matrix": [5, 1], "x": 16, "y": 1.75}, {"matrix": [5, 0], "x": 17, "y": 2.375}, - {"matrix": [2, 0], "x": 12, "y": 2.5}, - {"matrix": [2, 1], "x": 13, "y": 2.25}, - {"matrix": [2, 2], "x": 14, "y": 2}, - {"matrix": [2, 3], "x": 15, "y": 2.25}, - {"matrix": [2, 4], "x": 16, "y": 2.75}, - {"matrix": [2, 5], "x": 17, "y": 3.375}, + {"matrix": [2, 0], "x": 0, "y": 3.375}, + {"matrix": [2, 1], "x": 1, "y": 2.75}, + {"matrix": [2, 2], "x": 2, "y": 2.25}, + {"matrix": [2, 3], "x": 3, "y": 2}, + {"matrix": [2, 4], "x": 4, "y": 2.25}, + {"matrix": [2, 5], "x": 5, "y": 2.5}, - {"matrix": [6, 5], "x": 0, "y": 3.375}, - {"matrix": [6, 4], "x": 1, "y": 2.75}, - {"matrix": [6, 3], "x": 2, "y": 2.25}, - {"matrix": [6, 2], "x": 3, "y": 2}, - {"matrix": [6, 1], "x": 4, "y": 2.25}, - {"matrix": [6, 0], "x": 5, "y": 2.5}, + {"matrix": [6, 5], "x": 12, "y": 2.5}, + {"matrix": [6, 4], "x": 13, "y": 2.25}, + {"matrix": [6, 3], "x": 14, "y": 2}, + {"matrix": [6, 2], "x": 15, "y": 2.25}, + {"matrix": [6, 1], "x": 16, "y": 2.75}, + {"matrix": [6, 0], "x": 17, "y": 3.375}, {"matrix": [3, 2], "x": 4, "y": 3.25, "h": 1.25}, {"matrix": [3, 3], "x": 5, "y": 3.5}, - {"matrix": [3, 4], "x": -0.5, "y": 3.5, "h": 1.5}, - {"matrix": [3, 5], "x": 7, "y": 3.25, "h": 1.5}, + {"matrix": [3, 4], "x": 6, "y": 3.25, "h": 1.5}, + {"matrix": [3, 5], "x": 7, "y": 3.5, "h": 1.5}, - {"matrix": [7, 5], "x": -3, "y": 3.5, "h": 1.5}, - {"matrix": [7, 4], "x": -2, "y": 3.5, "h": 1.5}, + {"matrix": [7, 5], "x": 10, "y": 3.5, "h": 1.5}, + {"matrix": [7, 4], "x": 11, "y": 3.25, "h": 1.5}, {"matrix": [7, 3], "x": 12, "y": 3.5}, - {"matrix": [7, 2], "x": 13, "y": 3.25, "w": 1.25} + {"matrix": [7, 2], "x": 13, "y": 3.25, "h": 1.25} ] } } diff --git a/keyboards/snes_macropad/config.h b/keyboards/snes_macropad/config.h index c5edeb55f1d..a8f0c7fc457 100644 --- a/keyboards/snes_macropad/config.h +++ b/keyboards/snes_macropad/config.h @@ -3,6 +3,9 @@ #pragma once +#define MATRIX_COLS 4 +#define MATRIX_ROWS 6 + #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_LED GP25 #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U diff --git a/keyboards/snes_macropad/keyboard.json b/keyboards/snes_macropad/keyboard.json index 3483fe8f539..91ee3323573 100644 --- a/keyboards/snes_macropad/keyboard.json +++ b/keyboards/snes_macropad/keyboard.json @@ -19,10 +19,6 @@ "driver": "vendor" }, "processor": "RP2040", - "matrix_size": { - "cols": 4, - "rows": 6 - }, "url": "", "usb": { "device_version": "1.0.0", diff --git a/keyboards/zsa/voyager/config.h b/keyboards/zsa/voyager/config.h index 630c01fc809..27460c59104 100644 --- a/keyboards/zsa/voyager/config.h +++ b/keyboards/zsa/voyager/config.h @@ -4,6 +4,9 @@ #pragma once +#define MATRIX_COLS 7 +#define MATRIX_ROWS 12 + #define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND #define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_VCC diff --git a/keyboards/zsa/voyager/keyboard.json b/keyboards/zsa/voyager/keyboard.json index 3a7e7865ea9..3c5f2931ef4 100644 --- a/keyboards/zsa/voyager/keyboard.json +++ b/keyboards/zsa/voyager/keyboard.json @@ -27,10 +27,6 @@ "matrix": [0, 1] }, "diode_direction": "ROW2COL", - "matrix_size": { - "cols": 7, - "rows": 12 - }, "mousekey": { "delay": 0, "interval": 20, From 4864d5afca09cbd4b0bfc7e7cef505ad602b0c9c Mon Sep 17 00:00:00 2001 From: Ryan Date: Mon, 17 Jun 2024 14:47:33 +1000 Subject: [PATCH 37/46] Mechwild OBE/Waka60: Fix build warnings (#23929) --- keyboards/mechwild/obe/f401/base/keyboard.json | 1 + keyboards/mechwild/obe/f401/eeprom/keyboard.json | 5 +++++ keyboards/mechwild/obe/f401/eeprom/rules.mk | 1 - keyboards/mechwild/obe/f401/{keyboard.json => info.json} | 0 keyboards/mechwild/obe/f401/rules.mk | 1 + keyboards/mechwild/obe/f411/base/keyboard.json | 1 + keyboards/mechwild/obe/f411/eeprom/keyboard.json | 5 +++++ keyboards/mechwild/obe/f411/eeprom/rules.mk | 1 - keyboards/mechwild/obe/f411/{keyboard.json => info.json} | 0 keyboards/mechwild/obe/f411/rules.mk | 1 + keyboards/mechwild/obe/rules.mk | 2 +- keyboards/mechwild/waka60/f401/base/keyboard.json | 1 + keyboards/mechwild/waka60/f401/{ => eeprom}/config.h | 0 keyboards/mechwild/waka60/f401/eeprom/keyboard.json | 5 +++++ keyboards/mechwild/waka60/f401/eeprom/rules.mk | 1 - keyboards/mechwild/waka60/f401/{keyboard.json => info.json} | 0 keyboards/mechwild/waka60/f401/rules.mk | 1 + keyboards/mechwild/waka60/f411/base/keyboard.json | 1 + keyboards/mechwild/waka60/f411/{ => eeprom}/config.h | 0 keyboards/mechwild/waka60/f411/eeprom/keyboard.json | 5 +++++ keyboards/mechwild/waka60/f411/eeprom/rules.mk | 1 - keyboards/mechwild/waka60/f411/{keyboard.json => info.json} | 0 keyboards/mechwild/waka60/f411/rules.mk | 1 + keyboards/mechwild/waka60/rules.mk | 2 +- 24 files changed, 30 insertions(+), 6 deletions(-) create mode 100644 keyboards/mechwild/obe/f401/base/keyboard.json create mode 100644 keyboards/mechwild/obe/f401/eeprom/keyboard.json delete mode 100644 keyboards/mechwild/obe/f401/eeprom/rules.mk rename keyboards/mechwild/obe/f401/{keyboard.json => info.json} (100%) create mode 100644 keyboards/mechwild/obe/f401/rules.mk create mode 100644 keyboards/mechwild/obe/f411/base/keyboard.json create mode 100644 keyboards/mechwild/obe/f411/eeprom/keyboard.json delete mode 100644 keyboards/mechwild/obe/f411/eeprom/rules.mk rename keyboards/mechwild/obe/f411/{keyboard.json => info.json} (100%) create mode 100644 keyboards/mechwild/obe/f411/rules.mk create mode 100644 keyboards/mechwild/waka60/f401/base/keyboard.json rename keyboards/mechwild/waka60/f401/{ => eeprom}/config.h (100%) create mode 100644 keyboards/mechwild/waka60/f401/eeprom/keyboard.json delete mode 100644 keyboards/mechwild/waka60/f401/eeprom/rules.mk rename keyboards/mechwild/waka60/f401/{keyboard.json => info.json} (100%) create mode 100644 keyboards/mechwild/waka60/f401/rules.mk create mode 100644 keyboards/mechwild/waka60/f411/base/keyboard.json rename keyboards/mechwild/waka60/f411/{ => eeprom}/config.h (100%) create mode 100644 keyboards/mechwild/waka60/f411/eeprom/keyboard.json delete mode 100644 keyboards/mechwild/waka60/f411/eeprom/rules.mk rename keyboards/mechwild/waka60/f411/{keyboard.json => info.json} (100%) create mode 100644 keyboards/mechwild/waka60/f411/rules.mk diff --git a/keyboards/mechwild/obe/f401/base/keyboard.json b/keyboards/mechwild/obe/f401/base/keyboard.json new file mode 100644 index 00000000000..0967ef424bc --- /dev/null +++ b/keyboards/mechwild/obe/f401/base/keyboard.json @@ -0,0 +1 @@ +{} diff --git a/keyboards/mechwild/obe/f401/eeprom/keyboard.json b/keyboards/mechwild/obe/f401/eeprom/keyboard.json new file mode 100644 index 00000000000..12d3baee141 --- /dev/null +++ b/keyboards/mechwild/obe/f401/eeprom/keyboard.json @@ -0,0 +1,5 @@ +{ + "eeprom": { + "driver": "i2c" + } +} diff --git a/keyboards/mechwild/obe/f401/eeprom/rules.mk b/keyboards/mechwild/obe/f401/eeprom/rules.mk deleted file mode 100644 index 44adba039b5..00000000000 --- a/keyboards/mechwild/obe/f401/eeprom/rules.mk +++ /dev/null @@ -1 +0,0 @@ -EEPROM_DRIVER = i2c diff --git a/keyboards/mechwild/obe/f401/keyboard.json b/keyboards/mechwild/obe/f401/info.json similarity index 100% rename from keyboards/mechwild/obe/f401/keyboard.json rename to keyboards/mechwild/obe/f401/info.json diff --git a/keyboards/mechwild/obe/f401/rules.mk b/keyboards/mechwild/obe/f401/rules.mk new file mode 100644 index 00000000000..8709dbb4de3 --- /dev/null +++ b/keyboards/mechwild/obe/f401/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = mechwild/obe/f401/base diff --git a/keyboards/mechwild/obe/f411/base/keyboard.json b/keyboards/mechwild/obe/f411/base/keyboard.json new file mode 100644 index 00000000000..0967ef424bc --- /dev/null +++ b/keyboards/mechwild/obe/f411/base/keyboard.json @@ -0,0 +1 @@ +{} diff --git a/keyboards/mechwild/obe/f411/eeprom/keyboard.json b/keyboards/mechwild/obe/f411/eeprom/keyboard.json new file mode 100644 index 00000000000..12d3baee141 --- /dev/null +++ b/keyboards/mechwild/obe/f411/eeprom/keyboard.json @@ -0,0 +1,5 @@ +{ + "eeprom": { + "driver": "i2c" + } +} diff --git a/keyboards/mechwild/obe/f411/eeprom/rules.mk b/keyboards/mechwild/obe/f411/eeprom/rules.mk deleted file mode 100644 index 44adba039b5..00000000000 --- a/keyboards/mechwild/obe/f411/eeprom/rules.mk +++ /dev/null @@ -1 +0,0 @@ -EEPROM_DRIVER = i2c diff --git a/keyboards/mechwild/obe/f411/keyboard.json b/keyboards/mechwild/obe/f411/info.json similarity index 100% rename from keyboards/mechwild/obe/f411/keyboard.json rename to keyboards/mechwild/obe/f411/info.json diff --git a/keyboards/mechwild/obe/f411/rules.mk b/keyboards/mechwild/obe/f411/rules.mk new file mode 100644 index 00000000000..e24fe605094 --- /dev/null +++ b/keyboards/mechwild/obe/f411/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = mechwild/obe/f411/base diff --git a/keyboards/mechwild/obe/rules.mk b/keyboards/mechwild/obe/rules.mk index 8fb92c3a6b6..8709dbb4de3 100644 --- a/keyboards/mechwild/obe/rules.mk +++ b/keyboards/mechwild/obe/rules.mk @@ -1 +1 @@ -DEFAULT_FOLDER = mechwild/obe/f401 +DEFAULT_FOLDER = mechwild/obe/f401/base diff --git a/keyboards/mechwild/waka60/f401/base/keyboard.json b/keyboards/mechwild/waka60/f401/base/keyboard.json new file mode 100644 index 00000000000..0967ef424bc --- /dev/null +++ b/keyboards/mechwild/waka60/f401/base/keyboard.json @@ -0,0 +1 @@ +{} diff --git a/keyboards/mechwild/waka60/f401/config.h b/keyboards/mechwild/waka60/f401/eeprom/config.h similarity index 100% rename from keyboards/mechwild/waka60/f401/config.h rename to keyboards/mechwild/waka60/f401/eeprom/config.h diff --git a/keyboards/mechwild/waka60/f401/eeprom/keyboard.json b/keyboards/mechwild/waka60/f401/eeprom/keyboard.json new file mode 100644 index 00000000000..12d3baee141 --- /dev/null +++ b/keyboards/mechwild/waka60/f401/eeprom/keyboard.json @@ -0,0 +1,5 @@ +{ + "eeprom": { + "driver": "i2c" + } +} diff --git a/keyboards/mechwild/waka60/f401/eeprom/rules.mk b/keyboards/mechwild/waka60/f401/eeprom/rules.mk deleted file mode 100644 index 44adba039b5..00000000000 --- a/keyboards/mechwild/waka60/f401/eeprom/rules.mk +++ /dev/null @@ -1 +0,0 @@ -EEPROM_DRIVER = i2c diff --git a/keyboards/mechwild/waka60/f401/keyboard.json b/keyboards/mechwild/waka60/f401/info.json similarity index 100% rename from keyboards/mechwild/waka60/f401/keyboard.json rename to keyboards/mechwild/waka60/f401/info.json diff --git a/keyboards/mechwild/waka60/f401/rules.mk b/keyboards/mechwild/waka60/f401/rules.mk new file mode 100644 index 00000000000..a0d74c14eb1 --- /dev/null +++ b/keyboards/mechwild/waka60/f401/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = mechwild/waka60/f401/base diff --git a/keyboards/mechwild/waka60/f411/base/keyboard.json b/keyboards/mechwild/waka60/f411/base/keyboard.json new file mode 100644 index 00000000000..0967ef424bc --- /dev/null +++ b/keyboards/mechwild/waka60/f411/base/keyboard.json @@ -0,0 +1 @@ +{} diff --git a/keyboards/mechwild/waka60/f411/config.h b/keyboards/mechwild/waka60/f411/eeprom/config.h similarity index 100% rename from keyboards/mechwild/waka60/f411/config.h rename to keyboards/mechwild/waka60/f411/eeprom/config.h diff --git a/keyboards/mechwild/waka60/f411/eeprom/keyboard.json b/keyboards/mechwild/waka60/f411/eeprom/keyboard.json new file mode 100644 index 00000000000..12d3baee141 --- /dev/null +++ b/keyboards/mechwild/waka60/f411/eeprom/keyboard.json @@ -0,0 +1,5 @@ +{ + "eeprom": { + "driver": "i2c" + } +} diff --git a/keyboards/mechwild/waka60/f411/eeprom/rules.mk b/keyboards/mechwild/waka60/f411/eeprom/rules.mk deleted file mode 100644 index 44adba039b5..00000000000 --- a/keyboards/mechwild/waka60/f411/eeprom/rules.mk +++ /dev/null @@ -1 +0,0 @@ -EEPROM_DRIVER = i2c diff --git a/keyboards/mechwild/waka60/f411/keyboard.json b/keyboards/mechwild/waka60/f411/info.json similarity index 100% rename from keyboards/mechwild/waka60/f411/keyboard.json rename to keyboards/mechwild/waka60/f411/info.json diff --git a/keyboards/mechwild/waka60/f411/rules.mk b/keyboards/mechwild/waka60/f411/rules.mk new file mode 100644 index 00000000000..0dd69ff65f7 --- /dev/null +++ b/keyboards/mechwild/waka60/f411/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = mechwild/waka60/f411/base diff --git a/keyboards/mechwild/waka60/rules.mk b/keyboards/mechwild/waka60/rules.mk index d3be506b167..a0d74c14eb1 100644 --- a/keyboards/mechwild/waka60/rules.mk +++ b/keyboards/mechwild/waka60/rules.mk @@ -1 +1 @@ -DEFAULT_FOLDER = mechwild/waka60/f401 +DEFAULT_FOLDER = mechwild/waka60/f401/base From 3f44231d2d7889beb87f67035d884daae72eb6f5 Mon Sep 17 00:00:00 2001 From: Ryan Date: Mon, 17 Jun 2024 20:12:26 +1000 Subject: [PATCH 38/46] Strip decimals from RGB Matrix layout positions (#23943) --- keyboards/cipulot/ec_980c/keyboard.json | 6 +- .../kd87a_bfg_edition/keyboard.json | 54 +++--- keyboards/doio/kb38/keyboard.json | 76 ++++---- .../handwired/alcor_dactyl/keyboard.json | 4 +- keyboards/input_club/k_type/k_type.c | 20 +-- keyboards/kbdfans/kbd75rgb/kbd75rgb.c | 8 +- keyboards/kbdfans/kbdpad/mk3/keyboard.json | 30 ++-- keyboards/keebio/bamfk4/bamfk4.c | 16 +- keyboards/meletrix/zoom98/keyboard.json | 22 +-- .../65/projectd_65_ansi/keyboard.json | 58 +++---- keyboards/projectd/75/ansi/keyboard.json | 160 ++++++++--------- keyboards/projectd/75/iso/keyboard.json | 162 +++++++++--------- keyboards/rot13labs/h4ckb0ard/keyboard.json | 56 +++--- keyboards/skeletonkbd/frost68/keyboard.json | 136 +++++++-------- keyboards/theone/keyboard.json | 50 +++--- 15 files changed, 429 insertions(+), 429 deletions(-) diff --git a/keyboards/cipulot/ec_980c/keyboard.json b/keyboards/cipulot/ec_980c/keyboard.json index 6d3cb22719c..35946fa623f 100644 --- a/keyboards/cipulot/ec_980c/keyboard.json +++ b/keyboards/cipulot/ec_980c/keyboard.json @@ -35,9 +35,9 @@ }, "driver": "ws2812", "layout": [ - {"matrix": [0, 15], "x": 16.25, "y": 1, "flags": 4}, - {"matrix": [0, 16], "x": 17.25, "y": 1, "flags": 4}, - {"matrix": [0, 17], "x": 18.25, "y": 1, "flags": 4} + {"matrix": [0, 15], "x": 16, "y": 1, "flags": 4}, + {"matrix": [0, 16], "x": 17, "y": 1, "flags": 4}, + {"matrix": [0, 17], "x": 18, "y": 1, "flags": 4} ], "led_count": 3, "max_brightness": 255 diff --git a/keyboards/darkproject/kd87a_bfg_edition/keyboard.json b/keyboards/darkproject/kd87a_bfg_edition/keyboard.json index 856dbea6488..1e0d7f5e8b8 100644 --- a/keyboards/darkproject/kd87a_bfg_edition/keyboard.json +++ b/keyboards/darkproject/kd87a_bfg_edition/keyboard.json @@ -139,41 +139,41 @@ { "flags": 4, "matrix": [2, 5], "x": 175, "y": 25 }, { "flags": 8, "matrix": [2, 1], "x": 0, "y": 35 }, - { "flags": 4, "matrix": [1, 2], "x": 17.5, "y": 35 }, - { "flags": 4, "matrix": [2, 2], "x": 27.5, "y": 35 }, - { "flags": 4, "matrix": [3, 2], "x": 37.5, "y": 35 }, - { "flags": 4, "matrix": [4, 2], "x": 47.5, "y": 35 }, - { "flags": 4, "matrix": [4, 3], "x": 57.5, "y": 35 }, - { "flags": 4, "matrix": [5, 3], "x": 67.5, "y": 35 }, - { "flags": 4, "matrix": [5, 2], "x": 77.5, "y": 35 }, - { "flags": 4, "matrix": [6, 2], "x": 87.5, "y": 35 }, - { "flags": 4, "matrix": [7, 2], "x": 97.5, "y": 35 }, - { "flags": 4, "matrix": [8, 2], "x": 107.5, "y": 35 }, - { "flags": 4, "matrix": [8, 3], "x": 117.5, "y": 35 }, - { "flags": 4, "matrix": [10, 4], "x": 127.5, "y": 35 }, + { "flags": 4, "matrix": [1, 2], "x": 17, "y": 35 }, + { "flags": 4, "matrix": [2, 2], "x": 27, "y": 35 }, + { "flags": 4, "matrix": [3, 2], "x": 37, "y": 35 }, + { "flags": 4, "matrix": [4, 2], "x": 47, "y": 35 }, + { "flags": 4, "matrix": [4, 3], "x": 57, "y": 35 }, + { "flags": 4, "matrix": [5, 3], "x": 67, "y": 35 }, + { "flags": 4, "matrix": [5, 2], "x": 77, "y": 35 }, + { "flags": 4, "matrix": [6, 2], "x": 87, "y": 35 }, + { "flags": 4, "matrix": [7, 2], "x": 97, "y": 35 }, + { "flags": 4, "matrix": [8, 2], "x": 107, "y": 35 }, + { "flags": 4, "matrix": [8, 3], "x": 117, "y": 35 }, + { "flags": 4, "matrix": [10, 4], "x": 127, "y": 35 }, { "flags": 4, "matrix": [0, 0], "x": 0, "y": 45 }, - { "flags": 4, "matrix": [1, 4], "x": 22.5, "y": 45 }, - { "flags": 4, "matrix": [2, 4], "x": 32.5, "y": 45 }, - { "flags": 4, "matrix": [3, 4], "x": 42.5, "y": 45 }, - { "flags": 4, "matrix": [4, 4], "x": 52.5, "y": 45 }, - { "flags": 4, "matrix": [4, 5], "x": 62.5, "y": 45 }, - { "flags": 4, "matrix": [5, 5], "x": 72.5, "y": 45 }, - { "flags": 4, "matrix": [5, 4], "x": 82.5, "y": 45 }, - { "flags": 4, "matrix": [6, 4], "x": 92.5, "y": 45 }, - { "flags": 4, "matrix": [7, 4], "x": 102.5, "y": 45 }, - { "flags": 4, "matrix": [8, 5], "x": 112.5, "y": 45 }, - { "flags": 4, "matrix": [9, 1], "x": 122.5, "y": 45 }, + { "flags": 4, "matrix": [1, 4], "x": 22, "y": 45 }, + { "flags": 4, "matrix": [2, 4], "x": 32, "y": 45 }, + { "flags": 4, "matrix": [3, 4], "x": 42, "y": 45 }, + { "flags": 4, "matrix": [4, 4], "x": 52, "y": 45 }, + { "flags": 4, "matrix": [4, 5], "x": 62, "y": 45 }, + { "flags": 4, "matrix": [5, 5], "x": 72, "y": 45 }, + { "flags": 4, "matrix": [5, 4], "x": 82, "y": 45 }, + { "flags": 4, "matrix": [6, 4], "x": 92, "y": 45 }, + { "flags": 4, "matrix": [7, 4], "x": 102, "y": 45 }, + { "flags": 4, "matrix": [8, 5], "x": 112, "y": 45 }, + { "flags": 4, "matrix": [9, 1], "x": 122, "y": 45 }, { "flags": 4, "matrix": [3, 5], "x": 165, "y": 45 }, { "flags": 4, "matrix": [0, 6], "x": 0, "y": 55 }, - { "flags": 4, "matrix": [9, 0], "x": 12.5, "y": 55 }, + { "flags": 4, "matrix": [9, 0], "x": 12, "y": 55 }, { "flags": 4, "matrix": [9, 3], "x": 25, "y": 55 }, - { "flags": 4, "matrix": [9, 4], "x": 37.5, "y": 55 }, + { "flags": 4, "matrix": [9, 4], "x": 37, "y": 55 }, { "flags": 4, "matrix": [9, 5], "x": 100, "y": 55 }, - { "flags": 4, "matrix": [9, 2], "x": 112.5, "y": 55 }, + { "flags": 4, "matrix": [9, 2], "x": 112, "y": 55 }, { "flags": 4, "matrix": [8, 4], "x": 125, "y": 55 }, - { "flags": 4, "matrix": [0, 4], "x": 137.5, "y": 55 }, + { "flags": 4, "matrix": [0, 4], "x": 137, "y": 55 }, { "flags": 4, "matrix": [0, 3], "x": 155, "y": 55 }, { "flags": 4, "matrix": [7, 3], "x": 165, "y": 55 }, { "flags": 4, "matrix": [0, 5], "x": 175, "y": 55 } diff --git a/keyboards/doio/kb38/keyboard.json b/keyboards/doio/kb38/keyboard.json index 7e978b2be8b..a46f1a6a450 100644 --- a/keyboards/doio/kb38/keyboard.json +++ b/keyboards/doio/kb38/keyboard.json @@ -48,54 +48,54 @@ "driver": "ws2812", "layout": [ {"flags": 4, "matrix": [0, 0], "x": 0, "y": 0}, - {"flags": 4, "matrix": [0, 1], "x": 62.2, "y": 0}, - {"flags": 4, "matrix": [0, 2], "x": 99.6, "y": 0}, - {"flags": 4, "matrix": [0, 3], "x": 124.4, "y": 0}, - {"flags": 4, "matrix": [0, 4], "x": 149.3, "y": 0}, - {"flags": 4, "matrix": [0, 5], "x": 174.2, "y": 0}, - {"flags": 4, "matrix": [0, 6], "x": 199.1, "y": 0}, + {"flags": 4, "matrix": [0, 1], "x": 62, "y": 0}, + {"flags": 4, "matrix": [0, 2], "x": 99, "y": 0}, + {"flags": 4, "matrix": [0, 3], "x": 124, "y": 0}, + {"flags": 4, "matrix": [0, 4], "x": 149, "y": 0}, + {"flags": 4, "matrix": [0, 5], "x": 174, "y": 0}, + {"flags": 4, "matrix": [0, 6], "x": 199, "y": 0}, {"flags": 4, "matrix": [0, 7], "x": 224, "y": 0}, - {"flags": 4, "matrix": [1, 0], "x": 0, "y": 12.8}, - {"flags": 4, "matrix": [1, 1], "x": 24.9, "y": 12.8}, - {"flags": 4, "matrix": [1, 2], "x": 49.8, "y": 12.8}, - {"flags": 4, "matrix": [1, 3], "x": 74.6, "y": 12.8}, - {"flags": 4, "matrix": [1, 4], "x": 99.6, "y": 12.8}, - {"flags": 4, "matrix": [1, 5], "x": 124.4, "y": 12.8}, - {"flags": 4, "matrix": [1, 6], "x": 149.3, "y": 12.8}, + {"flags": 4, "matrix": [1, 0], "x": 0, "y": 12}, + {"flags": 4, "matrix": [1, 1], "x": 24, "y": 12}, + {"flags": 4, "matrix": [1, 2], "x": 49, "y": 12}, + {"flags": 4, "matrix": [1, 3], "x": 74, "y": 12}, + {"flags": 4, "matrix": [1, 4], "x": 99, "y": 12}, + {"flags": 4, "matrix": [1, 5], "x": 124, "y": 12}, + {"flags": 4, "matrix": [1, 6], "x": 149, "y": 12}, - {"flags": 4, "matrix": [2, 0], "x": 0, "y": 25.6}, - {"flags": 4, "matrix": [2, 1], "x": 24.9, "y": 25.6}, - {"flags": 4, "matrix": [2, 2], "x": 49.8, "y": 25.6}, - {"flags": 4, "matrix": [2, 3], "x": 74.6, "y": 32}, - {"flags": 4, "matrix": [2, 4], "x": 90, "y": 25.6}, - {"flags": 4, "matrix": [2, 5], "x": 124.4, "y": 25.6}, - {"flags": 4, "matrix": [2, 6], "x": 149.3, "y": 25.6}, + {"flags": 4, "matrix": [2, 0], "x": 0, "y": 25}, + {"flags": 4, "matrix": [2, 1], "x": 24, "y": 25}, + {"flags": 4, "matrix": [2, 2], "x": 49, "y": 25}, + {"flags": 4, "matrix": [2, 3], "x": 74, "y": 32}, + {"flags": 4, "matrix": [2, 4], "x": 90, "y": 25}, + {"flags": 4, "matrix": [2, 5], "x": 124, "y": 25}, + {"flags": 4, "matrix": [2, 6], "x": 149, "y": 25}, - {"flags": 4, "matrix": [3, 0], "x": 0, "y": 38.4}, - {"flags": 4, "matrix": [3, 1], "x": 24.9, "y": 38.4}, - {"flags": 4, "matrix": [3, 2], "x": 49.8, "y": 38.4}, - {"flags": 4, "matrix": [3, 3], "x": 99.6, "y": 38.4}, - {"flags": 4, "matrix": [3, 4], "x": 124.4, "y": 38.4}, - {"flags": 4, "matrix": [3, 5], "x": 149.3, "y": 38.4}, + {"flags": 4, "matrix": [3, 0], "x": 0, "y": 38}, + {"flags": 4, "matrix": [3, 1], "x": 24, "y": 38}, + {"flags": 4, "matrix": [3, 2], "x": 49, "y": 38}, + {"flags": 4, "matrix": [3, 3], "x": 99, "y": 38}, + {"flags": 4, "matrix": [3, 4], "x": 124, "y": 38}, + {"flags": 4, "matrix": [3, 5], "x": 149, "y": 38}, - {"flags": 4, "matrix": [4, 0], "x": 0, "y": 51.2}, - {"flags": 4, "matrix": [4, 1], "x": 24.9, "y": 51.2}, - {"flags": 4, "matrix": [4, 2], "x": 49.8, "y": 51.2}, - {"flags": 4, "matrix": [4, 3], "x": 74.6, "y": 57.6}, - {"flags": 4, "matrix": [4, 5], "x": 124.4, "y": 51.2}, + {"flags": 4, "matrix": [4, 0], "x": 0, "y": 51}, + {"flags": 4, "matrix": [4, 1], "x": 24, "y": 51}, + {"flags": 4, "matrix": [4, 2], "x": 49, "y": 51}, + {"flags": 4, "matrix": [4, 3], "x": 74, "y": 57}, + {"flags": 4, "matrix": [4, 5], "x": 124, "y": 51}, - {"flags": 4, "matrix": [5, 0], "x": 12.5, "y": 64}, - {"flags": 4, "matrix": [5, 1], "x": 49.8, "y": 64}, - {"flags": 4, "matrix": [5, 2], "x": 99.6, "y": 64}, - {"flags": 4, "matrix": [5, 3], "x": 124.4, "y": 64}, - {"flags": 4, "matrix": [5, 4], "x": 149.3, "y": 64}, + {"flags": 4, "matrix": [5, 0], "x": 12, "y": 64}, + {"flags": 4, "matrix": [5, 1], "x": 49, "y": 64}, + {"flags": 4, "matrix": [5, 2], "x": 99, "y": 64}, + {"flags": 4, "matrix": [5, 3], "x": 124, "y": 64}, + {"flags": 4, "matrix": [5, 4], "x": 149, "y": 64}, {"flags": 2, "x": 224, "y": 64}, - {"flags": 2, "x": 74.6, "y": 64}, + {"flags": 2, "x": 74, "y": 64}, {"flags": 2, "x": 0, "y": 64}, {"flags": 2, "x": 0, "y": 0}, - {"flags": 2, "x": 74.6, "y": 0}, + {"flags": 2, "x": 74, "y": 0}, {"flags": 2, "x": 224, "y": 0} ], "max_brightness": 200, diff --git a/keyboards/handwired/alcor_dactyl/keyboard.json b/keyboards/handwired/alcor_dactyl/keyboard.json index 65f1f804aa9..c179278c097 100644 --- a/keyboards/handwired/alcor_dactyl/keyboard.json +++ b/keyboards/handwired/alcor_dactyl/keyboard.json @@ -29,8 +29,8 @@ "rgb_matrix": { "driver": "ws2812", "layout": [ - {"x": 0, "y": 0.375}, - {"x": 16.5, "y": 0.38} + {"x": 0, "y": 0}, + {"x": 16, "y": 0} ], "split_count": [1, 1] }, diff --git a/keyboards/input_club/k_type/k_type.c b/keyboards/input_club/k_type/k_type.c index 85bdc7ea739..c719208af12 100644 --- a/keyboards/input_club/k_type/k_type.c +++ b/keyboards/input_club/k_type/k_type.c @@ -166,19 +166,19 @@ led_config_t g_led_config = { }, { // LED Index to Physical Position // Key LED - { 0, 0 }, { 26.35, 0 }, { 39.53, 0 }, { 52.71, 0 }, { 65.88, 0 }, { 79.06, 0 }, { 92.24, 0 }, { 105.41, 0 }, { 118.59, 0 }, { 131.77, 0 }, { 144.94, 0 }, { 158.12, 0 }, { 171.29, 0 }, { 197.65, 0 }, { 210.82, 0 }, { 224, 0 }, + { 0, 0 }, { 26, 0 }, { 39, 0 }, { 52, 0 }, { 65, 0 }, { 79, 0 }, { 92, 0 }, { 105, 0 }, { 118, 0 }, { 131, 0 }, { 144, 0 }, { 158, 0 }, { 171, 0 }, { 197, 0 }, { 210, 0 }, { 224, 0 }, - { 0, 21.33 }, { 13.18, 21.33 }, { 26.35, 21.33 }, { 39.53, 21.33 }, { 52.71, 21.33 }, { 65.88, 21.33 }, { 79.06, 21.33 }, { 92.24, 21.33 }, { 105.41, 21.33 }, { 118.59, 21.33 }, { 131.77, 21.33 }, { 144.94, 21.33 }, { 158.12, 21.33 }, { 171.29, 21.33 }, { 197.65, 21.33 }, { 210.82, 21.33 }, { 224, 21.33 }, - { 0, 32 }, { 13.18, 32 }, { 26.35, 32 }, { 39.53, 32 }, { 52.71, 32 }, { 65.88, 32 }, { 79.06, 32 }, { 92.24, 32 }, { 105.41, 32 }, { 118.59, 32 }, { 131.77, 32 }, { 144.94, 32 }, { 158.12, 32 }, { 171.29, 32 }, { 197.65, 32 }, { 210.82, 32 }, { 224, 32 }, - { 0, 42.67 }, { 13.18, 42.67 }, { 26.35, 42.67 }, { 39.53, 42.67 }, { 52.71, 42.67 }, { 65.88, 42.67 }, { 79.06, 42.67 }, { 92.24, 42.67 }, { 105.41, 42.67 }, { 118.59, 42.67 }, { 131.77, 42.67 }, { 144.94, 42.67 }, { 171.29, 42.67 }, - { 0, 53.33 }, { 26.35, 53.33 }, { 39.53, 53.33 }, { 52.71, 53.33 }, { 65.88, 53.33 }, { 79.06, 53.33 }, { 92.24, 53.33 }, { 105.41, 53.33 }, { 118.59, 53.33 }, { 131.77, 53.33 }, { 144.94, 53.33 }, { 171.29, 53.33 }, { 210.82, 53.33 }, - { 0, 64 }, { 13.18, 64 }, { 26.35, 64 }, { 79.06, 64 }, { 131.77, 64 }, { 144.94, 64 }, { 158.12, 64 }, { 171.29, 64 }, { 197.65, 64 }, { 210.82, 64 }, { 224, 64 }, + { 0, 21 }, { 13, 21 }, { 26, 21 }, { 39, 21 }, { 52, 21 }, { 65, 21 }, { 79, 21 }, { 92, 21 }, { 105, 21 }, { 118, 21 }, { 131, 21 }, { 144, 21 }, { 158, 21 }, { 171, 21 }, { 197, 21 }, { 210, 21 }, { 224, 21 }, + { 0, 32 }, { 13, 32 }, { 26, 32 }, { 39, 32 }, { 52, 32 }, { 65, 32 }, { 79, 32 }, { 92, 32 }, { 105, 32 }, { 118, 32 }, { 131, 32 }, { 144, 32 }, { 158, 32 }, { 171, 32 }, { 197, 32 }, { 210, 32 }, { 224, 32 }, + { 0, 42 }, { 13, 42 }, { 26, 42 }, { 39, 42 }, { 52, 42 }, { 65, 42 }, { 79, 42 }, { 92, 42 }, { 105, 42 }, { 118, 42 }, { 131, 42 }, { 144, 42 }, { 171, 42 }, + { 0, 53 }, { 26, 53 }, { 39, 53 }, { 52, 53 }, { 65, 53 }, { 79, 53 }, { 92, 53 }, { 105, 53 }, { 118, 53 }, { 131, 53 }, { 144, 53 }, { 171, 53 }, { 210, 53 }, + { 0, 64 }, { 13, 64 }, { 26, 64 }, { 79, 64 }, { 131, 64 }, { 144, 64 }, { 158, 64 }, { 171, 64 }, { 197, 64 }, { 210, 64 }, { 224, 64 }, // Underglow LED - { 224, 64 }, { 206.77, 64 }, { 189.54, 64 }, { 172.31, 64 }, { 155.08, 64 }, { 137.85, 64 }, { 120.61, 64 }, { 103.38, 64 }, { 86.15, 64 }, { 68.92, 64 }, { 51.69, 64 }, { 34.46, 64 }, { 17.23, 64 }, { 0, 64 }, - { 0, 42.67 }, { 0, 21.33 }, - { 0, 0 }, { 17.23, 0 }, { 34.46, 0 }, { 51.69, 0 }, { 68.92, 0 }, { 86.15, 0 }, { 103.38, 0 }, { 120.61, 0 }, { 137.85, 0 }, { 155.08, 0 }, { 172.31, 0 }, { 189.54, 0 }, { 206.77, 0 }, { 224, 0 }, - { 224, 21.33 }, { 224, 42.67 } + { 224, 64 }, { 206, 64 }, { 189, 64 }, { 172, 64 }, { 155, 64 }, { 137, 64 }, { 120, 64 }, { 103, 64 }, { 86, 64 }, { 68, 64 }, { 51, 64 }, { 34, 64 }, { 17, 64 }, { 0, 64 }, + { 0, 42 }, { 0, 21 }, + { 0, 0 }, { 17, 0 }, { 34, 0 }, { 51, 0 }, { 68, 0 }, { 86, 0 }, { 103, 0 }, { 120, 0 }, { 137, 0 }, { 155, 0 }, { 172, 0 }, { 189, 0 }, { 206, 0 }, { 224, 0 }, + { 224, 21 }, { 224, 42 } }, { // LED Index to Flag //Key LED diff --git a/keyboards/kbdfans/kbd75rgb/kbd75rgb.c b/keyboards/kbdfans/kbd75rgb/kbd75rgb.c index 8e39dad6d23..622ca83b681 100644 --- a/keyboards/kbdfans/kbd75rgb/kbd75rgb.c +++ b/keyboards/kbdfans/kbd75rgb/kbd75rgb.c @@ -26,10 +26,10 @@ led_config_t g_led_config = { { { 83, 82, 81, NO_LED, NO_LED, 80, NO_LED, NO_LED, 79, 78, 77, 76, NO_LED,75 ,74} }, { {0, 0}, {15, 0}, {30, 0},{45, 0}, {60, 0}, {75, 0}, {90, 0}, {105, 0}, {120, 0}, {135, 0}, {150, 0}, {165, 0}, {180, 0}, {195, 0}, {210, 0}, {224, 0}, - {224, 12.8}, {218, 12.8},{192, 12.8},{176, 12.8},{160, 12.8},{144, 12.8},{128, 12.8},{112, 12.8},{96, 12.8},{80, 12.8},{64, 12.8},{48, 12.8},{32, 12.8},{16, 12.8},{0, 12.8}, - {0, 25.6},{16, 25.6}, {32, 25.6}, {48, 25.6}, {64, 25.6}, {80, 25.6}, {96, 25.6}, {112, 25.6}, {128, 25.6}, {144, 25.6}, {160, 25.6},{176, 25.6}, {192, 25.6}, {218, 25.6}, {224, 25.6}, -{224, 38.4},{200, 38.4},{176, 38.4},{160, 38.4},{144, 38.4},{128, 38.4},{112, 38.4},{96, 38.4},{80, 38.4},{64, 38.4},{48, 38.4},{32, 38.4},{16, 38.4},{0, 38.4}, - {0, 51.2},{16, 51.2}, {32, 51.2}, {48, 51.2}, {64, 51.2}, {80, 51.2}, {96, 51.2}, {112, 51.2}, {128, 51.2}, {144, 51.2}, {160, 51.2}, {189, 51.2}, {218, 51.2}, {224, 51.2}, + {224, 12}, {218, 12},{192, 12},{176, 12},{160, 12},{144, 12},{128, 12},{112, 12},{96, 12},{80, 12},{64, 12},{48, 12},{32, 12},{16, 12},{0, 12}, + {0, 25},{16, 25}, {32, 25}, {48, 25}, {64, 25}, {80, 25}, {96, 25}, {112, 25}, {128, 25}, {144, 25}, {160, 25},{176, 25}, {192, 25}, {218, 25}, {224, 25}, +{224, 38},{200, 38},{176, 38},{160, 38},{144, 38},{128, 38},{112, 38},{96, 38},{80, 38},{64, 38},{48, 38},{32, 38},{16, 38},{0, 38}, + {0, 51},{16, 51}, {32, 51}, {48, 51}, {64, 51}, {80, 51}, {96, 51}, {112, 51}, {128, 51}, {144, 51}, {160, 51}, {189, 51}, {218, 51}, {224, 51}, {224, 64},{218, 64},{192, 64},{176, 64},{160, 64},{144, 64}, {80, 64}, {32, 64},{16, 64},{0, 64} }, { 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, diff --git a/keyboards/kbdfans/kbdpad/mk3/keyboard.json b/keyboards/kbdfans/kbdpad/mk3/keyboard.json index 735dd3e4ef4..7c741f7633a 100644 --- a/keyboards/kbdfans/kbdpad/mk3/keyboard.json +++ b/keyboards/kbdfans/kbdpad/mk3/keyboard.json @@ -65,23 +65,23 @@ {"flags": 4, "matrix": [0, 1], "x": 75, "y": 0}, {"flags": 4, "matrix": [0, 2], "x": 150, "y": 0}, {"flags": 4, "matrix": [0, 3], "x": 224, "y": 0}, - {"flags": 4, "matrix": [1, 3], "x": 224, "y": 12.8}, - {"flags": 4, "matrix": [1, 2], "x": 150, "y": 12.8}, - {"flags": 4, "matrix": [1, 1], "x": 75, "y": 12.8}, - {"flags": 4, "matrix": [1, 0], "x": 0, "y": 12.8}, - {"flags": 4, "matrix": [2, 0], "x": 0, "y": 25.6}, - {"flags": 4, "matrix": [2, 1], "x": 75, "y": 25.6}, - {"flags": 4, "matrix": [2, 2], "x": 150, "y": 25.6}, + {"flags": 4, "matrix": [1, 3], "x": 224, "y": 12}, + {"flags": 4, "matrix": [1, 2], "x": 150, "y": 12}, + {"flags": 4, "matrix": [1, 1], "x": 75, "y": 12}, + {"flags": 4, "matrix": [1, 0], "x": 0, "y": 12}, + {"flags": 4, "matrix": [2, 0], "x": 0, "y": 25}, + {"flags": 4, "matrix": [2, 1], "x": 75, "y": 25}, + {"flags": 4, "matrix": [2, 2], "x": 150, "y": 25}, {"flags": 4, "matrix": [2, 3], "x": 224, "y": 32}, - {"flags": 4, "matrix": [3, 2], "x": 150, "y": 38.4}, - {"flags": 4, "matrix": [3, 1], "x": 75, "y": 38.4}, - {"flags": 4, "matrix": [3, 0], "x": 0, "y": 38.4}, - {"flags": 4, "matrix": [4, 0], "x": 0, "y": 51.2}, - {"flags": 4, "matrix": [4, 1], "x": 75, "y": 51.2}, - {"flags": 4, "matrix": [4, 2], "x": 150, "y": 51.24}, - {"flags": 4, "matrix": [4, 3], "x": 224, "y": 57.6}, + {"flags": 4, "matrix": [3, 2], "x": 150, "y": 38}, + {"flags": 4, "matrix": [3, 1], "x": 75, "y": 38}, + {"flags": 4, "matrix": [3, 0], "x": 0, "y": 38}, + {"flags": 4, "matrix": [4, 0], "x": 0, "y": 51}, + {"flags": 4, "matrix": [4, 1], "x": 75, "y": 51}, + {"flags": 4, "matrix": [4, 2], "x": 150, "y": 51}, + {"flags": 4, "matrix": [4, 3], "x": 224, "y": 57}, {"flags": 4, "matrix": [5, 2], "x": 150, "y": 64}, - {"flags": 4, "matrix": [5, 0], "x": 37.5, "y": 64} + {"flags": 4, "matrix": [5, 0], "x": 37, "y": 64} ], "max_brightness": 128, "sleep": true diff --git a/keyboards/keebio/bamfk4/bamfk4.c b/keyboards/keebio/bamfk4/bamfk4.c index 52fe61e39e9..757bc03f722 100644 --- a/keyboards/keebio/bamfk4/bamfk4.c +++ b/keyboards/keebio/bamfk4/bamfk4.c @@ -10,16 +10,16 @@ led_config_t g_led_config = { { }, { // LED Index to Physical Position //through switch - { 26.6, 10 }, { 4.3, 10 }, { 3.8, 49.3 }, { 23.3, 49.3 }, - { 69.4, 49.3 }, { 68.9, 10 }, { 90.6, 10 }, { 89.5, 49.3 }, - { 134, 49.3 }, { 132.9, 10 }, { 155.7, 10 }, { 155.1, 49.3 }, - { 199.6, 49.3 }, { 199.6, 10 }, { 219.1, 10 }, { 219.1, 49.3 }, + { 26, 10 }, { 4, 10 }, { 3, 49 }, { 23, 49 }, + { 69, 49 }, { 68, 10 }, { 90, 10 }, { 89, 49 }, + { 134, 49 }, { 132, 10 }, { 155, 10 }, { 155, 49 }, + { 199, 49 }, { 199, 10 }, { 219, 10 }, { 219, 49 }, //underglow - { 218, 62.2 }, { 188.7, 62.2 }, { 159.5, 62.2 }, { 123.7, 62.2 }, //bottom right - { 100.3, 62.2 }, { 59.1, 62.2 }, { 35.3, 62.2 }, { 5.4, 62.2 }, //bottom left - { 6, 6.4 }, { 35.3, 6.4 }, { 59.1, 6.4 }, { 100.3, 6.4 }, //top left - { 123.7, 6.4 }, { 159.5, 6.4 }, { 188.7, 6.4 }, { 218, 6.4 } //top right + { 218, 62 }, { 188, 62 }, { 159, 62 }, { 123, 62 }, //bottom right + { 100, 62 }, { 59, 62 }, { 35, 62 }, { 5, 62 }, //bottom left + { 6, 6 }, { 35, 6 }, { 59, 6 }, { 100, 6 }, //top left + { 123, 6 }, { 159, 6 }, { 188, 6 }, { 218, 6 } //top right }, { // LED Index to Flag 4, 4, 4, 4, diff --git a/keyboards/meletrix/zoom98/keyboard.json b/keyboards/meletrix/zoom98/keyboard.json index e58d80f216e..b7d56729503 100644 --- a/keyboards/meletrix/zoom98/keyboard.json +++ b/keyboards/meletrix/zoom98/keyboard.json @@ -78,17 +78,17 @@ { "matrix": [6, 2], "x": 0, "y": 3, "flags": 4 }, { "matrix": [8, 1], "x": 0, "y": 4, "flags": 4 }, { "matrix": [8, 2], "x": 0, "y": 4, "flags": 4 }, - { "matrix": [1, 8], "x": 20.5, "y": 0, "flags": 4 }, - { "matrix": [1, 7], "x": 20.5, "y": 0, "flags": 4 }, - { "matrix": [3, 8], "x": 20.5, "y": 1, "flags": 4 }, - { "matrix": [3, 7], "x": 20.5, "y": 1, "flags": 4 }, - { "matrix": [5, 8], "x": 20.5, "y": 2, "flags": 4 }, - { "matrix": [5, 7], "x": 20.5, "y": 2, "flags": 4 }, - { "matrix": [7, 8], "x": 20.5, "y": 3, "flags": 4 }, - { "matrix": [7, 7], "x": 20.5, "y": 3, "flags": 4 }, - { "matrix": [9, 8], "x": 20.5, "y": 4, "flags": 4 }, - { "matrix": [9, 7], "x": 20.5, "y": 4, "flags": 4 }, - { "matrix": [6, 0], "x": 0, "y": 3.25, "flags": 1 } + { "matrix": [1, 8], "x": 20, "y": 0, "flags": 4 }, + { "matrix": [1, 7], "x": 20, "y": 0, "flags": 4 }, + { "matrix": [3, 8], "x": 20, "y": 1, "flags": 4 }, + { "matrix": [3, 7], "x": 20, "y": 1, "flags": 4 }, + { "matrix": [5, 8], "x": 20, "y": 2, "flags": 4 }, + { "matrix": [5, 7], "x": 20, "y": 2, "flags": 4 }, + { "matrix": [7, 8], "x": 20, "y": 3, "flags": 4 }, + { "matrix": [7, 7], "x": 20, "y": 3, "flags": 4 }, + { "matrix": [9, 8], "x": 20, "y": 4, "flags": 4 }, + { "matrix": [9, 7], "x": 20, "y": 4, "flags": 4 }, + { "matrix": [6, 0], "x": 0, "y": 3, "flags": 1 } ] }, "matrix_pins": { diff --git a/keyboards/projectd/65/projectd_65_ansi/keyboard.json b/keyboards/projectd/65/projectd_65_ansi/keyboard.json index 5d75389e2a0..32a95f965eb 100644 --- a/keyboards/projectd/65/projectd_65_ansi/keyboard.json +++ b/keyboards/projectd/65/projectd_65_ansi/keyboard.json @@ -118,43 +118,43 @@ { "flags": 4, "matrix": [7, 5], "x": 135, "y": 10 }, { "flags": 4, "matrix": [7, 3], "x": 150, "y": 10 }, { "flags": 1, "matrix": [2, 1], "x": 0, "y": 20 }, - { "flags": 4, "matrix": [1, 2], "x": 17.5, "y": 20 }, - { "flags": 4, "matrix": [2, 2], "x": 27.5, "y": 20 }, - { "flags": 4, "matrix": [3, 2], "x": 37.5, "y": 20 }, - { "flags": 4, "matrix": [4, 2], "x": 47.5, "y": 20 }, - { "flags": 4, "matrix": [4, 3], "x": 57.5, "y": 20 }, - { "flags": 4, "matrix": [5, 3], "x": 67.5, "y": 20 }, - { "flags": 4, "matrix": [5, 2], "x": 77.5, "y": 20 }, - { "flags": 4, "matrix": [6, 2], "x": 87.5, "y": 20 }, - { "flags": 4, "matrix": [7, 2], "x": 97.5, "y": 20 }, - { "flags": 4, "matrix": [8, 2], "x": 107.5, "y": 20 }, - { "flags": 4, "matrix": [8, 3], "x": 117.5, "y": 20 }, - { "flags": 4, "matrix": [8, 4], "x": 127.5, "y": 20 }, + { "flags": 4, "matrix": [1, 2], "x": 17, "y": 20 }, + { "flags": 4, "matrix": [2, 2], "x": 27, "y": 20 }, + { "flags": 4, "matrix": [3, 2], "x": 37, "y": 20 }, + { "flags": 4, "matrix": [4, 2], "x": 47, "y": 20 }, + { "flags": 4, "matrix": [4, 3], "x": 57, "y": 20 }, + { "flags": 4, "matrix": [5, 3], "x": 67, "y": 20 }, + { "flags": 4, "matrix": [5, 2], "x": 77, "y": 20 }, + { "flags": 4, "matrix": [6, 2], "x": 87, "y": 20 }, + { "flags": 4, "matrix": [7, 2], "x": 97, "y": 20 }, + { "flags": 4, "matrix": [8, 2], "x": 107, "y": 20 }, + { "flags": 4, "matrix": [8, 3], "x": 117, "y": 20 }, + { "flags": 4, "matrix": [8, 4], "x": 127, "y": 20 }, { "flags": 4, "matrix": [2, 6], "x": 150, "y": 20 }, { "flags": 4, "matrix": [0, 0], "x": 0, "y": 30 }, - { "flags": 4, "matrix": [1, 4], "x": 22.5, "y": 30 }, - { "flags": 4, "matrix": [2, 4], "x": 32.5, "y": 30 }, - { "flags": 4, "matrix": [3, 4], "x": 42.5, "y": 30 }, - { "flags": 4, "matrix": [4, 4], "x": 52.5, "y": 30 }, - { "flags": 4, "matrix": [4, 5], "x": 62.5, "y": 30 }, - { "flags": 4, "matrix": [5, 5], "x": 72.5, "y": 30 }, - { "flags": 4, "matrix": [5, 4], "x": 82.5, "y": 30 }, - { "flags": 4, "matrix": [6, 4], "x": 92.5, "y": 30 }, - { "flags": 4, "matrix": [7, 4], "x": 102.5, "y": 30 }, - { "flags": 4, "matrix": [8, 5], "x": 112.5, "y": 30 }, - { "flags": 4, "matrix": [0, 7], "x": 122.5, "y": 30 }, + { "flags": 4, "matrix": [1, 4], "x": 22, "y": 30 }, + { "flags": 4, "matrix": [2, 4], "x": 32, "y": 30 }, + { "flags": 4, "matrix": [3, 4], "x": 42, "y": 30 }, + { "flags": 4, "matrix": [4, 4], "x": 52, "y": 30 }, + { "flags": 4, "matrix": [4, 5], "x": 62, "y": 30 }, + { "flags": 4, "matrix": [5, 5], "x": 72, "y": 30 }, + { "flags": 4, "matrix": [5, 4], "x": 82, "y": 30 }, + { "flags": 4, "matrix": [6, 4], "x": 92, "y": 30 }, + { "flags": 4, "matrix": [7, 4], "x": 102, "y": 30 }, + { "flags": 4, "matrix": [8, 5], "x": 112, "y": 30 }, + { "flags": 4, "matrix": [0, 7], "x": 122, "y": 30 }, { "flags": 4, "matrix": [1, 6], "x": 140, "y": 30 }, { "flags": 4, "matrix": [6, 3], "x": 150, "y": 30 }, { "flags": 4, "matrix": [0, 6], "x": 0, "y": 40 }, - { "flags": 4, "matrix": [0, 5], "x": 12.5, "y": 40 }, + { "flags": 4, "matrix": [0, 5], "x": 12, "y": 40 }, { "flags": 4, "matrix": [0, 2], "x": 25, "y": 40 }, - { "flags": 4, "x": 61.5, "y": 40 }, - { "flags": 4, "x": 62.5, "y": 40 }, + { "flags": 4, "x": 61, "y": 40 }, + { "flags": 4, "x": 62, "y": 40 }, { "flags": 4, "matrix": [0, 1], "x": 65, "y": 40 }, - { "flags": 4, "x": 67.5, "y": 40 }, - { "flags": 4, "x": 68.5, "y": 40 }, + { "flags": 4, "x": 67, "y": 40 }, + { "flags": 4, "x": 68, "y": 40 }, { "flags": 4, "matrix": [3, 6], "x": 100, "y": 40 }, - { "flags": 4, "matrix": [3, 3], "x": 112.5, "y": 40 }, + { "flags": 4, "matrix": [3, 3], "x": 112, "y": 40 }, { "flags": 4, "matrix": [0, 3], "x": 130, "y": 40 }, { "flags": 4, "matrix": [1, 5], "x": 140, "y": 40 }, { "flags": 4, "matrix": [2, 5], "x": 150, "y": 40 } diff --git a/keyboards/projectd/75/ansi/keyboard.json b/keyboards/projectd/75/ansi/keyboard.json index 2296c639373..d94db22bfc0 100644 --- a/keyboards/projectd/75/ansi/keyboard.json +++ b/keyboards/projectd/75/ansi/keyboard.json @@ -88,97 +88,97 @@ "driver": "aw20216s", "layout": [ { "flags": 4, "matrix": [1, 3], "x": 0, "y": 0 }, - { "flags": 4, "matrix": [2, 6], "x": 12.5, "y": 0 }, - { "flags": 4, "matrix": [3, 6], "x": 22.5, "y": 0 }, - { "flags": 4, "matrix": [3, 1], "x": 32.5, "y": 0 }, - { "flags": 4, "matrix": [3, 3], "x": 42.5, "y": 0 }, + { "flags": 4, "matrix": [2, 6], "x": 12, "y": 0 }, + { "flags": 4, "matrix": [3, 6], "x": 22, "y": 0 }, + { "flags": 4, "matrix": [3, 1], "x": 32, "y": 0 }, + { "flags": 4, "matrix": [3, 3], "x": 42, "y": 0 }, { "flags": 4, "matrix": [0, 7], "x": 55, "y": 0 }, { "flags": 4, "matrix": [6, 3], "x": 65, "y": 0 }, { "flags": 4, "matrix": [7, 1], "x": 75, "y": 0 }, { "flags": 4, "matrix": [7, 6], "x": 85, "y": 0 }, - { "flags": 4, "matrix": [10, 6], "x": 97.5, "y": 0 }, - { "flags": 4, "matrix": [10, 7], "x": 107.5, "y": 0 }, - { "flags": 4, "matrix": [10, 3], "x": 117.5, "y": 0 }, - { "flags": 4, "matrix": [10, 5], "x": 127.5, "y": 0 }, + { "flags": 4, "matrix": [10, 6], "x": 97, "y": 0 }, + { "flags": 4, "matrix": [10, 7], "x": 107, "y": 0 }, + { "flags": 4, "matrix": [10, 3], "x": 117, "y": 0 }, + { "flags": 4, "matrix": [10, 5], "x": 127, "y": 0 }, { "flags": 4, "matrix": [9, 7], "x": 140, "y": 0 }, { "flags": 4, "matrix": [6, 5], "x": 155, "y": 0 }, - { "flags": 4, "matrix": [1, 6], "x": 0, "y": 12.5 }, - { "flags": 4, "matrix": [1, 7], "x": 10, "y": 12.5 }, - { "flags": 4, "matrix": [2, 7], "x": 20, "y": 12.5 }, - { "flags": 4, "matrix": [3, 7], "x": 30, "y": 12.5 }, - { "flags": 4, "matrix": [4, 7], "x": 40, "y": 12.5 }, - { "flags": 4, "matrix": [4, 6], "x": 50, "y": 12.5 }, - { "flags": 4, "matrix": [5, 6], "x": 60, "y": 12.5 }, - { "flags": 4, "matrix": [5, 7], "x": 70, "y": 12.5 }, - { "flags": 4, "matrix": [6, 7], "x": 80, "y": 12.5 }, - { "flags": 4, "matrix": [7, 7], "x": 90, "y": 12.5 }, - { "flags": 4, "matrix": [8, 7], "x": 100, "y": 12.5 }, - { "flags": 4, "matrix": [8, 6], "x": 110, "y": 12.5 }, - { "flags": 4, "matrix": [6, 6], "x": 120, "y": 12.5 }, - { "flags": 4, "matrix": [10, 1], "x": 130, "y": 12.5 }, - { "flags": 4, "matrix": [0, 2], "x": 155, "y": 12.5 }, + { "flags": 4, "matrix": [1, 6], "x": 0, "y": 12 }, + { "flags": 4, "matrix": [1, 7], "x": 10, "y": 12 }, + { "flags": 4, "matrix": [2, 7], "x": 20, "y": 12 }, + { "flags": 4, "matrix": [3, 7], "x": 30, "y": 12 }, + { "flags": 4, "matrix": [4, 7], "x": 40, "y": 12 }, + { "flags": 4, "matrix": [4, 6], "x": 50, "y": 12 }, + { "flags": 4, "matrix": [5, 6], "x": 60, "y": 12 }, + { "flags": 4, "matrix": [5, 7], "x": 70, "y": 12 }, + { "flags": 4, "matrix": [6, 7], "x": 80, "y": 12 }, + { "flags": 4, "matrix": [7, 7], "x": 90, "y": 12 }, + { "flags": 4, "matrix": [8, 7], "x": 100, "y": 12 }, + { "flags": 4, "matrix": [8, 6], "x": 110, "y": 12 }, + { "flags": 4, "matrix": [6, 6], "x": 120, "y": 12 }, + { "flags": 4, "matrix": [10, 1], "x": 130, "y": 12 }, + { "flags": 4, "matrix": [0, 2], "x": 155, "y": 12 }, - { "flags": 4, "matrix": [1, 1], "x": 0, "y": 22.5 }, - { "flags": 4, "matrix": [1, 0], "x": 15, "y": 22.5 }, - { "flags": 4, "matrix": [2, 0], "x": 25, "y": 22.5 }, - { "flags": 4, "matrix": [3, 0], "x": 35, "y": 22.5 }, - { "flags": 4, "matrix": [4, 0], "x": 45, "y": 22.5 }, - { "flags": 4, "matrix": [4, 1], "x": 55, "y": 22.5 }, - { "flags": 4, "matrix": [5, 1], "x": 65, "y": 22.5 }, - { "flags": 4, "matrix": [5, 0], "x": 75, "y": 22.5 }, - { "flags": 4, "matrix": [6, 0], "x": 85, "y": 22.5 }, - { "flags": 4, "matrix": [7, 0], "x": 95, "y": 22.5 }, - { "flags": 4, "matrix": [8, 0], "x": 105, "y": 22.5 }, - { "flags": 4, "matrix": [8, 1], "x": 115, "y": 22.5 }, - { "flags": 4, "matrix": [6, 1], "x": 125, "y": 22.5 }, - { "flags": 4, "matrix": [10, 2], "x": 135, "y": 22.5 }, - { "flags": 4, "matrix": [1, 5], "x": 155, "y": 22.5 }, + { "flags": 4, "matrix": [1, 1], "x": 0, "y": 22 }, + { "flags": 4, "matrix": [1, 0], "x": 15, "y": 22 }, + { "flags": 4, "matrix": [2, 0], "x": 25, "y": 22 }, + { "flags": 4, "matrix": [3, 0], "x": 35, "y": 22 }, + { "flags": 4, "matrix": [4, 0], "x": 45, "y": 22 }, + { "flags": 4, "matrix": [4, 1], "x": 55, "y": 22 }, + { "flags": 4, "matrix": [5, 1], "x": 65, "y": 22 }, + { "flags": 4, "matrix": [5, 0], "x": 75, "y": 22 }, + { "flags": 4, "matrix": [6, 0], "x": 85, "y": 22 }, + { "flags": 4, "matrix": [7, 0], "x": 95, "y": 22 }, + { "flags": 4, "matrix": [8, 0], "x": 105, "y": 22 }, + { "flags": 4, "matrix": [8, 1], "x": 115, "y": 22 }, + { "flags": 4, "matrix": [6, 1], "x": 125, "y": 22 }, + { "flags": 4, "matrix": [10, 2], "x": 135, "y": 22 }, + { "flags": 4, "matrix": [1, 5], "x": 155, "y": 22 }, - { "flags": 8, "matrix": [2, 1], "x": 0, "y": 32.5 }, - { "flags": 4, "matrix": [1, 2], "x": 17.5, "y": 32.5 }, - { "flags": 4, "matrix": [2, 2], "x": 27.5, "y": 32.5 }, - { "flags": 4, "matrix": [3, 2], "x": 37.5, "y": 32.5 }, - { "flags": 4, "matrix": [4, 2], "x": 47.5, "y": 32.5 }, - { "flags": 4, "matrix": [4, 3], "x": 57.5, "y": 32.5 }, - { "flags": 4, "matrix": [5, 3], "x": 67.5, "y": 32.5 }, - { "flags": 4, "matrix": [5, 2], "x": 77.5, "y": 32.5 }, - { "flags": 4, "matrix": [6, 2], "x": 87.5, "y": 32.5 }, - { "flags": 4, "matrix": [7, 2], "x": 97.5, "y": 32.5 }, - { "flags": 4, "matrix": [8, 2], "x": 107.5, "y": 32.5 }, - { "flags": 4, "matrix": [8, 3], "x": 117.5, "y": 32.5 }, - { "flags": 4, "matrix": [10, 4], "x": 127.5, "y": 32.5 }, - { "flags": 4, "matrix": [2, 5], "x": 155, "y": 32.5 }, + { "flags": 8, "matrix": [2, 1], "x": 0, "y": 32 }, + { "flags": 4, "matrix": [1, 2], "x": 17, "y": 32 }, + { "flags": 4, "matrix": [2, 2], "x": 27, "y": 32 }, + { "flags": 4, "matrix": [3, 2], "x": 37, "y": 32 }, + { "flags": 4, "matrix": [4, 2], "x": 47, "y": 32 }, + { "flags": 4, "matrix": [4, 3], "x": 57, "y": 32 }, + { "flags": 4, "matrix": [5, 3], "x": 67, "y": 32 }, + { "flags": 4, "matrix": [5, 2], "x": 77, "y": 32 }, + { "flags": 4, "matrix": [6, 2], "x": 87, "y": 32 }, + { "flags": 4, "matrix": [7, 2], "x": 97, "y": 32 }, + { "flags": 4, "matrix": [8, 2], "x": 107, "y": 32 }, + { "flags": 4, "matrix": [8, 3], "x": 117, "y": 32 }, + { "flags": 4, "matrix": [10, 4], "x": 127, "y": 32 }, + { "flags": 4, "matrix": [2, 5], "x": 155, "y": 32 }, - { "flags": 4, "matrix": [0, 0], "x": 0, "y": 42.5 }, - { "flags": 4, "matrix": [1, 4], "x": 22.5, "y": 42.5 }, - { "flags": 4, "matrix": [2, 4], "x": 32.5, "y": 42.5 }, - { "flags": 4, "matrix": [3, 4], "x": 42.5, "y": 42.5 }, - { "flags": 4, "matrix": [4, 4], "x": 52.5, "y": 42.5 }, - { "flags": 4, "matrix": [4, 5], "x": 62.5, "y": 42.5 }, - { "flags": 4, "matrix": [5, 5], "x": 72.5, "y": 42.5 }, - { "flags": 4, "matrix": [5, 4], "x": 82.5, "y": 42.5 }, - { "flags": 4, "matrix": [6, 4], "x": 92.5, "y": 42.5 }, - { "flags": 4, "matrix": [7, 4], "x": 102.5, "y": 42.5 }, - { "flags": 4, "matrix": [8, 5], "x": 112.5, "y": 42.5 }, - { "flags": 4, "matrix": [9, 1], "x": 122.5, "y": 42.5 }, - { "flags": 4, "matrix": [3, 5], "x": 142.5, "y": 45 }, - { "flags": 4, "matrix": [7, 5], "x": 155, "y": 42.5 }, + { "flags": 4, "matrix": [0, 0], "x": 0, "y": 42 }, + { "flags": 4, "matrix": [1, 4], "x": 22, "y": 42 }, + { "flags": 4, "matrix": [2, 4], "x": 32, "y": 42 }, + { "flags": 4, "matrix": [3, 4], "x": 42, "y": 42 }, + { "flags": 4, "matrix": [4, 4], "x": 52, "y": 42 }, + { "flags": 4, "matrix": [4, 5], "x": 62, "y": 42 }, + { "flags": 4, "matrix": [5, 5], "x": 72, "y": 42 }, + { "flags": 4, "matrix": [5, 4], "x": 82, "y": 42 }, + { "flags": 4, "matrix": [6, 4], "x": 92, "y": 42 }, + { "flags": 4, "matrix": [7, 4], "x": 102, "y": 42 }, + { "flags": 4, "matrix": [8, 5], "x": 112, "y": 42 }, + { "flags": 4, "matrix": [9, 1], "x": 122, "y": 42 }, + { "flags": 4, "matrix": [3, 5], "x": 142, "y": 45 }, + { "flags": 4, "matrix": [7, 5], "x": 155, "y": 42 }, - { "flags": 4, "matrix": [0, 6], "x": 0, "y": 52.5 }, - { "flags": 4, "matrix": [9, 0], "x": 12.5, "y": 52.5 }, - { "flags": 4, "matrix": [9, 3], "x": 25, "y": 52.5 }, - { "flags": 4, "x": 61.5, "y": 52.5 }, - { "flags": 4, "x": 62.5, "y": 52.5 }, - { "flags": 4, "matrix": [9, 4], "x": 65, "y": 52.5 }, - { "flags": 4, "x": 67.5, "y": 52.5 }, - { "flags": 4, "x": 68.5, "y": 52.5 }, - { "flags": 4, "matrix": [9, 5], "x": 100, "y": 52.5 }, - { "flags": 4, "matrix": [9, 2], "x": 110, "y": 52.5 }, - { "flags": 4, "matrix": [0, 4], "x": 120, "y": 52.5 }, - { "flags": 4, "matrix": [0, 3], "x": 132.5, "y": 52.5 }, - { "flags": 4, "matrix": [7, 3], "x": 142.5, "y": 52.5 }, - { "flags": 4, "matrix": [0, 5], "x": 152.5, "y": 52.5 } + { "flags": 4, "matrix": [0, 6], "x": 0, "y": 52 }, + { "flags": 4, "matrix": [9, 0], "x": 12, "y": 52 }, + { "flags": 4, "matrix": [9, 3], "x": 25, "y": 52 }, + { "flags": 4, "x": 61, "y": 52 }, + { "flags": 4, "x": 62, "y": 52 }, + { "flags": 4, "matrix": [9, 4], "x": 65, "y": 52 }, + { "flags": 4, "x": 67, "y": 52 }, + { "flags": 4, "x": 68, "y": 52 }, + { "flags": 4, "matrix": [9, 5], "x": 100, "y": 52 }, + { "flags": 4, "matrix": [9, 2], "x": 110, "y": 52 }, + { "flags": 4, "matrix": [0, 4], "x": 120, "y": 52 }, + { "flags": 4, "matrix": [0, 3], "x": 132, "y": 52 }, + { "flags": 4, "matrix": [7, 3], "x": 142, "y": 52 }, + { "flags": 4, "matrix": [0, 5], "x": 152, "y": 52 } ], "sleep": true }, diff --git a/keyboards/projectd/75/iso/keyboard.json b/keyboards/projectd/75/iso/keyboard.json index d8615000316..d42e8c4b339 100644 --- a/keyboards/projectd/75/iso/keyboard.json +++ b/keyboards/projectd/75/iso/keyboard.json @@ -82,98 +82,98 @@ "sleep": true, "layout": [ { "flags": 4, "matrix": [1, 3], "x": 0, "y": 0 }, - { "flags": 4, "matrix": [2, 6], "x": 12.5, "y": 0 }, - { "flags": 4, "matrix": [3, 6], "x": 22.5, "y": 0 }, - { "flags": 4, "matrix": [3, 1], "x": 32.5, "y": 0 }, - { "flags": 4, "matrix": [3, 3], "x": 42.5, "y": 0 }, + { "flags": 4, "matrix": [2, 6], "x": 12, "y": 0 }, + { "flags": 4, "matrix": [3, 6], "x": 22, "y": 0 }, + { "flags": 4, "matrix": [3, 1], "x": 32, "y": 0 }, + { "flags": 4, "matrix": [3, 3], "x": 42, "y": 0 }, { "flags": 4, "matrix": [0, 7], "x": 55, "y": 0 }, { "flags": 4, "matrix": [6, 3], "x": 65, "y": 0 }, { "flags": 4, "matrix": [7, 1], "x": 75, "y": 0 }, { "flags": 4, "matrix": [7, 6], "x": 85, "y": 0 }, - { "flags": 4, "matrix": [10, 6], "x": 97.5, "y": 0 }, - { "flags": 4, "matrix": [10, 7], "x": 107.5, "y": 0 }, - { "flags": 4, "matrix": [10, 3], "x": 117.5, "y": 0 }, - { "flags": 4, "matrix": [10, 5], "x": 127.5, "y": 0 }, + { "flags": 4, "matrix": [10, 6], "x": 97, "y": 0 }, + { "flags": 4, "matrix": [10, 7], "x": 107, "y": 0 }, + { "flags": 4, "matrix": [10, 3], "x": 117, "y": 0 }, + { "flags": 4, "matrix": [10, 5], "x": 127, "y": 0 }, { "flags": 4, "matrix": [9, 7], "x": 140, "y": 0 }, { "flags": 4, "matrix": [6, 5], "x": 155, "y": 0 }, - { "flags": 4, "matrix": [1, 6], "x": 0, "y": 12.5 }, - { "flags": 4, "matrix": [1, 7], "x": 10, "y": 12.5 }, - { "flags": 4, "matrix": [2, 7], "x": 20, "y": 12.5 }, - { "flags": 4, "matrix": [3, 7], "x": 30, "y": 12.5 }, - { "flags": 4, "matrix": [4, 7], "x": 40, "y": 12.5 }, - { "flags": 4, "matrix": [4, 6], "x": 50, "y": 12.5 }, - { "flags": 4, "matrix": [5, 6], "x": 60, "y": 12.5 }, - { "flags": 4, "matrix": [5, 7], "x": 70, "y": 12.5 }, - { "flags": 4, "matrix": [6, 7], "x": 80, "y": 12.5 }, - { "flags": 4, "matrix": [7, 7], "x": 90, "y": 12.5 }, - { "flags": 4, "matrix": [8, 7], "x": 100, "y": 12.5 }, - { "flags": 4, "matrix": [8, 6], "x": 110, "y": 12.5 }, - { "flags": 4, "matrix": [6, 6], "x": 120, "y": 12.5 }, - { "flags": 4, "matrix": [10, 1], "x": 130, "y": 12.5 }, - { "flags": 4, "matrix": [0, 2], "x": 155, "y": 12.5 }, + { "flags": 4, "matrix": [1, 6], "x": 0, "y": 12 }, + { "flags": 4, "matrix": [1, 7], "x": 10, "y": 12 }, + { "flags": 4, "matrix": [2, 7], "x": 20, "y": 12 }, + { "flags": 4, "matrix": [3, 7], "x": 30, "y": 12 }, + { "flags": 4, "matrix": [4, 7], "x": 40, "y": 12 }, + { "flags": 4, "matrix": [4, 6], "x": 50, "y": 12 }, + { "flags": 4, "matrix": [5, 6], "x": 60, "y": 12 }, + { "flags": 4, "matrix": [5, 7], "x": 70, "y": 12 }, + { "flags": 4, "matrix": [6, 7], "x": 80, "y": 12 }, + { "flags": 4, "matrix": [7, 7], "x": 90, "y": 12 }, + { "flags": 4, "matrix": [8, 7], "x": 100, "y": 12 }, + { "flags": 4, "matrix": [8, 6], "x": 110, "y": 12 }, + { "flags": 4, "matrix": [6, 6], "x": 120, "y": 12 }, + { "flags": 4, "matrix": [10, 1], "x": 130, "y": 12 }, + { "flags": 4, "matrix": [0, 2], "x": 155, "y": 12 }, - { "flags": 4, "matrix": [1, 1], "x": 0, "y": 22.5 }, - { "flags": 4, "matrix": [1, 0], "x": 15, "y": 22.5 }, - { "flags": 4, "matrix": [2, 0], "x": 25, "y": 22.5 }, - { "flags": 4, "matrix": [3, 0], "x": 35, "y": 22.5 }, - { "flags": 4, "matrix": [4, 0], "x": 45, "y": 22.5 }, - { "flags": 4, "matrix": [4, 1], "x": 55, "y": 22.5 }, - { "flags": 4, "matrix": [5, 1], "x": 65, "y": 22.5 }, - { "flags": 4, "matrix": [5, 0], "x": 75, "y": 22.5 }, - { "flags": 4, "matrix": [6, 0], "x": 85, "y": 22.5 }, - { "flags": 4, "matrix": [7, 0], "x": 95, "y": 22.5 }, - { "flags": 4, "matrix": [8, 0], "x": 105, "y": 22.5 }, - { "flags": 4, "matrix": [8, 1], "x": 115, "y": 22.5 }, - { "flags": 4, "matrix": [6, 1], "x": 125, "y": 22.5 }, - { "flags": 4, "matrix": [1, 5], "x": 155.5, "y": 22.5 }, + { "flags": 4, "matrix": [1, 1], "x": 0, "y": 22 }, + { "flags": 4, "matrix": [1, 0], "x": 15, "y": 22 }, + { "flags": 4, "matrix": [2, 0], "x": 25, "y": 22 }, + { "flags": 4, "matrix": [3, 0], "x": 35, "y": 22 }, + { "flags": 4, "matrix": [4, 0], "x": 45, "y": 22 }, + { "flags": 4, "matrix": [4, 1], "x": 55, "y": 22 }, + { "flags": 4, "matrix": [5, 1], "x": 65, "y": 22 }, + { "flags": 4, "matrix": [5, 0], "x": 75, "y": 22 }, + { "flags": 4, "matrix": [6, 0], "x": 85, "y": 22 }, + { "flags": 4, "matrix": [7, 0], "x": 95, "y": 22 }, + { "flags": 4, "matrix": [8, 0], "x": 105, "y": 22 }, + { "flags": 4, "matrix": [8, 1], "x": 115, "y": 22 }, + { "flags": 4, "matrix": [6, 1], "x": 125, "y": 22 }, + { "flags": 4, "matrix": [1, 5], "x": 155, "y": 22 }, - { "flags": 8, "matrix": [2, 1], "x": 0, "y": 32.5 }, - { "flags": 4, "matrix": [1, 2], "x": 17.5, "y": 32.5 }, - { "flags": 4, "matrix": [2, 2], "x": 27.5, "y": 32.5 }, - { "flags": 4, "matrix": [3, 2], "x": 37.5, "y": 32.5 }, - { "flags": 4, "matrix": [4, 2], "x": 47.5, "y": 32.5 }, - { "flags": 4, "matrix": [4, 3], "x": 57.5, "y": 32.5 }, - { "flags": 4, "matrix": [5, 3], "x": 67.5, "y": 32.5 }, - { "flags": 4, "matrix": [5, 2], "x": 77.5, "y": 32.5 }, - { "flags": 4, "matrix": [6, 2], "x": 87.5, "y": 32.5 }, - { "flags": 4, "matrix": [7, 2], "x": 97.5, "y": 32.5 }, - { "flags": 4, "matrix": [8, 2], "x": 107.5, "y": 32.5 }, - { "flags": 4, "matrix": [8, 3], "x": 117.5, "y": 32.5 }, - { "flags": 4, "matrix": [10, 2], "x": 127.5, "y": 32.5 }, - { "flags": 4, "matrix": [10, 4], "x": 137.5, "y": 22.5 }, - { "flags": 4, "matrix": [2, 5], "x": 155.5, "y": 32.5 }, + { "flags": 8, "matrix": [2, 1], "x": 0, "y": 32 }, + { "flags": 4, "matrix": [1, 2], "x": 17, "y": 32 }, + { "flags": 4, "matrix": [2, 2], "x": 27, "y": 32 }, + { "flags": 4, "matrix": [3, 2], "x": 37, "y": 32 }, + { "flags": 4, "matrix": [4, 2], "x": 47, "y": 32 }, + { "flags": 4, "matrix": [4, 3], "x": 57, "y": 32 }, + { "flags": 4, "matrix": [5, 3], "x": 67, "y": 32 }, + { "flags": 4, "matrix": [5, 2], "x": 77, "y": 32 }, + { "flags": 4, "matrix": [6, 2], "x": 87, "y": 32 }, + { "flags": 4, "matrix": [7, 2], "x": 97, "y": 32 }, + { "flags": 4, "matrix": [8, 2], "x": 107, "y": 32 }, + { "flags": 4, "matrix": [8, 3], "x": 117, "y": 32 }, + { "flags": 4, "matrix": [10, 2], "x": 127, "y": 32 }, + { "flags": 4, "matrix": [10, 4], "x": 137, "y": 22 }, + { "flags": 4, "matrix": [2, 5], "x": 155, "y": 32 }, - { "flags": 4, "matrix": [0, 0], "x": 0, "y": 42.5 }, - { "flags": 4, "matrix": [0, 1], "x": 12.5, "y": 42.5 }, - { "flags": 4, "matrix": [1, 4], "x": 22.5, "y": 42.5 }, - { "flags": 4, "matrix": [2, 4], "x": 32.5, "y": 42.5 }, - { "flags": 4, "matrix": [3, 4], "x": 42.5, "y": 42.5 }, - { "flags": 4, "matrix": [4, 4], "x": 52.5, "y": 42.5 }, - { "flags": 4, "matrix": [4, 5], "x": 62.5, "y": 42.5 }, - { "flags": 4, "matrix": [5, 5], "x": 72.5, "y": 42.5 }, - { "flags": 4, "matrix": [5, 4], "x": 82.5, "y": 42.5 }, - { "flags": 4, "matrix": [6, 4], "x": 92.5, "y": 42.5 }, - { "flags": 4, "matrix": [7, 4], "x": 102.5, "y": 42.5 }, - { "flags": 4, "matrix": [8, 5], "x": 112.5, "y": 42.5 }, - { "flags": 4, "matrix": [9, 1], "x": 122.5, "y": 42.5 }, - { "flags": 4, "matrix": [3, 5], "x": 142.5, "y": 45 }, - { "flags": 4, "matrix": [7, 5], "x": 155, "y": 42.5 }, + { "flags": 4, "matrix": [0, 0], "x": 0, "y": 42 }, + { "flags": 4, "matrix": [0, 1], "x": 12, "y": 42 }, + { "flags": 4, "matrix": [1, 4], "x": 22, "y": 42 }, + { "flags": 4, "matrix": [2, 4], "x": 32, "y": 42 }, + { "flags": 4, "matrix": [3, 4], "x": 42, "y": 42 }, + { "flags": 4, "matrix": [4, 4], "x": 52, "y": 42 }, + { "flags": 4, "matrix": [4, 5], "x": 62, "y": 42 }, + { "flags": 4, "matrix": [5, 5], "x": 72, "y": 42 }, + { "flags": 4, "matrix": [5, 4], "x": 82, "y": 42 }, + { "flags": 4, "matrix": [6, 4], "x": 92, "y": 42 }, + { "flags": 4, "matrix": [7, 4], "x": 102, "y": 42 }, + { "flags": 4, "matrix": [8, 5], "x": 112, "y": 42 }, + { "flags": 4, "matrix": [9, 1], "x": 122, "y": 42 }, + { "flags": 4, "matrix": [3, 5], "x": 142, "y": 45 }, + { "flags": 4, "matrix": [7, 5], "x": 155, "y": 42 }, - { "flags": 4, "matrix": [0, 6], "x": 0, "y": 52.5 }, - { "flags": 4, "matrix": [9, 0], "x": 12.5, "y": 52.5 }, - { "flags": 4, "matrix": [9, 3], "x": 25, "y": 52.5 }, - { "flags": 4, "x": 61.5, "y": 52.5 }, - { "flags": 4, "x": 62.5, "y": 52.5 }, - { "flags": 4, "matrix": [9, 4], "x": 65, "y": 52.5 }, - { "flags": 4, "x": 67.5, "y": 52.5 }, - { "flags": 4, "x": 68.5, "y": 52.5 }, - { "flags": 4, "matrix": [9, 5], "x": 100, "y": 52.5 }, - { "flags": 4, "matrix": [9, 2], "x": 110, "y": 52.5 }, - { "flags": 4, "matrix": [0, 4], "x": 120, "y": 52.5 }, - { "flags": 4, "matrix": [0, 3], "x": 132.5, "y": 52.5 }, - { "flags": 4, "matrix": [7, 3], "x": 142.5, "y": 52.5 }, - { "flags": 4, "matrix": [0, 5], "x": 152.5, "y": 52.5 } + { "flags": 4, "matrix": [0, 6], "x": 0, "y": 52 }, + { "flags": 4, "matrix": [9, 0], "x": 12, "y": 52 }, + { "flags": 4, "matrix": [9, 3], "x": 25, "y": 52 }, + { "flags": 4, "x": 61, "y": 52 }, + { "flags": 4, "x": 62, "y": 52 }, + { "flags": 4, "matrix": [9, 4], "x": 65, "y": 52 }, + { "flags": 4, "x": 67, "y": 52 }, + { "flags": 4, "x": 68, "y": 52 }, + { "flags": 4, "matrix": [9, 5], "x": 100, "y": 52 }, + { "flags": 4, "matrix": [9, 2], "x": 110, "y": 52 }, + { "flags": 4, "matrix": [0, 4], "x": 120, "y": 52 }, + { "flags": 4, "matrix": [0, 3], "x": 132, "y": 52 }, + { "flags": 4, "matrix": [7, 3], "x": 142, "y": 52 }, + { "flags": 4, "matrix": [0, 5], "x": 152, "y": 52 } ] }, "url": "", diff --git a/keyboards/rot13labs/h4ckb0ard/keyboard.json b/keyboards/rot13labs/h4ckb0ard/keyboard.json index 0ffe5be40de..4ac783774de 100644 --- a/keyboards/rot13labs/h4ckb0ard/keyboard.json +++ b/keyboards/rot13labs/h4ckb0ard/keyboard.json @@ -67,38 +67,38 @@ {"flags": 4, "matrix": [0, 0], "x": 11, "y": 0}, {"flags": 4, "matrix": [1, 0], "x": 0, "y": 1}, - {"flags": 4, "matrix": [1, 1], "x": 1.25, "y": 1}, - {"flags": 4, "matrix": [1, 2], "x": 2.25, "y": 1}, - {"flags": 4, "matrix": [1, 3], "x": 3.25, "y": 1}, - {"flags": 4, "matrix": [1, 4], "x": 4.25, "y": 1}, - {"flags": 4, "matrix": [1, 5], "x": 5.25, "y": 1}, - {"flags": 4, "matrix": [1, 6], "x": 6.25, "y": 1}, - {"flags": 4, "matrix": [1, 7], "x": 7.25, "y": 1}, - {"flags": 4, "matrix": [1, 8], "x": 8.25, "y": 1}, - {"flags": 4, "matrix": [1, 9], "x": 9.25, "y": 1}, - {"flags": 4, "matrix": [1, 11], "x": 10.25, "y": 1}, + {"flags": 4, "matrix": [1, 1], "x": 1, "y": 1}, + {"flags": 4, "matrix": [1, 2], "x": 2, "y": 1}, + {"flags": 4, "matrix": [1, 3], "x": 3, "y": 1}, + {"flags": 4, "matrix": [1, 4], "x": 4, "y": 1}, + {"flags": 4, "matrix": [1, 5], "x": 5, "y": 1}, + {"flags": 4, "matrix": [1, 6], "x": 6, "y": 1}, + {"flags": 4, "matrix": [1, 7], "x": 7, "y": 1}, + {"flags": 4, "matrix": [1, 8], "x": 8, "y": 1}, + {"flags": 4, "matrix": [1, 9], "x": 9, "y": 1}, + {"flags": 4, "matrix": [1, 11], "x": 10, "y": 1}, {"flags": 4, "matrix": [2, 11], "x": 0, "y": 2}, - {"flags": 4, "matrix": [2, 10], "x": 1.75, "y": 2}, - {"flags": 4, "matrix": [2, 8], "x": 2.75, "y": 2}, - {"flags": 4, "matrix": [2, 7], "x": 3.75, "y": 2}, - {"flags": 4, "matrix": [2, 6], "x": 4.75, "y": 2}, - {"flags": 4, "matrix": [2, 5], "x": 5.75, "y": 2}, - {"flags": 4, "matrix": [2, 4], "x": 6.75, "y": 2}, - {"flags": 4, "matrix": [2, 3], "x": 7.75, "y": 2}, - {"flags": 4, "matrix": [2, 2], "x": 8.75, "y": 2}, - {"flags": 4, "matrix": [2, 1], "x": 10.5, "y": 2}, - {"flags": 4, "matrix": [2, 0], "x": 11.5, "y": 2}, + {"flags": 4, "matrix": [2, 10], "x": 1, "y": 2}, + {"flags": 4, "matrix": [2, 8], "x": 2, "y": 2}, + {"flags": 4, "matrix": [2, 7], "x": 3, "y": 2}, + {"flags": 4, "matrix": [2, 6], "x": 4, "y": 2}, + {"flags": 4, "matrix": [2, 5], "x": 5, "y": 2}, + {"flags": 4, "matrix": [2, 4], "x": 6, "y": 2}, + {"flags": 4, "matrix": [2, 3], "x": 7, "y": 2}, + {"flags": 4, "matrix": [2, 2], "x": 8, "y": 2}, + {"flags": 4, "matrix": [2, 1], "x": 10, "y": 2}, + {"flags": 4, "matrix": [2, 0], "x": 11, "y": 2}, {"flags": 4, "matrix": [3, 0], "x": 0, "y": 3}, - {"flags": 4, "matrix": [3, 1], "x": 1.25, "y": 3}, - {"flags": 4, "matrix": [3, 2], "x": 2.5, "y": 3}, - {"flags": 4, "matrix": [3, 4], "x": 3.5, "y": 3}, - {"flags": 4, "matrix": [3, 6], "x": 5.75, "y": 3}, - {"flags": 4, "matrix": [3, 8], "x": 8.5, "y": 3}, - {"flags": 4, "matrix": [3, 9], "x": 9.5, "y": 3}, - {"flags": 4, "matrix": [3, 10], "x": 10.5, "y": 3}, - {"flags": 4, "matrix": [3, 11], "x": 11.5, "y": 3} + {"flags": 4, "matrix": [3, 1], "x": 1, "y": 3}, + {"flags": 4, "matrix": [3, 2], "x": 2, "y": 3}, + {"flags": 4, "matrix": [3, 4], "x": 3, "y": 3}, + {"flags": 4, "matrix": [3, 6], "x": 5, "y": 3}, + {"flags": 4, "matrix": [3, 8], "x": 8, "y": 3}, + {"flags": 4, "matrix": [3, 9], "x": 9, "y": 3}, + {"flags": 4, "matrix": [3, 10], "x": 10, "y": 3}, + {"flags": 4, "matrix": [3, 11], "x": 11, "y": 3} ], "max_brightness": 100 diff --git a/keyboards/skeletonkbd/frost68/keyboard.json b/keyboards/skeletonkbd/frost68/keyboard.json index 0411a3826d5..28b819e0d01 100644 --- a/keyboards/skeletonkbd/frost68/keyboard.json +++ b/keyboards/skeletonkbd/frost68/keyboard.json @@ -76,74 +76,74 @@ }, "driver": "ws2812", "layout": [ - {"matrix": [0, 0], "x": 33.1, "y": 3.7, "flags": 4}, - {"matrix": [0, 1], "x": 45.7, "y": 3.7, "flags": 4}, - {"matrix": [0, 2], "x": 58.3, "y": 2.4, "flags": 4}, - {"matrix": [0, 3], "x": 71.1, "y": 6.4, "flags": 4}, - {"matrix": [0, 4], "x": 83.4, "y": 10.4, "flags": 4}, - {"matrix": [0, 5], "x": 95.7, "y": 14.3, "flags": 4}, - {"matrix": [0, 6], "x": 108, "y": 18.3, "flags": 4}, - {"matrix": [1, 5], "x": 99.3, "y": 35, "flags": 4}, - {"matrix": [1, 4], "x": 86.9, "y": 31, "flags": 4}, - {"matrix": [1, 3], "x": 74.6, "y": 27, "flags": 4}, - {"matrix": [1, 2], "x": 62.3, "y": 23.1, "flags": 4}, - {"matrix": [1, 1], "x": 49.2, "y": 22.7, "flags": 4}, - {"matrix": [1, 0], "x": 33.5, "y": 22.7, "flags": 1}, - {"matrix": [2, 0], "x": 32.3, "y": 41.8, "flags": 1}, - {"matrix": [2, 1], "x": 49.7, "y": 41.8, "flags": 4}, - {"matrix": [2, 2], "x": 62.7, "y": 42.7, "flags": 4}, - {"matrix": [2, 3], "x": 75.1, "y": 46.7, "flags": 4}, - {"matrix": [2, 4], "x": 87.4, "y": 50.6, "flags": 4}, - {"matrix": [2, 5], "x": 99.7, "y": 54.6, "flags": 4}, - {"matrix": [3, 5], "x": 103.3, "y": 75.2, "flags": 4}, - {"matrix": [3, 4], "x": 90.9, "y": 71.2, "flags": 4}, - {"matrix": [3, 3], "x": 78.6, "y": 67.3, "flags": 4}, - {"matrix": [3, 2], "x": 66.3, "y": 63.3, "flags": 4}, - {"matrix": [3, 1], "x": 53.3, "y": 60.8, "flags": 4}, - {"matrix": [3, 0], "x": 32.8, "y": 60.8, "flags": 1}, - {"matrix": [4, 0], "x": 28.1, "y": 79.9, "flags": 1}, - {"matrix": [4, 1], "x": 47, "y": 79.9, "flags": 1}, - {"matrix": [4, 3], "x": 80.6, "y": 87.4, "flags": 4}, - {"matrix": [4, 5], "x": 100.6, "y": 93.8, "flags": 4}, - {"matrix": [4, 7], "x": 140.2, "y": 90.4, "flags": 4}, - {"matrix": [4, 10], "x": 166.4, "y": 82.5, "flags": 1}, - {"matrix": [4, 12], "x": 195.7, "y": 79.9, "flags": 1}, - {"matrix": [4, 13], "x": 211.4, "y": 79.9, "flags": 4}, - {"matrix": [4, 14], "x": 224, "y": 79.9, "flags": 4}, - {"matrix": [4, 15], "x": 236.6, "y": 79.9, "flags": 4}, - {"matrix": [3, 14], "x": 224, "y": 60.8, "flags": 4}, - {"matrix": [3, 13], "x": 206.7, "y": 60.8, "flags": 1}, - {"matrix": [3, 12], "x": 189.4, "y": 60.8, "flags": 4}, - {"matrix": [3, 11], "x": 176.8, "y": 60.8, "flags": 4}, - {"matrix": [3, 10], "x": 163.7, "y": 63.3, "flags": 4}, - {"matrix": [3, 9], "x": 151.4, "y": 67.3, "flags": 4}, - {"matrix": [3, 8], "x": 139.1, "y": 71.2, "flags": 4}, - {"matrix": [3, 7], "x": 126.8, "y": 75.2, "flags": 4}, - {"matrix": [2, 7], "x": 130.3, "y": 54.6, "flags": 4}, - {"matrix": [2, 8], "x": 142.6, "y": 50.6, "flags": 4}, - {"matrix": [2, 9], "x": 155, "y": 46.7, "flags": 4}, - {"matrix": [2, 10], "x": 167.3, "y": 42.7, "flags": 4}, - {"matrix": [2, 11], "x": 180.4, "y": 41.8, "flags": 4}, - {"matrix": [2, 12], "x": 193, "y": 41.8, "flags": 4}, - {"matrix": [2, 13], "x": 213.4, "y": 41.8, "flags": 4}, - {"matrix": [2, 15], "x": 236.6, "y": 39.6, "flags": 4}, - {"matrix": [1, 15], "x": 235.3, "y": 20.5, "flags": 4}, - {"matrix": [1, 14], "x": 217.4, "y": 22.7, "flags": 4}, - {"matrix": [1, 13], "x": 201.6, "y": 22.7, "flags": 4}, - {"matrix": [1, 12], "x": 189, "y": 22.7, "flags": 4}, - {"matrix": [1, 11], "x": 176.4, "y": 22, "flags": 4}, - {"matrix": [1, 10], "x": 163.4, "y": 24.5, "flags": 4}, - {"matrix": [1, 9], "x": 151.1, "y": 28.4, "flags": 4}, - {"matrix": [1, 8], "x": 138.7, "y": 32.4, "flags": 4}, - {"matrix": [1, 7], "x": 126.4, "y": 36.4, "flags": 4}, - {"matrix": [0, 7], "x": 128.1, "y": 16.3, "flags": 4}, - {"matrix": [0, 8], "x": 140.5, "y": 12.4, "flags": 4}, - {"matrix": [0, 9], "x": 152.8, "y": 8.4, "flags": 4}, - {"matrix": [0, 10], "x": 165.1, "y": 4.4, "flags": 4}, - {"matrix": [0, 11], "x": 178.2, "y": 2.9, "flags": 4}, - {"matrix": [0, 12], "x": 190.8, "y": 3.7, "flags": 4}, - {"matrix": [0, 14], "x": 209.7, "y": 3.7, "flags": 1}, - {"matrix": [0, 15], "x": 233.9, "y": 1.5, "flags": 4} + {"matrix": [0, 0], "x": 33, "y": 3, "flags": 4}, + {"matrix": [0, 1], "x": 45, "y": 3, "flags": 4}, + {"matrix": [0, 2], "x": 58, "y": 2, "flags": 4}, + {"matrix": [0, 3], "x": 71, "y": 6, "flags": 4}, + {"matrix": [0, 4], "x": 83, "y": 10, "flags": 4}, + {"matrix": [0, 5], "x": 95, "y": 14, "flags": 4}, + {"matrix": [0, 6], "x": 108, "y": 18, "flags": 4}, + {"matrix": [1, 5], "x": 99, "y": 35, "flags": 4}, + {"matrix": [1, 4], "x": 86, "y": 31, "flags": 4}, + {"matrix": [1, 3], "x": 74, "y": 27, "flags": 4}, + {"matrix": [1, 2], "x": 62, "y": 23, "flags": 4}, + {"matrix": [1, 1], "x": 49, "y": 22, "flags": 4}, + {"matrix": [1, 0], "x": 33, "y": 22, "flags": 1}, + {"matrix": [2, 0], "x": 32, "y": 41, "flags": 1}, + {"matrix": [2, 1], "x": 49, "y": 41, "flags": 4}, + {"matrix": [2, 2], "x": 62, "y": 42, "flags": 4}, + {"matrix": [2, 3], "x": 75, "y": 46, "flags": 4}, + {"matrix": [2, 4], "x": 87, "y": 50, "flags": 4}, + {"matrix": [2, 5], "x": 99, "y": 54, "flags": 4}, + {"matrix": [3, 5], "x": 103, "y": 75, "flags": 4}, + {"matrix": [3, 4], "x": 90, "y": 71, "flags": 4}, + {"matrix": [3, 3], "x": 78, "y": 67, "flags": 4}, + {"matrix": [3, 2], "x": 66, "y": 63, "flags": 4}, + {"matrix": [3, 1], "x": 53, "y": 60, "flags": 4}, + {"matrix": [3, 0], "x": 32, "y": 60, "flags": 1}, + {"matrix": [4, 0], "x": 28, "y": 79, "flags": 1}, + {"matrix": [4, 1], "x": 47, "y": 79, "flags": 1}, + {"matrix": [4, 3], "x": 80, "y": 87, "flags": 4}, + {"matrix": [4, 5], "x": 100, "y": 93, "flags": 4}, + {"matrix": [4, 7], "x": 140, "y": 90, "flags": 4}, + {"matrix": [4, 10], "x": 166, "y": 82, "flags": 1}, + {"matrix": [4, 12], "x": 195, "y": 79, "flags": 1}, + {"matrix": [4, 13], "x": 211, "y": 79, "flags": 4}, + {"matrix": [4, 14], "x": 224, "y": 79, "flags": 4}, + {"matrix": [4, 15], "x": 236, "y": 79, "flags": 4}, + {"matrix": [3, 14], "x": 224, "y": 60, "flags": 4}, + {"matrix": [3, 13], "x": 206, "y": 60, "flags": 1}, + {"matrix": [3, 12], "x": 189, "y": 60, "flags": 4}, + {"matrix": [3, 11], "x": 176, "y": 60, "flags": 4}, + {"matrix": [3, 10], "x": 163, "y": 63, "flags": 4}, + {"matrix": [3, 9], "x": 151, "y": 67, "flags": 4}, + {"matrix": [3, 8], "x": 139, "y": 71, "flags": 4}, + {"matrix": [3, 7], "x": 126, "y": 75, "flags": 4}, + {"matrix": [2, 7], "x": 130, "y": 54, "flags": 4}, + {"matrix": [2, 8], "x": 142, "y": 50, "flags": 4}, + {"matrix": [2, 9], "x": 155, "y": 46, "flags": 4}, + {"matrix": [2, 10], "x": 167, "y": 42, "flags": 4}, + {"matrix": [2, 11], "x": 180, "y": 41, "flags": 4}, + {"matrix": [2, 12], "x": 193, "y": 41, "flags": 4}, + {"matrix": [2, 13], "x": 213, "y": 41, "flags": 4}, + {"matrix": [2, 15], "x": 236, "y": 39, "flags": 4}, + {"matrix": [1, 15], "x": 235, "y": 20, "flags": 4}, + {"matrix": [1, 14], "x": 217, "y": 22, "flags": 4}, + {"matrix": [1, 13], "x": 201, "y": 22, "flags": 4}, + {"matrix": [1, 12], "x": 189, "y": 22, "flags": 4}, + {"matrix": [1, 11], "x": 176, "y": 22, "flags": 4}, + {"matrix": [1, 10], "x": 163, "y": 24, "flags": 4}, + {"matrix": [1, 9], "x": 151, "y": 28, "flags": 4}, + {"matrix": [1, 8], "x": 138, "y": 32, "flags": 4}, + {"matrix": [1, 7], "x": 126, "y": 36, "flags": 4}, + {"matrix": [0, 7], "x": 128, "y": 16, "flags": 4}, + {"matrix": [0, 8], "x": 140, "y": 12, "flags": 4}, + {"matrix": [0, 9], "x": 152, "y": 8, "flags": 4}, + {"matrix": [0, 10], "x": 165, "y": 4, "flags": 4}, + {"matrix": [0, 11], "x": 178, "y": 2, "flags": 4}, + {"matrix": [0, 12], "x": 190, "y": 3, "flags": 4}, + {"matrix": [0, 14], "x": 209, "y": 3, "flags": 1}, + {"matrix": [0, 15], "x": 233, "y": 1, "flags": 4} ], "max_brightness": 118, "react_on_keyup": true, diff --git a/keyboards/theone/keyboard.json b/keyboards/theone/keyboard.json index 0f1d8e021cc..3b4fc99d052 100644 --- a/keyboards/theone/keyboard.json +++ b/keyboards/theone/keyboard.json @@ -115,31 +115,31 @@ {"matrix": [2, 13], "x": 135, "y": 20, "flags": 4}, {"matrix": [1, 16], "x": 152, "y": 20, "flags": 4}, {"matrix": [2, 16], "x": 152, "y": 30, "flags": 4}, - {"matrix": [3, 13], "x": 127.5, "y": 30, "flags": 4}, - {"matrix": [3, 11], "x": 117.5, "y": 30, "flags": 4}, - {"matrix": [3, 10], "x": 107.5, "y": 30, "flags": 4}, - {"matrix": [3, 9], "x": 97.5, "y": 30, "flags": 4}, - {"matrix": [3, 8], "x": 87.5, "y": 30, "flags": 4}, - {"matrix": [3, 7], "x": 77.5, "y": 30, "flags": 4}, - {"matrix": [3, 6], "x": 67.5, "y": 30, "flags": 4}, - {"matrix": [3, 5], "x": 57.5, "y": 30, "flags": 4}, - {"matrix": [3, 4], "x": 47.5, "y": 30, "flags": 4}, - {"matrix": [3, 3], "x": 37.5, "y": 30, "flags": 4}, - {"matrix": [3, 2], "x": 27.5, "y": 30, "flags": 4}, - {"matrix": [3, 1], "x": 17.5, "y": 30, "flags": 4}, + {"matrix": [3, 13], "x": 127, "y": 30, "flags": 4}, + {"matrix": [3, 11], "x": 117, "y": 30, "flags": 4}, + {"matrix": [3, 10], "x": 107, "y": 30, "flags": 4}, + {"matrix": [3, 9], "x": 97, "y": 30, "flags": 4}, + {"matrix": [3, 8], "x": 87, "y": 30, "flags": 4}, + {"matrix": [3, 7], "x": 77, "y": 30, "flags": 4}, + {"matrix": [3, 6], "x": 67, "y": 30, "flags": 4}, + {"matrix": [3, 5], "x": 57, "y": 30, "flags": 4}, + {"matrix": [3, 4], "x": 47, "y": 30, "flags": 4}, + {"matrix": [3, 3], "x": 37, "y": 30, "flags": 4}, + {"matrix": [3, 2], "x": 27, "y": 30, "flags": 4}, + {"matrix": [3, 1], "x": 17, "y": 30, "flags": 4}, {"matrix": [3, 0], "x": 0, "y": 30, "flags": 4}, {"matrix": [4, 0], "x": 0, "y": 40, "flags": 4}, - {"matrix": [4, 2], "x": 22.5, "y": 40, "flags": 4}, - {"matrix": [4, 3], "x": 32.5, "y": 40, "flags": 4}, - {"matrix": [4, 4], "x": 42.5, "y": 40, "flags": 4}, - {"matrix": [4, 5], "x": 52.5, "y": 40, "flags": 4}, - {"matrix": [4, 6], "x": 62.5, "y": 40, "flags": 4}, - {"matrix": [4, 7], "x": 72.5, "y": 40, "flags": 4}, - {"matrix": [4, 8], "x": 82.5, "y": 40, "flags": 4}, - {"matrix": [4, 9], "x": 92.5, "y": 40, "flags": 4}, - {"matrix": [4, 10], "x": 102.5, "y": 40, "flags": 4}, - {"matrix": [4, 11], "x": 112.5, "y": 40, "flags": 4}, - {"matrix": [4, 13], "x": 122.5, "y": 40, "flags": 4}, + {"matrix": [4, 2], "x": 22, "y": 40, "flags": 4}, + {"matrix": [4, 3], "x": 32, "y": 40, "flags": 4}, + {"matrix": [4, 4], "x": 42, "y": 40, "flags": 4}, + {"matrix": [4, 5], "x": 52, "y": 40, "flags": 4}, + {"matrix": [4, 6], "x": 62, "y": 40, "flags": 4}, + {"matrix": [4, 7], "x": 72, "y": 40, "flags": 4}, + {"matrix": [4, 8], "x": 82, "y": 40, "flags": 4}, + {"matrix": [4, 9], "x": 92, "y": 40, "flags": 4}, + {"matrix": [4, 10], "x": 102, "y": 40, "flags": 4}, + {"matrix": [4, 11], "x": 112, "y": 40, "flags": 4}, + {"matrix": [4, 13], "x": 122, "y": 40, "flags": 4}, {"matrix": [4, 14], "x": 142, "y": 42, "flags": 4}, {"matrix": [5, 15], "x": 152, "y": 52, "flags": 4}, {"matrix": [5, 14], "x": 142, "y": 52, "flags": 4}, @@ -147,9 +147,9 @@ {"matrix": [5, 12], "x": 120, "y": 50, "flags": 4}, {"matrix": [5, 10], "x": 110, "y": 50, "flags": 4}, {"matrix": [5, 9], "x": 100, "y": 50, "flags": 4}, - {"matrix": [5, 6], "x": 37.5, "y": 50, "flags": 4}, + {"matrix": [5, 6], "x": 37, "y": 50, "flags": 4}, {"matrix": [5, 2], "x": 25, "y": 50, "flags": 4}, - {"matrix": [5, 1], "x": 12.5, "y": 50, "flags": 4}, + {"matrix": [5, 1], "x": 12, "y": 50, "flags": 4}, {"matrix": [5, 0], "x": 0, "y": 50, "flags": 4} ], "max_brightness": 130, From baa564bddfa0b1bfc7689bc42ec3d1cd7abb7a13 Mon Sep 17 00:00:00 2001 From: Ryan Date: Tue, 18 Jun 2024 05:23:45 +1000 Subject: [PATCH 39/46] Remove references to bootloadHID flashing page in keyboard readmes (#23942) * Remove references to bootloadHID flashing page in keyboard readmes * Remove bootloadHID flashing page --- docs/_aliases.json | 1 + docs/_sidebar.json | 8 +-- docs/flashing_bootloadhid.md | 74 ----------------------- keyboards/amag23/readme.md | 2 +- keyboards/ares/readme.md | 2 +- keyboards/bfake/readme.md | 2 +- keyboards/db/db63/readme.md | 2 +- keyboards/donutcables/budget96/readme.md | 2 +- keyboards/eve/meteor/readme.md | 2 +- keyboards/exclusive/e6v2/le_bmc/readme.md | 2 +- keyboards/exclusive/e6v2/oe_bmc/readme.md | 2 +- keyboards/exent/readme.md | 2 +- keyboards/facew/readme.md | 2 +- keyboards/foxlab/time80/readme.md | 6 +- keyboards/ft/mars65/readme.md | 2 +- keyboards/ft/mars80/readme.md | 2 +- keyboards/gray_studio/hb85/readme.md | 2 +- keyboards/j80/readme.md | 2 +- keyboards/jaykeeb/skyline/readme.md | 2 +- keyboards/jc65/v32a/readme.md | 2 +- keyboards/kbdfans/kbdpad/mk1/readme.md | 2 +- keyboards/keychron/q2/readme.md | 2 +- keyboards/keychron/q4/readme.md | 2 +- keyboards/keychron/q60/readme.md | 2 +- keyboards/keychron/q65/readme.md | 2 +- keyboards/keychron/v2/readme.md | 2 +- keyboards/keychron/v4/readme.md | 2 +- keyboards/keychron/v7/readme.md | 2 +- keyboards/keychron/v8/readme.md | 2 +- keyboards/kira/kira80/readme.md | 2 +- keyboards/kprepublic/jj40/rev1/readme.md | 2 +- keyboards/kprepublic/jj4x4/readme.md | 2 +- keyboards/kprepublic/jj50/rev1/readme.md | 2 +- keyboards/leeku/finger65/readme.md | 2 +- keyboards/mechkeys/mechmini/v1/readme.md | 2 +- keyboards/mehkee96/readme.md | 2 +- keyboards/mt/mt40/readme.md | 2 +- keyboards/mt/split75/readme.md | 2 +- keyboards/oddforge/vea/readme.md | 2 +- keyboards/panc60/readme.md | 2 +- keyboards/pearl/readme.md | 2 +- keyboards/percent/canoe/readme.md | 2 +- keyboards/percent/skog/readme.md | 2 +- keyboards/percent/skog_lite/readme.md | 2 +- keyboards/singa/readme.md | 2 +- keyboards/spiderisland/split78/readme.md | 2 +- keyboards/tgr/910/readme.md | 2 +- keyboards/tgr/910ce/readme.md | 2 +- keyboards/tgr/alice/readme.md | 2 +- keyboards/tgr/jane/v2/readme.md | 2 +- keyboards/tgr/jane/v2ce/readme.md | 2 +- keyboards/tgr/tris/readme.md | 2 +- keyboards/unikorn/readme.md | 2 +- keyboards/winkeyless/b87/readme.md | 2 +- keyboards/winkeyless/bface/readme.md | 2 +- keyboards/winkeyless/bmini/readme.md | 2 +- keyboards/winkeyless/bminiex/readme.md | 2 +- keyboards/ymdk/bface/readme.md | 2 +- keyboards/ymdk/np21/readme.md | 2 +- keyboards/ymdk/sp64/readme.md | 2 +- keyboards/ymdk/ymd75/rev1/readme.md | 2 +- keyboards/ymdk/ymd75/rev2/readme.md | 2 +- keyboards/ymdk/ymd96/readme.md | 2 +- 63 files changed, 63 insertions(+), 144 deletions(-) delete mode 100644 docs/flashing_bootloadhid.md diff --git a/docs/_aliases.json b/docs/_aliases.json index a2224bd0d54..f06e032215c 100644 --- a/docs/_aliases.json +++ b/docs/_aliases.json @@ -4,6 +4,7 @@ "/cli_dev_configuration": "/cli_configuration", "/dynamic_macros": "/feature_dynamic_macros", "/feature_common_shortcuts": "/feature_advanced_keycodes", + "/flashing_bootloadhid": "/flashing", "/getting_started_build_tools": "/newbs_getting_started", "/getting_started_getting_help": "/support", "/glossary": "/reference_glossary", diff --git a/docs/_sidebar.json b/docs/_sidebar.json index 2f64607deae..5935865a7ad 100644 --- a/docs/_sidebar.json +++ b/docs/_sidebar.json @@ -64,13 +64,7 @@ "text": "Development Environments", "items": [{ "text": "Docker Guide", "link": "/getting_started_docker" }] }, - { - "text": "Flashing", - "items": [ - { "text": "Flashing", "link": "/flashing" }, - { "text": "Flashing ATmega32A (ps2avrgb)", "link": "/flashing_bootloadhid" } - ] - }, + { "text": "Flashing", "link": "/flashing" }, { "text": "IDEs", "items": [ diff --git a/docs/flashing_bootloadhid.md b/docs/flashing_bootloadhid.md deleted file mode 100644 index 2d1696c6e74..00000000000 --- a/docs/flashing_bootloadhid.md +++ /dev/null @@ -1,74 +0,0 @@ -# BootloadHID Flashing Instructions and Bootloader Information - -ps2avr(GB) boards use an ATmega32A microcontroller and a different bootloader. It is not flashable using the regular QMK methods. - -General flashing sequence: - -1. Enter the bootloader using any of the following methods: - * Tap the `QK_BOOT` keycode (may not work on all devices) - * Hold the salt key while plugging the keyboard in (usually documented within keyboard readme) -2. Wait for the OS to detect the device -3. Flash a .hex file -4. Reset the device into application mode (may be done automatically) - -## bootloadHID Flashing Target - -::: tip -Using the QMK installation script, detailed [here](newbs_getting_started), the required bootloadHID tools should be automatically installed. -::: - -To flash via the command line, use the target `:bootloadhid` by executing the following command: - -``` -make ::bootloadhid -``` - -## GUI Flashing - -### Windows -1. Download [HIDBootFlash](http://vusb.wikidot.com/project:hidbootflash). -2. Place your keyboard into reset. -3. Ensure the configured VendorID is `16c0` and ProductID is `05df` -4. Press the `Find Device` button and ensure that your keyboard is found. -5. Press the `Open .hex File` button and locate the `.hex` file you created. -6. Press the `Flash Device` button and wait for the process to complete. - -## Command Line Flashing - -1. Place your keyboard into reset. -2. Flash the board by typing `bootloadHID -r` followed by the path to your `.hex` file. - -### Windows Manual Installation -For MSYS2: -1. Download the BootloadHID firmware package from https://www.obdev.at/downloads/vusb/bootloadHID.2012-12-08.tar.gz. -2. Extract contents using a compatible tool, for example 7-Zip. -3. Add to the MSYS path by copying `commandline/bootloadHID.exe` from the extracted archive to your MSYS2 installation, typically `C:\msys64\usr\bin`. - -For native Windows flashing, the `bootloadHID.exe` can be used outside of the MSYS2 environment. - -### Linux Manual Installation -1. Install libusb development dependency: - ``` - # This depends on OS - for Debian the following works - sudo apt-get install libusb-dev - ``` -2. Download the BootloadHID firmware package: - ``` - wget https://www.obdev.at/downloads/vusb/bootloadHID.2012-12-08.tar.gz -O - | tar -xz -C /tmp - ``` -3. Build the bootloadHID executable: - ``` - cd /tmp/bootloadHID.2012-12-08/commandline/ - make - sudo cp bootloadHID /usr/local/bin - ``` - -### MacOS Manual Installation -1. Install Homebrew by typing the following: - ``` - /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" - ``` -2. Install the following packages: - ``` - brew install --HEAD https://raw.githubusercontent.com/robertgzr/homebrew-tap/master/bootloadhid.rb - ``` diff --git a/keyboards/amag23/readme.md b/keyboards/amag23/readme.md index 30791a5cfb8..70fb7f8b2c7 100644 --- a/keyboards/amag23/readme.md +++ b/keyboards/amag23/readme.md @@ -15,7 +15,7 @@ Make example for this keyboard (after setting up your build environment): make amag23:default -Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid)) +Flashing example for this keyboard: make amag23:default:flash diff --git a/keyboards/ares/readme.md b/keyboards/ares/readme.md index a1e04ecf91e..b443489406c 100644 --- a/keyboards/ares/readme.md +++ b/keyboards/ares/readme.md @@ -8,7 +8,7 @@ Make example for this keyboard (after setting up your build environment): make ares:default -Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid)) +Flashing example for this keyboard: make ares:default:flash diff --git a/keyboards/bfake/readme.md b/keyboards/bfake/readme.md index df319cd7c51..ced1bd0e81f 100644 --- a/keyboards/bfake/readme.md +++ b/keyboards/bfake/readme.md @@ -10,7 +10,7 @@ Make example for this keyboard (after setting up your build environment): make bfake:default -Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid)) +Flashing example for this keyboard: make bfake:default:flash diff --git a/keyboards/db/db63/readme.md b/keyboards/db/db63/readme.md index e886bed0a1a..09ea46a3ce2 100644 --- a/keyboards/db/db63/readme.md +++ b/keyboards/db/db63/readme.md @@ -10,7 +10,7 @@ Make example for this keyboard (after setting up your build environment): make db/db63:default -Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid)) +Flashing example for this keyboard: make db/db63:default:flash diff --git a/keyboards/donutcables/budget96/readme.md b/keyboards/donutcables/budget96/readme.md index 9cdb3a01bf6..b082c2af0ff 100644 --- a/keyboards/donutcables/budget96/readme.md +++ b/keyboards/donutcables/budget96/readme.md @@ -10,7 +10,7 @@ Make example for this keyboard (after setting up your build environment): make donutcables/budget96:default -Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid)) +Flashing example for this keyboard: make donutcables/budget96:default:flash diff --git a/keyboards/eve/meteor/readme.md b/keyboards/eve/meteor/readme.md index 69d5a35ece7..43bc0991184 100644 --- a/keyboards/eve/meteor/readme.md +++ b/keyboards/eve/meteor/readme.md @@ -10,7 +10,7 @@ Make example for this keyboard (after setting up your build environment): make eve/meteor:default -Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid)) +Flashing example for this keyboard: make eve/meteor:default:flash diff --git a/keyboards/exclusive/e6v2/le_bmc/readme.md b/keyboards/exclusive/e6v2/le_bmc/readme.md index d999982671b..ada5a64a608 100644 --- a/keyboards/exclusive/e6v2/le_bmc/readme.md +++ b/keyboards/exclusive/e6v2/le_bmc/readme.md @@ -12,7 +12,7 @@ Make example for this keyboard (after setting up your build environment): make exclusive/e6v2/le_bmc:default -Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid)) +Flashing example for this keyboard: make exclusive/e6v2/le_bmc:default:flash diff --git a/keyboards/exclusive/e6v2/oe_bmc/readme.md b/keyboards/exclusive/e6v2/oe_bmc/readme.md index c259728edf1..95d1f85c0a0 100644 --- a/keyboards/exclusive/e6v2/oe_bmc/readme.md +++ b/keyboards/exclusive/e6v2/oe_bmc/readme.md @@ -10,7 +10,7 @@ Make example for this keyboard (after setting up your build environment): make exclusive/e6v2/oe_bmc:default -Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid)) +Flashing example for this keyboard: make exclusive/e6v2/oe_bmc:default:flash diff --git a/keyboards/exent/readme.md b/keyboards/exent/readme.md index d30bed91a57..dbdf69ae96e 100644 --- a/keyboards/exent/readme.md +++ b/keyboards/exent/readme.md @@ -10,7 +10,7 @@ Make example for this keyboard (after setting up your build environment): make exent:default -Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](flashing_bootloadhid.md)) +Flashing example for this keyboard: make exent:default:flash diff --git a/keyboards/facew/readme.md b/keyboards/facew/readme.md index a852a4f46dc..6c392a32e2a 100644 --- a/keyboards/facew/readme.md +++ b/keyboards/facew/readme.md @@ -12,7 +12,7 @@ Make example for this keyboard (after setting up your build environment): make facew:default -Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid)) +Flashing example for this keyboard: make facew:default:flash diff --git a/keyboards/foxlab/time80/readme.md b/keyboards/foxlab/time80/readme.md index 58ad5604008..9f04a07dd68 100644 --- a/keyboards/foxlab/time80/readme.md +++ b/keyboards/foxlab/time80/readme.md @@ -15,13 +15,11 @@ Make example for this keyboard (after setting up your build environment): make foxlab/time80:default -Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid)) +Flashing example for this keyboard: make foxlab/time80:default:flash -**Reset Key**: There are no reset switches or pads. Follow this -[guide](https://docs.qmk.fm/#/flashing_bootloadhid) -to have it flashed for the first time. Remember to add a `QK_BOOT` +**Reset Key**: There are no reset switches or pads. Remember to add a `QK_BOOT` key on your keymap for future endeavors. See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/ft/mars65/readme.md b/keyboards/ft/mars65/readme.md index 6853994ee43..55373214f89 100644 --- a/keyboards/ft/mars65/readme.md +++ b/keyboards/ft/mars65/readme.md @@ -12,7 +12,7 @@ Make example for this keyboard (after setting up your build environment): make ft/mars65:default -Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid)) +Flashing example for this keyboard: make ft/mars65:default:flash diff --git a/keyboards/ft/mars80/readme.md b/keyboards/ft/mars80/readme.md index 3d108300bb7..f4aa3b5f774 100644 --- a/keyboards/ft/mars80/readme.md +++ b/keyboards/ft/mars80/readme.md @@ -10,7 +10,7 @@ Make example for this keyboard (after setting up your build environment): make ft/mars80:default -Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid)) +Flashing example for this keyboard: make ft/mars80:default:flash diff --git a/keyboards/gray_studio/hb85/readme.md b/keyboards/gray_studio/hb85/readme.md index 523f774c83d..4307e61b571 100644 --- a/keyboards/gray_studio/hb85/readme.md +++ b/keyboards/gray_studio/hb85/readme.md @@ -12,7 +12,7 @@ Make example for this keyboard (after setting up your build environment): make gray_studio/hb85:default -Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid)) +Flashing example for this keyboard: make gray_studio/hb85:default:flash diff --git a/keyboards/j80/readme.md b/keyboards/j80/readme.md index 44ed46fe450..8ce90cca746 100644 --- a/keyboards/j80/readme.md +++ b/keyboards/j80/readme.md @@ -12,7 +12,7 @@ Make example for this keyboard (after setting up your build environment): make j80:default -Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid)) +Flashing example for this keyboard: make j80:default:flash diff --git a/keyboards/jaykeeb/skyline/readme.md b/keyboards/jaykeeb/skyline/readme.md index 92291310e04..6f58ba33def 100644 --- a/keyboards/jaykeeb/skyline/readme.md +++ b/keyboards/jaykeeb/skyline/readme.md @@ -12,7 +12,7 @@ Make example for this keyboard (after setting up your build environment): make jaykeeb/skyline:default -Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid)) +Flashing example for this keyboard: make jaykeeb/skyline:default:flash diff --git a/keyboards/jc65/v32a/readme.md b/keyboards/jc65/v32a/readme.md index 8a139ca6644..6695793f935 100644 --- a/keyboards/jc65/v32a/readme.md +++ b/keyboards/jc65/v32a/readme.md @@ -16,7 +16,7 @@ Make example for this keyboard (after setting up your build environment): make jc65/v32a:default -Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid)) +Flashing example for this keyboard: make jc65/v32a:default:flash diff --git a/keyboards/kbdfans/kbdpad/mk1/readme.md b/keyboards/kbdfans/kbdpad/mk1/readme.md index 27194e683f4..43d0ebf8776 100644 --- a/keyboards/kbdfans/kbdpad/mk1/readme.md +++ b/keyboards/kbdfans/kbdpad/mk1/readme.md @@ -10,7 +10,7 @@ Make example for this keyboard (after setting up your build environment): make kbdfans/kbdpad/mk1:default -Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid)) +Flashing example for this keyboard: make kbdfans/kbdpad/mk1:default:flash diff --git a/keyboards/keychron/q2/readme.md b/keyboards/keychron/q2/readme.md index 69a2d892ff0..3abd7280ca4 100644 --- a/keyboards/keychron/q2/readme.md +++ b/keyboards/keychron/q2/readme.md @@ -17,7 +17,7 @@ Make example for this keyboard (after setting up your build environment): make keychron/q2/jis:default make keychron/q2/jis_encoder:default -Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid)) +Flashing example for this keyboard: make keychron/q2/ansi:default:flash make keychron/q2/ansi_encoder:default:flash diff --git a/keyboards/keychron/q4/readme.md b/keyboards/keychron/q4/readme.md index 711eeadbb4d..de4c6927138 100644 --- a/keyboards/keychron/q4/readme.md +++ b/keyboards/keychron/q4/readme.md @@ -16,7 +16,7 @@ Make example for this keyboard (after setting up your build environment): make keychron/q4/ansi/v2:default make keychron/q4/iso:default -Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid)) +Flashing example for this keyboard: make keychron/q4/ansi/v1:default:flash make keychron/q4/ansi/v2:default:flash diff --git a/keyboards/keychron/q60/readme.md b/keyboards/keychron/q60/readme.md index 6e546ae1e15..7ef775c7bee 100644 --- a/keyboards/keychron/q60/readme.md +++ b/keyboards/keychron/q60/readme.md @@ -10,7 +10,7 @@ Make example for this keyboard (after setting up your build environment): make keychron/q60/ansi:default -Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid)) +Flashing example for this keyboard: make keychron/q60/ansi:default:flash diff --git a/keyboards/keychron/q65/readme.md b/keyboards/keychron/q65/readme.md index 1a2a27dc752..708ed013e00 100644 --- a/keyboards/keychron/q65/readme.md +++ b/keyboards/keychron/q65/readme.md @@ -10,7 +10,7 @@ Make example for this keyboard (after setting up your build environment): make keychron/q65/ansi_encoder:default -Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid)) +Flashing example for this keyboard: make keychron/q65/ansi_encoder:default:flash diff --git a/keyboards/keychron/v2/readme.md b/keyboards/keychron/v2/readme.md index 7836a457fbd..4d3de284da8 100644 --- a/keyboards/keychron/v2/readme.md +++ b/keyboards/keychron/v2/readme.md @@ -10,7 +10,7 @@ Make example for this keyboard (after setting up your build environment): make keychron/v2/ansi:default -Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid)) +Flashing example for this keyboard: make keychron/v2/ansi:default:flash diff --git a/keyboards/keychron/v4/readme.md b/keyboards/keychron/v4/readme.md index 62846a5e70a..e35f47a4489 100644 --- a/keyboards/keychron/v4/readme.md +++ b/keyboards/keychron/v4/readme.md @@ -10,7 +10,7 @@ Make example for this keyboard (after setting up your build environment): make keychron/v4/ansi:default -Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid)) +Flashing example for this keyboard: make keychron/v4/ansi:default:flash diff --git a/keyboards/keychron/v7/readme.md b/keyboards/keychron/v7/readme.md index 2a156494429..fb44a0fc5f9 100644 --- a/keyboards/keychron/v7/readme.md +++ b/keyboards/keychron/v7/readme.md @@ -10,7 +10,7 @@ Make example for this keyboard (after setting up your build environment): make keychron/v7/ansi:default -Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid)) +Flashing example for this keyboard: make keychron/v7/ansi:default:flash diff --git a/keyboards/keychron/v8/readme.md b/keyboards/keychron/v8/readme.md index 9d37ba16161..8473f4fc980 100644 --- a/keyboards/keychron/v8/readme.md +++ b/keyboards/keychron/v8/readme.md @@ -10,7 +10,7 @@ Make example for this keyboard (after setting up your build environment): make keychron/v8/ansi:default -Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid)) +Flashing example for this keyboard: make keychron/v8/ansi:default:flash diff --git a/keyboards/kira/kira80/readme.md b/keyboards/kira/kira80/readme.md index c9816a12462..e6d4d78d723 100644 --- a/keyboards/kira/kira80/readme.md +++ b/keyboards/kira/kira80/readme.md @@ -13,7 +13,7 @@ Make example for this keyboard (after setting up your build environment): make kira/kira80:default -Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid)) +Flashing example for this keyboard: make kira/kira80:default:flash diff --git a/keyboards/kprepublic/jj40/rev1/readme.md b/keyboards/kprepublic/jj40/rev1/readme.md index 49f644849e9..96ee7dc099e 100644 --- a/keyboards/kprepublic/jj40/rev1/readme.md +++ b/keyboards/kprepublic/jj40/rev1/readme.md @@ -12,7 +12,7 @@ Make example for this keyboard (after setting up your build environment): make kprepublic/jj40/rev1:default -Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid)) +Flashing example for this keyboard: make kprepublic/jj40/rev1:default:flash diff --git a/keyboards/kprepublic/jj4x4/readme.md b/keyboards/kprepublic/jj4x4/readme.md index b6e58661682..37853ac36a8 100644 --- a/keyboards/kprepublic/jj4x4/readme.md +++ b/keyboards/kprepublic/jj4x4/readme.md @@ -12,7 +12,7 @@ Make example for this keyboard (after setting up your build environment): make kprepublic/jj4x4:default -Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid)) +Flashing example for this keyboard: make kprepublic/jj4x4:default:flash diff --git a/keyboards/kprepublic/jj50/rev1/readme.md b/keyboards/kprepublic/jj50/rev1/readme.md index 643dfc54da3..ff276b1c711 100644 --- a/keyboards/kprepublic/jj50/rev1/readme.md +++ b/keyboards/kprepublic/jj50/rev1/readme.md @@ -12,7 +12,7 @@ Make example for this keyboard (after setting up your build environment): make kprepublic/jj50/rev1:default -Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid)) +Flashing example for this keyboard: make kprepublic/jj50/rev1:default:flash diff --git a/keyboards/leeku/finger65/readme.md b/keyboards/leeku/finger65/readme.md index c27ce5d4893..715fa76fe2a 100644 --- a/keyboards/leeku/finger65/readme.md +++ b/keyboards/leeku/finger65/readme.md @@ -9,7 +9,7 @@ Make example for this keyboard (after setting up your build environment): make leeku/finger65:default -Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid)) +Flashing example for this keyboard: make leeku/finger65:default:flash diff --git a/keyboards/mechkeys/mechmini/v1/readme.md b/keyboards/mechkeys/mechmini/v1/readme.md index d6b88d9c048..7e789115a58 100644 --- a/keyboards/mechkeys/mechmini/v1/readme.md +++ b/keyboards/mechkeys/mechmini/v1/readme.md @@ -10,7 +10,7 @@ Make example for this keyboard (after setting up your build environment): make mechkeys/mechmini/v1:default -Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid)) +Flashing example for this keyboard: make mechkeys/mechmini/v1:default:flash diff --git a/keyboards/mehkee96/readme.md b/keyboards/mehkee96/readme.md index ff1a6e201a4..852061cc18d 100644 --- a/keyboards/mehkee96/readme.md +++ b/keyboards/mehkee96/readme.md @@ -12,7 +12,7 @@ Make example for this keyboard (after setting up your build environment): make mehkee96:default -Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid)) +Flashing example for this keyboard: make mehkee96:default:flash diff --git a/keyboards/mt/mt40/readme.md b/keyboards/mt/mt40/readme.md index 632cefdb731..e24b856140c 100644 --- a/keyboards/mt/mt40/readme.md +++ b/keyboards/mt/mt40/readme.md @@ -12,7 +12,7 @@ Make example for this keyboard (after setting up your build environment): make mt/mt40:default -Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid)) +Flashing example for this keyboard: make mt/mt40:default:flash diff --git a/keyboards/mt/split75/readme.md b/keyboards/mt/split75/readme.md index 360ad552398..68ecd81bf21 100644 --- a/keyboards/mt/split75/readme.md +++ b/keyboards/mt/split75/readme.md @@ -15,7 +15,7 @@ Make example for this keyboard (after setting up your build environment): make mt/split75:default -Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid)) +Flashing example for this keyboard: make mt/split75:default:flash diff --git a/keyboards/oddforge/vea/readme.md b/keyboards/oddforge/vea/readme.md index 872fb90d3ab..488f3cc1a21 100644 --- a/keyboards/oddforge/vea/readme.md +++ b/keyboards/oddforge/vea/readme.md @@ -12,7 +12,7 @@ Make example for this keyboard (after setting up your build environment): make oddforge/vea:default -Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid)) +Flashing example for this keyboard: make oddforge/vea:default:flash diff --git a/keyboards/panc60/readme.md b/keyboards/panc60/readme.md index 52dcc4ccea1..e07ace93a10 100644 --- a/keyboards/panc60/readme.md +++ b/keyboards/panc60/readme.md @@ -12,7 +12,7 @@ Make example for this keyboard (after setting up your build environment): make panc60:default -Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid)) +Flashing example for this keyboard: make panc60:default:flash diff --git a/keyboards/pearl/readme.md b/keyboards/pearl/readme.md index 1f78a5540a5..289e11b017f 100644 --- a/keyboards/pearl/readme.md +++ b/keyboards/pearl/readme.md @@ -11,7 +11,7 @@ Make example for this keyboard (after setting up your build environment): make pearl:default -Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid)) +Flashing example for this keyboard: make pearl:default:flash diff --git a/keyboards/percent/canoe/readme.md b/keyboards/percent/canoe/readme.md index a4a40939398..b5048e62d80 100644 --- a/keyboards/percent/canoe/readme.md +++ b/keyboards/percent/canoe/readme.md @@ -10,7 +10,7 @@ Make example for this keyboard (after setting up your build environment): make percent/canoe:default -Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid)) +Flashing example for this keyboard: make percent/canoe:default:flash diff --git a/keyboards/percent/skog/readme.md b/keyboards/percent/skog/readme.md index 9f76110cde6..af2832220d5 100644 --- a/keyboards/percent/skog/readme.md +++ b/keyboards/percent/skog/readme.md @@ -8,7 +8,7 @@ Make example for this keyboard (after setting up your build environment): make percent/skog:default -Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid)) +Flashing example for this keyboard: make percent/skog:default:flash diff --git a/keyboards/percent/skog_lite/readme.md b/keyboards/percent/skog_lite/readme.md index 72ca7972541..d40eec01fd2 100644 --- a/keyboards/percent/skog_lite/readme.md +++ b/keyboards/percent/skog_lite/readme.md @@ -10,7 +10,7 @@ Make example for this keyboard (after setting up your build environment): make percent/skog_lite:default -Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid)) +Flashing example for this keyboard: make percent/skog_lite:default:flash diff --git a/keyboards/singa/readme.md b/keyboards/singa/readme.md index e3b87092ec0..d700090ce1d 100644 --- a/keyboards/singa/readme.md +++ b/keyboards/singa/readme.md @@ -13,7 +13,7 @@ Make example for this keyboard (after setting up your build environment): make singa:default -Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid)) +Flashing example for this keyboard: make singa:default:flash diff --git a/keyboards/spiderisland/split78/readme.md b/keyboards/spiderisland/split78/readme.md index 84db8f0ffa3..e7e96f3d96e 100644 --- a/keyboards/spiderisland/split78/readme.md +++ b/keyboards/spiderisland/split78/readme.md @@ -16,7 +16,7 @@ Make example for this keyboard (after setting up your build environment): make spiderisland/split78:default -Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid)) +Flashing example for this keyboard: make spiderisland/split78:default:flash diff --git a/keyboards/tgr/910/readme.md b/keyboards/tgr/910/readme.md index 63e86380b87..9d3efefbb94 100644 --- a/keyboards/tgr/910/readme.md +++ b/keyboards/tgr/910/readme.md @@ -12,7 +12,7 @@ Make example for this keyboard (after setting up your build environment): make tgr/910:default -Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid)) +Flashing example for this keyboard: make tgr/910:default:flash diff --git a/keyboards/tgr/910ce/readme.md b/keyboards/tgr/910ce/readme.md index 6df25c8f8cc..6d9bb71ceff 100644 --- a/keyboards/tgr/910ce/readme.md +++ b/keyboards/tgr/910ce/readme.md @@ -10,7 +10,7 @@ Make example for this keyboard (after setting up your build environment): make tgr/910ce:default -Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid)) +Flashing example for this keyboard: make tgr/910ce:default:flash diff --git a/keyboards/tgr/alice/readme.md b/keyboards/tgr/alice/readme.md index a08aaf71ba6..d9b01aef64b 100644 --- a/keyboards/tgr/alice/readme.md +++ b/keyboards/tgr/alice/readme.md @@ -12,7 +12,7 @@ Make example for this keyboard (after setting up your build environment): make tgr/alice:default -Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid)) +Flashing example for this keyboard: make tgr/alice:default:flash diff --git a/keyboards/tgr/jane/v2/readme.md b/keyboards/tgr/jane/v2/readme.md index 5c5a2d92d3c..dac3e8429f0 100644 --- a/keyboards/tgr/jane/v2/readme.md +++ b/keyboards/tgr/jane/v2/readme.md @@ -10,7 +10,7 @@ Make example for this keyboard (after setting up your build environment): make tgr/jane:default -Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid)) +Flashing example for this keyboard: make tgr/jane:default:flash diff --git a/keyboards/tgr/jane/v2ce/readme.md b/keyboards/tgr/jane/v2ce/readme.md index 20e949caa57..7580270d8d3 100644 --- a/keyboards/tgr/jane/v2ce/readme.md +++ b/keyboards/tgr/jane/v2ce/readme.md @@ -10,7 +10,7 @@ Make example for this keyboard (after setting up your build environment): make tgr/jane/v2ce:default -Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid)) +Flashing example for this keyboard: make tgr/jane/v2ce:default:flash diff --git a/keyboards/tgr/tris/readme.md b/keyboards/tgr/tris/readme.md index 8c3433700b8..c9cc1990696 100644 --- a/keyboards/tgr/tris/readme.md +++ b/keyboards/tgr/tris/readme.md @@ -10,7 +10,7 @@ Make example for this keyboard (after setting up your build environment): make tris:default -Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid)) +Flashing example for this keyboard: make tris:default:flash diff --git a/keyboards/unikorn/readme.md b/keyboards/unikorn/readme.md index 1383e18518c..89690374c90 100644 --- a/keyboards/unikorn/readme.md +++ b/keyboards/unikorn/readme.md @@ -10,7 +10,7 @@ Make example for this keyboard (after setting up your build environment): make unikorn:default -Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid)) +Flashing example for this keyboard: make unikorn:default:flash diff --git a/keyboards/winkeyless/b87/readme.md b/keyboards/winkeyless/b87/readme.md index b1df3439b14..9e19e546cc4 100644 --- a/keyboards/winkeyless/b87/readme.md +++ b/keyboards/winkeyless/b87/readme.md @@ -12,7 +12,7 @@ Make example for this keyboard (after setting up your build environment): make winkeyless/b87:default -Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid)) +Flashing example for this keyboard: make winkeyless/b87:default:flash diff --git a/keyboards/winkeyless/bface/readme.md b/keyboards/winkeyless/bface/readme.md index ab39a97db08..119fdf44ae2 100644 --- a/keyboards/winkeyless/bface/readme.md +++ b/keyboards/winkeyless/bface/readme.md @@ -10,7 +10,7 @@ Make example for this keyboard (after setting up your build environment): make winkeyless/bface:default -Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid)) +Flashing example for this keyboard: make winkeyless/bface:default:flash diff --git a/keyboards/winkeyless/bmini/readme.md b/keyboards/winkeyless/bmini/readme.md index 5b19e030902..1d98de56bbd 100644 --- a/keyboards/winkeyless/bmini/readme.md +++ b/keyboards/winkeyless/bmini/readme.md @@ -12,7 +12,7 @@ Make example for this keyboard (after setting up your build environment): make winkeyless/bmini:default -Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid)) +Flashing example for this keyboard: make winkeyless/bmini:default:flash diff --git a/keyboards/winkeyless/bminiex/readme.md b/keyboards/winkeyless/bminiex/readme.md index 31a9e2608f3..df07082a8f8 100644 --- a/keyboards/winkeyless/bminiex/readme.md +++ b/keyboards/winkeyless/bminiex/readme.md @@ -10,7 +10,7 @@ Make example for this keyboard (after setting up your build environment): make winkeyless/bminiex:default -Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid)) +Flashing example for this keyboard: make winkeyless/bminiex:default:flash diff --git a/keyboards/ymdk/bface/readme.md b/keyboards/ymdk/bface/readme.md index d99d4f9fb0d..e2404f7faba 100644 --- a/keyboards/ymdk/bface/readme.md +++ b/keyboards/ymdk/bface/readme.md @@ -13,7 +13,7 @@ Make example for this keyboard (after setting up your build environment): make ymdk/bface:default -Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid)) +Flashing example for this keyboard: make ymdk/bface:default:flash diff --git a/keyboards/ymdk/np21/readme.md b/keyboards/ymdk/np21/readme.md index e9eaad9b7be..bbebea5880d 100644 --- a/keyboards/ymdk/np21/readme.md +++ b/keyboards/ymdk/np21/readme.md @@ -12,7 +12,7 @@ Make example for this keyboard (after setting up your build environment): make ymdk/np21:default -Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid)) +Flashing example for this keyboard: make ymdk/np21:default:flash diff --git a/keyboards/ymdk/sp64/readme.md b/keyboards/ymdk/sp64/readme.md index ce547f1e0ce..3421e434efc 100644 --- a/keyboards/ymdk/sp64/readme.md +++ b/keyboards/ymdk/sp64/readme.md @@ -8,7 +8,7 @@ Make example for this keyboard (after setting up your build environment): make ymdk/sp64:default -Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid)) +Flashing example for this keyboard: make ymdk/sp64:default:flash diff --git a/keyboards/ymdk/ymd75/rev1/readme.md b/keyboards/ymdk/ymd75/rev1/readme.md index e4784d4eb98..1583c17d8fc 100644 --- a/keyboards/ymdk/ymd75/rev1/readme.md +++ b/keyboards/ymdk/ymd75/rev1/readme.md @@ -12,7 +12,7 @@ Make example for this keyboard (after setting up your build environment): make ymdk/ymd75/rev1:default -Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid)) +Flashing example for this keyboard: make ymdk/ymd75/rev1:default:flash diff --git a/keyboards/ymdk/ymd75/rev2/readme.md b/keyboards/ymdk/ymd75/rev2/readme.md index 7d70ed3a50a..7437488c195 100644 --- a/keyboards/ymdk/ymd75/rev2/readme.md +++ b/keyboards/ymdk/ymd75/rev2/readme.md @@ -10,7 +10,7 @@ Make example for this keyboard (after setting up your build environment): make ymdk/ymd75/rev2:default -Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid)) +Flashing example for this keyboard: make ymdk/ymd75/rev2:default:flash diff --git a/keyboards/ymdk/ymd96/readme.md b/keyboards/ymdk/ymd96/readme.md index 6a967a49c25..ff6d61e5ae2 100644 --- a/keyboards/ymdk/ymd96/readme.md +++ b/keyboards/ymdk/ymd96/readme.md @@ -10,7 +10,7 @@ Make example for this keyboard (after setting up your build environment): make ymdk/ymd96:default -Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid)) +Flashing example for this keyboard: make ymdk/ymd96:default:flash From dafc46f1d11134bee65a4b21a404f8e79d7b8402 Mon Sep 17 00:00:00 2001 From: lizaoreo Date: Mon, 17 Jun 2024 15:30:57 -0400 Subject: [PATCH 40/46] Update RGB matrix indicator example (#23947) Changed the example in indicator-examples-2 to use a compound literal, otherwise the code fails to compile. --- docs/features/rgb_matrix.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/features/rgb_matrix.md b/docs/features/rgb_matrix.md index a42f0a0f736..aef766ebd24 100644 --- a/docs/features/rgb_matrix.md +++ b/docs/features/rgb_matrix.md @@ -1007,9 +1007,9 @@ bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { HSV hsv = {0, 255, 255}; if (layer_state_is(layer_state, 2)) { - hsv = {130, 255, 255}; + hsv = (HSV){130, 255, 255}; } else { - hsv = {30, 255, 255}; + hsv = (HSV){30, 255, 255}; } if (hsv.v > rgb_matrix_get_val()) { From 4fdde75333acce3c15eb1b733f7c29798804ed82 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Thu, 20 Jun 2024 02:59:29 +0100 Subject: [PATCH 41/46] Update 'qmk import-kbfirmware' to use 'keyboard.json' (#23960) --- lib/python/qmk/importers.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/python/qmk/importers.py b/lib/python/qmk/importers.py index 8c449a71940..35a38e8572b 100644 --- a/lib/python/qmk/importers.py +++ b/lib/python/qmk/importers.py @@ -102,7 +102,7 @@ def import_keyboard(info_data, keymap_data=None): # And validate some more as everything is optional if not all(key in info_data for key in ['keyboard_name', 'layouts']): - raise ValueError('invalid info.json') + raise ValueError('invalid json config') kb_name = info_data['keyboard_name'] @@ -115,7 +115,7 @@ def import_keyboard(info_data, keymap_data=None): # TODO: if supports community then grab that instead keymap_data = _gen_dummy_keymap(kb_name, info_data) - keyboard_info = kb_folder / 'info.json' + keyboard_json = kb_folder / 'keyboard.json' keyboard_keymap = kb_folder / 'keymaps' / 'default' / 'keymap.json' # begin with making the deepest folder in the tree @@ -136,10 +136,10 @@ def import_keyboard(info_data, keymap_data=None): for file in list(TEMPLATE.iterdir()): replace_placeholders(file, kb_folder / file.name, tokens) - temp = json_load(keyboard_info) + temp = json_load(keyboard_json) deep_update(temp, info_data) - keyboard_info.write_text(json.dumps(temp, cls=InfoJSONEncoder, sort_keys=True)) + keyboard_json.write_text(json.dumps(temp, cls=InfoJSONEncoder, sort_keys=True)) keyboard_keymap.write_text(json.dumps(keymap_data, cls=KeymapJSONEncoder, sort_keys=True)) return kb_name From a6ef34cd169f77f68788f9f0a8384a1143cdd122 Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Thu, 20 Jun 2024 01:08:57 -0700 Subject: [PATCH 42/46] [Keyboard] fixes for ZSA Voyager (#23912) --- keyboards/zsa/voyager/ld/voyager.ld | 8 ++++---- keyboards/zsa/voyager/voyager.c | 5 ++--- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/keyboards/zsa/voyager/ld/voyager.ld b/keyboards/zsa/voyager/ld/voyager.ld index 0619983beb0..bfaed9df653 100644 --- a/keyboards/zsa/voyager/ld/voyager.ld +++ b/keyboards/zsa/voyager/ld/voyager.ld @@ -15,11 +15,11 @@ */ /* - * STM32F303xC memory setup. + * STM32F303xB memory setup. */ MEMORY { - flash0 (rx) : org = 0x08002000, len = 256k - 0x2000 + flash0 (rx) : org = 0x08002000, len = 128k - 0x2000 flash1 (rx) : org = 0x00000000, len = 0 flash2 (rx) : org = 0x00000000, len = 0 flash3 (rx) : org = 0x00000000, len = 0 @@ -27,7 +27,7 @@ MEMORY flash5 (rx) : org = 0x00000000, len = 0 flash6 (rx) : org = 0x00000000, len = 0 flash7 (rx) : org = 0x00000000, len = 0 - ram0 (wx) : org = 0x20000000, len = 40k + ram0 (wx) : org = 0x20000000, len = 32k ram1 (wx) : org = 0x00000000, len = 0 ram2 (wx) : org = 0x00000000, len = 0 ram3 (wx) : org = 0x00000000, len = 0 @@ -82,4 +82,4 @@ REGION_ALIAS("BSS_RAM", ram0); REGION_ALIAS("HEAP_RAM", ram0); /* Generic rules inclusion.*/ -INCLUDE rules.ld \ No newline at end of file +INCLUDE rules.ld diff --git a/keyboards/zsa/voyager/voyager.c b/keyboards/zsa/voyager/voyager.c index d70f1be3eff..3255f25a979 100644 --- a/keyboards/zsa/voyager/voyager.c +++ b/keyboards/zsa/voyager/voyager.c @@ -12,7 +12,6 @@ bool is_launching = false; #if defined(DEFERRED_EXEC_ENABLE) # if defined(DYNAMIC_MACRO_ENABLE) deferred_token dynamic_macro_token = INVALID_DEFERRED_TOKEN; - static uint32_t dynamic_macro_led(uint32_t trigger_time, void *cb_arg) { static bool led_state = true; if (!is_launching) { @@ -22,8 +21,8 @@ static uint32_t dynamic_macro_led(uint32_t trigger_time, void *cb_arg) { return 100; } -void dynamic_macro_record_start_user(void) { - if (my_token == INVALID_DEFERRED_TOKEN) { +void dynamic_macro_record_start_user(int8_t direction) { + if (dynamic_macro_token == INVALID_DEFERRED_TOKEN) { STATUS_LED_3(true); dynamic_macro_token = defer_exec(100, dynamic_macro_led, NULL); } From aa11ef5bcf012960081e9f8e23cc9c6025161142 Mon Sep 17 00:00:00 2001 From: Kevin Horvat Date: Sat, 22 Jun 2024 02:53:59 +0200 Subject: [PATCH 43/46] Fix leftover reference to previous AW20216S EN pin definition (#23974) --- keyboards/gmmk/numpad/numpad.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/keyboards/gmmk/numpad/numpad.c b/keyboards/gmmk/numpad/numpad.c index cdbc4b871a8..87446d8f497 100644 --- a/keyboards/gmmk/numpad/numpad.c +++ b/keyboards/gmmk/numpad/numpad.c @@ -107,12 +107,14 @@ led_config_t g_led_config = {{ 2, 2, 2, 2, 2, 2, 2 } }; -# ifdef AW20216S_PW_EN_PIN_1 +# ifdef AW20216S_PW_EN_PIN -void keyboard_pre_init_user(void) { +void keyboard_pre_init_kb(void) { wait_ms(2000); gpio_set_pin_output(AW20216S_PW_EN_PIN); gpio_write_pin_high(AW20216S_PW_EN_PIN); + + keyboard_pre_init_user(); } # endif From e5c80fc6b3a812faae3f5fe676e572d5c505b4f7 Mon Sep 17 00:00:00 2001 From: Danny Date: Fri, 21 Jun 2024 23:27:15 -0400 Subject: [PATCH 44/46] Update what's powering QMK docs (#23977) --- readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/readme.md b/readme.md index f0e49a08e95..5025b40d959 100644 --- a/readme.md +++ b/readme.md @@ -12,7 +12,7 @@ This is a keyboard firmware based on the [tmk\_keyboard firmware](https://github * [See the official documentation on docs.qmk.fm](https://docs.qmk.fm) -The docs are powered by [Docsify](https://docsify.js.org/) and hosted on [GitHub](/docs/). They are also viewable offline; see [Previewing the Documentation](https://docs.qmk.fm/#/contributing?id=previewing-the-documentation) for more details. +The docs are powered by [VitePress](https://vitepress.dev/) and hosted on [GitHub](/docs/). They are also viewable offline; see [Previewing the Documentation](https://docs.qmk.fm/#/contributing?id=previewing-the-documentation) for more details. You can request changes by making a fork and opening a [pull request](https://github.com/qmk/qmk_firmware/pulls), or by clicking the "Edit this page" link at the bottom of any page. From 6f03d20a92b01d656fe911aa025186056aefb9e9 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Sat, 22 Jun 2024 04:27:57 +0100 Subject: [PATCH 45/46] Fix 'qmk import-kbfirmware' WS2812 config (#23976) --- lib/python/qmk/importers.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/lib/python/qmk/importers.py b/lib/python/qmk/importers.py index 35a38e8572b..3e7f305a433 100644 --- a/lib/python/qmk/importers.py +++ b/lib/python/qmk/importers.py @@ -181,9 +181,17 @@ def import_kbfirmware(kbfirmware_data): info_data['indicators.scroll_lock'] = kbf_data['keyboard.pins.scroll'] if kbf_data['keyboard.pins.rgb']: - info_data['rgblight.animations.all'] = True + info_data['rgblight.animations'] = { # Comment here is to force multiline formatting + "breathing": True, + "rainbow_mood": True, + "rainbow_swirl": True, + "snake": True, + "knight": True, + "static_gradient": True, + "twinkle": True + } info_data['rgblight.led_count'] = kbf_data['keyboard.settings.rgbNum'] - info_data['rgblight.pin'] = kbf_data['keyboard.pins.rgb'] + info_data['ws2812.pin'] = kbf_data['keyboard.pins.rgb'] if kbf_data['keyboard.pins.led']: info_data['backlight.levels'] = kbf_data['keyboard.settings.backlightLevels'] From 7aa2ce2b38e7cf38f148d0781eae525d72260b8b Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Sat, 22 Jun 2024 05:45:04 +0100 Subject: [PATCH 46/46] Update documentation suggestion in top level readme (#23978) --- docs/contributing.md | 4 +++- readme.md | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/docs/contributing.md b/docs/contributing.md index 14025c2c505..43b2214d09d 100644 --- a/docs/contributing.md +++ b/docs/contributing.md @@ -105,7 +105,9 @@ enum my_keycodes { Before opening a pull request, you can preview your changes if you have set up the development environment by running this command from the `qmk_firmware/` folder: - qmk docs +``` +qmk docs +``` and navigating to `http://localhost:5173/`. diff --git a/readme.md b/readme.md index 5025b40d959..5501089e861 100644 --- a/readme.md +++ b/readme.md @@ -12,9 +12,9 @@ This is a keyboard firmware based on the [tmk\_keyboard firmware](https://github * [See the official documentation on docs.qmk.fm](https://docs.qmk.fm) -The docs are powered by [VitePress](https://vitepress.dev/) and hosted on [GitHub](/docs/). They are also viewable offline; see [Previewing the Documentation](https://docs.qmk.fm/#/contributing?id=previewing-the-documentation) for more details. +The docs are powered by [VitePress](https://vitepress.dev/). They are also viewable offline; see [Previewing the Documentation](https://docs.qmk.fm/#/contributing?id=previewing-the-documentation) for more details. -You can request changes by making a fork and opening a [pull request](https://github.com/qmk/qmk_firmware/pulls), or by clicking the "Edit this page" link at the bottom of any page. +You can request changes by making a fork and opening a [pull request](https://github.com/qmk/qmk_firmware/pulls). ## Supported Keyboards