diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 338b983d78ea..46ee6fdcaab0 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -56,7 +56,11 @@ jobs: - name: Deploy if: ${{ github.event_name == 'push' && github.repository == 'qmk/qmk_firmware' }} +<<<<<<< HEAD uses: JamesIves/github-pages-deploy-action@v4.6.4 +======= + uses: JamesIves/github-pages-deploy-action@v4.6.8 +>>>>>>> upstream/master with: token: ${{ secrets.GITHUB_TOKEN }} branch: gh-pages diff --git a/docs/reference_info_json.md b/docs/reference_info_json.md index 13814e36db37..c139cd728062 100644 --- a/docs/reference_info_json.md +++ b/docs/reference_info_json.md @@ -16,7 +16,7 @@ You can create `info.json` files at every level under `qmk_firmware/keyboards/String Required - * A URL to the keyboard's product page, [QMK Keyboards](https://browse.qmk.fm/) page, or other page describing information about the keyboard. + * A URL to the keyboard's product page, [QMK.fm/keyboards](https://qmk.fm/keyboards) page, or other page describing information about the keyboard. * Example: `"https://clueboard.co"` * `bootloader_instructions` String * Instructions for putting the keyboard into a mode that allows for firmware flashing. @@ -434,64 +434,43 @@ Configures the [LED Matrix](features/led_matrix) feature. ## Matrix {#matrix} -The following animations can be enabled: - -|Key |Description | -|-----------------|--------------------------------------| -|`all` |Enable all additional animation modes.| -|`alternating` |Enable alternating animation mode. | -|`breathing` |Enable breathing animation mode. | -|`christmas` |Enable christmas animation mode. | -|`knight` |Enable knight animation mode. | -|`rainbow_mood` |Enable rainbow mood animation mode. | -|`rainbow_swirl` |Enable rainbow swirl animation mode. | -|`rgb_test` |Enable RGB test animation mode. | -|`snake` |Enable snake animation mode. | -|`static_gradient`|Enable static gradient mode. | -|`twinkle` |Enable twinkle animation mode. | - -### USB - -Every USB keyboard needs to have its USB parameters defined. At a minimum you need to set the Vendor ID, Product ID, and device version. - -Example: - -```json -{ - "usb": { - "vid": "0xC1ED", - "pid": "0x23B0", - "device_version": "1.0.0" - } -} -``` - -The device version is a BCD (binary coded decimal) value, in the format `MMmr`, so the below value would look like `0x0100` in the generated code. This also means the maximum valid values for each part are `99.9.9`, despite it being a hexadecimal value under the hood. - -### Encoders - -This section controls the basic [rotary encoder](feature_encoders.md) support. - -The following items can be set. Not every value is required. - -* `pin_a` - * __Required__. A pad definition -* `pin_b` - * __Required__. B pad definition -* `resolution` - * How many pulses the encoder registers between each detent - -Examples: - -```json -{ - "encoder": { - "rotary": [ - { "pin_a": "B5", "pin_b": "A2" } +* `debounce` Number + * The debounce time in milliseconds. + * Default: `5` (5 ms) +* `diode_direction` String + * Which way the diodes are "pointing". Unused for `matrix_pins.direct`. Must be one of `COL2ROW`, `ROW2COL`. +* `matrix_pins` + * `cols` Array: Pin + * A list of GPIO pins connected to the matrix columns. + * Example: `["A0", "A1", "A2"]` + * `custom` Boolean + * Whether to use a custom matrix scanning implementation. + * Default: `false` + * `custom_lite` Boolean + * Whether to use a "lite" custom matrix scanning implementation. + * Default: `false` + * `direct` Array: Array: Pin + * A 2-dimensional list of GPIO pins connected to each keyswitch, forming the "matrix" rows and columns. + * Example: + ```json + [ + ["A0", "A1", "A2"], + ["B0", "B1", "B2"], + ["C0", "C1", "C2"] ] - } -} -``` + ``` + * `ghost` Boolean + * Whether the matrix has no anti-ghosting diodes. + * Default: `false` + * `input_pressed_state` 0|1 + * The logical GPIO state of the input pins when a key is pressed. + * Default: `0` (pressed = low) + * `io_delay` Number + * The amount of time to wait between row/col selection and col/row pin reading, in microseconds. + * Default: `30` (30 µs) + * `rows` Array: Pin + * A list of GPIO pins connected to the matrix rows. + * Example: `["B0", "B1", "B2"]` ```json { @@ -763,12 +742,21 @@ Configures the [Split Keyboard](features/split_keyboard) feature. * `right` * See [Matrix](#matrix) config. * `serial` +<<<<<<< HEAD * `driver` * The driver to use. Must be one of `bitbang`, `usart`, `vendor`. * Default: `"bitbang"` * `pin` * The GPIO pin to use for transmit and receive. * `soft_serial_speed` +======= + * `driver` String + * The driver to use. Must be one of `bitbang`, `usart`, `vendor`. + * Default: `"bitbang"` + * `pin` Pin + * The GPIO pin to use for transmit and receive. + * `soft_serial_speed` Number +>>>>>>> upstream/master * The protocol speed, from `0` to `5` (`serial` transport protocol only). * Default: `1` * `transport` diff --git a/keyboards/a_jazz/akc084/keyboard.json b/keyboards/a_jazz/akc084/keyboard.json index c5270e4178c1..6076b389ee73 100644 --- a/keyboards/a_jazz/akc084/keyboard.json +++ b/keyboards/a_jazz/akc084/keyboard.json @@ -81,7 +81,11 @@ {"matrix": [2, 9], "x": 9.5, "y": 2}, {"matrix": [2, 10], "x": 10.5, "y": 2}, {"matrix": [2, 11], "x": 11.5, "y": 2}, +<<<<<<< HEAD {"matrix": [2, 12], "x": 11.5, "y": 2}, +======= + {"matrix": [2, 12], "x": 12.5, "y": 2}, +>>>>>>> upstream/master {"matrix": [2, 13], "x": 13.5, "y": 2, "w": 1.5}, {"matrix": [5, 11], "x": 15, "y": 2}, {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75}, @@ -95,6 +99,7 @@ {"matrix": [3, 8], "x": 8.75, "y": 3}, {"matrix": [3, 9], "x": 9.75, "y": 3}, {"matrix": [3, 10], "x": 10.75, "y": 3}, +<<<<<<< HEAD {"matrix": [3, 11], "x": 11.75, "y": 3, "w": 2.25}, {"matrix": [3, 12], "x": 14, "y": 3}, {"matrix": [5, 12], "x": 15, "y": 3}, @@ -122,6 +127,35 @@ {"matrix": [5, 8], "x": 13, "y": 4}, {"matrix": [5, 9], "x": 14, "y": 4}, {"matrix": [5, 10], "x": 15, "y": 4} +======= + {"matrix": [3, 11], "x": 11.75, "y": 3}, + {"matrix": [3, 12], "x": 12.75, "y": 3, "w": 2.25}, + {"matrix": [5, 12], "x": 15, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 2.25}, + {"matrix": [4, 1], "x": 2.25, "y": 4}, + {"matrix": [4, 2], "x": 3.25, "y": 4}, + {"matrix": [4, 3], "x": 4.25, "y": 4}, + {"matrix": [4, 4], "x": 5.25, "y": 4}, + {"matrix": [4, 5], "x": 6.25, "y": 4}, + {"matrix": [4, 6], "x": 7.25, "y": 4}, + {"matrix": [4, 7], "x": 8.25, "y": 4}, + {"matrix": [4, 8], "x": 9.25, "y": 4}, + {"matrix": [4, 9], "x": 10.25, "y": 4}, + {"matrix": [4, 10], "x": 11.25, "y": 4}, + {"matrix": [4, 11], "x": 12.25, "y": 4, "w": 1.75}, + {"matrix": [5, 7], "x": 14, "y": 4}, + {"matrix": [5, 13], "x": 15, "y": 4}, + {"matrix": [5, 0], "x": 0, "y": 5, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5, "w": 1.25}, + {"matrix": [5, 3], "x": 3.75, "y": 5, "w": 6.25}, + {"matrix": [5, 4], "x": 10, "y": 5}, + {"matrix": [5, 5], "x": 11, "y": 5}, + {"matrix": [5, 6], "x": 12, "y": 5}, + {"matrix": [5, 8], "x": 13, "y": 5}, + {"matrix": [5, 9], "x": 14, "y": 5}, + {"matrix": [5, 10], "x": 15, "y": 5} +>>>>>>> upstream/master ] } } diff --git a/keyboards/arrayperipherals/vector/keymaps/default/keymap.c b/keyboards/arrayperipherals/vector/keymaps/default/keymap.c index 06a9ba7cb155..e290e3707646 100644 --- a/keyboards/arrayperipherals/vector/keymaps/default/keymap.c +++ b/keyboards/arrayperipherals/vector/keymaps/default/keymap.c @@ -23,21 +23,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, TG(1) ), - /* DEFAULT */ - LAYOUT_numpad_aek( - MO(1), KC_PEQL, KC_PSLS, KC_PAST, - KC_P7, KC_P8, KC_P9, KC_PMNS, - KC_P4, KC_P5, KC_P6, KC_PPLS, - KC_P1, KC_P2, KC_P3, - KC_P0, KC_PDOT, KC_PENT), - - /* FUNCTION */ - LAYOUT_numpad_aek( - KC_TRNS, RGB_TOG, RGB_MOD, KC_TRNS, - RGB_HUI, RGB_SAI, RGB_VAI, KC_TRNS, - RGB_HUD, RGB_SAD, RGB_VAD, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, QK_BOOT, KC_NLCK) + [1] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, TG(1) + ), }; #if defined(ENCODER_MAP_ENABLE) diff --git a/keyboards/arrayperipherals/vector/keymaps/default/rules.mk b/keyboards/arrayperipherals/vector/keymaps/default/rules.mk new file mode 100644 index 000000000000..a40474b4d5c7 --- /dev/null +++ b/keyboards/arrayperipherals/vector/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes \ No newline at end of file diff --git a/keyboards/deemen17/de80/halconf.h b/keyboards/deemen17/de80/halconf.h index 2ac1c1bae552..7d82886993cc 100644 --- a/keyboards/deemen17/de80/halconf.h +++ b/keyboards/deemen17/de80/halconf.h @@ -1,4 +1,8 @@ -/* Copyright 2018 Josh Hinnebusch +<<<<<<<< HEAD:keyboards/hineybush/h75_singa/config.h +/* Copyright 2019 hineybush +======== +/* Copyright 2022 QMK +>>>>>>>> upstream/master:keyboards/deemen17/de80/halconf.h * * 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 @@ -15,4 +19,11 @@ */ #pragma once +<<<<<<<< HEAD:keyboards/hineybush/h75_singa/config.h #define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2) +======== +#define HAL_USE_SPI TRUE + +#include_next + +>>>>>>>> upstream/master:keyboards/deemen17/de80/halconf.h diff --git a/keyboards/hineybush/h660s/config.h b/keyboards/hineybush/h660s/config.h index 2ac1c1bae552..488f60089c91 100644 --- a/keyboards/hineybush/h660s/config.h +++ b/keyboards/hineybush/h660s/config.h @@ -1,4 +1,8 @@ +<<<<<<<< HEAD:keyboards/hineybush/h660s/config.h /* Copyright 2018 Josh Hinnebusch +======== +/* Copyright 2019 hineybush +>>>>>>>> upstream/master:keyboards/hineybush/h75_singa/config.h * * 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 diff --git a/keyboards/hineybush/h75_singa/config.h b/keyboards/hineybush/h75_singa/config.h index 6be72d4d9ff2..7d82886993cc 100644 --- a/keyboards/hineybush/h75_singa/config.h +++ b/keyboards/hineybush/h75_singa/config.h @@ -1,4 +1,8 @@ +<<<<<<<< HEAD:keyboards/hineybush/h75_singa/config.h /* Copyright 2019 hineybush +======== +/* Copyright 2022 QMK +>>>>>>>> upstream/master:keyboards/deemen17/de80/halconf.h * * 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 @@ -15,4 +19,11 @@ */ #pragma once +<<<<<<<< HEAD:keyboards/hineybush/h75_singa/config.h #define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2) +======== +#define HAL_USE_SPI TRUE + +#include_next + +>>>>>>>> upstream/master:keyboards/deemen17/de80/halconf.h diff --git a/keyboards/hineybush/h87a/config.h b/keyboards/hineybush/h87a/config.h index 9ff1e426bdc1..10b7d8def5f1 100644 --- a/keyboards/hineybush/h87a/config.h +++ b/keyboards/hineybush/h87a/config.h @@ -1,4 +1,8 @@ +<<<<<<<< HEAD:keyboards/hineybush/h87a/config.h /* Copyright 2020 Josh Hinnebusch +======== +/* Copyright 2018 Josh Hinnebusch +>>>>>>>> upstream/master:keyboards/hineybush/h660s/config.h * * 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 diff --git a/keyboards/nix_studio/oxalys80/config.h b/keyboards/nix_studio/oxalys80/config.h index 7943ea4a2511..8bad9905851d 100644 --- a/keyboards/nix_studio/oxalys80/config.h +++ b/keyboards/nix_studio/oxalys80/config.h @@ -1,4 +1,8 @@ +<<<<<<<< HEAD:keyboards/nix_studio/oxalys80/config.h /* Copyright 2021 Nix Studio +======== +/* Copyright 2024 Yiancar-Designs +>>>>>>>> upstream/master:keyboards/novelkeys/nk_classic_tkl_iso/halconf.h * * 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 @@ -15,4 +19,10 @@ */ #pragma once +<<<<<<<< HEAD:keyboards/nix_studio/oxalys80/config.h #define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2) +======== +#define HAL_USE_PWM TRUE + +#include_next +>>>>>>>> upstream/master:keyboards/novelkeys/nk_classic_tkl_iso/halconf.h diff --git a/keyboards/novelkeys/nk_classic_tkl_iso/halconf.h b/keyboards/novelkeys/nk_classic_tkl_iso/halconf.h index c7f5bab5c855..8bad9905851d 100644 --- a/keyboards/novelkeys/nk_classic_tkl_iso/halconf.h +++ b/keyboards/novelkeys/nk_classic_tkl_iso/halconf.h @@ -1,4 +1,8 @@ +<<<<<<<< HEAD:keyboards/nix_studio/oxalys80/config.h +/* Copyright 2021 Nix Studio +======== /* Copyright 2024 Yiancar-Designs +>>>>>>>> upstream/master:keyboards/novelkeys/nk_classic_tkl_iso/halconf.h * * 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 @@ -13,9 +17,12 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ - #pragma once +<<<<<<<< HEAD:keyboards/nix_studio/oxalys80/config.h +#define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2) +======== #define HAL_USE_PWM TRUE #include_next +>>>>>>>> upstream/master:keyboards/novelkeys/nk_classic_tkl_iso/halconf.h diff --git a/keyboards/zsa/moonlander/moonlander.c b/keyboards/zsa/moonlander/moonlander.c index 42ccb3e279a6..eb683bff3f35 100644 --- a/keyboards/zsa/moonlander/moonlander.c +++ b/keyboards/zsa/moonlander/moonlander.c @@ -399,10 +399,13 @@ void keyboard_post_init_kb(void) { } #ifdef RGB_MATRIX_ENABLE rgb_matrix_enable_noeeprom(); +<<<<<<< HEAD #endif #if defined(DEFERRED_EXEC_ENABLE) is_launching = true; defer_exec(500, startup_exec, NULL); +======= +>>>>>>> upstream/master #endif #if defined(DEFERRED_EXEC_ENABLE) is_launching = true; diff --git a/quantum/keymap_introspection.c b/quantum/keymap_introspection.c index fb9bf3740481..f0650408b5b2 100644 --- a/quantum/keymap_introspection.c +++ b/quantum/keymap_introspection.c @@ -62,6 +62,8 @@ __attribute__((weak)) uint16_t combo_count(void) { return combo_count_raw(); } +_Static_assert(ARRAY_SIZE(key_combos) <= (QK_KB), "Number of combos is abnormally high. Are you using SAFE_RANGE in an enum for combos?"); + combo_t* combo_get_raw(uint16_t combo_idx) { if (combo_idx >= combo_count_raw()) { return NULL; @@ -87,6 +89,11 @@ __attribute__((weak)) uint16_t tap_dance_count(void) { return tap_dance_count_raw(); } +<<<<<<< HEAD +======= +_Static_assert(ARRAY_SIZE(tap_dance_actions) <= (QK_TAP_DANCE_MAX - QK_TAP_DANCE), "Number of tap dance actions exceeds maximum. Are you using SAFE_RANGE in tap dance enum?"); + +>>>>>>> upstream/master tap_dance_action_t* tap_dance_get_raw(uint16_t tap_dance_idx) { if (tap_dance_idx >= tap_dance_count_raw()) { return NULL; @@ -113,6 +120,11 @@ __attribute__((weak)) uint16_t key_override_count(void) { return key_override_count_raw(); } +<<<<<<< HEAD +======= +_Static_assert(ARRAY_SIZE(key_overrides) <= (QK_KB), "Number of key overrides is abnormally high. Are you using SAFE_RANGE in an enum for key overrides?"); + +>>>>>>> upstream/master const key_override_t* key_override_get_raw(uint16_t key_override_idx) { if (key_override_idx >= key_override_count_raw()) { return NULL;