diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index b15f301865e..297af8e19c4 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -12,7 +12,7 @@ jobs: stale: runs-on: ubuntu-latest steps: - - uses: actions/stale@v5 + - uses: actions/stale@v6 with: repo-token: ${{ secrets.GITHUB_TOKEN }} diff --git a/builddefs/build_keyboard.mk b/builddefs/build_keyboard.mk index 65bc0451f7c..91cd851ef66 100644 --- a/builddefs/build_keyboard.mk +++ b/builddefs/build_keyboard.mk @@ -241,21 +241,20 @@ endif # # https://docs.qmk.fm/#/feature_layouts?id=tips-for-making-layouts-keyboard-agnostic # -QMK_KEYBOARD_H = $(KEYBOARD_OUTPUT)/src/default_keyboard.h ifneq ("$(wildcard $(KEYBOARD_PATH_1)/$(KEYBOARD_FOLDER_1).h)","") - QMK_KEYBOARD_H = $(KEYBOARD_FOLDER_1).h + FOUND_KEYBOARD_H = $(KEYBOARD_FOLDER_1).h endif ifneq ("$(wildcard $(KEYBOARD_PATH_2)/$(KEYBOARD_FOLDER_2).h)","") - QMK_KEYBOARD_H = $(KEYBOARD_FOLDER_2).h + FOUND_KEYBOARD_H = $(KEYBOARD_FOLDER_2).h endif ifneq ("$(wildcard $(KEYBOARD_PATH_3)/$(KEYBOARD_FOLDER_3).h)","") - QMK_KEYBOARD_H = $(KEYBOARD_FOLDER_3).h + FOUND_KEYBOARD_H = $(KEYBOARD_FOLDER_3).h endif ifneq ("$(wildcard $(KEYBOARD_PATH_4)/$(KEYBOARD_FOLDER_4).h)","") - QMK_KEYBOARD_H = $(KEYBOARD_FOLDER_4).h + FOUND_KEYBOARD_H = $(KEYBOARD_FOLDER_4).h endif ifneq ("$(wildcard $(KEYBOARD_PATH_5)/$(KEYBOARD_FOLDER_5).h)","") - QMK_KEYBOARD_H = $(KEYBOARD_FOLDER_5).h + FOUND_KEYBOARD_H = $(KEYBOARD_FOLDER_5).h endif # Determine and set parameters based on the keyboard's processor family. @@ -329,7 +328,7 @@ ifneq ("$(wildcard $(KEYBOARD_PATH_5)/info.json)","") INFO_JSON_FILES += $(KEYBOARD_PATH_5)/info.json endif -CONFIG_H += $(KEYBOARD_OUTPUT)/src/info_config.h $(KEYBOARD_OUTPUT)/src/layouts.h +CONFIG_H += $(KEYBOARD_OUTPUT)/src/info_config.h KEYBOARD_SRC += $(KEYBOARD_OUTPUT)/src/default_keyboard.c $(KEYBOARD_OUTPUT)/src/info_config.h: $(INFO_JSON_FILES) @@ -344,15 +343,10 @@ $(KEYBOARD_OUTPUT)/src/default_keyboard.c: $(INFO_JSON_FILES) $(KEYBOARD_OUTPUT)/src/default_keyboard.h: $(INFO_JSON_FILES) @$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD) - $(eval CMD=$(QMK_BIN) generate-keyboard-h --quiet --keyboard $(KEYBOARD) --output $(KEYBOARD_OUTPUT)/src/default_keyboard.h) + $(eval CMD=$(QMK_BIN) generate-keyboard-h --quiet --keyboard $(KEYBOARD) --include $(FOUND_KEYBOARD_H) --output $(KEYBOARD_OUTPUT)/src/default_keyboard.h) @$(BUILD_CMD) -$(KEYBOARD_OUTPUT)/src/layouts.h: $(INFO_JSON_FILES) - @$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD) - $(eval CMD=$(QMK_BIN) generate-layouts --quiet --keyboard $(KEYBOARD) --output $(KEYBOARD_OUTPUT)/src/layouts.h) - @$(BUILD_CMD) - -generated-files: $(KEYBOARD_OUTPUT)/src/info_config.h $(KEYBOARD_OUTPUT)/src/default_keyboard.c $(KEYBOARD_OUTPUT)/src/default_keyboard.h $(KEYBOARD_OUTPUT)/src/layouts.h +generated-files: $(KEYBOARD_OUTPUT)/src/info_config.h $(KEYBOARD_OUTPUT)/src/default_keyboard.c $(KEYBOARD_OUTPUT)/src/default_keyboard.h .INTERMEDIATE : generated-files @@ -471,7 +465,7 @@ ALL_CONFIGS := $(PROJECT_CONFIG) $(CONFIG_H) OUTPUTS := $(KEYMAP_OUTPUT) $(KEYBOARD_OUTPUT) $(KEYMAP_OUTPUT)_SRC := $(SRC) $(KEYMAP_OUTPUT)_DEFS := $(OPT_DEFS) \ --DQMK_KEYBOARD=\"$(KEYBOARD)\" -DQMK_KEYBOARD_H=\"$(QMK_KEYBOARD_H)\" \ +-DQMK_KEYBOARD=\"$(KEYBOARD)\" -DQMK_KEYBOARD_H=\"$(KEYBOARD_OUTPUT)/src/default_keyboard.h\" \ -DQMK_KEYMAP=\"$(KEYMAP)\" -DQMK_KEYMAP_H=\"$(KEYMAP).h\" -DQMK_KEYMAP_CONFIG_H=\"$(KEYMAP_PATH)/config.h\" $(KEYMAP_OUTPUT)_INC := $(VPATH) $(EXTRAINCDIRS) $(KEYMAP_OUTPUT)_CONFIG := $(CONFIG_H) diff --git a/builddefs/common_features.mk b/builddefs/common_features.mk index 3d34c673d3a..0e9e45220fe 100644 --- a/builddefs/common_features.mk +++ b/builddefs/common_features.mk @@ -136,6 +136,7 @@ ifeq ($(strip $(POINTING_DEVICE_ENABLE)), yes) VPATH += $(QUANTUM_DIR)/pointing_device SRC += $(QUANTUM_DIR)/pointing_device/pointing_device.c SRC += $(QUANTUM_DIR)/pointing_device/pointing_device_drivers.c + SRC += $(QUANTUM_DIR)/pointing_device/pointing_device_auto_mouse.c ifneq ($(strip $(POINTING_DEVICE_DRIVER)), custom) SRC += drivers/sensors/$(strip $(POINTING_DEVICE_DRIVER)).c OPT_DEFS += -DPOINTING_DEVICE_DRIVER_$(strip $(shell echo $(POINTING_DEVICE_DRIVER) | tr '[:lower:]' '[:upper:]')) diff --git a/data/mappings/info_config.json b/data/mappings/info_config.json index eb11f87e7d9..b27081e0378 100644 --- a/data/mappings/info_config.json +++ b/data/mappings/info_config.json @@ -38,6 +38,13 @@ "LED_COMPOSE_PIN": {"info_key": "indicators.compose"}, "LED_KANA_PIN": {"info_key": "indicators.kana"}, "LED_PIN_ON_STATE": {"info_key": "indicators.on_state", "value_type": "int"}, + "LED_MATRIX_CENTER": {"info_key": "led_matrix.center_point", "value_type": "array.int"}, + "LED_MATRIX_MAXIMUM_BRIGHTNESS": {"info_key": "led_matrix.max_brightness", "value_type": "int"}, + "LED_MATRIX_SPLIT": {"info_key": "led_matrix.split_count", "value_type": "array.int"}, + "LED_MATRIX_HUE_STEP": {"info_key": "led_matrix.hue_steps", "value_type": "int"}, + "LED_MATRIX_SAT_STEP": {"info_key": "led_matrix.sat_steps", "value_type": "int"}, + "LED_MATRIX_VAL_STEP": {"info_key": "led_matrix.val_steps", "value_type": "int"}, + "LED_MATRIX_SPD_STEP": {"info_key": "led_matrix.speed_steps", "value_type": "int"}, "MANUFACTURER": {"info_key": "manufacturer", "value_type": "str"}, "MATRIX_HAS_GHOST": {"info_key": "matrix_pins.ghost", "value_type": "bool"}, "MATRIX_IO_DELAY": {"info_key": "matrix_pins.io_delay", "value_type": "int"}, @@ -77,6 +84,13 @@ "RGBLIGHT_VAL_STEP": {"info_key": "rgblight.brightness_steps", "value_type": "int"}, "RGBLIGHT_SLEEP": {"info_key": "rgblight.sleep", "value_type": "bool"}, "RGBLIGHT_SPLIT": {"info_key": "rgblight.split", "value_type": "bool"}, + "RGB_MATRIX_CENTER": {"info_key": "rgb_matrix.center_point", "value_type": "array.int"}, + "RGB_MATRIX_MAXIMUM_BRIGHTNESS": {"info_key": "rgb_matrix.max_brightness", "value_type": "int"}, + "RGB_MATRIX_SPLIT": {"info_key": "rgb_matrix.split_count", "value_type": "array.int"}, + "RGB_MATRIX_HUE_STEP": {"info_key": "rgb_matrix.hue_steps", "value_type": "int"}, + "RGB_MATRIX_SAT_STEP": {"info_key": "rgb_matrix.sat_steps", "value_type": "int"}, + "RGB_MATRIX_VAL_STEP": {"info_key": "rgb_matrix.val_steps", "value_type": "int"}, + "RGB_MATRIX_SPD_STEP": {"info_key": "rgb_matrix.speed_steps", "value_type": "int"}, "RGBW": {"info_key": "rgblight.rgbw", "value_type": "bool"}, "PRODUCT": {"info_key": "keyboard_name", "warn_duplicate": false, "value_type": "str"}, "PRODUCT_ID": {"info_key": "usb.pid", "value_type": "hex"}, diff --git a/data/schemas/keyboard.jsonschema b/data/schemas/keyboard.jsonschema index 7e0400d7f74..ff5163e7371 100644 --- a/data/schemas/keyboard.jsonschema +++ b/data/schemas/keyboard.jsonschema @@ -38,7 +38,7 @@ }, "pin_compatible": { "type": "string", - "enum": ["promicro"] + "enum": ["promicro", "elite_c"] }, "processor": { "type": "string", @@ -265,6 +265,23 @@ "type": "object", "properties": { "driver": {"type": "string"}, + "center_point": { + "type": "array", + "minItems": 2, + "maxItems": 2, + "items": {"$ref": "qmk.definitions.v1#/unsigned_int_8"} + }, + "max_brightness": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}, + "hue_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"}, + "sat_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"}, + "val_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"}, + "speed_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"}, + "split_count": { + "type": "array", + "minItems": 2, + "maxItems": 2, + "items": {"$ref": "qmk.definitions.v1#/unsigned_int"} + }, "layout": { "type": "array", "items": { @@ -292,6 +309,23 @@ "type": "object", "properties": { "driver": {"type": "string"}, + "center_point": { + "type": "array", + "minItems": 2, + "maxItems": 2, + "items": {"$ref": "qmk.definitions.v1#/unsigned_int_8"} + }, + "max_brightness": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}, + "hue_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"}, + "sat_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"}, + "val_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"}, + "speed_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"}, + "split_count": { + "type": "array", + "minItems": 2, + "maxItems": 2, + "items": {"$ref": "qmk.definitions.v1#/unsigned_int"} + }, "layout": { "type": "array", "items": { diff --git a/docs/_summary.md b/docs/_summary.md index bf49bbb1404..ca6fb91a79c 100644 --- a/docs/_summary.md +++ b/docs/_summary.md @@ -80,6 +80,7 @@ * [Caps Word](feature_caps_word.md) * [Combos](feature_combo.md) * [Debounce API](feature_debounce_type.md) + * [EEPROM](feature_eeprom.md) * [Key Lock](feature_key_lock.md) * [Key Overrides](feature_key_overrides.md) * [Layers](feature_layers.md) diff --git a/docs/custom_quantum_functions.md b/docs/custom_quantum_functions.md index 7b7849ad07f..2917fbad268 100644 --- a/docs/custom_quantum_functions.md +++ b/docs/custom_quantum_functions.md @@ -102,11 +102,11 @@ These are the three main initialization functions, listed in the order that they ## Keyboard Pre Initialization code -This runs very early during startup, even before the USB has been started. +This runs very early during startup, even before the USB has been started. Shortly after this, the matrix is initialized. -For most users, this shouldn't be used, as it's primarily for hardware oriented initialization. +For most users, this shouldn't be used, as it's primarily for hardware oriented initialization. However, if you have hardware stuff that you need initialized, this is the best place for it (such as initializing LED pins). @@ -134,9 +134,9 @@ void keyboard_pre_init_user(void) { ## Matrix Initialization Code -This is called when the matrix is initialized, and after some of the hardware has been set up, but before many of the features have been initialized. +This is called when the matrix is initialized, and after some of the hardware has been set up, but before many of the features have been initialized. -This is useful for setting up stuff that you may need elsewhere, but isn't hardware related nor is dependant on where it's started. +This is useful for setting up stuff that you may need elsewhere, but isn't hardware related nor is dependant on where it's started. ### `matrix_init_*` Function Documentation @@ -227,185 +227,6 @@ void suspend_wakeup_init_user(void) { * Keyboard/Revision: `void suspend_power_down_kb(void)` and `void suspend_wakeup_init_user(void)` * Keymap: `void suspend_power_down_kb(void)` and `void suspend_wakeup_init_user(void)` -# Layer Change Code :id=layer-change-code - -This runs code every time that the layers get changed. This can be useful for layer indication, or custom layer handling. - -### Example `layer_state_set_*` Implementation - -This example shows how to set the [RGB Underglow](feature_rgblight.md) lights based on the layer, using the Planck as an example. - -```c -layer_state_t layer_state_set_user(layer_state_t state) { - switch (get_highest_layer(state)) { - case _RAISE: - rgblight_setrgb (0x00, 0x00, 0xFF); - break; - case _LOWER: - rgblight_setrgb (0xFF, 0x00, 0x00); - break; - case _PLOVER: - rgblight_setrgb (0x00, 0xFF, 0x00); - break; - case _ADJUST: - rgblight_setrgb (0x7A, 0x00, 0xFF); - break; - default: // for any other layers, or the default layer - rgblight_setrgb (0x00, 0xFF, 0xFF); - break; - } - return state; -} -``` - -Use the `IS_LAYER_ON_STATE(state, layer)` and `IS_LAYER_OFF_STATE(state, layer)` macros to check the status of a particular layer. - -Outside of `layer_state_set_*` functions, you can use the `IS_LAYER_ON(layer)` and `IS_LAYER_OFF(layer)` macros to check global layer state. - -### `layer_state_set_*` Function Documentation - -* Keyboard/Revision: `layer_state_t layer_state_set_kb(layer_state_t state)` -* Keymap: `layer_state_t layer_state_set_user(layer_state_t state)` - - -The `state` is the bitmask of the active layers, as explained in the [Keymap Overview](keymap.md#keymap-layer-status) - - -# Persistent Configuration (EEPROM) - -This allows you to configure persistent settings for your keyboard. These settings are stored in the EEPROM of your controller, and are retained even after power loss. The settings can be read with `eeconfig_read_kb` and `eeconfig_read_user`, and can be written to using `eeconfig_update_kb` and `eeconfig_update_user`. This is useful for features that you want to be able to toggle (like toggling rgb layer indication). Additionally, you can use `eeconfig_init_kb` and `eeconfig_init_user` to set the default values for the EEPROM. - -The complicated part here, is that there are a bunch of ways that you can store and access data via EEPROM, and there is no "correct" way to do this. However, you only have a DWORD (4 bytes) for each function. - -Keep in mind that EEPROM has a limited number of writes. While this is very high, it's not the only thing writing to the EEPROM, and if you write too often, you can potentially drastically shorten the life of your MCU. - -* If you don't understand the example, then you may want to avoid using this feature, as it is rather complicated. - -### Example Implementation - -This is an example of how to add settings, and read and write it. We're using the user keymap for the example here. This is a complex function, and has a lot going on. In fact, it uses a lot of the above functions to work! - - -In your keymap.c file, add this to the top: -```c -typedef union { - uint32_t raw; - struct { - bool rgb_layer_change :1; - }; -} user_config_t; - -user_config_t user_config; -``` - -This sets up a 32 bit structure that we can store settings with in memory, and write to the EEPROM. Using this removes the need to define variables, since they're defined in this structure. Remember that `bool` (boolean) values use 1 bit, `uint8_t` uses 8 bits, `uint16_t` uses up 16 bits. You can mix and match, but changing the order can cause issues, as it will change the values that are read and written. - -We're using `rgb_layer_change`, for the `layer_state_set_*` function, and use `keyboard_post_init_user` and `process_record_user` to configure everything. - -Now, using the `keyboard_post_init_user` code above, you want to add `eeconfig_read_user()` to it, to populate the structure you've just created. And you can then immediately use this structure to control functionality in your keymap. And It should look like: -```c -void keyboard_post_init_user(void) { - // Call the keymap level matrix init. - - // Read the user config from EEPROM - user_config.raw = eeconfig_read_user(); - - // Set default layer, if enabled - if (user_config.rgb_layer_change) { - rgblight_enable_noeeprom(); - rgblight_sethsv_noeeprom_cyan(); - rgblight_mode_noeeprom(1); - } -} -``` -The above function will use the EEPROM config immediately after reading it, to set the default layer's RGB color. The "raw" value of it is converted in a usable structure based on the "union" that you created above. - -```c -layer_state_t layer_state_set_user(layer_state_t state) { - switch (get_highest_layer(state)) { - case _RAISE: - if (user_config.rgb_layer_change) { rgblight_sethsv_noeeprom_magenta(); rgblight_mode_noeeprom(1); } - break; - case _LOWER: - if (user_config.rgb_layer_change) { rgblight_sethsv_noeeprom_red(); rgblight_mode_noeeprom(1); } - break; - case _PLOVER: - if (user_config.rgb_layer_change) { rgblight_sethsv_noeeprom_green(); rgblight_mode_noeeprom(1); } - break; - case _ADJUST: - if (user_config.rgb_layer_change) { rgblight_sethsv_noeeprom_white(); rgblight_mode_noeeprom(1); } - break; - default: // for any other layers, or the default layer - if (user_config.rgb_layer_change) { rgblight_sethsv_noeeprom_cyan(); rgblight_mode_noeeprom(1); } - break; - } - return state; -} -``` -This will cause the RGB underglow to be changed ONLY if the value was enabled. Now to configure this value, create a new keycode for `process_record_user` called `RGB_LYR`. Additionally, we want to make sure that if you use the normal RGB codes, that it turns off Using the example above, make it look this: -```c - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case FOO: - if (record->event.pressed) { - // Do something when pressed - } else { - // Do something else when release - } - return false; // Skip all further processing of this key - case KC_ENTER: - // Play a tone when enter is pressed - if (record->event.pressed) { - PLAY_SONG(tone_qwerty); - } - return true; // Let QMK send the enter press/release events - case RGB_LYR: // This allows me to use underglow as layer indication, or as normal - if (record->event.pressed) { - user_config.rgb_layer_change ^= 1; // Toggles the status - eeconfig_update_user(user_config.raw); // Writes the new status to EEPROM - if (user_config.rgb_layer_change) { // if layer state indication is enabled, - layer_state_set(layer_state); // then immediately update the layer color - } - } - return false; - case RGB_MODE_FORWARD ... RGB_MODE_GRADIENT: // For any of the RGB codes (see quantum_keycodes.h, L400 for reference) - if (record->event.pressed) { //This disables layer indication, as it's assumed that if you're changing this ... you want that disabled - if (user_config.rgb_layer_change) { // only if this is enabled - user_config.rgb_layer_change = false; // disable it, and - eeconfig_update_user(user_config.raw); // write the setings to EEPROM - } - } - return true; break; - default: - return true; // Process all other keycodes normally - } -} -``` -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 `EEP_RST` keycode or [Bootmagic Lite](feature_bootmagic.md) 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! - user_config.raw = 0; - user_config.rgb_layer_change = true; // We want this enabled by default - eeconfig_update_user(user_config.raw); // Write default value to EEPROM now - - // use the non noeeprom versions, to write these values to EEPROM too - rgblight_enable(); // Enable RGB by default - rgblight_sethsv_cyan(); // Set it to CYAN by default - rgblight_mode(1); // set to solid by default -} -``` - -And you're done. The RGB layer indication will only work if you want it to. And it will be saved, even after unplugging the board. And if you use any of the RGB codes, it will disable the layer indication, so that it stays on the mode and color that you set it to. - -### 'EECONFIG' Function Documentation - -* Keyboard/Revision: `void eeconfig_init_kb(void)`, `uint32_t eeconfig_read_kb(void)` and `void eeconfig_update_kb(uint32_t val)` -* Keymap: `void eeconfig_init_user(void)`, `uint32_t eeconfig_read_user(void)` and `void eeconfig_update_user(uint32_t val)` - -The `val` is the value of the data that you want to write to EEPROM. And the `eeconfig_read_*` function return a 32 bit (DWORD) value from the EEPROM. - # Deferred Execution :id=deferred-execution QMK has the ability to execute a callback after a specified period of time, rather than having to manually manage timers. To enable this functionality, set `DEFERRED_EXEC_ENABLE = yes` in rules.mk. @@ -471,3 +292,15 @@ If registrations fail, then you can increase this value in your keyboard or keym ```c #define MAX_DEFERRED_EXECUTORS 16 ``` + +# Advanced topics :id=advanced-topics + +This page used to encompass a large set of features. We have moved many sections that used to be part of this page to their own pages. Everything below this point is simply a redirect so that people following old links on the web find what they're looking for. + +## Layer Change Code :id=layer-change-code + +[Layer change code](feature_layers.md#layer-change-code) + +## Persistent Configuration (EEPROM) :id=persistent-configuration-eeprom + +[Persistent Configuration (EEPROM)](feature_eeprom.md) diff --git a/docs/feature_advanced_keycodes.md b/docs/feature_advanced_keycodes.md index 83066187c70..b04721b23a6 100644 --- a/docs/feature_advanced_keycodes.md +++ b/docs/feature_advanced_keycodes.md @@ -161,7 +161,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { }; ``` -# Legacy Content :id=legacy-content +# Advanced topics :id=advanced-topics This page used to encompass a large set of features. We have moved many sections that used to be part of this page to their own pages. Everything below this point is simply a redirect so that people following old links on the web find what they're looking for. diff --git a/docs/feature_converters.md b/docs/feature_converters.md index 1323bdb3729..3dabae915d5 100644 --- a/docs/feature_converters.md +++ b/docs/feature_converters.md @@ -18,6 +18,8 @@ Currently the following converters are available: | `promicro` | `stemcell` | | `promicro` | `bonsai_c4` | | `promicro` | `elite_pi` | +| `elite_c` | `stemcell` | +| `elite_c` | `elite_pi` | See below for more in depth information on each converter. @@ -48,6 +50,23 @@ Once a converter is enabled, it exposes the `CONVERT_TO_` flag #endif ``` +### Pin Compatibility + +To ensure compatibility, provide validation, and power future workflows, a keyboard should declare its `pin compatibility`. For legacy reasons, this is currently assumed to be `promicro`. + +Currently the following pin compatibility interfaces are defined: + +| Pinout | Notes | +|------------|-----------------------------------| +| `promicro` | Includes RX/TX LEDs | +| `elite_c` | Includes bottom row pins, no LEDs | + +To declare the base for conversions, add this line to your keyboard's `rules.mk`: + +```makefile +PIN_COMPATIBLE = elite_c +``` + ## Pro Micro If a board currently supported in QMK uses a [Pro Micro](https://www.sparkfun.com/products/12640) (or compatible board), the supported alternative controllers are: @@ -107,7 +126,7 @@ The following defaults are based on what has been implemented for [RP2040](platf ### SparkFun Pro Micro - RP2040, Blok, Bit-C PRO, and Elite-Pi :id=promicro_rp2040 -Currently identical to [Adafruit KB2040](#kb2040). +Currently identical to [Adafruit KB2040](#kb2040). ### STeMCell :id=stemcell @@ -138,4 +157,28 @@ The Bonsai C4 only has one on-board LED (B2), and by default, both the Pro Micro #define B0 PAL_LINE(GPIOA, 9) ``` -No peripherals are enabled by default at this time, but example code to enable SPI, I2C, PWM, and Serial communications can be found [here](/keyboards/custommk/bonsai_c4_template) +No peripherals are enabled by default at this time, but example code to enable SPI, I2C, PWM, and Serial communications can be found [here](/keyboards/custommk/bonsai_c4_template). + +## Elite-C + +If a board currently supported in QMK uses an [Elite-C](https://keeb.io/products/elite-c-low-profile-version-usb-c-pro-micro-replacement-atmega32u4), the supported alternative controllers are: + +| Device | Target | +|----------------------------------------------------------------------------------|-------------------| +| [STeMCell](https://github.com/megamind4089/STeMCell) | `stemcell` | +| [Elite-Pi](https://keeb.io/products/elite-pi-usb-c-pro-micro-replacement-rp2040) | `elite_pi` | + +Converter summary: + +| Target | Argument | `rules.mk` | Condition | +|-------------------|---------------------------------|------------------------------|-------------------------------------| +| `stemcell` | `-e CONVERT_TO=stemcell` | `CONVERT_TO=stemcell` | `#ifdef CONVERT_TO_STEMCELL` | +| `elite_pi` | `-e CONVERT_TO=elite_pi` | `CONVERT_TO=elite_pi` | `#ifdef CONVERT_TO_ELITE_PI` | + +### STeMCell :id=stemcell_elite + +Currently identical to [STeMCell](#stemcell) with support for the additional bottom row of pins. + +### Elite-Pi :id=elite_pi + +Currently identical to [Adafruit KB2040](#kb2040), with support for the additional bottom row of pins. diff --git a/docs/feature_eeprom.md b/docs/feature_eeprom.md new file mode 100644 index 00000000000..e261c455cb7 --- /dev/null +++ b/docs/feature_eeprom.md @@ -0,0 +1,134 @@ +# Persistent Configuration (EEPROM) + +This allows you to configure persistent settings for your keyboard. These settings are stored in the EEPROM of your controller, and are retained even after power loss. The settings can be read with `eeconfig_read_kb` and `eeconfig_read_user`, and can be written to using `eeconfig_update_kb` and `eeconfig_update_user`. This is useful for features that you want to be able to toggle (like toggling rgb layer indication). Additionally, you can use `eeconfig_init_kb` and `eeconfig_init_user` to set the default values for the EEPROM. + +The complicated part here, is that there are a bunch of ways that you can store and access data via EEPROM, and there is no "correct" way to do this. However, you only have a DWORD (4 bytes) for each function. + +Keep in mind that EEPROM has a limited number of writes. While this is very high, it's not the only thing writing to the EEPROM, and if you write too often, you can potentially drastically shorten the life of your MCU. + +* If you don't understand the example, then you may want to avoid using this feature, as it is rather complicated. + +## Example Implementation + +This is an example of how to add settings, and read and write it. We're using the user keymap for the example here. This is a complex function, and has a lot going on. In fact, it uses a lot of the above functions to work! + + +In your keymap.c file, add this to the top: +```c +typedef union { + uint32_t raw; + struct { + bool rgb_layer_change :1; + }; +} user_config_t; + +user_config_t user_config; +``` + +This sets up a 32 bit structure that we can store settings with in memory, and write to the EEPROM. Using this removes the need to define variables, since they're defined in this structure. Remember that `bool` (boolean) values use 1 bit, `uint8_t` uses 8 bits, `uint16_t` uses up 16 bits. You can mix and match, but changing the order can cause issues, as it will change the values that are read and written. + +We're using `rgb_layer_change`, for the `layer_state_set_*` function, and use `keyboard_post_init_user` and `process_record_user` to configure everything. + +Now, using the `keyboard_post_init_user` code above, you want to add `eeconfig_read_user()` to it, to populate the structure you've just created. And you can then immediately use this structure to control functionality in your keymap. And It should look like: +```c +void keyboard_post_init_user(void) { + // Call the keymap level matrix init. + + // Read the user config from EEPROM + user_config.raw = eeconfig_read_user(); + + // Set default layer, if enabled + if (user_config.rgb_layer_change) { + rgblight_enable_noeeprom(); + rgblight_sethsv_noeeprom_cyan(); + rgblight_mode_noeeprom(1); + } +} +``` +The above function will use the EEPROM config immediately after reading it, to set the default layer's RGB color. The "raw" value of it is converted in a usable structure based on the "union" that you created above. + +```c +layer_state_t layer_state_set_user(layer_state_t state) { + switch (get_highest_layer(state)) { + case _RAISE: + if (user_config.rgb_layer_change) { rgblight_sethsv_noeeprom_magenta(); rgblight_mode_noeeprom(1); } + break; + case _LOWER: + if (user_config.rgb_layer_change) { rgblight_sethsv_noeeprom_red(); rgblight_mode_noeeprom(1); } + break; + case _PLOVER: + if (user_config.rgb_layer_change) { rgblight_sethsv_noeeprom_green(); rgblight_mode_noeeprom(1); } + break; + case _ADJUST: + if (user_config.rgb_layer_change) { rgblight_sethsv_noeeprom_white(); rgblight_mode_noeeprom(1); } + break; + default: // for any other layers, or the default layer + if (user_config.rgb_layer_change) { rgblight_sethsv_noeeprom_cyan(); rgblight_mode_noeeprom(1); } + break; + } + return state; +} +``` +This will cause the RGB underglow to be changed ONLY if the value was enabled. Now to configure this value, create a new keycode for `process_record_user` called `RGB_LYR`. Additionally, we want to make sure that if you use the normal RGB codes, that it turns off Using the example above, make it look this: +```c + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case FOO: + if (record->event.pressed) { + // Do something when pressed + } else { + // Do something else when release + } + return false; // Skip all further processing of this key + case KC_ENTER: + // Play a tone when enter is pressed + if (record->event.pressed) { + PLAY_SONG(tone_qwerty); + } + return true; // Let QMK send the enter press/release events + case RGB_LYR: // This allows me to use underglow as layer indication, or as normal + if (record->event.pressed) { + user_config.rgb_layer_change ^= 1; // Toggles the status + eeconfig_update_user(user_config.raw); // Writes the new status to EEPROM + if (user_config.rgb_layer_change) { // if layer state indication is enabled, + layer_state_set(layer_state); // then immediately update the layer color + } + } + return false; + case RGB_MODE_FORWARD ... RGB_MODE_GRADIENT: // For any of the RGB codes (see quantum_keycodes.h, L400 for reference) + if (record->event.pressed) { //This disables layer indication, as it's assumed that if you're changing this ... you want that disabled + if (user_config.rgb_layer_change) { // only if this is enabled + user_config.rgb_layer_change = false; // disable it, and + eeconfig_update_user(user_config.raw); // write the setings to EEPROM + } + } + return true; break; + default: + return true; // Process all other keycodes normally + } +} +``` +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 `EEP_RST` keycode or [Bootmagic Lite](feature_bootmagic.md) 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! + user_config.raw = 0; + user_config.rgb_layer_change = true; // We want this enabled by default + eeconfig_update_user(user_config.raw); // Write default value to EEPROM now + + // use the non noeeprom versions, to write these values to EEPROM too + rgblight_enable(); // Enable RGB by default + rgblight_sethsv_cyan(); // Set it to CYAN by default + rgblight_mode(1); // set to solid by default +} +``` + +And you're done. The RGB layer indication will only work if you want it to. And it will be saved, even after unplugging the board. And if you use any of the RGB codes, it will disable the layer indication, so that it stays on the mode and color that you set it to. + +## 'EECONFIG' Function Documentation + +* Keyboard/Revision: `void eeconfig_init_kb(void)`, `uint32_t eeconfig_read_kb(void)` and `void eeconfig_update_kb(uint32_t val)` +* Keymap: `void eeconfig_init_user(void)`, `uint32_t eeconfig_read_user(void)` and `void eeconfig_update_user(uint32_t val)` + +The `val` is the value of the data that you want to write to EEPROM. And the `eeconfig_read_*` function return a 32 bit (DWORD) value from the EEPROM. diff --git a/docs/feature_layers.md b/docs/feature_layers.md index e30c540a79e..5ad4005f5d9 100644 --- a/docs/feature_layers.md +++ b/docs/feature_layers.md @@ -1,6 +1,6 @@ # Layers :id=layers -One of the most powerful and well used features of QMK Firmware is the ability to use layers. For most people, this amounts to a function key that allows for different keys, much like what you would see on a laptop or tablet keyboard. +One of the most powerful and well used features of QMK Firmware is the ability to use layers. For most people, this amounts to a function key that allows for different keys, much like what you would see on a laptop or tablet keyboard. For a detailed explanation of how the layer stack works, checkout [Keymap Overview](keymap.md#keymap-and-layers). @@ -9,7 +9,7 @@ For a detailed explanation of how the layer stack works, checkout [Keymap Overvi These functions allow you to activate layers in various ways. Note that layers are not generally independent layouts -- multiple layers can be activated at once, and it's typical for layers to use `KC_TRNS` to allow keypresses to pass through to lower layers. When using momentary layer switching with MO(), LM(), TT(), or LT(), make sure to leave the key on the above layers transparent or it may not work as intended. * `DF(layer)` - switches the default layer. The default layer is the always-active base layer that other layers stack on top of. See below for more about the default layer. This might be used to switch from QWERTY to Dvorak layout. (Note that this is a temporary switch that only persists until the keyboard loses power. To modify the default layer in a persistent way requires deeper customization, such as calling the `set_single_persistent_default_layer` function inside of [process_record_user](custom_quantum_functions.md#programming-the-behavior-of-any-keycode).) -* `MO(layer)` - momentarily activates *layer*. As soon as you let go of the key, the layer is deactivated. +* `MO(layer)` - momentarily activates *layer*. As soon as you let go of the key, the layer is deactivated. * `LM(layer, mod)` - Momentarily activates *layer* (like `MO`), but with modifier(s) *mod* active. Only supports layers 0-15 and the left modifiers: `MOD_LCTL`, `MOD_LSFT`, `MOD_LALT`, `MOD_LGUI` (note the use of `MOD_` constants instead of `KC_`). These modifiers can be combined using bitwise OR, e.g. `LM(_RAISE, MOD_LCTL | MOD_LALT)`. * `LT(layer, kc)` - momentarily activates *layer* when held, and sends *kc* when tapped. Only supports layers 0-15. * `OSL(layer)` - momentarily activates *layer* until the next key is pressed. See [One Shot Keys](one_shot_keys.md) for details and additional functionality. @@ -31,7 +31,7 @@ Care must be taken when switching layers, it's possible to lock yourself into a If you are just getting started with QMK you will want to keep everything simple. Follow these guidelines when setting up your layers: -* Setup layer 0 as your default, "base" layer. This is your normal typing layer, and could be whatever layout you want (qwerty, dvorak, colemak, etc.). It's important to set this as the lowest layer since it will typically have most or all of the keyboard's keys defined, so would block other layers from having any effect if it were above them (i.e., had a higher layer number). +* Setup layer 0 as your default, "base" layer. This is your normal typing layer, and could be whatever layout you want (qwerty, dvorak, colemak, etc.). It's important to set this as the lowest layer since it will typically have most or all of the keyboard's keys defined, so would block other layers from having any effect if it were above them (i.e., had a higher layer number). * Arrange your layers in a "tree" layout, with layer 0 as the root. Do not try to enter the same layer from more than one other layer. * In a layer's keymap, only reference higher-numbered layers. Because layers are processed from the highest-numbered (topmost) active layer down, modifying the state of lower layers can be tricky and error-prone. @@ -89,3 +89,46 @@ It is also possible to check the state of a particular layer using the following |---------------------------------|-------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------| | `layer_state_is(layer)` | Checks if the specified `layer` is enabled globally. | `IS_LAYER_ON(layer)`, `IS_LAYER_OFF(layer)` | | `layer_state_cmp(state, layer)` | Checks `state` to see if the specified `layer` is enabled. Intended for use in layer callbacks. | `IS_LAYER_ON_STATE(state, layer)`, `IS_LAYER_OFF_STATE(state, layer)` | + +## Layer Change Code :id=layer-change-code + +This runs code every time that the layers get changed. This can be useful for layer indication, or custom layer handling. + +### Example `layer_state_set_*` Implementation + +This example shows how to set the [RGB Underglow](feature_rgblight.md) lights based on the layer, using the Planck as an example. + +```c +layer_state_t layer_state_set_user(layer_state_t state) { + switch (get_highest_layer(state)) { + case _RAISE: + rgblight_setrgb (0x00, 0x00, 0xFF); + break; + case _LOWER: + rgblight_setrgb (0xFF, 0x00, 0x00); + break; + case _PLOVER: + rgblight_setrgb (0x00, 0xFF, 0x00); + break; + case _ADJUST: + rgblight_setrgb (0x7A, 0x00, 0xFF); + break; + default: // for any other layers, or the default layer + rgblight_setrgb (0x00, 0xFF, 0xFF); + break; + } + return state; +} +``` + +Use the `IS_LAYER_ON_STATE(state, layer)` and `IS_LAYER_OFF_STATE(state, layer)` macros to check the status of a particular layer. + +Outside of `layer_state_set_*` functions, you can use the `IS_LAYER_ON(layer)` and `IS_LAYER_OFF(layer)` macros to check global layer state. + +### `layer_state_set_*` Function Documentation + +* Keyboard/Revision: `layer_state_t layer_state_set_kb(layer_state_t state)` +* Keymap: `layer_state_t layer_state_set_user(layer_state_t state)` + + +The `state` is the bitmask of the active layers, as explained in the [Keymap Overview](keymap.md#keymap-layer-status) diff --git a/docs/feature_led_matrix.md b/docs/feature_led_matrix.md index 563fa149a29..cc036eb80f7 100644 --- a/docs/feature_led_matrix.md +++ b/docs/feature_led_matrix.md @@ -22,7 +22,7 @@ You can use between 1 and 4 IS31FL3731 IC's. Do not specify `LED_DRIVER_ADDR_ | `ISSI_TIMEOUT` | (Optional) How long to wait for i2c messages, in milliseconds | 100 | | `ISSI_PERSISTENCE` | (Optional) Retry failed messages this many times | 0 | | `LED_DRIVER_COUNT` | (Required) How many LED driver IC's are present | | -| `DRIVER_LED_TOTAL` | (Required) How many LED lights are present across all drivers | | +| `LED_MATRIX_LED_COUNT` | (Required) How many LED lights are present across all drivers | | | `LED_DRIVER_ADDR_1` | (Required) Address for the first LED driver | | | `LED_DRIVER_ADDR_2` | (Optional) Address for the second LED driver | | | `LED_DRIVER_ADDR_3` | (Optional) Address for the third LED driver | | @@ -44,17 +44,17 @@ Here is an example using 2 drivers. #define LED_DRIVER_COUNT 2 #define LED_DRIVER_1_LED_TOTAL 25 #define LED_DRIVER_2_LED_TOTAL 24 -#define DRIVER_LED_TOTAL (LED_DRIVER_1_LED_TOTAL + LED_DRIVER_2_LED_TOTAL) +#define LED_MATRIX_LED_COUNT (LED_DRIVER_1_LED_TOTAL + LED_DRIVER_2_LED_TOTAL) ``` -!> Note the parentheses, this is so when `LED_DRIVER_LED_TOTAL` is used in code and expanded, the values are added together before any additional math is applied to them. As an example, `rand() % (LED_DRIVER_1_LED_TOTAL + LED_DRIVER_2_LED_TOTAL)` will give very different results than `rand() % LED_DRIVER_1_LED_TOTAL + LED_DRIVER_2_LED_TOTAL`. +!> Note the parentheses, this is so when `LED_MATRIX_LED_COUNT` is used in code and expanded, the values are added together before any additional math is applied to them. As an example, `rand() % (LED_DRIVER_1_LED_TOTAL + LED_DRIVER_2_LED_TOTAL)` will give very different results than `rand() % LED_DRIVER_1_LED_TOTAL + LED_DRIVER_2_LED_TOTAL`. For split keyboards using `LED_MATRIX_SPLIT` with an LED driver, you can either have the same driver address or different driver addresses. If using different addresses, use `DRIVER_ADDR_1` for one and `DRIVER_ADDR_2` for the other one. Then, in `g_is31_leds`, fill out the correct driver index (0 or 1). If using one address, use `DRIVER_ADDR_1` for both, and use index 0 for `g_is31_leds`. Define these arrays listing all the LEDs in your `.c`: ```c -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[LED_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | LED address @@ -95,7 +95,7 @@ Configure the hardware via your `config.h`: | `ISSI_TIMEOUT` | (Optional) How long to wait for i2c messages, in milliseconds | 100 | | `ISSI_PERSISTENCE` | (Optional) Retry failed messages this many times | 0 | | `DRIVER_COUNT` | (Required) How many LED driver IC's are present | | -| `DRIVER_LED_TOTAL` | (Required) How many LED lights are present across all drivers | | +| `LED_MATRIX_LED_COUNT` | (Required) How many LED lights are present across all drivers | | | `DRIVER_ADDR_1` | (Optional) Address for the first LED driver | | | `DRIVER_ADDR_` | (Required) Address for the additional LED drivers | | | `ISSI_SSR_` | (Optional) Configuration for the Spread Spectrum Register | | @@ -130,16 +130,16 @@ Here is an example using 2 drivers. #define DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 66 #define DRIVER_2_LED_TOTAL 42 -#define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) +#define LED_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) ``` -!> Note the parentheses, this is so when `DRIVER_LED_TOTAL` is used in code and expanded, the values are added together before any additional math is applied to them. As an example, `rand() % (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)` will give very different results than `rand() % DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL`. +!> Note the parentheses, this is so when `LED_MATRIX_LED_COUNT` is used in code and expanded, the values are added together before any additional math is applied to them. As an example, `rand() % (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)` will give very different results than `rand() % DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL`. Currently only 4 drivers are supported, but it would be trivial to support for more. Note that using a combination of different drivers is not supported. All drivers must be of the same model. Define these arrays listing all the LEDs in your `.c`: ```c -const is31_led __flash g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led __flash g_is31_leds[LED_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | LED address @@ -367,7 +367,7 @@ For inspiration and examples, check out the built-in effects under `quantum/led_ #define LED_DISABLE_TIMEOUT 0 // number of milliseconds to wait until led automatically turns off #define LED_DISABLE_AFTER_TIMEOUT 0 // OBSOLETE: number of ticks to wait until disabling effects #define LED_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended -#define LED_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) +#define LED_MATRIX_LED_PROCESS_LIMIT (LED_MATRIX_LED_COUNT + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) #define LED_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness) #define LED_MATRIX_MAXIMUM_BRIGHTNESS 255 // limits maximum brightness of LEDs #define LED_MATRIX_STARTUP_MODE LED_MATRIX_SOLID // Sets the default mode, if none has been set @@ -391,7 +391,7 @@ Where `28` is an unused index from `eeconfig.h`. |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 `DRIVER_LED_TOTAL` (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 :id=disable-enable-effects |Function |Description | diff --git a/docs/feature_pointing_device.md b/docs/feature_pointing_device.md index f2a8994fd2d..0771203cdd8 100644 --- a/docs/feature_pointing_device.md +++ b/docs/feature_pointing_device.md @@ -289,6 +289,7 @@ void pointing_device_driver_set_cpi(uint16_t cpi) {} | `POINTING_DEVICE_INVERT_X` | (Optional) Inverts the X axis report. | _not defined_ | | `POINTING_DEVICE_INVERT_Y` | (Optional) Inverts the Y axis report. | _not defined_ | | `POINTING_DEVICE_MOTION_PIN` | (Optional) If supported, will only read from sensor if pin is active. | _not defined_ | +| `POINTING_DEVICE_MOTION_PIN_ACTIVE_LOW` | (Optional) If defined then the motion pin is active-low. | _varies_ | | `POINTING_DEVICE_TASK_THROTTLE_MS` | (Optional) Limits the frequency that the sensor is polled for motion. | _not defined_ | | `POINTING_DEVICE_GESTURES_CURSOR_GLIDE_ENABLE` | (Optional) Enable inertial cursor. Cursor continues moving after a flick gesture and slows down by kinetic friction. | _not defined_ | | `POINTING_DEVICE_GESTURES_SCROLL_ENABLE` | (Optional) Enable scroll gesture. The gesture that activates the scroll is device dependent. | _not defined_ | @@ -345,7 +346,7 @@ The combined functions below are only available when using `SPLIT_POINTING_ENABL | Function | Description | | --------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ | | `pointing_device_set_shared_report(mouse_report)` | Sets the shared mouse report to the assigned `mouse_report_t` data structured passed to the function. | -| `pointing_device_set_cpi_on_side(bool, uint16_t)` | Sets the CPI/DPI of one side, if supported. Passing `true` will set the left and `false` the right` | +| `pointing_device_set_cpi_on_side(bool, uint16_t)` | Sets the CPI/DPI of one side, if supported. Passing `true` will set the left and `false` the right | | `pointing_device_combine_reports(left_report, right_report)` | Returns a combined mouse_report of left_report and right_report (as a `mouse_report_t` data structure) | | `pointing_device_task_combined_kb(left_report, right_report)` | Callback, so keyboard code can intercept and modify the data. Returns a combined mouse report. | | `pointing_device_task_combined_user(left_report, right_report)` | Callback, so user code can intercept and modify. Returns a combined mouse report using `pointing_device_combine_reports` | @@ -497,3 +498,233 @@ If you are having issues with pointing device drivers debug messages can be enab ``` ?> The messages will be printed out to the `CONSOLE` output. For additional information, refer to [Debugging/Troubleshooting QMK](faq_debug.md). + + +--- +# Automatic Mouse Layer :id=pointing-device-auto-mouse + +When using a pointing device combined with a keyboard the mouse buttons are often kept on a separate layer from the default keyboard layer, which requires pressing or holding a key to change layers before using the mouse. To make this easier and more efficient an additional pointing device feature may be enabled that will automatically activate a target layer as soon as the pointing device is active _(in motion, mouse button pressed etc.)_ and deactivate the target layer after a set time. + +Additionally if any key that is defined as a mouse key is pressed then the layer will be held as long as the key is pressed and the timer will be reset on key release. When a non-mouse key is pressed then the layer is deactivated early _(with some exceptions see below)_. Mod, mod tap, and one shot mod keys are ignored _(i.e. don't hold or activate layer but do not deactivate the layer either)_ when sending a modifier keycode _(e.g. hold for mod tap)_ allowing for mod keys to be used with the mouse without activating the target layer when typing. + +All of the standard layer keys (tap toggling, toggle, toggle on, one_shot, layer tap, layer mod) that activate the current target layer are uniquely handled to ensure they behave as expected _(see layer key table below)_. The target layer that can be changed at any point during by calling the `set_auto_mouse_layer();` function. + +### Behaviour of Layer keys that activate the target layer +| Layer key as in `keymap.c` | Auto Mouse specific behaviour | +| -------------------------- | --------------------------------------------------------------------------------------------------------------------- | +| `MO()` | Treated as a mouse key holding the layer while pressed | +| `LT()` | When tapped will be treated as non mouse key and mouse key when held | +| `LM()` | Treated as a mouse key | +| `TG()` | Will set flag preventing target layer deactivation or removal until pressed again | +| `TO()` | Same as `TG()` | +| `TT()` | Treated as a mouse key when `tap.count < TAPPING_TOGGLE` and as `TG` when `tap.count == TAPPING_TOGGLE` | +| `DF()` | Skips auto mouse key processing similar to mod keys | +| `OSL()` | Skips, but if current one shot layer is the target layer then it will prevent target layer deactivation or removal | + + +## How to enable: + +```c +// in config.h: +#define POINTING_DEVICE_AUTO_MOUSE_ENABLE +// only required if not setting mouse layer elsewhere +#define AUTO_MOUSE_DEFAULT_LAYER + +// in keymap.c: +void pointing_device_init_user(void) { + set_auto_mouse_layer(); // only required if AUTO_MOUSE_DEFAULT_LAYER is not set to index of + set_auto_mouse_enable(true); // always required before the auto mouse feature will work +} +``` + +Because the auto mouse feature can be disabled/enabled during runtime and starts as disabled by default it must be enabled by calling `set_auto_mouse_enable(true);` somewhere in firmware before the feature will work. +_Note: for setting the target layer during initialization either setting `AUTO_MOUSE_DEFAULT_LAYER` in `config.h` or calling `set_auto_mouse_layer()` can be used._ + + +## How to Customize: + +There are a few ways to control the auto mouse feature with both `config.h` options and functions for controlling it during runtime. + +### `config.h` Options: +| Define | Description | Range | Units | Default | +| ----------------------------------- | --------------------------------------------------------------------- | :------------------: | :---------: | -------------------------: | +| `POINTING_DEVICE_AUTO_MOUSE_ENABLE` | (Required) Enables auto mouse layer feature | | _None_ | _Not defined_ | +| `AUTO_MOUSE_DEFAULT_LAYER` | (Optional) Index of layer to use as default target layer | 0 - `LAYER_MAX` | _`uint8_t`_ | `1` | +| `AUTO_MOUSE_TIME` | (Optional) Time layer remains active after activation | _ideally_ (250-1000) | _ms_ | `650 ms` | +| `AUTO_MOUSE_DELAY` | (Optional) Lockout time after non-mouse key is pressed | _ideally_ (100-1000) | _ms_ | `TAPPING_TERM` or `200 ms` | +| `AUTO_MOUSE_DEBOUNCE` | (Optional) Time delay from last activation to next update | _ideally_ (10 - 100) | _ms_ | `25 ms` | + +### Adding mouse keys + +While all default mouse keys and layer keys(for current mouse layer) are treated as mouse keys, additional Keyrecords can be added to mouse keys by adding them to the is_mouse_record_* stack. + +#### Callbacks for setting up additional key codes as mouse keys: +| Callback | Description | +| -------------------------------------------------------------------- | -------------------------------------------------- | +| `bool is_mouse_record_kb(uint16_t keycode, keyrecord_t* record)` | keyboard level callback for adding mouse keys | +| `bool is_mouse_record_user(uint16_t keycode, keyrecord_t* record)` | user/keymap level callback for adding mouse keys | + +##### To use the callback function to add mouse keys: + +The following code will cause the enter key and all of the arrow keys to be treated as mouse keys (hold target layer while they are pressed and reset active layer timer). +```c + +// in .c: +bool is_mouse_record_kb(uint16_t keycode, keyrecord_t* record) { + switch(keycode) { + case KC_ENT: + return true; + case KC_RIGHT ... KC_UP: + return true; + default: + return false; + } + return is_mouse_record_user(keycode, record); +} +``` + + +## Advanced control + +There are several functions that allow for more advanced interaction with the auto mouse feature allowing for greater control. + +### Functions to control auto mouse enable and target layer: +| Function | Description | Aliases | Return type | +| :--------------------------------------------------------- | ------------------------------------------------------------------------------------ | ------------------------- | --------------: | +| `set_auto_mouse_enable(bool enable)` | Enable or disable auto mouse (true:enable, false:disable) | | `void`(None) | +| `get_auto_mouse_enable(void)` | Return auto mouse enable state (true:enabled, false:disabled) | `AUTO_MOUSE_ENABLED` | `bool` | +| `set_auto_mouse_layer(uint8_t LAYER)` | Change/set the target layer for auto mouse | | `void`(None) | +| `get_auto_mouse_layer(void)` | Return auto mouse target layer index | `AUTO_MOUSE_TARGET_LAYER` | `uint8_t` | +| `remove_auto_mouse_layer(layer_state_t state, bool force)` | Return `state` with target layer removed if appropriate (ignore criteria if `force`) | | `layer_state_t` | +| `auto_mouse_layer_off(void)` | Disable target layer if appropriate will call (makes call to `layer_state_set`) | | `void`(None) | +| `auto_mouse_toggle(void)` | Toggle on/off target toggle state (disables layer deactivation when true) | | `void`(None) | +| `get_auto_mouse_toggle(void)` | Return value of toggling state variable | | `bool` | + +_NOTES:_ + - _Due to the nature of how some functions work, the `auto_mouse_trigger_reset`, and `auto_mouse_layer_off` functions should never be called in the `layer_state_set_*` stack as this can cause indefinite loops._ + - _It is recommended that `remove_auto_mouse_layer` is used in the `layer_state_set_*` stack of functions and `auto_mouse_layer_off` is used everywhere else_ + - _`remove_auto_mouse_layer(state, false)` or `auto_mouse_layer_off()` should be called before any instance of `set_auto_mouse_enabled(false)` or `set_auto_mouse_layer(layer)` to ensure that the target layer will be removed appropriately before disabling auto mouse or changing target to avoid a stuck layer_ + +### Functions for handling custom key events: +| Function | Description | Return type | +| :--------------------------------------------------------- | -------------------------------------------------------------------------------- | --------------: | +| `auto_mouse_keyevent(bool pressed)` | Auto mouse mouse key event (true: key down, false: key up) | `void`(None) | +| `auto_mouse_trigger_reset(bool pressed)` | Reset auto mouse status on key down and start delay timer (non-mouse key event) | `void`(None) | +| `auto_mouse_toggle(void)` | Toggle on/off target toggle state (disables layer deactivation when true) | `void`(None) | +| `get_auto_mouse_toggle(void)` | Return value of toggling state variable | `bool` | +_NOTE: Generally it would be preferable to use the `is_mouse_record_*` functions to add any additional keys that should act as mouse keys rather than adding `auto_mouse_keyevent(record.event->pressed)` to `process_records_*`_ + +### Advanced control examples + +#### Disable auto mouse on certain layers: + +The auto mouse feature can be disabled any time and this can be helpful if you want to disable the auto mouse feature under certain circumstances such as when particular layers are active. One issue however is the handling of the target layer, it needs to be removed appropriately **before** disabling auto mouse _(see notes under control functions above)_. The following function would disable the auto_mouse feature whenever the layers `_LAYER5` through `_LAYER7` are active as the top most layer _(ignoring target layer)_. + +```c +// in keymap.c: +layer_state_t layer_state_set_user(layer_state_t state) { + // checks highest layer other than target layer + switch(get_highest_layer(remove_auto_mouse_layer(state, true))) { + case _LAYER5 ... _LAYER7: + // remove_auto_mouse_target must be called to adjust state *before* setting enable + state = remove_auto_mouse_layer(state, false); + set_auto_mouse_enable(false); + break; + default: + set_auto_mouse_enable(true); + break; + } + // recommend that any code that makes adjustment based on auto mouse layer state would go here + return state; +} +``` + +#### Set different target layer when a particular layer is active: + +The below code will change the auto mouse layer target to `_MOUSE_LAYER_2` when `_DEFAULT_LAYER_2` is highest default layer state. +*NOTE: that `auto_mouse_layer_off` is used here instead of `remove_auto_mouse_layer` as `default_layer_state_set_*` stack is separate from the `layer_state_set_*` stack* if something similar was to be done in `layer_state_set_user `state = remove_auto_mouse_layer(state, false)` should be used instead +*ADDITIONAL NOTE: `AUTO_MOUSE_TARGET_LAYER` is checked if already set to avoid deactivating the target layer unless needed* + +```c +// in keymap.c +layer_state_t default_layer_state_set_user(layer_state_t state) { + // switch on change in default layer need to check if target layer already set to avoid turning off layer needlessly + switch(get_highest_layer(state)) { + case _DEFAULT_LAYER_2: + if ((AUTO_MOUSE_TARGET_LAYER) == _MOUSE_LAYER_2) break; + auto_mouse_layer_off(); + set_auto_mouse_layer(_MOUSE_LAYER_2); + break; + + default: + if((AUTO_MOUSE_TARGET_LAYER) == _MOUSE_LAYER_1) break; + auto_mouse_layer_off(); + set_auto_mouse_layer(_MOUSE_LAYER_1); + } + return state; +} +``` + +### Use custom keys to control auto mouse: +Custom key records could also be created that control the auto mouse feature. +The code example below would create a custom key that would toggle the auto mouse feature on and off when pressed while also setting a bool that could be used to disable other code that may turn it on such as the layer code above. + +```c +// in config.h: +enum user_custom_keycodes { + AM_Toggle = SAFE_RANGE +}; + +// in keymap.c: +// set up global bool to adjust other user code +bool auto_mouse_tg_off = !AUTO_MOUSE_ENABLED; + +bool process_record_user(uint16_t keycode, keyrecord_t* record) { + switch (keycode) { + // toggle auto mouse enable key + case AM_Toggle: + if(record->event.pressed) { // key down + auto_mouse_layer_off(); // disable target layer if needed + set_auto_mouse_enabled((AUTO_MOUSE_ENABLED) ^ 1); + auto_mouse_tg_off = !get_auto_mouse_enabled(); + } // do nothing on key up + return false; // prevent further processing of keycode + } +} +``` + + +## Customize Target Layer Activation + +Layer activation can be customized by overwriting the `auto_mouse_activation` function. This function is checked every time `pointing_device_task` is called when inactive and every `AUTO_MOUSE_DEBOUNCE` ms when active, and will evaluate pointing device level conditions that trigger target layer activation. When it returns true, the target layer will be activated barring the usual exceptions _(e.g. delay time has not expired)_. + +By default it will return true if any of the `mouse_report` axes `x`,`y`,`h`,`v` are non zero, or if there is any mouse buttons active in `mouse_report`. +_Note: The Cirque pinnacle track pad already implements a custom activation function that will activate on touchdown as well as movement all of the default conditions, currently this only works for the master side of split keyboards._ + +| Function | Description | Return type | +| :--------------------------------------------------------- | -------------------------------------------------------------------------------- | --------------: | +| `auto_mouse_activation(report_mouse_t mouse_report)` | Overwritable function that controls target layer activation (when true) | `bool` | + +## Auto Mouse for Custom Pointing Device Task + +When using a custom pointing device (overwriting `pointing_device_task`) the following code should be somewhere in the `pointing_device_task_*` stack: + +```c +void pointing_device_task(void) { + //...Custom pointing device task code + + // handle automatic mouse layer (needs report_mouse_t as input) + pointing_device_task_auto_mouse(local_mouse_report); + + //...More custom pointing device task code + + pointing_device_send(); +} +``` + +In general the following two functions must be implemented in appropriate locations for auto mouse to function: + +| Function | Description | Suggested location | +| -------------------------------------------------------------- | ------------------------------------------------------------ | ---------------------------: | +| `pointing_device_task_auto_mouse(report_mouse_t mouse_report)` | handles target layer activation and is_active status updates | `pointing_device_task` stack | +| `process_auto_mouse(uint16_t keycode, keyrecord_t* record)` | Keycode processing for auto mouse | `process_record` stack | diff --git a/docs/feature_rgb_matrix.md b/docs/feature_rgb_matrix.md index 13c63ac94c3..11b9b1c5bc1 100644 --- a/docs/feature_rgb_matrix.md +++ b/docs/feature_rgb_matrix.md @@ -23,7 +23,7 @@ You can use between 1 and 4 IS31FL3731 IC's. Do not specify `DRIVER_ADDR_` de | `ISSI_PERSISTENCE` | (Optional) Retry failed messages this many times | 0 | | `ISSI_3731_DEGHOST` | (Optional) Set this define to enable de-ghosting by halving Vcc during blanking time | | | `DRIVER_COUNT` | (Required) How many RGB driver IC's are present | | -| `DRIVER_LED_TOTAL` | (Required) How many RGB lights are present across all drivers | | +| `RGB_MATRIX_LED_COUNT` | (Required) How many RGB lights are present across all drivers | | | `DRIVER_ADDR_1` | (Required) Address for the first RGB driver | | | `DRIVER_ADDR_2` | (Optional) Address for the second RGB driver | | | `DRIVER_ADDR_3` | (Optional) Address for the third RGB driver | | @@ -45,17 +45,17 @@ Here is an example using 2 drivers. #define DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 25 #define DRIVER_2_LED_TOTAL 24 -#define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) +#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) ``` -!> Note the parentheses, this is so when `DRIVER_LED_TOTAL` is used in code and expanded, the values are added together before any additional math is applied to them. As an example, `rand() % (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)` will give very different results than `rand() % DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL`. +!> Note the parentheses, this is so when `RGB_MATRIX_LED_COUNT` is used in code and expanded, the values are added together before any additional math is applied to them. As an example, `rand() % (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)` will give very different results than `rand() % DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL`. For split keyboards using `RGB_MATRIX_SPLIT` with an LED driver, you can either have the same driver address or different driver addresses. If using different addresses, use `DRIVER_ADDR_1` for one and `DRIVER_ADDR_2` for the other one. Then, in `g_is31_leds`, fill out the correct driver index (0 or 1). If using one address, use `DRIVER_ADDR_1` for both, and use index 0 for `g_is31_leds`. Define these arrays listing all the LEDs in your `.c`: ```c -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location @@ -90,7 +90,7 @@ You can use between 1 and 4 IS31FL3733 IC's. Do not specify `DRIVER_ADDR_` de | `ISSI_SWPULLUP` | (Optional) Set the value of the SWx lines on-chip de-ghosting resistors | PUR_0R (Disabled) | | `ISSI_CSPULLUP` | (Optional) Set the value of the CSx lines on-chip de-ghosting resistors | PUR_0R (Disabled) | | `DRIVER_COUNT` | (Required) How many RGB driver IC's are present | | -| `DRIVER_LED_TOTAL` | (Required) How many RGB lights are present across all drivers | | +| `RGB_MATRIX_LED_COUNT` | (Required) How many RGB lights are present across all drivers | | | `DRIVER_ADDR_1` | (Required) Address for the first RGB driver | | | `DRIVER_ADDR_2` | (Optional) Address for the second RGB driver | | | `DRIVER_ADDR_3` | (Optional) Address for the third RGB driver | | @@ -131,17 +131,17 @@ Here is an example using 2 drivers. #define DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 58 #define DRIVER_2_LED_TOTAL 10 -#define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) +#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) ``` -!> Note the parentheses, this is so when `DRIVER_LED_TOTAL` is used in code and expanded, the values are added together before any additional math is applied to them. As an example, `rand() % (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)` will give very different results than `rand() % DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL`. +!> Note the parentheses, this is so when `RGB_MATRIX_LED_COUNT` is used in code and expanded, the values are added together before any additional math is applied to them. As an example, `rand() % (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)` will give very different results than `rand() % DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL`. Currently only 4 drivers are supported, but it would be trivial to support all 8 combinations. Define these arrays listing all the LEDs in your `.c`: ```c -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location @@ -177,7 +177,7 @@ Configure the hardware via your `config.h`: | `ISSI_SWPULLUP` | (Optional) Set the value of the SWx lines on-chip de-ghosting resistors | PUR_0R (Disabled) | | `ISSI_CSPULLUP` | (Optional) Set the value of the CSx lines on-chip de-ghosting resistors | PUR_0R (Disabled) | | `DRIVER_COUNT` | (Required) How many RGB driver IC's are present | | -| `DRIVER_LED_TOTAL` | (Required) How many RGB lights are present across all drivers | | +| `RGB_MATRIX_LED_COUNT` | (Required) How many RGB lights are present across all drivers | | | `DRIVER_ADDR_1` | (Required) Address for the first RGB driver | | | `DRIVER_ADDR_2` | (Optional) Address for the second RGB driver | | @@ -212,16 +212,16 @@ Here is an example using 2 drivers. #define DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 30 #define DRIVER_2_LED_TOTAL 36 -#define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) +#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) ``` -!> Note the parentheses, this is so when `DRIVER_LED_TOTAL` is used in code and expanded, the values are added together before any additional math is applied to them. As an example, `rand() % (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)` will give very different results than `rand() % DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL`. +!> Note the parentheses, this is so when `RGB_MATRIX_LED_COUNT` is used in code and expanded, the values are added together before any additional math is applied to them. As an example, `rand() % (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)` will give very different results than `rand() % DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL`. Currently only 2 drivers are supported, but it would be trivial to support all 4 combinations. Define these arrays listing all the LEDs in your `.c`: ```c -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location @@ -263,7 +263,7 @@ Configure the hardware via your `config.h`: | `ISSI_TIMEOUT` | (Optional) How long to wait for i2c messages, in milliseconds | 100 | | `ISSI_PERSISTENCE` | (Optional) Retry failed messages this many times | 0 | | `DRIVER_COUNT` | (Required) How many RGB driver IC's are present | | -| `DRIVER_LED_TOTAL` | (Required) How many RGB lights are present across all drivers | | +| `RGB_MATRIX_LED_COUNT` | (Required) How many RGB lights are present across all drivers | | | `DRIVER_ADDR_1` | (Optional) Address for the first RGB driver | | | `DRIVER_ADDR_` | (Required) Address for the additional RGB drivers | | | `ISSI_SSR_` | (Optional) Configuration for the Spread Spectrum Register | | @@ -300,17 +300,17 @@ Here is an example using 2 drivers. #define DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 66 #define DRIVER_2_LED_TOTAL 42 -#define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) +#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) ``` -!> Note the parentheses, this is so when `DRIVER_LED_TOTAL` is used in code and expanded, the values are added together before any additional math is applied to them. As an example, `rand() % (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)` will give very different results than `rand() % DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL`. +!> Note the parentheses, this is so when `RGB_MATRIX_LED_COUNT` is used in code and expanded, the values are added together before any additional math is applied to them. As an example, `rand() % (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)` will give very different results than `rand() % DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL`. Currently only 4 drivers are supported, but it would be trivial to support for more. Note that using a combination of different drivers is not supported. All drivers must be of the same model. Define these arrays listing all the LEDs in your `.c`: ```c -const is31_led __flash g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led __flash g_is31_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location @@ -361,7 +361,7 @@ Configure the hardware via your `config.h`: // The pin connected to the data pin of the LEDs #define RGB_DI_PIN D7 // The number of LEDs connected -#define DRIVER_LED_TOTAL 70 +#define RGB_MATRIX_LED_COUNT 70 ``` ?> There are additional configuration options for ARM controllers that offer increased performance over the default bitbang driver. Please see [WS2812 Driver](ws2812_driver.md) for more information. @@ -385,7 +385,7 @@ Configure the hardware via your `config.h`: // The pin connected to the clock pin of the LEDs #define RGB_CI_PIN D6 // The number of LEDs connected -#define DRIVER_LED_TOTAL 70 +#define RGB_MATRIX_LED_COUNT 70 ``` --- @@ -408,7 +408,7 @@ You can use up to 2 AW20216 IC's. Do not specify `DRIVER__xxx` defines for IC | `DRIVER_1_LED_TOTAL` | (Required) How many RGB lights are connected to first RGB driver | | | `DRIVER_2_LED_TOTAL` | (Optional) How many RGB lights are connected to second RGB driver | | | `DRIVER_COUNT` | (Required) How many RGB driver IC's are present | | -| `DRIVER_LED_TOTAL` | (Required) How many RGB lights are present across all drivers | | +| `RGB_MATRIX_LED_COUNT` | (Required) How many RGB lights are present across all drivers | | | `AW_SCALING_MAX` | (Optional) LED current scaling value (0-255, higher values mean LED is brighter at full PWM) | 150 | | `AW_GLOBAL_CURRENT_MAX` | (Optional) Driver global current limit (0-255, higher values means the driver may consume more power) | 150 | | `AW_SPI_MODE` | (Optional) Mode for SPI communication (0-3, defines polarity and phase of the clock) | 3 | @@ -426,15 +426,15 @@ Here is an example using 2 drivers. #define DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 66 #define DRIVER_2_LED_TOTAL 32 -#define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) +#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) ``` -!> Note the parentheses, this is so when `DRIVER_LED_TOTAL` is used in code and expanded, the values are added together before any additional math is applied to them. As an example, `rand() % (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)` will give very different results than `rand() % DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL`. +!> Note the parentheses, this is so when `RGB_MATRIX_LED_COUNT` is used in code and expanded, the values are added together before any additional math is applied to them. As an example, `rand() % (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)` will give very different results than `rand() % DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL`. Define these arrays listing all the LEDs in your `.c`: ```c -const aw_led PROGMEM g_aw_leds[DRIVER_LED_TOTAL] = { +const aw_led PROGMEM g_aw_leds[RGB_MATRIX_LED_COUNT] = { /* Each AW20216 channel is controlled by a register at some offset between 0x00 * and 0xD7 inclusive. * See drivers/awinic/aw20216.h for the mapping between register offsets and @@ -794,7 +794,7 @@ These are defined in [`color.h`](https://github.com/qmk/qmk_firmware/blob/master #define RGB_DISABLE_TIMEOUT 0 // number of milliseconds to wait until rgb automatically turns off #define RGB_DISABLE_AFTER_TIMEOUT 0 // OBSOLETE: number of ticks to wait until disabling effects #define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended -#define RGB_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) +#define RGB_MATRIX_LED_PROCESS_LIMIT (RGB_MATRIX_LED_COUNT + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) #define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness) #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 // limits maximum brightness of LEDs to 200 out of 255. If not defined maximum brightness is set to 255 #define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_LEFT_RIGHT // Sets the default mode, if none has been set @@ -824,7 +824,7 @@ Where `28` is an unused index from `eeconfig.h`. |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 `DRIVER_LED_TOTAL` (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 :id=disable-enable-effects |Function |Description | diff --git a/docs/keymap.md b/docs/keymap.md index ab8a255bc3b..ddcf7821407 100644 --- a/docs/keymap.md +++ b/docs/keymap.md @@ -92,11 +92,10 @@ These keycodes allow the processing to fall through to lower layers in search of For this example we will walk through an [older version of the default Clueboard 66% keymap](https://github.com/qmk/qmk_firmware/blob/ca01d94005f67ec4fa9528353481faa622d949ae/keyboards/clueboard/keymaps/default/keymap.c). You'll find it helpful to open that file in another browser window so you can look at everything in context. -There are 3 main sections of a `keymap.c` file you'll want to concern yourself with: +There are 2 main sections of a `keymap.c` file you'll want to concern yourself with: * [The Definitions](#definitions) * [The Layer/Keymap Datastructure](#layers-and-keymaps) -* [Custom Functions](#custom-functions), if any ### Definitions diff --git a/docs/pr_checklist.md b/docs/pr_checklist.md index 1034631863b..6d74e246a86 100644 --- a/docs/pr_checklist.md +++ b/docs/pr_checklist.md @@ -52,6 +52,9 @@ https://github.com/qmk/qmk_firmware/pulls?q=is%3Apr+is%3Aclosed+label%3Akeyboard - valid maintainer - valid USB VID/PID and device version - displays correctly in Configurator (press Ctrl+Shift+I to preview local file, turn on fast input to verify ordering) + - `layout` definitions should include matrix positions, so that `LAYOUT` macros can be generated at build time + - should use standard definitions if applicable + - use the Community Layout macro names where they apply (preferred above `LAYOUT`/`LAYOUT_all`) - `readme.md` - standard template should be present -- [link to template](https://github.com/qmk/qmk_firmware/blob/master/data/templates/keyboard/readme.md) - flash command is present, and has `:flash` at end @@ -82,17 +85,15 @@ https://github.com/qmk/qmk_firmware/pulls?q=is%3Apr+is%3Aclosed+label%3Akeyboard - Vial-related files or changes will not be accepted, as they are not used by QMK firmware (no Vial-specific core code has been submitted or merged) - `.c` - empty `xxxx_xxxx_kb()` or other weak-defined default implemented functions removed + - empty `xxxx_xxxx_user()` or other user-level functions are disallowed at the keyboard level and must be moved to keymaps - commented-out functions removed too - `matrix_init_board()` etc. migrated to `keyboard_pre_init_kb()`, see: [keyboard_pre_init*](custom_quantum_functions.md?id=keyboard_pre_init_-function-documentation) - prefer `CUSTOM_MATRIX = lite` if custom matrix used, allows for standard debounce, see [custom matrix 'lite'](custom_matrix.md?id=lite) - prefer LED indicator [Configuration Options](feature_led_indicators.md?id=configuration-options) to custom `led_update_*()` implementations where possible - - Encoder support should not be hacked into the keymap here -- no `tap_code(dynamic_keymap_get_keycode())` or `action_exec()` hacks. The [Encoder Map](feature_encoders.md?id=encoder-map) feature already supports the dynamic keymap feature (what power's VIA's "live keymap updates" capability). - - If support is absolutely necessary, it should be implemented exclusively at the keymap level, with none of the implementation bleeding into the keyboard level (no empty rows/columns, no encoder specific layouts, etc.), as those configurations can be redefined at the keymap level. Keymaps can then choose to use the `action_exec` hack. - - [Request for official proper VIA support](https://github.com/the-via/app/issues/26) + - Encoder support should not require any keyboard-level code, and associated keymaps should now leverage the [Encoder Map](feature_encoders.md?id=encoder-map) feature instead. - `.h` - `#include "quantum.h"` appears at the top - - `LAYOUT` macros should use standard definitions if applicable - - use the Community Layout macro names where they apply (preferred above `LAYOUT`/`LAYOUT_all`) + - `LAYOUT` macros should be moved to `info.json` - keymap `config.h` - no duplication of `rules.mk` or `config.h` from keyboard - `keymaps/default/keymap.c` @@ -111,7 +112,7 @@ https://github.com/qmk/qmk_firmware/pulls?q=is%3Apr+is%3Aclosed+label%3Akeyboard - submitters can have a personal (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 - Do not include VIA json files in the PR. These do not belong in the QMK repository as they are not used by QMK firmware -- they belong in the [VIA Keyboard Repo](https://github.com/the-via/keyboards) -- Do not include source files from another keyboard or vendors keyboard folder. Including core files is fine. +- Do not include source files from another keyboard or vendors keyboard folder. Including core files is fine. - For instance, only `wilba_tech` boards using be including `keyboards/wilba_tech/wt_main.c` and `keyboards/wilba_tech/wt_rgb_backlight.c`. But including `drivers/sensors/pmw3360.c` is absolutely fine. - Code that needs to be used by multiple boards is a candidate for core code changes, and should be separated out. @@ -134,6 +135,7 @@ Also, specific to ChibiOS: - for new MCUs, a new "child" keyboard should be added that targets your newly-added MCU, so that builds can be verified - for new hardware support such as display panels, core-side matrix implementations, or other peripherals, an associated keymap should be provided - if an existing keymap exists that can leverage this functionality this may not be required (e.g. a new RGB driver chip, supported by the `rgb` keymap) -- consult with the QMK Collaborators on Discord to determine if there is sufficient overlap already +- any features adding `_kb`/`_user` callbacks must return a `bool`, to allow for user override of keyboard-level callbacks. - other requirements are at the discretion of QMK collaborators - core is a lot more subjective given the breadth of posted changes diff --git a/docs/quantum_painter.md b/docs/quantum_painter.md index 6d4e2764d49..ed9cec171bc 100644 --- a/docs/quantum_painter.md +++ b/docs/quantum_painter.md @@ -8,7 +8,7 @@ To enable overall Quantum Painter to be built into your firmware, add the follow ```make QUANTUM_PAINTER_ENABLE = yes -QUANTUM_PAINTER_DRIVERS = ...... +QUANTUM_PAINTER_DRIVERS += ...... ``` You will also likely need to select an appropriate driver in `rules.mk`, which is listed below. @@ -17,17 +17,18 @@ You will also likely need to select an appropriate driver in `rules.mk`, which i The QMK CLI can be used to convert from normal images such as PNG files or animated GIFs, as well as fonts from TTF files. -Hardware supported: +Supported devices: -| Display Panel | Panel Type | Size | Comms Transport | Driver | -|---------------|--------------------|------------------|-----------------|-----------------------------------------| -| GC9A01 | RGB LCD (circular) | 240x240 | SPI + D/C + RST | `QUANTUM_PAINTER_DRIVERS = gc9a01_spi` | -| ILI9163 | RGB LCD | 128x128 | SPI + D/C + RST | `QUANTUM_PAINTER_DRIVERS = ili9163_spi` | -| ILI9341 | RGB LCD | 240x320 | SPI + D/C + RST | `QUANTUM_PAINTER_DRIVERS = ili9341_spi` | -| ILI9488 | RGB LCD | 320x480 | SPI + D/C + RST | `QUANTUM_PAINTER_DRIVERS = ili9488_spi` | -| SSD1351 | RGB OLED | 128x128 | SPI + D/C + RST | `QUANTUM_PAINTER_DRIVERS = ssd1351_spi` | -| ST7789 | RGB LCD | 240x320, 240x240 | SPI + D/C + RST | `QUANTUM_PAINTER_DRIVERS = st7789_spi` | -| ST7735 | RGB LCD | 132x162, 80x160 | SPI + D/C + RST | `QUANTUM_PAINTER_DRIVERS = st7735_spi` | +| Display Panel | Panel Type | Size | Comms Transport | Driver | +|----------------|--------------------|------------------|-----------------|---------------------------------------------| +| GC9A01 | RGB LCD (circular) | 240x240 | SPI + D/C + RST | `QUANTUM_PAINTER_DRIVERS += gc9a01_spi` | +| ILI9163 | RGB LCD | 128x128 | SPI + D/C + RST | `QUANTUM_PAINTER_DRIVERS += ili9163_spi` | +| ILI9341 | RGB LCD | 240x320 | SPI + D/C + RST | `QUANTUM_PAINTER_DRIVERS += ili9341_spi` | +| ILI9488 | RGB LCD | 320x480 | SPI + D/C + RST | `QUANTUM_PAINTER_DRIVERS += ili9488_spi` | +| SSD1351 | RGB OLED | 128x128 | SPI + D/C + RST | `QUANTUM_PAINTER_DRIVERS += ssd1351_spi` | +| ST7735 | RGB LCD | 132x162, 80x160 | SPI + D/C + RST | `QUANTUM_PAINTER_DRIVERS += st7735_spi` | +| ST7789 | RGB LCD | 240x320, 240x240 | SPI + D/C + RST | `QUANTUM_PAINTER_DRIVERS += st7789_spi` | +| RGB565 Surface | Virtual | User-defined | None | `QUANTUM_PAINTER_DRIVERS += rgb565_surface` | ## Quantum Painter Configuration :id=quantum-painter-config @@ -45,7 +46,9 @@ Drivers have their own set of configurable options, and are described in their r ## Quantum Painter CLI Commands :id=quantum-painter-cli -### `qmk painter-convert-graphics` + + +### ** `qmk painter-convert-graphics` ** This command converts images to a format usable by QMK, i.e. the QGF File Format. @@ -93,7 +96,7 @@ Writing /home/qmk/qmk_firmware/keyboards/my_keeb/generated/my_image.qgf.h... Writing /home/qmk/qmk_firmware/keyboards/my_keeb/generated/my_image.qgf.c... ``` -### `qmk painter-make-font-image` +### ** `qmk painter-make-font-image` ** This command converts a TTF font to an intermediate format for editing, before converting to the QFF File Format. @@ -126,7 +129,7 @@ The `UNICODE_GLYPHS` argument allows for specifying extra unicode glyphs to gene $ qmk painter-make-font-image --font NotoSans-ExtraCondensedBold.ttf --size 11 -o noto11.png --unicode-glyphs "ĄȽɂɻɣɈʣ" ``` -### `qmk painter-convert-font-image` +### ** `qmk painter-convert-font-image` ** This command converts an intermediate font image to the QFF File Format. @@ -170,6 +173,255 @@ Writing /home/qmk/qmk_firmware/keyboards/my_keeb/generated/noto11.qff.h... Writing /home/qmk/qmk_firmware/keyboards/my_keeb/generated/noto11.qff.c... ``` + + +## Quantum Painter Display Drivers :id=quantum-painter-drivers + + + +### ** Common: Standard TFT (SPI + D/C + RST) ** + +Most TFT display panels use a 5-pin interface -- SPI SCK, SPI MOSI, SPI CS, D/C, and RST pins. + +For these displays, QMK's `spi_master` must already be correctly configured for the platform you're building for. + +The pin assignments for SPI CS, D/C, and RST are specified during device construction. + + + +#### ** GC9A01 ** + +Enabling support for the GC9A01 in Quantum Painter is done by adding the following to `rules.mk`: + +```make +QUANTUM_PAINTER_ENABLE = yes +QUANTUM_PAINTER_DRIVERS += gc9a01_spi +``` + +Creating a GC9A01 device in firmware can then be done with the following API: + +```c +painter_device_t qp_gc9a01_make_spi_device(uint16_t panel_width, uint16_t panel_height, pin_t chip_select_pin, pin_t dc_pin, pin_t reset_pin, uint16_t spi_divisor, int spi_mode); +``` + +The device handle returned from the `qp_gc9a01_make_spi_device` function can be used to perform all other drawing operations. + +The maximum number of displays can be configured by changing the following in your `config.h` (default is 1): + +```c +// 3 displays: +#define GC9A01_NUM_DEVICES 3 +``` + +#### ** ILI9163 ** + +Enabling support for the ILI9163 in Quantum Painter is done by adding the following to `rules.mk`: + +```make +QUANTUM_PAINTER_ENABLE = yes +QUANTUM_PAINTER_DRIVERS += ili9163_spi +``` + +Creating a ILI9163 device in firmware can then be done with the following API: + +```c +painter_device_t qp_ili9163_make_spi_device(uint16_t panel_width, uint16_t panel_height, pin_t chip_select_pin, pin_t dc_pin, pin_t reset_pin, uint16_t spi_divisor, int spi_mode); +``` + +The device handle returned from the `qp_ili9163_make_spi_device` function can be used to perform all other drawing operations. + +The maximum number of displays can be configured by changing the following in your `config.h` (default is 1): + +```c +// 3 displays: +#define ILI9163_NUM_DEVICES 3 +``` + +#### ** ILI9341 ** + +Enabling support for the ILI9341 in Quantum Painter is done by adding the following to `rules.mk`: + +```make +QUANTUM_PAINTER_ENABLE = yes +QUANTUM_PAINTER_DRIVERS += ili9341_spi +``` + +Creating a ILI9341 device in firmware can then be done with the following API: + +```c +painter_device_t qp_ili9341_make_spi_device(uint16_t panel_width, uint16_t panel_height, pin_t chip_select_pin, pin_t dc_pin, pin_t reset_pin, uint16_t spi_divisor, int spi_mode); +``` + +The device handle returned from the `qp_ili9341_make_spi_device` function can be used to perform all other drawing operations. + +The maximum number of displays can be configured by changing the following in your `config.h` (default is 1): + +```c +// 3 displays: +#define ILI9341_NUM_DEVICES 3 +``` + +#### ** ILI9488 ** + +Enabling support for the ILI9488 in Quantum Painter is done by adding the following to `rules.mk`: + +```make +QUANTUM_PAINTER_ENABLE = yes +QUANTUM_PAINTER_DRIVERS += ili9488_spi +``` + +Creating a ILI9488 device in firmware can then be done with the following API: + +```c +painter_device_t qp_ili9488_make_spi_device(uint16_t panel_width, uint16_t panel_height, pin_t chip_select_pin, pin_t dc_pin, pin_t reset_pin, uint16_t spi_divisor, int spi_mode); +``` + +The device handle returned from the `qp_ili9488_make_spi_device` function can be used to perform all other drawing operations. + +The maximum number of displays can be configured by changing the following in your `config.h` (default is 1): + +```c +// 3 displays: +#define ILI9488_NUM_DEVICES 3 +``` + +#### ** SSD1351 ** + +Enabling support for the SSD1351 in Quantum Painter is done by adding the following to `rules.mk`: + +```make +QUANTUM_PAINTER_ENABLE = yes +QUANTUM_PAINTER_DRIVERS += ssd1351_spi +``` + +Creating a SSD1351 device in firmware can then be done with the following API: + +```c +painter_device_t qp_ssd1351_make_spi_device(uint16_t panel_width, uint16_t panel_height, pin_t chip_select_pin, pin_t dc_pin, pin_t reset_pin, uint16_t spi_divisor, int spi_mode); +``` + +The device handle returned from the `qp_ssd1351_make_spi_device` function can be used to perform all other drawing operations. + +The maximum number of displays can be configured by changing the following in your `config.h` (default is 1): + +```c +// 3 displays: +#define SSD1351_NUM_DEVICES 3 +``` + +#### ** ST7735 ** + +Enabling support for the ST7735 in Quantum Painter is done by adding the following to `rules.mk`: + +```make +QUANTUM_PAINTER_ENABLE = yes +QUANTUM_PAINTER_DRIVERS += st7735_spi +``` + +Creating a ST7735 device in firmware can then be done with the following API: + +```c +painter_device_t qp_st7735_make_spi_device(uint16_t panel_width, uint16_t panel_height, pin_t chip_select_pin, pin_t dc_pin, pin_t reset_pin, uint16_t spi_divisor, int spi_mode); +``` + +The device handle returned from the `qp_st7735_make_spi_device` function can be used to perform all other drawing operations. + +The maximum number of displays can be configured by changing the following in your `config.h` (default is 1): + +```c +// 3 displays: +#define ST7735_NUM_DEVICES 3 +``` + +!> Some ST7735 devices are known to have different drawing offsets -- despite being a 132x162 pixel display controller internally, some display panels are only 80x160, or smaller. These may require an offset to be applied; see `qp_set_viewport_offsets` above for information on how to override the offsets if they aren't correctly rendered. + +#### ** ST7789 ** + +Enabling support for the ST7789 in Quantum Painter is done by adding the following to `rules.mk`: + +```make +QUANTUM_PAINTER_ENABLE = yes +QUANTUM_PAINTER_DRIVERS += st7789_spi +``` + +Creating a ST7789 device in firmware can then be done with the following API: + +```c +painter_device_t qp_st7789_make_spi_device(uint16_t panel_width, uint16_t panel_height, pin_t chip_select_pin, pin_t dc_pin, pin_t reset_pin, uint16_t spi_divisor, int spi_mode); +``` + +The device handle returned from the `qp_st7789_make_spi_device` function can be used to perform all other drawing operations. + +The maximum number of displays can be configured by changing the following in your `config.h` (default is 1): + +```c +// 3 displays: +#define ST7789_NUM_DEVICES 3 +``` + +!> Some ST7789 devices are known to have different drawing offsets -- despite being a 240x320 pixel display controller internally, some display panels are only 240x240, or smaller. These may require an offset to be applied; see `qp_set_viewport_offsets` above for information on how to override the offsets if they aren't correctly rendered. + + + +### ** Common: Surfaces ** + +Quantum Painter has surface drivers which are able to target a buffer in RAM. In general, surfaces keep track of the "dirty" region -- the area that has been drawn to since the last flush -- so that when transferring to the display they can transfer the minimal amount of data to achieve the end result. + +!> These generally require significant amounts of RAM, so at large sizes and/or higher bit depths, they may not be usable on all MCUs. + + + +#### ** RGB565 Surface ** + +Enabling support for RGB565 surfaces in Quantum Painter is done by adding the following to `rules.mk`: + +```make +QUANTUM_PAINTER_ENABLE = yes +QUANTUM_PAINTER_DRIVERS += rgb565_surface +``` + +Creating a RGB565 surface in firmware can then be done with the following API: + +```c +painter_device_t qp_rgb565_make_surface(uint16_t panel_width, uint16_t panel_height, void *buffer); +``` + +The `buffer` is a user-supplied area of memory, and is assumed to be of the size `sizeof(uint16_t) * panel_width * panel_height`. + +The device handle returned from the `qp_rgb565_make_surface` function can be used to perform all other drawing operations. + +Example: + +```c +static painter_device_t my_surface; +static uint16_t my_framebuffer[320 * 240]; // Allocate a buffer for a 320x240 RGB565 display +void keyboard_post_init_kb(void) { + my_surface = qp_rgb565_make_surface(320, 240, my_framebuffer); + qp_init(my_surface, QP_ROTATION_0); +} +``` + +The maximum number of RGB565 surfaces can be configured by changing the following in your `config.h` (default is 1): + +```c +// 3 surfaces: +#define RGB565_SURFACE_NUM_DEVICES 3 +``` + +To transfer the contents of the RGB565 surface to another display, the following API can be invoked: + +```c +bool qp_rgb565_surface_draw(painter_device_t surface, painter_device_t display, uint16_t x, uint16_t y); +``` + +The `surface` is the surface to copy out from. The `display` is the target display to draw into. `x` and `y` are the target location to draw the surface pixel data. Under normal circumstances, the location should be consistent, as the dirty region is calculated with respect to the `x` and `y` coordinates -- changing those will result in partial, overlapping draws. + +?> Calling `qp_flush()` on the surface resets its dirty region. Copying the surface contents to the display also automatically resets the dirty region. + + + + + ## Quantum Painter Drawing API :id=quantum-painter-api All APIs require a `painter_device_t` object as their first parameter -- this object comes from the specific device initialisation, and instructions on creating it can be found in each driver's respective section. @@ -179,7 +431,9 @@ To use any of the APIs, you need to include `qp.h`: #include ``` -### General Notes :id=quantum-painter-api-general + + +### ** General Notes ** The coordinate system used in Quantum Painter generally accepts `left`, `top`, `right`, and `bottom` instead of x/y/width/height, and each coordinate is inclusive of where pixels should be drawn. This is required as some datatypes used by display panels have a maximum value of `255` -- for any value or geometry extent that matches `256`, this would be represented as a `0`, instead. @@ -193,9 +447,11 @@ All color data matches the standard QMK HSV triplet definitions: ?> Colors used in Quantum Painter are not subject to the RGB lighting CIE curve, if it is enabled. -### Device Control :id=quantum-painter-api-device-control +### ** Device Control ** -#### Display Initialisation :id=quantum-painter-api-init + + +#### ** Display Initialisation ** ```c bool qp_init(painter_device_t device, painter_rotation_t rotation); @@ -211,7 +467,7 @@ void keyboard_post_init_kb(void) { } ``` -#### Display Power :id=quantum-painter-api-power +#### ** Display Power ** ```c bool qp_power(painter_device_t device, bool power_on); @@ -242,7 +498,7 @@ void suspend_wakeup_init_user(void) { } ``` -#### Display Clear :id=quantum-painter-api-clear +#### ** Display Clear ** ```c bool qp_clear(painter_device_t device); @@ -250,7 +506,7 @@ bool qp_clear(painter_device_t device); The `qp_clear` function clears the display's screen. -#### Display Flush :id=quantum-painter-api-flush +#### ** Display Flush ** ```c bool qp_flush(painter_device_t device); @@ -272,9 +528,13 @@ void housekeeping_task_user(void) { } ``` -### Drawing Primitives :id=quantum-painter-api-primitives + -#### Set Pixel :id=quantum-painter-api-setpixel +### ** Drawing Primitives ** + + + +#### ** Set Pixel ** ```c bool qp_setpixel(painter_device_t device, uint16_t x, uint16_t y, uint8_t hue, uint8_t sat, uint8_t val); @@ -298,7 +558,7 @@ void housekeeping_task_user(void) { } ``` -#### Draw Line :id=quantum-painter-api-line +#### ** Draw Line ** ```c bool qp_line(painter_device_t device, uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, uint8_t hue, uint8_t sat, uint8_t val); @@ -320,7 +580,7 @@ void housekeeping_task_user(void) { } ``` -#### Draw Rect :id=quantum-painter-api-rect +#### ** Draw Rect ** ```c bool qp_rect(painter_device_t device, uint16_t left, uint16_t top, uint16_t right, uint16_t bottom, uint8_t hue, uint8_t sat, uint8_t val, bool filled); @@ -342,7 +602,7 @@ void housekeeping_task_user(void) { } ``` -#### Draw Circle :id=quantum-painter-api-circle +#### ** Draw Circle ** ```c bool qp_circle(painter_device_t device, uint16_t x, uint16_t y, uint16_t radius, uint8_t hue, uint8_t sat, uint8_t val, bool filled); @@ -364,7 +624,7 @@ void housekeeping_task_user(void) { } ``` -#### Draw Ellipse :id=quantum-painter-api-ellipse +#### ** Draw Ellipse ** ```c bool qp_ellipse(painter_device_t device, uint16_t x, uint16_t y, uint16_t sizex, uint16_t sizey, uint8_t hue, uint8_t sat, uint8_t val, bool filled); @@ -386,9 +646,24 @@ void housekeeping_task_user(void) { } ``` -### Image Functions :id=quantum-painter-api-images + -#### Load Image :id=quantum-painter-api-load-image +### ** Image Functions ** + +Making an image available for use requires compiling it into your firmware. To do so, assuming you've created `my_image.qgf.c` and `my_image.qgf.h` as per the CLI examples above, you'd add the following to your `rules.mk`: + +```make +SRC += my_image.qgf.c +``` + +...and in your `keymap.c`, you'd add to the top of the file: +```c +#include "my_image.qgf.h" +``` + + + +#### ** Load Image ** ```c painter_image_handle_t qp_load_image_mem(const void *buffer); @@ -396,7 +671,7 @@ painter_image_handle_t qp_load_image_mem(const void *buffer); The `qp_load_image_mem` function loads a QGF image from memory or flash. -`qp_load_image_mem` returns a handle to the loaded image, which can then be used to draw to the screen using `qp_drawimage`, `qp_drawimage_recolor`, `qp_animate`, or `qp_animate_recolor`. If an image is no longer required, it can be unloaded by calling `qp_close_image` below. +`qp_load_image_mem` returns a handle to the loaded image, which can then be used to draw to the screen using `qp_drawimage`, `qp_drawimage_recolor`, `qp_animate`, or `qp_animate_recolor`. If an image is no longer required, it can be unloaded by calling `qp_close_image` below. See the [CLI Commands](quantum_painter.md?id=quantum-painter-cli) for instructions on how to convert images to [QGF](quantum_painter_qgf.md). @@ -410,7 +685,7 @@ Image information is available through accessing the handle: | Height | `image->height` | | Frame Count | `image->frame_count` | -#### Unload Image :id=quantum-painter-api-close-image +#### ** Unload Image ** ```c bool qp_close_image(painter_image_handle_t image); @@ -418,7 +693,7 @@ bool qp_close_image(painter_image_handle_t image); The `qp_close_image` function releases resources related to the loading of the supplied image. -#### Draw image :id=quantum-painter-api-draw-image +#### ** Draw image ** ```c bool qp_drawimage(painter_device_t device, uint16_t x, uint16_t y, painter_image_handle_t image); @@ -438,7 +713,7 @@ void keyboard_post_init_kb(void) { } ``` -#### Animate Image :id=quantum-painter-api-animate-image +#### ** Animate Image ** ```c deferred_token qp_animate(painter_device_t device, uint16_t x, uint16_t y, painter_image_handle_t image); @@ -463,7 +738,7 @@ void keyboard_post_init_kb(void) { } ``` -#### Stop Animation :id=quantum-painter-api-stop-animation +#### ** Stop Animation ** ```c void qp_stop_animation(deferred_token anim_token); @@ -478,9 +753,24 @@ void housekeeping_task_user(void) { } ``` -### Font Functions :id=quantum-painter-api-fonts + -#### Load Font :id=quantum-painter-api-load-font +### ** Font Functions ** + +Making a font available for use requires compiling it into your firmware. To do so, assuming you've created `my_font.qff.c` and `my_font.qff.h` as per the CLI examples above, you'd add the following to your `rules.mk`: + +```make +SRC += noto11.qff.c +``` + +...and in your `keymap.c`, you'd add to the top of the file: +```c +#include "noto11.qff.h" +``` + + + +#### ** Load Font ** ```c painter_font_handle_t qp_load_font_mem(const void *buffer); @@ -488,7 +778,7 @@ painter_font_handle_t qp_load_font_mem(const void *buffer); The `qp_load_font_mem` function loads a QFF font from memory or flash. -`qp_load_font_mem` returns a handle to the loaded font, which can then be measured using `qp_textwidth`, or drawn to the screen using `qp_drawtext`, or `qp_drawtext_recolor`. If a font is no longer required, it can be unloaded by calling `qp_close_font` below. +`qp_load_font_mem` returns a handle to the loaded font, which can then be measured using `qp_textwidth`, or drawn to the screen using `qp_drawtext`, or `qp_drawtext_recolor`. If a font is no longer required, it can be unloaded by calling `qp_close_font` below. See the [CLI Commands](quantum_painter.md?id=quantum-painter-cli) for instructions on how to convert TTF fonts to [QFF](quantum_painter_qff.md). @@ -500,7 +790,7 @@ Font information is available through accessing the handle: |-------------|----------------------| | Line Height | `image->line_height` | -#### Unload Font :id=quantum-painter-api-close-font +#### ** Unload Font ** ```c bool qp_close_font(painter_font_handle_t font); @@ -508,7 +798,7 @@ bool qp_close_font(painter_font_handle_t font); The `qp_close_font` function releases resources related to the loading of the supplied font. -#### Measure Text :id=quantum-painter-api-textwidth +#### ** Measure Text ** ```c int16_t qp_textwidth(painter_font_handle_t font, const char *str); @@ -516,7 +806,7 @@ int16_t qp_textwidth(painter_font_handle_t font, const char *str); The `qp_textwidth` function allows measurement of how many pixels wide the supplied string would result in, for the given font. -#### Draw Text :id=quantum-painter-api-drawtext +#### ** Draw Text ** ```c int16_t qp_drawtext(painter_device_t device, uint16_t x, uint16_t y, painter_font_handle_t font, const char *str); @@ -529,7 +819,7 @@ The `qp_drawtext` and `qp_drawtext_recolor` functions draw the supplied string t // Draw a text message on the bottom-right of the 240x320 display on initialisation static painter_font_handle_t my_font; void keyboard_post_init_kb(void) { - my_font = qp_load_font_mem(font_opensans); + my_font = qp_load_font_mem(font_noto11); if (my_font != NULL) { static const char *text = "Hello from QMK!"; int16_t width = qp_textwidth(my_font, text); @@ -538,9 +828,13 @@ void keyboard_post_init_kb(void) { } ``` -### Advanced Functions :id=quantum-painter-api-advanced + -#### Get Geometry :id=quantum-painter-api-get-geometry +### ** Advanced Functions ** + + + +#### ** Get Geometry ** ```c void qp_get_geometry(painter_device_t device, uint16_t *width, uint16_t *height, painter_rotation_t *rotation, uint16_t *offset_x, uint16_t *offset_y); @@ -548,7 +842,7 @@ void qp_get_geometry(painter_device_t device, uint16_t *width, uint16_t *height, The `qp_get_geometry` function allows external code to retrieve the current width, height, rotation, and drawing offsets. -#### Set Viewport Offsets :id=quantum-painter-api-set-viewport +#### ** Set Viewport Offsets ** ```c void qp_set_viewport_offsets(painter_device_t device, uint16_t offset_x, uint16_t offset_y); @@ -556,7 +850,7 @@ void qp_set_viewport_offsets(painter_device_t device, uint16_t offset_x, uint16_ The `qp_set_viewport_offsets` function can be used to offset all subsequent drawing operations. For example, if a display controller is internally 240x320, but the display panel is 240x240 and has a Y offset of 80 pixels, you could invoke `qp_set_viewport_offsets(display, 0, 80);` and the drawing positioning would be corrected. -#### Set Viewport :id=quantum-painter-api-viewport +#### ** Set Viewport ** ```c bool qp_viewport(painter_device_t device, uint16_t left, uint16_t top, uint16_t right, uint16_t bottom); @@ -564,7 +858,7 @@ bool qp_viewport(painter_device_t device, uint16_t left, uint16_t top, uint16_t The `qp_viewport` function controls where raw pixel data is written to. -#### Stream Pixel Data :id=quantum-painter-api-pixdata +#### ** Stream Pixel Data ** ```c bool qp_pixdata(painter_device_t device, const void *pixel_data, uint32_t native_pixel_count); @@ -574,184 +868,6 @@ The `qp_pixdata` function allows raw pixel data to be streamed to the display. I !> Under normal circumstances, users will not need to manually call either `qp_viewport` or `qp_pixdata`. These allow for writing of raw pixel information, in the display panel's native format, to the area defined by the viewport. -## Quantum Painter Display Drivers :id=quantum-painter-drivers + -### Common: Standard TFT (SPI + D/C + RST) - -Most TFT display panels use a 5-pin interface -- SPI SCK, SPI MOSI, SPI CS, D/C, and RST pins. - -For these displays, QMK's `spi_master` must already be correctly configured for the platform you're building for. - -The pin assignments for SPI CS, D/C, and RST are specified during device construction. - -### GC9A01 :id=qp-driver-gc9a01 - -Enabling support for the GC9A01 in Quantum Painter is done by adding the following to `rules.mk`: - -```make -QUANTUM_PAINTER_ENABLE = yes -QUANTUM_PAINTER_DRIVERS = gc9a01_spi -``` - -Creating a GC9A01 device in firmware can then be done with the following API: - -```c -painter_device_t qp_gc9a01_make_spi_device(uint16_t panel_width, uint16_t panel_height, pin_t chip_select_pin, pin_t dc_pin, pin_t reset_pin, uint16_t spi_divisor, int spi_mode); -``` - -The device handle returned from the `qp_gc9a01_make_spi_device` function can be used to perform all other drawing operations. - -The maximum number of displays can be configured by changing the following in your `config.h` (default is 1): - -```c -// 3 displays: -#define GC9A01_NUM_DEVICES 3 -``` - -### ILI9163 :id=qp-driver-ili9163 - -Enabling support for the ILI9163 in Quantum Painter is done by adding the following to `rules.mk`: - -```make -QUANTUM_PAINTER_ENABLE = yes -QUANTUM_PAINTER_DRIVERS = ili9163_spi -``` - -Creating a ILI9163 device in firmware can then be done with the following API: - -```c -painter_device_t qp_ili9163_make_spi_device(uint16_t panel_width, uint16_t panel_height, pin_t chip_select_pin, pin_t dc_pin, pin_t reset_pin, uint16_t spi_divisor, int spi_mode); -``` - -The device handle returned from the `qp_ili9163_make_spi_device` function can be used to perform all other drawing operations. - -The maximum number of displays can be configured by changing the following in your `config.h` (default is 1): - -```c -// 3 displays: -#define ILI9163_NUM_DEVICES 3 -``` - -### ILI9341 :id=qp-driver-ili9341 - -Enabling support for the ILI9341 in Quantum Painter is done by adding the following to `rules.mk`: - -```make -QUANTUM_PAINTER_ENABLE = yes -QUANTUM_PAINTER_DRIVERS = ili9341_spi -``` - -Creating a ILI9341 device in firmware can then be done with the following API: - -```c -painter_device_t qp_ili9341_make_spi_device(uint16_t panel_width, uint16_t panel_height, pin_t chip_select_pin, pin_t dc_pin, pin_t reset_pin, uint16_t spi_divisor, int spi_mode); -``` - -The device handle returned from the `qp_ili9341_make_spi_device` function can be used to perform all other drawing operations. - -The maximum number of displays can be configured by changing the following in your `config.h` (default is 1): - -```c -// 3 displays: -#define ILI9341_NUM_DEVICES 3 -``` - -### ILI9488 :id=qp-driver-ili9488 - -Enabling support for the ILI9488 in Quantum Painter is done by adding the following to `rules.mk`: - -```make -QUANTUM_PAINTER_ENABLE = yes -QUANTUM_PAINTER_DRIVERS = ili9488_spi -``` - -Creating a ILI9488 device in firmware can then be done with the following API: - -```c -painter_device_t qp_ili9488_make_spi_device(uint16_t panel_width, uint16_t panel_height, pin_t chip_select_pin, pin_t dc_pin, pin_t reset_pin, uint16_t spi_divisor, int spi_mode); -``` - -The device handle returned from the `qp_ili9488_make_spi_device` function can be used to perform all other drawing operations. - -The maximum number of displays can be configured by changing the following in your `config.h` (default is 1): - -```c -// 3 displays: -#define ILI9488_NUM_DEVICES 3 -``` - -### SSD1351 :id=qp-driver-ssd1351 - -Enabling support for the SSD1351 in Quantum Painter is done by adding the following to `rules.mk`: - -```make -QUANTUM_PAINTER_ENABLE = yes -QUANTUM_PAINTER_DRIVERS = ssd1351_spi -``` - -Creating a SSD1351 device in firmware can then be done with the following API: - -```c -painter_device_t qp_ssd1351_make_spi_device(uint16_t panel_width, uint16_t panel_height, pin_t chip_select_pin, pin_t dc_pin, pin_t reset_pin, uint16_t spi_divisor, int spi_mode); -``` - -The device handle returned from the `qp_ssd1351_make_spi_device` function can be used to perform all other drawing operations. - -The maximum number of displays can be configured by changing the following in your `config.h` (default is 1): - -```c -// 3 displays: -#define SSD1351_NUM_DEVICES 3 -``` - -### ST7789 :id=qp-driver-st7789 - -Enabling support for the ST7789 in Quantum Painter is done by adding the following to `rules.mk`: - -```make -QUANTUM_PAINTER_ENABLE = yes -QUANTUM_PAINTER_DRIVERS = st7789_spi -``` - -Creating a ST7789 device in firmware can then be done with the following API: - -```c -painter_device_t qp_st7789_make_spi_device(uint16_t panel_width, uint16_t panel_height, pin_t chip_select_pin, pin_t dc_pin, pin_t reset_pin, uint16_t spi_divisor, int spi_mode); -``` - -The device handle returned from the `qp_st7789_make_spi_device` function can be used to perform all other drawing operations. - -The maximum number of displays can be configured by changing the following in your `config.h` (default is 1): - -```c -// 3 displays: -#define ST7789_NUM_DEVICES 3 -``` - -!> Some ST7789 devices are known to have different drawing offsets -- despite being a 240x320 pixel display controller internally, some display panels are only 240x240, or smaller. These may require an offset to be applied; see `qp_set_viewport_offsets` above for information on how to override the offsets if they aren't correctly rendered. - -### ST7735 :id=qp-driver-st7735 - -Enabling support for the ST7735 in Quantum Painter is done by adding the following to `rules.mk`: - -```make -QUANTUM_PAINTER_ENABLE = yes -QUANTUM_PAINTER_DRIVERS = st7735_spi -``` - -Creating a ST7735 device in firmware can then be done with the following API: - -```c -painter_device_t qp_st7735_make_spi_device(uint16_t panel_width, uint16_t panel_height, pin_t chip_select_pin, pin_t dc_pin, pin_t reset_pin, uint16_t spi_divisor, int spi_mode); -``` - -The device handle returned from the `qp_st7735_make_spi_device` function can be used to perform all other drawing operations. - -The maximum number of displays can be configured by changing the following in your `config.h` (default is 1): - -```c -// 3 displays: -#define ST7735_NUM_DEVICES 3 -``` - -!> Some ST7735 devices are known to have different drawing offsets -- despite being a 132x162 pixel display controller internally, some display panels are only 80x160, or smaller. These may require an offset to be applied; see `qp_set_viewport_offsets` above for information on how to override the offsets if they aren't correctly rendered. \ No newline at end of file + diff --git a/drivers/led/aw20216.c b/drivers/led/aw20216.c index 55083936ef5..cbb0b60774c 100644 --- a/drivers/led/aw20216.c +++ b/drivers/led/aw20216.c @@ -133,7 +133,7 @@ void AW20216_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { } void AW20216_set_color_all(uint8_t red, uint8_t green, uint8_t blue) { - for (uint8_t i = 0; i < DRIVER_LED_TOTAL; i++) { + for (uint8_t i = 0; i < RGB_MATRIX_LED_COUNT; i++) { AW20216_set_color(i, red, green, blue); } } diff --git a/drivers/led/aw20216.h b/drivers/led/aw20216.h index 0a17050fed8..c6e71b4b4e2 100644 --- a/drivers/led/aw20216.h +++ b/drivers/led/aw20216.h @@ -28,7 +28,7 @@ typedef struct aw_led { uint8_t b; } aw_led; -extern const aw_led PROGMEM g_aw_leds[DRIVER_LED_TOTAL]; +extern const aw_led PROGMEM g_aw_leds[RGB_MATRIX_LED_COUNT]; void AW20216_init(pin_t cs_pin, pin_t en_pin); void AW20216_set_color(int index, uint8_t red, uint8_t green, uint8_t blue); diff --git a/drivers/led/ckled2001-simple.c b/drivers/led/ckled2001-simple.c index da4bf20b99e..6c4ffd398e5 100644 --- a/drivers/led/ckled2001-simple.c +++ b/drivers/led/ckled2001-simple.c @@ -148,7 +148,7 @@ void CKLED2001_init(uint8_t addr) { void CKLED2001_set_value(int index, uint8_t value) { ckled2001_led led; - if (index >= 0 && index < DRIVER_LED_TOTAL) { + if (index >= 0 && index < LED_MATRIX_LED_COUNT) { memcpy_P(&led, (&g_ckled2001_leds[index]), sizeof(led)); g_pwm_buffer[led.driver][led.v] = value; @@ -157,7 +157,7 @@ void CKLED2001_set_value(int index, uint8_t value) { } void CKLED2001_set_value_all(uint8_t value) { - for (int i = 0; i < DRIVER_LED_TOTAL; i++) { + for (int i = 0; i < LED_MATRIX_LED_COUNT; i++) { CKLED2001_set_value(i, value); } } diff --git a/drivers/led/ckled2001-simple.h b/drivers/led/ckled2001-simple.h index 731da2e1cdb..a56cad3461b 100644 --- a/drivers/led/ckled2001-simple.h +++ b/drivers/led/ckled2001-simple.h @@ -25,7 +25,7 @@ typedef struct ckled2001_led { uint8_t v; } __attribute__((packed)) ckled2001_led; -extern const ckled2001_led PROGMEM g_ckled2001_leds[DRIVER_LED_TOTAL]; +extern const ckled2001_led PROGMEM g_ckled2001_leds[LED_MATRIX_LED_COUNT]; void CKLED2001_init(uint8_t addr); bool CKLED2001_write_register(uint8_t addr, uint8_t reg, uint8_t data); diff --git a/drivers/led/ckled2001.c b/drivers/led/ckled2001.c index b7e7db06cc4..16516281754 100644 --- a/drivers/led/ckled2001.c +++ b/drivers/led/ckled2001.c @@ -148,7 +148,7 @@ void CKLED2001_init(uint8_t addr) { void CKLED2001_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { ckled2001_led led; - if (index >= 0 && index < DRIVER_LED_TOTAL) { + if (index >= 0 && index < RGB_MATRIX_LED_COUNT) { memcpy_P(&led, (&g_ckled2001_leds[index]), sizeof(led)); g_pwm_buffer[led.driver][led.r] = red; @@ -159,7 +159,7 @@ void CKLED2001_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { } void CKLED2001_set_color_all(uint8_t red, uint8_t green, uint8_t blue) { - for (int i = 0; i < DRIVER_LED_TOTAL; i++) { + for (int i = 0; i < RGB_MATRIX_LED_COUNT; i++) { CKLED2001_set_color(i, red, green, blue); } } diff --git a/drivers/led/ckled2001.h b/drivers/led/ckled2001.h index 7d5ad34f952..aa70a0623f9 100644 --- a/drivers/led/ckled2001.h +++ b/drivers/led/ckled2001.h @@ -27,7 +27,7 @@ typedef struct ckled2001_led { uint8_t b; } __attribute__((packed)) ckled2001_led; -extern const ckled2001_led PROGMEM g_ckled2001_leds[DRIVER_LED_TOTAL]; +extern const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT]; void CKLED2001_init(uint8_t addr); bool CKLED2001_write_register(uint8_t addr, uint8_t reg, uint8_t data); diff --git a/drivers/led/issi/is31fl3731-simple.c b/drivers/led/issi/is31fl3731-simple.c index 3abe9ea3377..84060f94264 100644 --- a/drivers/led/issi/is31fl3731-simple.c +++ b/drivers/led/issi/is31fl3731-simple.c @@ -194,7 +194,7 @@ void IS31FL3731_init(uint8_t addr) { void IS31FL3731_set_value(int index, uint8_t value) { is31_led led; - if (index >= 0 && index < DRIVER_LED_TOTAL) { + if (index >= 0 && index < LED_MATRIX_LED_COUNT) { memcpy_P(&led, (&g_is31_leds[index]), sizeof(led)); // Subtract 0x24 to get the second index of g_pwm_buffer @@ -204,7 +204,7 @@ void IS31FL3731_set_value(int index, uint8_t value) { } void IS31FL3731_set_value_all(uint8_t value) { - for (int i = 0; i < DRIVER_LED_TOTAL; i++) { + for (int i = 0; i < LED_MATRIX_LED_COUNT; i++) { IS31FL3731_set_value(i, value); } } diff --git a/drivers/led/issi/is31fl3731-simple.h b/drivers/led/issi/is31fl3731-simple.h index ded94b0470d..1ddadd52090 100644 --- a/drivers/led/issi/is31fl3731-simple.h +++ b/drivers/led/issi/is31fl3731-simple.h @@ -27,7 +27,7 @@ typedef struct is31_led { uint8_t v; } __attribute__((packed)) is31_led; -extern const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL]; +extern const is31_led PROGMEM g_is31_leds[LED_MATRIX_LED_COUNT]; void IS31FL3731_init(uint8_t addr); void IS31FL3731_write_register(uint8_t addr, uint8_t reg, uint8_t data); diff --git a/drivers/led/issi/is31fl3731.c b/drivers/led/issi/is31fl3731.c index 9c6c29f081b..fed5354145c 100644 --- a/drivers/led/issi/is31fl3731.c +++ b/drivers/led/issi/is31fl3731.c @@ -182,7 +182,7 @@ void IS31FL3731_init(uint8_t addr) { void IS31FL3731_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { is31_led led; - if (index >= 0 && index < DRIVER_LED_TOTAL) { + if (index >= 0 && index < RGB_MATRIX_LED_COUNT) { memcpy_P(&led, (&g_is31_leds[index]), sizeof(led)); // Subtract 0x24 to get the second index of g_pwm_buffer @@ -194,7 +194,7 @@ void IS31FL3731_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { } void IS31FL3731_set_color_all(uint8_t red, uint8_t green, uint8_t blue) { - for (int i = 0; i < DRIVER_LED_TOTAL; i++) { + for (int i = 0; i < RGB_MATRIX_LED_COUNT; i++) { IS31FL3731_set_color(i, red, green, blue); } } diff --git a/drivers/led/issi/is31fl3731.h b/drivers/led/issi/is31fl3731.h index 6647119ebae..6791289c9e6 100644 --- a/drivers/led/issi/is31fl3731.h +++ b/drivers/led/issi/is31fl3731.h @@ -28,7 +28,7 @@ typedef struct is31_led { uint8_t b; } __attribute__((packed)) is31_led; -extern const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL]; +extern const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT]; void IS31FL3731_init(uint8_t addr); void IS31FL3731_write_register(uint8_t addr, uint8_t reg, uint8_t data); diff --git a/drivers/led/issi/is31fl3733-simple.c b/drivers/led/issi/is31fl3733-simple.c index 2f41a7b1a94..1e0994d780c 100644 --- a/drivers/led/issi/is31fl3733-simple.c +++ b/drivers/led/issi/is31fl3733-simple.c @@ -195,7 +195,7 @@ void IS31FL3733_init(uint8_t addr, uint8_t sync) { } void IS31FL3733_set_value(int index, uint8_t value) { - if (index >= 0 && index < DRIVER_LED_TOTAL) { + if (index >= 0 && index < LED_MATRIX_LED_COUNT) { is31_led led = g_is31_leds[index]; g_pwm_buffer[led.driver][led.v] = value; @@ -204,7 +204,7 @@ void IS31FL3733_set_value(int index, uint8_t value) { } void IS31FL3733_set_value_all(uint8_t value) { - for (int i = 0; i < DRIVER_LED_TOTAL; i++) { + for (int i = 0; i < LED_MATRIX_LED_COUNT; i++) { IS31FL3733_set_value(i, value); } } diff --git a/drivers/led/issi/is31fl3733-simple.h b/drivers/led/issi/is31fl3733-simple.h index f5253e31017..f0ea3adca05 100644 --- a/drivers/led/issi/is31fl3733-simple.h +++ b/drivers/led/issi/is31fl3733-simple.h @@ -29,7 +29,7 @@ typedef struct is31_led { uint8_t v; } __attribute__((packed)) is31_led; -extern const is31_led __flash g_is31_leds[DRIVER_LED_TOTAL]; +extern const is31_led __flash g_is31_leds[LED_MATRIX_LED_COUNT]; void IS31FL3733_init(uint8_t addr, uint8_t sync); bool IS31FL3733_write_register(uint8_t addr, uint8_t reg, uint8_t data); diff --git a/drivers/led/issi/is31fl3733.c b/drivers/led/issi/is31fl3733.c index add998f2566..379eaa0ae30 100644 --- a/drivers/led/issi/is31fl3733.c +++ b/drivers/led/issi/is31fl3733.c @@ -186,7 +186,7 @@ void IS31FL3733_init(uint8_t addr, uint8_t sync) { void IS31FL3733_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { is31_led led; - if (index >= 0 && index < DRIVER_LED_TOTAL) { + if (index >= 0 && index < RGB_MATRIX_LED_COUNT) { memcpy_P(&led, (&g_is31_leds[index]), sizeof(led)); g_pwm_buffer[led.driver][led.r] = red; @@ -197,7 +197,7 @@ void IS31FL3733_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { } void IS31FL3733_set_color_all(uint8_t red, uint8_t green, uint8_t blue) { - for (int i = 0; i < DRIVER_LED_TOTAL; i++) { + for (int i = 0; i < RGB_MATRIX_LED_COUNT; i++) { IS31FL3733_set_color(i, red, green, blue); } } diff --git a/drivers/led/issi/is31fl3733.h b/drivers/led/issi/is31fl3733.h index 7653dd17c03..29441846acc 100644 --- a/drivers/led/issi/is31fl3733.h +++ b/drivers/led/issi/is31fl3733.h @@ -30,7 +30,7 @@ typedef struct is31_led { uint8_t b; } __attribute__((packed)) is31_led; -extern const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL]; +extern const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT]; void IS31FL3733_init(uint8_t addr, uint8_t sync); bool IS31FL3733_write_register(uint8_t addr, uint8_t reg, uint8_t data); diff --git a/drivers/led/issi/is31fl3736.c b/drivers/led/issi/is31fl3736.c index e9943614d21..82e7ee3d18a 100644 --- a/drivers/led/issi/is31fl3736.c +++ b/drivers/led/issi/is31fl3736.c @@ -168,7 +168,7 @@ void IS31FL3736_init(uint8_t addr) { void IS31FL3736_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { is31_led led; - if (index >= 0 && index < DRIVER_LED_TOTAL) { + if (index >= 0 && index < RGB_MATRIX_LED_COUNT) { memcpy_P(&led, (&g_is31_leds[index]), sizeof(led)); g_pwm_buffer[led.driver][led.r] = red; @@ -179,7 +179,7 @@ void IS31FL3736_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { } void IS31FL3736_set_color_all(uint8_t red, uint8_t green, uint8_t blue) { - for (int i = 0; i < DRIVER_LED_TOTAL; i++) { + for (int i = 0; i < RGB_MATRIX_LED_COUNT; i++) { IS31FL3736_set_color(i, red, green, blue); } } diff --git a/drivers/led/issi/is31fl3736.h b/drivers/led/issi/is31fl3736.h index f126034615d..ccb19afbccc 100644 --- a/drivers/led/issi/is31fl3736.h +++ b/drivers/led/issi/is31fl3736.h @@ -28,8 +28,8 @@ # define DRIVER_COUNT 2 #endif -#ifndef DRIVER_LED_TOTAL -# define DRIVER_LED_TOTAL 96 +#ifndef RGB_MATRIX_LED_COUNT +# define RGB_MATRIX_LED_COUNT 96 #endif typedef struct is31_led { @@ -39,7 +39,7 @@ typedef struct is31_led { uint8_t b; } __attribute__((packed)) is31_led; -extern const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL]; +extern const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT]; void IS31FL3736_init(uint8_t addr); void IS31FL3736_write_register(uint8_t addr, uint8_t reg, uint8_t data); diff --git a/drivers/led/issi/is31fl3737.c b/drivers/led/issi/is31fl3737.c index 932530ac0a3..45a20018c56 100644 --- a/drivers/led/issi/is31fl3737.c +++ b/drivers/led/issi/is31fl3737.c @@ -175,7 +175,7 @@ void IS31FL3737_init(uint8_t addr) { void IS31FL3737_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { is31_led led; - if (index >= 0 && index < DRIVER_LED_TOTAL) { + if (index >= 0 && index < RGB_MATRIX_LED_COUNT) { memcpy_P(&led, (&g_is31_leds[index]), sizeof(led)); g_pwm_buffer[led.driver][led.r] = red; @@ -186,7 +186,7 @@ void IS31FL3737_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { } void IS31FL3737_set_color_all(uint8_t red, uint8_t green, uint8_t blue) { - for (int i = 0; i < DRIVER_LED_TOTAL; i++) { + for (int i = 0; i < RGB_MATRIX_LED_COUNT; i++) { IS31FL3737_set_color(i, red, green, blue); } } diff --git a/drivers/led/issi/is31fl3737.h b/drivers/led/issi/is31fl3737.h index ddb70a9df50..fb0c33420c0 100644 --- a/drivers/led/issi/is31fl3737.h +++ b/drivers/led/issi/is31fl3737.h @@ -30,7 +30,7 @@ typedef struct is31_led { uint8_t b; } __attribute__((packed)) is31_led; -extern const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL]; +extern const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT]; void IS31FL3737_init(uint8_t addr); void IS31FL3737_write_register(uint8_t addr, uint8_t reg, uint8_t data); diff --git a/drivers/led/issi/is31fl3741.c b/drivers/led/issi/is31fl3741.c index ba6b6761a35..c2cdd4c46f9 100644 --- a/drivers/led/issi/is31fl3741.c +++ b/drivers/led/issi/is31fl3741.c @@ -179,7 +179,7 @@ void IS31FL3741_init(uint8_t addr) { void IS31FL3741_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { is31_led led; - if (index >= 0 && index < DRIVER_LED_TOTAL) { + if (index >= 0 && index < RGB_MATRIX_LED_COUNT) { memcpy_P(&led, (&g_is31_leds[index]), sizeof(led)); g_pwm_buffer[led.driver][led.r] = red; @@ -190,7 +190,7 @@ void IS31FL3741_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { } void IS31FL3741_set_color_all(uint8_t red, uint8_t green, uint8_t blue) { - for (int i = 0; i < DRIVER_LED_TOTAL; i++) { + for (int i = 0; i < RGB_MATRIX_LED_COUNT; i++) { IS31FL3741_set_color(i, red, green, blue); } } diff --git a/drivers/led/issi/is31fl3741.h b/drivers/led/issi/is31fl3741.h index 3bdb23bd2d3..b0089ea5bab 100644 --- a/drivers/led/issi/is31fl3741.h +++ b/drivers/led/issi/is31fl3741.h @@ -30,7 +30,7 @@ typedef struct is31_led { uint32_t b : 10; } __attribute__((packed)) is31_led; -extern const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL]; +extern const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT]; void IS31FL3741_init(uint8_t addr); void IS31FL3741_write_register(uint8_t addr, uint8_t reg, uint8_t data); diff --git a/drivers/led/issi/is31flcommon.c b/drivers/led/issi/is31flcommon.c index 9f4b2123ffb..106890a8bf0 100644 --- a/drivers/led/issi/is31flcommon.c +++ b/drivers/led/issi/is31flcommon.c @@ -135,14 +135,17 @@ void IS31FL_common_update_pwm_register(uint8_t addr, uint8_t index) { void IS31FL_set_manual_scaling_buffer(void) { for (int i = 0; i < ISSI_MANUAL_SCALING; i++) { is31_led scale = g_is31_scaling[i]; - if (scale.driver >= 0 && scale.driver < DRIVER_LED_TOTAL) { +# ifdef RGB_MATRIX_ENABLE + if (scale.driver >= 0 && scale.driver < RGB_MATRIX_LED_COUNT) { is31_led led = g_is31_leds[scale.driver]; -# ifdef RGB_MATRIX_ENABLE g_scaling_buffer[led.driver][led.r] = scale.r; g_scaling_buffer[led.driver][led.g] = scale.g; g_scaling_buffer[led.driver][led.b] = scale.b; # elif defined(LED_MATRIX_ENABLE) + if (scale.driver >= 0 && scale.driver < LED_MATRIX_LED_COUNT) { + is31_led led = g_is31_leds[scale.driver]; + g_scaling_buffer[led.driver][led.v] = scale.v; # endif g_scaling_buffer_update_required[led.driver] = true; @@ -165,7 +168,7 @@ void IS31FL_common_update_scaling_register(uint8_t addr, uint8_t index) { #ifdef RGB_MATRIX_ENABLE // Colour is set by adjusting PWM register void IS31FL_RGB_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { - if (index >= 0 && index < DRIVER_LED_TOTAL) { + if (index >= 0 && index < RGB_MATRIX_LED_COUNT) { is31_led led = g_is31_leds[index]; g_pwm_buffer[led.driver][led.r] = red; @@ -176,7 +179,7 @@ void IS31FL_RGB_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { } void IS31FL_RGB_set_color_all(uint8_t red, uint8_t green, uint8_t blue) { - for (int i = 0; i < DRIVER_LED_TOTAL; i++) { + for (int i = 0; i < RGB_MATRIX_LED_COUNT; i++) { IS31FL_RGB_set_color(i, red, green, blue); } } @@ -215,7 +218,7 @@ void IS31FL_simple_set_scaling_buffer(uint8_t index, bool value) { } void IS31FL_simple_set_brightness(int index, uint8_t value) { - if (index >= 0 && index < DRIVER_LED_TOTAL) { + if (index >= 0 && index < LED_MATRIX_LED_COUNT) { is31_led led = g_is31_leds[index]; g_pwm_buffer[led.driver][led.v] = value; g_pwm_buffer_update_required[led.driver] = true; @@ -223,7 +226,7 @@ void IS31FL_simple_set_brightness(int index, uint8_t value) { } void IS31FL_simple_set_brigntness_all(uint8_t value) { - for (int i = 0; i < DRIVER_LED_TOTAL; i++) { + for (int i = 0; i < LED_MATRIX_LED_COUNT; i++) { IS31FL_simple_set_brightness(i, value); } } diff --git a/drivers/led/issi/is31flcommon.h b/drivers/led/issi/is31flcommon.h index 77e9665e323..18432ffc312 100644 --- a/drivers/led/issi/is31flcommon.h +++ b/drivers/led/issi/is31flcommon.h @@ -43,11 +43,15 @@ typedef struct is31_led { uint8_t b; } __attribute__((packed)) is31_led; +extern const is31_led __flash g_is31_leds[RGB_MATRIX_LED_COUNT]; + #elif defined(LED_MATRIX_ENABLE) typedef struct is31_led { uint8_t driver; uint8_t v; } __attribute__((packed)) is31_led; + +extern const is31_led __flash g_is31_leds[LED_MATRIX_LED_COUNT]; #endif #ifdef ISSI_MANUAL_SCALING @@ -55,8 +59,6 @@ extern const is31_led __flash g_is31_scaling[]; void IS31FL_set_manual_scaling_buffer(void); #endif -extern const is31_led __flash g_is31_leds[DRIVER_LED_TOTAL]; - void IS31FL_write_single_register(uint8_t addr, uint8_t reg, uint8_t data); bool IS31FL_write_multi_registers(uint8_t addr, uint8_t *source_buffer, uint8_t buffer_size, uint8_t transfer_size, uint8_t start_reg_addr); void IS31FL_unlock_register(uint8_t addr, uint8_t page); diff --git a/drivers/painter/generic/qp_rgb565_surface.c b/drivers/painter/generic/qp_rgb565_surface.c new file mode 100644 index 00000000000..c4de336535c --- /dev/null +++ b/drivers/painter/generic/qp_rgb565_surface.c @@ -0,0 +1,277 @@ +// Copyright 2022 Nick Brassel (@tzarc) +// SPDX-License-Identifier: GPL-2.0-or-later +#include "color.h" +#include "qp_rgb565_surface.h" +#include "qp_draw.h" + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Common + +// Device definition +typedef struct rgb565_surface_painter_device_t { + struct painter_driver_t base; // must be first, so it can be cast to/from the painter_device_t* type + + // The target buffer + uint16_t *buffer; + + // Manually manage the viewport for streaming pixel data to the display + uint16_t viewport_l; + uint16_t viewport_t; + uint16_t viewport_r; + uint16_t viewport_b; + + // Current write location to the display when streaming pixel data + uint16_t pixdata_x; + uint16_t pixdata_y; + + // Maintain a dirty region so we can stream only what we need + bool is_dirty; + uint16_t dirty_l; + uint16_t dirty_t; + uint16_t dirty_r; + uint16_t dirty_b; + +} rgb565_surface_painter_device_t; + +// Driver storage +rgb565_surface_painter_device_t surface_drivers[RGB565_SURFACE_NUM_DEVICES] = {0}; + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Helpers + +static inline void increment_pixdata_location(rgb565_surface_painter_device_t *surface) { + // Increment the X-position + surface->pixdata_x++; + + // If the x-coord has gone past the right-side edge, loop it back around and increment the y-coord + if (surface->pixdata_x > surface->viewport_r) { + surface->pixdata_x = surface->viewport_l; + surface->pixdata_y++; + } + + // If the y-coord has gone past the bottom, loop it back to the top + if (surface->pixdata_y > surface->viewport_b) { + surface->pixdata_y = surface->viewport_t; + } +} + +static inline void setpixel(rgb565_surface_painter_device_t *surface, uint16_t x, uint16_t y, uint16_t rgb565) { + // Skip messing with the dirty info if the original value already matches + if (surface->buffer[y * surface->base.panel_width + x] != rgb565) { + // Maintain dirty region + if (surface->dirty_l > x) { + surface->dirty_l = x; + } + if (surface->dirty_r < x) { + surface->dirty_r = x; + } + if (surface->dirty_t > y) { + surface->dirty_t = y; + } + if (surface->dirty_b < y) { + surface->dirty_b = y; + } + + // Always dirty after a setpixel + surface->is_dirty = true; + + // Update the pixel data in the buffer + surface->buffer[y * surface->base.panel_width + x] = rgb565; + } +} + +static inline void append_pixel(rgb565_surface_painter_device_t *surface, uint16_t rgb565) { + setpixel(surface, surface->pixdata_x, surface->pixdata_y, rgb565); + increment_pixdata_location(surface); +} + +static inline void stream_pixdata(rgb565_surface_painter_device_t *surface, const uint16_t *data, uint32_t native_pixel_count) { + for (uint32_t pixel_counter = 0; pixel_counter < native_pixel_count; ++pixel_counter) { + append_pixel(surface, data[pixel_counter]); + } +} + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Driver vtable + +static bool qp_rgb565_surface_init(painter_device_t device, painter_rotation_t rotation) { + struct painter_driver_t * driver = (struct painter_driver_t *)device; + rgb565_surface_painter_device_t *surface = (rgb565_surface_painter_device_t *)driver; + memset(surface->buffer, 0, driver->panel_width * driver->panel_height * driver->native_bits_per_pixel / 8); + return true; +} + +static bool qp_rgb565_surface_power(painter_device_t device, bool power_on) { + // No-op. + return true; +} + +static bool qp_rgb565_surface_clear(painter_device_t device) { + struct painter_driver_t *driver = (struct painter_driver_t *)device; + driver->driver_vtable->init(device, driver->rotation); // Re-init the surface + return true; +} + +static bool qp_rgb565_surface_flush(painter_device_t device) { + struct painter_driver_t * driver = (struct painter_driver_t *)device; + rgb565_surface_painter_device_t *surface = (rgb565_surface_painter_device_t *)driver; + surface->dirty_l = surface->dirty_t = UINT16_MAX; + surface->dirty_r = surface->dirty_b = 0; + surface->is_dirty = false; + return true; +} + +static bool qp_rgb565_surface_viewport(painter_device_t device, uint16_t left, uint16_t top, uint16_t right, uint16_t bottom) { + struct painter_driver_t * driver = (struct painter_driver_t *)device; + rgb565_surface_painter_device_t *surface = (rgb565_surface_painter_device_t *)driver; + + // Set the viewport locations + surface->viewport_l = left; + surface->viewport_t = top; + surface->viewport_r = right; + surface->viewport_b = bottom; + + // Reset the write location to the top left + surface->pixdata_x = left; + surface->pixdata_y = top; + return true; +} + +// Stream pixel data to the current write position in GRAM +static bool qp_rgb565_surface_pixdata(painter_device_t device, const void *pixel_data, uint32_t native_pixel_count) { + struct painter_driver_t * driver = (struct painter_driver_t *)device; + rgb565_surface_painter_device_t *surface = (rgb565_surface_painter_device_t *)driver; + stream_pixdata(surface, (const uint16_t *)pixel_data, native_pixel_count); + return true; +} + +// Pixel colour conversion +static bool qp_rgb565_surface_palette_convert_rgb565_swapped(painter_device_t device, int16_t palette_size, qp_pixel_t *palette) { + for (int16_t i = 0; i < palette_size; ++i) { + RGB rgb = hsv_to_rgb_nocie((HSV){palette[i].hsv888.h, palette[i].hsv888.s, palette[i].hsv888.v}); + uint16_t rgb565 = (((uint16_t)rgb.r) >> 3) << 11 | (((uint16_t)rgb.g) >> 2) << 5 | (((uint16_t)rgb.b) >> 3); + palette[i].rgb565 = __builtin_bswap16(rgb565); + } + return true; +} + +// Append pixels to the target location, keyed by the pixel index +static bool qp_rgb565_surface_append_pixels_rgb565(painter_device_t device, uint8_t *target_buffer, qp_pixel_t *palette, uint32_t pixel_offset, uint32_t pixel_count, uint8_t *palette_indices) { + uint16_t *buf = (uint16_t *)target_buffer; + for (uint32_t i = 0; i < pixel_count; ++i) { + buf[pixel_offset + i] = palette[palette_indices[i]].rgb565; + } + return true; +} + +const struct painter_driver_vtable_t rgb565_surface_driver_vtable = { + .init = qp_rgb565_surface_init, + .power = qp_rgb565_surface_power, + .clear = qp_rgb565_surface_clear, + .flush = qp_rgb565_surface_flush, + .pixdata = qp_rgb565_surface_pixdata, + .viewport = qp_rgb565_surface_viewport, + .palette_convert = qp_rgb565_surface_palette_convert_rgb565_swapped, + .append_pixels = qp_rgb565_surface_append_pixels_rgb565, +}; + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Comms vtable + +static bool qp_rgb565_surface_comms_init(painter_device_t device) { + // No-op. + return true; +} +static bool qp_rgb565_surface_comms_start(painter_device_t device) { + // No-op. + return true; +} +static void qp_rgb565_surface_comms_stop(painter_device_t device) { + // No-op. +} +uint32_t qp_rgb565_surface_comms_send(painter_device_t device, const void *data, uint32_t byte_count) { + // No-op. + return byte_count; +} + +struct painter_comms_vtable_t rgb565_surface_driver_comms_vtable = { + // These are all effective no-op's because they're not actually needed. + .comms_init = qp_rgb565_surface_comms_init, + .comms_start = qp_rgb565_surface_comms_start, + .comms_stop = qp_rgb565_surface_comms_stop, + .comms_send = qp_rgb565_surface_comms_send}; + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Factory function for creating a handle to an rgb565 surface + +painter_device_t qp_rgb565_make_surface(uint16_t panel_width, uint16_t panel_height, void *buffer) { + for (uint32_t i = 0; i < RGB565_SURFACE_NUM_DEVICES; ++i) { + rgb565_surface_painter_device_t *driver = &surface_drivers[i]; + if (!driver->base.driver_vtable) { + driver->base.driver_vtable = &rgb565_surface_driver_vtable; + driver->base.comms_vtable = &rgb565_surface_driver_comms_vtable; + driver->base.native_bits_per_pixel = 16; // RGB565 + driver->base.panel_width = panel_width; + driver->base.panel_height = panel_height; + driver->base.rotation = QP_ROTATION_0; + driver->base.offset_x = 0; + driver->base.offset_y = 0; + driver->buffer = (uint16_t *)buffer; + return (painter_device_t)driver; + } + } + return NULL; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Drawing routine to copy out the dirty region and send it to another device + +bool qp_rgb565_surface_draw(painter_device_t surface, painter_device_t display, uint16_t x, uint16_t y) { + struct painter_driver_t * surface_driver = (struct painter_driver_t *)surface; + rgb565_surface_painter_device_t *surface_handle = (rgb565_surface_painter_device_t *)surface_driver; + + // If we're not dirty... we're done. + if (!surface_handle->is_dirty) { + return true; + } + + // Set the target drawing area + bool ok = qp_viewport(display, x + surface_handle->dirty_l, y + surface_handle->dirty_t, x + surface_handle->dirty_r, y + surface_handle->dirty_b); + if (!ok) { + return false; + } + + // Housekeeping of the amount of pixels to transfer + uint32_t total_pixel_count = QUANTUM_PAINTER_PIXDATA_BUFFER_SIZE / sizeof(uint16_t); + uint32_t pixel_counter = 0; + uint16_t *target_buffer = (uint16_t *)qp_internal_global_pixdata_buffer; + + // Fill the global pixdata area so that we can start transferring to the panel + for (uint16_t y = surface_handle->dirty_t; y <= surface_handle->dirty_b; ++y) { + for (uint16_t x = surface_handle->dirty_l; x <= surface_handle->dirty_r; ++x) { + // Update the target buffer + target_buffer[pixel_counter++] = surface_handle->buffer[y * surface_handle->base.panel_width + x]; + + // If we've accumulated enough data, send it + if (pixel_counter == total_pixel_count) { + ok = qp_pixdata(display, qp_internal_global_pixdata_buffer, pixel_counter); + if (!ok) { + return false; + } + // Reset the counter + pixel_counter = 0; + } + } + } + + // If there's any leftover data, send it + if (pixel_counter > 0) { + ok = qp_pixdata(display, qp_internal_global_pixdata_buffer, pixel_counter); + if (!ok) { + return false; + } + } + + // Clear the dirty info for the surface + return qp_flush(surface); +} diff --git a/drivers/painter/generic/qp_rgb565_surface.h b/drivers/painter/generic/qp_rgb565_surface.h new file mode 100644 index 00000000000..19e919bb913 --- /dev/null +++ b/drivers/painter/generic/qp_rgb565_surface.h @@ -0,0 +1,42 @@ +// Copyright 2022 Nick Brassel (@tzarc) +// SPDX-License-Identifier: GPL-2.0-or-later +#include "qp_internal.h" + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Quantum Painter RGB565 surface configurables (add to your keyboard's config.h) + +#ifndef RGB565_SURFACE_NUM_DEVICES +/** + * @def This controls the maximum number of surface devices that Quantum Painter can use at any one time. + * Increasing this number allows for multiple framebuffers to be used. Each requires its own RAM allocation. + */ +# define RGB565_SURFACE_NUM_DEVICES 1 +#endif + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Forward declarations + +#ifdef QUANTUM_PAINTER_RGB565_SURFACE_ENABLE +/** + * Factory method for an RGB565 surface (aka framebuffer). + * + * @param panel_width[in] the width of the display panel + * @param panel_height[in] the height of the display panel + * @param buffer[in] pointer to a preallocated buffer of size `(sizeof(uint16_t) * panel_width * panel_height)` + * @return the device handle used with all drawing routines in Quantum Painter + */ +painter_device_t qp_rgb565_make_surface(uint16_t panel_width, uint16_t panel_height, void *buffer); + +/** + * Helper method to draw the dirty contents of the framebuffer to the target device. + * + * After successful completion, the dirty area is reset. + * + * @param surface[in] the surface to copy from + * @param display[in] the display to copy into + * @param x[in] the x-location of the original position of the framebuffer + * @param y[in] the y-location of the original position of the framebuffer + * @return whether the draw operation completed successfully + */ +bool qp_rgb565_surface_draw(painter_device_t surface, painter_device_t display, uint16_t x, uint16_t y); +#endif // QUANTUM_PAINTER_RGB565_SURFACE_ENABLE diff --git a/drivers/painter/tft_panel/qp_tft_panel.c b/drivers/painter/tft_panel/qp_tft_panel.c index ad83b6c7924..e7c744ab34e 100644 --- a/drivers/painter/tft_panel/qp_tft_panel.c +++ b/drivers/painter/tft_panel/qp_tft_panel.c @@ -7,8 +7,6 @@ #include "qp_draw.h" #include "qp_tft_panel.h" -#define BYTE_SWAP(x) (((((uint16_t)(x)) >> 8) & 0x00FF) | ((((uint16_t)(x)) << 8) & 0xFF00)) - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Quantum Painter API implementations @@ -94,7 +92,7 @@ bool qp_tft_panel_palette_convert_rgb565_swapped(painter_device_t device, int16_ for (int16_t i = 0; i < palette_size; ++i) { RGB rgb = hsv_to_rgb_nocie((HSV){palette[i].hsv888.h, palette[i].hsv888.s, palette[i].hsv888.v}); uint16_t rgb565 = (((uint16_t)rgb.r) >> 3) << 11 | (((uint16_t)rgb.g) >> 2) << 5 | (((uint16_t)rgb.b) >> 3); - palette[i].rgb565 = BYTE_SWAP(rgb565); + palette[i].rgb565 = __builtin_bswap16(rgb565); } return true; } diff --git a/keyboards/1upkeyboards/pi40/config.h b/keyboards/1upkeyboards/pi40/config.h index 5bda238430f..5e0d0e12ae4 100644 --- a/keyboards/1upkeyboards/pi40/config.h +++ b/keyboards/1upkeyboards/pi40/config.h @@ -29,7 +29,7 @@ #define ENCODERS_PAD_B { GP13 } #define RGB_DI_PIN GP0 -#define DRIVER_LED_TOTAL 47 +#define RGB_MATRIX_LED_COUNT 47 #define RGBLED_NUM 47 # define RGB_MATRIX_KEYPRESSES // reacts to keypresses # define RGB_MATRIX_FRAMEBUFFER_EFFECTS diff --git a/keyboards/1upkeyboards/super16/config.h b/keyboards/1upkeyboards/super16/config.h index 1a9344cbac0..9220655ac26 100644 --- a/keyboards/1upkeyboards/super16/config.h +++ b/keyboards/1upkeyboards/super16/config.h @@ -53,7 +53,7 @@ along with this program. If not, see . #define RGB_DI_PIN D3 #ifdef RGB_DI_PIN # define RGBLED_NUM 16 // Add 12 if attaching the RGB LED ring -# define DRIVER_LED_TOTAL RGBLED_NUM +# define RGB_MATRIX_LED_COUNT RGBLED_NUM # ifdef RGBLIGHT_ENABLE # define RGBLIGHT_HUE_STEP 8 # define RGBLIGHT_SAT_STEP 8 diff --git a/keyboards/1upkeyboards/super16v2/config.h b/keyboards/1upkeyboards/super16v2/config.h index cea3c4edb65..a37053a20f2 100644 --- a/keyboards/1upkeyboards/super16v2/config.h +++ b/keyboards/1upkeyboards/super16v2/config.h @@ -62,7 +62,7 @@ //#define BACKLIGHT_BREATHING #define RGB_DI_PIN B5 -#define DRIVER_LED_TOTAL 20 +#define RGB_MATRIX_LED_COUNT 20 #ifdef RGB_DI_PIN # define RGB_MATRIX_KEYPRESSES // reacts to keypresses # define RGBLIGHT_LIMIT_VAL 255 diff --git a/keyboards/3keyecosystem/2key2/config.h b/keyboards/3keyecosystem/2key2/config.h index 5ccd3f1cd5c..bb0a5916100 100644 --- a/keyboards/3keyecosystem/2key2/config.h +++ b/keyboards/3keyecosystem/2key2/config.h @@ -34,7 +34,7 @@ along with this program. If not, see . /* RGB matrix key backlighting */ #define RGB_DI_PIN B2 -#define DRIVER_LED_TOTAL 2 +#define RGB_MATRIX_LED_COUNT 2 #define RGB_MATRIX_KEYPRESSES #define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_SOLID_REACTIVE #define RGB_MATRIX_STARTUP_HUE 90 diff --git a/keyboards/4pplet/perk60_iso/rev_a/config.h b/keyboards/4pplet/perk60_iso/rev_a/config.h index bd24723df08..7403803f5de 100644 --- a/keyboards/4pplet/perk60_iso/rev_a/config.h +++ b/keyboards/4pplet/perk60_iso/rev_a/config.h @@ -33,7 +33,7 @@ along with this program. If not, see . #define DRIVER_ADDR_1 0b1010000 #define DRIVER_COUNT 1 -#define DRIVER_LED_TOTAL 62 +#define RGB_MATRIX_LED_COUNT 62 #define ISSI_PWM_FREQUENCY 0b010 #define RGB_MATRIX_STARTUP_VAL 80 diff --git a/keyboards/4pplet/perk60_iso/rev_a/rev_a.c b/keyboards/4pplet/perk60_iso/rev_a/rev_a.c index 8f6ef05cec6..72446d39be7 100644 --- a/keyboards/4pplet/perk60_iso/rev_a/rev_a.c +++ b/keyboards/4pplet/perk60_iso/rev_a/rev_a.c @@ -17,7 +17,7 @@ along with this program. If not, see . #include "rev_a.h" #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { { 0, K_2, J_2, L_2 }, //D402 { 0, K_3, J_3, L_3 }, //D403 { 0, K_4, J_4, L_4 }, //D404 diff --git a/keyboards/abatskeyboardclub/nayeon/config.h b/keyboards/abatskeyboardclub/nayeon/config.h index 449f2da113f..6be72c64951 100644 --- a/keyboards/abatskeyboardclub/nayeon/config.h +++ b/keyboards/abatskeyboardclub/nayeon/config.h @@ -21,6 +21,6 @@ along with this program. If not, see . /* RGB Matrix setup */ #define RGB_DI_PIN GP19 -#define DRIVER_LED_TOTAL 2 +#define RGB_MATRIX_LED_COUNT 2 #define RGBLED_NUM 2 #define WS2812_PIO_USE_PIO1 // Force the usage of PIO1 peripheral, by default the WS2812 implementation uses the PIO0 peripheral diff --git a/keyboards/acheron/apollo/87h/delta/config.h b/keyboards/acheron/apollo/87h/delta/config.h index 85909af2088..8f6e3a87db8 100644 --- a/keyboards/acheron/apollo/87h/delta/config.h +++ b/keyboards/acheron/apollo/87h/delta/config.h @@ -38,14 +38,10 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -#define EEPROM_I2C_24LC256 -//#define I2C1_CLOCK_SPEED 400000 -//#define I2C1_DUTY_CYCLE FAST_DUTY_CYCLE_2 - #define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE #define RGB_DI_PIN B15 -#define DRIVER_LED_TOTAL 87 +#define RGB_MATRIX_LED_COUNT 87 #define WS2812_PWM_COMPLEMENTARY_OUTPUT #define WS2812_PWM_DRIVER PWMD1 diff --git a/keyboards/acheron/apollo/87h/delta/halconf.h b/keyboards/acheron/apollo/87h/delta/halconf.h index 9379352e8eb..691c0552a3f 100644 --- a/keyboards/acheron/apollo/87h/delta/halconf.h +++ b/keyboards/acheron/apollo/87h/delta/halconf.h @@ -1,4 +1,4 @@ -/* Copyright 2022 QMK +/* Copyright 2022 Gondolindrim * * 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 @@ -16,8 +16,6 @@ #pragma once -#define HAL_USE_I2C TRUE - #define HAL_USE_PWM TRUE #define HAL_USE_PAL TRUE diff --git a/keyboards/acheron/apollo/87h/delta/mcuconf.h b/keyboards/acheron/apollo/87h/delta/mcuconf.h index 29a62a94c2d..652fecfc8aa 100644 --- a/keyboards/acheron/apollo/87h/delta/mcuconf.h +++ b/keyboards/acheron/apollo/87h/delta/mcuconf.h @@ -18,9 +18,6 @@ #include_next -#undef STM32_I2C_USE_I2C1 -#define STM32_I2C_USE_I2C1 TRUE - #undef STM32_PWM_USE_ADVANCED #define STM32_PWM_USE_ADVANCED TRUE diff --git a/keyboards/acheron/apollo/87h/delta/rules.mk b/keyboards/acheron/apollo/87h/delta/rules.mk index c5194254080..814a3f15f03 100644 --- a/keyboards/acheron/apollo/87h/delta/rules.mk +++ b/keyboards/acheron/apollo/87h/delta/rules.mk @@ -19,7 +19,8 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output RGB_MATRIX_ENABLE = yes RGB_MATRIX_DRIVER = WS2812 -EEPROM_DRIVER = i2c +EEPROM_DRIVER = wear_leveling +WEAR_LEVELING_DRIVER = legacy # Enter lower-power sleep mode when on the ChibiOS idle thread OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE -DDEBUG_EEPROM_OUTPUT=TRUE diff --git a/keyboards/acheron/apollo/87h/gamma/config.h b/keyboards/acheron/apollo/87h/gamma/config.h index 89f9a85d24b..7adcf7a75bb 100644 --- a/keyboards/acheron/apollo/87h/gamma/config.h +++ b/keyboards/acheron/apollo/87h/gamma/config.h @@ -38,10 +38,6 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -#define EEPROM_I2C_24LC256 -//#define I2C1_CLOCK_SPEED 400000 -//#define I2C1_DUTY_CYCLE FAST_DUTY_CYCLE_2 - #define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE // RGB Matrix defines @@ -49,8 +45,8 @@ along with this program. If not, see . #define DRIVER_COUNT 1 #define DRIVER_1_LED_TOTAL 87 -#define DRIVER_LED_TOTAL DRIVER_1_LED_TOTAL -#define ISSI_DRIVER_TOTAL DRIVER_LED_TOTAL +#define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL +#define ISSI_DRIVER_TOTAL RGB_MATRIX_LED_COUNT #define RGB_MATRIX_STARTUP_VAL 80 #define RGB_MATRIX_FRAMEBUFFER_EFFECTS diff --git a/keyboards/acheron/apollo/87h/gamma/gamma.c b/keyboards/acheron/apollo/87h/gamma/gamma.c index 72182d4f2a2..89eed483c10 100644 --- a/keyboards/acheron/apollo/87h/gamma/gamma.c +++ b/keyboards/acheron/apollo/87h/gamma/gamma.c @@ -17,13 +17,8 @@ along with this program. If not, see . #include "gamma.h" -void board_init(void) { - setPinInput(B9); - setPinInput(B10); -} - #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location @@ -126,7 +121,6 @@ const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { }; - led_config_t g_led_config = { { { 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14 , 15 }, { 16 , 17 , 18 , 19 , 20 , 21 , 22 , 23 , 24 , 25 , 26 , 27 , 28 , 29 , 30 , 31 }, diff --git a/keyboards/acheron/apollo/87h/gamma/halconf.h b/keyboards/acheron/apollo/87h/gamma/halconf.h index 957fe10f42d..2e098f5113d 100644 --- a/keyboards/acheron/apollo/87h/gamma/halconf.h +++ b/keyboards/acheron/apollo/87h/gamma/halconf.h @@ -18,7 +18,4 @@ #define HAL_USE_I2C TRUE -// #define HAL_USE_PWM TRUE -// #define HAL_USE_PAL TRUE - #include_next diff --git a/keyboards/acheron/apollo/87h/gamma/mcuconf.h b/keyboards/acheron/apollo/87h/gamma/mcuconf.h index 0113e713784..9cf24d5bcdc 100644 --- a/keyboards/acheron/apollo/87h/gamma/mcuconf.h +++ b/keyboards/acheron/apollo/87h/gamma/mcuconf.h @@ -20,9 +20,3 @@ #undef STM32_I2C_USE_I2C1 #define STM32_I2C_USE_I2C1 TRUE - -// #undef STM32_PWM_USE_ADVANCED -// #define STM32_PWM_USE_ADVANCED TRUE - -// #undef STM32_PWM_USE_TIM1 -// #define STM32_PWM_USE_TIM1 TRUE diff --git a/keyboards/acheron/apollo/87h/gamma/rules.mk b/keyboards/acheron/apollo/87h/gamma/rules.mk index 4ba14045bbb..c05ab3c41ab 100644 --- a/keyboards/acheron/apollo/87h/gamma/rules.mk +++ b/keyboards/acheron/apollo/87h/gamma/rules.mk @@ -20,7 +20,8 @@ AUDIO_ENABLE = no # Audio output RGB_MATRIX_ENABLE = yes RGB_MATRIX_DRIVER = IS31FL3741 KEYBOARD_SHARED_EP = yes -EEPROM_DRIVER = i2c +EEPROM_DRIVER = wear_leveling +WEAR_LEVELING_DRIVER = legacy # Enter lower-power sleep mode when on the ChibiOS idle thread OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE -DDEBUG_EEPROM_OUTPUT=TRUE diff --git a/keyboards/acheron/apollo/87htsc/config.h b/keyboards/acheron/apollo/87htsc/config.h index 30021a51b95..7e2060ab2d9 100644 --- a/keyboards/acheron/apollo/87htsc/config.h +++ b/keyboards/acheron/apollo/87htsc/config.h @@ -41,7 +41,7 @@ along with this program. If not, see . #define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE #define RGB_DI_PIN B15 -#define DRIVER_LED_TOTAL 86 +#define RGB_MATRIX_LED_COUNT 86 #define WS2812_PWM_COMPLEMENTARY_OUTPUT #define WS2812_PWM_DRIVER PWMD1 diff --git a/keyboards/acheron/apollo/87htsc/halconf.h b/keyboards/acheron/apollo/87htsc/halconf.h index 9379352e8eb..09240969ab4 100644 --- a/keyboards/acheron/apollo/87htsc/halconf.h +++ b/keyboards/acheron/apollo/87htsc/halconf.h @@ -16,8 +16,6 @@ #pragma once -#define HAL_USE_I2C TRUE - #define HAL_USE_PWM TRUE #define HAL_USE_PAL TRUE diff --git a/keyboards/acheron/apollo/87htsc/mcuconf.h b/keyboards/acheron/apollo/87htsc/mcuconf.h index 29a62a94c2d..652fecfc8aa 100644 --- a/keyboards/acheron/apollo/87htsc/mcuconf.h +++ b/keyboards/acheron/apollo/87htsc/mcuconf.h @@ -18,9 +18,6 @@ #include_next -#undef STM32_I2C_USE_I2C1 -#define STM32_I2C_USE_I2C1 TRUE - #undef STM32_PWM_USE_ADVANCED #define STM32_PWM_USE_ADVANCED TRUE diff --git a/keyboards/acheron/apollo/87htsc/rules.mk b/keyboards/acheron/apollo/87htsc/rules.mk index 696b5299192..f2becf4db45 100644 --- a/keyboards/acheron/apollo/87htsc/rules.mk +++ b/keyboards/acheron/apollo/87htsc/rules.mk @@ -19,5 +19,8 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output RGB_MATRIX_ENABLE = yes RGB_MATRIX_DRIVER = WS2812 + +EEPROM_DRIVER = wear_leveling +WEAR_LEVELING_DRIVER = legacy # Enter lower-power sleep mode when on the ChibiOS idle thread OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE -DDEBUG_EEPROM_OUTPUT=TRUE diff --git a/keyboards/acheron/apollo/88htsc/88htsc.c b/keyboards/acheron/apollo/88htsc/88htsc.c index 88e0815b3fd..574e1829de1 100644 --- a/keyboards/acheron/apollo/88htsc/88htsc.c +++ b/keyboards/acheron/apollo/88htsc/88htsc.c @@ -17,11 +17,6 @@ along with this program. If not, see . #include "88htsc.h" -void board_init(void) { - setPinInput(B9); - setPinInput(B10); -} - led_config_t g_led_config = { { { 16 , 15 , 14 , 13 , 12 , 11 , 10 , 9 , 8 , 7 , 6 , 5 , 4 , 3 , 2 , 1 , 0 }, { 17 , 18 , 19 , 20 , 21 , 22 , 23 , 24 , 25 , 26 , 27 , 28 , 29 , 30 , 31 , 32 , 33 }, diff --git a/keyboards/acheron/apollo/88htsc/config.h b/keyboards/acheron/apollo/88htsc/config.h index 5df3628db2e..8f6e3a87db8 100644 --- a/keyboards/acheron/apollo/88htsc/config.h +++ b/keyboards/acheron/apollo/88htsc/config.h @@ -41,7 +41,7 @@ along with this program. If not, see . #define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE #define RGB_DI_PIN B15 -#define DRIVER_LED_TOTAL 87 +#define RGB_MATRIX_LED_COUNT 87 #define WS2812_PWM_COMPLEMENTARY_OUTPUT #define WS2812_PWM_DRIVER PWMD1 diff --git a/keyboards/acheron/apollo/88htsc/halconf.h b/keyboards/acheron/apollo/88htsc/halconf.h index 9379352e8eb..09240969ab4 100644 --- a/keyboards/acheron/apollo/88htsc/halconf.h +++ b/keyboards/acheron/apollo/88htsc/halconf.h @@ -16,8 +16,6 @@ #pragma once -#define HAL_USE_I2C TRUE - #define HAL_USE_PWM TRUE #define HAL_USE_PAL TRUE diff --git a/keyboards/acheron/apollo/88htsc/mcuconf.h b/keyboards/acheron/apollo/88htsc/mcuconf.h index 29a62a94c2d..652fecfc8aa 100644 --- a/keyboards/acheron/apollo/88htsc/mcuconf.h +++ b/keyboards/acheron/apollo/88htsc/mcuconf.h @@ -18,9 +18,6 @@ #include_next -#undef STM32_I2C_USE_I2C1 -#define STM32_I2C_USE_I2C1 TRUE - #undef STM32_PWM_USE_ADVANCED #define STM32_PWM_USE_ADVANCED TRUE diff --git a/keyboards/acheron/apollo/88htsc/rules.mk b/keyboards/acheron/apollo/88htsc/rules.mk index c5194254080..18e8b33b071 100644 --- a/keyboards/acheron/apollo/88htsc/rules.mk +++ b/keyboards/acheron/apollo/88htsc/rules.mk @@ -19,7 +19,9 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output RGB_MATRIX_ENABLE = yes RGB_MATRIX_DRIVER = WS2812 -EEPROM_DRIVER = i2c + +EEPROM_DRIVER = wear_leveling +WEAR_LEVELING_DRIVER = legacy # Enter lower-power sleep mode when on the ChibiOS idle thread OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE -DDEBUG_EEPROM_OUTPUT=TRUE diff --git a/keyboards/adafruit/macropad/config.h b/keyboards/adafruit/macropad/config.h index cc4cbc940cb..568020eec8f 100644 --- a/keyboards/adafruit/macropad/config.h +++ b/keyboards/adafruit/macropad/config.h @@ -78,7 +78,7 @@ /* RGB Defines */ # define RGB_DI_PIN GP19 -# define DRIVER_LED_TOTAL 12 +# define RGB_MATRIX_LED_COUNT 12 # define RGBLED_NUM 12 /* Enable Framebuffer and keypress effects */ diff --git a/keyboards/adm42/rev4/config.h b/keyboards/adm42/rev4/config.h index ca42185f4e2..2a8f9927cdd 100644 --- a/keyboards/adm42/rev4/config.h +++ b/keyboards/adm42/rev4/config.h @@ -21,9 +21,8 @@ #define RGB_DI_PIN B7 -#define DRIVER_LED_TOTAL 42 +#define RGB_MATRIX_LED_COUNT 42 #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 170 -#define RGB_MATRIX_CENTER { 112, 32 } #define RGB_DISABLE_WHEN_USB_SUSPENDED #define RGB_MATRIX_LED_PROCESS_LIMIT 21 #define RGB_MATRIX_LED_FLUSH_LIMIT 16 diff --git a/keyboards/aleblazer/zodiark/config.h b/keyboards/aleblazer/zodiark/config.h index 2958e8daed9..25d6912db2c 100644 --- a/keyboards/aleblazer/zodiark/config.h +++ b/keyboards/aleblazer/zodiark/config.h @@ -53,7 +53,7 @@ along with this program. If not, see . #endif #ifdef RGB_MATRIX_ENABLE -#define DRIVER_LED_TOTAL 68 +#define RGB_MATRIX_LED_COUNT 68 #define RGB_MATRIX_SPLIT { 34, 34 } #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 // limits maximum brightness of LEDs to 150 out of 255. Higher may cause the controller to crash. #define RGB_MATRIX_KEYPRESSES diff --git a/keyboards/an_achronism/tetromino/config.h b/keyboards/an_achronism/tetromino/config.h index 6208224465d..e543d7ae241 100644 --- a/keyboards/an_achronism/tetromino/config.h +++ b/keyboards/an_achronism/tetromino/config.h @@ -17,7 +17,7 @@ along with this program. If not, see . #pragma once #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET -#define DRIVER_LED_TOTAL 70 +#define RGB_MATRIX_LED_COUNT 70 /* disable debug print */ //#define NO_DEBUG diff --git a/keyboards/annepro2/config_led.h b/keyboards/annepro2/config_led.h index 19a1dd4baa9..e6d4dc35fba 100644 --- a/keyboards/annepro2/config_led.h +++ b/keyboards/annepro2/config_led.h @@ -18,7 +18,7 @@ #ifdef RGB_MATRIX_ENABLE -#define DRIVER_LED_TOTAL 61 +#define RGB_MATRIX_LED_COUNT 61 /* Limit animations to 62.5 FPS to avoid tearing. (1/.016 = 62.5 FPS). */ #define RGB_MATRIX_LED_FLUSH_LIMIT 16 diff --git a/keyboards/annepro2/rgb_driver.c b/keyboards/annepro2/rgb_driver.c index 1040e89f987..f1d2a3cd139 100644 --- a/keyboards/annepro2/rgb_driver.c +++ b/keyboards/annepro2/rgb_driver.c @@ -19,7 +19,7 @@ #include "rgb_matrix.h" #include "ap2_led.h" -uint8_t led_pos[DRIVER_LED_TOTAL]; +uint8_t led_pos[RGB_MATRIX_LED_COUNT]; void init(void) { unsigned int i = 0; @@ -52,7 +52,7 @@ void set_color(int index, uint8_t r, uint8_t g, uint8_t b) { } void set_color_all(uint8_t r, uint8_t g, uint8_t b) { - for (int i=0; i. # define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended # define DRIVER_ADDR_1 0b1010000 # define DRIVER_COUNT 1 -# define DRIVER_LED_TOTAL 64 +# define RGB_MATRIX_LED_COUNT 64 #endif /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ diff --git a/keyboards/axolstudio/yeti/hotswap/hotswap.c b/keyboards/axolstudio/yeti/hotswap/hotswap.c index f6d0bc70199..a8ccf7fc439 100644 --- a/keyboards/axolstudio/yeti/hotswap/hotswap.c +++ b/keyboards/axolstudio/yeti/hotswap/hotswap.c @@ -17,7 +17,7 @@ #include "hotswap.h" #ifdef RGB_MATRIX_ENABLE -const is31_led g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led g_is31_leds[RGB_MATRIX_LED_COUNT] = { { 0, B_1, A_1, C_1 }, { 0, B_2, A_2, C_2 }, { 0, B_3, A_3, C_3 }, diff --git a/keyboards/bandominedoni/config.h b/keyboards/bandominedoni/config.h index 17f5675f607..ba3a157cedc 100644 --- a/keyboards/bandominedoni/config.h +++ b/keyboards/bandominedoni/config.h @@ -91,7 +91,7 @@ #ifdef RGB_MATRIX_ENABLE /* ws2812 RGB MATRIX */ -# define DRIVER_LED_TOTAL 76 +# define RGB_MATRIX_LED_COUNT 76 // reacts to keypresses # define RGB_MATRIX_KEYPRESSES diff --git a/keyboards/basekeys/trifecta/config.h b/keyboards/basekeys/trifecta/config.h index 753e3d5a414..4d71a3ea532 100644 --- a/keyboards/basekeys/trifecta/config.h +++ b/keyboards/basekeys/trifecta/config.h @@ -36,7 +36,7 @@ #define RGB_DI_PIN E6 -#define DRIVER_LED_TOTAL 80 +#define RGB_MATRIX_LED_COUNT 80 /* RGB LED */ #ifdef RGBLIGHT_ENABLE @@ -75,7 +75,7 @@ // # define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects //# define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended # define RGB_MATRIX_FRAMEBUFFER_EFFECTS -# define RGB_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) +# define RGB_MATRIX_LED_PROCESS_LIMIT (RGB_MATRIX_LED_COUNT + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) # define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness) # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 // limits maximum brightness of LEDs to 150 out of 255. Higher may cause the controller to crash. # define RGB_MATRIX_HUE_STEP 8 diff --git a/keyboards/bastardkb/charybdis/3x5/config.h b/keyboards/bastardkb/charybdis/3x5/config.h index 6e3b8a7124b..1368bce35bc 100644 --- a/keyboards/bastardkb/charybdis/3x5/config.h +++ b/keyboards/bastardkb/charybdis/3x5/config.h @@ -38,7 +38,7 @@ /* RGB matrix support. */ #ifdef RGB_MATRIX_ENABLE # define SPLIT_TRANSPORT_MIRROR -# define DRIVER_LED_TOTAL RGBLED_NUM +# define RGB_MATRIX_LED_COUNT RGBLED_NUM # define RGB_MATRIX_SPLIT RGBLED_SPLIT # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 50 # define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS diff --git a/keyboards/bastardkb/charybdis/3x6/config.h b/keyboards/bastardkb/charybdis/3x6/config.h index 6b31a773fc6..bf915b4faf9 100644 --- a/keyboards/bastardkb/charybdis/3x6/config.h +++ b/keyboards/bastardkb/charybdis/3x6/config.h @@ -40,7 +40,7 @@ /* RGB matrix support. */ #ifdef RGB_MATRIX_ENABLE # define SPLIT_TRANSPORT_MIRROR -# define DRIVER_LED_TOTAL RGBLED_NUM +# define RGB_MATRIX_LED_COUNT RGBLED_NUM # define RGB_MATRIX_SPLIT RGBLED_SPLIT # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 50 # define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS diff --git a/keyboards/bastardkb/charybdis/4x6/config.h b/keyboards/bastardkb/charybdis/4x6/config.h index f557089073d..4c0f5089486 100644 --- a/keyboards/bastardkb/charybdis/4x6/config.h +++ b/keyboards/bastardkb/charybdis/4x6/config.h @@ -38,7 +38,7 @@ /* RGB matrix support. */ #ifdef RGB_MATRIX_ENABLE # define SPLIT_TRANSPORT_MIRROR -# define DRIVER_LED_TOTAL RGBLED_NUM +# define RGB_MATRIX_LED_COUNT RGBLED_NUM # define RGB_MATRIX_SPLIT RGBLED_SPLIT # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 50 # define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS diff --git a/keyboards/bastardkb/scylla/config.h b/keyboards/bastardkb/scylla/config.h index 777f99197ae..84b559a26b4 100644 --- a/keyboards/bastardkb/scylla/config.h +++ b/keyboards/bastardkb/scylla/config.h @@ -37,7 +37,7 @@ /* RGB matrix support. */ #ifdef RGB_MATRIX_ENABLE # define SPLIT_TRANSPORT_MIRROR -# define DRIVER_LED_TOTAL RGBLED_NUM +# define RGB_MATRIX_LED_COUNT RGBLED_NUM # define RGB_MATRIX_SPLIT RGBLED_SPLIT # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 50 # define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS diff --git a/keyboards/bastardkb/skeletyl/config.h b/keyboards/bastardkb/skeletyl/config.h index 8494e2bfacf..f887d8e0f07 100644 --- a/keyboards/bastardkb/skeletyl/config.h +++ b/keyboards/bastardkb/skeletyl/config.h @@ -37,7 +37,7 @@ /* RGB matrix support. */ #ifdef RGB_MATRIX_ENABLE # define SPLIT_TRANSPORT_MIRROR -# define DRIVER_LED_TOTAL RGBLED_NUM +# define RGB_MATRIX_LED_COUNT RGBLED_NUM # define RGB_MATRIX_SPLIT RGBLED_SPLIT # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 50 # define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS diff --git a/keyboards/bastardkb/tbkmini/config.h b/keyboards/bastardkb/tbkmini/config.h index 0624c4b4a6a..867f69319b2 100644 --- a/keyboards/bastardkb/tbkmini/config.h +++ b/keyboards/bastardkb/tbkmini/config.h @@ -37,7 +37,7 @@ /* RGB matrix support. */ #ifdef RGB_MATRIX_ENABLE # define SPLIT_TRANSPORT_MIRROR -# define DRIVER_LED_TOTAL RGBLED_NUM +# define RGB_MATRIX_LED_COUNT RGBLED_NUM # define RGB_MATRIX_SPLIT RGBLED_SPLIT # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 50 # define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS diff --git a/keyboards/blockboy/ac980mini/config.h b/keyboards/blockboy/ac980mini/config.h index 695daf901ac..4275ffa19e7 100644 --- a/keyboards/blockboy/ac980mini/config.h +++ b/keyboards/blockboy/ac980mini/config.h @@ -7,7 +7,7 @@ // RGB configuration #define RGB_DI_PIN B7 // The number of LEDs connected -#define DRIVER_LED_TOTAL 81 +#define RGB_MATRIX_LED_COUNT 81 //#ifdef RGB_DI_PIN # define RGBLED_NUM 81 @@ -17,7 +17,7 @@ // # define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects # define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended //# define RGB_MATRIX_FRAMEBUFFER_EFFECTS -// # define RGB_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) +// # define RGB_MATRIX_LED_PROCESS_LIMIT (RGB_MATRIX_LED_COUNT + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) // # define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness) # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 // limits maximum brightness of LEDs to 150 out of 255. Higher may cause the controller to crash. # define RGB_MATRIX_HUE_STEP 8 diff --git a/keyboards/boardsource/beiwagon/config.h b/keyboards/boardsource/beiwagon/config.h index 6ce8d2d4209..587dda73819 100644 --- a/keyboards/boardsource/beiwagon/config.h +++ b/keyboards/boardsource/beiwagon/config.h @@ -17,7 +17,7 @@ along with this program. If not, see . #pragma once #define RGB_DI_PIN C6 -#define DRIVER_LED_TOTAL 18 +#define RGB_MATRIX_LED_COUNT 18 #define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN #define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT #define ENABLE_RGB_MATRIX_BREATHING diff --git a/keyboards/boardsource/lulu/config.h b/keyboards/boardsource/lulu/config.h index 8e635a24eb1..382b1b6b3fb 100644 --- a/keyboards/boardsource/lulu/config.h +++ b/keyboards/boardsource/lulu/config.h @@ -3,7 +3,7 @@ #pragma once #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 -#define DRIVER_LED_TOTAL 70 +#define RGB_MATRIX_LED_COUNT 70 #define RGB_MATRIX_SPLIT { 35, 35 } #define ENABLE_RGB_MATRIX_ALPHAS_MODS #define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN diff --git a/keyboards/boardsource/lulu/info.json b/keyboards/boardsource/lulu/info.json index 3418cd6e7a3..8c3b03d1d29 100644 --- a/keyboards/boardsource/lulu/info.json +++ b/keyboards/boardsource/lulu/info.json @@ -36,70 +36,70 @@ { "flags": 2, "x": 17, "y": 10 }, { "flags": 2, "x": 51, "y": 10 }, { "flags": 2, "x": 86, "y": 10 }, - { "flags": 2, "x": 137, "y": 55 }, - { "flags": 2, "x": 172, "y": 55 }, - { "flags": 2, "x": 206, "y": 40 }, - { "flags": 2, "x": 206, "y": 10 }, - { "flags": 2, "x": 172, "y": 10 }, - { "flags": 2, "x": 137, "y": 10 }, - { "flags": 1, "matrix": [0, 0], "x": 0, "y": 0 }, - { "flags": 4, "matrix": [0, 1], "x": 17, "y": 0 }, - { "flags": 4, "matrix": [0, 2], "x": 34, "y": 0 }, - { "flags": 4, "matrix": [0, 3], "x": 51, "y": 0 }, - { "flags": 4, "matrix": [0, 4], "x": 68, "y": 0 }, { "flags": 4, "matrix": [0, 5], "x": 86, "y": 0 }, - { "flags": 4, "matrix": [5, 5], "x": 137, "y": 0 }, - { "flags": 4, "matrix": [5, 4], "x": 155, "y": 0 }, - { "flags": 4, "matrix": [5, 3], "x": 172, "y": 0 }, - { "flags": 4, "matrix": [5, 2], "x": 189, "y": 0 }, - { "flags": 4, "matrix": [5, 1], "x": 206, "y": 0 }, - { "flags": 1, "matrix": [5, 0], "x": 224, "y": 0 }, + { "flags": 4, "matrix": [0, 4], "x": 68, "y": 0 }, + { "flags": 4, "matrix": [0, 3], "x": 51, "y": 0 }, + { "flags": 4, "matrix": [0, 2], "x": 34, "y": 0 }, + { "flags": 4, "matrix": [0, 1], "x": 17, "y": 0 }, + { "flags": 1, "matrix": [0, 0], "x": 0, "y": 0 }, { "flags": 1, "matrix": [1, 0], "x": 0, "y": 16 }, { "flags": 4, "matrix": [1, 1], "x": 17, "y": 16 }, { "flags": 4, "matrix": [1, 2], "x": 34, "y": 16 }, { "flags": 4, "matrix": [1, 3], "x": 51, "y": 16 }, { "flags": 4, "matrix": [1, 4], "x": 68, "y": 16 }, { "flags": 4, "matrix": [1, 5], "x": 86, "y": 16 }, - { "flags": 4, "matrix": [6, 5], "x": 137, "y": 16 }, - { "flags": 4, "matrix": [6, 4], "x": 155, "y": 16 }, - { "flags": 4, "matrix": [6, 3], "x": 172, "y": 16 }, - { "flags": 4, "matrix": [6, 2], "x": 189, "y": 16 }, - { "flags": 4, "matrix": [6, 1], "x": 206, "y": 16 }, - { "flags": 1, "matrix": [6, 4], "x": 224, "y": 16 }, - { "flags": 1, "matrix": [2, 0], "x": 0, "y": 32 }, - { "flags": 4, "matrix": [2, 1], "x": 17, "y": 32 }, - { "flags": 4, "matrix": [2, 2], "x": 34, "y": 32 }, - { "flags": 4, "matrix": [2, 3], "x": 51, "y": 32 }, - { "flags": 4, "matrix": [2, 4], "x": 68, "y": 32 }, { "flags": 4, "matrix": [2, 5], "x": 86, "y": 32 }, - { "flags": 4, "matrix": [7, 5], "x": 137, "y": 32 }, - { "flags": 4, "matrix": [7, 4], "x": 155, "y": 32 }, - { "flags": 4, "matrix": [7, 3], "x": 172, "y": 32 }, - { "flags": 4, "matrix": [7, 2], "x": 189, "y": 32 }, - { "flags": 4, "matrix": [7, 1], "x": 206, "y": 32 }, - { "flags": 1, "matrix": [7, 4], "x": 224, "y": 32 }, + { "flags": 4, "matrix": [2, 4], "x": 68, "y": 32 }, + { "flags": 4, "matrix": [2, 3], "x": 51, "y": 32 }, + { "flags": 4, "matrix": [2, 2], "x": 34, "y": 32 }, + { "flags": 4, "matrix": [2, 1], "x": 17, "y": 32 }, + { "flags": 1, "matrix": [2, 0], "x": 0, "y": 32 }, { "flags": 1, "matrix": [3, 0], "x": 0, "y": 48 }, { "flags": 4, "matrix": [3, 1], "x": 17, "y": 48 }, { "flags": 4, "matrix": [3, 2], "x": 34, "y": 48 }, { "flags": 4, "matrix": [3, 3], "x": 51, "y": 48 }, { "flags": 4, "matrix": [3, 4], "x": 68, "y": 48 }, { "flags": 4, "matrix": [3, 5], "x": 86, "y": 48 }, - { "flags": 4, "matrix": [4, 5], "x": 103, "y": 48 }, - { "flags": 4, "matrix": [9, 5], "x": 120, "y": 48 }, - { "flags": 4, "matrix": [8, 5], "x": 137, "y": 48 }, - { "flags": 4, "matrix": [8, 4], "x": 155, "y": 48 }, - { "flags": 4, "matrix": [8, 3], "x": 172, "y": 48 }, - { "flags": 4, "matrix": [8, 2], "x": 189, "y": 48 }, + { "flags": 4, "matrix": [4, 5], "x": 103, "y": 40 }, + { "flags": 1, "matrix": [4, 4], "x": 96, "y": 64 }, + { "flags": 1, "matrix": [4, 3], "x": 77, "y": 64 }, + { "flags": 1, "matrix": [4, 2], "x": 60, "y": 64 }, + { "flags": 1, "matrix": [4, 1], "x": 43, "y": 64 }, + { "flags": 2, "x": 137, "y": 55 }, + { "flags": 2, "x": 172, "y": 55 }, + { "flags": 2, "x": 206, "y": 40 }, + { "flags": 2, "x": 206, "y": 10 }, + { "flags": 2, "x": 172, "y": 10 }, + { "flags": 2, "x": 137, "y": 10 }, + { "flags": 4, "matrix": [5, 5], "x": 137, "y": 0 }, + { "flags": 4, "matrix": [5, 4], "x": 155, "y": 0 }, + { "flags": 4, "matrix": [5, 3], "x": 172, "y": 0 }, + { "flags": 4, "matrix": [5, 2], "x": 189, "y": 0 }, + { "flags": 4, "matrix": [5, 1], "x": 206, "y": 0 }, + { "flags": 1, "matrix": [5, 0], "x": 224, "y": 0 }, + { "flags": 1, "matrix": [6, 0], "x": 224, "y": 16 }, + { "flags": 4, "matrix": [6, 1], "x": 206, "y": 16 }, + { "flags": 4, "matrix": [6, 2], "x": 189, "y": 16 }, + { "flags": 4, "matrix": [6, 3], "x": 172, "y": 16 }, + { "flags": 4, "matrix": [6, 4], "x": 155, "y": 16 }, + { "flags": 4, "matrix": [6, 5], "x": 137, "y": 16 }, + { "flags": 4, "matrix": [7, 5], "x": 137, "y": 32 }, + { "flags": 4, "matrix": [7, 4], "x": 155, "y": 32 }, + { "flags": 4, "matrix": [7, 3], "x": 172, "y": 32 }, + { "flags": 4, "matrix": [7, 2], "x": 189, "y": 32 }, + { "flags": 4, "matrix": [7, 1], "x": 206, "y": 32 }, + { "flags": 1, "matrix": [7, 0], "x": 224, "y": 32 }, + { "flags": 1, "matrix": [8, 0], "x": 224, "y": 48 }, { "flags": 4, "matrix": [8, 1], "x": 206, "y": 48 }, - { "flags": 1, "matrix": [8, 4], "x": 224, "y": 48 }, - { "flags": 1, "matrix": [4, 1], "x": 34, "y": 64 }, - { "flags": 1, "matrix": [4, 2], "x": 51, "y": 64 }, - { "flags": 1, "matrix": [4, 3], "x": 68, "y": 64 }, - { "flags": 1, "matrix": [4, 4], "x": 86, "y": 64 }, - { "flags": 1, "matrix": [9, 4], "x": 137, "y": 64 }, - { "flags": 1, "matrix": [9, 3], "x": 155, "y": 64 }, - { "flags": 1, "matrix": [9, 2], "x": 172, "y": 64 }, - { "flags": 1, "matrix": [9, 1], "x": 189, "y": 64 } + { "flags": 4, "matrix": [8, 2], "x": 189, "y": 48 }, + { "flags": 4, "matrix": [8, 3], "x": 172, "y": 48 }, + { "flags": 4, "matrix": [8, 4], "x": 155, "y": 48 }, + { "flags": 4, "matrix": [8, 5], "x": 137, "y": 48 }, + { "flags": 4, "matrix": [9, 5], "x": 120, "y": 40 }, + { "flags": 1, "matrix": [9, 4], "x": 127, "y": 64 }, + { "flags": 1, "matrix": [9, 3], "x": 146, "y": 64 }, + { "flags": 1, "matrix": [9, 2], "x": 163, "y": 64 }, + { "flags": 1, "matrix": [9, 1], "x": 180, "y": 64 } ] }, "layouts": { diff --git a/keyboards/boardsource/microdox/v2/config.h b/keyboards/boardsource/microdox/v2/config.h index e6a7ddc16b6..4846bf51462 100644 --- a/keyboards/boardsource/microdox/v2/config.h +++ b/keyboards/boardsource/microdox/v2/config.h @@ -4,7 +4,7 @@ #define RGB_DI_PIN B5 #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 -#define DRIVER_LED_TOTAL 44 +#define RGB_MATRIX_LED_COUNT 44 #define RGB_MATRIX_SPLIT { 22, 22 } #define RGB_DISABLE_WHEN_USB_SUSPENDED #define ENABLE_RGB_MATRIX_ALPHAS_MODS diff --git a/keyboards/boardsource/technik_o/config.h b/keyboards/boardsource/technik_o/config.h index bbaacd33c4e..c6edbf1c4e0 100644 --- a/keyboards/boardsource/technik_o/config.h +++ b/keyboards/boardsource/technik_o/config.h @@ -18,7 +18,7 @@ along with this program. If not, see . #pragma once #define RGB_DI_PIN C6 #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 120 -#define DRIVER_LED_TOTAL 58 +#define RGB_MATRIX_LED_COUNT 58 #define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN #define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT #define ENABLE_RGB_MATRIX_BREATHING diff --git a/keyboards/boardsource/technik_s/config.h b/keyboards/boardsource/technik_s/config.h index 2141a2a0a9b..ab4d79147c8 100644 --- a/keyboards/boardsource/technik_s/config.h +++ b/keyboards/boardsource/technik_s/config.h @@ -18,7 +18,7 @@ along with this program. If not, see . #pragma once #define RGB_DI_PIN C6 #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 120 -#define DRIVER_LED_TOTAL 55 +#define RGB_MATRIX_LED_COUNT 55 #define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN #define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT #define ENABLE_RGB_MATRIX_BREATHING diff --git a/keyboards/boardsource/the_mark/config.h b/keyboards/boardsource/the_mark/config.h index 61628e18211..6d9c9642de6 100644 --- a/keyboards/boardsource/the_mark/config.h +++ b/keyboards/boardsource/the_mark/config.h @@ -17,7 +17,7 @@ along with this program. If not, see . #pragma once #ifdef RGB_MATRIX_ENABLE -# define DRIVER_LED_TOTAL 24 +# define RGB_MATRIX_LED_COUNT 24 # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 # define RGB_DISABLE_WHEN_USB_SUSPENDED # define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN diff --git a/keyboards/boston_meetup/2019/config.h b/keyboards/boston_meetup/2019/config.h index 7429845958e..f69e5f953f9 100644 --- a/keyboards/boston_meetup/2019/config.h +++ b/keyboards/boston_meetup/2019/config.h @@ -155,7 +155,7 @@ #define RGBLED_NUM 10 #define RGB_DI_PIN B5 -#define DRIVER_LED_TOTAL RGBLED_NUM +#define RGB_MATRIX_LED_COUNT RGBLED_NUM #define RGB_MATRIX_KEYPRESSES diff --git a/keyboards/canary/canary60rgb/canary60rgb.c b/keyboards/canary/canary60rgb/canary60rgb.c index b37a88b32f0..c6aca130324 100644 --- a/keyboards/canary/canary60rgb/canary60rgb.c +++ b/keyboards/canary/canary60rgb/canary60rgb.c @@ -16,7 +16,7 @@ #include "canary60rgb.h" #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { { 0, J_14, K_14, L_14 }, { 0, J_13, K_13, L_13 }, { 0, J_12, K_12, L_12 }, diff --git a/keyboards/canary/canary60rgb/v1/config.h b/keyboards/canary/canary60rgb/v1/config.h index 8d3150a5d9f..186cf189aed 100644 --- a/keyboards/canary/canary60rgb/v1/config.h +++ b/keyboards/canary/canary60rgb/v1/config.h @@ -78,5 +78,5 @@ # define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH # define DRIVER_ADDR_1 0b1010000 # define DRIVER_COUNT 1 -# define DRIVER_LED_TOTAL 63 +# define RGB_MATRIX_LED_COUNT 63 #endif diff --git a/keyboards/cannonkeys/moment_hs/info.json b/keyboards/cannonkeys/moment_hs/info.json new file mode 100644 index 00000000000..721eb80ad26 --- /dev/null +++ b/keyboards/cannonkeys/moment_hs/info.json @@ -0,0 +1,98 @@ +{ + "manufacturer": "CannonKeys", + "keyboard_name": "Moment HS", + "maintainer": "awkannan", + "bootloader": "stm32-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["B11", "B10", "B2", "A9", "A15", "B3", "B4", "B5", "B6", "B7", "B8", "B9", "C13", "C14", "C15"], + "rows": ["B1", "B0", "A7", "A5", "A4"] + }, + "indicators": { + "caps_lock": "A3", + "on_state": 0 + }, + "processor": "STM32F072", + "url": "https://cannonkeys.com/", + "usb": { + "device_version": "1.0.0", + "vid": "0xCA04", + "pid": "0x0013" + }, + "layouts": { + "LAYOUT_all": { + "layout": [ + { "label": "Esc", "matrix": [0, 0], "x": 0.0, "y": 0.0 }, + { "label": "!", "matrix": [0, 1], "x": 1.0, "y": 0.0 }, + { "label": "@", "matrix": [0, 2], "x": 2.0, "y": 0.0 }, + { "label": "#", "matrix": [0, 3], "x": 3.0, "y": 0.0 }, + { "label": "$", "matrix": [0, 4], "x": 4.0, "y": 0.0 }, + { "label": "%", "matrix": [0, 5], "x": 5.0, "y": 0.0 }, + { "label": "^", "matrix": [0, 6], "x": 6.0, "y": 0.0 }, + { "label": "&", "matrix": [0, 7], "x": 7.0, "y": 0.0 }, + { "label": "*", "matrix": [0, 8], "x": 8.0, "y": 0.0 }, + { "label": "(", "matrix": [0, 9], "x": 9.0, "y": 0.0 }, + { "label": ")", "matrix": [0, 10], "x": 10.0, "y": 0.0 }, + { "label": "_", "matrix": [0, 11], "x": 11.0, "y": 0.0 }, + { "label": "+", "matrix": [0, 12], "x": 12.0, "y": 0.0 }, + { "label": "Bksp", "matrix": [0, 14], "x": 13.0, "y": 0.0 }, + { "label": "Del", "matrix": [0, 13], "x": 14.0, "y": 0.0 }, + { "label": "Tab", "matrix": [1, 0], "w": 1.5, "x": 0.0, "y": 1.0 }, + { "label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1.0 }, + { "label": "W", "matrix": [1, 2], "x": 2.5, "y": 1.0 }, + { "label": "E", "matrix": [1, 3], "x": 3.5, "y": 1.0 }, + { "label": "R", "matrix": [1, 4], "x": 4.5, "y": 1.0 }, + { "label": "T", "matrix": [1, 5], "x": 5.5, "y": 1.0 }, + { "label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1.0 }, + { "label": "U", "matrix": [1, 7], "x": 7.5, "y": 1.0 }, + { "label": "I", "matrix": [1, 8], "x": 8.5, "y": 1.0 }, + { "label": "O", "matrix": [1, 9], "x": 9.5, "y": 1.0 }, + { "label": "P", "matrix": [1, 10], "x": 10.5, "y": 1.0 }, + { "label": "{", "matrix": [1, 11], "x": 11.5, "y": 1.0 }, + { "label": "}", "matrix": [1, 12], "x": 12.5, "y": 1.0 }, + { "label": "|", "matrix": [1, 14], "w": 1.5, "x": 13.5, "y": 1.0 }, + { "label": "Caps Lock", "matrix": [2, 0], "w": 1.75, "x": 0.0, "y": 2.0 }, + { "label": "A", "matrix": [2, 1], "x": 1.75, "y": 2.0 }, + { "label": "S", "matrix": [2, 2], "x": 2.75, "y": 2.0 }, + { "label": "D", "matrix": [2, 3], "x": 3.75, "y": 2.0 }, + { "label": "F", "matrix": [2, 4], "x": 4.75, "y": 2.0 }, + { "label": "G", "matrix": [2, 5], "x": 5.75, "y": 2.0 }, + { "label": "H", "matrix": [2, 6], "x": 6.75, "y": 2.0 }, + { "label": "J", "matrix": [2, 7], "x": 7.75, "y": 2.0 }, + { "label": "K", "matrix": [2, 8], "x": 8.75, "y": 2.0 }, + { "label": "L", "matrix": [2, 9], "x": 9.75, "y": 2.0 }, + { "label": ":", "matrix": [2, 10], "x": 10.75, "y": 2.0 }, + { "label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2.0 }, + { "label": "Enter", "matrix": [2, 14], "w": 2.25, "x": 12.75, "y": 2.0 }, + { "label": "Shift", "matrix": [3, 0], "w": 2.25, "x": 0.0, "y": 3.0 }, + { "label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3.0 }, + { "label": "X", "matrix": [3, 3], "x": 3.25, "y": 3.0 }, + { "label": "C", "matrix": [3, 4], "x": 4.25, "y": 3.0 }, + { "label": "V", "matrix": [3, 5], "x": 5.25, "y": 3.0 }, + { "label": "B", "matrix": [3, 6], "x": 6.25, "y": 3.0 }, + { "label": "N", "matrix": [3, 7], "x": 7.25, "y": 3.0 }, + { "label": "M", "matrix": [3, 8], "x": 8.25, "y": 3.0 }, + { "label": "<", "matrix": [3, 9], "x": 9.25, "y": 3.0 }, + { "label": ">", "matrix": [3, 10], "x": 10.25, "y": 3.0 }, + { "label": "?", "matrix": [3, 11], "x": 11.25, "y": 3.0 }, + { "label": "Shift", "matrix": [3, 12], "w": 1.75, "x": 12.25, "y": 3.0 }, + { "label": "Fn", "matrix": [3, 14], "x": 14.0, "y": 3.0 }, + { "label": "Ctrl", "matrix": [4, 0], "w": 1.5, "x": 0.0, "y": 4.0 }, + { "label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4.0 }, + { "label": "Alt", "matrix": [4, 2], "w": 1.5, "x": 2.5, "y": 4.0 }, + { "matrix": [4, 6], "w": 7.0, "x": 4.0, "y": 4.0 }, + { "label": "Alt", "matrix": [4, 11], "w": 1.5, "x": 11.0, "y": 4.0 }, + { "label": "Win", "matrix": [4, 12], "x": 12.5, "y": 4.0 }, + { "label": "Menu", "matrix": [4, 14], "w": 1.5, "x": 13.5, "y": 4.0 } + ] + } + } +} diff --git a/keyboards/cannonkeys/moment_hs/keymaps/default/keymap.c b/keyboards/cannonkeys/moment_hs/keymaps/default/keymap.c new file mode 100644 index 00000000000..daab0435071 --- /dev/null +++ b/keyboards/cannonkeys/moment_hs/keymaps/default/keymap.c @@ -0,0 +1,45 @@ +// Copyright 2022 Andrew Kannan (@awkannan) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +enum layer_names { + _BASE, + _FN1, + _FN2, + _FN3 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_all( + KC_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_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_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL + ), + + [_FN1] = 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_DEL, KC_DEL, + RGB_TOG, RGB_MOD, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + BL_BRTG, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, + BL_INC, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, RESET + ), + + [_FN2] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______ + ), + + [_FN3] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/cannonkeys/moment_hs/keymaps/via/keymap.c b/keyboards/cannonkeys/moment_hs/keymaps/via/keymap.c new file mode 100644 index 00000000000..be5d800341f --- /dev/null +++ b/keyboards/cannonkeys/moment_hs/keymaps/via/keymap.c @@ -0,0 +1,45 @@ +// Copyright 2022 Andrew Kannan (@awkannan) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +enum layer_names { + _BASE, + _FN1, + _FN2, + _FN3 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_all( + KC_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_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_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL + ), + + [_FN1] = 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_DEL, KC_DEL, + _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, RESET + ), + + [_FN2] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______ + ), + + [_FN3] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/cannonkeys/moment_hs/keymaps/via/rules.mk b/keyboards/cannonkeys/moment_hs/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/cannonkeys/moment_hs/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/cannonkeys/moment_hs/readme.md b/keyboards/cannonkeys/moment_hs/readme.md new file mode 100644 index 00000000000..9373e1551ab --- /dev/null +++ b/keyboards/cannonkeys/moment_hs/readme.md @@ -0,0 +1,25 @@ +# Moment Hotswap + +*A 60% keyboard from jjw_kb* + +* Keyboard Maintainer: [Andrew Kannan](https://github.com/awkannan) +* Hardware Supported: STM32F072CBT6 +* Hardware Availability: [CannonKeys](https://cannonkeys.com) + +Make example for this keyboard (after setting up your build environment): + + make cannonkeys/moment_hs:default + +Flashing example for this keyboard: + + make cannonkeys/moment_hs: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**: Swap the boot switch on the back of the PCB to "1" and hit the reset button +* **Keycode in layout**: Press the key mapped to `RESET` if it is available diff --git a/keyboards/cannonkeys/moment_hs/rules.mk b/keyboards/cannonkeys/moment_hs/rules.mk new file mode 100644 index 00000000000..0ab54aaaf71 --- /dev/null +++ b/keyboards/cannonkeys/moment_hs/rules.mk @@ -0,0 +1,2 @@ +# Wildcard to allow APM32 MCU +DFU_SUFFIX_ARGS = -v FFFF -p FFFF diff --git a/keyboards/capsunlocked/cu80/v2_ansi/config.h b/keyboards/capsunlocked/cu80/v2_ansi/config.h index 4ff0af5c271..ae8d1cc7410 100644 --- a/keyboards/capsunlocked/cu80/v2_ansi/config.h +++ b/keyboards/capsunlocked/cu80/v2_ansi/config.h @@ -24,5 +24,5 @@ along with this program. If not, see . #define LOCKING_RESYNC_ENABLE /* Define RGB */ -#define DRIVER_LED_TOTAL 87 +#define RGB_MATRIX_LED_COUNT 87 #define RGBLIGHT_ANIMATIONS diff --git a/keyboards/capsunlocked/cu80/v2_iso/config.h b/keyboards/capsunlocked/cu80/v2_iso/config.h index 7980837acff..2411039d93e 100644 --- a/keyboards/capsunlocked/cu80/v2_iso/config.h +++ b/keyboards/capsunlocked/cu80/v2_iso/config.h @@ -25,5 +25,5 @@ along with this program. If not, see . #define LOCKING_RESYNC_ENABLE /* Define RGB */ -#define DRIVER_LED_TOTAL 88 +#define RGB_MATRIX_LED_COUNT 88 #define RGBLIGHT_ANIMATIONS diff --git a/keyboards/charue/sunsetter_r2/keymaps/debug/rules.mk b/keyboards/charue/sunsetter_r2/keymaps/debug/rules.mk new file mode 100644 index 00000000000..15b7f725b26 --- /dev/null +++ b/keyboards/charue/sunsetter_r2/keymaps/debug/rules.mk @@ -0,0 +1 @@ +CONSOLE_ENABLE = yes diff --git a/keyboards/charue/sunsetter_r2/rules.mk b/keyboards/charue/sunsetter_r2/rules.mk index 0edc71f6e95..3ff392a61f5 100644 --- a/keyboards/charue/sunsetter_r2/rules.mk +++ b/keyboards/charue/sunsetter_r2/rules.mk @@ -10,9 +10,9 @@ BOOTLOADER = atmel-dfu BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite MOUSEKEY_ENABLE = yes # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = yes # Console for debug -COMMAND_ENABLE = yes # Commands for debug and configuration +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration NKRO_ENABLE = no # Enable N-Key Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output diff --git a/keyboards/checkerboards/axon40/config.h b/keyboards/checkerboards/axon40/config.h index 08d505f4946..920206e5653 100644 --- a/keyboards/checkerboards/axon40/config.h +++ b/keyboards/checkerboards/axon40/config.h @@ -45,4 +45,3 @@ #define RGBLIGHT_HUE_STEP 8 #define RGBLIGHT_SAT_STEP 8 #define RGBLIGHT_VAL_STEP 8 -#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 290 diff --git a/keyboards/checkerboards/quark_lp/config.h b/keyboards/checkerboards/quark_lp/config.h index b4664ec5c27..a1d7533f8ab 100644 --- a/keyboards/checkerboards/quark_lp/config.h +++ b/keyboards/checkerboards/quark_lp/config.h @@ -41,7 +41,7 @@ #define RGB_DI_PIN C2 // pin the DI on the ws2812 is hooked-up to #ifdef RGB_MATRIX_ENABLE -#define DRIVER_LED_TOTAL 51 +#define RGB_MATRIX_LED_COUNT 51 #define RGB_MATRIX_KEYPRESSES // reacts to keypresses #define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 125 // limits maximum brightness of LEDs to 125 out of 255. Higher may cause the controller to crash. diff --git a/keyboards/cherrybstudio/cb65/cb65.c b/keyboards/cherrybstudio/cb65/cb65.c new file mode 100644 index 00000000000..4ff1006adfd --- /dev/null +++ b/keyboards/cherrybstudio/cb65/cb65.c @@ -0,0 +1,14 @@ +/* +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 . +*/ + +#include "cb65.h" diff --git a/keyboards/cherrybstudio/cb65/cb65.h b/keyboards/cherrybstudio/cb65/cb65.h new file mode 100644 index 00000000000..c17df211dad --- /dev/null +++ b/keyboards/cherrybstudio/cb65/cb65.h @@ -0,0 +1,35 @@ +/* +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 "quantum.h" + +#define LAYOUT_all( \ + K000, K001, K002, K003, K004, K005, K006, K007, K100, K101, K102, K103, K104, K105, K106, K107, \ + K200, K201, K202, K203, K204, K205, K206, K207, K300, K301, K302, K303, K304, K305, K306, \ + K307, K400, K401, K402, K403, K404, K405, K406, K407, K500, K501, K502, K503, K504, K505, \ + K506, K507, K600, K601, K602, K603, K604, K605, K606, K607, K700, K701, K702, K703, K704, \ + K705, K706, K707, K800, K801, K802, K803, K804, K805 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207 }, \ + { K300, K301, K302, K303, K304, K305, K306, K307 }, \ + { K400, K401, K402, K403, K404, K405, K406, K407 }, \ + { K500, K501, K502, K503, K504, K505, K506, K507 }, \ + { K600, K601, K602, K603, K604, K605, K606, K607 }, \ + { K700, K701, K702, K703, K704, K705, K706, K707 }, \ + { K800, K801, K802, K803, K804, K805 } \ +} + diff --git a/keyboards/cherrybstudio/cb65/config.h b/keyboards/cherrybstudio/cb65/config.h new file mode 100644 index 00000000000..d5a644ef8c4 --- /dev/null +++ b/keyboards/cherrybstudio/cb65/config.h @@ -0,0 +1,68 @@ +/* +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 "config_common.h" + +/* key matrix size */ +#define MATRIX_ROWS 9 +#define MATRIX_COLS 8 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * + * 0 1 2 3 4 5 6 7 8 +*/ +#define MATRIX_ROW_PINS { B0, B1, B2, B3, B7, D0, D1, D2, D3 } +#define MATRIX_COL_PINS { D5, D4, D6, D7, F7, B5, B6, C6 } + +/* Encoder configuration */ +//#define ENCODERS_PAD_A { F5 } +//#define ENCODERS_PAD_B { F6 } +//#define ENCODER_RESOLUTION 4 + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +#define LED_CAPS_LOCK_PIN F1 +#define LED_SCROLL_LOCK_PIN F4 +#define LED_PIN_ON_STATE 0 + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* RGB Lighting */ +#define RGB_DI_PIN F0 +#ifdef RGB_DI_PIN +#define RGBLIGHT_EFFECT_BREATHING +#define RGBLIGHT_EFFECT_RAINBOW_MOOD +#define RGBLIGHT_EFFECT_RAINBOW_SWIRL +#define RGBLIGHT_EFFECT_SNAKE +#define RGBLIGHT_EFFECT_KNIGHT +#define RGBLIGHT_EFFECT_CHRISTMAS +#define RGBLIGHT_EFFECT_STATIC_GRADIENT +#define RGBLIGHT_EFFECT_RGB_TEST +#define RGBLIGHT_EFFECT_ALTERNATING +#define RGBLIGHT_EFFECT_TWINKLE +#define RGBLED_NUM 24 +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 +#endif diff --git a/keyboards/cherrybstudio/cb65/info.json b/keyboards/cherrybstudio/cb65/info.json new file mode 100644 index 00000000000..976b0b2e33d --- /dev/null +++ b/keyboards/cherrybstudio/cb65/info.json @@ -0,0 +1,87 @@ +{ + "keyboard_name": "CherryB CB65", + "manufacturer": "CherryB Works", + "url": "https://discord.gg/qVwv3gcq83", + "maintainer": "lunaticwhat", + "usb": { + "vid": "0x4342", + "pid": "0x6565", + "device_version": "0.0.1" + }, + "layouts": { + "LAYOUT_all": { + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + {"x":4, "y":0}, + {"x":5, "y":0}, + {"x":6, "y":0}, + {"x":7, "y":0}, + {"x":8, "y":0}, + {"x":9, "y":0}, + {"x":10, "y":0}, + {"x":11, "y":0}, + {"x":12, "y":0}, + {"x":13, "y":0}, + {"x":14, "y":0}, + {"x":15, "y":0}, + {"x":0, "y":1, "w":1.5}, + {"x":1.5, "y":1}, + {"x":2.5, "y":1}, + {"x":3.5, "y":1}, + {"x":4.5, "y":1}, + {"x":5.5, "y":1}, + {"x":6.5, "y":1}, + {"x":7.5, "y":1}, + {"x":8.5, "y":1}, + {"x":9.5, "y":1}, + {"x":10.5, "y":1}, + {"x":11.5, "y":1}, + {"x":12.5, "y":1}, + {"x":13.5, "y":1, "w":1.5}, + {"x":15, "y":1}, + {"x":0, "y":2, "w":1.75}, + {"x":1.75, "y":2}, + {"x":2.75, "y":2}, + {"x":3.75, "y":2}, + {"x":4.75, "y":2}, + {"x":5.75, "y":2}, + {"x":6.75, "y":2}, + {"x":7.75, "y":2}, + {"x":8.75, "y":2}, + {"x":9.75, "y":2}, + {"x":10.75, "y":2}, + {"x":11.75, "y":2}, + {"x":12.75, "y":2}, + {"x":13.75, "y":2, "w":1.25}, + {"x":15, "y":2}, + {"x":0, "y":3, "w":1.25}, + {"x":1.25, "y":3}, + {"x":2.25, "y":3}, + {"x":3.25, "y":3}, + {"x":4.25, "y":3}, + {"x":5.25, "y":3}, + {"x":6.25, "y":3}, + {"x":7.25, "y":3}, + {"x":8.25, "y":3}, + {"x":9.25, "y":3}, + {"x":10.25, "y":3}, + {"x":11.25, "y":3}, + {"x":12.25, "y":3, "w":1.75}, + {"x":14, "y":3}, + {"x":15, "y":3}, + {"x":0, "y":4, "w":1.25}, + {"x":1.25, "y":4, "w":1.25}, + {"x":2.5, "y":4, "w":1.25}, + {"x":3.75, "y":4, "w":6.25}, + {"x":10, "y":4, "w":1.25}, + {"x":11.25, "y":4, "w":1.25}, + {"x":13, "y":4}, + {"x":14, "y":4}, + {"x":15, "y":4} + ] + } + } +} diff --git a/keyboards/cherrybstudio/cb65/keymaps/default/keymap.c b/keyboards/cherrybstudio/cb65/keymaps/default/keymap.c new file mode 100644 index 00000000000..c506bf5f4e6 --- /dev/null +++ b/keyboards/cherrybstudio/cb65/keymaps/default/keymap.c @@ -0,0 +1,32 @@ +/* +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 . +*/ + +#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_BSPC, QK_BOOT, + 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_DEL, + 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_HOME, + 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, KC_UP, KC_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + [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_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, KC_PGDN, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT + ), + +}; diff --git a/keyboards/cherrybstudio/cb65/keymaps/default/readme.md b/keyboards/cherrybstudio/cb65/keymaps/default/readme.md new file mode 100644 index 00000000000..af21c876dbc --- /dev/null +++ b/keyboards/cherrybstudio/cb65/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for CB65 diff --git a/keyboards/cherrybstudio/cb65/keymaps/via/keymap.c b/keyboards/cherrybstudio/cb65/keymaps/via/keymap.c new file mode 100644 index 00000000000..55ea2d24f69 --- /dev/null +++ b/keyboards/cherrybstudio/cb65/keymaps/via/keymap.c @@ -0,0 +1,49 @@ +/* +Copyright 2020 Tybera +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 . +*/ + +#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_BSPC, QK_BOOT, + 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_DEL, + 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_HOME, + 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, KC_UP, KC_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + [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_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, KC_PGDN, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT + ), + [2] = LAYOUT_all( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [3] = LAYOUT_all( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), +}; + + + diff --git a/keyboards/cherrybstudio/cb65/keymaps/via/rules.mk b/keyboards/cherrybstudio/cb65/keymaps/via/rules.mk new file mode 100644 index 00000000000..ca9fed0e6b5 --- /dev/null +++ b/keyboards/cherrybstudio/cb65/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +LTO_ENABLE = yes +VIA_ENABLE = yes diff --git a/keyboards/cherrybstudio/cb65/readme.md b/keyboards/cherrybstudio/cb65/readme.md new file mode 100644 index 00000000000..7b8f4da2012 --- /dev/null +++ b/keyboards/cherrybstudio/cb65/readme.md @@ -0,0 +1,26 @@ +# CherryB Works CB65 + +![CB65](https://i.imgur.com/3qopFIWh.jpg) + +An universal 65 percents PCB for many keyboard with USB daughterboard +Board has a rotary encoder but disabled for VIA support. + +* Keyboard Maintainer: lunaticwhat +* Hardware Supported: CB65, atmega32u4 +* Hardware Availability: [CherryB Studio](https://discord.gg/qVwv3gcq83) + +Make example for this keyboard (after setting up your build environment): + + make cherrybstudio/cb65:default + +Flashing example for this keyboard: + + make cherrybstudio/cb65:default:flash + +## Accessing Bootloader Mode + +To access Bootloader Mode, do one of the following: + +* Hold the top left key of the keyboard while connecting the USB cable + +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/cherrybstudio/cb65/rules.mk b/keyboards/cherrybstudio/cb65/rules.mk new file mode 100644 index 00000000000..e5386c142da --- /dev/null +++ b/keyboards/cherrybstudio/cb65/rules.mk @@ -0,0 +1,19 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = yes # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output +ENCODER_ENABLE = no # Encoder support diff --git a/keyboards/cherrybstudio/cb87rgb/config.h b/keyboards/cherrybstudio/cb87rgb/config.h index d915e59c7f6..9a9c70167ea 100644 --- a/keyboards/cherrybstudio/cb87rgb/config.h +++ b/keyboards/cherrybstudio/cb87rgb/config.h @@ -41,7 +41,7 @@ along with this program. If not, see . #define DEBOUNCE 5 #define RGB_DI_PIN E6 -#define DRIVER_LED_TOTAL 92 +#define RGB_MATRIX_LED_COUNT 92 #define RGB_DISABLE_WHEN_USB_SUSPENDED #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 #define RGB_MATRIX_LED_FLUSH_LIMIT 16 diff --git a/keyboards/chromatonemini/config.h b/keyboards/chromatonemini/config.h index 49b8eef7a8d..e92f84ba872 100644 --- a/keyboards/chromatonemini/config.h +++ b/keyboards/chromatonemini/config.h @@ -88,7 +88,7 @@ along with this program. If not, see . #ifdef RGB_MATRIX_ENABLE /* ws2812 RGB MATRIX */ -# define DRIVER_LED_TOTAL 116 +# define RGB_MATRIX_LED_COUNT 116 // reacts to keypresses # define RGB_MATRIX_KEYPRESSES diff --git a/keyboards/chromatonemini/rgb_matrix_kb.inc b/keyboards/chromatonemini/rgb_matrix_kb.inc index 4fe474e12c5..09877e1a319 100644 --- a/keyboards/chromatonemini/rgb_matrix_kb.inc +++ b/keyboards/chromatonemini/rgb_matrix_kb.inc @@ -42,7 +42,7 @@ bool my_solid_reactive_col(effect_params_t* params) { RGB rgb = rgb_matrix_hsv_to_rgb(hsv); rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); } - return led_max < DRIVER_LED_TOTAL; + return led_max < RGB_MATRIX_LED_COUNT; } bool my_party_rocks(effect_params_t* params) { @@ -51,7 +51,7 @@ bool my_party_rocks(effect_params_t* params) { RGB rgb = rgb_matrix_hsv_to_rgb(hsv); // rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); rgb_matrix_set_color_all(rgb.r, rgb.g, rgb.b); - return led_max < DRIVER_LED_TOTAL; + return led_max < RGB_MATRIX_LED_COUNT; } # endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS diff --git a/keyboards/clueboard/66_hotswap/gen1/config.h b/keyboards/clueboard/66_hotswap/gen1/config.h index b1bf6b35433..8fce4af3649 100644 --- a/keyboards/clueboard/66_hotswap/gen1/config.h +++ b/keyboards/clueboard/66_hotswap/gen1/config.h @@ -79,7 +79,7 @@ #define I2C1_SDA_PIN B9 #define LED_DRIVER_COUNT 1 -#define DRIVER_LED_TOTAL 71 +#define LED_MATRIX_LED_COUNT 71 // LED Matrix Animation modes. Explicitly enabled // For full list of effects, see: diff --git a/keyboards/clueboard/66_hotswap/gen1/gen1.c b/keyboards/clueboard/66_hotswap/gen1/gen1.c index 66c40731ec8..1d70f8b8b11 100644 --- a/keyboards/clueboard/66_hotswap/gen1/gen1.c +++ b/keyboards/clueboard/66_hotswap/gen1/gen1.c @@ -16,7 +16,7 @@ #include "gen1.h" #ifdef LED_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[LED_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | LED address diff --git a/keyboards/cozykeys/speedo/v3/rules.mk b/keyboards/cozykeys/speedo/v3/rules.mk index 561e8f4ca1a..8b77971b7e5 100644 --- a/keyboards/cozykeys/speedo/v3/rules.mk +++ b/keyboards/cozykeys/speedo/v3/rules.mk @@ -4,6 +4,8 @@ MCU = atmega32u4 # Bootloader selection BOOTLOADER = atmel-dfu +PIN_COMPATIBLE = elite_c + # Build Options # change yes to no to disable # diff --git a/keyboards/cradio/config.h b/keyboards/cradio/config.h index 8a1127b47c0..e4ecd295396 100644 --- a/keyboards/cradio/config.h +++ b/keyboards/cradio/config.h @@ -1,52 +1,9 @@ -/* Copyright 2018-2021 - * ENDO Katsuhiro - * David Philip Barr <@davidphilipbarr> - * Pierre Chevalier - * - * 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 . - */ +// Copyright 2018-2021 +// ENDO Katsuhiro +// David Philip Barr <@davidphilipbarr> +// Pierre Chevalier +// SPDX-License-Identifier: GPL-2.0+ -#pragma once - -#include "config_common.h" - -/* key matrix size */ -#define MATRIX_ROWS 8 -#define MATRIX_COLS 5 - -#define DIRECT_PINS { \ - { E6, F7, F6, F5, F4 }, \ - { B1, B3, B2, B6, D3 }, \ - { D1, D0, D4, C6, D7 }, \ - { B4, B5, NO_PIN, NO_PIN, NO_PIN } \ -} - -#define DIRECT_PINS_RIGHT { \ - { F4, F5, F6, F7, E6 }, \ - { D3, B6, B2, B3, B1 }, \ - { D7, C6, D4, D0, D1 }, \ - { B5, B4, NO_PIN, NO_PIN, NO_PIN } \ -} - - -/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ -#define DEBOUNCE 5 - -/* serial.c configuration for split keyboard */ -#define SOFT_SERIAL_PIN D2 - -/* Top left key on left half */ #define BOOTMAGIC_LITE_ROW 0 #define BOOTMAGIC_LITE_COLUMN 0 /* Top right key on right half */ diff --git a/keyboards/cradio/cradio.c b/keyboards/cradio/cradio.c index 76c64cbb8cc..99a69ff7559 100644 --- a/keyboards/cradio/cradio.c +++ b/keyboards/cradio/cradio.c @@ -1,24 +1,10 @@ -/* Copyright 2018-2021 - * ENDO Katsuhiro - * David Philip Barr <@davidphilipbarr> - * Pierre Chevalier - * @filterpaper - * - * 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 . - */ +// Copyright 2018-2021 +// ENDO Katsuhiro +// David Philip Barr <@davidphilipbarr> +// Pierre Chevalier +// SPDX-License-Identifier: GPL-2.0+ -#include "cradio.h" +#include "quantum.h" #ifdef SWAP_HANDS_ENABLE __attribute__ ((weak)) @@ -35,4 +21,3 @@ const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { {{1, 3}, {0, 3}, {2, 3}, {3, 3}, {4, 3}} }; #endif - diff --git a/keyboards/cradio/cradio.h b/keyboards/cradio/cradio.h deleted file mode 100644 index f013386bf83..00000000000 --- a/keyboards/cradio/cradio.h +++ /dev/null @@ -1,52 +0,0 @@ -/* Copyright 2018-2021 - * ENDO Katsuhiro - * David Philip Barr <@davidphilipbarr> - * Pierre Chevalier - * - * 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 . - */ - -#include "quantum.h" - -/* This a shortcut to help you visually see your layout. - * - * The first section contains all of the arguments representing the physical - * layout of the board and position of the keys. - * - * The second converts the arguments into a two-dimensional array which - * represents the switch matrix. - */ - -// readability -#define ___ KC_NO - -#define LAYOUT_split_3x5_2( \ - L01, L02, L03, L04, L05, R01, R02, R03, R04, R05, \ - L06, L07, L08, L09, L10, R06, R07, R08, R09, R10, \ - L11, L12, L13, L14, L15, R11, R12, R13, R14, R15, \ - L16, L17, R16, R17 \ - ) \ - { \ - { L01, L02, L03, L04, L05 }, \ - { L06, L07, L08, L09, L10 }, \ - { L11, L12, L13, L14, L15 }, \ - { L16, L17, ___, ___, ___ }, \ - { R01, R02, R03, R04, R05 }, \ - { R06, R07, R08, R09, R10 }, \ - { R11, R12, R13, R14, R15 }, \ - { R16, R17, ___, ___, ___ } \ - } - -#define LAYOUT LAYOUT_split_3x5_2 - diff --git a/keyboards/cradio/info.json b/keyboards/cradio/info.json index 9a99ee7c3ec..0b9cbb1fed2 100644 --- a/keyboards/cradio/info.json +++ b/keyboards/cradio/info.json @@ -8,50 +8,84 @@ "pid": "0x3988", "device_version": "0.0.1" }, + "processor": "atmega32u4", + "protocol": "atmel-dfu", + "debounce": 5, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": false, + "unicode": true + }, + "matrix_pins": { + "direct": [ + ["E6", "F7", "F6", "F5", "F4"], + ["B1", "B3", "B2", "B6", "D3"], + ["D1", "D0", "D4", "C6", "D7"], + ["B4", "B5", null, null, null] + ] + }, + "split": { + "enabled": true, + "matrix_pins": { + "right": { + "direct": [ + ["F4", "F5", "F6", "F7", "E6"], + ["D3", "B6", "B2", "B3", "B1"], + ["D7", "C6", "D4", "D0", "D1"], + ["B5", "B4", null, null, null] + ] + } + }, + "soft_serial_pin": "D2", + "transport": { + "protocol": "serial" + } + }, + "community_layouts": ["split_3x5_2"], + "layout_aliases": { + "LAYOUT": "LAYOUT_split_3x5_2" + }, "layouts": { "LAYOUT_split_3x5_2": { "layout": [ - {"x": 0, "y": 1.27}, - {"x": 1, "y": 0.31}, - {"x": 2, "y": 0}, - {"x": 3, "y": 0.28}, - {"x": 4, "y": 0.42}, - - {"x": 8, "y": 0.42}, - {"x": 9, "y": 0.28}, - {"x": 10, "y": 0}, - {"x": 11, "y": 0.31}, - {"x": 12, "y": 1.27}, - - {"x": 0, "y": 2.27}, - {"x": 1, "y": 1.31}, - {"x": 2, "y": 1}, - {"x": 3, "y": 1.28}, - {"x": 4, "y": 1.42}, - - {"x": 8, "y": 1.42}, - {"x": 9, "y": 1.28}, - {"x": 10, "y": 1}, - {"x": 11, "y": 1.31}, - {"x": 12, "y": 2.27}, - - {"x": 0, "y": 3.27}, - {"x": 1, "y": 2.31}, - {"x": 2, "y": 2}, - {"x": 3, "y": 2.28}, - {"x": 4, "y": 2.42}, - - {"x": 8, "y": 2.42}, - {"x": 9, "y": 2.28}, - {"x": 10, "y": 2}, - {"x": 11, "y": 2.31}, - {"x": 12, "y": 3.27}, - - {"x": 4, "y": 3.9}, - {"x": 5, "y": 3.7}, - - {"x": 7, "y": 3.7}, - {"x": 8, "y": 3.9} + { "label": "L01", "matrix": [0, 0], "w": 1, "x": 0, "y": 1.27 }, + { "label": "L02", "matrix": [0, 1], "w": 1, "x": 1, "y": 0.31 }, + { "label": "L03", "matrix": [0, 2], "w": 1, "x": 2, "y": 0 }, + { "label": "L04", "matrix": [0, 3], "w": 1, "x": 3, "y": 0.28 }, + { "label": "L05", "matrix": [0, 4], "w": 1, "x": 4, "y": 0.42 }, + { "label": "L06", "matrix": [1, 0], "w": 1, "x": 0, "y": 2.27 }, + { "label": "L07", "matrix": [1, 1], "w": 1, "x": 1, "y": 1.31 }, + { "label": "L08", "matrix": [1, 2], "w": 1, "x": 2, "y": 1 }, + { "label": "L09", "matrix": [1, 3], "w": 1, "x": 3, "y": 1.28 }, + { "label": "L10", "matrix": [1, 4], "w": 1, "x": 4, "y": 1.42 }, + { "label": "L11", "matrix": [2, 0], "w": 1, "x": 0, "y": 3.27 }, + { "label": "L12", "matrix": [2, 1], "w": 1, "x": 1, "y": 2.31 }, + { "label": "L13", "matrix": [2, 2], "w": 1, "x": 2, "y": 2 }, + { "label": "L14", "matrix": [2, 3], "w": 1, "x": 3, "y": 2.28 }, + { "label": "L15", "matrix": [2, 4], "w": 1, "x": 4, "y": 2.42 }, + { "label": "L16", "matrix": [3, 0], "w": 1, "x": 4, "y": 3.9 }, + { "label": "L17", "matrix": [3, 1], "w": 1, "x": 5, "y": 3.7 }, + { "label": "R01", "matrix": [4, 0], "w": 1, "x": 8, "y": 0.42 }, + { "label": "R02", "matrix": [4, 1], "w": 1, "x": 9, "y": 0.28 }, + { "label": "R03", "matrix": [4, 2], "w": 1, "x": 10, "y": 0 }, + { "label": "R04", "matrix": [4, 3], "w": 1, "x": 11, "y": 0.31 }, + { "label": "R05", "matrix": [4, 4], "w": 1, "x": 12, "y": 1.27 }, + { "label": "R06", "matrix": [5, 0], "w": 1, "x": 8, "y": 1.42 }, + { "label": "R07", "matrix": [5, 1], "w": 1, "x": 9, "y": 1.28 }, + { "label": "R08", "matrix": [5, 2], "w": 1, "x": 10, "y": 1 }, + { "label": "R09", "matrix": [5, 3], "w": 1, "x": 11, "y": 1.31 }, + { "label": "R10", "matrix": [5, 4], "w": 1, "x": 12, "y": 2.27 }, + { "label": "R11", "matrix": [6, 0], "w": 1, "x": 8, "y": 2.42 }, + { "label": "R12", "matrix": [6, 1], "w": 1, "x": 9, "y": 2.28 }, + { "label": "R13", "matrix": [6, 2], "w": 1, "x": 10, "y": 2 }, + { "label": "R14", "matrix": [6, 3], "w": 1, "x": 11, "y": 2.31 }, + { "label": "R15", "matrix": [6, 4], "w": 1, "x": 12, "y": 3.27 }, + { "label": "R16", "matrix": [7, 0], "w": 1, "x": 7, "y": 3.7 }, + { "label": "R17", "matrix": [7, 1], "w": 1, "x": 8, "y": 3.9 } ] } } diff --git a/keyboards/cradio/rules.mk b/keyboards/cradio/rules.mk index 1e4940ca7d1..6e7633bfe01 100644 --- a/keyboards/cradio/rules.mk +++ b/keyboards/cradio/rules.mk @@ -1,21 +1 @@ -# MCU name -MCU = atmega32u4 - -# Bootloader selection -BOOTLOADER = atmel-dfu - -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -UNICODE_ENABLE = yes # Unicode -AUDIO_ENABLE = no # Audio output -SPLIT_KEYBOARD = yes # Use shared split_common code -LAYOUTS = split_3x5_2 +# This file intentionally left blank diff --git a/keyboards/crkbd/keymaps/bermeo/config.h b/keyboards/crkbd/keymaps/bermeo/config.h index 567497afbe3..cc83148d870 100644 --- a/keyboards/crkbd/keymaps/bermeo/config.h +++ b/keyboards/crkbd/keymaps/bermeo/config.h @@ -77,7 +77,7 @@ along with this program. If not, see . // # define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects # define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended # define RGB_MATRIX_FRAMEBUFFER_EFFECTS -# define RGB_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) +# define RGB_MATRIX_LED_PROCESS_LIMIT (RGB_MATRIX_LED_COUNT + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) # define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness) # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 // limits maximum brightness of LEDs to 150 out of 255. Higher may cause the controller to crash. # define RGB_MATRIX_HUE_STEP 8 diff --git a/keyboards/crkbd/keymaps/bermeo/keymap.c b/keyboards/crkbd/keymaps/bermeo/keymap.c index ad1dc92450d..8c3d368ca0b 100644 --- a/keyboards/crkbd/keymaps/bermeo/keymap.c +++ b/keyboards/crkbd/keymaps/bermeo/keymap.c @@ -87,7 +87,7 @@ void rgb_matrix_indicators_user(void) { case _QWERTY: isSneaking = false; mod_state = get_mods(); - for (int i = 0; i < DRIVER_LED_TOTAL; i++) { + for (int i = 0; i < RGB_MATRIX_LED_COUNT; i++) { if (mod_state & MOD_MASK_SHIFT) { isBarking = true; rgb_matrix_set_color(52, 255, 255, 255); @@ -135,7 +135,7 @@ void rgb_matrix_indicators_user(void) { case _RAISE: isSneaking = true; - for (int i = 0; i < DRIVER_LED_TOTAL; i++) { + for (int i = 0; i < RGB_MATRIX_LED_COUNT; i++) { switch (i) { case 7: // B key off case 8: // G key off @@ -169,7 +169,7 @@ void rgb_matrix_indicators_user(void) { case _LOWER: isSneaking = true; - for (int i = 0; i < DRIVER_LED_TOTAL; i++) { + for (int i = 0; i < RGB_MATRIX_LED_COUNT; i++) { switch (i) { case 7: // Delete key case 51: // ESC key @@ -210,7 +210,7 @@ void rgb_matrix_indicators_user(void) { case _NUMP: isSneaking = true; - for (int i = 0; i < DRIVER_LED_TOTAL; i++) { + for (int i = 0; i < RGB_MATRIX_LED_COUNT; i++) { switch (i) { case 12: // RGB speed- case 15: // RGB brigthness- diff --git a/keyboards/crkbd/keymaps/crkdves/config.h b/keyboards/crkbd/keymaps/crkdves/config.h index 4e5df394ace..31d23fdff7f 100644 --- a/keyboards/crkbd/keymaps/crkdves/config.h +++ b/keyboards/crkbd/keymaps/crkdves/config.h @@ -56,7 +56,7 @@ along with this program. If not, see . // # define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects # define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended # define RGB_MATRIX_FRAMEBUFFER_EFFECTS -# define RGB_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) +# define RGB_MATRIX_LED_PROCESS_LIMIT (RGB_MATRIX_LED_COUNT + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) # define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness) # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 // limits maximum brightness of LEDs to 150 out of 255. Higher may cause the controller to crash. # define RGB_MATRIX_HUE_STEP 8 diff --git a/keyboards/crkbd/keymaps/crkqwes/config.h b/keyboards/crkbd/keymaps/crkqwes/config.h index aacd9c04f4e..7c97ea0831b 100644 --- a/keyboards/crkbd/keymaps/crkqwes/config.h +++ b/keyboards/crkbd/keymaps/crkqwes/config.h @@ -65,7 +65,7 @@ along with this program. If not, see . // # define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects # define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended # define RGB_MATRIX_FRAMEBUFFER_EFFECTS -# define RGB_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) +# define RGB_MATRIX_LED_PROCESS_LIMIT (RGB_MATRIX_LED_COUNT + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) # define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness) # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 // limits maximum brightness of LEDs to 150 out of 255. Higher may cause the controller to crash. # define RGB_MATRIX_HUE_STEP 8 diff --git a/keyboards/crkbd/keymaps/davidrambo/config.h b/keyboards/crkbd/keymaps/davidrambo/config.h index df5e0611e16..969ce07c8d1 100644 --- a/keyboards/crkbd/keymaps/davidrambo/config.h +++ b/keyboards/crkbd/keymaps/davidrambo/config.h @@ -41,7 +41,7 @@ along with this program. If not, see . // # define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects # define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended #define RGB_MATRIX_FRAMEBUFFER_EFFECTS - // # define RGB_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) + // # define RGB_MATRIX_LED_PROCESS_LIMIT (RGB_MATRIX_LED_COUNT + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) // # define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness) #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 100 // limits maximum brightness of LEDs to 150 out of 255. Higher may cause the controller to crash. #define RGB_MATRIX_HUE_STEP 8 diff --git a/keyboards/crkbd/keymaps/devdev/config.h b/keyboards/crkbd/keymaps/devdev/config.h index 4848af2245f..c3db01f145e 100644 --- a/keyboards/crkbd/keymaps/devdev/config.h +++ b/keyboards/crkbd/keymaps/devdev/config.h @@ -73,7 +73,7 @@ along with this program. If not, see . // # define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects # define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended # define RGB_MATRIX_FRAMEBUFFER_EFFECTS -// # define RGB_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) +// # define RGB_MATRIX_LED_PROCESS_LIMIT (RGB_MATRIX_LED_COUNT + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) // # define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness) # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 // limits maximum brightness of LEDs to 150 out of 255. Higher may cause the controller to crash. diff --git a/keyboards/crkbd/keymaps/kidbrazil/config.h b/keyboards/crkbd/keymaps/kidbrazil/config.h index ab67b428290..b82e4c9344d 100644 --- a/keyboards/crkbd/keymaps/kidbrazil/config.h +++ b/keyboards/crkbd/keymaps/kidbrazil/config.h @@ -53,7 +53,7 @@ along with this program. If not, see . // # define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects #define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended #define RGB_MATRIX_FRAMEBUFFER_EFFECTS - // # define RGB_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) + // # define RGB_MATRIX_LED_PROCESS_LIMIT (RGB_MATRIX_LED_COUNT + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) // # define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness) #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 // limits maximum brightness of LEDs to 150 out of 255. Higher may cause the controller to crash. #define RGB_MATRIX_HUE_STEP 4 diff --git a/keyboards/crkbd/keymaps/ollyhayes/config.h b/keyboards/crkbd/keymaps/ollyhayes/config.h index b7653e1c9a6..d302c0b4eff 100644 --- a/keyboards/crkbd/keymaps/ollyhayes/config.h +++ b/keyboards/crkbd/keymaps/ollyhayes/config.h @@ -33,7 +33,7 @@ // # define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects # define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended # define RGB_MATRIX_FRAMEBUFFER_EFFECTS -// # define RGB_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) +// # define RGB_MATRIX_LED_PROCESS_LIMIT (RGB_MATRIX_LED_COUNT + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) // # define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness) # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 // limits maximum brightness of LEDs to 150 out of 255. Higher may cause the controller to crash. # define RGB_MATRIX_HUE_STEP 8 diff --git a/keyboards/crkbd/keymaps/rpbaptist/keymap.c b/keyboards/crkbd/keymaps/rpbaptist/keymap.c index a0186bf28d6..cdd0a5dacb1 100644 --- a/keyboards/crkbd/keymaps/rpbaptist/keymap.c +++ b/keyboards/crkbd/keymaps/rpbaptist/keymap.c @@ -324,7 +324,7 @@ void rgb_matrix_layer_helper(uint8_t hue, uint8_t sat, uint8_t val, uint8_t led_ } RGB rgb = hsv_to_rgb(hsv); - for (uint8_t i = 0; i < DRIVER_LED_TOTAL; i++) { + for (uint8_t i = 0; i < RGB_MATRIX_LED_COUNT; i++) { if (HAS_FLAGS(g_led_config.flags[i], led_type)) { rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); } diff --git a/keyboards/crkbd/keymaps/soundmonster/config.h b/keyboards/crkbd/keymaps/soundmonster/config.h index 12d62175ae2..bafd3461119 100644 --- a/keyboards/crkbd/keymaps/soundmonster/config.h +++ b/keyboards/crkbd/keymaps/soundmonster/config.h @@ -61,7 +61,7 @@ along with this program. If not, see . // # define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects # define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended # define RGB_MATRIX_FRAMEBUFFER_EFFECTS -# define RGB_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) +# define RGB_MATRIX_LED_PROCESS_LIMIT (RGB_MATRIX_LED_COUNT + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) # define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness) # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 // limits maximum brightness of LEDs to 150 out of 255. Higher may cause the controller to crash. # define RGB_MATRIX_HUE_STEP 8 diff --git a/keyboards/crkbd/keymaps/toinux/config.h b/keyboards/crkbd/keymaps/toinux/config.h index e7a18800d8e..2cd1363a4d0 100644 --- a/keyboards/crkbd/keymaps/toinux/config.h +++ b/keyboards/crkbd/keymaps/toinux/config.h @@ -54,7 +54,7 @@ along with this program. If not, see . // # define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects # define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended # define RGB_MATRIX_FRAMEBUFFER_EFFECTS -// # define RGB_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) +// # define RGB_MATRIX_LED_PROCESS_LIMIT (RGB_MATRIX_LED_COUNT + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) // # define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness) # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 // limits maximum brightness of LEDs to 150 out of 255. Higher may cause the controller to crash. # define RGB_MATRIX_HUE_STEP 8 diff --git a/keyboards/crkbd/keymaps/xyverz/config.h b/keyboards/crkbd/keymaps/xyverz/config.h index fc5b2bd74cd..5ac13a66467 100644 --- a/keyboards/crkbd/keymaps/xyverz/config.h +++ b/keyboards/crkbd/keymaps/xyverz/config.h @@ -48,7 +48,7 @@ along with this program. If not, see . #ifdef RGB_MATRIX_ENABLE #define RGBLED_NUM 54 // Number of LEDs - #define DRIVER_LED_TOTAL RGBLED_NUM + #define RGB_MATRIX_LED_COUNT RGBLED_NUM #endif #define OLED_FONT_H "keyboards/crkbd/lib/glcdfont.c" diff --git a/keyboards/crkbd/r2g/config.h b/keyboards/crkbd/r2g/config.h index 877a59fcc68..450b62cd8f0 100644 --- a/keyboards/crkbd/r2g/config.h +++ b/keyboards/crkbd/r2g/config.h @@ -44,7 +44,7 @@ along with this program. If not, see . #ifdef RGB_MATRIX_ENABLE # define RGBLED_NUM 54 // Number of LEDs -# define DRIVER_LED_TOTAL RGBLED_NUM +# define RGB_MATRIX_LED_COUNT RGBLED_NUM # define RGB_MATRIX_SPLIT \ { 27, 27 } # define SPLIT_TRANSPORT_MIRROR diff --git a/keyboards/crkbd/readme.md b/keyboards/crkbd/readme.md index 6c0e8596639..3e8d8f8ba47 100644 --- a/keyboards/crkbd/readme.md +++ b/keyboards/crkbd/readme.md @@ -46,7 +46,7 @@ And in your `config.h` file, add the following: // # define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects # define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended # define RGB_MATRIX_FRAMEBUFFER_EFFECTS -// # define RGB_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) +// # define RGB_MATRIX_LED_PROCESS_LIMIT (RGB_MATRIX_LED_COUNT + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) // # define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness) # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 // limits maximum brightness of LEDs to 150 out of 255. Higher may cause the controller to crash. # define RGB_MATRIX_HUE_STEP 8 diff --git a/keyboards/crkbd/rev1/config.h b/keyboards/crkbd/rev1/config.h index d2a5a6b2c84..c764f1a40ed 100644 --- a/keyboards/crkbd/rev1/config.h +++ b/keyboards/crkbd/rev1/config.h @@ -32,7 +32,7 @@ along with this program. If not, see . #ifdef RGB_MATRIX_ENABLE # define RGBLED_NUM 54 // Number of LEDs -# define DRIVER_LED_TOTAL RGBLED_NUM +# define RGB_MATRIX_LED_COUNT RGBLED_NUM # define RGB_MATRIX_SPLIT \ { 27, 27 } # define SPLIT_TRANSPORT_MIRROR diff --git a/keyboards/dekunukem/duckypad/config.h b/keyboards/dekunukem/duckypad/config.h index ca339f6e1bf..2a92a2b2056 100644 --- a/keyboards/dekunukem/duckypad/config.h +++ b/keyboards/dekunukem/duckypad/config.h @@ -29,7 +29,7 @@ along with this program. If not, see . #define RGB_DI_PIN A10 #define RGBLED_NUM 15 -#define DRIVER_LED_TOTAL 15 +#define RGB_MATRIX_LED_COUNT 15 #ifdef RGB_MATRIX_ENABLE diff --git a/keyboards/doio/kb16/config.h b/keyboards/doio/kb16/config.h index 911ba9d3d59..1c37ece514f 100644 --- a/keyboards/doio/kb16/config.h +++ b/keyboards/doio/kb16/config.h @@ -49,7 +49,7 @@ #ifdef RGB_MATRIX_ENABLE /* RGB Matrix config */ #define RGB_DI_PIN F6 - #define DRIVER_LED_TOTAL 16 + #define RGB_MATRIX_LED_COUNT 16 #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 #define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS #define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_UP_DOWN diff --git a/keyboards/doro67/rgb/config.h b/keyboards/doro67/rgb/config.h index dfd0cde6d85..cc43b08fbf4 100644 --- a/keyboards/doro67/rgb/config.h +++ b/keyboards/doro67/rgb/config.h @@ -45,7 +45,7 @@ along with this program. If not, see . // The pin connected to the data pin of the LEDs #define RGB_DI_PIN B7 // The number of LEDs connected -#define DRIVER_LED_TOTAL 67 +#define RGB_MATRIX_LED_COUNT 67 #define RGB_MATRIX_KEYPRESSES // RGB Matrix Animation modes. Explicitly enabled diff --git a/keyboards/dp60/config.h b/keyboards/dp60/config.h index ad7fee90092..d5198176b72 100644 --- a/keyboards/dp60/config.h +++ b/keyboards/dp60/config.h @@ -50,7 +50,7 @@ #define DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 36 #define DRIVER_2_LED_TOTAL 36 -#define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) +#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) // RGB Matrix Animation modes. Explicitly enabled // For full list of effects, see: // https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects diff --git a/keyboards/dp60/dp60.c b/keyboards/dp60/dp60.c index 16aac75fa5e..56125687792 100644 --- a/keyboards/dp60/dp60.c +++ b/keyboards/dp60/dp60.c @@ -17,7 +17,7 @@ #include "dp60.h" #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location diff --git a/keyboards/drop/sense75/board.h b/keyboards/drop/sense75/board.h new file mode 100644 index 00000000000..fc227f69b19 --- /dev/null +++ b/keyboards/drop/sense75/board.h @@ -0,0 +1,8 @@ +// Copyright 2022 Massdrop, Inc. +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#include_next "board.h" + +#undef STM32_HSECLK +#define STM32_HSECLK 16000000U diff --git a/keyboards/drop/sense75/config.h b/keyboards/drop/sense75/config.h new file mode 100644 index 00000000000..b0196d0c44e --- /dev/null +++ b/keyboards/drop/sense75/config.h @@ -0,0 +1,67 @@ +// Copyright 2022 Massdrop, Inc. +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#define I2C1_SCL_PIN B8 +#define I2C1_SDA_PIN B9 + +#define EXTERNAL_EEPROM_I2C_BASE_ADDRESS 0b10101000 +#define EXTERNAL_EEPROM_WP_PIN B7 +#define EEPROM_I2C_24LC256 + +#ifdef RGB_MATRIX_ENABLE +# define DRIVER_ADDR_1 0b1010000 +# define DRIVER_ADDR_2 0b1011111 +# define DRIVER_COUNT 2 +# define DRIVER_LED_TOTAL (58 + 53) +# define ISSI_PWM_FREQUENCY 0b010 // 26k + +# define RGB_DISABLE_TIMEOUT 0 +# define RGB_DISABLE_WHEN_USB_SUSPENDED +# define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_LEFT_RIGHT +# define RGB_MATRIX_KEYPRESSES +# define RGB_MATRIX_FRAMEBUFFER_EFFECTS +# define ENABLE_RGB_MATRIX_ALPHAS_MODS +# define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN +# define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT +# define ENABLE_RGB_MATRIX_BREATHING +# define ENABLE_RGB_MATRIX_BAND_SAT +# define ENABLE_RGB_MATRIX_BAND_VAL +# define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT +# define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL +# define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT +# define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL +# define ENABLE_RGB_MATRIX_CYCLE_ALL +# define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT +# define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN +# define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON +# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN +# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL +# define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL +# define ENABLE_RGB_MATRIX_CYCLE_SPIRAL +# define ENABLE_RGB_MATRIX_DUAL_BEACON +# define ENABLE_RGB_MATRIX_RAINBOW_BEACON +# define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS +# define ENABLE_RGB_MATRIX_RAINDROPS +# define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS +# define ENABLE_RGB_MATRIX_HUE_BREATHING +# define ENABLE_RGB_MATRIX_PIXEL_FRACTAL +# define ENABLE_RGB_MATRIX_PIXEL_FLOW +# define ENABLE_RGB_MATRIX_PIXEL_RAIN +# define ENABLE_RGB_MATRIX_HUE_PENDULUM +# define ENABLE_RGB_MATRIX_HUE_WAVE +# define ENABLE_RGB_MATRIX_TYPING_HEATMAP +# define ENABLE_RGB_MATRIX_DIGITAL_RAIN +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS +# define ENABLE_RGB_MATRIX_SPLASH +# define ENABLE_RGB_MATRIX_MULTISPLASH +# define ENABLE_RGB_MATRIX_SOLID_SPLASH +# define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH +#endif diff --git a/keyboards/drop/sense75/halconf.h b/keyboards/drop/sense75/halconf.h new file mode 100644 index 00000000000..b11f12ade7f --- /dev/null +++ b/keyboards/drop/sense75/halconf.h @@ -0,0 +1,7 @@ +// Copyright 2022 Massdrop, Inc. +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#define HAL_USE_I2C TRUE + +#include_next diff --git a/keyboards/drop/sense75/info.json b/keyboards/drop/sense75/info.json new file mode 100644 index 00000000000..8fd65c1bd7b --- /dev/null +++ b/keyboards/drop/sense75/info.json @@ -0,0 +1,235 @@ +{ + "keyboard_name": "SENSE75", + "manufacturer": "Drop Inc.", + "maintainer": "zvecr", + "processor": "STM32F303", + "bootloader": "stm32-dfu", + "diode_direction": "COL2ROW", + "matrix_pins": { + "cols": ["C15", "C14", "C13", "C12", "C11", "C10", "C9", "C8", "C7", "C6", "C5", "C4", "C3", "C2", "C1"], + "rows": ["B15", "B14", "B13", "B12", "B11", "B10"] + }, + "usb": { + "vid": "0x359B", + "pid": "0x0001", + "device_version": "1.0.0" + }, + "features": { + "rgb_matrix": true, + "encoder": true, + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "layouts": { + "LAYOUT": { + "layout": [ + { "matrix": [0, 0], "label":"Esc", "x":0, "y":0}, + { "matrix": [0, 1], "label":"F1", "x":1.25, "y":0}, + { "matrix": [0, 2], "label":"F2", "x":2.25, "y":0}, + { "matrix": [0, 3], "label":"F3", "x":3.25, "y":0}, + { "matrix": [0, 4], "label":"F4", "x":4.25, "y":0}, + { "matrix": [0, 5], "label":"F5", "x":5.5, "y":0}, + { "matrix": [0, 6], "label":"F6", "x":6.5, "y":0}, + { "matrix": [0, 7], "label":"F7", "x":7.5, "y":0}, + { "matrix": [0, 8], "label":"F8", "x":8.5, "y":0}, + { "matrix": [0, 9], "label":"F9", "x":9.75, "y":0}, + { "matrix": [0, 10], "label":"F10", "x":10.75, "y":0}, + { "matrix": [0, 11], "label":"F11", "x":11.75, "y":0}, + { "matrix": [0, 12], "label":"F12", "x":12.75, "y":0}, + { "matrix": [0, 13], "label":"PrtSc", "x":14, "y":0}, + { "matrix": [0, 14], "label":"Mute", "x":15.25, "y":0}, + { "matrix": [1, 0], "label":"~", "x":0, "y":1.25}, + { "matrix": [1, 1], "label":"!", "x":1, "y":1.25}, + { "matrix": [1, 2], "label":"@", "x":2, "y":1.25}, + { "matrix": [1, 3], "label":"#", "x":3, "y":1.25}, + { "matrix": [1, 4], "label":"$", "x":4, "y":1.25}, + { "matrix": [1, 5], "label":"%", "x":5, "y":1.25}, + { "matrix": [1, 6], "label":"^", "x":6, "y":1.25}, + { "matrix": [1, 7], "label":"&", "x":7, "y":1.25}, + { "matrix": [1, 8], "label":"*", "x":8, "y":1.25}, + { "matrix": [1, 9], "label":"(", "x":9, "y":1.25}, + { "matrix": [1, 10], "label":")", "x":10, "y":1.25}, + { "matrix": [1, 11], "label":"_", "x":11, "y":1.25}, + { "matrix": [1, 12], "label":"+", "x":12, "y":1.25}, + { "matrix": [1, 13], "label":"Backspace", "x":13, "y":1.25, "w":2}, + { "matrix": [1, 14], "label":"Del", "x":15.25, "y":1.25}, + { "matrix": [2, 0], "label":"Tab", "x":0, "y":2.25, "w":1.5}, + { "matrix": [2, 1], "label":"Q", "x":1.5, "y":2.25}, + { "matrix": [2, 2], "label":"W", "x":2.5, "y":2.25}, + { "matrix": [2, 3], "label":"E", "x":3.5, "y":2.25}, + { "matrix": [2, 4], "label":"R", "x":4.5, "y":2.25}, + { "matrix": [2, 5], "label":"T", "x":5.5, "y":2.25}, + { "matrix": [2, 6], "label":"Y", "x":6.5, "y":2.25}, + { "matrix": [2, 7], "label":"U", "x":7.5, "y":2.25}, + { "matrix": [2, 8], "label":"I", "x":8.5, "y":2.25}, + { "matrix": [2, 9], "label":"O", "x":9.5, "y":2.25}, + { "matrix": [2, 10], "label":"P", "x":10.5, "y":2.25}, + { "matrix": [2, 11], "label":"{", "x":11.5, "y":2.25}, + { "matrix": [2, 12], "label":"}", "x":12.5, "y":2.25}, + { "matrix": [2, 13], "label":"|", "x":13.5, "y":2.25, "w":1.5}, + { "matrix": [2, 14], "label":"Page Up", "x":15.25, "y":2.25}, + { "matrix": [3, 0], "label":"Caps Lock", "x":0, "y":3.25, "w":1.75}, + { "matrix": [3, 1], "label":"A", "x":1.75, "y":3.25}, + { "matrix": [3, 2], "label":"S", "x":2.75, "y":3.25}, + { "matrix": [3, 3], "label":"D", "x":3.75, "y":3.25}, + { "matrix": [3, 4], "label":"F", "x":4.75, "y":3.25}, + { "matrix": [3, 5], "label":"G", "x":5.75, "y":3.25}, + { "matrix": [3, 6], "label":"H", "x":6.75, "y":3.25}, + { "matrix": [3, 7], "label":"J", "x":7.75, "y":3.25}, + { "matrix": [3, 8], "label":"K", "x":8.75, "y":3.25}, + { "matrix": [3, 9], "label":"L", "x":9.75, "y":3.25}, + { "matrix": [3, 10], "label":":", "x":10.75, "y":3.25}, + { "matrix": [3, 11], "label":"\"", "x":11.75, "y":3.25}, + { "matrix": [3, 12], "label":"Enter", "x":12.75, "y":3.25, "w":2.25}, + { "matrix": [3, 14], "label":"Page Down", "x":15.25, "y":3.25}, + { "matrix": [4, 0], "label":"Shift", "x":0, "y":4.25, "w":2.25}, + { "matrix": [4, 1], "label":"Z", "x":2.25, "y":4.25}, + { "matrix": [4, 2], "label":"X", "x":3.25, "y":4.25}, + { "matrix": [4, 3], "label":"C", "x":4.25, "y":4.25}, + { "matrix": [4, 4], "label":"V", "x":5.25, "y":4.25}, + { "matrix": [4, 5], "label":"B", "x":6.25, "y":4.25}, + { "matrix": [4, 6], "label":"N", "x":7.25, "y":4.25}, + { "matrix": [4, 7], "label":"M", "x":8.25, "y":4.25}, + { "matrix": [4, 8], "label":"<", "x":9.25, "y":4.25}, + { "matrix": [4, 9], "label":">", "x":10.25, "y":4.25}, + { "matrix": [4, 10], "label":"?", "x":11.25, "y":4.25}, + { "matrix": [4, 11], "label":"Shift", "x":12.25, "y":4.25, "w":1.75}, + { "matrix": [4, 13], "label":"\u2191", "x":14.25, "y":4.5}, + { "matrix": [5, 0], "label":"Ctrl", "x":0, "y":5.25, "w":1.25}, + { "matrix": [5, 1], "label":"Win", "x":1.25, "y":5.25, "w":1.25}, + { "matrix": [5, 2], "label":"Alt", "x":2.5, "y":5.25, "w":1.25}, + { "matrix": [5, 5], "label":" ", "x":3.75, "y":5.25, "w":6.25}, + { "matrix": [5, 8], "label":"Alt", "x":10, "y":5.25}, + { "matrix": [5, 9], "label":"Fn", "x":11, "y":5.25}, + { "matrix": [5, 10], "label":"Ctrl", "x":12, "y":5.25}, + { "matrix": [5, 12], "label":"\u2190", "x":13.25, "y":5.5}, + { "matrix": [5, 13], "label":"\u2193", "x":14.25, "y":5.5}, + { "matrix": [5, 14], "label":"\u2192", "x":15.25, "y":5.5} + ] + } + }, + "rgb_matrix": { + "layout": [ + { "flags": 2, "x": 2, "y": 0 }, + { "flags": 2, "x": 22, "y": 0 }, + { "flags": 2, "x": 42, "y": 0 }, + { "flags": 2, "x": 62, "y": 0 }, + { "flags": 2, "x": 82, "y": 0 }, + { "flags": 2, "x": 102, "y": 0 }, + { "flags": 2, "x": 122, "y": 0 }, + { "flags": 2, "x": 142, "y": 0 }, + { "flags": 2, "x": 162, "y": 0 }, + { "flags": 2, "x": 182, "y": 0 }, + { "flags": 2, "x": 202, "y": 0 }, + { "flags": 2, "x": 222, "y": 0 }, + { "flags": 2, "x": 0, "y": 7 }, + { "flags": 4, "matrix": [0, 0], "x": 6, "y": 8 }, + { "flags": 4, "matrix": [0, 1], "x": 24, "y": 8 }, + { "flags": 4, "matrix": [0, 2], "x": 37, "y": 8 }, + { "flags": 4, "matrix": [0, 3], "x": 51, "y": 8 }, + { "flags": 4, "matrix": [0, 4], "x": 66, "y": 8 }, + { "flags": 4, "matrix": [0, 5], "x": 82, "y": 8 }, + { "flags": 4, "matrix": [0, 6], "x": 96, "y": 8 }, + { "flags": 4, "matrix": [0, 7], "x": 110, "y": 8 }, + { "flags": 4, "matrix": [0, 8], "x": 124, "y": 8 }, + { "flags": 4, "matrix": [0, 9], "x": 141, "y": 8 }, + { "flags": 4, "matrix": [0, 10], "x": 155, "y": 8 }, + { "flags": 4, "matrix": [0, 11], "x": 169, "y": 8 }, + { "flags": 4, "matrix": [0, 12], "x": 182, "y": 8 }, + { "flags": 4, "matrix": [0, 13], "x": 199, "y": 8 }, + { "flags": 2, "x": 224, "y": 4 }, + { "flags": 2, "x": 0, "y": 12 }, + { "flags": 4, "matrix": [1, 0], "x": 6, "y": 20 }, + { "flags": 4, "matrix": [1, 1], "x": 20, "y": 20 }, + { "flags": 4, "matrix": [1, 2], "x": 34, "y": 20 }, + { "flags": 4, "matrix": [1, 3], "x": 48, "y": 20 }, + { "flags": 4, "matrix": [1, 4], "x": 62, "y": 20 }, + { "flags": 4, "matrix": [1, 5], "x": 75, "y": 20 }, + { "flags": 4, "matrix": [1, 6], "x": 90, "y": 20 }, + { "flags": 4, "matrix": [1, 7], "x": 103, "y": 20 }, + { "flags": 4, "matrix": [1, 8], "x": 117, "y": 20 }, + { "flags": 4, "matrix": [1, 9], "x": 130, "y": 20 }, + { "flags": 4, "matrix": [1, 10], "x": 144, "y": 20 }, + { "flags": 4, "matrix": [1, 11], "x": 158, "y": 20 }, + { "flags": 4, "matrix": [1, 12], "x": 170, "y": 20 }, + { "flags": 4, "matrix": [1, 13], "x": 192, "y": 20 }, + { "flags": 4, "matrix": [1, 14], "x": 217, "y": 20 }, + { "flags": 2, "x": 224, "y": 12 }, + { "flags": 2, "x": 0, "y": 22 }, + { "flags": 4, "matrix": [2, 0], "x": 10, "y": 30 }, + { "flags": 4, "matrix": [2, 1], "x": 27, "y": 30 }, + { "flags": 4, "matrix": [2, 2], "x": 41, "y": 30 }, + { "flags": 4, "matrix": [2, 3], "x": 54, "y": 30 }, + { "flags": 4, "matrix": [2, 4], "x": 69, "y": 30 }, + { "flags": 4, "matrix": [2, 5], "x": 82, "y": 30 }, + { "flags": 4, "matrix": [2, 6], "x": 96, "y": 30 }, + { "flags": 4, "matrix": [2, 7], "x": 110, "y": 30 }, + { "flags": 4, "matrix": [2, 8], "x": 123, "y": 30 }, + { "flags": 4, "matrix": [2, 9], "x": 138, "y": 30 }, + { "flags": 4, "matrix": [2, 10], "x": 151, "y": 30 }, + { "flags": 4, "matrix": [2, 11], "x": 165, "y": 30 }, + { "flags": 4, "matrix": [2, 12], "x": 179, "y": 30 }, + { "flags": 4, "matrix": [2, 13], "x": 196, "y": 30 }, + { "flags": 4, "matrix": [2, 14], "x": 217, "y": 30 }, + { "flags": 2, "x": 224, "y": 22 }, + { "flags": 4, "matrix": [3, 0], "x": 11, "y": 40 }, + { "flags": 4, "matrix": [3, 1], "x": 30, "y": 40 }, + { "flags": 4, "matrix": [3, 2], "x": 44, "y": 40 }, + { "flags": 4, "matrix": [3, 3], "x": 57, "y": 40 }, + { "flags": 4, "matrix": [3, 4], "x": 72, "y": 40 }, + { "flags": 4, "matrix": [3, 5], "x": 85, "y": 40 }, + { "flags": 4, "matrix": [3, 6], "x": 99, "y": 40 }, + { "flags": 4, "matrix": [3, 7], "x": 113, "y": 40 }, + { "flags": 4, "matrix": [3, 8], "x": 126, "y": 40 }, + { "flags": 4, "matrix": [3, 9], "x": 140, "y": 40 }, + { "flags": 4, "matrix": [3, 10], "x": 154, "y": 40 }, + { "flags": 4, "matrix": [3, 11], "x": 169, "y": 40 }, + { "flags": 4, "matrix": [3, 12], "x": 190, "y": 40 }, + { "flags": 4, "matrix": [3, 14], "x": 217, "y": 40 }, + { "flags": 2, "x": 0, "y": 42 }, + { "flags": 4, "matrix": [4, 0], "x": 15, "y": 50 }, + { "flags": 4, "matrix": [4, 1], "x": 37, "y": 50 }, + { "flags": 4, "matrix": [4, 2], "x": 51, "y": 50 }, + { "flags": 4, "matrix": [4, 3], "x": 66, "y": 50 }, + { "flags": 4, "matrix": [4, 4], "x": 79, "y": 50 }, + { "flags": 4, "matrix": [4, 5], "x": 93, "y": 50 }, + { "flags": 4, "matrix": [4, 6], "x": 107, "y": 50 }, + { "flags": 4, "matrix": [4, 7], "x": 120, "y": 50 }, + { "flags": 4, "matrix": [4, 8], "x": 134, "y": 50 }, + { "flags": 4, "matrix": [4, 9], "x": 148, "y": 50 }, + { "flags": 4, "matrix": [4, 10], "x": 161, "y": 50 }, + { "flags": 4, "matrix": [4, 11], "x": 180, "y": 50 }, + { "flags": 4, "matrix": [4, 13], "x": 202, "y": 53 }, + { "flags": 2, "x": 224, "y": 42 }, + { "flags": 2, "x": 0, "y": 51 }, + { "flags": 4, "matrix": [5, 0], "x": 8, "y": 60 }, + { "flags": 4, "matrix": [5, 1], "x": 26, "y": 60 }, + { "flags": 4, "matrix": [5, 2], "x": 42, "y": 60 }, + { "flags": 4, "matrix": [5, 5], "x": 94, "y": 60 }, + { "flags": 4, "matrix": [5, 8], "x": 144, "y": 60 }, + { "flags": 4, "matrix": [5, 9], "x": 158, "y": 60 }, + { "flags": 4, "matrix": [5, 10], "x": 172, "y": 60 }, + { "flags": 4, "matrix": [5, 12], "x": 189, "y": 63 }, + { "flags": 4, "matrix": [5, 13], "x": 202, "y": 63 }, + { "flags": 4, "matrix": [5, 14], "x": 217, "y": 63 }, + { "flags": 2, "x": 224, "y": 51 }, + { "flags": 2, "x": 9, "y": 64 }, + { "flags": 2, "x": 38, "y": 64 }, + { "flags": 2, "x": 69, "y": 64 }, + { "flags": 2, "x": 96, "y": 64 }, + { "flags": 2, "x": 125, "y": 64 }, + { "flags": 2, "x": 154, "y": 64 }, + { "flags": 2, "x": 182, "y": 64 }, + { "flags": 2, "x": 211, "y": 64 } + ] + }, + "encoder": { + "rotary": [ + { "pin_a": "B5", "pin_b": "B4", "resolution": 2 } + ] + } +} diff --git a/keyboards/drop/sense75/keymaps/default/keymap.c b/keyboards/drop/sense75/keymaps/default/keymap.c new file mode 100644 index 00000000000..05b351f8659 --- /dev/null +++ b/keyboards/drop/sense75/keymaps/default/keymap.c @@ -0,0 +1,52 @@ +// Copyright 2022 Massdrop, Inc. +// SPDX-License-Identifier: GPL-2.0-or-later +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐┌───┐ + * │Esc││F1 │F2 │F3 │F4 ││F5 │F6 │F7 │F8 ││F9 │F10│F11│F12││PSc││ │ + * └───┘└───┴───┴───┴───┘└───┴───┴───┴───┴└───┴───┴───┴───┘└───┘└───┘ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐┌───┐ + * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp││Del│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤├───┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ ││PgU│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤├───┤ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter ││PgD│ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┘└───┘ + * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift│┌───┐ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┘│ ↑ │ + * │Ctrl│GUI │Alt │ │Alt│GUI│Ctl│┌───┼───┼───┐ + * └────┴────┴────┴────────────────────────┴───┴───┴───┘│ ← │ ↓ │ → │ + * └───┴───┴───┘ + */ + [0] = LAYOUT( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_MUTE, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_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_PGUP, + 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_PGDN, + 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_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, + _______, RGB_TOG, RGB_VAI, RGB_SPI, RGB_HUI, RGB_SAI, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, + _______, RGB_MOD, RGB_VAD, RGB_SPD, RGB_HUD, RGB_SAD, _______, _______, _______, _______, _______, _______, _______, KC_END, + _______, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW,_______, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______, _______, _______, EE_CLR, _______, _______, _______, _______, _______, _______ + ) +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(KC_MPRV, KC_MNXT) } +}; +#endif + +void rgb_matrix_indicators_user(void) { + if (host_keyboard_led_state().caps_lock) { + rgb_matrix_set_color(62, RGB_WHITE); + } +} diff --git a/keyboards/drop/sense75/keymaps/default/rules.mk b/keyboards/drop/sense75/keymaps/default/rules.mk new file mode 100644 index 00000000000..ee325681483 --- /dev/null +++ b/keyboards/drop/sense75/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/drop/sense75/keymaps/default_md/keymap.c b/keyboards/drop/sense75/keymaps/default_md/keymap.c new file mode 100644 index 00000000000..eb8b6b1f4be --- /dev/null +++ b/keyboards/drop/sense75/keymaps/default_md/keymap.c @@ -0,0 +1,136 @@ +// Copyright 2022 Massdrop, Inc. +// SPDX-License-Identifier: GPL-2.0-or-later +#include QMK_KEYBOARD_H + +enum custom_keycodes { + TEST_1 = SAFE_RANGE, + TEST_2, + TEST_3, + TEST_4, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐┌───┐ + * │Esc││F1 │F2 │F3 │F4 ││F5 │F6 │F7 │F8 ││F9 │F10│F11│F12││PSc││ │ + * └───┘└───┴───┴───┴───┘└───┴───┴───┴───┴└───┴───┴───┴───┘└───┘└───┘ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐┌───┐ + * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp││Del│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤├───┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ ││PgU│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤├───┤ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter ││PgD│ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┘└───┘ + * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift│┌───┐ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┘│ ↑ │ + * │Ctrl│GUI │Alt │ │Alt│GUI│Ctl│┌───┼───┼───┐ + * └────┴────┴────┴────────────────────────┴───┴───┴───┘│ ← │ ↓ │ → │ + * └───┴───┴───┘ + */ + [0] = LAYOUT( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_MUTE, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_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_PGUP, + 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_PGDN, + 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_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, + _______, RGB_TOG, RGB_VAI, RGB_SPI, RGB_HUI, RGB_SAI, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, + _______, RGB_MOD, RGB_VAD, RGB_SPD, RGB_HUD, RGB_SAD, _______, _______, _______, _______, _______, _______, _______, KC_END, + _______, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW,_______, NK_TOGG, _______, _______, _______, _______, _______, _______, + MO(2), _______, _______, EE_CLR, _______, _______, _______, _______, _______, _______ + ), + [2] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, TEST_1, TEST_2, TEST_3, TEST_4, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, AG_TOGG, _______, _______, _______, CL_TOGG, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(KC_MPRV, KC_MNXT) }, + [2] = { ENCODER_CCW_CW(_______, _______) } +}; +#endif + +static bool test_mode = false; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (!record->event.pressed) { + switch (keycode) { + case TEST_1: + rgb_matrix_mode_noeeprom(RGB_MATRIX_SOLID_COLOR); + rgb_matrix_sethsv_noeeprom(HSV_RED); + test_mode = true; + break; + case TEST_2: + rgb_matrix_mode_noeeprom(RGB_MATRIX_SOLID_COLOR); + rgb_matrix_sethsv_noeeprom(HSV_GREEN); + test_mode = true; + break; + case TEST_3: + rgb_matrix_mode_noeeprom(RGB_MATRIX_SOLID_COLOR); + rgb_matrix_sethsv_noeeprom(HSV_BLUE); + test_mode = true; + break; + case TEST_4: + rgb_matrix_mode_noeeprom(RGB_MATRIX_SOLID_COLOR); + rgb_matrix_sethsv_noeeprom(HSV_WHITE); + test_mode = true; + break; + case RGB_TOG: + switch (rgb_matrix_get_flags()) { + case LED_FLAG_ALL: + rgb_matrix_set_flags(LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR); + break; + case (LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR): + rgb_matrix_set_flags(LED_FLAG_UNDERGLOW); + break; + case LED_FLAG_UNDERGLOW: + rgb_matrix_set_flags(LED_FLAG_NONE); + break; + default: + rgb_matrix_set_flags(LED_FLAG_ALL); + break; + } + return false; + } + } + return true; +}; + +void rgb_matrix_indicators_user(void) { + if (host_keyboard_led_state().caps_lock) { + rgb_matrix_set_color(62, RGB_WHITE); + } else if ((rgb_matrix_get_flags() & (LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR)) == 0) { + rgb_matrix_set_color(62, RGB_OFF); + } + + if (get_highest_layer(layer_state) == 2) { + if (!test_mode) { + rgb_matrix_set_color_all(RGB_OFF); + } + + if (keymap_config.swap_lalt_lgui) { + rgb_matrix_set_color(55, RGB_GREEN); + } else { + rgb_matrix_set_color(55, RGB_RED); + } + if (keymap_config.swap_control_capslock) { + rgb_matrix_set_color(59, RGB_GREEN); + } else { + rgb_matrix_set_color(59, RGB_RED); + } + } else if ((rgb_matrix_get_flags() & (LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR)) == 0) { + rgb_matrix_set_color(55, RGB_OFF); + rgb_matrix_set_color(59, RGB_OFF); + } +} diff --git a/keyboards/drop/sense75/keymaps/default_md/readme.md b/keyboards/drop/sense75/keymaps/default_md/readme.md new file mode 100644 index 00000000000..d954886bcd1 --- /dev/null +++ b/keyboards/drop/sense75/keymaps/default_md/readme.md @@ -0,0 +1 @@ +# The stock firmware the keyboard ships with diff --git a/keyboards/drop/sense75/keymaps/default_md/rules.mk b/keyboards/drop/sense75/keymaps/default_md/rules.mk new file mode 100644 index 00000000000..ee325681483 --- /dev/null +++ b/keyboards/drop/sense75/keymaps/default_md/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/drop/sense75/keymaps/via/config.h b/keyboards/drop/sense75/keymaps/via/config.h new file mode 100644 index 00000000000..2b0c8330d06 --- /dev/null +++ b/keyboards/drop/sense75/keymaps/via/config.h @@ -0,0 +1,5 @@ +// Copyright 2022 Massdrop, Inc. +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#define DYNAMIC_KEYMAP_LAYER_COUNT 8 diff --git a/keyboards/drop/sense75/keymaps/via/keymap.c b/keyboards/drop/sense75/keymaps/via/keymap.c new file mode 100644 index 00000000000..c1e3c4edf3b --- /dev/null +++ b/keyboards/drop/sense75/keymaps/via/keymap.c @@ -0,0 +1,79 @@ +// Copyright 2022 Massdrop, Inc. +// SPDX-License-Identifier: GPL-2.0-or-later +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐┌───┐ + * │Esc││F1 │F2 │F3 │F4 ││F5 │F6 │F7 │F8 ││F9 │F10│F11│F12││PSc││ │ + * └───┘└───┴───┴───┴───┘└───┴───┴───┴───┴└───┴───┴───┴───┘└───┘└───┘ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐┌───┐ + * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp││Del│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤├───┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ ││PgU│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤├───┤ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter ││PgD│ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┘└───┘ + * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift│┌───┐ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┘│ ↑ │ + * │Ctrl│GUI │Alt │ │Alt│GUI│Ctl│┌───┼───┼───┐ + * └────┴────┴────┴────────────────────────┴───┴───┴───┘│ ← │ ↓ │ → │ + * └───┴───┴───┘ + */ + [0] = LAYOUT( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_MUTE, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_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_PGUP, + 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_PGDN, + 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_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, + _______, RGB_TOG, RGB_VAI, RGB_SPI, RGB_HUI, RGB_SAI, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, + _______, RGB_MOD, RGB_VAD, RGB_SPD, RGB_HUD, RGB_SAD, _______, _______, _______, _______, _______, _______, _______, KC_END, + _______, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW,_______, NK_TOGG, _______, _______, _______, _______, _______, _______, + MO(2), _______, _______, EE_CLR, _______, _______, _______, _______, _______, _______ + ), + [2] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, AG_TOGG, _______, _______, _______, CL_TOGG, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(KC_MPRV, KC_MNXT) }, + [2] = { ENCODER_CCW_CW(_______, _______) } +}; +#endif + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (!record->event.pressed) { + switch (keycode) { + case RGB_TOG: + switch (rgb_matrix_get_flags()) { + case LED_FLAG_ALL: + rgb_matrix_set_flags(LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR); + break; + case (LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR): + rgb_matrix_set_flags(LED_FLAG_UNDERGLOW); + break; + case LED_FLAG_UNDERGLOW: + rgb_matrix_set_flags(LED_FLAG_NONE); + break; + default: + rgb_matrix_set_flags(LED_FLAG_ALL); + break; + } + return false; + } + } + return true; +}; diff --git a/keyboards/drop/sense75/keymaps/via/rules.mk b/keyboards/drop/sense75/keymaps/via/rules.mk new file mode 100644 index 00000000000..f1adcab005e --- /dev/null +++ b/keyboards/drop/sense75/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/drop/sense75/mcuconf.h b/keyboards/drop/sense75/mcuconf.h new file mode 100644 index 00000000000..e8a0486ce0e --- /dev/null +++ b/keyboards/drop/sense75/mcuconf.h @@ -0,0 +1,14 @@ +// Copyright 2022 Massdrop, Inc. +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#include_next + +#undef STM32_PLLM_VALUE +#define STM32_PLLM_VALUE 16 + +#undef STM32_PREDIV_VALUE +#define STM32_PREDIV_VALUE 2 + +#undef STM32_I2C_USE_I2C1 +#define STM32_I2C_USE_I2C1 TRUE diff --git a/keyboards/drop/sense75/readme.md b/keyboards/drop/sense75/readme.md new file mode 100644 index 00000000000..bb0bb72a05e --- /dev/null +++ b/keyboards/drop/sense75/readme.md @@ -0,0 +1,24 @@ +# SENSE75 + +![SENSE75](https://massdrop-s3.imgix.net/img_thread/1660887363422.771277068120058315243585-5419copycrop.jpg?auto=format&fm=jpg&fit=max&w=500&h=868&dpr=2) + +* Keyboard Maintainer: [zvecr](https://github.com/zvecr) +* Hardware Availability: + +Make example for this keyboard (after setting up your build environment): + + make drop/sense75:default + +Flashing example for this keyboard: + + make drop/sense75: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**: Press and hold the button under the space bar +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/drop/sense75/rules.mk b/keyboards/drop/sense75/rules.mk new file mode 100644 index 00000000000..781ba9b35a2 --- /dev/null +++ b/keyboards/drop/sense75/rules.mk @@ -0,0 +1,2 @@ +EEPROM_DRIVER = i2c +RGB_MATRIX_DRIVER = IS31FL3733 diff --git a/keyboards/drop/sense75/sense75.c b/keyboards/drop/sense75/sense75.c new file mode 100644 index 00000000000..8087f5c72e7 --- /dev/null +++ b/keyboards/drop/sense75/sense75.c @@ -0,0 +1,148 @@ +// Copyright 2022 Massdrop, Inc. +// SPDX-License-Identifier: GPL-2.0-or-later +#include "rgb_matrix.h" + +#ifdef RGB_MATRIX_ENABLE +const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +// top underglow sd2-sd17 + { 0, B_2, A_2, C_2 }, + { 0, B_3, A_3, C_3 }, + { 0, B_5, A_5, C_5 }, + { 0, B_6, A_6, C_6 }, + { 0, B_7, A_7, C_7 }, + { 0, B_9, A_9, C_9 }, + { 0, B_10, A_10, C_10 }, + { 0, B_12, A_12, C_12 }, + { 0, B_13, A_13, C_13 }, + { 0, B_14, A_14, C_14 }, + { 0, B_16, A_16, C_16 }, + { 1, B_12, A_12, C_12 }, + +// sd1 + function + sd18 + { 0, B_1, A_1, C_1 }, + { 0, E_2, D_2, F_2 }, + { 0, E_3, D_3, F_3 }, + { 0, E_4, D_4, F_4 }, + { 0, E_5, D_5, F_5 }, + { 0, E_6, D_6, F_6 }, + { 0, E_7, D_7, F_7 }, + { 0, E_8, D_8, F_8 }, + { 0, E_9, D_9, F_9 }, + { 0, E_10, D_10, F_10 }, + { 0, E_11, D_11, F_11 }, + { 0, E_12, D_12, F_12 }, + { 0, E_13, D_13, F_13 }, + { 0, E_14, D_14, F_14 }, + { 0, E_15, D_15, F_15 }, + // + { 1, B_13, A_13, C_13 }, + +// sd45 + num + sd20 + { 0, H_1, G_1, I_1 }, + { 0, H_2, G_2, I_2 }, + { 0, H_3, G_3, I_3 }, + { 0, H_4, G_4, I_4 }, + { 0, H_5, G_5, I_5 }, + { 0, H_6, G_6, I_6 }, + { 0, H_7, G_7, I_7 }, + { 0, H_8, G_8, I_8 }, + { 0, H_9, G_9, I_9 }, + { 0, H_10, G_10, I_10 }, + { 0, H_11, G_11, I_11 }, + { 0, H_12, G_12, I_12 }, + { 0, H_13, G_13, I_13 }, + { 0, H_14, G_14, I_14 }, + { 0, H_15, G_15, I_15 }, + { 0, H_16, G_16, I_16 }, + { 1, B_15, A_15, C_15 }, + +// 44+ qwer 21 + { 0, K_1, J_1, L_1 }, + { 0, K_2, J_2, L_2 }, + { 0, K_3, J_3, L_3 }, + { 0, K_4, J_4, L_4 }, + { 0, K_5, J_5, L_5 }, + { 0, K_6, J_6, L_6 }, + { 0, K_7, J_7, L_7 }, + { 0, K_8, J_8, L_8 }, + { 0, K_9, J_9, L_9 }, + { 0, K_10, J_10, L_10 }, + { 0, K_11, J_11, L_11 }, + { 0, K_12, J_12, L_12 }, + { 0, K_13, J_13, L_13 }, + { 0, K_14, J_14, L_14 }, + { 0, K_15, J_15, L_15 }, + { 0, K_16, J_16, L_16 }, + { 1, B_16, A_16, C_16 }, + +// asdf + { 1, B_2, A_2, C_2 }, + { 1, B_3, A_3, C_3 }, + { 1, B_4, A_4, C_4 }, + { 1, B_5, A_5, C_5 }, + { 1, B_6, A_6, C_6 }, + { 1, B_7, A_7, C_7 }, + { 1, B_8, A_8, C_8 }, + { 1, B_9, A_9, C_9 }, + { 1, B_10, A_10, C_10 }, + { 1, B_11, A_11, C_11 }, + { 1, E_12, D_12, F_12 }, + { 1, E_13, D_13, F_13 }, + { 1, E_14, D_14, F_14 }, + { 1, H_15, G_15, I_15 }, + +// 43 + zxcv + 22 + { 1, B_1, A_1, C_1 }, + { 1, E_2, D_2, F_2 }, + { 1, E_3, D_3, F_3 }, + { 1, E_4, D_4, F_4 }, + { 1, E_5, D_5, F_5 }, + { 1, E_6, D_6, F_6 }, + { 1, E_7, D_7, F_7 }, + { 1, E_8, D_8, F_8 }, + { 1, E_9, D_9, F_9 }, + { 1, E_10, D_10, F_10 }, + { 1, E_11, D_11, F_11 }, + { 1, H_12, G_12, I_12 }, + { 1, H_13, G_13, I_13 }, + { 1, H_14, G_14, I_14 }, + { 1, E_15, D_15, F_15 }, + +// 41 + mods + 23 + { 1, H_1, G_1, I_1 }, + { 1, H_2, G_2, I_2 }, + { 1, H_3, G_3, I_3 }, + { 1, H_4, G_4, I_4 }, + { 1, H_5, G_5, I_5 }, + { 1, H_6, G_6, I_6 }, + { 1, H_7, G_7, I_7 }, + { 1, H_8, G_8, I_8 }, + { 1, H_9, G_9, I_9 }, + { 1, H_10, G_10, I_10 }, + { 1, H_11, G_11, I_11 }, + { 1, E_16, D_16, F_16 }, + +// bottom underglow 24 - 39 + { 1, K_2, J_2, L_2 }, + { 1, K_3, J_3, L_3 }, + { 1, K_4, J_4, L_4 }, + { 1, K_6, J_6, L_6 }, + { 1, K_10, J_10, L_10 }, + { 1, K_13, J_13, L_13 }, + { 1, K_15, J_15, L_15 }, + { 1, H_16, G_16, I_16 } +}; +#endif + +#ifdef ENCODER_ENABLE +bool encoder_update_kb(uint8_t index, bool clockwise) { + if (!encoder_update_user(index, clockwise)) return false; + + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + return false; +} +#endif diff --git a/keyboards/dtisaac/dosa40rgb/config.h b/keyboards/dtisaac/dosa40rgb/config.h index 2651a4d9b51..60e5b1fcf32 100644 --- a/keyboards/dtisaac/dosa40rgb/config.h +++ b/keyboards/dtisaac/dosa40rgb/config.h @@ -41,7 +41,7 @@ along with this program. If not, see . #ifdef RGB_MATRIX_ENABLE #define RGB_DI_PIN D0 -#define DRIVER_LED_TOTAL 42 +#define RGB_MATRIX_LED_COUNT 42 #define RGB_MATRIX_KEYPRESSES // reacts to keypresses #define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses) #define RGB_MATRIX_FRAMEBUFFER_EFFECTS diff --git a/keyboards/durgod/dgk6x/config.h b/keyboards/durgod/dgk6x/config.h index bfb3f2ba9de..70247fd7457 100644 --- a/keyboards/durgod/dgk6x/config.h +++ b/keyboards/durgod/dgk6x/config.h @@ -62,7 +62,7 @@ #define DRIVER_ADDR_2 0b1010011 #define DRIVER_COUNT 2 -#define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) +#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) /* I2C Alternate function settings */ #define I2C1_SCL_PAL_MODE 1 diff --git a/keyboards/durgod/dgk6x/galaxy/galaxy.c b/keyboards/durgod/dgk6x/galaxy/galaxy.c index 86aef1bced9..dac96e04f35 100644 --- a/keyboards/durgod/dgk6x/galaxy/galaxy.c +++ b/keyboards/durgod/dgk6x/galaxy/galaxy.c @@ -18,7 +18,7 @@ #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location diff --git a/keyboards/durgod/dgk6x/hades/hades.c b/keyboards/durgod/dgk6x/hades/hades.c index 2f2f9e650f5..3d39f6d1ec1 100644 --- a/keyboards/durgod/dgk6x/hades/hades.c +++ b/keyboards/durgod/dgk6x/hades/hades.c @@ -19,7 +19,7 @@ #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location diff --git a/keyboards/durgod/dgk6x/venus/venus.c b/keyboards/durgod/dgk6x/venus/venus.c index 0b7fbd12f3d..1f26191a91b 100644 --- a/keyboards/durgod/dgk6x/venus/venus.c +++ b/keyboards/durgod/dgk6x/venus/venus.c @@ -18,7 +18,7 @@ #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location diff --git a/keyboards/dztech/dz60rgb/dz60rgb.c b/keyboards/dztech/dz60rgb/dz60rgb.c index 81f4846c2c8..0a7a2adfc64 100644 --- a/keyboards/dztech/dz60rgb/dz60rgb.c +++ b/keyboards/dztech/dz60rgb/dz60rgb.c @@ -1,7 +1,7 @@ #include "dz60rgb.h" #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { { 0, K_14, J_14, L_14 }, { 0, K_13, J_13, L_13 }, { 0, K_12, J_12, L_12 }, diff --git a/keyboards/dztech/dz60rgb/keymaps/mekanist/keymap.c b/keyboards/dztech/dz60rgb/keymaps/mekanist/keymap.c index 3fe99fd61b4..d2905af49fe 100644 --- a/keyboards/dztech/dz60rgb/keymaps/mekanist/keymap.c +++ b/keyboards/dztech/dz60rgb/keymaps/mekanist/keymap.c @@ -50,7 +50,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { void rgb_matrix_layer_helper (uint8_t red, uint8_t green, uint8_t blue) { - for (int i = 0; i < DRIVER_LED_TOTAL; i++) { + for (int i = 0; i < RGB_MATRIX_LED_COUNT; i++) { if (HAS_FLAGS(g_led_config.flags[i], LED_FLAG_MODIFIER)) { rgb_matrix_set_color( i, red, green, blue ); } diff --git a/keyboards/dztech/dz60rgb/keymaps/perseid/keymap.c b/keyboards/dztech/dz60rgb/keymaps/perseid/keymap.c index eeffe66f40f..191789199ac 100644 --- a/keyboards/dztech/dz60rgb/keymaps/perseid/keymap.c +++ b/keyboards/dztech/dz60rgb/keymaps/perseid/keymap.c @@ -27,7 +27,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; void rgb_matrix_layer_helper (uint8_t red, uint8_t green, uint8_t blue) { - for (int i = 0; i < DRIVER_LED_TOTAL; i++) { + for (int i = 0; i < RGB_MATRIX_LED_COUNT; i++) { if (HAS_FLAGS(g_led_config.flags[i], LED_FLAG_MODIFIER)) { rgb_matrix_set_color( i, red, green, blue ); } diff --git a/keyboards/dztech/dz60rgb/v1/config.h b/keyboards/dztech/dz60rgb/v1/config.h index b150e4a1622..5933d23ea36 100644 --- a/keyboards/dztech/dz60rgb/v1/config.h +++ b/keyboards/dztech/dz60rgb/v1/config.h @@ -81,5 +81,5 @@ # define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_ALL # define DRIVER_ADDR_1 0b1010000 # define DRIVER_COUNT 1 -# define DRIVER_LED_TOTAL 63 +# define RGB_MATRIX_LED_COUNT 63 #endif diff --git a/keyboards/dztech/dz60rgb/v2/config.h b/keyboards/dztech/dz60rgb/v2/config.h index 3c6d07121bb..296e68a8b4b 100644 --- a/keyboards/dztech/dz60rgb/v2/config.h +++ b/keyboards/dztech/dz60rgb/v2/config.h @@ -79,5 +79,5 @@ # define DRIVER_ADDR_1 0b1010000 # define DRIVER_COUNT 1 -# define DRIVER_LED_TOTAL 63 +# define RGB_MATRIX_LED_COUNT 63 #endif diff --git a/keyboards/dztech/dz60rgb/v2_1/config.h b/keyboards/dztech/dz60rgb/v2_1/config.h index 2079390a3be..ffbc547d38f 100644 --- a/keyboards/dztech/dz60rgb/v2_1/config.h +++ b/keyboards/dztech/dz60rgb/v2_1/config.h @@ -95,5 +95,5 @@ # define DRIVER_ADDR_1 0b1010000 # define DRIVER_COUNT 1 -# define DRIVER_LED_TOTAL 63 +# define RGB_MATRIX_LED_COUNT 63 #endif diff --git a/keyboards/dztech/dz60rgb_ansi/dz60rgb_ansi.c b/keyboards/dztech/dz60rgb_ansi/dz60rgb_ansi.c index 0929ddbf477..ea4fa429acf 100644 --- a/keyboards/dztech/dz60rgb_ansi/dz60rgb_ansi.c +++ b/keyboards/dztech/dz60rgb_ansi/dz60rgb_ansi.c @@ -1,7 +1,7 @@ #include "dz60rgb_ansi.h" #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { { 0, K_14, J_14, L_14 }, { 0, K_13, J_13, L_13 }, { 0, K_12, J_12, L_12 }, diff --git a/keyboards/dztech/dz60rgb_ansi/keymaps/muralisc/keymap.c b/keyboards/dztech/dz60rgb_ansi/keymaps/muralisc/keymap.c index aae11739886..239e4ea8ba5 100644 --- a/keyboards/dztech/dz60rgb_ansi/keymaps/muralisc/keymap.c +++ b/keyboards/dztech/dz60rgb_ansi/keymaps/muralisc/keymap.c @@ -74,7 +74,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; void rgb_matrix_layer_helper (uint8_t red, uint8_t green, uint8_t blue) { - for (int i = 0; i < DRIVER_LED_TOTAL; i++) { + for (int i = 0; i < RGB_MATRIX_LED_COUNT; i++) { if (HAS_FLAGS(g_led_config.flags[i], LED_FLAG_MODIFIER)) { rgb_matrix_set_color( i, red, green, blue ); } diff --git a/keyboards/dztech/dz60rgb_ansi/v1/config.h b/keyboards/dztech/dz60rgb_ansi/v1/config.h index 9b31f27f2fc..3148c745efa 100644 --- a/keyboards/dztech/dz60rgb_ansi/v1/config.h +++ b/keyboards/dztech/dz60rgb_ansi/v1/config.h @@ -81,5 +81,5 @@ # define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_ALL # define DRIVER_ADDR_1 0b1010000 # define DRIVER_COUNT 1 -# define DRIVER_LED_TOTAL 61 +# define RGB_MATRIX_LED_COUNT 61 #endif diff --git a/keyboards/dztech/dz60rgb_ansi/v2/config.h b/keyboards/dztech/dz60rgb_ansi/v2/config.h index 92fcd17c884..c7baf23c5aa 100644 --- a/keyboards/dztech/dz60rgb_ansi/v2/config.h +++ b/keyboards/dztech/dz60rgb_ansi/v2/config.h @@ -79,5 +79,5 @@ # define DRIVER_ADDR_1 0b1010000 # define DRIVER_COUNT 1 -# define DRIVER_LED_TOTAL 61 +# define RGB_MATRIX_LED_COUNT 61 #endif diff --git a/keyboards/dztech/dz60rgb_ansi/v2_1/config.h b/keyboards/dztech/dz60rgb_ansi/v2_1/config.h index 7ec226c30b1..27bf2270c8b 100644 --- a/keyboards/dztech/dz60rgb_ansi/v2_1/config.h +++ b/keyboards/dztech/dz60rgb_ansi/v2_1/config.h @@ -95,5 +95,5 @@ # define DRIVER_ADDR_1 0b1010000 # define DRIVER_COUNT 1 -# define DRIVER_LED_TOTAL 61 +# define RGB_MATRIX_LED_COUNT 61 #endif diff --git a/keyboards/dztech/dz60rgb_wkl/dz60rgb_wkl.c b/keyboards/dztech/dz60rgb_wkl/dz60rgb_wkl.c index 83feb584562..53d0e9fa148 100644 --- a/keyboards/dztech/dz60rgb_wkl/dz60rgb_wkl.c +++ b/keyboards/dztech/dz60rgb_wkl/dz60rgb_wkl.c @@ -1,7 +1,7 @@ #include "dz60rgb_wkl.h" #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { { 0, H_15, G_15, I_15 }, { 0, K_14, J_14, L_14 }, { 0, K_13, J_13, L_13 }, diff --git a/keyboards/dztech/dz60rgb_wkl/v1/config.h b/keyboards/dztech/dz60rgb_wkl/v1/config.h index d7d8c3a0a12..ba747af0600 100644 --- a/keyboards/dztech/dz60rgb_wkl/v1/config.h +++ b/keyboards/dztech/dz60rgb_wkl/v1/config.h @@ -81,5 +81,5 @@ # define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_ALL # define DRIVER_ADDR_1 0b1010000 # define DRIVER_COUNT 1 -# define DRIVER_LED_TOTAL 62 +# define RGB_MATRIX_LED_COUNT 62 #endif diff --git a/keyboards/dztech/dz60rgb_wkl/v2/config.h b/keyboards/dztech/dz60rgb_wkl/v2/config.h index a4416e806ce..67b6d61b0a0 100644 --- a/keyboards/dztech/dz60rgb_wkl/v2/config.h +++ b/keyboards/dztech/dz60rgb_wkl/v2/config.h @@ -76,5 +76,5 @@ # define DRIVER_ADDR_1 0b1010000 # define DRIVER_COUNT 1 -# define DRIVER_LED_TOTAL 62 +# define RGB_MATRIX_LED_COUNT 62 #endif diff --git a/keyboards/dztech/dz60rgb_wkl/v2_1/config.h b/keyboards/dztech/dz60rgb_wkl/v2_1/config.h index 3803b4834fc..24ce267e1bf 100644 --- a/keyboards/dztech/dz60rgb_wkl/v2_1/config.h +++ b/keyboards/dztech/dz60rgb_wkl/v2_1/config.h @@ -95,5 +95,5 @@ # define DRIVER_ADDR_1 0b1010000 # define DRIVER_COUNT 1 -# define DRIVER_LED_TOTAL 62 +# define RGB_MATRIX_LED_COUNT 62 #endif diff --git a/keyboards/dztech/dz64rgb/config.h b/keyboards/dztech/dz64rgb/config.h index 11f623c1bdd..c90b14a5f53 100644 --- a/keyboards/dztech/dz64rgb/config.h +++ b/keyboards/dztech/dz64rgb/config.h @@ -59,6 +59,6 @@ #define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_ALL #define DRIVER_ADDR_1 0b1010000 #define DRIVER_COUNT 1 -#define DRIVER_LED_TOTAL 64 +#define RGB_MATRIX_LED_COUNT 64 #endif #define VIA_EEPROM_LAYOUT_OPTIONS_SIZE 2 diff --git a/keyboards/dztech/dz64rgb/dz64rgb.c b/keyboards/dztech/dz64rgb/dz64rgb.c index 3850dbe2762..e6b218fea60 100644 --- a/keyboards/dztech/dz64rgb/dz64rgb.c +++ b/keyboards/dztech/dz64rgb/dz64rgb.c @@ -17,7 +17,7 @@ #include "dz64rgb.h" #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { { 0, K_14, J_14, L_14 }, { 0, K_13, J_13, L_13 }, { 0, K_12, J_12, L_12 }, diff --git a/keyboards/dztech/dz65rgb/v1/config.h b/keyboards/dztech/dz65rgb/v1/config.h index 0ae51730512..09ae7b81f52 100644 --- a/keyboards/dztech/dz65rgb/v1/config.h +++ b/keyboards/dztech/dz65rgb/v1/config.h @@ -97,5 +97,5 @@ # define DRIVER_COUNT 2 # define DRIVER_1_LED_TOTAL 35 # define DRIVER_2_LED_TOTAL 33 -# define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) +# define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) #endif diff --git a/keyboards/dztech/dz65rgb/v1/v1.c b/keyboards/dztech/dz65rgb/v1/v1.c index 8caced800b4..e0f12bb6cd8 100644 --- a/keyboards/dztech/dz65rgb/v1/v1.c +++ b/keyboards/dztech/dz65rgb/v1/v1.c @@ -16,7 +16,7 @@ #include "v1.h" #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { { 0, C8_8, C7_8, C6_8 }, { 0, C9_8, C7_7, C6_7 }, { 0, C9_7, C8_7, C6_6 }, diff --git a/keyboards/dztech/dz65rgb/v2/config.h b/keyboards/dztech/dz65rgb/v2/config.h index d2dec023ef9..043796456df 100644 --- a/keyboards/dztech/dz65rgb/v2/config.h +++ b/keyboards/dztech/dz65rgb/v2/config.h @@ -97,5 +97,5 @@ # define DRIVER_COUNT 2 # define DRIVER_1_LED_TOTAL 35 # define DRIVER_2_LED_TOTAL 33 -# define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) +# define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) #endif diff --git a/keyboards/dztech/dz65rgb/v2/v2.c b/keyboards/dztech/dz65rgb/v2/v2.c index db8e968cc4d..f9833b2142e 100644 --- a/keyboards/dztech/dz65rgb/v2/v2.c +++ b/keyboards/dztech/dz65rgb/v2/v2.c @@ -16,7 +16,7 @@ #include "v2.h" #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { { 0, C8_8, C7_8, C6_8 }, { 0, C9_8, C7_7, C6_7 }, { 0, C9_7, C8_7, C6_6 }, diff --git a/keyboards/dztech/dz65rgb/v3/config.h b/keyboards/dztech/dz65rgb/v3/config.h index ed7775a74b7..04c813cad5d 100755 --- a/keyboards/dztech/dz65rgb/v3/config.h +++ b/keyboards/dztech/dz65rgb/v3/config.h @@ -89,6 +89,6 @@ # define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_ALL # define DRIVER_ADDR_1 0b0110000 # define DRIVER_COUNT 1 -# define DRIVER_LED_TOTAL 68 +# define RGB_MATRIX_LED_COUNT 68 # define DRIVER_INDICATOR_LED_TOTAL 0 #endif diff --git a/keyboards/dztech/dz65rgb/v3/v3.c b/keyboards/dztech/dz65rgb/v3/v3.c index 18f87dc00b6..c3562c7c5d9 100755 --- a/keyboards/dztech/dz65rgb/v3/v3.c +++ b/keyboards/dztech/dz65rgb/v3/v3.c @@ -18,7 +18,7 @@ #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { {0, CS21_SW1, CS20_SW1, CS19_SW1}, {0, CS21_SW2, CS20_SW2, CS19_SW2}, {0, CS21_SW3, CS20_SW3, CS19_SW3}, diff --git a/keyboards/eek/config.h b/keyboards/eek/config.h index e183afa0be5..a4c74fc7942 100644 --- a/keyboards/eek/config.h +++ b/keyboards/eek/config.h @@ -59,7 +59,7 @@ along with this program. If not, see . #endif #ifdef RGB_MATRIX_ENABLE - #define DRIVER_LED_TOTAL 36 + #define RGB_MATRIX_LED_COUNT 36 #define RGB_MATRIX_LED_FLUSH_LIMIT 16 #define RGB_MATRIX_STARTUP_VAL 150 #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 diff --git a/keyboards/ein_60/config.h b/keyboards/ein_60/config.h index 91311dea370..ad62eb96df9 100644 --- a/keyboards/ein_60/config.h +++ b/keyboards/ein_60/config.h @@ -73,7 +73,7 @@ along with this program. If not, see . #endif #ifdef RGB_MATRIX_ENABLE -# define DRIVER_LED_TOTAL 38 +# define RGB_MATRIX_LED_COUNT 38 # define RGB_MATRIX_LED_FLUSH_LIMIT 16 # define RGB_MATRIX_STARTUP_VAL 150 # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 diff --git a/keyboards/elephant42/config.h b/keyboards/elephant42/config.h index 26d9daba4e6..a1c4d21c115 100644 --- a/keyboards/elephant42/config.h +++ b/keyboards/elephant42/config.h @@ -65,7 +65,7 @@ along with this program. If not, see . #ifdef RGB_MATRIX_ENABLE # define SPLIT_TRANSPORT_MIRROR -# define DRIVER_LED_TOTAL RGBLED_NUM +# define RGB_MATRIX_LED_COUNT RGBLED_NUM # define RGB_MATRIX_SPLIT RGBLED_SPLIT # define RGB_MATRIX_MAXIMUM_BRIGHTNESS RGBLIGHT_LIMIT_VAL # define RGB_MATRIX_HUE_STEP RGBLIGHT_HUE_STEP diff --git a/keyboards/ergodox_ez/config.h b/keyboards/ergodox_ez/config.h index 8a3f4eb7dc1..0890127074d 100644 --- a/keyboards/ergodox_ez/config.h +++ b/keyboards/ergodox_ez/config.h @@ -119,7 +119,7 @@ along with this program. If not, see . #define DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 24 #define DRIVER_2_LED_TOTAL 24 -#define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) +#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) #define RGB_MATRIX_LED_PROCESS_LIMIT 5 #define RGB_MATRIX_LED_FLUSH_LIMIT 26 diff --git a/keyboards/ergodox_ez/ergodox_ez.c b/keyboards/ergodox_ez/ergodox_ez.c index 8d3790088da..7b9d9d3badc 100644 --- a/keyboards/ergodox_ez/ergodox_ez.c +++ b/keyboards/ergodox_ez/ergodox_ez.c @@ -243,7 +243,7 @@ const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { #ifdef RGB_MATRIX_ENABLE // clang-format off -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { /* driver * | R location * | | G location diff --git a/keyboards/evyd13/atom47/rev5/config.h b/keyboards/evyd13/atom47/rev5/config.h index d16ac9404f2..b9df73ce5e1 100644 --- a/keyboards/evyd13/atom47/rev5/config.h +++ b/keyboards/evyd13/atom47/rev5/config.h @@ -146,7 +146,7 @@ along with this program. If not, see . // The result is: 0b101(ADDR2)(ADDR1) #define DRIVER_ADDR_1 0b1010000 #define DRIVER_COUNT 1 -#define DRIVER_LED_TOTAL 64 +#define RGB_MATRIX_LED_COUNT 64 // RGB Matrix Animation modes. Explicitly enabled // For full list of effects, see: diff --git a/keyboards/evyd13/atom47/rev5/rev5.c b/keyboards/evyd13/atom47/rev5/rev5.c index f972b78867c..4506a69aa74 100644 --- a/keyboards/evyd13/atom47/rev5/rev5.c +++ b/keyboards/evyd13/atom47/rev5/rev5.c @@ -17,7 +17,7 @@ along with this program. If not, see . #include "rev5.h" -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location diff --git a/keyboards/exclusive/e6_rgb/config.h b/keyboards/exclusive/e6_rgb/config.h index c4765ce93cd..aea0dfc8f6a 100644 --- a/keyboards/exclusive/e6_rgb/config.h +++ b/keyboards/exclusive/e6_rgb/config.h @@ -25,4 +25,4 @@ #define DRIVER_ADDR_1 0b1010000 #define DRIVER_COUNT 1 -#define DRIVER_LED_TOTAL 63 +#define RGB_MATRIX_LED_COUNT 63 diff --git a/keyboards/exclusive/e6_rgb/e6_rgb.c b/keyboards/exclusive/e6_rgb/e6_rgb.c index 11d313e9a3b..ec17e414f3b 100644 --- a/keyboards/exclusive/e6_rgb/e6_rgb.c +++ b/keyboards/exclusive/e6_rgb/e6_rgb.c @@ -11,7 +11,7 @@ void matrix_init_kb(void) { matrix_init_user(); } -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location diff --git a/keyboards/fallacy/config.h b/keyboards/fallacy/config.h index 4aa7aaf348a..80c2c986f3e 100755 --- a/keyboards/fallacy/config.h +++ b/keyboards/fallacy/config.h @@ -36,7 +36,7 @@ */ #define LED_DRIVER_ADDR_1 0b1110100 #define LED_DRIVER_COUNT 1 -#define DRIVER_LED_TOTAL 3 +#define LED_MATRIX_LED_COUNT 3 /* Set 0 if debouncing isn't needed */ diff --git a/keyboards/fallacy/indicators.c b/keyboards/fallacy/indicators.c index c577bc9a8a5..8686f292fc6 100755 --- a/keyboards/fallacy/indicators.c +++ b/keyboards/fallacy/indicators.c @@ -25,7 +25,7 @@ void init_fallacy_leds(void) { i2c_init(); IS31FL3731_init(LED_DRIVER_ADDR_1); - for (int i = 0; i < DRIVER_LED_TOTAL; i++) { + for (int i = 0; i < LED_MATRIX_LED_COUNT; i++) { IS31FL3731_set_led_control_register(i, true); } @@ -54,7 +54,7 @@ void set_fallacy_led(int index, bool state) { /* define LED matrix */ -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[LED_MATRIX_LED_COUNT] = { {0, C1_1}, {0, C2_1}, {0, C3_1}, diff --git a/keyboards/feker/ik75/config.h b/keyboards/feker/ik75/config.h index 541fb86b73e..1c086b35514 100644 --- a/keyboards/feker/ik75/config.h +++ b/keyboards/feker/ik75/config.h @@ -46,7 +46,7 @@ #endif #ifdef RGB_MATRIX_ENABLE - #define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) + #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 #define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS #define RGB_MATRIX_KEYPRESSES diff --git a/keyboards/feker/ik75/ik75.c b/keyboards/feker/ik75/ik75.c index 58464e19344..af7d12fedc2 100644 --- a/keyboards/feker/ik75/ik75.c +++ b/keyboards/feker/ik75/ik75.c @@ -18,7 +18,7 @@ #include "ik75.h" #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | G location diff --git a/keyboards/ferris/0_2/bling/bling.c b/keyboards/ferris/0_2/bling/bling.c index e4d0bdbf7e3..8af1d33e85e 100644 --- a/keyboards/ferris/0_2/bling/bling.c +++ b/keyboards/ferris/0_2/bling/bling.c @@ -27,7 +27,7 @@ along with this program. If not, see . | | 4 | | || | | 4 | | | 6 | | | 2 || 2 | | | 5 | */ -const is31_led g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led g_is31_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location diff --git a/keyboards/ferris/0_2/bling/config.h b/keyboards/ferris/0_2/bling/config.h index ceb02e737b6..cbb3b11c90e 100644 --- a/keyboards/ferris/0_2/bling/config.h +++ b/keyboards/ferris/0_2/bling/config.h @@ -23,7 +23,7 @@ along with this program. If not, see . #define DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 7 #define DRIVER_2_LED_TOTAL 7 -#define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) +#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) // RGB Matrix Animation modes. Explicitly enabled // For full list of effects, see: diff --git a/keyboards/frooastboard/walnut/config.h b/keyboards/frooastboard/walnut/config.h index 081a084d161..3015201d42c 100644 --- a/keyboards/frooastboard/walnut/config.h +++ b/keyboards/frooastboard/walnut/config.h @@ -12,7 +12,7 @@ #define ISSI_SWPULLUP PUR_0R #define ISSI_CSPULLUP PUR_0R #define DRIVER_COUNT 1 -#define DRIVER_LED_TOTAL 48 +#define RGB_MATRIX_LED_COUNT 48 #define DRIVER_ADDR_1 0b1010000 #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 191 diff --git a/keyboards/frooastboard/walnut/walnut.c b/keyboards/frooastboard/walnut/walnut.c index 0b84d3c5771..da398205a0a 100644 --- a/keyboards/frooastboard/walnut/walnut.c +++ b/keyboards/frooastboard/walnut/walnut.c @@ -5,7 +5,7 @@ #if defined(RGB_MATRIX_ENABLE) -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location diff --git a/keyboards/fungo/rev1/info.json b/keyboards/fungo/rev1/info.json index 6941d70d815..cb5b7c69919 100644 --- a/keyboards/fungo/rev1/info.json +++ b/keyboards/fungo/rev1/info.json @@ -63,10 +63,10 @@ {"x":4, "y":3.125}, {"x":5, "y":3.25}, {"x":6, "y":3.5}, - {"x":7, "y":4}, - {"x":8.25, "y":3.75}, - {"x":9.75, "y":3.75}, - {"x":11, "y":4}, + {"x":7, "y":4.25}, + {"x":8, "y":4.5}, + {"x":10, "y":4.5}, + {"x":11, "y":4.25}, {"x":12, "y":3.5}, {"x":13, "y":3.25}, {"x":14, "y":3.125}, @@ -78,20 +78,20 @@ {"x":0, "y":4.375}, {"x":1, "y":4.375}, {"x":2, "y":4.25}, - {"x":3, "y":4.25}, - {"x":4.333, "y":4.25}, - {"x":5.667, "y":4.625}, - {"x":7, "y":5}, - {"x":8.25, "y":4.75}, - {"x":9.75, "y":4.75}, - {"x":11, "y":5}, - {"x":12.333, "y":4.625}, - {"x":13.667, "y":4.25}, - {"x":15, "y":4.25}, + {"x":3.25, "y":4.25}, + {"x":4.5, "y":4.5}, + {"x":5.75, "y":5}, + {"x":7, "y":5.25}, + {"x":8, "y":5.5}, + {"x":10, "y":5.5}, + {"x":11, "y":5.25}, + {"x":12.25, "y":5}, + {"x":13.5, "y":4.5}, + {"x":14.75, "y":4.25}, {"x":16, "y":4.25}, {"x":17, "y":4.375}, {"x":18, "y":4.375} ] } } -} +} \ No newline at end of file diff --git a/keyboards/geekboards/macropad_v2/config.h b/keyboards/geekboards/macropad_v2/config.h index 7ddbefea2a2..b9096da1d7a 100644 --- a/keyboards/geekboards/macropad_v2/config.h +++ b/keyboards/geekboards/macropad_v2/config.h @@ -22,7 +22,7 @@ #define DIRECT_PINS {{B13, B15, B3, B5}, {B12, B14, A13, B7}} #define RGBLED_NUM 42 -#define DRIVER_LED_TOTAL 42 +#define RGB_MATRIX_LED_COUNT 42 #define RGB_DI_PIN A7 // PWM RGB Underglow Defines diff --git a/keyboards/geekboards/tester/config.h b/keyboards/geekboards/tester/config.h index bdf2d39c98d..aee0b1294f1 100644 --- a/keyboards/geekboards/tester/config.h +++ b/keyboards/geekboards/tester/config.h @@ -71,5 +71,5 @@ # define DRIVER_COUNT 2 # define DRIVER_1_LED_TOTAL 8 # define DRIVER_2_LED_TOTAL 0 -# define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) +# define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) #endif diff --git a/keyboards/geekboards/tester/tester.c b/keyboards/geekboards/tester/tester.c index 70865c461f4..f2d2301ec93 100644 --- a/keyboards/geekboards/tester/tester.c +++ b/keyboards/geekboards/tester/tester.c @@ -1,5 +1,5 @@ #include "tester.h" -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location diff --git a/keyboards/giabalanai/config.h b/keyboards/giabalanai/config.h index efad053aaeb..7f7751897f0 100644 --- a/keyboards/giabalanai/config.h +++ b/keyboards/giabalanai/config.h @@ -108,7 +108,7 @@ along with this program. If not, see . #ifdef RGB_MATRIX_ENABLE /* ws2812 RGB MATRIX */ -# define DRIVER_LED_TOTAL 123 +# define RGB_MATRIX_LED_COUNT 123 # define RGB_MATRIX_KEYPRESSES // reacts to keypresses // for all fingers used at once. diff --git a/keyboards/giabalanai/keymaps/party/rgb_matrix_user.inc b/keyboards/giabalanai/keymaps/party/rgb_matrix_user.inc index 40ce7148d31..6159968a69b 100644 --- a/keyboards/giabalanai/keymaps/party/rgb_matrix_user.inc +++ b/keyboards/giabalanai/keymaps/party/rgb_matrix_user.inc @@ -40,7 +40,7 @@ bool my_solid_reactive_with_CnoteIndicator(effect_params_t* params) { RGB rgb = rgb_matrix_hsv_to_rgb(hsv); rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); } - return led_max < DRIVER_LED_TOTAL; + return led_max < RGB_MATRIX_LED_COUNT; } bool my_party_rocks(effect_params_t* params) { @@ -49,7 +49,7 @@ bool my_party_rocks(effect_params_t* params) { RGB rgb = rgb_matrix_hsv_to_rgb(hsv); // rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); rgb_matrix_set_color_all(rgb.r, rgb.g, rgb.b); - return led_max < DRIVER_LED_TOTAL; + return led_max < RGB_MATRIX_LED_COUNT; } diff --git a/keyboards/gizmo_engineering/gk6/config.h b/keyboards/gizmo_engineering/gk6/config.h index 1a8bf513122..3fa2d120bc7 100755 --- a/keyboards/gizmo_engineering/gk6/config.h +++ b/keyboards/gizmo_engineering/gk6/config.h @@ -46,7 +46,7 @@ along with this program. If not, see . #define DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 32 #define DRIVER_2_LED_TOTAL 32 -#define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) +#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) #define RGB_MATRIX_KEYPRESSES #define RGB_DISABLE_WHEN_USB_SUSPENDED diff --git a/keyboards/gizmo_engineering/gk6/gk6.c b/keyboards/gizmo_engineering/gk6/gk6.c index 9066fc85a5a..390213ef269 100755 --- a/keyboards/gizmo_engineering/gk6/gk6.c +++ b/keyboards/gizmo_engineering/gk6/gk6.c @@ -17,7 +17,7 @@ #include "gk6.h" #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { {0, C1_8, C2_8, C3_8}, //0 led1 {0, C1_7, C2_7, C3_7}, //1 led2 {0, C1_6, C2_6, C3_6}, //2 led3 diff --git a/keyboards/gl516/j73gl/keymaps/via_rgb_matrix/config.h b/keyboards/gl516/j73gl/keymaps/via_rgb_matrix/config.h index ef0643ce949..75e321507d1 100644 --- a/keyboards/gl516/j73gl/keymaps/via_rgb_matrix/config.h +++ b/keyboards/gl516/j73gl/keymaps/via_rgb_matrix/config.h @@ -25,7 +25,7 @@ #undef RGBLED_NUM #endif -#define DRIVER_LED_TOTAL 73 +#define RGB_MATRIX_LED_COUNT 73 #ifdef RGB_MATRIX_ENABLE #define RGB_MATRIX_KEYPRESSES // reacts to keypresses @@ -34,7 +34,7 @@ // #define RGB_DISABLE_TIMEOUT 0 // number of milliseconds to wait until rgb automatically turns off // #define RGB_DISABLE_AFTER_TIMEOUT 0 // OBSOLETE: number of ticks to wait until disabling effects #define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended - #define RGB_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) + #define RGB_MATRIX_LED_PROCESS_LIMIT (RGB_MATRIX_LED_COUNT + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) #define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness) #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 255 // limits maximum brightness of LEDs to 200 out of 255. If not defined maximum brightness is set to 255 // #define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_LEFT_RIGHT // Sets the default mode, if none has been set diff --git a/keyboards/gmmk/gmmk2/p65/ansi/ansi.c b/keyboards/gmmk/gmmk2/p65/ansi/ansi.c index 437b50648e7..28033da538c 100644 --- a/keyboards/gmmk/gmmk2/p65/ansi/ansi.c +++ b/keyboards/gmmk/gmmk2/p65/ansi/ansi.c @@ -18,7 +18,7 @@ #ifdef RGB_MATRIX_ENABLE -const aw_led g_aw_leds[DRIVER_LED_TOTAL] = { +const aw_led g_aw_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location diff --git a/keyboards/gmmk/gmmk2/p65/config.h b/keyboards/gmmk/gmmk2/p65/config.h index 6a6c22c6f0c..840a402dcfb 100644 --- a/keyboards/gmmk/gmmk2/p65/config.h +++ b/keyboards/gmmk/gmmk2/p65/config.h @@ -57,7 +57,7 @@ #define DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 54 #define DRIVER_2_LED_TOTAL 34 -#define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) +#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) // RGB Matrix Animation modes. Explicitly enabled // For full list of effects, see: diff --git a/keyboards/gmmk/gmmk2/p65/iso/iso.c b/keyboards/gmmk/gmmk2/p65/iso/iso.c index 651a612a58b..1a703538293 100644 --- a/keyboards/gmmk/gmmk2/p65/iso/iso.c +++ b/keyboards/gmmk/gmmk2/p65/iso/iso.c @@ -18,7 +18,7 @@ #ifdef RGB_MATRIX_ENABLE -const aw_led g_aw_leds[DRIVER_LED_TOTAL] = { +const aw_led g_aw_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location diff --git a/keyboards/gmmk/gmmk2/p96/ansi/ansi.c b/keyboards/gmmk/gmmk2/p96/ansi/ansi.c index 455a598982c..808b175555d 100644 --- a/keyboards/gmmk/gmmk2/p96/ansi/ansi.c +++ b/keyboards/gmmk/gmmk2/p96/ansi/ansi.c @@ -18,7 +18,7 @@ #ifdef RGB_MATRIX_ENABLE -const aw_led g_aw_leds[DRIVER_LED_TOTAL] = { +const aw_led g_aw_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location diff --git a/keyboards/gmmk/gmmk2/p96/config.h b/keyboards/gmmk/gmmk2/p96/config.h index 03a7f585388..aa7e59ef98c 100644 --- a/keyboards/gmmk/gmmk2/p96/config.h +++ b/keyboards/gmmk/gmmk2/p96/config.h @@ -61,7 +61,7 @@ #define DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 66 #define DRIVER_2_LED_TOTAL 54 -#define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) +#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) // RGB Matrix Animation modes. Explicitly enabled // For full list of effects, see: diff --git a/keyboards/gmmk/gmmk2/p96/iso/iso.c b/keyboards/gmmk/gmmk2/p96/iso/iso.c index e1fee180799..dc9f7be6829 100644 --- a/keyboards/gmmk/gmmk2/p96/iso/iso.c +++ b/keyboards/gmmk/gmmk2/p96/iso/iso.c @@ -18,7 +18,7 @@ #ifdef RGB_MATRIX_ENABLE -const aw_led g_aw_leds[DRIVER_LED_TOTAL] = { +const aw_led g_aw_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location diff --git a/keyboards/gmmk/pro/rev1/ansi/ansi.c b/keyboards/gmmk/pro/rev1/ansi/ansi.c index 1df3319fd25..3fc45d61d00 100644 --- a/keyboards/gmmk/pro/rev1/ansi/ansi.c +++ b/keyboards/gmmk/pro/rev1/ansi/ansi.c @@ -136,7 +136,7 @@ led_config_t g_led_config = {{ 4, 2, 2, 4, 4, 2, 2, 4, 2, 2, 4, 4, 2, 2, 4, 4, 2, 2, 4, 4, 4, 4, 4 }}; -const aw_led g_aw_leds[DRIVER_LED_TOTAL] = { +const aw_led g_aw_leds[RGB_MATRIX_LED_COUNT] = { {0, CS1_SW1, CS2_SW1, CS3_SW1}, // 0, ESC, k13 {0, CS4_SW1, CS5_SW1, CS6_SW1}, // 1, ~, k16 {0, CS7_SW1, CS8_SW1, CS9_SW1}, // 2, Tab, k11 diff --git a/keyboards/gmmk/pro/rev1/ansi/config.h b/keyboards/gmmk/pro/rev1/ansi/config.h index 7c68375b2f3..8e5518e1b9d 100644 --- a/keyboards/gmmk/pro/rev1/ansi/config.h +++ b/keyboards/gmmk/pro/rev1/ansi/config.h @@ -20,4 +20,4 @@ #define DRIVER_1_LED_TOTAL 66 #define DRIVER_2_LED_TOTAL 32 -#define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) +#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/alexmarmon/keymap.c b/keyboards/gmmk/pro/rev1/ansi/keymaps/alexmarmon/keymap.c index d666454a3e8..838aee86523 100644 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/alexmarmon/keymap.c +++ b/keyboards/gmmk/pro/rev1/ansi/keymaps/alexmarmon/keymap.c @@ -62,5 +62,6 @@ bool encoder_update_user(uint8_t index, bool clockwise) { } else { tap_code(KC_VOLD); } - return true; + //return true; //set to return false to counteract enabled encoder in pro.c + return false; } diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/andrebrait/config.h b/keyboards/gmmk/pro/rev1/ansi/keymaps/andrebrait/config.h index 1438d317fbd..dc943025306 100644 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/andrebrait/config.h +++ b/keyboards/gmmk/pro/rev1/ansi/keymaps/andrebrait/config.h @@ -1,4 +1,4 @@ -/* Copyright 2021 Andre Brait +/* Copyright 2022 Andre Brait * * 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/gmmk/pro/rev1/ansi/keymaps/andrebrait/keymap.c b/keyboards/gmmk/pro/rev1/ansi/keymaps/andrebrait/keymap.c index e5599a787dd..5679a1c0d7c 100644 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/andrebrait/keymap.c +++ b/keyboards/gmmk/pro/rev1/ansi/keymaps/andrebrait/keymap.c @@ -102,17 +102,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; // clang-format on -#ifdef ENCODER_ENABLE -bool encoder_update_user(uint8_t index, bool clockwise) { - if (clockwise) { - tap_code(KC_VOLU); - } else { - tap_code(KC_VOLD); - } - return true; -} -#endif // ENCODER_ENABLE - #ifdef RGB_MATRIX_ENABLE #define RGB_CONFIRMATION_BLINKING_TIME 2000 // 2 seconds diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/andrebrait/readme.md b/keyboards/gmmk/pro/rev1/ansi/keymaps/andrebrait/readme.md index 99d0a36721d..b080f02c6b3 100644 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/andrebrait/readme.md +++ b/keyboards/gmmk/pro/rev1/ansi/keymaps/andrebrait/readme.md @@ -8,8 +8,6 @@ The differences are as follows: - Dedicated MacOS and Windows/Linux layers - Switching between them by pressing Fn + CAPS LOCK - Disabled Mouse Keys (to fix issues with KVM switches and also because they're not used here anyway) -- Short DEBOUNCE time (5 ms) -- Per-key debounce algorithm (sym_defer_pk) - RGB turns off after 20 minutes of inactivity - RGB turns off when USB is suspended - Layer 0: diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/andrebrait/rules.mk b/keyboards/gmmk/pro/rev1/ansi/keymaps/andrebrait/rules.mk index 057e9a95411..8983ba87c3b 100644 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/andrebrait/rules.mk +++ b/keyboards/gmmk/pro/rev1/ansi/keymaps/andrebrait/rules.mk @@ -1,6 +1,4 @@ # Enable additional features. -DEBOUNCE_TYPE = sym_defer_pk - # Disabling MouseKey because it breaks my KVM switch MOUSEKEY_ENABLE = no diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/byungyoonc/keymap.c b/keyboards/gmmk/pro/rev1/ansi/keymaps/byungyoonc/keymap.c index fb60872ea89..b2cab6222fc 100644 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/byungyoonc/keymap.c +++ b/keyboards/gmmk/pro/rev1/ansi/keymaps/byungyoonc/keymap.c @@ -74,7 +74,8 @@ bool encoder_update_user(uint8_t index, bool clockwise) { tap_code16(KC_VOLD); } } - return true; + //return true; //set to return false to counteract enabled encoder in pro.c + return false; } #endif // ENCODER_ENABLE diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/cedrikl/keymap.c b/keyboards/gmmk/pro/rev1/ansi/keymaps/cedrikl/keymap.c index 3aa3fd828e7..024700174b8 100644 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/cedrikl/keymap.c +++ b/keyboards/gmmk/pro/rev1/ansi/keymaps/cedrikl/keymap.c @@ -68,7 +68,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { } else { tap_code(KC_VOLD); } - return true; + //return true; //set to return false to counteract enabled encoder in pro.c + return false; } #endif // ENCODER_ENABLE @@ -77,9 +78,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //void set_layer_rgb(uint8_t led_min, uint8_t led_max, int layer) { // const ledmap *l = &(ledmaps[layer]); // -// // -// for (int i = 0; i < DRIVER_LED_TOTAL; i++) { +// +// for (int i = 0; i < RGB_MATRIX_LED_COUNT; i++) { // HSV hsv = { // .h = (*l)[i][0], // .s = (*l)[i][1], diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/coryginsberg/keymap.c b/keyboards/gmmk/pro/rev1/ansi/keymaps/coryginsberg/keymap.c index 7d2c22506a0..b71d18d4817 100644 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/coryginsberg/keymap.c +++ b/keyboards/gmmk/pro/rev1/ansi/keymaps/coryginsberg/keymap.c @@ -107,5 +107,6 @@ bool encoder_update_user(uint8_t index, bool clockwise) { else { tap_code(KC_VOLD); } - return true; + //return true; //set to return false to counteract enabled encoder in pro.c + return false; } diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/default/keymap.c b/keyboards/gmmk/pro/rev1/ansi/keymaps/default/keymap.c index 91f29f8d62a..6b48c6bcdf6 100644 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/default/keymap.c +++ b/keyboards/gmmk/pro/rev1/ansi/keymaps/default/keymap.c @@ -59,14 +59,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; // clang-format on - -#ifdef ENCODER_ENABLE -bool encoder_update_user(uint8_t index, bool clockwise) { - if (clockwise) { - tap_code(KC_VOLU); - } else { - tap_code(KC_VOLD); - } - return false; -} -#endif // ENCODER_ENABLE diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/gigahawk/keymap.c b/keyboards/gmmk/pro/rev1/ansi/keymaps/gigahawk/keymap.c index 8eedeb6e005..f8fe872dab1 100644 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/gigahawk/keymap.c +++ b/keyboards/gmmk/pro/rev1/ansi/keymaps/gigahawk/keymap.c @@ -52,7 +52,8 @@ bool encoder_update_user(uint8_t index, bool clockwise) { } else { tap_code(KC_VOLD); } - return true; + //return true; //set to return false to counteract enabled encoder in pro.c + return false; } void rgb_matrix_indicators_user(void) { @@ -65,7 +66,7 @@ void rgb_matrix_indicators_user(void) { } if (host_keyboard_led_state().caps_lock) { - for (uint8_t i = 0; i < DRIVER_LED_TOTAL; ++i) { + for (uint8_t i = 0; i < RGB_MATRIX_LED_COUNT; ++i) { if (HAS_ANY_FLAGS(g_led_config.flags[i], LED_FLAG_UNDERGLOW)) { rgb_matrix_set_color(i, _CAPS_COLOR_RGB); } diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/hachetman/keymap.c b/keyboards/gmmk/pro/rev1/ansi/keymaps/hachetman/keymap.c index 3be0e5e31b7..6a7b2dd733d 100644 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/hachetman/keymap.c +++ b/keyboards/gmmk/pro/rev1/ansi/keymaps/hachetman/keymap.c @@ -83,7 +83,8 @@ bool encoder_update_user(uint8_t index, bool clockwise) { } else { tap_code(KC_VOLD); } - return true; + //return true; //set to return false to counteract enabled encoder in pro.c + return false; } #endif // ENCODER_ENABLE diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/jackkenney/keymap.c b/keyboards/gmmk/pro/rev1/ansi/keymaps/jackkenney/keymap.c index 98354b46544..1bedcab41f1 100644 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/jackkenney/keymap.c +++ b/keyboards/gmmk/pro/rev1/ansi/keymaps/jackkenney/keymap.c @@ -62,5 +62,6 @@ bool encoder_update_user(uint8_t index, bool clockwise) { else { tap_code(KC_VOLD); } - return true; + //return true; //set to return false to counteract enabled encoder in pro.c + return false; } diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/jonavin/keymap.c b/keyboards/gmmk/pro/rev1/ansi/keymaps/jonavin/keymap.c index 47490a0617b..6fd4f29e09f 100644 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/jonavin/keymap.c +++ b/keyboards/gmmk/pro/rev1/ansi/keymaps/jonavin/keymap.c @@ -112,7 +112,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { break; } } - return true; + //return true; //set to return false to counteract enabled encoder in pro.c + return false; } #endif // ENCODER_ENABLE && !ENCODER_DEFAULTACTIONS_ENABLE diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/macos/keymap.c b/keyboards/gmmk/pro/rev1/ansi/keymaps/macos/keymap.c index 8175cf68c8f..3f39229b16b 100644 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/macos/keymap.c +++ b/keyboards/gmmk/pro/rev1/ansi/keymaps/macos/keymap.c @@ -144,7 +144,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { } else { tap_code(KC_VOLD); } - return true; + //return true; //set to return false to counteract enabled encoder in pro.c + return false; } #endif //ENCODER_ENABLE diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/mattgauf/ansi.c b/keyboards/gmmk/pro/rev1/ansi/keymaps/mattgauf/ansi.c index 52c9dfdf991..a7ab0c9cc3a 100644 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/mattgauf/ansi.c +++ b/keyboards/gmmk/pro/rev1/ansi/keymaps/mattgauf/ansi.c @@ -136,7 +136,7 @@ led_config_t PROGMEM g_led_config = {{ 4, 2, 2, 4, 4, 2, 2, 4, 2, 2, 4, 4, 2, 2, 4, 4, 2, 2, 4, 4, 4, 4, 4 }}; -const aw_led g_aw_leds[DRIVER_LED_TOTAL] = { +const aw_led g_aw_leds[RGB_MATRIX_LED_COUNT] = { {0, CS1_SW1, CS2_SW1, CS3_SW1}, // 0, ESC, k13 {0, CS4_SW1, CS5_SW1, CS6_SW1}, // 1, ~, k16 {0, CS7_SW1, CS8_SW1, CS9_SW1}, // 2, Tab, k11 diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/mattgauf/helpers.c b/keyboards/gmmk/pro/rev1/ansi/keymaps/mattgauf/helpers.c index f3f443cedb4..d30224636b2 100644 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/mattgauf/helpers.c +++ b/keyboards/gmmk/pro/rev1/ansi/keymaps/mattgauf/helpers.c @@ -17,7 +17,7 @@ #include "rgb_matrix.h" void rgb_matrix_set_color_flags(uint8_t red, uint8_t green, uint8_t blue, uint8_t flags) { - for (uint8_t ii = 0; ii < DRIVER_LED_TOTAL; ii++) { + for (uint8_t ii = 0; ii < RGB_MATRIX_LED_COUNT; ii++) { if (g_led_config.flags[ii] & flags) { rgb_matrix_set_color(ii, red, green, blue); } diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/mattgauf/keymap.c b/keyboards/gmmk/pro/rev1/ansi/keymaps/mattgauf/keymap.c index 020322085b1..6e673a43737 100644 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/mattgauf/keymap.c +++ b/keyboards/gmmk/pro/rev1/ansi/keymaps/mattgauf/keymap.c @@ -173,7 +173,8 @@ bool encoder_update_user(uint8_t index, bool clockwise) { } } } - return true; + //return true; //set to return false to counteract enabled encoder in pro.c + return false; } diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/mike1808/encoder.c b/keyboards/gmmk/pro/rev1/ansi/keymaps/mike1808/encoder.c index 049f4df7e4a..43ed195fbb2 100644 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/mike1808/encoder.c +++ b/keyboards/gmmk/pro/rev1/ansi/keymaps/mike1808/encoder.c @@ -49,7 +49,8 @@ bool encoder_update_user(uint8_t index, bool clockwise) { (*encoder_mapping[state][1])(); } - return true; + //return true; //set to return false to counteract enabled encoder in pro.c + return false; } void handle_rgb_key(bool pressed) { diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/mike1808/rgb_matrix_ledmaps.c b/keyboards/gmmk/pro/rev1/ansi/keymaps/mike1808/rgb_matrix_ledmaps.c index 6f4d333ede3..d59b5cffc8e 100644 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/mike1808/rgb_matrix_ledmaps.c +++ b/keyboards/gmmk/pro/rev1/ansi/keymaps/mike1808/rgb_matrix_ledmaps.c @@ -44,7 +44,7 @@ void set_layer_rgb(uint8_t led_min, uint8_t led_max, int layer) { uint8_t val = rgb_matrix_get_val(); - for (int i = 0; i < DRIVER_LED_TOTAL; i++) { + for (int i = 0; i < RGB_MATRIX_LED_COUNT; i++) { HSV hsv = { .h = (*l)[i][0], .s = (*l)[i][1], diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/mike1808/rgb_matrix_ledmaps.h b/keyboards/gmmk/pro/rev1/ansi/keymaps/mike1808/rgb_matrix_ledmaps.h index eace217d187..b9b06309b2f 100644 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/mike1808/rgb_matrix_ledmaps.h +++ b/keyboards/gmmk/pro/rev1/ansi/keymaps/mike1808/rgb_matrix_ledmaps.h @@ -48,7 +48,7 @@ ka4, k73 \ } // clang-format on -typedef uint8_t ledmap[DRIVER_LED_TOTAL][3]; +typedef uint8_t ledmap[RGB_MATRIX_LED_COUNT][3]; extern const ledmap ledmaps[]; void set_layer_rgb(uint8_t led_min, uint8_t led_max, int layer); diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/paddlegame/keymap.c b/keyboards/gmmk/pro/rev1/ansi/keymaps/paddlegame/keymap.c index 164ff67e22f..72b4e58df02 100644 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/paddlegame/keymap.c +++ b/keyboards/gmmk/pro/rev1/ansi/keymaps/paddlegame/keymap.c @@ -86,20 +86,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [_MO2] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, TG(_MO2), _______, _______, _______, _______ ), [_MO3] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), @@ -128,7 +128,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { } } break; - + case _BASE: default: if ( clockwise ) { @@ -136,9 +136,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { } else { tap_code(KC_VOLD); } - break; + break; } - return true; + //return true; //set to return false to counteract enabled encoder in pro.c + return false; } #endif @@ -149,7 +150,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ball[i].up = false; ball[i].y = 0; ball[i].x = rand() % 16; - + // Set initial ball state if (ball[i].x < 8) { ball[i].left = false; @@ -157,7 +158,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ball[i].x -= 4; ball[i].left = true; } - + // 1/4 chance of being an enemy ball after level 6 if (level_number > 3) { ball[i].enemy = ((rand() % 4) == 0); @@ -172,7 +173,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { } damage_timer = timer_read(); damage_count = 10; - + // Reset board init_ball(0); ball[1].on = false; @@ -189,7 +190,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { rgb_value.g = 0x00; rgb_value.b = 0x00; } - + if (rgb_value.r == 0xff && rgb_value.g < 0xff) { if (rgb_value.b > 0) { --rgb_value.b; } else { ++rgb_value.g; } @@ -212,17 +213,17 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { for (uint8_t i=0; i> 1; if (damage_count > 0) { @@ -270,14 +271,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { if (damage_count == 0) { ball_timer = timer_read(); } - + } else if (paddle_lives == 0) { // Game over for (uint8_t i=0; i= 12) { // You win if (rgb_value.r == 0xff && rgb_value.g < 0xff) { @@ -290,7 +291,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { if (rgb_value.g > 0) { --rgb_value.g; } else { ++rgb_value.r; } } - + for (uint8_t i=0; i < 3 ; i++) { rgb_matrix_set_color(GAME_PADDLE[paddle_pos + i], rgb_value.r, rgb_value.g, rgb_value.b); } @@ -298,15 +299,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { rgb_matrix_set_color(GAME_SMILE1[paddle_pos + 3], rgb_value.r, rgb_value.g, rgb_value.b); rgb_matrix_set_color(GAME_SMILE2[paddle_pos], rgb_value.r, rgb_value.g, rgb_value.b); rgb_matrix_set_color(GAME_SMILE2[paddle_pos + 3], rgb_value.r, rgb_value.g, rgb_value.b); - + } else { // normal game loop - + // Set paddle position for (uint8_t i=0; i < 3 ; i++) { rgb_matrix_set_color(GAME_PADDLE[paddle_pos + i], RGB_GREEN); } - + // Ball movement logic happens at intervals if (timer_elapsed(ball_timer) > GAME_TIMER[level_number]) { for (int i=0; i<2; ++i) { @@ -331,7 +332,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { if (ball[i].y > 4) { // Remove a life if ball isn't returned and isn't enemy if (!ball[i].enemy) { - hurt_paddle(); + hurt_paddle(); i = 2; } else { ball[i].on = false; @@ -351,7 +352,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { } ball_timer = timer_read(); } - + // Other ball stuff for (int i=0; i<2; ++i) { if (ball[i].on) { @@ -410,12 +411,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { break; } } - } + } } - + break; - + default: fn_active = false; if (game_start) { @@ -423,7 +424,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { game_start = false; rgb_matrix_sethsv_noeeprom(last_hsv.h, last_hsv.s, last_hsv.v); } - break; + break; } if (IS_HOST_LED_ON(USB_LED_CAPS_LOCK)) { diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/stickandgum/keymap.c b/keyboards/gmmk/pro/rev1/ansi/keymaps/stickandgum/keymap.c index e4569ac3adf..ec271a0a374 100644 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/stickandgum/keymap.c +++ b/keyboards/gmmk/pro/rev1/ansi/keymaps/stickandgum/keymap.c @@ -76,7 +76,7 @@ bool encoder_update_user(uint8_t index, bool clockwise) { set_mods(mod_state); // Add back in the CTRL key - so ctrl-key will work if ctrl was never released after paging. } else if (get_mods() & MOD_MASK_SHIFT) { uint8_t mod_state = get_mods(); - unregister_mods(MOD_MASK_SHIFT); + unregister_mods(MOD_MASK_SHIFT); if (clockwise) { #ifdef MOUSEKEY_ENABLE // If using the mouse scroll - make sure MOUSEKEY is enabled tap_code(KC_MS_WH_DOWN); @@ -96,7 +96,8 @@ bool encoder_update_user(uint8_t index, bool clockwise) { } else { tap_code(KC_VOLD); } - return true; + //return true; //set to return false to counteract enabled encoder in pro.c + return false; } #endif //ENCODER_ENABLE @@ -108,17 +109,17 @@ static void set_rgb_scroll_leds_off(void); // Called on powerup and is the last _init that is run. void keyboard_post_init_user(void) { - + int mods[35] = {0,2,3,4,5,11,17,33,49,55,65,95,97,79,94,85,93,96,90,69,92,67,76,80,91,75,86,68,77,81,92,28,34,39,44}; int j; - + /* output each array element's value */ for (j = 0; j < 35; j++ ) { g_led_config.flags[mods[j]] = LED_FLAG_MODIFIER; } - if (!rgb_matrix_is_enabled()) { - rgb_matrix_enable(); + if (!rgb_matrix_is_enabled()) { + rgb_matrix_enable(); #ifdef CONSOLE_ENABLE uprintf("ERROR! RGB Matrix Enabled and wrote to EEPROM! -How was the RGB Matrix Disabled?"); #endif @@ -205,15 +206,15 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { case LED_EQL: rgb_matrix_mode(RGB_MATRIX_TYPING_HEATMAP); break; - #endif //RGB_MATRIX_FRAMEBUFFER_EFFECTS + #endif //RGB_MATRIX_FRAMEBUFFER_EFFECTS case QMKBEST: if (record->event.pressed) { // when keycode QMKBEST is pressed SEND_STRING("QMK rocks"); - } else { // when keycode QMKBEST key is released + } else { // when keycode QMKBEST key is released SEND_STRING("!!"); } break; - } + } return true; } @@ -245,7 +246,7 @@ void rgb_matrix_indicators_user(void) { // 87, led 07 88, led 18 // 91, led 08 92, led 19 -static void set_rgb_caps_leds_on() { +static void set_rgb_caps_leds_on() { rgb_matrix_set_color(0, 255, 0, 0); //Escape Key rgb_matrix_set_color(3, 255, 0, 0); //capslock key rgb_matrix_set_color(5, 255, 0, 0); //Left CTRL key @@ -289,11 +290,11 @@ static void set_rgb_caps_leds_off() { rgb_matrix_set_color(92, 0, 0, 0); //Right LED 19 } -static void set_rgb_scroll_leds_on() { +static void set_rgb_scroll_leds_on() { rgb_matrix_set_color(72, 255, 255, 255); // Under Rotary (HOME) } -static void set_rgb_scroll_leds_off() { +static void set_rgb_scroll_leds_off() { rgb_matrix_set_color(72, 0, 0, 0); // Under Rotary (HOME) } diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/via/keymap.c b/keyboards/gmmk/pro/rev1/ansi/keymaps/via/keymap.c index 1f59b52999f..be559b082c7 100644 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/via/keymap.c +++ b/keyboards/gmmk/pro/rev1/ansi/keymaps/via/keymap.c @@ -76,14 +76,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; // clang-format on - -#ifdef ENCODER_ENABLE -bool encoder_update_user(uint8_t index, bool clockwise) { - if (clockwise) { - tap_code(KC_VOLU); - } else { - tap_code(KC_VOLD); - } - return false; -} -#endif // ENCODER_ENABLE diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/wholesomeducky/keymap.c b/keyboards/gmmk/pro/rev1/ansi/keymaps/wholesomeducky/keymap.c index fd649021081..e558d84527e 100644 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/wholesomeducky/keymap.c +++ b/keyboards/gmmk/pro/rev1/ansi/keymaps/wholesomeducky/keymap.c @@ -53,5 +53,6 @@ bool encoder_update_user(uint8_t index, bool clockwise) { } else { tap_code(KC_MS_WH_LEFT); } - return true; + //return true; //set to return false to counteract enabled encoder in pro.c + return false; } diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/willwm/keymap.c b/keyboards/gmmk/pro/rev1/ansi/keymaps/willwm/keymap.c index 2ee79eae79b..5343f1b6491 100644 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/willwm/keymap.c +++ b/keyboards/gmmk/pro/rev1/ansi/keymaps/willwm/keymap.c @@ -69,5 +69,6 @@ bool encoder_update_user(uint8_t index, bool clockwise) { } else { tap_code(KC_VOLD); } - return true; + //return true; //set to return false to counteract enabled encoder in pro.c + return false; } diff --git a/keyboards/gmmk/pro/rev1/iso/config.h b/keyboards/gmmk/pro/rev1/iso/config.h index 26626ccfc18..d8074af06c4 100644 --- a/keyboards/gmmk/pro/rev1/iso/config.h +++ b/keyboards/gmmk/pro/rev1/iso/config.h @@ -20,4 +20,4 @@ #define DRIVER_1_LED_TOTAL 66 #define DRIVER_2_LED_TOTAL 33 -#define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) +#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) diff --git a/keyboards/gmmk/pro/rev1/iso/iso.c b/keyboards/gmmk/pro/rev1/iso/iso.c index fa57f1ca924..babb6bd6c73 100644 --- a/keyboards/gmmk/pro/rev1/iso/iso.c +++ b/keyboards/gmmk/pro/rev1/iso/iso.c @@ -137,7 +137,7 @@ led_config_t g_led_config = {{ 2, 4, 2, 2, 4, 4, 2, 2, 4, 2, 2, 4, 4, 2, 2, 4, 4, 2, 2, 4, 4, 4, 4, 4 }}; -const aw_led g_aw_leds[DRIVER_LED_TOTAL] = { +const aw_led g_aw_leds[RGB_MATRIX_LED_COUNT] = { {0, CS1_SW1, CS2_SW1, CS3_SW1}, // 0, ESC, k13 {0, CS4_SW1, CS5_SW1, CS6_SW1}, // 1, ~, k16 {0, CS7_SW1, CS8_SW1, CS9_SW1}, // 2, Tab, k11 diff --git a/keyboards/gmmk/pro/rev1/iso/keymaps/default/keymap.c b/keyboards/gmmk/pro/rev1/iso/keymaps/default/keymap.c index 0aedb78285b..2575eaa7f02 100644 --- a/keyboards/gmmk/pro/rev1/iso/keymaps/default/keymap.c +++ b/keyboards/gmmk/pro/rev1/iso/keymaps/default/keymap.c @@ -59,14 +59,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; // clang-format on - -#ifdef ENCODER_ENABLE -bool encoder_update_user(uint8_t index, bool clockwise) { - if (clockwise) { - tap_code(KC_VOLU); - } else { - tap_code(KC_VOLD); - } - return false; -} -#endif diff --git a/keyboards/gmmk/pro/rev1/iso/keymaps/falkecarlsen/keymap.c b/keyboards/gmmk/pro/rev1/iso/keymaps/falkecarlsen/keymap.c new file mode 100644 index 00000000000..694fd80e197 --- /dev/null +++ b/keyboards/gmmk/pro/rev1/iso/keymaps/falkecarlsen/keymap.c @@ -0,0 +1,72 @@ +/* Copyright 2021 Glorious, LLC + +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 . +*/ + +#include QMK_KEYBOARD_H + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +// ESC F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 Prt Rotary(Mute) +// ~ 1 2 3 4 5 6 7 8 9 0 - (=) BackSpc Del +// Tab Q W E R T Y U I O P [ ] PgUp +// Caps A S D F G H J K L ; " # Enter PgDn +// Sh_L / Z X C V B N M , . ? Sh_R Up End +// Ct_L Win_L Alt_L SPACE Alt_R FN Ct_R Left Down Right + + + // The FN key by default maps to a momentary toggle to layer 1 to provide access to the QK_BOOT key (to put the board into bootloader mode). Without + // this mapping, you have to open the case to hit the button on the bottom of the PCB (near the USB cable attachment) while plugging in the USB + // cable to get the board into bootloader mode - definitely not fun when you're working on your QMK builds. Remove this and put it back to KC_RGUI + // if that's your preference. + // + // To put the keyboard in bootloader mode, use FN+backspace. If you accidentally put it into bootloader, you can just unplug the USB cable and + // it'll be back to normal when you plug it back in. + // + // This keyboard defaults to 6KRO instead of NKRO for compatibility reasons (some KVMs and BIOSes are incompatible with NKRO). + // Since this is, among other things, a "gaming" keyboard, a key combination to enable NKRO on the fly is provided for convenience. + // Press Fn+N to toggle between 6KRO and NKRO. This setting is persisted to the EEPROM and thus persists between restarts. + [0] = LAYOUT( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_MPLY, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME, + 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_PGUP, + MO(1), 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_PGDN, + 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, KC_UP, KC_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT( + _______, KC_BRID, KC_BRIU, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_MSTP, KC_MNXT, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, + _______, KC_BTN1, KC_MS_U, KC_BTN2, KC_WH_U, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, RGB_VAD, RGB_TOG, RGB_VAI, RGB_HUI, _______, NK_TOGG, _______, _______, _______, _______, _______, RGB_MOD, _______, + _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_RMOD, RGB_SPI + ), + + +}; +// clang-format on + +#ifdef ENCODER_ENABLE +bool encoder_update_user(uint8_t index, bool clockwise) { + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + return false; +} +#endif diff --git a/keyboards/gmmk/pro/rev1/iso/keymaps/falkecarlsen/readme.md b/keyboards/gmmk/pro/rev1/iso/keymaps/falkecarlsen/readme.md new file mode 100644 index 00000000000..4239e0dcb8d --- /dev/null +++ b/keyboards/gmmk/pro/rev1/iso/keymaps/falkecarlsen/readme.md @@ -0,0 +1,8 @@ +# Falke Carlsen keymap for GMMK PRO ISO +Based on the default keymap, inheriting rotary encoder and LED configs without modification. + +## Changes: +- Fixes layer 1 of top-row to correspond to 'Keychron ISO Q1 & K2 Dye-Sub PBT Nordic' printed legend multimedia keys. +- Adds early 2010s Ducky layer 1 mouse-emulation to WASD with left+right click and scroll in the 2x4 cluster. +- Remaps default keymaps LED-handling to 2nd-row due to addition of mouse-emulation. +- Swap layer 0 rotary encoder click to play/pause, and layer 1 click to next. diff --git a/keyboards/gmmk/pro/rev1/iso/keymaps/jonavin/keymap.c b/keyboards/gmmk/pro/rev1/iso/keymaps/jonavin/keymap.c index e4b5711e8ba..4084d3d2ebc 100644 --- a/keyboards/gmmk/pro/rev1/iso/keymaps/jonavin/keymap.c +++ b/keyboards/gmmk/pro/rev1/iso/keymaps/jonavin/keymap.c @@ -102,7 +102,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { break; } } - return true; + //return true; //set to return false to counteract enabled encoder in pro.c + return false; } #endif // ENCODER_ENABLE && !ENCODER_DEFAULTACTIONS_ENABLE diff --git a/keyboards/gmmk/pro/rev1/iso/keymaps/via/keymap.c b/keyboards/gmmk/pro/rev1/iso/keymaps/via/keymap.c index 7d0693c18c8..612eead8715 100644 --- a/keyboards/gmmk/pro/rev1/iso/keymaps/via/keymap.c +++ b/keyboards/gmmk/pro/rev1/iso/keymaps/via/keymap.c @@ -78,14 +78,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; // clang-format on - -#ifdef ENCODER_ENABLE -bool encoder_update_user(uint8_t index, bool clockwise) { - if (clockwise) { - tap_code(KC_VOLU); - } else { - tap_code(KC_VOLD); - } - return false; -} -#endif // ENCODER_ENABLE diff --git a/keyboards/gmmk/pro/rev1/iso/keymaps/vitoni/keymap.c b/keyboards/gmmk/pro/rev1/iso/keymaps/vitoni/keymap.c index 1e32e7e9c02..2c8a67ef9b7 100644 --- a/keyboards/gmmk/pro/rev1/iso/keymaps/vitoni/keymap.c +++ b/keyboards/gmmk/pro/rev1/iso/keymaps/vitoni/keymap.c @@ -84,7 +84,8 @@ bool encoder_update_user(uint8_t index, bool clockwise) { } break; } - return true; + //return true; //set to return false to counteract enabled encoder in pro.c + return false; } #endif // ENCODER_ENABLE diff --git a/keyboards/gmmk/pro/rev2/ansi/ansi.c b/keyboards/gmmk/pro/rev2/ansi/ansi.c index 9cf28e4648e..c22fbc796d8 100644 --- a/keyboards/gmmk/pro/rev2/ansi/ansi.c +++ b/keyboards/gmmk/pro/rev2/ansi/ansi.c @@ -136,7 +136,7 @@ led_config_t g_led_config = {{ 4, 2, 2, 4, 4, 2, 2, 4, 2, 2, 4, 4, 2, 2, 4, 4, 2, 2, 4, 4, 4, 4, 4 }}; -const aw_led g_aw_leds[DRIVER_LED_TOTAL] = { +const aw_led g_aw_leds[RGB_MATRIX_LED_COUNT] = { {0, CS1_SW1, CS2_SW1, CS3_SW1}, // 0, ESC, k13 {0, CS4_SW1, CS5_SW1, CS6_SW1}, // 1, ~, k16 {0, CS7_SW1, CS8_SW1, CS9_SW1}, // 2, Tab, k11 diff --git a/keyboards/gmmk/pro/rev2/ansi/config.h b/keyboards/gmmk/pro/rev2/ansi/config.h index 996ee21afc7..6803bd8ced9 100644 --- a/keyboards/gmmk/pro/rev2/ansi/config.h +++ b/keyboards/gmmk/pro/rev2/ansi/config.h @@ -20,4 +20,4 @@ #define DRIVER_1_LED_TOTAL 66 #define DRIVER_2_LED_TOTAL 32 -#define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) +#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) diff --git a/keyboards/gmmk/pro/rev2/iso/config.h b/keyboards/gmmk/pro/rev2/iso/config.h index 82390fc1474..0b2e0a4cb24 100644 --- a/keyboards/gmmk/pro/rev2/iso/config.h +++ b/keyboards/gmmk/pro/rev2/iso/config.h @@ -20,4 +20,4 @@ #define DRIVER_1_LED_TOTAL 66 #define DRIVER_2_LED_TOTAL 33 -#define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) +#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) diff --git a/keyboards/gmmk/pro/rev2/iso/iso.c b/keyboards/gmmk/pro/rev2/iso/iso.c index 3567a52d0d9..20626ff9c5a 100644 --- a/keyboards/gmmk/pro/rev2/iso/iso.c +++ b/keyboards/gmmk/pro/rev2/iso/iso.c @@ -137,7 +137,7 @@ led_config_t g_led_config = {{ 2, 4, 2, 2, 4, 4, 2, 2, 4, 2, 2, 4, 4, 2, 2, 4, 4, 2, 2, 4, 4, 4, 4, 4 }}; -const aw_led g_aw_leds[DRIVER_LED_TOTAL] = { +const aw_led g_aw_leds[RGB_MATRIX_LED_COUNT] = { {0, CS1_SW1, CS2_SW1, CS3_SW1}, // 0, ESC, k13 {0, CS4_SW1, CS5_SW1, CS6_SW1}, // 1, ~, k16 {0, CS7_SW1, CS8_SW1, CS9_SW1}, // 2, Tab, k11 diff --git a/keyboards/gopolar/gg86/config.h b/keyboards/gopolar/gg86/config.h index 79648346231..d1c75d0c79f 100644 --- a/keyboards/gopolar/gg86/config.h +++ b/keyboards/gopolar/gg86/config.h @@ -41,7 +41,7 @@ #ifdef RGB_MATRIX_ENABLE /* RGB Matrix config */ #define RGB_DI_PIN E2 - #define DRIVER_LED_TOTAL 100 + #define RGB_MATRIX_LED_COUNT 100 #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 #define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS #define RGB_MATRIX_KEYPRESSES diff --git a/keyboards/gopolar/gg86/keymaps/horrortroll/led/custom_gradient.c b/keyboards/gopolar/gg86/keymaps/horrortroll/led/custom_gradient.c index fcedf777eb8..951884b4569 100644 --- a/keyboards/gopolar/gg86/keymaps/horrortroll/led/custom_gradient.c +++ b/keyboards/gopolar/gg86/keymaps/horrortroll/led/custom_gradient.c @@ -70,5 +70,5 @@ static bool CUSTOM_GRADIENT(effect_params_t* params) { rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); } - return led_max < DRIVER_LED_TOTAL; + return led_max < RGB_MATRIX_LED_COUNT; } \ No newline at end of file diff --git a/keyboards/gopolar/gg86/keymaps/horrortroll/led/rainbow_reactive_simple/rainbow_reactive_simple.h b/keyboards/gopolar/gg86/keymaps/horrortroll/led/rainbow_reactive_simple/rainbow_reactive_simple.h index 5b610716e09..9fff344664e 100644 --- a/keyboards/gopolar/gg86/keymaps/horrortroll/led/rainbow_reactive_simple/rainbow_reactive_simple.h +++ b/keyboards/gopolar/gg86/keymaps/horrortroll/led/rainbow_reactive_simple/rainbow_reactive_simple.h @@ -41,5 +41,5 @@ bool effect_rainbow_reactive(effect_params_t* params, rainbow_reactive_f effect_ rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); } - return led_max < DRIVER_LED_TOTAL; + return led_max < RGB_MATRIX_LED_COUNT; } \ No newline at end of file diff --git a/keyboards/gopolar/gg86/keymaps/horrortroll/led/random_breath_rainbow.c b/keyboards/gopolar/gg86/keymaps/horrortroll/led/random_breath_rainbow.c index e5f399cdd38..b5ffef665f8 100644 --- a/keyboards/gopolar/gg86/keymaps/horrortroll/led/random_breath_rainbow.c +++ b/keyboards/gopolar/gg86/keymaps/horrortroll/led/random_breath_rainbow.c @@ -14,7 +14,7 @@ * along with this program. If not, see . */ -static uint8_t offset[DRIVER_LED_TOTAL]; +static uint8_t offset[RGB_MATRIX_LED_COUNT]; static void doRandom_breath_rainbow(int i, effect_params_t* params) { if (!HAS_ANY_FLAGS(g_led_config.flags[i], params->flags)) return; @@ -41,7 +41,7 @@ bool RANDOM_BREATH_RAINBOW(effect_params_t* params) { if (!params->init) { // Change one LED every tick, make sure speed is not 0 - doRandom_breath_rainbow(rand() % DRIVER_LED_TOTAL, params); + doRandom_breath_rainbow(rand() % RGB_MATRIX_LED_COUNT, params); return false; } @@ -51,5 +51,5 @@ bool RANDOM_BREATH_RAINBOW(effect_params_t* params) { doRandom_breath_rainbow(i, params); } - return led_max < DRIVER_LED_TOTAL; + return led_max < RGB_MATRIX_LED_COUNT; } \ No newline at end of file diff --git a/keyboards/hadron/ver3/config.h b/keyboards/hadron/ver3/config.h index f130189b58d..0a06f3ec7c9 100644 --- a/keyboards/hadron/ver3/config.h +++ b/keyboards/hadron/ver3/config.h @@ -166,7 +166,7 @@ #define RGBLED_NUM 10 #define RGB_DI_PIN B5 -#define DRIVER_LED_TOTAL RGBLED_NUM +#define RGB_MATRIX_LED_COUNT RGBLED_NUM // #define RGB_MATRIX_KEYPRESSES diff --git a/keyboards/handwired/6macro/config.h b/keyboards/handwired/6macro/config.h index 1e8c2968552..a117fc65aaf 100644 --- a/keyboards/handwired/6macro/config.h +++ b/keyboards/handwired/6macro/config.h @@ -32,7 +32,7 @@ along with this program. If not, see . #define RGB_DI_PIN D2 #define RGBLED_NUM 10 -#define DRIVER_LED_TOTAL RGBLED_NUM +#define RGB_MATRIX_LED_COUNT RGBLED_NUM #define RGBLIGHT_HUE_STEP 10 #define RGBLIGHT_SAT_STEP 17 #define RGBLIGHT_VAL_STEP 17 diff --git a/keyboards/handwired/co60/rev7/config.h b/keyboards/handwired/co60/rev7/config.h index 150da56dc6e..deed36713bf 100644 --- a/keyboards/handwired/co60/rev7/config.h +++ b/keyboards/handwired/co60/rev7/config.h @@ -53,6 +53,6 @@ along with this program. If not, see . #define RGBLED_NUM 16 #define RGB_DI_PIN A7 -#define DRIVER_LED_TOTAL RGBLED_NUM +#define RGB_MATRIX_LED_COUNT RGBLED_NUM #define RGB_MATRIX_KEYPRESSES diff --git a/keyboards/handwired/colorlice/config.h b/keyboards/handwired/colorlice/config.h index a941ea493d3..39ff7ffe173 100644 --- a/keyboards/handwired/colorlice/config.h +++ b/keyboards/handwired/colorlice/config.h @@ -46,7 +46,7 @@ along with this program. If not, see . #define RGB_MATRIX_FRAMEBUFFER_EFFECTS #define RGB_MATRIX_LED_PROCESS_LIMIT 4 #define RGB_MATRIX_LED_FLUSH_LIMIT 26 -#define DRIVER_LED_TOTAL 70 +#define RGB_MATRIX_LED_COUNT 70 // RGB Matrix Animation modes. Explicitly enabled // For full list of effects, see: diff --git a/keyboards/handwired/dactyl_manuform/3x5_3/config.h b/keyboards/handwired/dactyl_manuform/3x5_3/config.h index ccd9d0cdc4d..9f73d8bcec7 100644 --- a/keyboards/handwired/dactyl_manuform/3x5_3/config.h +++ b/keyboards/handwired/dactyl_manuform/3x5_3/config.h @@ -31,7 +31,7 @@ along with this program. If not, see . // WS2812 RGB LED strip input and number of LEDs #define RGB_DI_PIN D3 -#define DRIVER_LED_TOTAL 36 +#define RGB_MATRIX_LED_COUNT 36 #define RGB_MATRIX_SPLIT { 18, 18 } #define RGB_MATRIX_CENTER { 133, 54 } diff --git a/keyboards/handwired/dactyl_manuform/3x5_3/keymaps/dlford/config.h b/keyboards/handwired/dactyl_manuform/3x5_3/keymaps/dlford/config.h index fac93539596..6aa4f4817f7 100644 --- a/keyboards/handwired/dactyl_manuform/3x5_3/keymaps/dlford/config.h +++ b/keyboards/handwired/dactyl_manuform/3x5_3/keymaps/dlford/config.h @@ -45,7 +45,7 @@ along with this program. If not, see . #ifdef RGB_MATRIX_ENABLE // # define RGB_DISABLE_TIMEOUT 300000 // number of milliseconds to wait until disabling effects // # define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended -# define RGB_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) +# define RGB_MATRIX_LED_PROCESS_LIMIT (RGB_MATRIX_LED_COUNT + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) # define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness) # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 // limits maximum brightness of LEDs to 150 out of 255. Higher may cause the controller to crash. # define RGB_MATRIX_HUE_STEP 8 diff --git a/keyboards/handwired/dactyl_manuform/5x6/keymaps/thattolleyguy/config.h b/keyboards/handwired/dactyl_manuform/5x6/keymaps/thattolleyguy/config.h index 8625389eba2..c598952e94c 100644 --- a/keyboards/handwired/dactyl_manuform/5x6/keymaps/thattolleyguy/config.h +++ b/keyboards/handwired/dactyl_manuform/5x6/keymaps/thattolleyguy/config.h @@ -28,7 +28,7 @@ along with this program. If not, see . #undef SOFT_SERIAL_PIN #define SOFT_SERIAL_PIN D0 -// #define DRIVER_LED_TOTAL 32 +// #define RGB_MATRIX_LED_COUNT 32 #define RGB_MATRIX_KEYPRESSES @@ -36,7 +36,7 @@ along with this program. If not, see . #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 80 #undef RGBLED_NUM #define RGBLED_NUM 64 // Number of LEDs -#define DRIVER_LED_TOTAL RGBLED_NUM +#define RGB_MATRIX_LED_COUNT RGBLED_NUM #define RGB_MATRIX_SPLIT \ { 32, 32 } #define SPLIT_TRANSPORT_MIRROR diff --git a/keyboards/handwired/dygma/raise/ansi/ansi.c b/keyboards/handwired/dygma/raise/ansi/ansi.c index 652b6551d2f..466cdc523e6 100644 --- a/keyboards/handwired/dygma/raise/ansi/ansi.c +++ b/keyboards/handwired/dygma/raise/ansi/ansi.c @@ -23,7 +23,7 @@ #define LHK 33 #define LPH 72 -const uint8_t led_map[DRIVER_LED_TOTAL] = { +const uint8_t led_map[RGB_MATRIX_LED_COUNT] = { // left side - 32 keys includes LP: key 19 is missing for ANSI layout 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 20, 0xff, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 68, 69, diff --git a/keyboards/handwired/dygma/raise/config.h b/keyboards/handwired/dygma/raise/config.h index 64c6bad8e87..032875b67b9 100644 --- a/keyboards/handwired/dygma/raise/config.h +++ b/keyboards/handwired/dygma/raise/config.h @@ -24,4 +24,4 @@ /* The scanners already debounce for us */ #define DEBOUNCE 0 -#define DRIVER_LED_TOTAL 132 +#define RGB_MATRIX_LED_COUNT 132 diff --git a/keyboards/handwired/dygma/raise/iso/iso.c b/keyboards/handwired/dygma/raise/iso/iso.c index ec2607d06ce..81c180b612f 100644 --- a/keyboards/handwired/dygma/raise/iso/iso.c +++ b/keyboards/handwired/dygma/raise/iso/iso.c @@ -23,7 +23,7 @@ #define LHK 33 #define LPH 72 -const uint8_t led_map[DRIVER_LED_TOTAL] = { +const uint8_t led_map[RGB_MATRIX_LED_COUNT] = { // left side - 33 keys 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 68, 69, diff --git a/keyboards/handwired/dygma/raise/leds.c b/keyboards/handwired/dygma/raise/leds.c index 3f6037cbfae..4ff87ca9417 100644 --- a/keyboards/handwired/dygma/raise/leds.c +++ b/keyboards/handwired/dygma/raise/leds.c @@ -71,7 +71,7 @@ static void set_color(int index, uint8_t r, uint8_t g, uint8_t b) { } static void set_color_all(uint8_t r, uint8_t g, uint8_t b) { - for (int i = 0; i < DRIVER_LED_TOTAL; i++) set_color(i, r, g, b); + for (int i = 0; i < RGB_MATRIX_LED_COUNT; i++) set_color(i, r, g, b); } static void init(void) {} diff --git a/keyboards/handwired/dygma/raise/leds.h b/keyboards/handwired/dygma/raise/leds.h index 8d70ed70b21..c25a4326a90 100644 --- a/keyboards/handwired/dygma/raise/leds.h +++ b/keyboards/handwired/dygma/raise/leds.h @@ -19,7 +19,7 @@ #include "quantum.h" #include "rgb_matrix.h" -extern const uint8_t led_map[DRIVER_LED_TOTAL]; +extern const uint8_t led_map[RGB_MATRIX_LED_COUNT]; void set_all_leds_to(uint8_t r, uint8_t g, uint8_t b); void set_led_to(int led, uint8_t r, uint8_t g, uint8_t b); diff --git a/keyboards/handwired/hnah108/config.h b/keyboards/handwired/hnah108/config.h index 825edd40ca2..913b19af5ac 100644 --- a/keyboards/handwired/hnah108/config.h +++ b/keyboards/handwired/hnah108/config.h @@ -47,7 +47,7 @@ along with this program. If not, see . #define BACKLIGHT_LEVELS 4 #define RGB_DI_PIN E2 -#define DRIVER_LED_TOTAL 31 +#define RGB_MATRIX_LED_COUNT 31 // RGB Matrix Animation modes. Explicitly enabled // For full list of effects, see: // https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects diff --git a/keyboards/handwired/hnah40rgb/config.h b/keyboards/handwired/hnah40rgb/config.h index 916fe15a208..85b5e0673fd 100644 --- a/keyboards/handwired/hnah40rgb/config.h +++ b/keyboards/handwired/hnah40rgb/config.h @@ -48,7 +48,7 @@ along with this program. If not, see . #ifdef RGB_MATRIX_ENABLE #define RGB_DI_PIN E2 -#define DRIVER_LED_TOTAL 50 +#define RGB_MATRIX_LED_COUNT 50 #define RGB_MATRIX_KEYPRESSES // reacts to keypresses #define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses) #define RGB_MATRIX_FRAMEBUFFER_EFFECTS diff --git a/keyboards/handwired/jscotto/scotto36/info.json b/keyboards/handwired/jscotto/scotto36/info.json new file mode 100644 index 00000000000..b6828edd21d --- /dev/null +++ b/keyboards/handwired/jscotto/scotto36/info.json @@ -0,0 +1,77 @@ +{ + "manufacturer": "Joe Scotto", + "keyboard_name": "Scotto36", + "maintainer": "joe-scotto", + "bootloader": "caterina", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + // 4, 5, 6, 7, 8, 9, A3, A2, A1, A0 + "cols": ["D4", "C6", "D7", "E6", "B4", "B5", "F4", "F5", "F6", "F7"], + + // 15, 14, 16, 10 + "rows": ["B1", "B3", "B2", "B6"] + }, + "processor": "atmega32u4", + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0x0000", + "vid": "0xFEED" + }, + "layouts": { + "LAYOUT_ortho_3x10_6": { + "layout": [ + { "matrix": [0, 0], "x": 0, "y": 0 }, + { "matrix": [0, 1], "x": 1, "y": 0 }, + { "matrix": [0, 2], "x": 2, "y": 0 }, + { "matrix": [0, 3], "x": 3, "y": 0 }, + { "matrix": [0, 4], "x": 4, "y": 0 }, + { "matrix": [0, 5], "x": 5, "y": 0 }, + { "matrix": [0, 6], "x": 6, "y": 0 }, + { "matrix": [0, 7], "x": 7, "y": 0 }, + { "matrix": [0, 8], "x": 8, "y": 0 }, + { "matrix": [0, 9], "x": 9, "y": 0 }, + + // Row 2 + { "matrix": [1, 0], "x": 0, "y": 1 }, + { "matrix": [1, 1], "x": 1, "y": 1 }, + { "matrix": [1, 2], "x": 2, "y": 1 }, + { "matrix": [1, 3], "x": 3, "y": 1 }, + { "matrix": [1, 4], "x": 4, "y": 1 }, + { "matrix": [1, 5], "x": 5, "y": 1 }, + { "matrix": [1, 6], "x": 6, "y": 1 }, + { "matrix": [1, 7], "x": 7, "y": 1 }, + { "matrix": [1, 8], "x": 8, "y": 1 }, + { "matrix": [1, 9], "x": 9, "y": 1 }, + + // Row 3 + { "matrix": [2, 0], "x": 0, "y": 2 }, + { "matrix": [2, 1], "x": 1, "y": 2 }, + { "matrix": [2, 2], "x": 2, "y": 2 }, + { "matrix": [2, 3], "x": 3, "y": 2 }, + { "matrix": [2, 4], "x": 4, "y": 2 }, + { "matrix": [2, 5], "x": 5, "y": 2 }, + { "matrix": [2, 6], "x": 6, "y": 2 }, + { "matrix": [2, 7], "x": 7, "y": 2 }, + { "matrix": [2, 8], "x": 8, "y": 2 }, + { "matrix": [2, 9], "x": 9, "y": 2 }, + + // Row 4 + { "matrix": [3, 2], "x": 2, "y": 3 }, + { "matrix": [3, 3], "x": 3, "y": 3 }, + { "matrix": [3, 4], "x": 4, "y": 3 }, + { "matrix": [3, 5], "x": 5, "y": 3 }, + { "matrix": [3, 6], "x": 6, "y": 3 }, + { "matrix": [3, 7], "x": 7, "y": 3 } + ] + } + } +} diff --git a/keyboards/handwired/jscotto/scotto36/keymaps/default/config.h b/keyboards/handwired/jscotto/scotto36/keymaps/default/config.h new file mode 100644 index 00000000000..8723c294cb5 --- /dev/null +++ b/keyboards/handwired/jscotto/scotto36/keymaps/default/config.h @@ -0,0 +1,24 @@ +/* +Copyright 2022 Joe Scotto + +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 options +#define IGNORE_MOD_TAP_INTERRUPT +#define TAPPING_TERM 135 +#define PERMISSIVE_HOLD +#define TAPPING_TERM_PER_KEY diff --git a/keyboards/handwired/jscotto/scotto36/keymaps/default/keymap.c b/keyboards/handwired/jscotto/scotto36/keymaps/default/keymap.c new file mode 100644 index 00000000000..cd9b1599a50 --- /dev/null +++ b/keyboards/handwired/jscotto/scotto36/keymaps/default/keymap.c @@ -0,0 +1,281 @@ +/* +Copyright 2022 Joe Scotto + +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 . +*/ + +#include QMK_KEYBOARD_H + +#include +char wpm_str[10]; + +// Tap Dance declarations +enum { + TD_ESC_SPOTLIGHT_EMOJI, + TD_ESC_WINDOWS_EMOJI +}; + +void td_esc_spotlight_emoji (qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 1) { + tap_code(KC_ESC); + } else if (state->count == 2) { + tap_code16(G(KC_SPC)); + } else if (state->count == 3) { + tap_code16(C(G(KC_SPC))); + } +} + +void td_esc_windows_emoji (qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 1) { + tap_code(KC_ESC); + } else if (state->count == 2) { + tap_code(KC_LGUI); + } else if (state->count == 3) { + tap_code16(G(KC_DOT)); + } +}; + + // Tap Dance definitions +qk_tap_dance_action_t tap_dance_actions[] = { + [TD_ESC_SPOTLIGHT_EMOJI] = ACTION_TAP_DANCE_FN(td_esc_spotlight_emoji), + [TD_ESC_WINDOWS_EMOJI] = ACTION_TAP_DANCE_FN(td_esc_windows_emoji) +}; + +uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case TD(TD_ESC_SPOTLIGHT_EMOJI) : + case TD(TD_ESC_WINDOWS_EMOJI) : + case LGUI_T(KC_SPC) : + case LT(1, KC_TAB) : + case LT(2, KC_ENT) : + return 200; + default: + return TAPPING_TERM; + } +}; + +// Layer Names +enum layer_names { + _MAC_DEFAULT, + _MAC_CODE, + _MAC_NUM, + _MAC_FUNC, + _WIN_DEFAULT, + _WIN_CODE, + _WIN_NUM, + _WIN_FUNC +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_ortho_3x10_6( + KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_BSPC, + KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, + LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH), + KC_LCTL, KC_LALT, LGUI_T(KC_SPC), LT(1, KC_TAB), LT(2, KC_ENT), TD(TD_ESC_SPOTLIGHT_EMOJI) + ), + [1] = LAYOUT_ortho_3x10_6( + KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL, + KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, + LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS), + KC_LCTL, KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS, TD(TD_ESC_SPOTLIGHT_EMOJI) + ), + [2] = LAYOUT_ortho_3x10_6( + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC, + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_LSFT, KC_NO, KC_NO, KC_NO, MO(3), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), + KC_LCTL, KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS, TD(TD_ESC_SPOTLIGHT_EMOJI) + ), + [3] = LAYOUT_ortho_3x10_6( + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(4), + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, + KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, + KC_LCTL, KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS, TD(TD_ESC_SPOTLIGHT_EMOJI) + ), + [4] = LAYOUT_ortho_3x10_6( + KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_BSPC, + KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, + LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH), + KC_LALT, KC_LCTL, KC_SPC, LT(5, KC_TAB), LT(6, KC_ENT), TD(TD_ESC_WINDOWS_EMOJI) + ), + [5] = LAYOUT_ortho_3x10_6( + KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL, + KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, + LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE,KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS), + KC_LALT, KC_LCTL, KC_SPC, KC_TRNS, KC_TRNS, TD(TD_ESC_WINDOWS_EMOJI) + ), + [6] = LAYOUT_ortho_3x10_6( + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC, + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_LSFT, KC_NO, KC_NO, KC_NO, MO(7), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), + KC_LALT, KC_LCTL, KC_SPC, KC_TRNS, KC_TRNS, TD(TD_ESC_WINDOWS_EMOJI) + ), + [7] = LAYOUT_ortho_3x10_6( + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(0), + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, + KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, + KC_LALT, KC_LCTL, KC_SPC, KC_TRNS, KC_TRNS, TD(TD_ESC_WINDOWS_EMOJI) + ) +}; + +// OLED +#ifdef OLED_ENABLE +// WPM responsiveness +#define IDLE_FRAMES 5 +#define IDLE_SPEED 20 // Speed at which animation goes into idle +#define TAP_FRAMES 2 +#define TAP_SPEED 40 // WPM to trigger Bongo +#define ANIM_FRAME_DURATION 200 // Frame MS +#define ANIM_SIZE 636 // Number of bytes in array, max 1024 + +uint32_t anim_timer = 0; +uint32_t anim_sleep = 0; +uint8_t current_idle_frame = 0; +uint8_t current_tap_frame = 0; + +static void render_animation(void) { + static const char PROGMEM idle[IDLE_FRAMES][ANIM_SIZE] = {{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x20, 0x18, 0x04, 0x02, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, 0x40, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x30, 0x0c, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x86, 0x86, 0x40, 0x40, 0x40, 0x40, 0x21, 0x22, 0x22, 0x20, 0x11, 0x11, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x82, 0x02, 0x02, 0x04, 0x04, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00, 0x60, 0x60, 0x00, 0x01, 0x01, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x30, 0x0c, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x86, 0x86, 0x40, 0x40, 0x40, 0x40, 0x21, 0x22, 0x22, 0x20, 0x11, 0x11, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x34, 0xc4, 0x04, 0x04, 0x04, 0x08, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x04, 0x08, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x20, 0x18, 0x04, 0x02, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x0d, 0x31, 0xc1, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x04, 0x04, 0x02, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}; + static const char PROGMEM prep[][ANIM_SIZE] = {{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x20, 0x10, 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, 0x84, 0x44, 0x44, 0x42, 0x82, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x64, 0x18, 0x04, 0x12, 0xc2, 0xca, 0x24, 0x88, 0xf0, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x0c, 0x03, 0x00, 0x02, 0x18, 0x19, 0x00, 0x05, 0xfe, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}; + static const char PROGMEM tap[TAP_FRAMES][ANIM_SIZE] = { + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x20, 0x10, 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x64, 0x18, 0x04, 0x12, 0xc2, 0xca, 0x24, 0x88, 0xf0, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x98, 0xc0, 0x88, 0x88, 0x8c, 0x9c, 0x1c, 0x1e, 0x0e, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x20, 0x10, 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, 0x84, 0x44, 0x44, 0x42, 0x82, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x0c, 0x03, 0x00, 0x02, 0x18, 0x19, 0x00, 0x05, 0xfe, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x0f, 0x0f, 0x07, 0x03, 0x03, 0x61, 0xf0, 0xf8, 0xfc, 0x60, 0x01, 0x01, 0x01, 0x3c, 0x78, 0xf8, 0xf0, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + }; + + void animation_phase(void) { + if (get_current_wpm() <= IDLE_SPEED) { + current_idle_frame = (current_idle_frame + 1) % IDLE_FRAMES; + oled_write_raw_P(idle[abs((IDLE_FRAMES - 1) - current_idle_frame)], ANIM_SIZE); + } + + if (get_current_wpm() > IDLE_SPEED && get_current_wpm() < TAP_SPEED) { + oled_write_raw_P(prep[0], ANIM_SIZE); + } + + if (get_current_wpm() >= TAP_SPEED) { + current_tap_frame = (current_tap_frame + 1) % TAP_FRAMES; + oled_write_raw_P(tap[abs((TAP_FRAMES - 1) - current_tap_frame)], ANIM_SIZE); + } + } + if (get_current_wpm() != 000) { + oled_on(); // Enables OLED on any alpha keypress + + if (timer_elapsed32(anim_timer) > ANIM_FRAME_DURATION) { + anim_timer = timer_read32(); + animation_phase(); + } + + anim_sleep = timer_read32(); + } else { + if (timer_elapsed32(anim_sleep) > OLED_TIMEOUT) { + oled_off(); + } else { + if (timer_elapsed32(anim_timer) > ANIM_FRAME_DURATION) { + anim_timer = timer_read32(); + animation_phase(); + } + } + } +} + +// Draw to OLED +bool oled_task_user() { + // Render Bongo Cat + render_animation(); + + // WPM text + oled_set_cursor(0, 0); + sprintf(wpm_str, "%03d", get_current_wpm()); // %03d defines digits to display + oled_write(wpm_str, false); + + // Layer text + oled_set_cursor(0, 1); + switch (get_highest_layer(layer_state)) { + case _MAC_DEFAULT : + oled_write_P(PSTR("MAC"), false); + oled_set_cursor(0, 2); + oled_write_P(PSTR("MAIN"), false); + break; + case _MAC_CODE : + oled_write_P(PSTR("MAC"), false); + oled_set_cursor(0, 2); + oled_write_P(PSTR("CODE"), false); + break; + case _MAC_NUM : + oled_write_P(PSTR("MAC"), false); + oled_set_cursor(0, 2); + oled_write_P(PSTR("NUM"), false); + break; + case _MAC_FUNC : + oled_write_P(PSTR("MAC"), false); + oled_set_cursor(0, 2); + oled_write_P(PSTR("FUNC"), false); + break; + case _WIN_DEFAULT : + oled_write_P(PSTR("WIN"), false); + oled_set_cursor(0, 2); + oled_write_P(PSTR("MAIN"), false); + break; + case _WIN_CODE : + oled_write_P(PSTR("WIN"), false); + oled_set_cursor(0, 2); + oled_write_P(PSTR("CODE"), false); + break; + case _WIN_NUM : + oled_write_P(PSTR("WIN"), false); + oled_set_cursor(0, 2); + oled_write_P(PSTR("NUM"), false); + break; + case _WIN_FUNC : + oled_write_P(PSTR("WIN"), false); + oled_set_cursor(0, 2); + oled_write_P(PSTR("FUNC"), false); + break; + } + + // Caps lock text + led_t led_state = host_keyboard_led_state(); + oled_set_cursor(0, 3); + oled_write_P(led_state.caps_lock ? PSTR("CAPS") : PSTR(""), false); + + return false; +} +#endif + diff --git a/keyboards/handwired/jscotto/scotto36/keymaps/default/rules.mk b/keyboards/handwired/jscotto/scotto36/keymaps/default/rules.mk new file mode 100644 index 00000000000..6e339da6c69 --- /dev/null +++ b/keyboards/handwired/jscotto/scotto36/keymaps/default/rules.mk @@ -0,0 +1,4 @@ +OLED_ENABLE = yes +WPM_ENABLE = yes +LTO_ENABLE = yes +TAP_DANCE_ENABLE = yes \ No newline at end of file diff --git a/keyboards/handwired/jscotto/scotto36/readme.md b/keyboards/handwired/jscotto/scotto36/readme.md new file mode 100644 index 00000000000..f38d0231c58 --- /dev/null +++ b/keyboards/handwired/jscotto/scotto36/readme.md @@ -0,0 +1,25 @@ +# Scotto36 + +![Scotto36](https://i.imgur.com/MCGv0ZHh.jpeg) + +A 36 key handwired ortholinear ergo keyboard. Featuring an OLED display with Bongo Cat. Case files available [here](https://github.com/joe-scotto/keyboards.git). + +- Keyboard Maintainer: [Joe Scotto](https://github.com/joe-scotto) +- Hardware Supported: ATmega32U4 +- Hardware Availability: [Amazon](https://amazon.com) + + +# Compiling + +Make example for this keyboard (after setting up your build environment): + + make handwired/jscotto/scotto36:default + +Flashing example for this keyboard: + + make handwired/jscotto/scotto36:default + +# Bootloader +Uses [bootmagic](https://github.com/qmk/qmk_firmware/blob/master/docs/feature_bootmagic.md) allowing you to hold the top left key (0, 0) when plugging the board in to enter bootloader mode. + +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/handwired/jscotto/scotto36/rules.mk b/keyboards/handwired/jscotto/scotto36/rules.mk new file mode 100644 index 00000000000..6e7633bfe01 --- /dev/null +++ b/keyboards/handwired/jscotto/scotto36/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/handwired/p65rgb/config.h b/keyboards/handwired/p65rgb/config.h index abb5efc284a..384b0bc547e 100644 --- a/keyboards/handwired/p65rgb/config.h +++ b/keyboards/handwired/p65rgb/config.h @@ -37,7 +37,7 @@ along with this program. If not, see . #define RGB_MATRIX_FRAMEBUFFER_EFFECTS #define RGB_MATRIX_LED_PROCESS_LIMIT 4 #define RGB_MATRIX_LED_FLUSH_LIMIT 26 -#define DRIVER_LED_TOTAL 83 +#define RGB_MATRIX_LED_COUNT 83 #define RGBLIGHT_LIMIT_VAL 180 // RGB Matrix Animation modes. Explicitly enabled // For full list of effects, see: diff --git a/keyboards/handwired/steamvan/rev1/config.h b/keyboards/handwired/steamvan/rev1/config.h index 2a33f1fc13f..81c58c977ef 100644 --- a/keyboards/handwired/steamvan/rev1/config.h +++ b/keyboards/handwired/steamvan/rev1/config.h @@ -52,6 +52,6 @@ along with this program. If not, see . #define RGBLED_NUM 16 #define RGB_DI_PIN A7 -#define DRIVER_LED_TOTAL RGBLED_NUM +#define RGB_MATRIX_LED_COUNT RGBLED_NUM #define RGB_MATRIX_KEYPRESSES diff --git a/keyboards/handwired/tractyl_manuform/4x6_right/config.h b/keyboards/handwired/tractyl_manuform/4x6_right/config.h index 0e15056bafd..ffc75d00cfc 100644 --- a/keyboards/handwired/tractyl_manuform/4x6_right/config.h +++ b/keyboards/handwired/tractyl_manuform/4x6_right/config.h @@ -33,7 +33,7 @@ along with this program. If not, see . // WS2812 RGB LED strip input and number of LEDs #define RGB_DI_PIN E7 -#define DRIVER_LED_TOTAL 62 +#define RGB_MATRIX_LED_COUNT 62 #define RGB_MATRIX_SPLIT { 32, 30 } #define RGB_DISABLE_WHEN_USB_SUSPENDED #define RGB_MATRIX_KEYPRESSES diff --git a/keyboards/helix/rev3_4rows/config.h b/keyboards/helix/rev3_4rows/config.h index 5050599075c..e5f49d7788a 100644 --- a/keyboards/helix/rev3_4rows/config.h +++ b/keyboards/helix/rev3_4rows/config.h @@ -56,13 +56,13 @@ along with this program. If not, see . #define RGBLED_NUM 50 // Number of LEDs #ifdef RGB_MATRIX_ENABLE - #define DRIVER_LED_TOTAL RGBLED_NUM + #define RGB_MATRIX_LED_COUNT RGBLED_NUM # define RGB_MATRIX_KEYPRESSES // reacts to keypresses // # define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses) // # define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects # define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended # define RGB_MATRIX_FRAMEBUFFER_EFFECTS -// # define RGB_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) +// # define RGB_MATRIX_LED_PROCESS_LIMIT (RGB_MATRIX_LED_COUNT + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) // # define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness) # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 // limits maximum brightness of LEDs to 150 out of 255. Higher may cause the controller to crash. # define RGB_MATRIX_HUE_STEP 8 diff --git a/keyboards/helix/rev3_5rows/config.h b/keyboards/helix/rev3_5rows/config.h index 489eeded06b..8838bd6bde3 100644 --- a/keyboards/helix/rev3_5rows/config.h +++ b/keyboards/helix/rev3_5rows/config.h @@ -56,13 +56,13 @@ along with this program. If not, see . #define RGBLED_NUM 64 // Number of LEDs #ifdef RGB_MATRIX_ENABLE - #define DRIVER_LED_TOTAL RGBLED_NUM + #define RGB_MATRIX_LED_COUNT RGBLED_NUM # define RGB_MATRIX_KEYPRESSES // reacts to keypresses // # define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses) // # define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects # define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended # define RGB_MATRIX_FRAMEBUFFER_EFFECTS -// # define RGB_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) +// # define RGB_MATRIX_LED_PROCESS_LIMIT (RGB_MATRIX_LED_COUNT + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) // # define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness) # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 // limits maximum brightness of LEDs to 150 out of 255. Higher may cause the controller to crash. # define RGB_MATRIX_HUE_STEP 8 diff --git a/keyboards/horrortroll/chinese_pcb/devil68_pro/config.h b/keyboards/horrortroll/chinese_pcb/devil68_pro/config.h index 8a227f3c494..1acd13498ff 100644 --- a/keyboards/horrortroll/chinese_pcb/devil68_pro/config.h +++ b/keyboards/horrortroll/chinese_pcb/devil68_pro/config.h @@ -39,7 +39,7 @@ #define FORCE_NKRO #ifdef RGB_MATRIX_ENABLE - #define DRIVER_LED_TOTAL 86 + #define RGB_MATRIX_LED_COUNT 86 #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 #define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS #define RGB_MATRIX_KEYPRESSES diff --git a/keyboards/horrortroll/handwired_k552/config.h b/keyboards/horrortroll/handwired_k552/config.h index d3c385f64ec..227fad06ec6 100644 --- a/keyboards/horrortroll/handwired_k552/config.h +++ b/keyboards/horrortroll/handwired_k552/config.h @@ -62,7 +62,7 @@ #endif #ifdef RGB_MATRIX_ENABLE - #define DRIVER_LED_TOTAL 24 + #define RGB_MATRIX_LED_COUNT 24 #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 #define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS diff --git a/keyboards/horrortroll/handwired_k552/keymaps/default/led/custom_gradient.c b/keyboards/horrortroll/handwired_k552/keymaps/default/led/custom_gradient.c index 49e4a242fbb..0d7acd7e8b0 100644 --- a/keyboards/horrortroll/handwired_k552/keymaps/default/led/custom_gradient.c +++ b/keyboards/horrortroll/handwired_k552/keymaps/default/led/custom_gradient.c @@ -70,5 +70,5 @@ static bool CUSTOM_GRADIENT(effect_params_t* params) { rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); } - return led_max < DRIVER_LED_TOTAL; + return led_max < RGB_MATRIX_LED_COUNT; } diff --git a/keyboards/horrortroll/handwired_k552/keymaps/default/led/random_breath_rainbow.c b/keyboards/horrortroll/handwired_k552/keymaps/default/led/random_breath_rainbow.c index 041417477ba..29c447c61a4 100644 --- a/keyboards/horrortroll/handwired_k552/keymaps/default/led/random_breath_rainbow.c +++ b/keyboards/horrortroll/handwired_k552/keymaps/default/led/random_breath_rainbow.c @@ -14,7 +14,7 @@ * along with this program. If not, see . */ -static uint8_t offset[DRIVER_LED_TOTAL]; +static uint8_t offset[RGB_MATRIX_LED_COUNT]; static void doRandom_breath_rainbow(int i, effect_params_t* params) { if (!HAS_ANY_FLAGS(g_led_config.flags[i], params->flags)) return; @@ -41,7 +41,7 @@ bool RANDOM_BREATH_RAINBOW(effect_params_t* params) { if (!params->init) { // Change one LED every tick, make sure speed is not 0 - doRandom_breath_rainbow(rand() % DRIVER_LED_TOTAL, params); + doRandom_breath_rainbow(rand() % RGB_MATRIX_LED_COUNT, params); return false; } @@ -51,5 +51,5 @@ bool RANDOM_BREATH_RAINBOW(effect_params_t* params) { doRandom_breath_rainbow(i, params); } - return led_max < DRIVER_LED_TOTAL; + return led_max < RGB_MATRIX_LED_COUNT; } diff --git a/keyboards/horrortroll/handwired_k552/keymaps/via/led/custom_gradient.c b/keyboards/horrortroll/handwired_k552/keymaps/via/led/custom_gradient.c index 49e4a242fbb..0d7acd7e8b0 100644 --- a/keyboards/horrortroll/handwired_k552/keymaps/via/led/custom_gradient.c +++ b/keyboards/horrortroll/handwired_k552/keymaps/via/led/custom_gradient.c @@ -70,5 +70,5 @@ static bool CUSTOM_GRADIENT(effect_params_t* params) { rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); } - return led_max < DRIVER_LED_TOTAL; + return led_max < RGB_MATRIX_LED_COUNT; } diff --git a/keyboards/horrortroll/handwired_k552/keymaps/via/led/random_breath_rainbow.c b/keyboards/horrortroll/handwired_k552/keymaps/via/led/random_breath_rainbow.c index 041417477ba..29c447c61a4 100644 --- a/keyboards/horrortroll/handwired_k552/keymaps/via/led/random_breath_rainbow.c +++ b/keyboards/horrortroll/handwired_k552/keymaps/via/led/random_breath_rainbow.c @@ -14,7 +14,7 @@ * along with this program. If not, see . */ -static uint8_t offset[DRIVER_LED_TOTAL]; +static uint8_t offset[RGB_MATRIX_LED_COUNT]; static void doRandom_breath_rainbow(int i, effect_params_t* params) { if (!HAS_ANY_FLAGS(g_led_config.flags[i], params->flags)) return; @@ -41,7 +41,7 @@ bool RANDOM_BREATH_RAINBOW(effect_params_t* params) { if (!params->init) { // Change one LED every tick, make sure speed is not 0 - doRandom_breath_rainbow(rand() % DRIVER_LED_TOTAL, params); + doRandom_breath_rainbow(rand() % RGB_MATRIX_LED_COUNT, params); return false; } @@ -51,5 +51,5 @@ bool RANDOM_BREATH_RAINBOW(effect_params_t* params) { doRandom_breath_rainbow(i, params); } - return led_max < DRIVER_LED_TOTAL; + return led_max < RGB_MATRIX_LED_COUNT; } diff --git a/keyboards/hs60/v1/config.h b/keyboards/hs60/v1/config.h index adc6f94f1f8..6c942680f56 100644 --- a/keyboards/hs60/v1/config.h +++ b/keyboards/hs60/v1/config.h @@ -125,7 +125,7 @@ along with this program. If not, see . #define DRIVER_2_LED_TOTAL 32 #endif -#define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) +#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) // RGB Matrix Animation modes. Explicitly enabled // For full list of effects, see: diff --git a/keyboards/hs60/v1/v1.c b/keyboards/hs60/v1/v1.c index f96eb7c320e..466cfeeaf59 100644 --- a/keyboards/hs60/v1/v1.c +++ b/keyboards/hs60/v1/v1.c @@ -91,7 +91,7 @@ void raw_hid_receive( uint8_t *data, uint8_t length ) #ifdef HS60_ANSI -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location @@ -199,7 +199,7 @@ led_config_t g_led_config = { { #else -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location diff --git a/keyboards/hs60/v2/ansi/config.h b/keyboards/hs60/v2/ansi/config.h index 04c7d8c7014..509661db8d5 100644 --- a/keyboards/hs60/v2/ansi/config.h +++ b/keyboards/hs60/v2/ansi/config.h @@ -114,7 +114,7 @@ along with this program. If not, see . #define RGB_BACKLIGHT_COLOR_2 { .h = 127, .s = 255 } #define DRIVER_COUNT 2 -#define DRIVER_LED_TOTAL 64 +#define RGB_MATRIX_LED_COUNT 64 // These define which keys in the matrix are alphas/mods // Used for backlight effects so colors are different for diff --git a/keyboards/hs60/v2/hhkb/config.h b/keyboards/hs60/v2/hhkb/config.h index 4dac657b39a..46090673db0 100644 --- a/keyboards/hs60/v2/hhkb/config.h +++ b/keyboards/hs60/v2/hhkb/config.h @@ -114,7 +114,7 @@ along with this program. If not, see . #define RGB_BACKLIGHT_COLOR_2 { .h = 127, .s = 255 } #define DRIVER_COUNT 2 -#define DRIVER_LED_TOTAL 64 +#define RGB_MATRIX_LED_COUNT 64 // These define which keys in the matrix are alphas/mods // Used for backlight effects so colors are different for diff --git a/keyboards/hs60/v2/iso/config.h b/keyboards/hs60/v2/iso/config.h index da918955c30..cf43e3dd94d 100644 --- a/keyboards/hs60/v2/iso/config.h +++ b/keyboards/hs60/v2/iso/config.h @@ -112,7 +112,7 @@ along with this program. If not, see . #define RGB_BACKLIGHT_COLOR_2 { .h = 127, .s = 255 } #define DRIVER_COUNT 2 -#define DRIVER_LED_TOTAL 64 +#define RGB_MATRIX_LED_COUNT 64 // These define which keys in the matrix are alphas/mods // Used for backlight effects so colors are different for diff --git a/keyboards/hub20/config.h b/keyboards/hub20/config.h index 24bcdb00610..8452eab0c9a 100644 --- a/keyboards/hub20/config.h +++ b/keyboards/hub20/config.h @@ -36,7 +36,7 @@ along with this program. If not, see . #define RGB_DI_PIN B15 #define RGBLED_NUM 27 -#define DRIVER_LED_TOTAL 27 +#define RGB_MATRIX_LED_COUNT 27 #ifdef RGB_DI_PIN #define RGBLED_NUM 27 #endif diff --git a/keyboards/idobao/id42/config.h b/keyboards/idobao/id42/config.h index a95578a9b36..bef91200057 100755 --- a/keyboards/idobao/id42/config.h +++ b/keyboards/idobao/id42/config.h @@ -19,7 +19,7 @@ #ifdef RGB_MATRIX_ENABLE #define RGB_DI_PIN B3 - #define DRIVER_LED_TOTAL 42 + #define RGB_MATRIX_LED_COUNT 42 #define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 180 // limits maximum brightness of LEDs to x out of 255. If not defined maximum brightness is set to 255 diff --git a/keyboards/idobao/id42/id42.c b/keyboards/idobao/id42/id42.c index ea3dccdfede..15cc0b41b0f 100755 --- a/keyboards/idobao/id42/id42.c +++ b/keyboards/idobao/id42/id42.c @@ -20,7 +20,7 @@ */ led_config_t g_led_config = { { // Key Matrix to LED Index - // WS2812 LED strings are addressed from 0 (1st) to DRIVER_LED_TOTAL-1 (last) + // WS2812 LED strings are addressed from 0 (1st) to RGB_MATRIX_LED_COUNT-1 (last) { 41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30 }, { 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, __, 19 }, { 18, 17, 16, 15, 14, 13, 12, 11, 10, __, 9, 8 }, diff --git a/keyboards/idobao/id63/config.h b/keyboards/idobao/id63/config.h index 10fb9d5f082..052f7f3bad8 100644 --- a/keyboards/idobao/id63/config.h +++ b/keyboards/idobao/id63/config.h @@ -22,9 +22,9 @@ * * */ #ifndef ID63_DISABLE_UNDERGLOW - #define DRIVER_LED_TOTAL 75 + #define RGB_MATRIX_LED_COUNT 75 #else - #define DRIVER_LED_TOTAL (75 - 12) + #define RGB_MATRIX_LED_COUNT (75 - 12) #endif #define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended diff --git a/keyboards/idobao/id67/config.h b/keyboards/idobao/id67/config.h index 59e34654b59..dcb2de2a32a 100644 --- a/keyboards/idobao/id67/config.h +++ b/keyboards/idobao/id67/config.h @@ -12,9 +12,9 @@ // RGB Matrix config #if defined(RGB_MATRIX_ENABLE) #ifndef ID67_DISABLE_UNDERGLOW - #define DRIVER_LED_TOTAL 77 + #define RGB_MATRIX_LED_COUNT 77 #else - #define DRIVER_LED_TOTAL (77 - 10) + #define RGB_MATRIX_LED_COUNT (77 - 10) #endif #define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended diff --git a/keyboards/idobao/id67/keymaps/thewerther/keymap.c b/keyboards/idobao/id67/keymaps/thewerther/keymap.c index ef37b210f53..a47a54db375 100644 --- a/keyboards/idobao/id67/keymaps/thewerther/keymap.c +++ b/keyboards/idobao/id67/keymaps/thewerther/keymap.c @@ -34,7 +34,7 @@ void matrix_scan_user(void) { if (current_effect >= RGB_MATRIX_SOLID_REACTIVE_SIMPLE && current_effect <= RGB_MATRIX_SOLID_MULTISPLASH) { // set all underglow leds to current color RGB current_color = hsv_to_rgb(rgb_matrix_get_hsv()); - for (int i = DRIVER_LED_TOTAL - DRIVER_LED_UNDERGLOW; i < DRIVER_LED_TOTAL; i++) { + for (int i = RGB_MATRIX_LED_COUNT - DRIVER_LED_UNDERGLOW; i < RGB_MATRIX_LED_COUNT; i++) { rgb_matrix_set_color(i, current_color.r, current_color.g, current_color.b); } } diff --git a/keyboards/idobao/id67/keymaps/vinorodrigues/keymap.c b/keyboards/idobao/id67/keymaps/vinorodrigues/keymap.c index 1bf6971730d..c0b79631d21 100644 --- a/keyboards/idobao/id67/keymaps/vinorodrigues/keymap.c +++ b/keyboards/idobao/id67/keymaps/vinorodrigues/keymap.c @@ -129,7 +129,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #define LED_FLAG_ALPHA_KEY 0x10 // Alpha keys (for Caps Lock) #define LED_FLAG_LAYER_IND 0x20 // Layer indicator -const uint8_t g_led_config_new_flags[DRIVER_LED_TOTAL] = { +const uint8_t g_led_config_new_flags[RGB_MATRIX_LED_COUNT] = { // Extended LED Index to Flag // ** Remember: on ID67 this is in reverse order 0x21, 0x01, 0x01, 0x01, 0x01, 0x04, 0x01, 0x01, 0x21, // Spc row @@ -147,7 +147,7 @@ static uint16_t recording_timer; void keyboard_pre_init_user(void) { // override `config.h` flags with new values - for (int i = 0; i < DRIVER_LED_TOTAL; i++) g_led_config.flags[i] = g_led_config_new_flags[i]; + for (int i = 0; i < RGB_MATRIX_LED_COUNT; i++) g_led_config.flags[i] = g_led_config_new_flags[i]; } void keyboard_post_init_user(void) { diff --git a/keyboards/idobao/id75/v2/config.h b/keyboards/idobao/id75/v2/config.h index 4029d80bf80..62c25486c50 100644 --- a/keyboards/idobao/id75/v2/config.h +++ b/keyboards/idobao/id75/v2/config.h @@ -41,7 +41,7 @@ #undef RGB_DI_PIN #define RGB_DI_PIN F0 #ifdef RGB_MATRIX_ENABLE -# define DRIVER_LED_TOTAL 85 /* 10 Bottom 75 top*/ +# define RGB_MATRIX_LED_COUNT 85 /* 10 Bottom 75 top*/ // RGB Matrix Animation modes. Explicitly enabled // For full list of effects, see: // https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects diff --git a/keyboards/idobao/id80/v3/ansi/config.h b/keyboards/idobao/id80/v3/ansi/config.h index 1b99fd79085..50ca039a063 100644 --- a/keyboards/idobao/id80/v3/ansi/config.h +++ b/keyboards/idobao/id80/v3/ansi/config.h @@ -22,7 +22,7 @@ // RGB Matrix config #if defined(RGB_DI_PIN) && defined(RGB_MATRIX_ENABLE) - #define DRIVER_LED_TOTAL 94 + #define RGB_MATRIX_LED_COUNT 94 #define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 180 // limits maximum brightness of LEDs to x out of 255. If not defined maximum brightness is set to 255 diff --git a/keyboards/idobao/id87/v2/config.h b/keyboards/idobao/id87/v2/config.h index 8f1a9ddf032..08ce4f0af4f 100644 --- a/keyboards/idobao/id87/v2/config.h +++ b/keyboards/idobao/id87/v2/config.h @@ -14,7 +14,7 @@ // RGB Matrix config #if defined(RGB_MATRIX_ENABLE) - #define DRIVER_LED_TOTAL 103 + #define RGB_MATRIX_LED_COUNT 103 #define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 180 // limits maximum brightness of LEDs to x out of 255. If not defined maximum brightness is set to 255 diff --git a/keyboards/idobao/montex/v1rgb/config.h b/keyboards/idobao/montex/v1rgb/config.h index 670b43462b5..8a3b3029d4f 100755 --- a/keyboards/idobao/montex/v1rgb/config.h +++ b/keyboards/idobao/montex/v1rgb/config.h @@ -28,7 +28,7 @@ #if defined(RGB_DI_PIN) && defined(RGB_MATRIX_ENABLE) // The number of LEDs connected - #define DRIVER_LED_TOTAL 31 + #define RGB_MATRIX_LED_COUNT 31 #define RGB_MATRIX_KEYPRESSES // reacts to keypresses #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 180 // Limit to vendor-recommended value diff --git a/keyboards/idobao/montex/v2/config.h b/keyboards/idobao/montex/v2/config.h index 98ba567203d..eaed5dde7a2 100755 --- a/keyboards/idobao/montex/v2/config.h +++ b/keyboards/idobao/montex/v2/config.h @@ -10,9 +10,9 @@ #if defined(RGB_DI_PIN) && defined(RGB_MATRIX_ENABLE) #ifndef ID27_DISABLE_UNDERGLOW - #define DRIVER_LED_TOTAL 31 // The number of LEDs connected + #define RGB_MATRIX_LED_COUNT 31 // The number of LEDs connected #else - #define DRIVER_LED_TOTAL 27 // -4 disabled underglow LEDs + #define RGB_MATRIX_LED_COUNT 27 // -4 disabled underglow LEDs #endif // #define RGB_MATRIX_FRAMEBUFFER_EFFECTS // don't use, too few key to make it look good diff --git a/keyboards/ilumkb/simpler61/config.h b/keyboards/ilumkb/simpler61/config.h index 0b952c25e59..ee26a0ff23c 100644 --- a/keyboards/ilumkb/simpler61/config.h +++ b/keyboards/ilumkb/simpler61/config.h @@ -40,7 +40,7 @@ #define DRIVER_ADDR_1 0b0110000 #define DRIVER_COUNT 1 #define DRIVER_1_LED_TOTAL 61 -#define DRIVER_LED_TOTAL DRIVER_1_LED_TOTAL +#define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL #define DRIVER_INDICATOR_LED_TOTAL 0 // For full list of effects, see: diff --git a/keyboards/ilumkb/simpler61/simpler61.c b/keyboards/ilumkb/simpler61/simpler61.c index 20a40e91693..4fcc5c92455 100644 --- a/keyboards/ilumkb/simpler61/simpler61.c +++ b/keyboards/ilumkb/simpler61/simpler61.c @@ -17,7 +17,7 @@ #include "simpler61.h" #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { {0, CS3_SW1, CS2_SW1, CS1_SW1}, {0, CS3_SW2, CS2_SW2, CS1_SW2}, {0, CS3_SW3, CS2_SW3, CS1_SW3}, diff --git a/keyboards/ilumkb/simpler64/config.h b/keyboards/ilumkb/simpler64/config.h index 324745efa86..463f94aeaed 100644 --- a/keyboards/ilumkb/simpler64/config.h +++ b/keyboards/ilumkb/simpler64/config.h @@ -40,7 +40,7 @@ #define DRIVER_ADDR_1 0b0110000 #define DRIVER_COUNT 1 #define DRIVER_1_LED_TOTAL 64 -#define DRIVER_LED_TOTAL DRIVER_1_LED_TOTAL +#define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL #define DRIVER_INDICATOR_LED_TOTAL 0 diff --git a/keyboards/ilumkb/simpler64/simpler64.c b/keyboards/ilumkb/simpler64/simpler64.c index 8ab72caacad..c42a4445769 100644 --- a/keyboards/ilumkb/simpler64/simpler64.c +++ b/keyboards/ilumkb/simpler64/simpler64.c @@ -17,7 +17,7 @@ #include "simpler64.h" #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { {0, CS3_SW1, CS2_SW1, CS1_SW1}, {0, CS3_SW2, CS2_SW2, CS1_SW2}, {0, CS3_SW3, CS2_SW3, CS1_SW3}, diff --git a/keyboards/inett_studio/sqx/hotswap/config.h b/keyboards/inett_studio/sqx/hotswap/config.h index af9c4ecbe24..f55cf34eb5a 100644 --- a/keyboards/inett_studio/sqx/hotswap/config.h +++ b/keyboards/inett_studio/sqx/hotswap/config.h @@ -57,7 +57,7 @@ #define DRIVER_ADDR_1 0b1110100 #define DRIVER_ADDR_2 0b1110111 #define DRIVER_COUNT 2 -#define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) +#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) #if defined(RGB_MATRIX_ENABLE) && defined(RGBLIGHT_ENABLE) #define RGB_MATRIX_DISABLE_KEYCODES diff --git a/keyboards/inett_studio/sqx/hotswap/hotswap.c b/keyboards/inett_studio/sqx/hotswap/hotswap.c index c8e7d87846e..055e918f6dd 100644 --- a/keyboards/inett_studio/sqx/hotswap/hotswap.c +++ b/keyboards/inett_studio/sqx/hotswap/hotswap.c @@ -20,7 +20,7 @@ #include "hotswap.h" #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location diff --git a/keyboards/inett_studio/sqx/universal/config.h b/keyboards/inett_studio/sqx/universal/config.h index 8c2405e6449..d9bbb1c9fc8 100644 --- a/keyboards/inett_studio/sqx/universal/config.h +++ b/keyboards/inett_studio/sqx/universal/config.h @@ -57,7 +57,7 @@ #define DRIVER_ADDR_1 0b1110100 #define DRIVER_ADDR_2 0b1110111 #define DRIVER_COUNT 2 -#define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) +#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) #if defined(RGB_MATRIX_ENABLE) && defined(RGBLIGHT_ENABLE) # define RGB_MATRIX_DISABLE_KEYCODES diff --git a/keyboards/inett_studio/sqx/universal/universal.c b/keyboards/inett_studio/sqx/universal/universal.c index 06cfbd36542..e03d7395e5e 100644 --- a/keyboards/inett_studio/sqx/universal/universal.c +++ b/keyboards/inett_studio/sqx/universal/universal.c @@ -20,7 +20,7 @@ #include "universal.h" #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location diff --git a/keyboards/input_club/ergodox_infinity/config.h b/keyboards/input_club/ergodox_infinity/config.h index 00dd0bd1f37..19a777e6158 100644 --- a/keyboards/input_club/ergodox_infinity/config.h +++ b/keyboards/input_club/ergodox_infinity/config.h @@ -67,7 +67,7 @@ along with this program. If not, see . /* LED matrix driver */ #define LED_DRIVER_ADDR_1 0x74 #define LED_DRIVER_COUNT 1 -#define DRIVER_LED_TOTAL 76 +#define LED_MATRIX_LED_COUNT 76 #define LED_MATRIX_SPLIT { 38, 38 } #define LED_DISABLE_WHEN_USB_SUSPENDED diff --git a/keyboards/input_club/ergodox_infinity/ergodox_infinity.c b/keyboards/input_club/ergodox_infinity/ergodox_infinity.c index e6ac2c4559c..d699d763335 100644 --- a/keyboards/input_club/ergodox_infinity/ergodox_infinity.c +++ b/keyboards/input_club/ergodox_infinity/ergodox_infinity.c @@ -174,7 +174,7 @@ const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { #endif #ifdef LED_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[LED_MATRIX_LED_COUNT] = { // The numbers in the comments are the led numbers DXX on the PCB /* Refer to IS31 manual for these locations * driver diff --git a/keyboards/input_club/k_type/config.h b/keyboards/input_club/k_type/config.h index 12cda14a3a6..b58f0f2973c 100644 --- a/keyboards/input_club/k_type/config.h +++ b/keyboards/input_club/k_type/config.h @@ -170,5 +170,5 @@ along with this program. If not, see . # define DRIVER_COUNT 2 # define DRIVER_1_LED_TOTAL 64 # define DRIVER_2_LED_TOTAL 55 -# define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) +# define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) #endif diff --git a/keyboards/input_club/k_type/is31fl3733-dual.c b/keyboards/input_club/k_type/is31fl3733-dual.c index e76479b01ab..38980168752 100644 --- a/keyboards/input_club/k_type/is31fl3733-dual.c +++ b/keyboards/input_club/k_type/is31fl3733-dual.c @@ -160,7 +160,7 @@ void IS31FL3733_init(uint8_t bus, uint8_t addr, uint8_t sync) { } void IS31FL3733_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { - if (index >= 0 && index < DRIVER_LED_TOTAL) { + if (index >= 0 && index < RGB_MATRIX_LED_COUNT) { is31_led led = g_is31_leds[index]; g_pwm_buffer[led.driver][led.r] = red; @@ -171,7 +171,7 @@ void IS31FL3733_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { } void IS31FL3733_set_color_all(uint8_t red, uint8_t green, uint8_t blue) { - for (int i = 0; i < DRIVER_LED_TOTAL; i++) { + for (int i = 0; i < RGB_MATRIX_LED_COUNT; i++) { IS31FL3733_set_color(i, red, green, blue); } } diff --git a/keyboards/input_club/k_type/is31fl3733-dual.h b/keyboards/input_club/k_type/is31fl3733-dual.h index d4af1848fb5..16586714b8f 100644 --- a/keyboards/input_club/k_type/is31fl3733-dual.h +++ b/keyboards/input_club/k_type/is31fl3733-dual.h @@ -29,7 +29,7 @@ typedef struct is31_led { uint8_t b; } __attribute__((packed)) is31_led; -extern const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL]; +extern const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT]; void IS31FL3733_init(uint8_t bus, uint8_t addr, uint8_t sync); bool IS31FL3733_write_register(uint8_t index, uint8_t addr, uint8_t reg, uint8_t data); diff --git a/keyboards/input_club/k_type/k_type-rgbdriver.c b/keyboards/input_club/k_type/k_type-rgbdriver.c index 5ae132d63a7..e663c224c4a 100644 --- a/keyboards/input_club/k_type/k_type-rgbdriver.c +++ b/keyboards/input_club/k_type/k_type-rgbdriver.c @@ -29,7 +29,7 @@ static void init(void) { i2c_init(&I2CD2, I2C2_SCL_PIN, I2C2_SDA_PIN); IS31FL3733_init(1, DRIVER_ADDR_2, 0); # endif - for (int index = 0; index < DRIVER_LED_TOTAL; index++) { + for (int index = 0; index < RGB_MATRIX_LED_COUNT; index++) { bool enabled = true; // This only caches it for later IS31FL3733_set_led_control_register(index, enabled, enabled, enabled); diff --git a/keyboards/input_club/k_type/k_type.c b/keyboards/input_club/k_type/k_type.c index 0e10710cb1f..3f67b4b10d7 100644 --- a/keyboards/input_club/k_type/k_type.c +++ b/keyboards/input_club/k_type/k_type.c @@ -23,7 +23,7 @@ along with this program. If not, see . #include "is31fl3733-dual.h" -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { { 0, B_1, A_1, C_1 }, { 0, B_2, A_2, C_2 }, { 0, B_3, A_3, C_3 }, diff --git a/keyboards/input_club/k_type/keymaps/andrew-fahmy/config.h b/keyboards/input_club/k_type/keymaps/andrew-fahmy/config.h index c035255de68..31e4bff4b6e 100644 --- a/keyboards/input_club/k_type/keymaps/andrew-fahmy/config.h +++ b/keyboards/input_club/k_type/keymaps/andrew-fahmy/config.h @@ -48,5 +48,5 @@ # define DRIVER_COUNT 2 # define DRIVER_1_LED_TOTAL 64 # define DRIVER_2_LED_TOTAL 55 -# define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) +# define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) #endif diff --git a/keyboards/input_club/whitefox/config.h b/keyboards/input_club/whitefox/config.h index 2c2e8c63242..dd20f2fe06b 100644 --- a/keyboards/input_club/whitefox/config.h +++ b/keyboards/input_club/whitefox/config.h @@ -57,7 +57,7 @@ along with this program. If not, see . /* LED matrix driver */ #define LED_DRIVER_ADDR_1 0x74 #define LED_DRIVER_COUNT 1 -#define DRIVER_LED_TOTAL 71 +#define LED_MATRIX_LED_COUNT 71 #define LED_DISABLE_WHEN_USB_SUSPENDED /* i2c (for LED matrix) */ diff --git a/keyboards/input_club/whitefox/whitefox.c b/keyboards/input_club/whitefox/whitefox.c index 99c59f7732a..8d92aa8d2fd 100644 --- a/keyboards/input_club/whitefox/whitefox.c +++ b/keyboards/input_club/whitefox/whitefox.c @@ -18,7 +18,7 @@ along with this program. If not, see . #include "whitefox.h" #ifdef LED_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[LED_MATRIX_LED_COUNT] = { // The numbers in the comments are the led numbers DXX on the PCB /* Refer to IS31 manual for these locations * driver diff --git a/keyboards/jacky_studio/bear_65/config.h b/keyboards/jacky_studio/bear_65/config.h index 92a6a5b60a2..dc7e9c6158c 100644 --- a/keyboards/jacky_studio/bear_65/config.h +++ b/keyboards/jacky_studio/bear_65/config.h @@ -74,5 +74,5 @@ #define RGB_MATRIX_KEYPRESSES #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 220 #define RGB_MATRIX_FRAMEBUFFER_EFFECTS -#define DRIVER_LED_TOTAL 12 // Number of LEDs +#define RGB_MATRIX_LED_COUNT 12 // Number of LEDs #endif diff --git a/keyboards/jadookb/jkb65/config.h b/keyboards/jadookb/jkb65/config.h index a3fd5a0fa7a..c82b44b482e 100644 --- a/keyboards/jadookb/jkb65/config.h +++ b/keyboards/jadookb/jkb65/config.h @@ -25,7 +25,7 @@ #define RGB_DI_PIN F0 -#define DRIVER_LED_TOTAL 67 +#define RGB_MATRIX_LED_COUNT 67 #define RGB_DISABLE_WHEN_USB_SUSPENDED #define RGB_MATRIX_FRAMEBUFFER_EFFECTS diff --git a/keyboards/jadookb/jkb65/info.json b/keyboards/jadookb/jkb65/info.json index 394b53027ae..c6f5813feec 100644 --- a/keyboards/jadookb/jkb65/info.json +++ b/keyboards/jadookb/jkb65/info.json @@ -6,8 +6,12 @@ "vid": "0x4A4B", "pid": "0xEF6A" }, + "layout_aliases": { + "LAYOUT_67_ansi": "LAYOUT_65_ansi_blocker" + }, + "community_layouts": ["65_ansi_blocker"], "layouts": { - "LAYOUT_67_ansi": { + "LAYOUT_65_ansi_blocker": { "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"~", "x":15, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Delete", "x":15, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"PgUp", "x":15, "y":2}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"\u2191", "x":14, "y":3}, {"label":"PgDn", "x":15, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Fn", "x":10, "y":4, "w":1.25}, {"label":"Menu", "x":11.25, "y":4, "w":1.25}, {"label":"\u2190", "x":13, "y":4}, {"label":"\u2193", "x":14, "y":4}, {"label":"\u2192", "x":15, "y":4}] } } diff --git a/keyboards/jadookb/jkb65/jkb65.h b/keyboards/jadookb/jkb65/jkb65.h index fa88e64bf75..97f65bf4dac 100644 --- a/keyboards/jadookb/jkb65/jkb65.h +++ b/keyboards/jadookb/jkb65/jkb65.h @@ -18,7 +18,7 @@ #include "quantum.h" -#define LAYOUT_67_ansi( \ +#define LAYOUT_65_ansi_blocker( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0E, K0F, \ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1F, \ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2F, \ diff --git a/keyboards/jadookb/jkb65/keymaps/default/keymap.c b/keyboards/jadookb/jkb65/keymaps/default/keymap.c index f03211d2204..22016cea763 100644 --- a/keyboards/jadookb/jkb65/keymaps/default/keymap.c +++ b/keyboards/jadookb/jkb65/keymaps/default/keymap.c @@ -20,14 +20,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_67_ansi( + [0] = LAYOUT_65_ansi_blocker( 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_TILD, 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_DEL, 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_PGUP, 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_UP, KC_PGDN, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), - [1] = LAYOUT_67_ansi( + [1] = LAYOUT_65_ansi_blocker( 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, _______, RGB_RMOD, RGB_HUI, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/jadookb/jkb65/keymaps/via/keymap.c b/keyboards/jadookb/jkb65/keymaps/via/keymap.c index 5713fe3805a..950410d1aff 100644 --- a/keyboards/jadookb/jkb65/keymaps/via/keymap.c +++ b/keyboards/jadookb/jkb65/keymaps/via/keymap.c @@ -20,28 +20,28 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_67_ansi( + [0] = LAYOUT_65_ansi_blocker( 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_TILD, 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_DEL, 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_PGUP, 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_UP, KC_PGDN, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), - [1] = LAYOUT_67_ansi( + [1] = LAYOUT_65_ansi_blocker( 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, _______, RGB_RMOD, RGB_HUI, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, MAGIC_UNNO_GUI,MAGIC_NO_GUI, _______, RGB_TOG, _______, MO(2), RGB_SPD, RGB_VAD, RGB_SPI ), - [2] = LAYOUT_67_ansi( + [2] = LAYOUT_65_ansi_blocker( QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), - [3] = LAYOUT_67_ansi( + [3] = LAYOUT_65_ansi_blocker( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/janus/config.h b/keyboards/janus/config.h new file mode 100644 index 00000000000..8124f0db574 --- /dev/null +++ b/keyboards/janus/config.h @@ -0,0 +1,16 @@ +// Copyright 2022 Steven Karrmann (@skarrmann) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "config_common.h" + +/* Serial communication */ +#define SERIAL_USART_FULL_DUPLEX +#define SERIAL_USART_TX_PIN GP0 +#define SERIAL_USART_RX_PIN GP1 + +/* Double tap reset button to enter bootloader */ +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_LED GP17 +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U \ No newline at end of file diff --git a/keyboards/janus/halconf.h b/keyboards/janus/halconf.h new file mode 100644 index 00000000000..550a6e0abfa --- /dev/null +++ b/keyboards/janus/halconf.h @@ -0,0 +1,9 @@ +// Copyright 2022 Steven Karrmann (@skarrmann) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include_next + +#undef HAL_USE_SIO +#define HAL_USE_SIO TRUE \ No newline at end of file diff --git a/keyboards/janus/info.json b/keyboards/janus/info.json new file mode 100644 index 00000000000..6169dc6ed5d --- /dev/null +++ b/keyboards/janus/info.json @@ -0,0 +1,75 @@ +{ + "keyboard_name": "Janus", + "manufacturer": "Steven Karrmann", + "url": "https://github.com/skarrmann/janus", + "maintainer": "skarrmann", + "processor": "RP2040", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "matrix_pins": { + "cols": ["GP6", "GP7", "GP2", "GP4", "GP3"], + "rows": ["GP26", "GP27", "GP28", "GP29"] + }, + "indicators": { + "num_lock": "GP17", + "caps_lock": "GP16", + "scroll_lock": "GP25", + "on_state": 0 + }, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "split": { + "enabled": true + }, + "layouts": { + "LAYOUT_split_3x5_2": { + "layout": [ + { "matrix": [0, 0], "x": 0, "y": 0 }, + { "matrix": [0, 1], "x": 1, "y": 0 }, + { "matrix": [0, 2], "x": 2, "y": 0 }, + { "matrix": [0, 3], "x": 3, "y": 0 }, + { "matrix": [0, 4], "x": 4, "y": 0 }, + { "matrix": [4, 4], "x": 6, "y": 0 }, + { "matrix": [4, 3], "x": 7, "y": 0 }, + { "matrix": [4, 2], "x": 8, "y": 0 }, + { "matrix": [4, 1], "x": 9, "y": 0 }, + { "matrix": [4, 0], "x": 10, "y": 0 }, + { "matrix": [1, 0], "x": 0, "y": 1 }, + { "matrix": [1, 1], "x": 1, "y": 1 }, + { "matrix": [1, 2], "x": 2, "y": 1 }, + { "matrix": [1, 3], "x": 3, "y": 1 }, + { "matrix": [1, 4], "x": 4, "y": 1 }, + { "matrix": [5, 4], "x": 6, "y": 1 }, + { "matrix": [5, 3], "x": 7, "y": 1 }, + { "matrix": [5, 2], "x": 8, "y": 1 }, + { "matrix": [5, 1], "x": 9, "y": 1 }, + { "matrix": [5, 0], "x": 10, "y": 1 }, + { "matrix": [2, 0], "x": 0, "y": 2 }, + { "matrix": [2, 1], "x": 1, "y": 2 }, + { "matrix": [2, 2], "x": 2, "y": 2 }, + { "matrix": [2, 3], "x": 3, "y": 2 }, + { "matrix": [2, 4], "x": 4, "y": 2 }, + { "matrix": [6, 4], "x": 6, "y": 2 }, + { "matrix": [6, 3], "x": 7, "y": 2 }, + { "matrix": [6, 2], "x": 8, "y": 2 }, + { "matrix": [6, 1], "x": 9, "y": 2 }, + { "matrix": [6, 0], "x": 10, "y": 2 }, + { "matrix": [3, 3], "x": 3, "y": 3 }, + { "matrix": [3, 4], "x": 4, "y": 3 }, + { "matrix": [7, 4], "x": 6, "y": 3 }, + { "matrix": [7, 3], "x": 7, "y": 3 } + ] + } + }, + "usb": { + "device_version": "1.0.0", + "pid": "0x9A25", + "vid": "0xFEED" + } +} \ No newline at end of file diff --git a/keyboards/janus/keymaps/default/keymap.c b/keyboards/janus/keymaps/default/keymap.c new file mode 100644 index 00000000000..440645a15dc --- /dev/null +++ b/keyboards/janus/keymaps/default/keymap.c @@ -0,0 +1,50 @@ +// Copyright 2022 Steven Karrmann (@skarrmann) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +enum layer_names { + _BASE, + _SYMBOL, + _NAVIGATION, + _FUNCTION +}; + +#define MO_SYM MO(_SYMBOL) +#define MO_NAV MO(_NAVIGATION) +#define MO_FUN MO(_FUNCTION) +#define OS_LCTL OSM(MOD_LCTL) +#define OS_LSFT OSM(MOD_LSFT) +#define OS_LALT OSM(MOD_LALT) +#define OS_LGUI OSM(MOD_LGUI) +#define OS_RCTL OSM(MOD_RCTL) +#define OS_RSFT OSM(MOD_RSFT) +#define OS_RALT OSM(MOD_RALT) +#define OS_RGUI OSM(MOD_RGUI) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_split_3x5_2( + KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , + KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_QUOT, + KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, + MO_NAV , KC_LSFT, KC_SPC , MO_SYM + ), + [_SYMBOL] = LAYOUT_split_3x5_2( + KC_SCLN, KC_LBRC, KC_RBRC, KC_5 , XXXXXXX, XXXXXXX, KC_6 , KC_MINS, KC_EQL , KC_GRV , + KC_1 , KC_2 , KC_3 , KC_4 , KC_BSLS, XXXXXXX, KC_7 , KC_8 , KC_9 , KC_0 , + OS_LGUI, OS_LALT, OS_LSFT, OS_LCTL, XXXXXXX, XXXXXXX, OS_RCTL, OS_RSFT, OS_RALT, OS_RGUI, + MO_FUN , _______, _______, _______ + ), + [_NAVIGATION] = LAYOUT_split_3x5_2( + KC_PSCR, KC_INS , KC_APP , KC_DEL , XXXXXXX, XXXXXXX, KC_HOME, KC_PGDN, KC_PGUP, KC_END , + KC_ESC , KC_TAB , KC_ENT , KC_BSPC, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP , KC_RGHT, + OS_LGUI, OS_LALT, OS_LSFT, OS_LCTL, XXXXXXX, XXXXXXX, OS_RCTL, OS_RSFT, OS_RALT, OS_RGUI, + _______, _______, _______, MO_FUN + ), + [_FUNCTION] = LAYOUT_split_3x5_2( + KC_F1 , KC_F2 , KC_F3 , KC_F4 , QK_BOOT, KC_SLCK, KC_F9 , KC_F10 , KC_F11 , KC_F12 , + KC_F5 , KC_F6 , KC_F7 , KC_F8 , XXXXXXX, KC_CLCK, KC_MUTE, KC_VOLD, KC_VOLU, KC_PAUS, + OS_LGUI, OS_LALT, OS_LSFT, OS_LCTL, XXXXXXX, KC_NLCK, OS_RCTL, OS_RSFT, OS_RALT, OS_RGUI, + _______, _______, _______, _______ + ), +}; \ No newline at end of file diff --git a/keyboards/janus/keymaps/default/readme.md b/keyboards/janus/keymaps/default/readme.md new file mode 100644 index 00000000000..dc7534e3174 --- /dev/null +++ b/keyboards/janus/keymaps/default/readme.md @@ -0,0 +1,13 @@ +# Janus Default Keymap + +![Janus default keymap image](https://i.imgur.com/7FevUIZh.png) + +The default Janus keymap is simple and organized. The only QMK special features used are layers and one shot keys for modifiers. + +It is inspired by [Callum's keymap](https://github.com/qmk/qmk_firmware/tree/master/users/callum), with a few differences: + +* Modifier keys are moved to the bottom row on every layer, and are mirrored on both sides. +* Symbol layer only contains non-shifted symbol keys. +* General differences in key positions. + +For simplicity's sake, the keymap uses QMK's native one shot key implementation. There are other excellent one shot implementations out there, including Callum's in the aforementioned keymap. \ No newline at end of file diff --git a/keyboards/janus/mcuconf.h b/keyboards/janus/mcuconf.h new file mode 100644 index 00000000000..c41253d4fbb --- /dev/null +++ b/keyboards/janus/mcuconf.h @@ -0,0 +1,9 @@ +// Copyright 2022 Steven Karrmann (@skarrmann) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include_next + +#undef RP_SIO_USE_UART0 +#define RP_SIO_USE_UART0 TRUE \ No newline at end of file diff --git a/keyboards/janus/readme.md b/keyboards/janus/readme.md new file mode 100644 index 00000000000..aa9e65cdc49 --- /dev/null +++ b/keyboards/janus/readme.md @@ -0,0 +1,27 @@ +# Janus + +![Janus](https://i.imgur.com/7Lzhafeh.jpg) + +A 34-key split ortholinear keyboard, powered by two Seeed XIAO RP2040. + +* Keyboard Maintainer: [Steven Karrmann](https://github.com/skarrmann) +* Hardware Supported: Janus PCBs, Seeed XIAO RP2040 +* Hardware Availability: [Janus GitHub repository](https://github.com/skarrmann/janus) + +Make example for this keyboard (after setting up your build environment): + + make janus:default + +Flashing example for this keyboard: + + make janus: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 top left key on the left half, or top right key on the right half, and then plug in the USB cable on that keyboard half. +* **Physical reset button**: Double tap the reset button on the XIAO RP2040. +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. diff --git a/keyboards/janus/rules.mk b/keyboards/janus/rules.mk new file mode 100644 index 00000000000..59b74ac86bd --- /dev/null +++ b/keyboards/janus/rules.mk @@ -0,0 +1 @@ +SERIAL_DRIVER = usart \ No newline at end of file diff --git a/keyboards/jkeys_design/gentleman65/config.h b/keyboards/jkeys_design/gentleman65/config.h index eed1d351a73..7b0a723cbc1 100644 --- a/keyboards/jkeys_design/gentleman65/config.h +++ b/keyboards/jkeys_design/gentleman65/config.h @@ -48,4 +48,4 @@ along with this program. If not, see . #define ENCODERS_PAD_B { F5 } #define ENCODER_RESOLUTION 4 -#define DRIVER_LED_TOTAL 14 +#define RGB_MATRIX_LED_COUNT 14 diff --git a/keyboards/jkeys_design/gentleman65_se_s/config.h b/keyboards/jkeys_design/gentleman65_se_s/config.h index effdb281e62..f5ecb8f5de9 100644 --- a/keyboards/jkeys_design/gentleman65_se_s/config.h +++ b/keyboards/jkeys_design/gentleman65_se_s/config.h @@ -49,4 +49,4 @@ along with this program. If not, see . #define ENCODERS_PAD_B { B1 } #define ENCODER_RESOLUTION 4 -#define DRIVER_LED_TOTAL 14 +#define RGB_MATRIX_LED_COUNT 14 diff --git a/keyboards/kapl/rev1/config.h b/keyboards/kapl/rev1/config.h index ae88c865720..37e49d3d607 100644 --- a/keyboards/kapl/rev1/config.h +++ b/keyboards/kapl/rev1/config.h @@ -31,7 +31,7 @@ #define RGBLIGHT_SPLIT #define RGBLIGHT_LIMIT_VAL 120 // limits maximum brightness of LEDs to 150 out of 255. Higher may cause the controller to crash. -#define DRIVER_LED_TOTAL 88 +#define RGB_MATRIX_LED_COUNT 88 #define RGB_MATRIX_SPLIT { 44, 44 } #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 120 // limits maximum brightness of LEDs to 150 out of 255. Higher may cause the controller to crash. #define SPLIT_TRANSPORT_MIRROR diff --git a/keyboards/kbdfans/baguette66/rgb/config.h b/keyboards/kbdfans/baguette66/rgb/config.h index 4f234609643..2dd8182ddda 100644 --- a/keyboards/kbdfans/baguette66/rgb/config.h +++ b/keyboards/kbdfans/baguette66/rgb/config.h @@ -34,7 +34,7 @@ #define RGB_DI_PIN E6 #define RGBLED_NUM 66 -#define DRIVER_LED_TOTAL RGBLED_NUM +#define RGB_MATRIX_LED_COUNT RGBLED_NUM #define RGBLIGHT_EFFECT_BREATHING #define RGBLIGHT_EFFECT_RAINBOW_MOOD #define RGBLIGHT_EFFECT_RAINBOW_SWIRL diff --git a/keyboards/kbdfans/bella/rgb/config.h b/keyboards/kbdfans/bella/rgb/config.h index 837701c7c45..326f1fe19fa 100644 --- a/keyboards/kbdfans/bella/rgb/config.h +++ b/keyboards/kbdfans/bella/rgb/config.h @@ -86,7 +86,7 @@ #define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_ALL #define DRIVER_ADDR_1 0b0110000 #define DRIVER_COUNT 1 -#define DRIVER_LED_TOTAL 108 +#define RGB_MATRIX_LED_COUNT 108 #define DRIVER_INDICATOR_LED_TOTAL 0 #endif #define DYNAMIC_KEYMAP_LAYER_COUNT 2 diff --git a/keyboards/kbdfans/bella/rgb/rgb.c b/keyboards/kbdfans/bella/rgb/rgb.c index 4353cae1bed..90bbda0f7f6 100644 --- a/keyboards/kbdfans/bella/rgb/rgb.c +++ b/keyboards/kbdfans/bella/rgb/rgb.c @@ -15,7 +15,7 @@ */ #include "rgb.h" #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { {0, CS18_SW1, CS17_SW1, CS16_SW1}, /* RGB6 */ {0, CS18_SW3, CS17_SW3, CS16_SW3}, /* RGB32 */ {0, CS18_SW4, CS17_SW4, CS16_SW4}, /* RGB45 */ diff --git a/keyboards/kbdfans/bella/rgb_iso/config.h b/keyboards/kbdfans/bella/rgb_iso/config.h index b1024b4e21c..78ae4f21e15 100644 --- a/keyboards/kbdfans/bella/rgb_iso/config.h +++ b/keyboards/kbdfans/bella/rgb_iso/config.h @@ -86,7 +86,7 @@ #define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_ALL #define DRIVER_ADDR_1 0b0110000 #define DRIVER_COUNT 1 -#define DRIVER_LED_TOTAL 109 +#define RGB_MATRIX_LED_COUNT 109 #define DRIVER_INDICATOR_LED_TOTAL 0 #endif #define DYNAMIC_KEYMAP_LAYER_COUNT 2 diff --git a/keyboards/kbdfans/bella/rgb_iso/rgb_iso.c b/keyboards/kbdfans/bella/rgb_iso/rgb_iso.c index 072501045ac..417c76cca60 100644 --- a/keyboards/kbdfans/bella/rgb_iso/rgb_iso.c +++ b/keyboards/kbdfans/bella/rgb_iso/rgb_iso.c @@ -15,7 +15,7 @@ */ #include "rgb_iso.h" #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { {0, CS18_SW1, CS17_SW1, CS16_SW1}, /* RGB6 */ {0, CS18_SW3, CS17_SW3, CS16_SW3}, /* RGB32 */ {0, CS18_SW4, CS17_SW4, CS16_SW4}, /* RGB45 */ diff --git a/keyboards/kbdfans/boop65/rgb/config.h b/keyboards/kbdfans/boop65/rgb/config.h index 2d4cbe4e859..fea42a4266e 100644 --- a/keyboards/kbdfans/boop65/rgb/config.h +++ b/keyboards/kbdfans/boop65/rgb/config.h @@ -43,7 +43,7 @@ # define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_ALL # define DRIVER_ADDR_1 0b0110000 # define DRIVER_COUNT 1 -# define DRIVER_LED_TOTAL 83 +# define RGB_MATRIX_LED_COUNT 83 # define DRIVER_INDICATOR_LED_TOTAL 0 #define ENABLE_RGB_MATRIX_ALPHAS_MODS #define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN diff --git a/keyboards/kbdfans/boop65/rgb/rgb.c b/keyboards/kbdfans/boop65/rgb/rgb.c index 3e9c66f4572..a0a1778fd80 100644 --- a/keyboards/kbdfans/boop65/rgb/rgb.c +++ b/keyboards/kbdfans/boop65/rgb/rgb.c @@ -18,7 +18,7 @@ #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { {0, CS21_SW1, CS20_SW1, CS19_SW1}, {0, CS21_SW2, CS20_SW2, CS19_SW2}, {0, CS21_SW3, CS20_SW3, CS19_SW3}, diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v1/config.h b/keyboards/kbdfans/kbd67/mkiirgb/v1/config.h index a6a56cdcede..944ddbddc29 100644 --- a/keyboards/kbdfans/kbd67/mkiirgb/v1/config.h +++ b/keyboards/kbdfans/kbd67/mkiirgb/v1/config.h @@ -69,4 +69,4 @@ #define DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 35 #define DRIVER_2_LED_TOTAL 32 -#define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) +#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v1/v1.c b/keyboards/kbdfans/kbd67/mkiirgb/v1/v1.c index f0036738711..f034350b7ce 100644 --- a/keyboards/kbdfans/kbd67/mkiirgb/v1/v1.c +++ b/keyboards/kbdfans/kbd67/mkiirgb/v1/v1.c @@ -16,7 +16,7 @@ #include "v1.h" #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { {0, C8_8, C7_8, C6_8}, // LA17 {0, C9_8, C7_7, C6_7}, // LA16 diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v2/config.h b/keyboards/kbdfans/kbd67/mkiirgb/v2/config.h index a5dfdae5ed8..855f7210dbd 100644 --- a/keyboards/kbdfans/kbd67/mkiirgb/v2/config.h +++ b/keyboards/kbdfans/kbd67/mkiirgb/v2/config.h @@ -68,5 +68,5 @@ # define DRIVER_COUNT 2 # define DRIVER_1_LED_TOTAL 35 # define DRIVER_2_LED_TOTAL 32 -# define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) +# define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) #endif diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v2/v2.c b/keyboards/kbdfans/kbd67/mkiirgb/v2/v2.c index 37972c2500b..1da1c667471 100644 --- a/keyboards/kbdfans/kbd67/mkiirgb/v2/v2.c +++ b/keyboards/kbdfans/kbd67/mkiirgb/v2/v2.c @@ -16,7 +16,7 @@ #include "v2.h" #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { {0, C8_8, C7_8, C6_8}, // LA17 {0, C9_8, C7_7, C6_7}, // LA16 diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v3/config.h b/keyboards/kbdfans/kbd67/mkiirgb/v3/config.h index cb847e9b458..c65819be8d9 100755 --- a/keyboards/kbdfans/kbd67/mkiirgb/v3/config.h +++ b/keyboards/kbdfans/kbd67/mkiirgb/v3/config.h @@ -89,6 +89,6 @@ #define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_ALL #define DRIVER_ADDR_1 0b0110000 #define DRIVER_COUNT 1 -#define DRIVER_LED_TOTAL 67 +#define RGB_MATRIX_LED_COUNT 67 #define DRIVER_INDICATOR_LED_TOTAL 0 #endif diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v3/v3.c b/keyboards/kbdfans/kbd67/mkiirgb/v3/v3.c index 306c22615f8..8089ee1f8c7 100755 --- a/keyboards/kbdfans/kbd67/mkiirgb/v3/v3.c +++ b/keyboards/kbdfans/kbd67/mkiirgb/v3/v3.c @@ -18,7 +18,7 @@ #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { {0, CS21_SW1, CS20_SW1, CS19_SW1}, {0, CS21_SW2, CS20_SW2, CS19_SW2}, {0, CS21_SW3, CS20_SW3, CS19_SW3}, diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v4/config.h b/keyboards/kbdfans/kbd67/mkiirgb/v4/config.h index f7e0e06278b..4d3d08a513b 100644 --- a/keyboards/kbdfans/kbd67/mkiirgb/v4/config.h +++ b/keyboards/kbdfans/kbd67/mkiirgb/v4/config.h @@ -33,7 +33,7 @@ #define RGB_DI_PIN C7 #define RGBLED_NUM 68 -#define DRIVER_LED_TOTAL RGBLED_NUM +#define RGB_MATRIX_LED_COUNT RGBLED_NUM #define RGBLIGHT_EFFECT_BREATHING #define RGBLIGHT_EFFECT_RAINBOW_MOOD #define RGBLIGHT_EFFECT_RAINBOW_SWIRL diff --git a/keyboards/kbdfans/kbd67/mkiirgb_iso/config.h b/keyboards/kbdfans/kbd67/mkiirgb_iso/config.h index 415da00b48f..afca6e996b7 100644 --- a/keyboards/kbdfans/kbd67/mkiirgb_iso/config.h +++ b/keyboards/kbdfans/kbd67/mkiirgb_iso/config.h @@ -32,7 +32,7 @@ #define USB_SUSPEND_WAKEUP_DELAY 5000 #define RGB_DI_PIN C7 -#define DRIVER_LED_TOTAL 68 +#define RGB_MATRIX_LED_COUNT 68 #ifdef RGB_MATRIX_ENABLE # define RGB_MATRIX_KEYPRESSES // reacts to keypresses diff --git a/keyboards/kbdfans/kbd75rgb/config.h b/keyboards/kbdfans/kbd75rgb/config.h index eff9c8eae10..ba2b1e96b8b 100644 --- a/keyboards/kbdfans/kbd75rgb/config.h +++ b/keyboards/kbdfans/kbd75rgb/config.h @@ -34,7 +34,7 @@ #define RGB_DI_PIN C7 #define RGBLED_NUM 84 -#define DRIVER_LED_TOTAL RGBLED_NUM +#define RGB_MATRIX_LED_COUNT RGBLED_NUM #define RGBLIGHT_EFFECT_BREATHING #define RGBLIGHT_EFFECT_RAINBOW_MOOD #define RGBLIGHT_EFFECT_RAINBOW_SWIRL diff --git a/keyboards/kbdfans/kbd75rgb/info.json b/keyboards/kbdfans/kbd75rgb/info.json index 4c008f03108..32201ff1920 100644 --- a/keyboards/kbdfans/kbd75rgb/info.json +++ b/keyboards/kbdfans/kbd75rgb/info.json @@ -7,5 +7,100 @@ "vid": "0x4B42", "pid": "0x6063", "device_version": "0.0.1" + }, + "layouts": { + "LAYOUT_75_ansi": { + "layout": [ + {"label": "Esc", "x":0, "y":0}, + {"label": "F1", "x":1, "y":0}, + {"label": "F2", "x":2, "y":0}, + {"label": "F3", "x":3, "y":0}, + {"label": "F4", "x":4, "y":0}, + {"label": "F5", "x":5, "y":0}, + {"label": "F6", "x":6, "y":0}, + {"label": "F7", "x":7, "y":0}, + {"label": "F8", "x":8, "y":0}, + {"label": "F9", "x":9, "y":0}, + {"label": "F10", "x":10, "y":0}, + {"label": "F11", "x":11, "y":0}, + {"label": "F12", "x":12, "y":0}, + {"label": "PrintScr", "x":13, "y":0}, + {"label": "Ins", "x":14, "y":0}, + {"label": "Home", "x":15, "y":0}, + + {"label": "`~", "x":0, "y":1}, + {"label": "1!", "x":1, "y":1}, + {"label": "2@", "x":2, "y":1}, + {"label": "3#", "x":3, "y":1}, + {"label": "4$", "x":4, "y":1}, + {"label": "5%", "x":5, "y":1}, + {"label": "6^", "x":6, "y":1}, + {"label": "7&", "x":7, "y":1}, + {"label": "8*", "x":8, "y":1}, + {"label": "9(", "x":9, "y":1}, + {"label": "0)", "x":10, "y":1}, + {"label": "-_", "x":11, "y":1}, + {"label": "+=", "x":12, "y":1}, + {"label": "Backspace", "x":13, "y":1, "w":2}, + {"label": "End", "x":15, "y":1}, + + {"label": "Tab", "x":0, "y":2, "w":1.5}, + {"label": "Q", "x":1.5, "y":2}, + {"label": "W", "x":2.5, "y":2}, + {"label": "E", "x":3.5, "y":2}, + {"label": "R", "x":4.5, "y":2}, + {"label": "T", "x":5.5, "y":2}, + {"label": "Y", "x":6.5, "y":2}, + {"label": "U", "x":7.5, "y":2}, + {"label": "I", "x":8.5, "y":2}, + {"label": "O", "x":9.5, "y":2}, + {"label": "P", "x":10.5, "y":2}, + {"label": "[{", "x":11.5, "y":2}, + {"label": "]}", "x":12.5, "y":2}, + {"label": "\\|", "x":13.5, "y":2, "w":1.5}, + {"label": "Pg Up", "x":15, "y":2}, + + {"label": "Caps Lock", "x":0, "y":3, "w":1.75}, + {"label": "A", "x":1.75, "y":3}, + {"label": "S", "x":2.75, "y":3}, + {"label": "D", "x":3.75, "y":3}, + {"label": "F", "x":4.75, "y":3}, + {"label": "G", "x":5.75, "y":3}, + {"label": "H", "x":6.75, "y":3}, + {"label": "J", "x":7.75, "y":3}, + {"label": "K", "x":8.75, "y":3}, + {"label": "L", "x":9.75, "y":3}, + {"label": ";:", "x":10.75, "y":3}, + {"label": "\"'", "x":11.75, "y":3}, + {"label": "Enter", "x":12.75, "y":3, "w":2.25}, + {"label": "Pg Dn", "x":15, "y":3}, + + {"label": "Shift", "x":0, "y":4, "w":2.25}, + {"label": "Z", "x":2.25, "y":4}, + {"label": "X", "x":3.25, "y":4}, + {"label": "C", "x":4.25, "y":4}, + {"label": "V", "x":5.25, "y":4}, + {"label": "B", "x":6.25, "y":4}, + {"label": "N", "x":7.25, "y":4}, + {"label": "M", "x":8.25, "y":4}, + {"label": ",<", "x":9.25, "y":4}, + {"label": ".>", "x":10.25, "y":4}, + {"label": "/?", "x":11.25, "y":4}, + {"label": "Shift", "x":12.25, "y":4, "w":1.75}, + {"label": "Up", "x":14, "y":4}, + {"label": "Del", "x":15, "y":4}, + + {"label": "Ctrl", "x":0, "y":5, "w":1.25}, + {"label": "GUI", "x":1.25, "y":5, "w":1.25}, + {"label": "Alt", "x":2.5, "y":5, "w":1.25}, + {"label": "Space", "x":3.75, "y":5, "w":6.25}, + {"label": "Alt", "x":10, "y":5}, + {"label": "GUI", "x":11, "y":5}, + {"label": "Ctrl", "x":12, "y":5}, + {"label": "Left", "x":13, "y":5}, + {"label": "Down", "x":14, "y":5}, + {"label": "Right", "x":15, "y":5} + ] + } } } diff --git a/keyboards/kbdfans/kbdmini/config.h b/keyboards/kbdfans/kbdmini/config.h index 1f7d095e9fe..0eaf7a50ff3 100644 --- a/keyboards/kbdfans/kbdmini/config.h +++ b/keyboards/kbdfans/kbdmini/config.h @@ -81,5 +81,5 @@ #define DRIVER_ADDR_1 0b1010000 #define DRIVER_COUNT 1 -#define DRIVER_LED_TOTAL 52 +#define RGB_MATRIX_LED_COUNT 52 #endif diff --git a/keyboards/kbdfans/kbdmini/kbdmini.c b/keyboards/kbdfans/kbdmini/kbdmini.c index 03c0096c708..80ba687b6d3 100644 --- a/keyboards/kbdfans/kbdmini/kbdmini.c +++ b/keyboards/kbdfans/kbdmini/kbdmini.c @@ -1,6 +1,6 @@ #include "kbdmini.h" -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { { 0, B_9, A_9, C_9 }, //LA33 { 0, B_10, A_10, C_10 }, //LA37 { 0, B_11, A_11, C_11 }, //LA41 diff --git a/keyboards/kbdfans/maja/config.h b/keyboards/kbdfans/maja/config.h index 0800de1ece5..f98b7c31164 100755 --- a/keyboards/kbdfans/maja/config.h +++ b/keyboards/kbdfans/maja/config.h @@ -69,4 +69,4 @@ #define DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 36 #define DRIVER_2_LED_TOTAL 31 -#define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) +#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) diff --git a/keyboards/kbdfans/maja/maja.c b/keyboards/kbdfans/maja/maja.c index d257212750b..6bb23f47394 100755 --- a/keyboards/kbdfans/maja/maja.c +++ b/keyboards/kbdfans/maja/maja.c @@ -1,6 +1,6 @@ #include "maja.h" -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { {0, C2_1, C3_1, C4_1}, // LA0 {0, C1_1, C3_2, C4_2}, // LA1 {0, C1_2, C2_2, C4_3}, // LA2 diff --git a/keyboards/kbdfans/odin/rgb/config.h b/keyboards/kbdfans/odin/rgb/config.h index 571f6d0d1cf..9f15473877e 100644 --- a/keyboards/kbdfans/odin/rgb/config.h +++ b/keyboards/kbdfans/odin/rgb/config.h @@ -25,7 +25,7 @@ #define DEBOUNCE 5 #define RGBLED_NUM 110 -#define DRIVER_LED_TOTAL 110 +#define RGB_MATRIX_LED_COUNT 110 #define RGB_DI_PIN B15 #ifdef RGB_MATRIX_ENABLE diff --git a/keyboards/keebio/bamfk4/config.h b/keyboards/keebio/bamfk4/config.h index b18b94da106..afac3376a46 100644 --- a/keyboards/keebio/bamfk4/config.h +++ b/keyboards/keebio/bamfk4/config.h @@ -81,7 +81,7 @@ # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 160 # define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS -# define DRIVER_LED_TOTAL RGBLED_NUM +# define RGB_MATRIX_LED_COUNT RGBLED_NUM # define RGB_DISABLE_WHEN_USB_SUSPENDED # define RGB_MATRIX_KEYPRESSES //# endif diff --git a/keyboards/keebio/bdn9/keymaps/via/keymap.c b/keyboards/keebio/bdn9/keymaps/via/keymap.c index fc5f22cd8b4..6efb6003de4 100644 --- a/keyboards/keebio/bdn9/keymaps/via/keymap.c +++ b/keyboards/keebio/bdn9/keymaps/via/keymap.c @@ -1,42 +1,45 @@ #include QMK_KEYBOARD_H -enum encoder_names { - _LEFT, - _RIGHT, - _MIDDLE, -}; - enum layer_names { - _ZERO, - _ONE, - _TWO, - _THREE + _MAIN, + _FN1, + _FN2, + _FN3 }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[_ZERO] = LAYOUT( +[_MAIN] = LAYOUT( KC_MPLY, KC_HOME, KC_MUTE, MO(1), KC_UP, RGB_MOD, KC_LEFT, KC_DOWN, KC_RGHT ), -[_ONE] = LAYOUT( - QK_BOOT, BL_STEP, KC_STOP, +[_FN1] = LAYOUT( + QK_BOOT, BL_STEP, KC_STOP, _______, KC_HOME, RGB_MOD, KC_MPRV, KC_END , KC_MNXT ), -[_TWO] = LAYOUT( +[_FN2] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______ ), -[_THREE] = LAYOUT( +[_FN3] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______ ) }; + +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [_MAIN] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_UP, KC_DOWN), ENCODER_CCW_CW(KC_PGUP, KC_PGDN) }, + [_FN1] = { ENCODER_CCW_CW(RGB_HUD, RGB_HUI), ENCODER_CCW_CW(RGB_SAD, RGB_SAI), ENCODER_CCW_CW(RGB_VAD, RGB_VAI) }, + [_FN2] = { ENCODER_CCW_CW(RGB_RMOD, RGB_MOD), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) }, + [_FN3] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) }, +}; +#endif diff --git a/keyboards/keebio/bdn9/keymaps/via/rules.mk b/keyboards/keebio/bdn9/keymaps/via/rules.mk index d96967a6085..a7017de2b64 100644 --- a/keyboards/keebio/bdn9/keymaps/via/rules.mk +++ b/keyboards/keebio/bdn9/keymaps/via/rules.mk @@ -3,3 +3,4 @@ LTO_ENABLE = yes MOUSEKEY_ENABLE = yes CONSOLE_ENABLE = yes COMMAND_ENABLE = no +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/keebio/bdn9/rev2/config.h b/keyboards/keebio/bdn9/rev2/config.h index 56d6235ec9a..3af4f767255 100644 --- a/keyboards/keebio/bdn9/rev2/config.h +++ b/keyboards/keebio/bdn9/rev2/config.h @@ -47,7 +47,9 @@ along with this program. If not, see . # define RGBLIGHT_ANIMATIONS // RGB Matrix # ifdef RGB_MATRIX_ENABLE -# define DRIVER_LED_TOTAL RGBLED_NUM +# define RGB_MATRIX_LED_COUNT RGBLED_NUM +# define RGB_MATRIX_FRAMEBUFFER_EFFECTS +# define RGB_MATRIX_KEYPRESSES // RGB Matrix Animation modes. Explicitly enabled // For full list of effects, see: // https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects diff --git a/keyboards/keebio/iris/rev6/config.h b/keyboards/keebio/iris/rev6/config.h index 7bc8c4132b2..2f6d18efcda 100644 --- a/keyboards/keebio/iris/rev6/config.h +++ b/keyboards/keebio/iris/rev6/config.h @@ -113,7 +113,7 @@ along with this program. If not, see . # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 160 # define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS -# define DRIVER_LED_TOTAL RGBLED_NUM +# define RGB_MATRIX_LED_COUNT RGBLED_NUM # define RGB_MATRIX_SPLIT { 34, 34 } # define RGB_DISABLE_WHEN_USB_SUSPENDED # define RGB_MATRIX_KEYPRESSES diff --git a/keyboards/keebio/iris/rev6a/config.h b/keyboards/keebio/iris/rev6a/config.h index 08863797fbe..632514e87ef 100644 --- a/keyboards/keebio/iris/rev6a/config.h +++ b/keyboards/keebio/iris/rev6a/config.h @@ -113,7 +113,7 @@ along with this program. If not, see . # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 120 # define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS -# define DRIVER_LED_TOTAL RGBLED_NUM +# define RGB_MATRIX_LED_COUNT RGBLED_NUM # define RGB_MATRIX_SPLIT { 34, 34 } # define RGB_DISABLE_WHEN_USB_SUSPENDED # define RGB_MATRIX_KEYPRESSES diff --git a/keyboards/keebio/iris/rev6b/config.h b/keyboards/keebio/iris/rev6b/config.h index 08863797fbe..632514e87ef 100644 --- a/keyboards/keebio/iris/rev6b/config.h +++ b/keyboards/keebio/iris/rev6b/config.h @@ -113,7 +113,7 @@ along with this program. If not, see . # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 120 # define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS -# define DRIVER_LED_TOTAL RGBLED_NUM +# define RGB_MATRIX_LED_COUNT RGBLED_NUM # define RGB_MATRIX_SPLIT { 34, 34 } # define RGB_DISABLE_WHEN_USB_SUSPENDED # define RGB_MATRIX_KEYPRESSES diff --git a/keyboards/keebio/iris/rev7/config.h b/keyboards/keebio/iris/rev7/config.h index 005f78e8a99..ee55576d8c1 100644 --- a/keyboards/keebio/iris/rev7/config.h +++ b/keyboards/keebio/iris/rev7/config.h @@ -113,7 +113,7 @@ along with this program. If not, see . //# define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 120 # define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS -# define DRIVER_LED_TOTAL RGBLED_NUM +# define RGB_MATRIX_LED_COUNT RGBLED_NUM # define RGB_MATRIX_SPLIT { 34, 34 } # define RGB_DISABLE_WHEN_USB_SUSPENDED # define RGB_MATRIX_KEYPRESSES diff --git a/keyboards/keebio/quefrency/keymaps/via/keymap.c b/keyboards/keebio/quefrency/keymaps/via/keymap.c index 5ac83ef57c0..ad6cfd84ebd 100644 --- a/keyboards/keebio/quefrency/keymaps/via/keymap.c +++ b/keyboards/keebio/quefrency/keymaps/via/keymap.c @@ -33,3 +33,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) }; + +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [0] = { ENCODER_CCW_CW(KC_PGUP, KC_PGDN), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(RGB_RMOD, RGB_MOD), ENCODER_CCW_CW(KC_MPRV, KC_MNXT) }, + [2] = { ENCODER_CCW_CW(RGB_HUD, RGB_HUI), ENCODER_CCW_CW(RGB_SAD, RGB_SAI) }, + [3] = { ENCODER_CCW_CW(RGB_SPD, RGB_SPI), ENCODER_CCW_CW(RGB_VAD, RGB_VAI) }, +}; +#endif diff --git a/keyboards/keebio/quefrency/keymaps/via/rules.mk b/keyboards/keebio/quefrency/keymaps/via/rules.mk index 36b7ba9cbc9..1189f4ad192 100644 --- a/keyboards/keebio/quefrency/keymaps/via/rules.mk +++ b/keyboards/keebio/quefrency/keymaps/via/rules.mk @@ -1,2 +1,3 @@ VIA_ENABLE = yes LTO_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/keebio/quefrency/rev2/config.h b/keyboards/keebio/quefrency/rev2/config.h index e92be734442..30044f174fd 100644 --- a/keyboards/keebio/quefrency/rev2/config.h +++ b/keyboards/keebio/quefrency/rev2/config.h @@ -46,10 +46,19 @@ along with this program. If not, see . /* ws2812 RGB LED */ #define RGB_DI_PIN E6 -#define RGBLIGHT_ANIMATIONS #define RGBLED_NUM 16 // Number of LEDs #define RGBLED_SPLIT { 8, 8 } #define RGBLIGHT_LED_MAP { 1, 2, 3, 12, 13, 14, 15, 0, 7, 6, 5, 4, 11, 10, 9, 8 } +#define RGBLIGHT_EFFECT_BREATHING +#define RGBLIGHT_EFFECT_RAINBOW_MOOD +#define RGBLIGHT_EFFECT_RAINBOW_SWIRL +#define RGBLIGHT_EFFECT_SNAKE +#define RGBLIGHT_EFFECT_KNIGHT +#define RGBLIGHT_EFFECT_CHRISTMAS +#define RGBLIGHT_EFFECT_STATIC_GRADIENT +#define RGBLIGHT_EFFECT_RGB_TEST +#define RGBLIGHT_EFFECT_ALTERNATING +#define RGBLIGHT_EFFECT_TWINKLE // Set 65% column (option 3) and Macro (option 4) on by default #define VIA_EEPROM_LAYOUT_OPTIONS_DEFAULT 0x00DE diff --git a/keyboards/keebio/quefrency/rev2/rev2.c b/keyboards/keebio/quefrency/rev2/rev2.c index 590c9850c2d..d2badbeb255 100644 --- a/keyboards/keebio/quefrency/rev2/rev2.c +++ b/keyboards/keebio/quefrency/rev2/rev2.c @@ -31,6 +31,7 @@ void eeconfig_init_kb(void) { eeconfig_init_user(); } +#ifdef ENCODER_ENABLE bool encoder_update_kb(uint8_t index, bool clockwise) { if (!encoder_update_user(index, clockwise)) { return false; } if (index == 0) { @@ -48,3 +49,4 @@ bool encoder_update_kb(uint8_t index, bool clockwise) { } return false; } +#endif diff --git a/keyboards/keebio/quefrency/rev3/config.h b/keyboards/keebio/quefrency/rev3/config.h index e92be734442..30044f174fd 100644 --- a/keyboards/keebio/quefrency/rev3/config.h +++ b/keyboards/keebio/quefrency/rev3/config.h @@ -46,10 +46,19 @@ along with this program. If not, see . /* ws2812 RGB LED */ #define RGB_DI_PIN E6 -#define RGBLIGHT_ANIMATIONS #define RGBLED_NUM 16 // Number of LEDs #define RGBLED_SPLIT { 8, 8 } #define RGBLIGHT_LED_MAP { 1, 2, 3, 12, 13, 14, 15, 0, 7, 6, 5, 4, 11, 10, 9, 8 } +#define RGBLIGHT_EFFECT_BREATHING +#define RGBLIGHT_EFFECT_RAINBOW_MOOD +#define RGBLIGHT_EFFECT_RAINBOW_SWIRL +#define RGBLIGHT_EFFECT_SNAKE +#define RGBLIGHT_EFFECT_KNIGHT +#define RGBLIGHT_EFFECT_CHRISTMAS +#define RGBLIGHT_EFFECT_STATIC_GRADIENT +#define RGBLIGHT_EFFECT_RGB_TEST +#define RGBLIGHT_EFFECT_ALTERNATING +#define RGBLIGHT_EFFECT_TWINKLE // Set 65% column (option 3) and Macro (option 4) on by default #define VIA_EEPROM_LAYOUT_OPTIONS_DEFAULT 0x00DE diff --git a/keyboards/keebio/quefrency/rev3/info.json b/keyboards/keebio/quefrency/rev3/info.json index 8bea44183fe..5baacbb4de7 100644 --- a/keyboards/keebio/quefrency/rev3/info.json +++ b/keyboards/keebio/quefrency/rev3/info.json @@ -5,8 +5,8 @@ "maintainer": "nooges", "usb": { "vid": "0xCB10", - "pid": "0x3257", - "device_version": "3.0.0" + "pid": "0x3357", + "device_version": "3.1.0" }, "layout_aliases": { "LAYOUT": "LAYOUT_60" diff --git a/keyboards/keebio/quefrency/rev3/rev3.c b/keyboards/keebio/quefrency/rev3/rev3.c index 0f8f964d92d..8911dbd0184 100644 --- a/keyboards/keebio/quefrency/rev3/rev3.c +++ b/keyboards/keebio/quefrency/rev3/rev3.c @@ -47,6 +47,7 @@ void eeconfig_init_kb(void) { eeconfig_init_user(); } +#ifdef ENCODER_ENABLE bool encoder_update_kb(uint8_t index, bool clockwise) { if (!encoder_update_user(index, clockwise)) { return false; } if (index == 0) { @@ -64,3 +65,4 @@ bool encoder_update_kb(uint8_t index, bool clockwise) { } return false; } +#endif diff --git a/keyboards/keebio/quefrency/rev4/config.h b/keyboards/keebio/quefrency/rev4/config.h index d92a81de931..f047ffbdf02 100644 --- a/keyboards/keebio/quefrency/rev4/config.h +++ b/keyboards/keebio/quefrency/rev4/config.h @@ -46,8 +46,17 @@ along with this program. If not, see . /* ws2812 RGB LED */ #define RGB_DI_PIN E6 -#define RGBLIGHT_ANIMATIONS #define RGBLED_NUM 16 // Number of LEDs #define RGBLED_SPLIT { 8, 8 } #define RGBLIGHT_LED_MAP { 1, 2, 3, 12, 13, 14, 15, 0, 7, 6, 5, 4, 11, 10, 9, 8 } #define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2) +#define RGBLIGHT_EFFECT_BREATHING +#define RGBLIGHT_EFFECT_RAINBOW_MOOD +#define RGBLIGHT_EFFECT_RAINBOW_SWIRL +#define RGBLIGHT_EFFECT_SNAKE +#define RGBLIGHT_EFFECT_KNIGHT +#define RGBLIGHT_EFFECT_CHRISTMAS +#define RGBLIGHT_EFFECT_STATIC_GRADIENT +#define RGBLIGHT_EFFECT_RGB_TEST +#define RGBLIGHT_EFFECT_ALTERNATING +#define RGBLIGHT_EFFECT_TWINKLE diff --git a/keyboards/keebio/quefrency/rev4/info.json b/keyboards/keebio/quefrency/rev4/info.json index 198e84a5923..8cc78205ead 100644 --- a/keyboards/keebio/quefrency/rev4/info.json +++ b/keyboards/keebio/quefrency/rev4/info.json @@ -5,8 +5,8 @@ "maintainer": "nooges", "usb": { "vid": "0xCB10", - "pid": "0x4257", - "device_version": "4.0.0" + "pid": "0x4357", + "device_version": "4.1.0" }, "layout_aliases": { "LAYOUT": "LAYOUT_60" diff --git a/keyboards/keebio/quefrency/rev4/rev4.c b/keyboards/keebio/quefrency/rev4/rev4.c index 190135420fd..66d73a934a1 100644 --- a/keyboards/keebio/quefrency/rev4/rev4.c +++ b/keyboards/keebio/quefrency/rev4/rev4.c @@ -16,6 +16,7 @@ along with this program. If not, see . #include "quefrency.h" +#ifdef ENCODER_ENABLE bool encoder_update_kb(uint8_t index, bool clockwise) { if (!encoder_update_user(index, clockwise)) { return false; } if (index == 0) { @@ -33,3 +34,4 @@ bool encoder_update_kb(uint8_t index, bool clockwise) { } return false; } +#endif diff --git a/keyboards/keebio/quefrency/rev5/info.json b/keyboards/keebio/quefrency/rev5/info.json index 053551e30f4..c7cc7b4bd2d 100644 --- a/keyboards/keebio/quefrency/rev5/info.json +++ b/keyboards/keebio/quefrency/rev5/info.json @@ -5,8 +5,8 @@ "maintainer": "nooges", "usb": { "vid": "0xCB10", - "pid": "0x5257", - "device_version": "5.0.0" + "pid": "0x5357", + "device_version": "5.1.0" }, "layout_aliases": { "LAYOUT": "LAYOUT_60" diff --git a/keyboards/keebio/quefrency/rev5/rev5.c b/keyboards/keebio/quefrency/rev5/rev5.c index 190135420fd..66d73a934a1 100644 --- a/keyboards/keebio/quefrency/rev5/rev5.c +++ b/keyboards/keebio/quefrency/rev5/rev5.c @@ -16,6 +16,7 @@ along with this program. If not, see . #include "quefrency.h" +#ifdef ENCODER_ENABLE bool encoder_update_kb(uint8_t index, bool clockwise) { if (!encoder_update_user(index, clockwise)) { return false; } if (index == 0) { @@ -33,3 +34,4 @@ bool encoder_update_kb(uint8_t index, bool clockwise) { } return false; } +#endif diff --git a/keyboards/keebio/stick/config.h b/keyboards/keebio/stick/config.h index 81665109215..8539a6d49df 100644 --- a/keyboards/keebio/stick/config.h +++ b/keyboards/keebio/stick/config.h @@ -44,7 +44,7 @@ along with this program. If not, see . # define RGBLIGHT_ANIMATIONS // RGB Matrix # ifdef RGB_MATRIX_ENABLE -# define DRIVER_LED_TOTAL RGBLED_NUM +# define RGB_MATRIX_LED_COUNT RGBLED_NUM // RGB Matrix Animation modes. Explicitly enabled // For full list of effects, see: // https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects diff --git a/keyboards/keebwerk/mega/ansi/config.h b/keyboards/keebwerk/mega/ansi/config.h index 15df5576769..43bc3689257 100755 --- a/keyboards/keebwerk/mega/ansi/config.h +++ b/keyboards/keebwerk/mega/ansi/config.h @@ -112,7 +112,7 @@ along with this program. If not, see . #define RGB_BACKLIGHT_COLOR_2 { .h = 127, .s = 255 } #define DRIVER_COUNT 2 -#define DRIVER_LED_TOTAL 128 +#define RGB_MATRIX_LED_COUNT 128 // These define which keys in the matrix are alphas/mods // Used for backlight effects so colors are different for diff --git a/keyboards/kegen/gboy/info.json b/keyboards/kegen/gboy/info.json index ad274c19576..a47bfdb7b8e 100644 --- a/keyboards/kegen/gboy/info.json +++ b/keyboards/kegen/gboy/info.json @@ -1,8 +1,8 @@ { - "keyboard_name": "G-Boy", + "keyboard_name": "G-Boy", "manufacturer": "Kegen", - "url": "", - "maintainer": "@mattchan", + "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/kegen/gboy", + "maintainer": "mattchan", "usb": { "vid": "0x4B65", "pid": "0x6762", @@ -11,81 +11,82 @@ "layouts": { "LAYOUT_all": { "layout": [ - {"x":0, "y":0}, - {"x":1, "y":0}, - {"x":2, "y":0}, - {"x":3, "y":0}, - {"x":4, "y":0}, - {"x":5, "y":0}, - {"x":6, "y":0}, - {"x":7, "y":0}, - {"x":8, "y":0}, - {"x":9, "y":0}, - {"x":10, "y":0}, - {"x":11, "y":0}, - {"x":12, "y":0}, - {"x":13, "y":0}, - {"x":14, "y":0}, - {"x":15, "y":0}, - - {"x":0, "y":1, "w":1.5}, - {"x":1.5, "y":1}, - {"x":2.5, "y":1}, - {"x":3.5, "y":1}, - {"x":4.5, "y":1}, - {"x":5.5, "y":1}, - {"x":6.5, "y":1}, - {"x":7.5, "y":1}, - {"x":8.5, "y":1}, - {"x":9.5, "y":1}, - {"x":10.5, "y":1}, - {"x":11.5, "y":1}, - {"x":12.5, "y":1}, - {"x":13.5, "y":1, "w":1.5}, - {"x":15, "y":1}, + {"label": "GESC", "x":0, "y":0}, + {"label": "1", "x":1, "y":0}, + {"label": "2", "x":2, "y":0}, + {"label": "3", "x":3, "y":0}, + {"label": "4", "x":4, "y":0}, + {"label": "5", "x":5, "y":0}, + {"label": "6", "x":6, "y":0}, + {"label": "7", "x":7, "y":0}, + {"label": "8", "x":8, "y":0}, + {"label": "9", "x":9, "y":0}, + {"label": "0", "x":10, "y":0}, + {"label": "MINS", "x":11, "y":0}, + {"label": "EQL", "x":12, "y":0}, + {"label": "BSPC", "x":13, "y":0}, + {"label": "BSPC", "x":14, "y":0}, + {"label": "HOME", "x":15, "y":0}, - {"x":0, "y":2, "w":1.75}, - {"x":1.75, "y":2}, - {"x":2.75, "y":2}, - {"x":3.75, "y":2}, - {"x":4.75, "y":2}, - {"x":5.75, "y":2}, - {"x":6.75, "y":2}, - {"x":7.75, "y":2}, - {"x":8.75, "y":2}, - {"x":9.75, "y":2}, - {"x":10.75, "y":2}, - {"x":11.75, "y":2}, - {"x":12.75, "y":2}, - {"x":13.75, "y":2, "w":1.25}, - {"x":15, "y":2}, + {"label": "TAB", "x":0, "y":1, "w":1.5}, + {"label": "Q", "x":1.5, "y":1}, + {"label": "W", "x":2.5, "y":1}, + {"label": "E", "x":3.5, "y":1}, + {"label": "R", "x":4.5, "y":1}, + {"label": "T", "x":5.5, "y":1}, + {"label": "Y", "x":6.5, "y":1}, + {"label": "U", "x":7.5, "y":1}, + {"label": "I", "x":8.5, "y":1}, + {"label": "O", "x":9.5, "y":1}, + {"label": "P", "x":10.5, "y":1}, + {"label": "LBRC", "x":11.5, "y":1}, + {"label": "RBRC", "x":12.5, "y":1}, + {"label": "BSLS", "x":13.5, "y":1, "w":1.5}, + {"label": "PGUP", "x":15, "y":1}, - {"x":0, "y":3, "w":1.25}, - {"x":1.25, "y":3}, - {"x":2.25, "y":3}, - {"x":3.25, "y":3}, - {"x":4.25, "y":3}, - {"x":5.25, "y":3}, - {"x":6.25, "y":3}, - {"x":7.25, "y":3}, - {"x":8.25, "y":3}, - {"x":9.25, "y":3}, - {"x":10.25, "y":3}, - {"x":11.25, "y":3}, - {"x":12.25, "y":3, "w":1.75}, - {"x":14, "y":3}, - {"x":15, "y":3}, + {"label": "CAPS", "x":0, "y":2, "w":1.75}, + {"label": "A", "x":1.75, "y":2}, + {"label": "S", "x":2.75, "y":2}, + {"label": "D", "x":3.75, "y":2}, + {"label": "F", "x":4.75, "y":2}, + {"label": "G", "x":5.75, "y":2}, + {"label": "H", "x":6.75, "y":2}, + {"label": "J", "x":7.75, "y":2}, + {"label": "K", "x":8.75, "y":2}, + {"label": "L", "x":9.75, "y":2}, + {"label": "SCLN", "x":10.75, "y":2}, + {"label": "QUOT", "x":11.75, "y":2}, + {"label": "BSLS", "x":12.75, "y":2}, + {"label": "ENT", "x":13.75, "y":2, "w":1.25}, + {"label": "PGDN", "x":15, "y":2}, - {"x":0, "y":4, "w":1.25}, - {"x":1.25, "y":4, "w":1.25}, - {"x":2.5, "y":4, "w":1.25}, - {"x":3.75, "y":4, "w":6.25}, - {"x":10, "y":4}, - {"x":11, "y":4}, - {"x":12, "y":4}, - {"x":13, "y":4}, - {"x":14, "y":4}, - {"x":15, "y":4}] + {"label": "LSFT", "x":0, "y":3, "w":1.25}, + {"label": "SLSH", "x":1.25, "y":3}, + {"label": "Z", "x":2.25, "y":3}, + {"label": "X", "x":3.25, "y":3}, + {"label": "C", "x":4.25, "y":3}, + {"label": "V", "x":5.25, "y":3}, + {"label": "B", "x":6.25, "y":3}, + {"label": "N", "x":7.25, "y":3}, + {"label": "M", "x":8.25, "y":3}, + {"label": "COMM", "x":9.25, "y":3}, + {"label": "DOT", "x":10.25, "y":3}, + {"label": "SLSH", "x":11.25, "y":3}, + {"label": "RSFT", "x":12.25, "y":3, "w":1.75}, + {"label": "UP", "x":14, "y":3}, + {"label": "END", "x":15, "y":3}, + + {"label": "LCTL", "x":0, "y":4, "w":1.25}, + {"label": "LGUI", "x":1.25, "y":4, "w":1.25}, + {"label": "LALT", "x":2.5, "y":4, "w":1.25}, + {"label": "SPC", "x":3.75, "y":4, "w":6.25}, + {"label": "RALT", "x":10, "y":4}, + {"label": "MO(1)", "x":11, "y":4}, + {"label": "RCTL", "x":12, "y":4}, + {"label": "LEFT", "x":13, "y":4}, + {"label": "DOWN", "x":14, "y":4}, + {"label": "RGHT", "x":15, "y":4} + ] } } -} \ No newline at end of file +} diff --git a/keyboards/kegen/gboy/readme.md b/keyboards/kegen/gboy/readme.md index 25ca760ff49..b636d0462de 100644 --- a/keyboards/kegen/gboy/readme.md +++ b/keyboards/kegen/gboy/readme.md @@ -6,7 +6,7 @@ * Keyboard Maintainer: [Matt Chan](https://github.com/mattchan) * Hardware Supported: Kegen G-Boy -* Hardware Availability: Unfortunately, there is no site for this, and the Kegen Discord is ghost town. +* Hardware Availability: Unfortunately, there is no site for this, and the Kegen Discord is no longer active. The group buy runners appear to have disappeared after round two units were delivered. Make example for this keyboard (after setting up your build environment): diff --git a/keyboards/keybee/keybee65/config.h b/keyboards/keybee/keybee65/config.h index 1e54bbfb15c..e9d50a65ccc 100644 --- a/keyboards/keybee/keybee65/config.h +++ b/keyboards/keybee/keybee65/config.h @@ -47,7 +47,7 @@ along with this program. If not, see . // The pin connected to the data pin of the LEDs #define RGB_DI_PIN B0 // The number of LEDs connected -#define DRIVER_LED_TOTAL 80 +#define RGB_MATRIX_LED_COUNT 80 // Limit the Brithness of the LEDs #define RGBLIGHT_LIMIT_VAL 96 #define RGB_VAL_STEP 12 diff --git a/keyboards/keyboardio/atreus/keymaps/dshields/keymap.c b/keyboards/keyboardio/atreus/keymaps/dshields/keymap.c index b10d80664ca..0077c4d8365 100644 --- a/keyboards/keyboardio/atreus/keymaps/dshields/keymap.c +++ b/keyboards/keyboardio/atreus/keymaps/dshields/keymap.c @@ -19,7 +19,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [DEF] = LAYOUT( KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P , - KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, + MT_A, MT_S, MT_D, MT_F, KC_G, KC_H, MT_J, MT_K, MT_L, MT_SCLN, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_TAB, KC_ENT, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, OSMLCTL, MT_ESC, OSMLALT, OSL_FUN, MT_BSPC, OSL_LWR, OSL_RSE, MT_SPC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT ), diff --git a/keyboards/keyboardio/model01/config.h b/keyboards/keyboardio/model01/config.h index 2bb5cb73866..c3874206d0c 100644 --- a/keyboards/keyboardio/model01/config.h +++ b/keyboards/keyboardio/model01/config.h @@ -27,7 +27,7 @@ along with this program. If not, see . #define DEBOUNCE 0 /* RGB matrix constants */ -#define DRIVER_LED_TOTAL 64 +#define RGB_MATRIX_LED_COUNT 64 // RGB Matrix Animation modes. Explicitly enabled // For full list of effects, see: diff --git a/keyboards/keyboardio/model01/keymaps/dshields/keymap.c b/keyboards/keyboardio/model01/keymaps/dshields/keymap.c index 97ccd975ccb..2d257fe3710 100644 --- a/keyboards/keyboardio/model01/keymaps/dshields/keymap.c +++ b/keyboards/keyboardio/model01/keymaps/dshields/keymap.c @@ -5,7 +5,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [DEF] = LAYOUT( QK_BOOT, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , _______, KC_GRV , KC_Q , KC_W , KC_E , KC_R , KC_T , RGB_TOG, DM_REC1, KC_Y , KC_U , KC_I , KC_O , KC_P , KC_EQL , - KC_PGUP, KC_A , KC_S , KC_D , KC_F , KC_G , KC_TAB , KC_ENT , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, + KC_PGUP, MT_A , MT_S , MT_D , MT_F , KC_G , KC_TAB , KC_ENT , KC_H , MT_J , MT_K , MT_L , MT_SCLN, KC_QUOT, KC_PGDN, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_ESC , DM_PLY1, KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_MINS, OSMLCTL, OSMRCTL, KC_BSPC, KC_SPC , diff --git a/keyboards/keyboardio/model01/leds.c b/keyboards/keyboardio/model01/leds.c index 0308887d3bc..7e65134bd43 100644 --- a/keyboards/keyboardio/model01/leds.c +++ b/keyboards/keyboardio/model01/leds.c @@ -89,7 +89,7 @@ static void set_color(int index, uint8_t r, uint8_t g, uint8_t b) { } static void set_color_all(uint8_t r, uint8_t g, uint8_t b) { - for (int i=0; i. + */ + +#pragma once + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 4 + +/* key matrix pins */ +#define MATRIX_ROW_PINS { B5, B4, B3, A15, A14, A13 } +#define MATRIX_COL_PINS { A5, A6, A7, B0 } + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION ROW2COL + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* RGB Matrix Driver Configuration */ +#define DRIVER_COUNT 1 +#define DRIVER_ADDR_1 0b1110100 + +#define CONSTANT_CURRENT_STEP \ + { 0xFF, 0xFF, 0x70, 0xFF, 0xFF, 0x70, 0xFF, 0xFF, 0x70, 0xFF, 0xFF, 0x70 } + +/* NKRO */ +#define FORCE_NKRO + +/* turn off effects when suspended */ +#define RGB_DISABLE_WHEN_USB_SUSPENDED + +/* We have 2KB EEPROM size on STM32L432 */ +#define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 2047 + +/* EEPROM Driver Configuration */ +#define WEAR_LEVELING_LOGICAL_SIZE 2048 +#define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2) + +// RGB Matrix Animation modes. Explicitly enabled +// For full list of effects, see: +// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects +// #define ENABLE_RGB_MATRIX_ALPHAS_MODS +// #define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN +// #define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT +#define ENABLE_RGB_MATRIX_BREATHING +// #define ENABLE_RGB_MATRIX_BAND_SAT +// #define ENABLE_RGB_MATRIX_BAND_VAL +// #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT +// #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL +// #define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT +// #define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL +#define ENABLE_RGB_MATRIX_CYCLE_ALL +#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT +#define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN +#define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON +#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN +#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL +#define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL +#define ENABLE_RGB_MATRIX_CYCLE_SPIRAL +#define ENABLE_RGB_MATRIX_DUAL_BEACON +#define ENABLE_RGB_MATRIX_RAINBOW_BEACON +// #define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS +#define ENABLE_RGB_MATRIX_RAINDROPS +// #define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS +// #define ENABLE_RGB_MATRIX_HUE_BREATHING +// #define ENABLE_RGB_MATRIX_HUE_PENDULUM +// #define ENABLE_RGB_MATRIX_HUE_WAVE +// #define ENABLE_RGB_MATRIX_PIXEL_RAIN +// #define ENABLE_RGB_MATRIX_PIXEL_FLOW +// #define ENABLE_RGB_MATRIX_PIXEL_FRACTAL +// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined +#define ENABLE_RGB_MATRIX_TYPING_HEATMAP +#define ENABLE_RGB_MATRIX_DIGITAL_RAIN +// enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS +#define ENABLE_RGB_MATRIX_SPLASH +#define ENABLE_RGB_MATRIX_MULTISPLASH +#define ENABLE_RGB_MATRIX_SOLID_SPLASH +#define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH +// #define RGB_MATRIX_KEYPRESSES \ No newline at end of file diff --git a/keyboards/lazydesigners/dimple/staggered/rev3/rev3.c b/keyboards/keychron/q0/halconf.h similarity index 88% rename from keyboards/lazydesigners/dimple/staggered/rev3/rev3.c rename to keyboards/keychron/q0/halconf.h index afa1d38b6d8..41bddcb2799 100644 --- a/keyboards/lazydesigners/dimple/staggered/rev3/rev3.c +++ b/keyboards/keychron/q0/halconf.h @@ -1,4 +1,4 @@ -/* Copyright 2019 Erovia +/* Copyright 2020 QMK * * 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,4 +13,9 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -#include "rev3.h" + +#pragma once + +#define HAL_USE_I2C TRUE + +#include_next diff --git a/keyboards/keychron/q0/mcuconf.h b/keyboards/keychron/q0/mcuconf.h new file mode 100644 index 00000000000..0ca8c64850f --- /dev/null +++ b/keyboards/keychron/q0/mcuconf.h @@ -0,0 +1,22 @@ +/* Copyright 2020 QMK + * + * 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 + +#undef STM32_I2C_USE_I2C1 +#define STM32_I2C_USE_I2C1 TRUE diff --git a/keyboards/keychron/q0/q0.c b/keyboards/keychron/q0/q0.c new file mode 100644 index 00000000000..c43157ac681 --- /dev/null +++ b/keyboards/keychron/q0/q0.c @@ -0,0 +1,57 @@ +/* Copyright 2022 @ Keychron (https://www.keychron.com) + * + * 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 . + */ + +#include "q0.h" + +#if defined(RGB_MATRIX_ENABLE) && defined(CAPS_LOCK_LED_INDEX) + +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + if (!process_record_user(keycode, record)) { + return false; + } + switch (keycode) { +# ifdef RGB_MATRIX_ENABLE + case RGB_TOG: + if (record->event.pressed) { + switch (rgb_matrix_get_flags()) { + case LED_FLAG_ALL: { + rgb_matrix_set_flags(LED_FLAG_NONE); + rgb_matrix_set_color_all(0, 0, 0); + } break; + default: { + rgb_matrix_set_flags(LED_FLAG_ALL); + } break; + } + } + return false; +# endif + } + return true; +} + +__attribute__((weak)) void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { + // RGB_MATRIX_INDICATOR_SET_COLOR(index, red, green, blue); + + if (host_keyboard_led_state().caps_lock) { + RGB_MATRIX_INDICATOR_SET_COLOR(CAPS_LOCK_LED_INDEX, 255, 255, 255); + } else { + if (!rgb_matrix_get_flags()) { + RGB_MATRIX_INDICATOR_SET_COLOR(CAPS_LOCK_LED_INDEX, 0, 0, 0); + } + } +} + +#endif // NUM_LOCK_LED_INDEX diff --git a/keyboards/keychron/q0/q0.h b/keyboards/keychron/q0/q0.h new file mode 100644 index 00000000000..6eaa41e87cc --- /dev/null +++ b/keyboards/keychron/q0/q0.h @@ -0,0 +1,23 @@ +/* Copyright 2022 @ Keychron (https://www.keychron.com) + * + * 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 "quantum.h" + +#if defined(KEYBOARD_keychron_q0_rev_0130) +# include "rev_0130.h" +#endif diff --git a/keyboards/keychron/q0/readme.md b/keyboards/keychron/q0/readme.md new file mode 100644 index 00000000000..d0180d386e0 --- /dev/null +++ b/keyboards/keychron/q0/readme.md @@ -0,0 +1,19 @@ +# Keychron Q0 + +A customizable number keypad. + +* Keyboard Maintainer: [Keychron](https://github.com/keychron) +* Hardware Supported: Keychron Q0 +* Hardware Availability: [Keychron](https://www.keychron.com) + +Make example for this keyboard (after setting up your build environment): + + make keychron/q0/rev_0130:default + +Flashing example for this keyboard: + + make keychron/q0/rev_0130:default:flash + +**Reset Key**: Hold down the key located at *K00*, commonly programmed as *Esc* while plugging in the keyboard. + +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/keychron/q0/rev_0130/config.h b/keyboards/keychron/q0/rev_0130/config.h new file mode 100644 index 00000000000..e7fabed664d --- /dev/null +++ b/keyboards/keychron/q0/rev_0130/config.h @@ -0,0 +1,24 @@ +/* Copyright 2022 @ Keychron (https://www.keychron.com) + * + * 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 + +/* RGB Matrix Configuration */ +#define DRIVER_1_LED_TOTAL 21 +#define DRIVER_LED_TOTAL DRIVER_1_LED_TOTAL + +/* Enable num-lock LED */ +#define NUM_LOCK_LED_INDEX 4 diff --git a/keyboards/keychron/q0/rev_0130/info.json b/keyboards/keychron/q0/rev_0130/info.json new file mode 100644 index 00000000000..d42a43ef668 --- /dev/null +++ b/keyboards/keychron/q0/rev_0130/info.json @@ -0,0 +1,43 @@ +{ + "keyboard_name": "Q0", + "manufacturer": "Keychron", + "url": "https://github.com/Keychron", + "maintainer": "lalalademaxiya1", + "usb": { + "vid": "0x3434", + "pid": "0x0130", + "device_version": "1.0.2" + }, + "layouts": { + "LAYOUT_numpad_6x4": { + "layout": [ + {"label":"Fn", "x":0, "y":0}, + {"label":"Esc", "x":1, "y":0}, + {"label":"Backspace", "x":2, "y":0}, + {"label":"Tab", "x":3, "y":0}, + + {"label":"Num Lock", "x":0, "y":1}, + {"label":"/", "x":1, "y":1}, + {"label":"*", "x":2, "y":1}, + {"label":"-", "x":3, "y":1}, + + {"label":"7", "x":0, "y":2}, + {"label":"8", "x":1, "y":2}, + {"label":"9", "x":2, "y":2}, + + {"label":"4", "x":0, "y":3}, + {"label":"5", "x":1, "y":3}, + {"label":"6", "x":2, "y":3}, + {"label":"+", "x":3, "y":2, "h":2}, + + {"label":"1", "x":0, "y":4}, + {"label":"2", "x":1, "y":4}, + {"label":"3", "x":2, "y":4}, + + {"label":"0", "x":0, "y":5, "w":2}, + {"label":".", "x":2, "y":5}, + {"label":"Enter", "x":3, "y":4, "h":2} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/keychron/q0/rev_0130/keymaps/default/keymap.c b/keyboards/keychron/q0/rev_0130/keymaps/default/keymap.c new file mode 100644 index 00000000000..6a056480741 --- /dev/null +++ b/keyboards/keychron/q0/rev_0130/keymaps/default/keymap.c @@ -0,0 +1,37 @@ +/* Copyright 2022 @ Keychron (https://www.keychron.com) + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +enum layers { _BASE, _FN1}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_numpad_6x4( + MO(_FN1), KC_ESC, KC_BSPACE, KC_TAB, + KC_NUMLOCK, KC_PSLS, KC_PAST, KC_PMNS, + KC_P7, KC_P8, KC_P9, + KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_P1, KC_P2, KC_P3, + KC_P0, KC_PDOT, KC_PENT), + + [_FN1] = LAYOUT_numpad_6x4( + _______, KC_MUTE, KC_VOLD, KC_VOLU, + RGB_MOD, RGB_VAI, RGB_HUI, KC_DEL, + RGB_RMOD, RGB_VAD, RGB_HUD, + RGB_SAI, RGB_SPI, KC_MPRV, _______, + RGB_SAD, RGB_SPD, KC_MPLY, + RGB_TOG, KC_MNXT, _______) +}; diff --git a/keyboards/keychron/q0/rev_0130/keymaps/via/keymap.c b/keyboards/keychron/q0/rev_0130/keymaps/via/keymap.c new file mode 100644 index 00000000000..078ede4041c --- /dev/null +++ b/keyboards/keychron/q0/rev_0130/keymaps/via/keymap.c @@ -0,0 +1,53 @@ +/* Copyright 2022 @ Keychron (https://www.keychron.com) + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +enum layers { _BASE, _FN1, _RESERVED1, _RESERVED2 }; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_numpad_6x4( + MO(_FN1), KC_ESC, KC_BSPACE, KC_TAB, + KC_NUMLOCK, KC_PSLS, KC_PAST, KC_PMNS, + KC_P7, KC_P8, KC_P9, + KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_P1, KC_P2, KC_P3, + KC_P0, KC_PDOT, KC_PENT), + + [_FN1] = LAYOUT_numpad_6x4( + _______, KC_MUTE, KC_VOLD, KC_VOLU, + RGB_MOD, RGB_VAI, RGB_HUI, KC_DEL, + RGB_RMOD, RGB_VAD, RGB_HUD, + RGB_SAI, RGB_SPI, KC_MPRV, _______, + RGB_SAD, RGB_SPD, KC_MPLY, + RGB_TOG, KC_MNXT, _______), + + [_RESERVED1] = LAYOUT_numpad_6x4( + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, + _______, _______, _______), + + [_RESERVED2] = LAYOUT_numpad_6x4( + _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, + _______, _______, _______) +}; diff --git a/keyboards/keychron/q0/rev_0130/keymaps/via/rules.mk b/keyboards/keychron/q0/rev_0130/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/keychron/q0/rev_0130/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/keychron/q0/rev_0130/readme.md b/keyboards/keychron/q0/rev_0130/readme.md new file mode 100644 index 00000000000..a6db5bc015e --- /dev/null +++ b/keyboards/keychron/q0/rev_0130/readme.md @@ -0,0 +1 @@ +# The base variant of the Keychron Q0 diff --git a/keyboards/keychron/q0/rev_0130/rev_0130.c b/keyboards/keychron/q0/rev_0130/rev_0130.c new file mode 100644 index 00000000000..468e3cf04f2 --- /dev/null +++ b/keyboards/keychron/q0/rev_0130/rev_0130.c @@ -0,0 +1,88 @@ +/* Copyright 2022 @ Keychron (https://www.keychron.com) + * + * 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 . + */ + +#include "quantum.h" + +#ifdef RGB_MATRIX_ENABLE + +const ckled2001_led PROGMEM g_ckled2001_leds[DRIVER_LED_TOTAL] = { +/* Refer to CKLED manual for these locations + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ + {0, F_5, D_5, E_5}, // 0 + {0, I_5, G_5, H_5}, // 1 + {0, L_5, J_5, K_5}, // 2 + {0, C_5, A_5, B_5}, // 3 + + {0, F_4, D_4, E_4}, // 4 + {0, I_4, G_4, H_4}, // 5 + {0, L_4, J_4, K_4}, // 6 + {0, C_4, A_4, B_4}, // 7 + + {0, F_6, D_6, E_6}, // 8 + {0, I_6, G_6, H_6}, // 9 + {0, L_6, J_6, K_6}, // 10 + + {0, F_3, D_3, E_3}, // 11 + {0, I_3, G_3, H_3}, // 12 + {0, L_3, J_3, K_3}, // 13 + {0, C_6, A_6, B_6}, // 14 + + {0, F_2, D_2, E_2}, // 15 + {0, I_2, G_2, H_2}, // 16 + {0, L_2, J_2, K_2}, // 17 + + {0, F_1, D_1, E_1}, // 18 + {0, L_1, J_1, K_1}, // 19 + {0, C_2, A_2, B_2}, // 20 +}; + +#define __ NO_LED + +led_config_t g_led_config = { + { + // Key Matrix to LED Index + { 0, 1, 2, 3 }, + { 4, 5, 6, 7 }, + { 8, 9, 10, 14 }, + { 11, 12, 13, __ }, + { 15, 16, 17, 20 }, + { 18, __, 19, __ } + }, + { + // LED Index to Physical Position + {0,0}, {74,0}, {150,0}, {224,0}, + {0,13}, {74,13}, {150,13}, {224,13}, + {0,26}, {74,26}, {150,26}, + {0,38}, {74,38}, {150,38}, {224,32}, + {0,51}, {74,51}, {150,51}, + {36,64}, {150,64}, {224,58}, + }, + { + // LED Index to Flag + 1, 1, 1, 1, + 9, 4, 4, 4, + 4, 4, 4, + 4, 4, 4, 4, + 4, 4, 4, + 4, 4, 1 + } +}; + +#endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/q0/rev_0130/rev_0130.h b/keyboards/keychron/q0/rev_0130/rev_0130.h new file mode 100644 index 00000000000..d66c880aa97 --- /dev/null +++ b/keyboards/keychron/q0/rev_0130/rev_0130.h @@ -0,0 +1,38 @@ +/* Copyright 2022 @ Keychron (https://www.keychron.com) + * + * 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 "quantum.h" + +#define XXX KC_NO + +#define LAYOUT_numpad_6x4( \ + K00, K01, K02, K03, \ + K10, K11, K12, K13, \ + K20, K21, K22, \ + K30, K31, K32, K23, \ + K40, K41, K42, \ + K50, K52, K43 \ +) \ +{ \ + { K00, K01, K02, K03 }, \ + { K10, K11, K12, K13 }, \ + { K20, K21, K22, K23 }, \ + { K30, K31, K32, XXX }, \ + { K40, K41, K42, K43 }, \ + { K50, XXX, K52, XXX }, \ +} diff --git a/keyboards/keychron/q0/rev_0130/rules.mk b/keyboards/keychron/q0/rev_0130/rules.mk new file mode 100644 index 00000000000..5a04c755cd5 --- /dev/null +++ b/keyboards/keychron/q0/rev_0130/rules.mk @@ -0,0 +1,27 @@ +# MCU name +MCU = STM32L432 + +# Bootloader selection +BOOTLOADER = stm32-dfu + +# Build Options +# change yes to no to disable. +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = yes # Enable USB N-key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output +DIP_SWITCH_ENABLE = no +RGB_MATRIX_ENABLE = yes +RGB_MATRIX_DRIVER = CKLED2001 +LTO_ENABLE = yes +EEPROM_DRIVER = wear_leveling +WEAR_LEVELING_DRIVER = embedded_flash + +# Enter lower-power sleep mode when on the ChibiOS idle thread +OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/keychron/q1/rev_0100/config.h b/keyboards/keychron/q1/rev_0100/config.h index 1b8c65165c3..0a30f7d82d4 100644 --- a/keyboards/keychron/q1/rev_0100/config.h +++ b/keyboards/keychron/q1/rev_0100/config.h @@ -23,4 +23,4 @@ /* RGB Matrix Configuration */ #define DRIVER_1_LED_TOTAL 59 #define DRIVER_2_LED_TOTAL 23 -#define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) \ No newline at end of file +#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) \ No newline at end of file diff --git a/keyboards/keychron/q1/rev_0100/keymaps/gtg465x/rgb_matrix_user.c b/keyboards/keychron/q1/rev_0100/keymaps/gtg465x/rgb_matrix_user.c index 9bc7231ece0..f5e8d48cba8 100644 --- a/keyboards/keychron/q1/rev_0100/keymaps/gtg465x/rgb_matrix_user.c +++ b/keyboards/keychron/q1/rev_0100/keymaps/gtg465x/rgb_matrix_user.c @@ -18,7 +18,7 @@ #include "rgb_matrix_user.h" #include "keymap_user.h" -keypos_t led_index_key_position[DRIVER_LED_TOTAL]; +keypos_t led_index_key_position[RGB_MATRIX_LED_COUNT]; void rgb_matrix_init_user(void) { for (uint8_t row = 0; row < MATRIX_ROWS; row++) { diff --git a/keyboards/keychron/q1/rev_0100/keymaps/mkillewald/rgb_matrix_user.c b/keyboards/keychron/q1/rev_0100/keymaps/mkillewald/rgb_matrix_user.c index f06039af064..90e16ded463 100644 --- a/keyboards/keychron/q1/rev_0100/keymaps/mkillewald/rgb_matrix_user.c +++ b/keyboards/keychron/q1/rev_0100/keymaps/mkillewald/rgb_matrix_user.c @@ -18,7 +18,7 @@ #include "rgb_matrix_user.h" #include "keymap_user.h" -keypos_t led_index_key_position[DRIVER_LED_TOTAL]; +keypos_t led_index_key_position[RGB_MATRIX_LED_COUNT]; void rgb_matrix_init_user(void) { for (uint8_t row = 0; row < MATRIX_ROWS; row++) { diff --git a/keyboards/keychron/q1/rev_0100/keymaps/teimor/rgb_matrix_user.c b/keyboards/keychron/q1/rev_0100/keymaps/teimor/rgb_matrix_user.c index 77f1c1011bb..6750dc86c72 100644 --- a/keyboards/keychron/q1/rev_0100/keymaps/teimor/rgb_matrix_user.c +++ b/keyboards/keychron/q1/rev_0100/keymaps/teimor/rgb_matrix_user.c @@ -18,7 +18,7 @@ #include "rgb_matrix_user.h" #include "keymap_user.h" -keypos_t led_index_key_position[DRIVER_LED_TOTAL]; +keypos_t led_index_key_position[RGB_MATRIX_LED_COUNT]; void rgb_matrix_init_user(void) { for (uint8_t row = 0; row < MATRIX_ROWS; row++) { diff --git a/keyboards/keychron/q1/rev_0100/rev_0100.c b/keyboards/keychron/q1/rev_0100/rev_0100.c index f4246695279..2c87a8241e6 100644 --- a/keyboards/keychron/q1/rev_0100/rev_0100.c +++ b/keyboards/keychron/q1/rev_0100/rev_0100.c @@ -17,7 +17,7 @@ #include "quantum.h" -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location diff --git a/keyboards/keychron/q1/rev_0101/config.h b/keyboards/keychron/q1/rev_0101/config.h index 58d77477caa..b38261abf6b 100644 --- a/keyboards/keychron/q1/rev_0101/config.h +++ b/keyboards/keychron/q1/rev_0101/config.h @@ -23,7 +23,7 @@ /* RGB Matrix Configuration */ #define DRIVER_1_LED_TOTAL 59 #define DRIVER_2_LED_TOTAL 23 -#define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) +#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) /* Encoder used pins */ #define ENCODERS_PAD_A { E6 } diff --git a/keyboards/keychron/q1/rev_0101/rev_0101.c b/keyboards/keychron/q1/rev_0101/rev_0101.c index dd7f69529ea..4edd2c761f8 100644 --- a/keyboards/keychron/q1/rev_0101/rev_0101.c +++ b/keyboards/keychron/q1/rev_0101/rev_0101.c @@ -17,7 +17,7 @@ #include "quantum.h" #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location diff --git a/keyboards/keychron/q1/rev_0102/config.h b/keyboards/keychron/q1/rev_0102/config.h index 7aa0ae86625..b9b33cf3206 100644 --- a/keyboards/keychron/q1/rev_0102/config.h +++ b/keyboards/keychron/q1/rev_0102/config.h @@ -23,4 +23,4 @@ /* RGB Matrix Configuration */ #define DRIVER_1_LED_TOTAL 59 #define DRIVER_2_LED_TOTAL 24 -#define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) \ No newline at end of file +#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) \ No newline at end of file diff --git a/keyboards/keychron/q1/rev_0102/keymaps/kubahorak/rgb_matrix_user.c b/keyboards/keychron/q1/rev_0102/keymaps/kubahorak/rgb_matrix_user.c index 8650f30df1c..4903421cab8 100644 --- a/keyboards/keychron/q1/rev_0102/keymaps/kubahorak/rgb_matrix_user.c +++ b/keyboards/keychron/q1/rev_0102/keymaps/kubahorak/rgb_matrix_user.c @@ -18,7 +18,7 @@ #include "rgb_matrix_user.h" #include "keymap_user.h" -keypos_t led_index_key_position[DRIVER_LED_TOTAL]; +keypos_t led_index_key_position[RGB_MATRIX_LED_COUNT]; void rgb_matrix_init_user(void) { for (uint8_t row = 0; row < MATRIX_ROWS; row++) { diff --git a/keyboards/keychron/q1/rev_0102/keymaps/mkillewald_iso/rgb_matrix_user.c b/keyboards/keychron/q1/rev_0102/keymaps/mkillewald_iso/rgb_matrix_user.c index f06039af064..90e16ded463 100644 --- a/keyboards/keychron/q1/rev_0102/keymaps/mkillewald_iso/rgb_matrix_user.c +++ b/keyboards/keychron/q1/rev_0102/keymaps/mkillewald_iso/rgb_matrix_user.c @@ -18,7 +18,7 @@ #include "rgb_matrix_user.h" #include "keymap_user.h" -keypos_t led_index_key_position[DRIVER_LED_TOTAL]; +keypos_t led_index_key_position[RGB_MATRIX_LED_COUNT]; void rgb_matrix_init_user(void) { for (uint8_t row = 0; row < MATRIX_ROWS; row++) { diff --git a/keyboards/keychron/q1/rev_0102/rev_0102.c b/keyboards/keychron/q1/rev_0102/rev_0102.c index f1468d10945..5304a602c3e 100644 --- a/keyboards/keychron/q1/rev_0102/rev_0102.c +++ b/keyboards/keychron/q1/rev_0102/rev_0102.c @@ -17,7 +17,7 @@ #include "quantum.h" #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location diff --git a/keyboards/keychron/q2/rev_0110/config.h b/keyboards/keychron/q2/rev_0110/config.h index f30b81b3af9..6c39432b74f 100644 --- a/keyboards/keychron/q2/rev_0110/config.h +++ b/keyboards/keychron/q2/rev_0110/config.h @@ -19,4 +19,4 @@ /* RGB Matrix Configuration */ #define DRIVER_1_LED_TOTAL 34 #define DRIVER_2_LED_TOTAL 33 -#define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) +#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) diff --git a/keyboards/keychron/q2/rev_0110/keymaps/ladduro/rgb_matrix_user.c b/keyboards/keychron/q2/rev_0110/keymaps/ladduro/rgb_matrix_user.c index 19ddd54aa80..6df0e9530f4 100644 --- a/keyboards/keychron/q2/rev_0110/keymaps/ladduro/rgb_matrix_user.c +++ b/keyboards/keychron/q2/rev_0110/keymaps/ladduro/rgb_matrix_user.c @@ -18,7 +18,7 @@ #include "rgb_matrix_user.h" #include "keymap_user.h" -keypos_t led_index_key_position[DRIVER_LED_TOTAL]; +keypos_t led_index_key_position[RGB_MATRIX_LED_COUNT]; void rgb_matrix_init_user(void) { for (uint8_t row = 0; row < MATRIX_ROWS; row++) { diff --git a/keyboards/keychron/q2/rev_0110/rev_0110.c b/keyboards/keychron/q2/rev_0110/rev_0110.c index fe524901770..125872602eb 100644 --- a/keyboards/keychron/q2/rev_0110/rev_0110.c +++ b/keyboards/keychron/q2/rev_0110/rev_0110.c @@ -17,7 +17,7 @@ #include "quantum.h" #ifdef RGB_MATRIX_ENABLE -const ckled2001_led PROGMEM g_ckled2001_leds[DRIVER_LED_TOTAL] = { +const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to CKLED manual for these locations * driver * | R location diff --git a/keyboards/keychron/q2/rev_0111/config.h b/keyboards/keychron/q2/rev_0111/config.h index 249e5890193..8ef6c542f0f 100644 --- a/keyboards/keychron/q2/rev_0111/config.h +++ b/keyboards/keychron/q2/rev_0111/config.h @@ -19,7 +19,7 @@ /* RGB Matrix Configuration */ #define DRIVER_1_LED_TOTAL 34 #define DRIVER_2_LED_TOTAL 33 -#define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) +#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) /* Encoder used pins */ #define ENCODERS_PAD_A { A10 } diff --git a/keyboards/keychron/q2/rev_0111/rev_0111.c b/keyboards/keychron/q2/rev_0111/rev_0111.c index cbadafc458e..1bada84daac 100644 --- a/keyboards/keychron/q2/rev_0111/rev_0111.c +++ b/keyboards/keychron/q2/rev_0111/rev_0111.c @@ -17,7 +17,7 @@ #include "quantum.h" #ifdef RGB_MATRIX_ENABLE -const ckled2001_led PROGMEM g_ckled2001_leds[DRIVER_LED_TOTAL] = { +const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to CKLED manual for these locations * driver * | R location diff --git a/keyboards/keychron/q2/rev_0112/config.h b/keyboards/keychron/q2/rev_0112/config.h index 4bab401a01c..35a86d5839f 100644 --- a/keyboards/keychron/q2/rev_0112/config.h +++ b/keyboards/keychron/q2/rev_0112/config.h @@ -19,4 +19,4 @@ /* RGB Matrix Configuration */ #define DRIVER_1_LED_TOTAL 34 #define DRIVER_2_LED_TOTAL 34 -#define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) +#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) diff --git a/keyboards/keychron/q2/rev_0112/rev_0112.c b/keyboards/keychron/q2/rev_0112/rev_0112.c index b994679725c..cf2bb348570 100644 --- a/keyboards/keychron/q2/rev_0112/rev_0112.c +++ b/keyboards/keychron/q2/rev_0112/rev_0112.c @@ -17,7 +17,7 @@ #include "quantum.h" #ifdef RGB_MATRIX_ENABLE -const ckled2001_led PROGMEM g_ckled2001_leds[DRIVER_LED_TOTAL] = { +const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location diff --git a/keyboards/keychron/q2/rev_0113/config.h b/keyboards/keychron/q2/rev_0113/config.h index 8f7fbef73a7..8dd123e3bb7 100644 --- a/keyboards/keychron/q2/rev_0113/config.h +++ b/keyboards/keychron/q2/rev_0113/config.h @@ -19,7 +19,7 @@ /* RGB Matrix Configuration */ #define DRIVER_1_LED_TOTAL 34 #define DRIVER_2_LED_TOTAL 34 -#define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) +#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) /* Encoder used pins */ #define ENCODERS_PAD_A { A10 } diff --git a/keyboards/keychron/q2/rev_0113/rev_0113.c b/keyboards/keychron/q2/rev_0113/rev_0113.c index e1d66976dd5..2aa3ab2a6d2 100644 --- a/keyboards/keychron/q2/rev_0113/rev_0113.c +++ b/keyboards/keychron/q2/rev_0113/rev_0113.c @@ -17,7 +17,7 @@ #include "quantum.h" #ifdef RGB_MATRIX_ENABLE -const ckled2001_led PROGMEM g_ckled2001_leds[DRIVER_LED_TOTAL] = { +const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location diff --git a/keyboards/kprepublic/bm40hsrgb/config.h b/keyboards/kprepublic/bm40hsrgb/config.h index 8e4710abb32..f1535cc0843 100755 --- a/keyboards/kprepublic/bm40hsrgb/config.h +++ b/keyboards/kprepublic/bm40hsrgb/config.h @@ -38,7 +38,7 @@ #define LOCKING_RESYNC_ENABLE #define RGB_DI_PIN E2 -#define DRIVER_LED_TOTAL 53 +#define RGB_MATRIX_LED_COUNT 53 #ifdef RGB_DI_PIN # define RGB_MATRIX_KEYPRESSES // reacts to keypresses # define RGBLIGHT_LIMIT_VAL 180 // Limit to vendor-recommended value diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/coffee/config.h b/keyboards/kprepublic/bm40hsrgb/keymaps/coffee/config.h index bfcec37892d..c366c20a8cc 100644 --- a/keyboards/kprepublic/bm40hsrgb/keymaps/coffee/config.h +++ b/keyboards/kprepublic/bm40hsrgb/keymaps/coffee/config.h @@ -54,7 +54,7 @@ // If RGBLight is enabled #ifdef RGBLIGHT_ENABLE -# define RGBLED_NUM DRIVER_LED_TOTAL +# define RGBLED_NUM RGB_MATRIX_LED_COUNT # define RGBLIGHT_EFFECT_SNAKE # define RGBLIGHT_EFFECT_STATIC_GRADIENT diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/coffee/keymap.c b/keyboards/kprepublic/bm40hsrgb/keymaps/coffee/keymap.c index 9130bd678e9..ba83e47f5fd 100644 --- a/keyboards/kprepublic/bm40hsrgb/keymaps/coffee/keymap.c +++ b/keyboards/kprepublic/bm40hsrgb/keymaps/coffee/keymap.c @@ -64,7 +64,7 @@ const uint16_t PROGMEM keymaps[_END][MATRIX_ROWS][MATRIX_COLS] = { #define LAYER (get_highest_layer(layer_state)) #define LAYER_SIZE (MATRIX_ROWS * MATRIX_COLS) #define CHECK_LED() \ - if ((i >= DRIVER_LED_TOTAL) \ + if ((i >= RGB_MATRIX_LED_COUNT) \ || ((g_led_config.flags[pos] == LED_FLAG_NONE) || (g_led_config.flags[pos] == LED_FLAG_UNDERGLOW))) \ continue @@ -73,7 +73,7 @@ const uint16_t PROGMEM keymaps[_END][MATRIX_ROWS][MATRIX_COLS] = { #ifdef UNDERGLOW_DISABLE void keyboard_pre_init_user(void) { - for (int key_id = 0; key_id < DRIVER_LED_TOTAL; key_id++ ) { + for (int key_id = 0; key_id < RGB_MATRIX_LED_COUNT; key_id++ ) { if (g_led_config.flags[key_id] == LED_FLAG_UNDERGLOW) { g_led_config.flags[key_id] = LED_FLAG_NONE; } diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_loud/keymap.c b/keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_loud/keymap.c index e725e232143..6411a07d4f7 100644 --- a/keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_loud/keymap.c +++ b/keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_loud/keymap.c @@ -69,7 +69,7 @@ void matrix_scan_user(void) { void rgb_matrix_indicators_user(void) { - for (uint8_t i = 0; i < DRIVER_LED_TOTAL; ++i) { + for (uint8_t i = 0; i < RGB_MATRIX_LED_COUNT; ++i) { if (HAS_ANY_FLAGS(g_led_config.flags[i], LED_FLAG_MODIFIER)) { rgb_matrix_set_color(i, 0, 0, 0); } @@ -80,7 +80,7 @@ void rgb_matrix_indicators_user(void) { //capslock if (host_keyboard_led_state().caps_lock) { - for (uint8_t i = 0; i < DRIVER_LED_TOTAL; ++i) { + for (uint8_t i = 0; i < RGB_MATRIX_LED_COUNT; ++i) { if (HAS_ANY_FLAGS(g_led_config.flags[i], LED_FLAG_UNDERGLOW)) { rgb_matrix_set_color(i, 255, 255, 255); } @@ -89,7 +89,7 @@ void rgb_matrix_indicators_user(void) { //nav layer if (IS_LAYER_ON(NAVR)) { - for (uint8_t i = 0; i < DRIVER_LED_TOTAL; ++i) { + for (uint8_t i = 0; i < RGB_MATRIX_LED_COUNT; ++i) { if (HAS_ANY_FLAGS(g_led_config.flags[i], LED_FLAG_UNDERGLOW)) { rgb_matrix_set_color(i, 0, 204, 255); } @@ -98,7 +98,7 @@ void rgb_matrix_indicators_user(void) { //funl layer if (IS_LAYER_ON(FUNL)) { - for (uint8_t i = 0; i < DRIVER_LED_TOTAL; ++i) { + for (uint8_t i = 0; i < RGB_MATRIX_LED_COUNT; ++i) { if (HAS_ANY_FLAGS(g_led_config.flags[i], LED_FLAG_UNDERGLOW)) { rgb_matrix_set_color(i, 255, 0, 0); } @@ -107,7 +107,7 @@ void rgb_matrix_indicators_user(void) { //nsl layer if (IS_LAYER_ON(NSL)) { - for (uint8_t i = 0; i < DRIVER_LED_TOTAL; ++i) { + for (uint8_t i = 0; i < RGB_MATRIX_LED_COUNT; ++i) { if (HAS_ANY_FLAGS(g_led_config.flags[i], LED_FLAG_UNDERGLOW)) { rgb_matrix_set_color(i, 51, 0, 255); } @@ -116,7 +116,7 @@ void rgb_matrix_indicators_user(void) { //nssl layer if (IS_LAYER_ON(NSSL)) { - for (uint8_t i = 0; i < DRIVER_LED_TOTAL; ++i) { + for (uint8_t i = 0; i < RGB_MATRIX_LED_COUNT; ++i) { if (HAS_ANY_FLAGS(g_led_config.flags[i], LED_FLAG_UNDERGLOW)) { rgb_matrix_set_color(i, 0, 255, 0); } @@ -125,7 +125,7 @@ void rgb_matrix_indicators_user(void) { //game layer if (IS_LAYER_ON(GAME)) { - for (uint8_t i = 0; i < DRIVER_LED_TOTAL; ++i) { + for (uint8_t i = 0; i < RGB_MATRIX_LED_COUNT; ++i) { if (HAS_ANY_FLAGS(g_led_config.flags[i], LED_FLAG_UNDERGLOW)) { rgb_matrix_set_color(i, 0, 204, 255); } @@ -134,7 +134,7 @@ void rgb_matrix_indicators_user(void) { //secgame layer if (IS_LAYER_ON(SECGAME)) { - for (uint8_t i = 0; i < DRIVER_LED_TOTAL; ++i) { + for (uint8_t i = 0; i < RGB_MATRIX_LED_COUNT; ++i) { if (HAS_ANY_FLAGS(g_led_config.flags[i], LED_FLAG_UNDERGLOW)) { rgb_matrix_set_color(i, 255, 0, 0); } diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_quiet/keymap.c b/keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_quiet/keymap.c index 02ea122a030..8f1eb6d3582 100644 --- a/keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_quiet/keymap.c +++ b/keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_quiet/keymap.c @@ -69,7 +69,7 @@ void matrix_scan_user(void) { void rgb_matrix_indicators_user(void) { - for (uint8_t i = 0; i < DRIVER_LED_TOTAL; ++i) { + for (uint8_t i = 0; i < RGB_MATRIX_LED_COUNT; ++i) { if (HAS_ANY_FLAGS(g_led_config.flags[i], LED_FLAG_MODIFIER)) { rgb_matrix_set_color(i, 0, 0, 0); } @@ -80,7 +80,7 @@ void rgb_matrix_indicators_user(void) { //capslock if (host_keyboard_led_state().caps_lock) { - for (uint8_t i = 0; i < DRIVER_LED_TOTAL; ++i) { + for (uint8_t i = 0; i < RGB_MATRIX_LED_COUNT; ++i) { if (HAS_ANY_FLAGS(g_led_config.flags[i], LED_FLAG_UNDERGLOW)) { rgb_matrix_set_color(i, 255, 255, 255); } @@ -89,7 +89,7 @@ void rgb_matrix_indicators_user(void) { //game layer if (IS_LAYER_ON(GAME)) { - for (uint8_t i = 0; i < DRIVER_LED_TOTAL; ++i) { + for (uint8_t i = 0; i < RGB_MATRIX_LED_COUNT; ++i) { if (HAS_ANY_FLAGS(g_led_config.flags[i], LED_FLAG_UNDERGLOW)) { rgb_matrix_set_color(i, 0, 204, 255); } @@ -98,7 +98,7 @@ void rgb_matrix_indicators_user(void) { //secgame layer if (IS_LAYER_ON(SECGAME)) { - for (uint8_t i = 0; i < DRIVER_LED_TOTAL; ++i) { + for (uint8_t i = 0; i < RGB_MATRIX_LED_COUNT; ++i) { if (HAS_ANY_FLAGS(g_led_config.flags[i], LED_FLAG_UNDERGLOW)) { rgb_matrix_set_color(i, 255, 0, 0); } diff --git a/keyboards/kprepublic/bm60hsrgb/rev1/config.h b/keyboards/kprepublic/bm60hsrgb/rev1/config.h index f1a160730c8..01253ab01a5 100644 --- a/keyboards/kprepublic/bm60hsrgb/rev1/config.h +++ b/keyboards/kprepublic/bm60hsrgb/rev1/config.h @@ -41,7 +41,7 @@ along with this program. If not, see . #define DIODE_DIRECTION COL2ROW #define RGB_DI_PIN E2 -#define DRIVER_LED_TOTAL 69 +#define RGB_MATRIX_LED_COUNT 69 #ifdef RGB_DI_PIN # define RGBLED_NUM 69 # define RGB_MATRIX_KEYPRESSES diff --git a/keyboards/kprepublic/bm60hsrgb/rev2/config.h b/keyboards/kprepublic/bm60hsrgb/rev2/config.h index 09ba659d657..96ed5e65cb7 100644 --- a/keyboards/kprepublic/bm60hsrgb/rev2/config.h +++ b/keyboards/kprepublic/bm60hsrgb/rev2/config.h @@ -100,7 +100,7 @@ #define DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 63 -//#define DRIVER_LED_TOTAL DRIVER_1_LED_TOTAL +//#define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL #if defined(RGB_MATRIX_ENABLE) && defined(RGBLIGHT_ENABLE) #define RGB_MATRIX_DISABLE_KEYCODES @@ -118,7 +118,7 @@ # define WS2812_LED_TOTAL 6 #endif -#define DRIVER_LED_TOTAL (ISSI_LED_TOTAL + WS2812_LED_TOTAL) +#define RGB_MATRIX_LED_COUNT (ISSI_LED_TOTAL + WS2812_LED_TOTAL) #ifdef RGB_MATRIX_ENABLE # define RGB_MATRIX_KEYPRESSES diff --git a/keyboards/kprepublic/bm60hsrgb/rev2/rev2.c b/keyboards/kprepublic/bm60hsrgb/rev2/rev2.c index 4fe84806911..55e0667f454 100644 --- a/keyboards/kprepublic/bm60hsrgb/rev2/rev2.c +++ b/keyboards/kprepublic/bm60hsrgb/rev2/rev2.c @@ -22,7 +22,7 @@ # include "is31fl3733.h" # include "ws2812.h" -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { { 0, B_1, A_1, C_1 }, { 0, B_2, A_2, C_2 }, { 0, B_3, A_3, C_3 }, diff --git a/keyboards/kprepublic/bm60hsrgb_ec/rev1/config.h b/keyboards/kprepublic/bm60hsrgb_ec/rev1/config.h index 868ce40d8cf..8373569b478 100644 --- a/keyboards/kprepublic/bm60hsrgb_ec/rev1/config.h +++ b/keyboards/kprepublic/bm60hsrgb_ec/rev1/config.h @@ -43,7 +43,7 @@ #define DIODE_DIRECTION COL2ROW #define RGB_DI_PIN E2 -#define DRIVER_LED_TOTAL 69 +#define RGB_MATRIX_LED_COUNT 69 #ifdef RGB_DI_PIN #define RGBLED_NUM 69 #define RGB_MATRIX_KEYPRESSES diff --git a/keyboards/kprepublic/bm60hsrgb_ec/rev2/config.h b/keyboards/kprepublic/bm60hsrgb_ec/rev2/config.h index ac80357e9fb..3a9f4af2820 100644 --- a/keyboards/kprepublic/bm60hsrgb_ec/rev2/config.h +++ b/keyboards/kprepublic/bm60hsrgb_ec/rev2/config.h @@ -67,7 +67,7 @@ # define DRIVER_ADDR_1 0b1010000 # define DRIVER_COUNT 2 # define DRIVER_1_LED_TOTAL 63 -# define DRIVER_LED_TOTAL DRIVER_1_LED_TOTAL +# define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL #define RGB_MATRIX_KEYPRESSES // RGB Matrix Animation modes. Explicitly enabled diff --git a/keyboards/kprepublic/bm60hsrgb_ec/rev2/rev2.c b/keyboards/kprepublic/bm60hsrgb_ec/rev2/rev2.c index 730c7ea668f..fd964a67cdd 100644 --- a/keyboards/kprepublic/bm60hsrgb_ec/rev2/rev2.c +++ b/keyboards/kprepublic/bm60hsrgb_ec/rev2/rev2.c @@ -15,7 +15,7 @@ #include "rev2.h" #ifdef RGB_MATRIX_ENABLE -const is31_led g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led g_is31_leds[RGB_MATRIX_LED_COUNT] = { { 0, B_1, A_1, C_1 }, { 0, B_2, A_2, C_2 }, { 0, B_3, A_3, C_3 }, diff --git a/keyboards/kprepublic/bm60hsrgb_iso/rev1/config.h b/keyboards/kprepublic/bm60hsrgb_iso/rev1/config.h index 4ef984b4bee..0fc5946f63e 100644 --- a/keyboards/kprepublic/bm60hsrgb_iso/rev1/config.h +++ b/keyboards/kprepublic/bm60hsrgb_iso/rev1/config.h @@ -41,7 +41,7 @@ along with this program. If not, see . #define DIODE_DIRECTION COL2ROW #define RGB_DI_PIN E2 -#define DRIVER_LED_TOTAL 70 +#define RGB_MATRIX_LED_COUNT 70 #ifdef RGB_DI_PIN # define RGBLED_NUM 70 # define RGB_MATRIX_KEYPRESSES diff --git a/keyboards/kprepublic/bm60hsrgb_iso/rev2/config.h b/keyboards/kprepublic/bm60hsrgb_iso/rev2/config.h index 80dc26907cd..c5f8d3267eb 100644 --- a/keyboards/kprepublic/bm60hsrgb_iso/rev2/config.h +++ b/keyboards/kprepublic/bm60hsrgb_iso/rev2/config.h @@ -137,7 +137,7 @@ # define WS2812_LED_TOTAL RGBLED_NUM #endif -#define DRIVER_LED_TOTAL (ISSI_LED_TOTAL + WS2812_LED_TOTAL) +#define RGB_MATRIX_LED_COUNT (ISSI_LED_TOTAL + WS2812_LED_TOTAL) #ifdef RGB_MATRIX_ENABLE # define RGB_MATRIX_KEYPRESSES diff --git a/keyboards/kprepublic/bm60hsrgb_iso/rev2/rev2.c b/keyboards/kprepublic/bm60hsrgb_iso/rev2/rev2.c index 4500ff37b9f..7144db99efe 100644 --- a/keyboards/kprepublic/bm60hsrgb_iso/rev2/rev2.c +++ b/keyboards/kprepublic/bm60hsrgb_iso/rev2/rev2.c @@ -24,7 +24,7 @@ # include "ws2812.h" -const PROGMEM is31_led g_is31_leds[DRIVER_LED_TOTAL] = { +const PROGMEM is31_led g_is31_leds[RGB_MATRIX_LED_COUNT] = { { 0, B_1, A_1, C_1 }, { 0, B_2, A_2, C_2 }, { 0, B_3, A_3, C_3 }, diff --git a/keyboards/kprepublic/bm60hsrgb_poker/rev1/config.h b/keyboards/kprepublic/bm60hsrgb_poker/rev1/config.h index 88c44d4440d..66c2883029d 100644 --- a/keyboards/kprepublic/bm60hsrgb_poker/rev1/config.h +++ b/keyboards/kprepublic/bm60hsrgb_poker/rev1/config.h @@ -39,7 +39,7 @@ along with this program. If not, see . #define DIODE_DIRECTION COL2ROW #define RGB_DI_PIN E2 -#define DRIVER_LED_TOTAL 67 +#define RGB_MATRIX_LED_COUNT 67 #ifdef RGB_DI_PIN #define RGBLED_NUM 67 #define RGB_MATRIX_KEYPRESSES diff --git a/keyboards/kprepublic/bm60hsrgb_poker/rev1/keymaps/ipetepete/keymap.c b/keyboards/kprepublic/bm60hsrgb_poker/rev1/keymaps/ipetepete/keymap.c index 4a438b822b1..93a90f12b03 100644 --- a/keyboards/kprepublic/bm60hsrgb_poker/rev1/keymaps/ipetepete/keymap.c +++ b/keyboards/kprepublic/bm60hsrgb_poker/rev1/keymaps/ipetepete/keymap.c @@ -109,7 +109,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } void rgb_matrix_layer_helper (uint8_t red, uint8_t green, uint8_t blue) { - for (int i = 0; i < DRIVER_LED_TOTAL; i++) { + for (int i = 0; i < RGB_MATRIX_LED_COUNT; i++) { if (HAS_FLAGS(g_led_config.flags[i], LED_FLAG_MODIFIER)) { rgb_matrix_set_color( i, red, green, blue ); } diff --git a/keyboards/kprepublic/bm60hsrgb_poker/rev2/config.h b/keyboards/kprepublic/bm60hsrgb_poker/rev2/config.h index 96d8a450c96..7b38edd95a7 100644 --- a/keyboards/kprepublic/bm60hsrgb_poker/rev2/config.h +++ b/keyboards/kprepublic/bm60hsrgb_poker/rev2/config.h @@ -133,7 +133,7 @@ # define WS2812_LED_TOTAL RGBLED_NUM #endif -#define DRIVER_LED_TOTAL (ISSI_LED_TOTAL + WS2812_LED_TOTAL) +#define RGB_MATRIX_LED_COUNT (ISSI_LED_TOTAL + WS2812_LED_TOTAL) #ifdef RGB_MATRIX_ENABLE # define RGB_MATRIX_KEYPRESSES diff --git a/keyboards/kprepublic/bm60hsrgb_poker/rev2/rev2.c b/keyboards/kprepublic/bm60hsrgb_poker/rev2/rev2.c index 32cfce362f0..7da219eec2d 100644 --- a/keyboards/kprepublic/bm60hsrgb_poker/rev2/rev2.c +++ b/keyboards/kprepublic/bm60hsrgb_poker/rev2/rev2.c @@ -21,7 +21,7 @@ # include "is31fl3733.h" # include "ws2812.h" -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { { 0, B_1, A_1, C_1 }, { 0, B_2, A_2, C_2 }, { 0, B_3, A_3, C_3 }, diff --git a/keyboards/kprepublic/bm65hsrgb/rev1/config.h b/keyboards/kprepublic/bm65hsrgb/rev1/config.h index c5e8022d351..aa3ad0ce68f 100644 --- a/keyboards/kprepublic/bm65hsrgb/rev1/config.h +++ b/keyboards/kprepublic/bm65hsrgb/rev1/config.h @@ -46,7 +46,7 @@ along with this program. If not, see . // The pin connected to the data pin of the LEDs #define RGB_DI_PIN E2 // The number of LEDs connected -#define DRIVER_LED_TOTAL 73 +#define RGB_MATRIX_LED_COUNT 73 #ifdef RGB_DI_PIN #define RGBLED_NUM 73 #define RGB_MATRIX_KEYPRESSES // reacts to keypresses diff --git a/keyboards/kprepublic/bm65hsrgb_iso/keymaps/p4yne/keymap.c b/keyboards/kprepublic/bm65hsrgb_iso/keymaps/p4yne/keymap.c index 442111bb6ef..18986c604cb 100644 --- a/keyboards/kprepublic/bm65hsrgb_iso/keymaps/p4yne/keymap.c +++ b/keyboards/kprepublic/bm65hsrgb_iso/keymaps/p4yne/keymap.c @@ -423,7 +423,7 @@ void set_layer_color(int layer) { } // non key specific lighting instead led flag based if (layer == _LVL7_){ - for (uint8_t i = 0; i < DRIVER_LED_TOTAL; ++i) { + for (uint8_t i = 0; i < RGB_MATRIX_LED_COUNT; ++i) { if (HAS_ANY_FLAGS(g_led_config.flags[i], LED_FLAG_MODIFIER)) { set_led_color_by_hsv(i, C_HSV_DARKGOLD); } diff --git a/keyboards/kprepublic/bm65hsrgb_iso/rev1/config.h b/keyboards/kprepublic/bm65hsrgb_iso/rev1/config.h index 0b5a3bf8e42..9f5a68ca945 100644 --- a/keyboards/kprepublic/bm65hsrgb_iso/rev1/config.h +++ b/keyboards/kprepublic/bm65hsrgb_iso/rev1/config.h @@ -42,7 +42,7 @@ along with this program. If not, see . #define DIODE_DIRECTION COL2ROW #define RGB_DI_PIN E2 -#define DRIVER_LED_TOTAL 74 +#define RGB_MATRIX_LED_COUNT 74 #ifdef RGB_DI_PIN #define RGBLED_NUM 74 #define RGB_MATRIX_KEYPRESSES diff --git a/keyboards/kprepublic/bm68hsrgb/rev1/config.h b/keyboards/kprepublic/bm68hsrgb/rev1/config.h index 9b9d534c429..bf67620c5bf 100644 --- a/keyboards/kprepublic/bm68hsrgb/rev1/config.h +++ b/keyboards/kprepublic/bm68hsrgb/rev1/config.h @@ -46,7 +46,7 @@ along with this program. If not, see . // The pin connected to the data pin of the LEDs #define RGB_DI_PIN E2 // The number of LEDs connected -#define DRIVER_LED_TOTAL 74 +#define RGB_MATRIX_LED_COUNT 74 #ifdef RGB_DI_PIN # define RGBLED_NUM 74 # define RGB_MATRIX_KEYPRESSES // reacts to keypresses diff --git a/keyboards/kprepublic/bm68hsrgb/rev1/keymaps/peepeetee/config.h b/keyboards/kprepublic/bm68hsrgb/rev1/keymaps/peepeetee/config.h index 3ddb8134861..a397c570990 100644 --- a/keyboards/kprepublic/bm68hsrgb/rev1/keymaps/peepeetee/config.h +++ b/keyboards/kprepublic/bm68hsrgb/rev1/keymaps/peepeetee/config.h @@ -64,7 +64,7 @@ // #define RGBLIGHT_VAL_STEP 12 // Units to step when in/decreasing value (brightness) // #define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects // #define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended -// #define RGB_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) +// #define RGB_MATRIX_LED_PROCESS_LIMIT (RGB_MATRIX_LED_COUNT + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) // #define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness) // #define RGBLIGHT_ANIMATIONS // Run RGB animations // #define RGBLIGHT_ANIMATIONS // Enable all additional animation modes. diff --git a/keyboards/kprepublic/bm68hsrgb/rev1/keymaps/peepeetee/keymap.c b/keyboards/kprepublic/bm68hsrgb/rev1/keymaps/peepeetee/keymap.c index bf842b138ba..0ac5d0c9321 100644 --- a/keyboards/kprepublic/bm68hsrgb/rev1/keymaps/peepeetee/keymap.c +++ b/keyboards/kprepublic/bm68hsrgb/rev1/keymaps/peepeetee/keymap.c @@ -56,7 +56,7 @@ Templete #undef _______ #define _______ {0, 0, 0} -const uint8_t PROGMEM ledmap[][DRIVER_LED_TOTAL][3] = { +const uint8_t PROGMEM ledmap[][RGB_MATRIX_LED_COUNT][3] = { [1] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, GREEN, BLUE, {0, 0, 255}, PURPLE, AZURE, _______, {0, 0, 255}, {0, 0, 255}, {0, 0, 255}, _______, _______, _______, _______, _______, _______, @@ -270,7 +270,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { void set_layer_color(int layer) { if (layer == 0) { return; } - for (int i = 0; i < DRIVER_LED_TOTAL; i++) { + for (int i = 0; i < RGB_MATRIX_LED_COUNT; i++) { HSV hsv = { .h = pgm_read_byte(&ledmap[layer][i][0]), .s = pgm_read_byte(&ledmap[layer][i][1]), diff --git a/keyboards/kprepublic/bm68hsrgb/rev2/config.h b/keyboards/kprepublic/bm68hsrgb/rev2/config.h index 86fbb7ae3b6..add31bbdb4c 100644 --- a/keyboards/kprepublic/bm68hsrgb/rev2/config.h +++ b/keyboards/kprepublic/bm68hsrgb/rev2/config.h @@ -55,7 +55,7 @@ #define DRIVER_COUNT 1 #define DRIVER_1_LED_TOTAL 68 -#define DRIVER_LED_TOTAL DRIVER_1_LED_TOTAL +#define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL #define DRIVER_INDICATOR_LED_TOTAL 0 #ifdef RGB_MATRIX_ENABLE diff --git a/keyboards/kprepublic/bm68hsrgb/rev2/rev2.c b/keyboards/kprepublic/bm68hsrgb/rev2/rev2.c index be743cbae51..2fb7a6e9bfa 100644 --- a/keyboards/kprepublic/bm68hsrgb/rev2/rev2.c +++ b/keyboards/kprepublic/bm68hsrgb/rev2/rev2.c @@ -17,7 +17,7 @@ #ifdef RGB_MATRIX_ENABLE -const is31_led g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led g_is31_leds[RGB_MATRIX_LED_COUNT] = { {0, CS6_SW1, CS5_SW1, CS4_SW1}, {0, CS6_SW2, CS5_SW2, CS4_SW2}, {0, CS6_SW3, CS5_SW3, CS4_SW3}, diff --git a/keyboards/kprepublic/bm80hsrgb/config.h b/keyboards/kprepublic/bm80hsrgb/config.h index 049aca9b8af..33b01b850f0 100644 --- a/keyboards/kprepublic/bm80hsrgb/config.h +++ b/keyboards/kprepublic/bm80hsrgb/config.h @@ -48,7 +48,7 @@ along with this program. If not, see . #define RGB_DI_PIN E2 // The number of LEDs connected -#define DRIVER_LED_TOTAL 87 +#define RGB_MATRIX_LED_COUNT 87 #ifdef RGB_DI_PIN #define RGBLED_NUM 87 @@ -56,7 +56,7 @@ along with this program. If not, see . //#define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses) #define RGB_MATRIX_FRAMEBUFFER_EFFECTS #define RGB_DISABLE_TIMEOUT 0 // number of milliseconds to wait until rgb automatically turns off -//#define RGB_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) +//#define RGB_MATRIX_LED_PROCESS_LIMIT (RGB_MATRIX_LED_COUNT + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) #define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness) // #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 // limits maximum brightness of LEDs to 200 out of 255. If not defined maximum brightness is set to 255 #define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_LEFT_RIGHT // Sets the default mode, if none has been set diff --git a/keyboards/kprepublic/bm80hsrgb/keymaps/peepeetee/config.h b/keyboards/kprepublic/bm80hsrgb/keymaps/peepeetee/config.h index 97cae26cbdc..f2acf22a623 100644 --- a/keyboards/kprepublic/bm80hsrgb/keymaps/peepeetee/config.h +++ b/keyboards/kprepublic/bm80hsrgb/keymaps/peepeetee/config.h @@ -46,7 +46,7 @@ // #define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_ALPHAS_MODS // Sets the default mode, if none has been set // #define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects // #define RGB_DISABLE_WHEN_USB_SUSPENDED false // turn off effects when suspended -// #define RGB_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) +// #define RGB_MATRIX_LED_PROCESS_LIMIT (RGB_MATRIX_LED_COUNT + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) // #define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness) diff --git a/keyboards/kprepublic/bm80v2/bm80v2.c b/keyboards/kprepublic/bm80v2/bm80v2.c index 4b8e5af13f8..dd89c1b0f06 100644 --- a/keyboards/kprepublic/bm80v2/bm80v2.c +++ b/keyboards/kprepublic/bm80v2/bm80v2.c @@ -16,7 +16,7 @@ #ifdef RGB_MATRIX_ENABLE -const is31_led g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led g_is31_leds[RGB_MATRIX_LED_COUNT] = { {0, CS6_SW1, CS5_SW1, CS4_SW1}, {0, CS6_SW3, CS5_SW3, CS4_SW3}, {0, CS6_SW4, CS5_SW4, CS4_SW4}, diff --git a/keyboards/kprepublic/bm80v2/config.h b/keyboards/kprepublic/bm80v2/config.h index f04ec1d960f..dfca28c93d3 100644 --- a/keyboards/kprepublic/bm80v2/config.h +++ b/keyboards/kprepublic/bm80v2/config.h @@ -70,6 +70,6 @@ #define DRIVER_ADDR_1 0b0110000 #define DRIVER_COUNT 1 #define DRIVER_1_LED_TOTAL 87 -#define DRIVER_LED_TOTAL DRIVER_1_LED_TOTAL +#define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 180 diff --git a/keyboards/kprepublic/bm80v2_iso/bm80v2_iso.c b/keyboards/kprepublic/bm80v2_iso/bm80v2_iso.c index 90d476aa2c9..8c6eaf5a5b1 100644 --- a/keyboards/kprepublic/bm80v2_iso/bm80v2_iso.c +++ b/keyboards/kprepublic/bm80v2_iso/bm80v2_iso.c @@ -16,7 +16,7 @@ #ifdef RGB_MATRIX_ENABLE -const is31_led g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led g_is31_leds[RGB_MATRIX_LED_COUNT] = { {0, CS6_SW1, CS5_SW1, CS4_SW1}, {0, CS6_SW3, CS5_SW3, CS4_SW3}, {0, CS6_SW4, CS5_SW4, CS4_SW4}, diff --git a/keyboards/kprepublic/bm80v2_iso/config.h b/keyboards/kprepublic/bm80v2_iso/config.h index aee11c42c9e..8231627b36d 100644 --- a/keyboards/kprepublic/bm80v2_iso/config.h +++ b/keyboards/kprepublic/bm80v2_iso/config.h @@ -71,6 +71,6 @@ #define DRIVER_ADDR_1 0b0110000 #define DRIVER_COUNT 1 #define DRIVER_1_LED_TOTAL 88 -#define DRIVER_LED_TOTAL DRIVER_1_LED_TOTAL +#define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 180 diff --git a/keyboards/kprepublic/bm980hsrgb/config.h b/keyboards/kprepublic/bm980hsrgb/config.h index af7e3f3be3f..605fad9e55c 100644 --- a/keyboards/kprepublic/bm980hsrgb/config.h +++ b/keyboards/kprepublic/bm980hsrgb/config.h @@ -56,7 +56,7 @@ along with this program. If not, see . #define RGB_DI_PIN B0 // The number of LEDs connected -#define DRIVER_LED_TOTAL 98 +#define RGB_MATRIX_LED_COUNT 98 //#ifdef RGB_DI_PIN # define RGBLED_NUM 98 #define RGB_MATRIX_KEYPRESSES // reacts to keypresses diff --git a/keyboards/ktec/ergodone/ergodone.h b/keyboards/ktec/ergodone/ergodone.h index 191b1ca2a93..7e7f848d509 100644 --- a/keyboards/ktec/ergodone/ergodone.h +++ b/keyboards/ktec/ergodone/ergodone.h @@ -4,7 +4,6 @@ #pragma once #include "quantum.h" -#include "layouts.h" // Ensure access to info.json layouts // This file only exists to pull in.... #include "ergodox_compat.h" diff --git a/keyboards/labbe/labbeminiv1/keymaps/rgbmatrix/config.h b/keyboards/labbe/labbeminiv1/keymaps/rgbmatrix/config.h index 601744beb75..b34a8a7b17d 100644 --- a/keyboards/labbe/labbeminiv1/keymaps/rgbmatrix/config.h +++ b/keyboards/labbe/labbeminiv1/keymaps/rgbmatrix/config.h @@ -18,7 +18,7 @@ // ws2812 options #define RGB_DI_PIN C7 // pin the DI on the ws2812 is hooked-up to #define RGBLED_NUM 4 // number of LEDs -#define DRIVER_LED_TOTAL RGBLED_NUM +#define RGB_MATRIX_LED_COUNT RGBLED_NUM #define RGB_MATRIX_KEYPRESSES diff --git a/keyboards/latincompass/latin17rgb/config.h b/keyboards/latincompass/latin17rgb/config.h index 585f632c40a..9e6b98ee3a3 100644 --- a/keyboards/latincompass/latin17rgb/config.h +++ b/keyboards/latincompass/latin17rgb/config.h @@ -109,7 +109,7 @@ # define DRIVER_COUNT 2 # define DRIVER_1_LED_TOTAL 25 # define DRIVER_2_LED_TOTAL 24 -# define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) +# define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) #endif #define RGB_DI_PIN B7 diff --git a/keyboards/latincompass/latin17rgb/latin17rgb.c b/keyboards/latincompass/latin17rgb/latin17rgb.c index d4ab3ea6752..e165c5b76d5 100644 --- a/keyboards/latincompass/latin17rgb/latin17rgb.c +++ b/keyboards/latincompass/latin17rgb/latin17rgb.c @@ -17,7 +17,7 @@ #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location diff --git a/keyboards/latincompass/latin60rgb/config.h b/keyboards/latincompass/latin60rgb/config.h index 0058297dda6..8ac72f7bb33 100644 --- a/keyboards/latincompass/latin60rgb/config.h +++ b/keyboards/latincompass/latin60rgb/config.h @@ -96,5 +96,5 @@ // # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH # define DRIVER_ADDR_1 0b1010000 # define DRIVER_COUNT 1 -# define DRIVER_LED_TOTAL 60 +# define RGB_MATRIX_LED_COUNT 60 #endif diff --git a/keyboards/latincompass/latin60rgb/latin60rgb.c b/keyboards/latincompass/latin60rgb/latin60rgb.c index b849f7ef9da..131c184124b 100644 --- a/keyboards/latincompass/latin60rgb/latin60rgb.c +++ b/keyboards/latincompass/latin60rgb/latin60rgb.c @@ -16,7 +16,7 @@ #include "latin60rgb.h" #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { { 0, K_13, J_13, L_13 }, { 0, K_12, J_12, L_12 }, { 0, K_11, J_11, L_11 }, diff --git a/keyboards/latincompass/latin64ble/config.h b/keyboards/latincompass/latin64ble/config.h index 5bb3ca45624..866bee31fa8 100644 --- a/keyboards/latincompass/latin64ble/config.h +++ b/keyboards/latincompass/latin64ble/config.h @@ -29,7 +29,7 @@ along with this program. If not, see .*/ #define RGB_DI_PIN B7 #define RGBLED_NUM 2 -#define DRIVER_LED_TOTAL RGBLED_NUM +#define RGB_MATRIX_LED_COUNT RGBLED_NUM /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ #define DEBOUNCE 5 diff --git a/keyboards/latincompass/latin6rgb/config.h b/keyboards/latincompass/latin6rgb/config.h index 17083580a6f..ef4695bdb10 100644 --- a/keyboards/latincompass/latin6rgb/config.h +++ b/keyboards/latincompass/latin6rgb/config.h @@ -107,7 +107,7 @@ #define DRIVER_ADDR_1 0b1110100 #define DRIVER_COUNT 1 -#define DRIVER_LED_TOTAL 6 +#define RGB_MATRIX_LED_COUNT 6 #endif //#define RGB_DI_PIN B7 //#ifdef RGB_DI_PIN diff --git a/keyboards/latincompass/latin6rgb/latin6rgb.c b/keyboards/latincompass/latin6rgb/latin6rgb.c index ddab9a15191..cc10a7b334d 100644 --- a/keyboards/latincompass/latin6rgb/latin6rgb.c +++ b/keyboards/latincompass/latin6rgb/latin6rgb.c @@ -17,7 +17,7 @@ #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location diff --git a/keyboards/latincompass/latinpad/config.h b/keyboards/latincompass/latinpad/config.h index 255ddc89db5..47b79802af0 100644 --- a/keyboards/latincompass/latinpad/config.h +++ b/keyboards/latincompass/latinpad/config.h @@ -30,7 +30,7 @@ along with this program. If not, see .*/ #define RGB_DI_PIN D3 #define RGBLED_NUM 18 -#define DRIVER_LED_TOTAL RGBLED_NUM +#define RGB_MATRIX_LED_COUNT RGBLED_NUM // RGB Matrix Animation modes. Explicitly enabled // For full list of effects, see: // https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects diff --git a/keyboards/latincompass/latinpadble/config.h b/keyboards/latincompass/latinpadble/config.h index 09198df612b..cefcbd6469e 100644 --- a/keyboards/latincompass/latinpadble/config.h +++ b/keyboards/latincompass/latinpadble/config.h @@ -34,7 +34,7 @@ along with this program. If not, see .*/ #define RGB_DI_PIN B7 #define RGBLED_NUM 4 -#define DRIVER_LED_TOTAL RGBLED_NUM +#define RGB_MATRIX_LED_COUNT RGBLED_NUM /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ #define DEBOUNCE 5 diff --git a/keyboards/lazydesigners/dimple/staggered/info.json b/keyboards/lazydesigners/dimple/staggered/info.json index 36be5aefeb6..cdce3c767c5 100644 --- a/keyboards/lazydesigners/dimple/staggered/info.json +++ b/keyboards/lazydesigners/dimple/staggered/info.json @@ -7,54 +7,5 @@ "vid": "0x4C44", "pid": "0x0040", "device_version": "0.0.1" - }, - "layouts": { - "LAYOUT": { - "layout": [ - {"label":"Esc", "x":0, "y":0}, - {"label":"Q", "x":1, "y":0}, - {"label":"W", "x":2, "y":0}, - {"label":"E", "x":3, "y":0}, - {"label":"R", "x":4, "y":0}, - {"label":"T", "x":5, "y":0}, - {"label":"Y", "x":6, "y":0}, - {"label":"U", "x":7, "y":0}, - {"label":"I", "x":8, "y":0}, - {"label":"O", "x":9, "y":0}, - {"label":"P", "x":10, "y":0}, - {"label":"Back
Space", "x":11, "y":0, "w":1.5}, - {"label":"Tab", "x":0, "y":1, "w":1.25}, - {"label":"A", "x":1.25, "y":1}, - {"label":"S", "x":2.25, "y":1}, - {"label":"D", "x":3.25, "y":1}, - {"label":"F", "x":4.25, "y":1}, - {"label":"G", "x":5.25, "y":1}, - {"label":"H", "x":6.25, "y":1}, - {"label":"J", "x":7.25, "y":1}, - {"label":"K", "x":8.25, "y":1}, - {"label":"L", "x":9.25, "y":1}, - {"label":"'", "x":10.25, "y":1}, - {"label":"Enter", "x":11.25, "y":1, "w":1.25}, - {"label":"Shift", "x":0, "y":2, "w":1.75}, - {"label":"Z", "x":1.75, "y":2}, - {"label":"X", "x":2.75, "y":2}, - {"label":"C", "x":3.75, "y":2}, - {"label":"V", "x":4.75, "y":2}, - {"label":"B", "x":5.75, "y":2}, - {"label":"N", "x":6.75, "y":2}, - {"label":"M", "x":7.75, "y":2}, - {"label":",", "x":8.75, "y":2}, - {"label":"Up", "x":9.75, "y":2}, - {"label":".", "x":10.75, "y":2, "w":1.75}, - {"label":"Ctrl", "x":0.75, "y":3}, - {"label":"Gui", "x":1.75, "y":3}, - {"label":"Alt", "x":2.75, "y":3}, - {"label":"Space", "x":3.75, "y":3, "w":2.25}, - {"label":"Space", "x":6, "y":3, "w":2.75}, - {"label":"Left", "x":8.75, "y":3}, - {"label":"Down", "x":9.75, "y":3}, - {"label":"Right", "x":10.75, "y":3} - ] - } } } diff --git a/keyboards/lazydesigners/dimple/staggered/rev1/info.json b/keyboards/lazydesigners/dimple/staggered/rev1/info.json new file mode 100644 index 00000000000..7fe8c59ccb7 --- /dev/null +++ b/keyboards/lazydesigners/dimple/staggered/rev1/info.json @@ -0,0 +1,54 @@ +{ + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"Esc", "x":0, "y":0, "matrix": [0, 0]}, + {"label":"Q", "x":1, "y":0, "matrix": [0, 1]}, + {"label":"W", "x":2, "y":0, "matrix": [0, 2]}, + {"label":"E", "x":3, "y":0, "matrix": [0, 3]}, + {"label":"R", "x":4, "y":0, "matrix": [0, 4]}, + {"label":"T", "x":5, "y":0, "matrix": [0, 5]}, + {"label":"Y", "x":6, "y":0, "matrix": [0, 6]}, + {"label":"U", "x":7, "y":0, "matrix": [0, 7]}, + {"label":"I", "x":8, "y":0, "matrix": [0, 8]}, + {"label":"O", "x":9, "y":0, "matrix": [0, 9]}, + {"label":"P", "x":10, "y":0, "matrix": [0, 10]}, + {"label":"Back
Space", "x":11, "y":0, "w":1.5, "matrix": [0, 11]}, + + {"label":"Tab", "x":0, "y":1, "w":1.25, "matrix": [1, 0]}, + {"label":"A", "x":1.25, "y":1, "matrix": [1, 1]}, + {"label":"S", "x":2.25, "y":1, "matrix": [1, 2]}, + {"label":"D", "x":3.25, "y":1, "matrix": [1, 3]}, + {"label":"F", "x":4.25, "y":1, "matrix": [1, 4]}, + {"label":"G", "x":5.25, "y":1, "matrix": [1, 5]}, + {"label":"H", "x":6.25, "y":1, "matrix": [1, 6]}, + {"label":"J", "x":7.25, "y":1, "matrix": [1, 7]}, + {"label":"K", "x":8.25, "y":1, "matrix": [1, 8]}, + {"label":"L", "x":9.25, "y":1, "matrix": [1, 9]}, + {"label":"'", "x":10.25, "y":1, "matrix": [1, 10]}, + {"label":"Enter", "x":11.25, "y":1, "w":1.25, "matrix": [1, 11]}, + + {"label":"Shift", "x":0, "y":2, "w":1.75, "matrix": [2, 0]}, + {"label":"Z", "x":1.75, "y":2, "matrix": [2, 1]}, + {"label":"X", "x":2.75, "y":2, "matrix": [2, 2]}, + {"label":"C", "x":3.75, "y":2, "matrix": [2, 3]}, + {"label":"V", "x":4.75, "y":2, "matrix": [2, 4]}, + {"label":"B", "x":5.75, "y":2, "matrix": [2, 5]}, + {"label":"N", "x":6.75, "y":2, "matrix": [2, 6]}, + {"label":"M", "x":7.75, "y":2, "matrix": [2, 7]}, + {"label":",", "x":8.75, "y":2, "matrix": [2, 8]}, + {"label":"Up", "x":9.75, "y":2, "matrix": [2, 9]}, + {"label":".", "x":10.75, "y":2, "w":1.75, "matrix": [2, 10]}, + + {"label":"Ctrl", "x":0.75, "y":3, "matrix": [3, 0]}, + {"label":"Gui", "x":1.75, "y":3, "matrix": [3, 2]}, + {"label":"Alt", "x":2.75, "y":3, "matrix": [3, 3]}, + {"label":"Space", "x":3.75, "y":3, "w":2.25, "matrix": [3, 4]}, + {"label":"Space", "x":6, "y":3, "w":2.75, "matrix": [3, 6]}, + {"label":"Left", "x":8.75, "y":3, "matrix": [3, 7]}, + {"label":"Down", "x":9.75, "y":3, "matrix": [3, 8]}, + {"label":"Right", "x":10.75, "y":3, "matrix": [3, 9]} + ] + } + } +} diff --git a/keyboards/lazydesigners/dimple/staggered/rev2/info.json b/keyboards/lazydesigners/dimple/staggered/rev2/info.json new file mode 100644 index 00000000000..7fe8c59ccb7 --- /dev/null +++ b/keyboards/lazydesigners/dimple/staggered/rev2/info.json @@ -0,0 +1,54 @@ +{ + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"Esc", "x":0, "y":0, "matrix": [0, 0]}, + {"label":"Q", "x":1, "y":0, "matrix": [0, 1]}, + {"label":"W", "x":2, "y":0, "matrix": [0, 2]}, + {"label":"E", "x":3, "y":0, "matrix": [0, 3]}, + {"label":"R", "x":4, "y":0, "matrix": [0, 4]}, + {"label":"T", "x":5, "y":0, "matrix": [0, 5]}, + {"label":"Y", "x":6, "y":0, "matrix": [0, 6]}, + {"label":"U", "x":7, "y":0, "matrix": [0, 7]}, + {"label":"I", "x":8, "y":0, "matrix": [0, 8]}, + {"label":"O", "x":9, "y":0, "matrix": [0, 9]}, + {"label":"P", "x":10, "y":0, "matrix": [0, 10]}, + {"label":"Back
Space", "x":11, "y":0, "w":1.5, "matrix": [0, 11]}, + + {"label":"Tab", "x":0, "y":1, "w":1.25, "matrix": [1, 0]}, + {"label":"A", "x":1.25, "y":1, "matrix": [1, 1]}, + {"label":"S", "x":2.25, "y":1, "matrix": [1, 2]}, + {"label":"D", "x":3.25, "y":1, "matrix": [1, 3]}, + {"label":"F", "x":4.25, "y":1, "matrix": [1, 4]}, + {"label":"G", "x":5.25, "y":1, "matrix": [1, 5]}, + {"label":"H", "x":6.25, "y":1, "matrix": [1, 6]}, + {"label":"J", "x":7.25, "y":1, "matrix": [1, 7]}, + {"label":"K", "x":8.25, "y":1, "matrix": [1, 8]}, + {"label":"L", "x":9.25, "y":1, "matrix": [1, 9]}, + {"label":"'", "x":10.25, "y":1, "matrix": [1, 10]}, + {"label":"Enter", "x":11.25, "y":1, "w":1.25, "matrix": [1, 11]}, + + {"label":"Shift", "x":0, "y":2, "w":1.75, "matrix": [2, 0]}, + {"label":"Z", "x":1.75, "y":2, "matrix": [2, 1]}, + {"label":"X", "x":2.75, "y":2, "matrix": [2, 2]}, + {"label":"C", "x":3.75, "y":2, "matrix": [2, 3]}, + {"label":"V", "x":4.75, "y":2, "matrix": [2, 4]}, + {"label":"B", "x":5.75, "y":2, "matrix": [2, 5]}, + {"label":"N", "x":6.75, "y":2, "matrix": [2, 6]}, + {"label":"M", "x":7.75, "y":2, "matrix": [2, 7]}, + {"label":",", "x":8.75, "y":2, "matrix": [2, 8]}, + {"label":"Up", "x":9.75, "y":2, "matrix": [2, 9]}, + {"label":".", "x":10.75, "y":2, "w":1.75, "matrix": [2, 10]}, + + {"label":"Ctrl", "x":0.75, "y":3, "matrix": [3, 0]}, + {"label":"Gui", "x":1.75, "y":3, "matrix": [3, 2]}, + {"label":"Alt", "x":2.75, "y":3, "matrix": [3, 3]}, + {"label":"Space", "x":3.75, "y":3, "w":2.25, "matrix": [3, 4]}, + {"label":"Space", "x":6, "y":3, "w":2.75, "matrix": [3, 6]}, + {"label":"Left", "x":8.75, "y":3, "matrix": [3, 7]}, + {"label":"Down", "x":9.75, "y":3, "matrix": [3, 8]}, + {"label":"Right", "x":10.75, "y":3, "matrix": [3, 9]} + ] + } + } +} diff --git a/keyboards/lazydesigners/dimple/staggered/rev3/info.json b/keyboards/lazydesigners/dimple/staggered/rev3/info.json index eb1d8b14dc0..d1e1568035a 100644 --- a/keyboards/lazydesigners/dimple/staggered/rev3/info.json +++ b/keyboards/lazydesigners/dimple/staggered/rev3/info.json @@ -1,144 +1,150 @@ { - "keyboard_name": "Dimple", - "url": "http://lazydesigners.cn", - "maintainer": "Jacky@LAZYDESIGNERS", "layouts": { "LAYOUT_all": { "layout": [ - {"label":"Esc", "x":0, "y":0}, - {"label":"Q", "x":1, "y":0}, - {"label":"W", "x":2, "y":0}, - {"label":"E", "x":3, "y":0}, - {"label":"R", "x":4, "y":0}, - {"label":"T", "x":5, "y":0}, - {"label":"Y", "x":6, "y":0}, - {"label":"U", "x":7, "y":0}, - {"label":"I", "x":8, "y":0}, - {"label":"O", "x":9, "y":0}, - {"label":"P", "x":10, "y":0}, - {"label":"Back
Space", "x":11, "y":0, "w":1.5}, - {"label":"Tab", "x":0, "y":1, "w":1.25}, - {"label":"A", "x":1.25, "y":1}, - {"label":"S", "x":2.25, "y":1}, - {"label":"D", "x":3.25, "y":1}, - {"label":"F", "x":4.25, "y":1}, - {"label":"G", "x":5.25, "y":1}, - {"label":"H", "x":6.25, "y":1}, - {"label":"J", "x":7.25, "y":1}, - {"label":"K", "x":8.25, "y":1}, - {"label":"L", "x":9.25, "y":1}, - {"label":"'", "x":10.25, "y":1}, - {"label":"Enter", "x":11.25, "y":1, "w":1.25}, - {"label":"Shift", "x":0, "y":2, "w":1.75}, - {"label":"Z", "x":1.75, "y":2}, - {"label":"X", "x":2.75, "y":2}, - {"label":"C", "x":3.75, "y":2}, - {"label":"V", "x":4.75, "y":2}, - {"label":"B", "x":5.75, "y":2}, - {"label":"N", "x":6.75, "y":2}, - {"label":"M", "x":7.75, "y":2}, - {"label":",", "x":8.75, "y":2}, - {"label":"Up", "x":9.75, "y":2}, - {"label":".", "x":10.75, "y":2, "w":1.75}, - {"label":"Ctrl", "x":0.75, "y":3}, - {"label":"Gui", "x":1.75, "y":3}, - {"label":"Alt", "x":2.75, "y":3}, - {"label":"Space", "x":3.75, "y":3, "w":2.25}, - {"label":"Space", "x":6, "y":3, "w":2.75}, - {"label":"Left", "x":8.75, "y":3}, - {"label":"Down", "x":9.75, "y":3}, - {"label":"Right", "x":10.75, "y":3} - ] + {"label":"Esc", "x":0, "y":0, "matrix": [0, 0]}, + {"label":"Q", "x":1, "y":0, "matrix": [0, 1]}, + {"label":"W", "x":2, "y":0, "matrix": [0, 2]}, + {"label":"E", "x":3, "y":0, "matrix": [0, 3]}, + {"label":"R", "x":4, "y":0, "matrix": [0, 4]}, + {"label":"T", "x":5, "y":0, "matrix": [0, 5]}, + {"label":"Y", "x":6, "y":0, "matrix": [0, 6]}, + {"label":"U", "x":7, "y":0, "matrix": [0, 7]}, + {"label":"I", "x":8, "y":0, "matrix": [0, 8]}, + {"label":"O", "x":9, "y":0, "matrix": [0, 9]}, + {"label":"P", "x":10, "y":0, "matrix": [0, 10]}, + {"label":"Back
Space", "x":11, "y":0, "w":1.5, "matrix": [0, 11]}, + + {"label":"Tab", "x":0, "y":1, "w":1.25, "matrix": [1, 0]}, + {"label":"A", "x":1.25, "y":1, "matrix": [1, 1]}, + {"label":"S", "x":2.25, "y":1, "matrix": [1, 2]}, + {"label":"D", "x":3.25, "y":1, "matrix": [1, 3]}, + {"label":"F", "x":4.25, "y":1, "matrix": [1, 4]}, + {"label":"G", "x":5.25, "y":1, "matrix": [1, 5]}, + {"label":"H", "x":6.25, "y":1, "matrix": [1, 6]}, + {"label":"J", "x":7.25, "y":1, "matrix": [1, 7]}, + {"label":"K", "x":8.25, "y":1, "matrix": [1, 8]}, + {"label":"L", "x":9.25, "y":1, "matrix": [1, 9]}, + {"label":"'", "x":10.25, "y":1, "matrix": [1, 10]}, + {"label":"Enter", "x":11.25, "y":1, "w":1.25, "matrix": [1, 11]}, + + {"label":"Shift", "x":0, "y":2, "w":1.75, "matrix": [2, 0]}, + {"label":"Z", "x":1.75, "y":2, "matrix": [2, 1]}, + {"label":"X", "x":2.75, "y":2, "matrix": [2, 2]}, + {"label":"C", "x":3.75, "y":2, "matrix": [2, 3]}, + {"label":"V", "x":4.75, "y":2, "matrix": [2, 4]}, + {"label":"B", "x":5.75, "y":2, "matrix": [2, 5]}, + {"label":"N", "x":6.75, "y":2, "matrix": [2, 6]}, + {"label":"M", "x":7.75, "y":2, "matrix": [2, 7]}, + {"label":",", "x":8.75, "y":2, "matrix": [2, 8]}, + {"label":"Up", "x":9.75, "y":2, "matrix": [2, 9]}, + {"label":".", "x":10.75, "y":2, "w":1.75, "matrix": [2, 10]}, + + {"label":"Ctrl", "x":0.75, "y":3, "matrix": [3, 0]}, + {"label":"Gui", "x":1.75, "y":3, "matrix": [3, 2]}, + {"label":"Alt", "x":2.75, "y":3, "matrix": [3, 3]}, + {"label":"Space", "x":3.75, "y":3, "w":2.25, "matrix": [3, 4]}, + {"label":"Space", "x":6, "y":3, "w":2.75, "matrix": [3, 6]}, + {"label":"Left", "x":8.75, "y":3, "matrix": [3, 7]}, + {"label":"Down", "x":9.75, "y":3, "matrix": [3, 8]}, + {"label":"Right", "x":10.75, "y":3, "matrix": [3, 9]} + ] }, "LAYOUT_iso": { "layout": [ - {"label":"Esc", "x":0, "y":0}, - {"label":"Q", "x":1, "y":0}, - {"label":"W", "x":2, "y":0}, - {"label":"E", "x":3, "y":0}, - {"label":"R", "x":4, "y":0}, - {"label":"T", "x":5, "y":0}, - {"label":"Y", "x":6, "y":0}, - {"label":"U", "x":7, "y":0}, - {"label":"I", "x":8, "y":0}, - {"label":"O", "x":9, "y":0}, - {"label":"P", "x":10, "y":0}, - {"label":"Tab", "x":0, "y":1, "w":1.25}, - {"label":"A", "x":1.25, "y":1}, - {"label":"S", "x":2.25, "y":1}, - {"label":"D", "x":3.25, "y":1}, - {"label":"F", "x":4.25, "y":1}, - {"label":"G", "x":5.25, "y":1}, - {"label":"H", "x":6.25, "y":1}, - {"label":"J", "x":7.25, "y":1}, - {"label":"K", "x":8.25, "y":1}, - {"label":"L", "x":9.25, "y":1}, - {"label":"'", "x":10.25, "y":1}, - {"label":"Enter", "x":11.25, "y":0, "w":1.25,"h":2}, - {"label":"Shift", "x":0, "y":2, "w":1.75}, - {"label":"Z", "x":1.75, "y":2}, - {"label":"X", "x":2.75, "y":2}, - {"label":"C", "x":3.75, "y":2}, - {"label":"V", "x":4.75, "y":2}, - {"label":"B", "x":5.75, "y":2}, - {"label":"N", "x":6.75, "y":2}, - {"label":"M", "x":7.75, "y":2}, - {"label":",", "x":8.75, "y":2}, - {"label":"Up", "x":9.75, "y":2}, - {"label":".", "x":10.75, "y":2, "w":1.75}, - {"label":"Ctrl", "x":0.75, "y":3}, - {"label":"Gui", "x":1.75, "y":3}, - {"label":"Alt", "x":2.75, "y":3}, - {"label":"Space", "x":3.75, "y":3, "w":2.25}, - {"label":"Space", "x":6, "y":3, "w":2.75}, - {"label":"Left", "x":8.75, "y":3}, - {"label":"Down", "x":9.75, "y":3}, - {"label":"Right", "x":10.75, "y":3} - ] + {"label":"Esc", "x":0, "y":0, "matrix": [0, 0]}, + {"label":"Q", "x":1, "y":0, "matrix": [0, 1]}, + {"label":"W", "x":2, "y":0, "matrix": [0, 2]}, + {"label":"E", "x":3, "y":0, "matrix": [0, 3]}, + {"label":"R", "x":4, "y":0, "matrix": [0, 4]}, + {"label":"T", "x":5, "y":0, "matrix": [0, 5]}, + {"label":"Y", "x":6, "y":0, "matrix": [0, 6]}, + {"label":"U", "x":7, "y":0, "matrix": [0, 7]}, + {"label":"I", "x":8, "y":0, "matrix": [0, 8]}, + {"label":"O", "x":9, "y":0, "matrix": [0, 9]}, + {"label":"P", "x":10, "y":0, "matrix": [0, 10]}, + + {"label":"Tab", "x":0, "y":1, "w":1.25, "matrix": [1, 0]}, + {"label":"A", "x":1.25, "y":1, "matrix": [1, 1]}, + {"label":"S", "x":2.25, "y":1, "matrix": [1, 2]}, + {"label":"D", "x":3.25, "y":1, "matrix": [1, 3]}, + {"label":"F", "x":4.25, "y":1, "matrix": [1, 4]}, + {"label":"G", "x":5.25, "y":1, "matrix": [1, 5]}, + {"label":"H", "x":6.25, "y":1, "matrix": [1, 6]}, + {"label":"J", "x":7.25, "y":1, "matrix": [1, 7]}, + {"label":"K", "x":8.25, "y":1, "matrix": [1, 8]}, + {"label":"L", "x":9.25, "y":1, "matrix": [1, 9]}, + {"label":"'", "x":10.25, "y":1, "matrix": [1, 10]}, + {"label":"Enter", "x":11.25, "y":0, "w":1.25,"h":2, "matrix": [1, 11]}, + + {"label":"Shift", "x":0, "y":2, "w":1.75, "matrix": [2, 0]}, + {"label":"Z", "x":1.75, "y":2, "matrix": [2, 1]}, + {"label":"X", "x":2.75, "y":2, "matrix": [2, 2]}, + {"label":"C", "x":3.75, "y":2, "matrix": [2, 3]}, + {"label":"V", "x":4.75, "y":2, "matrix": [2, 4]}, + {"label":"B", "x":5.75, "y":2, "matrix": [2, 5]}, + {"label":"N", "x":6.75, "y":2, "matrix": [2, 6]}, + {"label":"M", "x":7.75, "y":2, "matrix": [2, 7]}, + {"label":",", "x":8.75, "y":2, "matrix": [2, 8]}, + {"label":"Up", "x":9.75, "y":2, "matrix": [2, 9]}, + {"label":".", "x":10.75, "y":2, "w":1.75, "matrix": [2, 10]}, + + {"label":"Ctrl", "x":0.75, "y":3, "matrix": [3, 0]}, + {"label":"Gui", "x":1.75, "y":3, "matrix": [3, 2]}, + {"label":"Alt", "x":2.75, "y":3, "matrix": [3, 3]}, + {"label":"Space", "x":3.75, "y":3, "w":2.25, "matrix": [3, 4]}, + {"label":"Space", "x":6, "y":3, "w":2.75, "matrix": [3, 6]}, + {"label":"Left", "x":8.75, "y":3, "matrix": [3, 7]}, + {"label":"Down", "x":9.75, "y":3, "matrix": [3, 8]}, + {"label":"Right", "x":10.75, "y":3, "matrix": [3, 9]} + ] }, "LAYOUT_7u": { "layout": [ - {"label":"Esc", "x":0, "y":0}, - {"label":"Q", "x":1, "y":0}, - {"label":"W", "x":2, "y":0}, - {"label":"E", "x":3, "y":0}, - {"label":"R", "x":4, "y":0}, - {"label":"T", "x":5, "y":0}, - {"label":"Y", "x":6, "y":0}, - {"label":"U", "x":7, "y":0}, - {"label":"I", "x":8, "y":0}, - {"label":"O", "x":9, "y":0}, - {"label":"P", "x":10, "y":0}, - {"label":"Back
Space", "x":11, "y":0, "w":1.5}, - {"label":"Tab", "x":0, "y":1, "w":1.25}, - {"label":"A", "x":1.25, "y":1}, - {"label":"S", "x":2.25, "y":1}, - {"label":"D", "x":3.25, "y":1}, - {"label":"F", "x":4.25, "y":1}, - {"label":"G", "x":5.25, "y":1}, - {"label":"H", "x":6.25, "y":1}, - {"label":"J", "x":7.25, "y":1}, - {"label":"K", "x":8.25, "y":1}, - {"label":"L", "x":9.25, "y":1}, - {"label":"'", "x":10.25, "y":1}, - {"label":"Enter", "x":11.25, "y":1, "w":1.25}, - {"label":"Shift", "x":0, "y":2, "w":1.75}, - {"label":"Z", "x":1.75, "y":2}, - {"label":"X", "x":2.75, "y":2}, - {"label":"C", "x":3.75, "y":2}, - {"label":"V", "x":4.75, "y":2}, - {"label":"B", "x":5.75, "y":2}, - {"label":"N", "x":6.75, "y":2}, - {"label":"M", "x":7.75, "y":2}, - {"label":",", "x":8.75, "y":2}, - {"label":"Up", "x":9.75, "y":2}, - {"label":".", "x":10.75, "y":2, "w":1.75}, - {"label":"Ctrl", "x":0.75, "y":3}, - {"label":"Gui", "x":1.75, "y":3}, - {"label":"Space", "x":2.75, "y":3, "w":7}, - {"label":"Down", "x":9.75, "y":3}, - {"label":"Right", "x":10.75, "y":3} - ] + {"label":"Esc", "x":0, "y":0, "matrix": [0, 0]}, + {"label":"Q", "x":1, "y":0, "matrix": [0, 1]}, + {"label":"W", "x":2, "y":0, "matrix": [0, 2]}, + {"label":"E", "x":3, "y":0, "matrix": [0, 3]}, + {"label":"R", "x":4, "y":0, "matrix": [0, 4]}, + {"label":"T", "x":5, "y":0, "matrix": [0, 5]}, + {"label":"Y", "x":6, "y":0, "matrix": [0, 6]}, + {"label":"U", "x":7, "y":0, "matrix": [0, 7]}, + {"label":"I", "x":8, "y":0, "matrix": [0, 8]}, + {"label":"O", "x":9, "y":0, "matrix": [0, 9]}, + {"label":"P", "x":10, "y":0, "matrix": [0, 10]}, + {"label":"Back
Space", "x":11, "y":0, "w":1.5, "matrix": [0, 11]}, + + {"label":"Tab", "x":0, "y":1, "w":1.25, "matrix": [1, 0]}, + {"label":"A", "x":1.25, "y":1, "matrix": [1, 1]}, + {"label":"S", "x":2.25, "y":1, "matrix": [1, 2]}, + {"label":"D", "x":3.25, "y":1, "matrix": [1, 3]}, + {"label":"F", "x":4.25, "y":1, "matrix": [1, 4]}, + {"label":"G", "x":5.25, "y":1, "matrix": [1, 5]}, + {"label":"H", "x":6.25, "y":1, "matrix": [1, 6]}, + {"label":"J", "x":7.25, "y":1, "matrix": [1, 7]}, + {"label":"K", "x":8.25, "y":1, "matrix": [1, 8]}, + {"label":"L", "x":9.25, "y":1, "matrix": [1, 9]}, + {"label":"'", "x":10.25, "y":1, "matrix": [1, 10]}, + {"label":"Enter", "x":11.25, "y":1, "w":1.25, "matrix": [1, 11]}, + + {"label":"Shift", "x":0, "y":2, "w":1.75, "matrix": [2, 0]}, + {"label":"Z", "x":1.75, "y":2, "matrix": [2, 1]}, + {"label":"X", "x":2.75, "y":2, "matrix": [2, 2]}, + {"label":"C", "x":3.75, "y":2, "matrix": [2, 3]}, + {"label":"V", "x":4.75, "y":2, "matrix": [2, 4]}, + {"label":"B", "x":5.75, "y":2, "matrix": [2, 5]}, + {"label":"N", "x":6.75, "y":2, "matrix": [2, 6]}, + {"label":"M", "x":7.75, "y":2, "matrix": [2, 7]}, + {"label":",", "x":8.75, "y":2, "matrix": [2, 8]}, + {"label":"Up", "x":9.75, "y":2, "matrix": [2, 9]}, + {"label":".", "x":10.75, "y":2, "w":1.75, "matrix": [2, 10]}, + + {"label":"Ctrl", "x":0.75, "y":3, "matrix": [3, 0]}, + {"label":"Gui", "x":1.75, "y":3, "matrix": [3, 2]}, + {"label":"Space", "x":2.75, "y":3, "w":7, "matrix": [3, 4]}, + {"label":"Down", "x":9.75, "y":3, "matrix": [3, 8]}, + {"label":"Right", "x":10.75, "y":3, "matrix": [3, 9]} + ] } } } diff --git a/keyboards/lazydesigners/dimple/staggered/rev3/rev3.h b/keyboards/lazydesigners/dimple/staggered/rev3/rev3.h deleted file mode 100644 index 2aec210d9ec..00000000000 --- a/keyboards/lazydesigners/dimple/staggered/rev3/rev3.h +++ /dev/null @@ -1,90 +0,0 @@ -/* Copyright 2019 Erovia - * - * 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 "quantum.h" - -/* - * ,---------------------------------------------------------------. - * | | | | | | | | | | | | | - * |---------------------------------------------------------------| - * | | | | | | | | | | | | | - * |---------------------------------------------------------------| - * | | | | | | | | | | | | - * |---------------------------------------------------------------| - * | | | | | | | | | - * `-----------------------------------------------------' - */ - -#define LAYOUT_all( \ - K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, \ - K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, \ - K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, \ - K300, K302, K303, K304, K306, K307, K308, K309 \ -) { \ - { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011 }, \ - { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111 }, \ - { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, KC_NO }, \ - { K300, KC_NO, K302, K303, K304, KC_NO, K306, K307, K308, K309, KC_NO, KC_NO } \ -} - -/* - * ,---------------------------------------------------------------. - * | | | | | | | | | | | | | - * |-------------------------------------------------------- | - * | | | | | | | | | | | | | - * |---------------------------------------------------------------| - * | | | | | | | | | | | | - * |---------------------------------------------------------------| - * | | | | | | | | | - * `-----------------------------------------------------' - */ - -#define LAYOUT_iso( \ - K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, \ - K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, \ - K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, \ - K300, K302, K303, K304, K306, K307, K308, K309 \ -) { \ - { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, KC_NO }, \ - { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111 }, \ - { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, KC_NO }, \ - { K300, KC_NO, K302, K303, K304, KC_NO, K306, K307, K308, K309, KC_NO, KC_NO } \ -} - -/* - * ,---------------------------------------------------------------. - * | | | | | | | | | | | | | - * |---------------------------------------------------------------| - * | | | | | | | | | | | | | - * |---------------------------------------------------------------| - * | | | | | | | | | | | | - * |---------------------------------------------------------------| - * | | | | | | - * `-----------------------------------------------------' - */ - -#define LAYOUT_7u( \ - K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, \ - K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, \ - K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, \ - K300, K302, K304, K308, K309 \ -) { \ - { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011 }, \ - { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111 }, \ - { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, KC_NO }, \ - { K300, KC_NO, K302, KC_NO, K304, KC_NO, KC_NO, KC_NO, K308, K309, KC_NO, KC_NO } \ -} diff --git a/keyboards/lazydesigners/dimple/staggered/staggered.h b/keyboards/lazydesigners/dimple/staggered/staggered.h index 433de3b897e..bdaddb77507 100644 --- a/keyboards/lazydesigners/dimple/staggered/staggered.h +++ b/keyboards/lazydesigners/dimple/staggered/staggered.h @@ -17,29 +17,5 @@ #include "quantum.h" -/* - * ,---------------------------------------------------------------. - * | | | | | | | | | | | | | - * |---------------------------------------------------------------| - * | | | | | | | | | | | | | - * |---------------------------------------------------------------| - * | | | | | | | | | | | | - * |---------------------------------------------------------------| - * | | | | | | | | | - * `-----------------------------------------------------' - */ - -#define LAYOUT( \ - K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, \ - K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, \ - K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, \ - K300, K302, K303, K304, K306, K307, K308, K309 \ -) { \ - { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011 }, \ - { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111 }, \ - { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, KC_NO }, \ - { K300, KC_NO, K302, K303, K304, KC_NO, K306, K307, K308, K309, KC_NO, KC_NO } \ -} - void dimple_led_on(void); void dimple_led_off(void); diff --git a/keyboards/linworks/fave65h/config.h b/keyboards/linworks/fave65h/config.h index 5fac33e7d59..008a1717241 100644 --- a/keyboards/linworks/fave65h/config.h +++ b/keyboards/linworks/fave65h/config.h @@ -35,7 +35,7 @@ along with this program. If not, see . /* Define RGB */ #define RGBLED_NUM 67 -#define DRIVER_LED_TOTAL 67 +#define RGB_MATRIX_LED_COUNT 67 #define RGB_DI_PIN B0 #ifdef RGB_MATRIX_ENABLE diff --git a/keyboards/linworks/fave84h/config.h b/keyboards/linworks/fave84h/config.h index e9e69f3b66f..0980a742d16 100644 --- a/keyboards/linworks/fave84h/config.h +++ b/keyboards/linworks/fave84h/config.h @@ -46,7 +46,7 @@ along with this program. If not, see . /* Define RGB */ #define RGBLED_NUM 126 -#define DRIVER_LED_TOTAL 126 +#define RGB_MATRIX_LED_COUNT 126 #define RGB_DI_PIN D2 #ifdef RGB_MATRIX_ENABLE diff --git a/keyboards/linworks/fave87h/config.h b/keyboards/linworks/fave87h/config.h index 54850aec3fa..17d19fb2e13 100644 --- a/keyboards/linworks/fave87h/config.h +++ b/keyboards/linworks/fave87h/config.h @@ -35,7 +35,7 @@ along with this program. If not, see . /* Define RGB */ #define RGBLED_NUM 127 -#define DRIVER_LED_TOTAL 127 +#define RGB_MATRIX_LED_COUNT 127 #define RGB_DI_PIN D2 #ifdef RGB_MATRIX_ENABLE diff --git a/keyboards/maple_computing/launchpad/keymaps/drashna/config.h b/keyboards/maple_computing/launchpad/keymaps/drashna/config.h index b14becc25bf..d8019105688 100644 --- a/keyboards/maple_computing/launchpad/keymaps/drashna/config.h +++ b/keyboards/maple_computing/launchpad/keymaps/drashna/config.h @@ -26,6 +26,6 @@ #define RGBLIGHT_SAT_STEP 17 #define RGBLIGHT_VAL_STEP 17 -#define DRIVER_LED_TOTAL RGBLED_NUM +#define RGB_MATRIX_LED_COUNT RGBLED_NUM #define AUDIO_PIN B7 #define AUDIO_CLICKY diff --git a/keyboards/marksard/rhymestone/rev1/config.h b/keyboards/marksard/rhymestone/rev1/config.h index 6cee7a9a926..1fe692c383e 100644 --- a/keyboards/marksard/rhymestone/rev1/config.h +++ b/keyboards/marksard/rhymestone/rev1/config.h @@ -81,12 +81,12 @@ along with this program. If not, see . #ifdef RGB_MATRIX_ENABLE #define RGBLED_NUM 40 // Number of LEDs - #define DRIVER_LED_TOTAL RGBLED_NUM + #define RGB_MATRIX_LED_COUNT RGBLED_NUM #define RGB_MATRIX_KEYPRESSES // reacts to keypresses // #define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses) // #define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects #define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended - // #define RGB_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) + // #define RGB_MATRIX_LED_PROCESS_LIMIT (RGB_MATRIX_LED_COUNT + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) // #define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness) #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 // limits maximum brightness of LEDs to 200 out of 255. If not defined maximum brightness is set to 255 #define RGB_MATRIX_HUE_STEP 8 diff --git a/keyboards/massdrop/alt/config_led.h b/keyboards/massdrop/alt/config_led.h index b600dd23b98..770a430d3c8 100644 --- a/keyboards/massdrop/alt/config_led.h +++ b/keyboards/massdrop/alt/config_led.h @@ -19,7 +19,7 @@ along with this program. If not, see . //Define number of ISSI3733 drivers being used (1...16) #define ISSI3733_DRIVER_COUNT 2 -#define DRIVER_LED_TOTAL ISSI3733_LED_COUNT +#define RGB_MATRIX_LED_COUNT ISSI3733_LED_COUNT //Hardware address of each driver (Refer to ISSI3733 pdf "Table 1 Slave Address" and keyboard schematic) #define ISSI3773_DRIVER_ADDRESSES { 0xA0, 0xBE } diff --git a/keyboards/massdrop/alt/keymaps/jdelkins/keymap.c b/keyboards/massdrop/alt/keymaps/jdelkins/keymap.c index 967c1570d2c..6afd882dbec 100644 --- a/keyboards/massdrop/alt/keymaps/jdelkins/keymap.c +++ b/keyboards/massdrop/alt/keymaps/jdelkins/keymap.c @@ -230,7 +230,7 @@ static void set_rgb_layer(int layer) { switch (cur->type) { case type_hsv: - for (uint8_t i = 0; i < DRIVER_LED_TOTAL ; i++) { + for (uint8_t i = 0; i < RGB_MATRIX_LED_COUNT ; i++) { if (!(g_led_config.flags[i] & cur->flags)) rgb_matrix_set_color(i, 0, 0, 0); } @@ -247,7 +247,7 @@ static void set_rgb_layer(int layer) { rgb_matrix_mode_noeeprom(rgbs[cur->mode - RGB_MATRIX_EFFECT_MAX].mode); else rgb_matrix_mode_noeeprom(cur->mode); - for (uint8_t i = 0; i < DRIVER_LED_TOTAL; i++) { + for (uint8_t i = 0; i < RGB_MATRIX_LED_COUNT; i++) { const RGB *m = &cur->rgb[i]; if (!RGB_IS_NULL(*m)) rgb_matrix_set_color(i, m->r, m->g, m->b); diff --git a/keyboards/massdrop/alt/keymaps/jdelkins/rgb_matrix.h b/keyboards/massdrop/alt/keymaps/jdelkins/rgb_matrix.h index ff30cc0e42c..146de004479 100644 --- a/keyboards/massdrop/alt/keymaps/jdelkins/rgb_matrix.h +++ b/keyboards/massdrop/alt/keymaps/jdelkins/rgb_matrix.h @@ -63,7 +63,7 @@ struct layer_rgb { uint8_t mode; union { HSV hsv; - RGB rgb[DRIVER_LED_TOTAL]; + RGB rgb[RGB_MATRIX_LED_COUNT]; }; }; diff --git a/keyboards/massdrop/alt/keymaps/jdelkins_ss/keymap.c b/keyboards/massdrop/alt/keymaps/jdelkins_ss/keymap.c index f5a39338b81..8db9222783c 100644 --- a/keyboards/massdrop/alt/keymaps/jdelkins_ss/keymap.c +++ b/keyboards/massdrop/alt/keymaps/jdelkins_ss/keymap.c @@ -113,7 +113,7 @@ static void set_rgb_layer(int layer) { switch (cur->type) { case type_hsv: - for (uint8_t i = 0; i < DRIVER_LED_TOTAL ; i++) { + for (uint8_t i = 0; i < RGB_MATRIX_LED_COUNT ; i++) { if (!(g_led_config.flags[i] & cur->flags)) rgb_matrix_set_color(i, 0, 0, 0); } @@ -130,7 +130,7 @@ static void set_rgb_layer(int layer) { rgb_matrix_mode_noeeprom(rgbs[cur->mode - RGB_MATRIX_EFFECT_MAX].mode); else rgb_matrix_mode_noeeprom(cur->mode); - for (uint8_t i = 0; i < DRIVER_LED_TOTAL; i++) { + for (uint8_t i = 0; i < RGB_MATRIX_LED_COUNT; i++) { const RGB *m = &cur->rgb[i]; if (!RGB_IS_NULL(*m)) rgb_matrix_set_color(i, m->r, m->g, m->b); diff --git a/keyboards/massdrop/alt/keymaps/jdelkins_ss/rgb_matrix.h b/keyboards/massdrop/alt/keymaps/jdelkins_ss/rgb_matrix.h index ff30cc0e42c..146de004479 100644 --- a/keyboards/massdrop/alt/keymaps/jdelkins_ss/rgb_matrix.h +++ b/keyboards/massdrop/alt/keymaps/jdelkins_ss/rgb_matrix.h @@ -63,7 +63,7 @@ struct layer_rgb { uint8_t mode; union { HSV hsv; - RGB rgb[DRIVER_LED_TOTAL]; + RGB rgb[RGB_MATRIX_LED_COUNT]; }; }; diff --git a/keyboards/massdrop/alt/keymaps/pregame/config.h b/keyboards/massdrop/alt/keymaps/pregame/config.h index 936951e34ae..42ddb1f4f39 100644 --- a/keyboards/massdrop/alt/keymaps/pregame/config.h +++ b/keyboards/massdrop/alt/keymaps/pregame/config.h @@ -89,7 +89,7 @@ // #define RGBLIGHT_VAL_STEP 12 // Units to step when in/decreasing value (brightness) // #define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects // #define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended -// #define RGB_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) +// #define RGB_MATRIX_LED_PROCESS_LIMIT (RGB_MATRIX_LED_COUNT + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) // #define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness) #define RGBLIGHT_ANIMATIONS // Run RGB animations // #define RGBLIGHT_ANIMATIONS // Enable all additional animation modes. diff --git a/keyboards/massdrop/alt/keymaps/pregame/keymap.c b/keyboards/massdrop/alt/keymaps/pregame/keymap.c index 6c1d93b0301..6a78f075fbc 100644 --- a/keyboards/massdrop/alt/keymaps/pregame/keymap.c +++ b/keyboards/massdrop/alt/keymaps/pregame/keymap.c @@ -81,7 +81,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #undef _______ #define _______ {0, 0, 0} -const uint8_t PROGMEM ledmap[][DRIVER_LED_TOTAL][3] = { +const uint8_t PROGMEM ledmap[][RGB_MATRIX_LED_COUNT][3] = { [0] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, CHART, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, @@ -182,7 +182,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return true; } void set_layer_color(int layer) { - for (int i = 0; i < DRIVER_LED_TOTAL; i++) { + for (int i = 0; i < RGB_MATRIX_LED_COUNT; i++) { HSV hsv = { .h = pgm_read_byte(&ledmap[layer][i][0]), .s = pgm_read_byte(&ledmap[layer][i][1]), diff --git a/keyboards/massdrop/ctrl/config_led.h b/keyboards/massdrop/ctrl/config_led.h index de897ce1bd9..f582035e9e2 100644 --- a/keyboards/massdrop/ctrl/config_led.h +++ b/keyboards/massdrop/ctrl/config_led.h @@ -19,7 +19,7 @@ along with this program. If not, see . //Define number of ISSI3733 drivers being used (1...16) #define ISSI3733_DRIVER_COUNT 2 -#define DRIVER_LED_TOTAL ISSI3733_LED_COUNT +#define RGB_MATRIX_LED_COUNT ISSI3733_LED_COUNT //Hardware address of each driver (Refer to ISSI3733 pdf "Table 1 Slave Address" and keyboard schematic) #define ISSI3773_DRIVER_ADDRESSES { 0xA0, 0xBE } diff --git a/keyboards/massdrop/ctrl/keymaps/endgame/config.h b/keyboards/massdrop/ctrl/keymaps/endgame/config.h index d0bbfd2103b..8b28e72d5c5 100644 --- a/keyboards/massdrop/ctrl/keymaps/endgame/config.h +++ b/keyboards/massdrop/ctrl/keymaps/endgame/config.h @@ -49,7 +49,7 @@ // #define RGBLIGHT_VAL_STEP 12 // Units to step when in/decreasing value (brightness) // #define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects // #define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended -// #define RGB_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) +// #define RGB_MATRIX_LED_PROCESS_LIMIT (RGB_MATRIX_LED_COUNT + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) // #define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness) // #define RGBLIGHT_ANIMATIONS // Run RGB animations // #define RGBLIGHT_ANIMATIONS // Enable all additional animation modes. diff --git a/keyboards/massdrop/ctrl/keymaps/endgame/keymap.c b/keyboards/massdrop/ctrl/keymaps/endgame/keymap.c index 6451dd495b3..4c9c73c3fdf 100644 --- a/keyboards/massdrop/ctrl/keymaps/endgame/keymap.c +++ b/keyboards/massdrop/ctrl/keymaps/endgame/keymap.c @@ -124,7 +124,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #undef _______ #define _______ {0, 0, 0} -const uint8_t PROGMEM ledmap[][DRIVER_LED_TOTAL][3] = { +const uint8_t PROGMEM ledmap[][RGB_MATRIX_LED_COUNT][3] = { [_FL] = { _______, CORAL, CORAL, _______, _______, CORAL, CORAL, _______, _______, CORAL, _______, YELLOW, YELLOW, TEAL, GOLD, GOLD, _______, _______, PINK, PINK, PINK, PINK, _______, _______, _______, GREEN, GREEN, GREEN, GREEN, _______, TEAL, TEAL, TEAL, @@ -354,7 +354,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { void set_layer_color(int layer) { if (layer == 0) { return; } - for (int i = 0; i < DRIVER_LED_TOTAL; i++) { + for (int i = 0; i < RGB_MATRIX_LED_COUNT; i++) { HSV hsv = { .h = pgm_read_byte(&ledmap[layer][i][0]), .s = pgm_read_byte(&ledmap[layer][i][1]), diff --git a/keyboards/massdrop/ctrl/keymaps/foxx1337/config.h b/keyboards/massdrop/ctrl/keymaps/foxx1337/config.h index 160ddf6d184..68ed5f76099 100644 --- a/keyboards/massdrop/ctrl/keymaps/foxx1337/config.h +++ b/keyboards/massdrop/ctrl/keymaps/foxx1337/config.h @@ -34,7 +34,7 @@ // #define RGBLIGHT_VAL_STEP 12 // Units to step when in/decreasing value (brightness) // #define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects // #define RGB_DISABLE_WHEN_USB_SUSPENDED false // turn off effects when suspended -// #define RGB_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) +// #define RGB_MATRIX_LED_PROCESS_LIMIT (RGB_MATRIX_LED_COUNT + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) // #define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness) // #define RGBLIGHT_ANIMATIONS // Run RGB animations // #define RGBLIGHT_ANIMATIONS // Enable all additional animation modes. diff --git a/keyboards/massdrop/ctrl/keymaps/foxx1337/hid_protocol.h b/keyboards/massdrop/ctrl/keymaps/foxx1337/hid_protocol.h index ff214aaad60..96f90f5e054 100644 --- a/keyboards/massdrop/ctrl/keymaps/foxx1337/hid_protocol.h +++ b/keyboards/massdrop/ctrl/keymaps/foxx1337/hid_protocol.h @@ -75,6 +75,6 @@ extern uint8_t raw_hid_buffer[RAW_EPSIZE]; // Defined in rgb_matrix_user.inc // It's 119 for Massdrop CTRL, 0 - 118. -extern RGB rgb_matrix_led_state[DRIVER_LED_TOTAL]; +extern RGB rgb_matrix_led_state[RGB_MATRIX_LED_COUNT]; void raw_hid_perform_send(void); diff --git a/keyboards/massdrop/ctrl/keymaps/foxx1337/keymap.c b/keyboards/massdrop/ctrl/keymaps/foxx1337/keymap.c index 299251e456d..ad265f0ead4 100644 --- a/keyboards/massdrop/ctrl/keymaps/foxx1337/keymap.c +++ b/keyboards/massdrop/ctrl/keymaps/foxx1337/keymap.c @@ -199,9 +199,9 @@ void raw_hid_led(uint8_t *data) { //rgb_matrix_set_color(data[1], data[2], data[3], data[4]); const uint8_t led = data[1]; - if (led >= DRIVER_LED_TOTAL) { + if (led >= RGB_MATRIX_LED_COUNT) { raw_hid_buffer[1] = CTRL_HID_NOK; - raw_hid_buffer[2] = DRIVER_LED_TOTAL; + raw_hid_buffer[2] = RGB_MATRIX_LED_COUNT; raw_hid_buffer[3] = CTRL_HID_EOM; return; } @@ -219,7 +219,7 @@ void raw_hid_leds(uint8_t *data) { const uint8_t number_leds = data[2]; uint8_t i = 0; - while (i < number_leds && first_led + i < DRIVER_LED_TOTAL && i * 3 + 5 < RAW_EPSIZE) { + while (i < number_leds && first_led + i < RGB_MATRIX_LED_COUNT && i * 3 + 5 < RAW_EPSIZE) { rgb_matrix_led_state[first_led + i].r = data[3 + i * 3 + 0]; rgb_matrix_led_state[first_led + i].g = data[3 + i * 3 + 1]; rgb_matrix_led_state[first_led + i].b = data[3 + i * 3 + 2]; diff --git a/keyboards/massdrop/ctrl/keymaps/foxx1337/rgb_matrix_user.inc b/keyboards/massdrop/ctrl/keymaps/foxx1337/rgb_matrix_user.inc index cca598e3b2c..36d09c42e24 100644 --- a/keyboards/massdrop/ctrl/keymaps/foxx1337/rgb_matrix_user.inc +++ b/keyboards/massdrop/ctrl/keymaps/foxx1337/rgb_matrix_user.inc @@ -26,7 +26,7 @@ RGB_MATRIX_EFFECT(hid_effect) // Define effects inside the `RGB_MATRIX_CUSTOM_EFFECT_IMPLS` ifdef block #ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS -RGB rgb_matrix_led_state[DRIVER_LED_TOTAL]; +RGB rgb_matrix_led_state[RGB_MATRIX_LED_COUNT]; // e.g: A simple effect, self-contained within a single method static bool hid_effect(effect_params_t* params) { @@ -38,7 +38,7 @@ static bool hid_effect(effect_params_t* params) { rgb_matrix_led_state[i].g, rgb_matrix_led_state[i].b); } - return led_max < DRIVER_LED_TOTAL; + return led_max < RGB_MATRIX_LED_COUNT; } #endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS diff --git a/keyboards/massdrop/ctrl/keymaps/matthewrobo/config.h b/keyboards/massdrop/ctrl/keymaps/matthewrobo/config.h index 692faa35a21..78641763c2e 100644 --- a/keyboards/massdrop/ctrl/keymaps/matthewrobo/config.h +++ b/keyboards/massdrop/ctrl/keymaps/matthewrobo/config.h @@ -67,7 +67,7 @@ along with this program. If not, see . // #define RGBLIGHT_VAL_STEP 12 // Units to step when in/decreasing value (brightness) // #define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects // #define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended -// #define RGB_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) +// #define RGB_MATRIX_LED_PROCESS_LIMIT (RGB_MATRIX_LED_COUNT + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) // #define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness) // #define RGBLIGHT_ANIMATIONS // Run RGB animations // #define RGBLIGHT_ANIMATIONS // Enable all additional animation modes. diff --git a/keyboards/massdrop/ctrl/keymaps/matthewrobo/keymap.c b/keyboards/massdrop/ctrl/keymaps/matthewrobo/keymap.c index c89607b3f37..406263cee5c 100644 --- a/keyboards/massdrop/ctrl/keymaps/matthewrobo/keymap.c +++ b/keyboards/massdrop/ctrl/keymaps/matthewrobo/keymap.c @@ -83,7 +83,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { # undef _______ # define _______ {0,0,0} -const uint8_t PROGMEM ledmap[][DRIVER_LED_TOTAL][3] = { +const uint8_t PROGMEM ledmap[][RGB_MATRIX_LED_COUNT][3] = { [_NL] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, GOLD, GOLD, GOLD, GREEN, GREEN, GREEN, _______, _______, _______, _______, @@ -217,7 +217,7 @@ void set_layer_color(int layer) { if (layer == 0) { return; } - for (int i = 0; i < DRIVER_LED_TOTAL; i++) { + for (int i = 0; i < RGB_MATRIX_LED_COUNT; i++) { HSV hsv = { .h = pgm_read_byte(&ledmap[layer][i][0]), .s = pgm_read_byte(&ledmap[layer][i][1]), diff --git a/keyboards/massdrop/ctrl/keymaps/xanimos/config.h b/keyboards/massdrop/ctrl/keymaps/xanimos/config.h index f1cbd5f3b06..e5799e308ef 100644 --- a/keyboards/massdrop/ctrl/keymaps/xanimos/config.h +++ b/keyboards/massdrop/ctrl/keymaps/xanimos/config.h @@ -65,7 +65,7 @@ // #define RGBLIGHT_VAL_STEP 12 // Units to step when in/decreasing value (brightness) // #define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects // #define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended -// #define RGB_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) +// #define RGB_MATRIX_LED_PROCESS_LIMIT (RGB_MATRIX_LED_COUNT + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) // #define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness) // #define RGBLIGHT_ANIMATIONS // Run RGB animations // #define RGBLIGHT_ANIMATIONS // Enable all additional animation modes. diff --git a/keyboards/massdrop/ctrl/keymaps/xanimos/keymap.c b/keyboards/massdrop/ctrl/keymaps/xanimos/keymap.c index c7bc285eda9..2b6515fc977 100644 --- a/keyboards/massdrop/ctrl/keymaps/xanimos/keymap.c +++ b/keyboards/massdrop/ctrl/keymaps/xanimos/keymap.c @@ -118,7 +118,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #define __OFF__ {0, 0, 0} -const uint8_t PROGMEM ledmap[][DRIVER_LED_TOTAL][3] = { +const uint8_t PROGMEM ledmap[][RGB_MATRIX_LED_COUNT][3] = { [_FL] = { // These remain on base layer rgb to see adjustments ;) // |----------------------------------| @@ -323,7 +323,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { void set_layer_color(int layer) { if (layer == 0) { return; } - for (int i = 0; i < DRIVER_LED_TOTAL; i++) { + for (int i = 0; i < RGB_MATRIX_LED_COUNT; i++) { HSV hsv = { .h = pgm_read_byte(&ledmap[layer][i][0]), .s = pgm_read_byte(&ledmap[layer][i][1]), diff --git a/keyboards/matrix/m20add/config.h b/keyboards/matrix/m20add/config.h index cf63bb1bdaa..95a83905a3f 100644 --- a/keyboards/matrix/m20add/config.h +++ b/keyboards/matrix/m20add/config.h @@ -86,4 +86,4 @@ #define DRIVER_ADDR_1 0b1110100 #define DRIVER_COUNT 1 -#define DRIVER_LED_TOTAL RGBLED_NUM +#define RGB_MATRIX_LED_COUNT RGBLED_NUM diff --git a/keyboards/matrix/m20add/rgb_ring.c b/keyboards/matrix/m20add/rgb_ring.c index 7535cb5bd43..4466ec3bea5 100644 --- a/keyboards/matrix/m20add/rgb_ring.c +++ b/keyboards/matrix/m20add/rgb_ring.c @@ -30,7 +30,7 @@ #endif // rgb ring leds setting -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location @@ -373,7 +373,7 @@ void rgb_ring_init(void) { i2c_init(); IS31FL3731_init(DRIVER_ADDR_1); - for (int index = 0; index < DRIVER_LED_TOTAL; index++) { + for (int index = 0; index < RGB_MATRIX_LED_COUNT; index++) { bool enabled = true; IS31FL3731_set_led_control_register(index, enabled, enabled, enabled); } diff --git a/keyboards/matrix/noah/config.h b/keyboards/matrix/noah/config.h index 83c1942a5fb..081b5de3737 100644 --- a/keyboards/matrix/noah/config.h +++ b/keyboards/matrix/noah/config.h @@ -30,7 +30,7 @@ #define DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 36 #define DRIVER_2_LED_TOTAL 36 -#define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) +#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) // RGB Matrix Animation modes. Explicitly enabled // For full list of effects, see: // https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects diff --git a/keyboards/matrix/noah/noah.c b/keyboards/matrix/noah/noah.c index 89c25707af2..44450229a14 100644 --- a/keyboards/matrix/noah/noah.c +++ b/keyboards/matrix/noah/noah.c @@ -63,7 +63,7 @@ void matrix_scan_kb(void) { } #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location diff --git a/keyboards/mechlovin/adelais/rgb_led/rev1/config.h b/keyboards/mechlovin/adelais/rgb_led/rev1/config.h index 7f151ae09a8..bc025120a6e 100644 --- a/keyboards/mechlovin/adelais/rgb_led/rev1/config.h +++ b/keyboards/mechlovin/adelais/rgb_led/rev1/config.h @@ -4,7 +4,7 @@ #define MATRIX_COL_PINS { A10, A9, A8, B15, B14, B13, B12, B11, B10, B8, B4, B5, B3, C14, A15 } #define RGB_DI_PIN A7 -#define DRIVER_LED_TOTAL 91 +#define RGB_MATRIX_LED_COUNT 91 #define RGB_MATRIX_KEYPRESSES // reacts to keypresses #define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses) #define RGB_MATRIX_FRAMEBUFFER_EFFECTS diff --git a/keyboards/mechlovin/adelais/rgb_led/rev2/config.h b/keyboards/mechlovin/adelais/rgb_led/rev2/config.h index dbeb73cda25..2a434f1d5d4 100644 --- a/keyboards/mechlovin/adelais/rgb_led/rev2/config.h +++ b/keyboards/mechlovin/adelais/rgb_led/rev2/config.h @@ -23,7 +23,7 @@ #define DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 32 #define DRIVER_2_LED_TOTAL 36 -#define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) +#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) #define RGB_MATRIX_KEYPRESSES // reacts to keypresses #define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses) #define RGB_MATRIX_FRAMEBUFFER_EFFECTS diff --git a/keyboards/mechlovin/adelais/rgb_led/rev2/rev2.c b/keyboards/mechlovin/adelais/rgb_led/rev2/rev2.c index dda36f37106..edbbe39c4b6 100644 --- a/keyboards/mechlovin/adelais/rgb_led/rev2/rev2.c +++ b/keyboards/mechlovin/adelais/rgb_led/rev2/rev2.c @@ -17,7 +17,7 @@ #include "adelais.h" #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { {0, C2_1, C3_1, C4_1}, //D102-A0-0 {0, C5_1, C6_1, C7_1}, //D108-A1-1 diff --git a/keyboards/mechlovin/adelais/rgb_led/rev3/config.h b/keyboards/mechlovin/adelais/rgb_led/rev3/config.h index e16d5f2ce5f..9149dfe97a9 100644 --- a/keyboards/mechlovin/adelais/rgb_led/rev3/config.h +++ b/keyboards/mechlovin/adelais/rgb_led/rev3/config.h @@ -51,7 +51,7 @@ along with this program. If not, see . // 0b1110110 AD <-> SDA #define DRIVER_ADDR_1 0b0110010 #define DRIVER_COUNT 1 -#define DRIVER_LED_TOTAL 66 +#define RGB_MATRIX_LED_COUNT 66 #define RGB_MATRIX_KEYPRESSES // reacts to keypresses #define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses) diff --git a/keyboards/mechlovin/adelais/rgb_led/rev3/rev3.c b/keyboards/mechlovin/adelais/rgb_led/rev3/rev3.c index d9ea7993cf1..cf334a962e0 100644 --- a/keyboards/mechlovin/adelais/rgb_led/rev3/rev3.c +++ b/keyboards/mechlovin/adelais/rgb_led/rev3/rev3.c @@ -17,7 +17,7 @@ #include "rev3.h" #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { {0, CS3_SW5, CS2_SW5, CS1_SW5}, /* D9-K31-00 */ {0, CS6_SW5, CS5_SW5, CS4_SW5}, /* D46-K00-01 */ {0, CS6_SW9, CS5_SW9, CS4_SW9}, /* D59-K01-02 */ diff --git a/keyboards/mechlovin/delphine/rgb_led/config.h b/keyboards/mechlovin/delphine/rgb_led/config.h index 0d5bfb57f96..1782c4f497e 100644 --- a/keyboards/mechlovin/delphine/rgb_led/config.h +++ b/keyboards/mechlovin/delphine/rgb_led/config.h @@ -31,7 +31,7 @@ // 0b1110110 AD <-> SDA #define DRIVER_ADDR_1 0b1110110 #define DRIVER_COUNT 1 -#define DRIVER_LED_TOTAL 25 +#define RGB_MATRIX_LED_COUNT 25 #define RGB_MATRIX_KEYPRESSES // reacts to keypresses #define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses) #define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects diff --git a/keyboards/mechlovin/delphine/rgb_led/rgb_led.c b/keyboards/mechlovin/delphine/rgb_led/rgb_led.c index 413a9a06ea6..448f7156fda 100644 --- a/keyboards/mechlovin/delphine/rgb_led/rgb_led.c +++ b/keyboards/mechlovin/delphine/rgb_led/rgb_led.c @@ -18,7 +18,7 @@ #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { // left CA {0, C5_2, C6_2, C7_2}, //D2-0 {0, C1_1, C3_2, C4_2}, //D20-1 diff --git a/keyboards/mechlovin/hannah60rgb/rev1/config.h b/keyboards/mechlovin/hannah60rgb/rev1/config.h index 9a84e785886..cea9a5bc06c 100644 --- a/keyboards/mechlovin/hannah60rgb/rev1/config.h +++ b/keyboards/mechlovin/hannah60rgb/rev1/config.h @@ -2,7 +2,7 @@ #define RGB_DI_PIN A15 #ifdef RGB_MATRIX_ENABLE -# define DRIVER_LED_TOTAL 72 +# define RGB_MATRIX_LED_COUNT 72 # define RGB_MATRIX_KEYPRESSES // reacts to keypresses # define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses) # define RGB_MATRIX_FRAMEBUFFER_EFFECTS diff --git a/keyboards/mechlovin/hannah60rgb/rev2/config.h b/keyboards/mechlovin/hannah60rgb/rev2/config.h index 3a25680a209..48caf0b40e6 100644 --- a/keyboards/mechlovin/hannah60rgb/rev2/config.h +++ b/keyboards/mechlovin/hannah60rgb/rev2/config.h @@ -21,7 +21,7 @@ #define DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 44 #define DRIVER_2_LED_TOTAL 34 -#define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) +#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) #define RGB_MATRIX_KEYPRESSES // reacts to keypresses #define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses) #define RGB_MATRIX_FRAMEBUFFER_EFFECTS diff --git a/keyboards/mechlovin/hannah60rgb/rev2/rev2.c b/keyboards/mechlovin/hannah60rgb/rev2/rev2.c index ac371e4185f..bb88a316ea0 100644 --- a/keyboards/mechlovin/hannah60rgb/rev2/rev2.c +++ b/keyboards/mechlovin/hannah60rgb/rev2/rev2.c @@ -17,7 +17,7 @@ #include "rev2.h" #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location diff --git a/keyboards/mechlovin/infinity87/infinity87.h b/keyboards/mechlovin/infinity87/infinity87.h index f56d960e925..b7b00bef408 100644 --- a/keyboards/mechlovin/infinity87/infinity87.h +++ b/keyboards/mechlovin/infinity87/infinity87.h @@ -16,19 +16,3 @@ #pragma once #include "quantum.h" - -#define LAYOUT_all( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0E, K0F, K0G, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K0D, K1E, K1F, K1G, \ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \ - K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \ - K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4F, \ - K50, K51, K52, K56, K5A, K5B, K5C, K5D, K5E, K5F, K5G \ -) { \ - { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G }, \ - { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G }, \ - { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G }, \ - { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, KC_NO, KC_NO, KC_NO }, \ - { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, KC_NO, K4F, KC_NO }, \ - { K50, K51, K52, KC_NO, KC_NO, KC_NO, K56, KC_NO, KC_NO, KC_NO, K5A, K5B, K5C, K5D, K5E, K5F, K5G }, \ -} diff --git a/keyboards/mechlovin/infinity87/rev1/rev1.h b/keyboards/mechlovin/infinity87/rev1/rev1.h index de623a1cdd7..167ed6940ac 100644 --- a/keyboards/mechlovin/infinity87/rev1/rev1.h +++ b/keyboards/mechlovin/infinity87/rev1/rev1.h @@ -17,11 +17,3 @@ #pragma once #include "quantum.h" - -#ifdef KEYBOARD_mechlovin_infinity87_rev1_rogue87 - #include "rogue87.h" -#elif KEYBOARD_mechlovin_infinity87_rev1_rouge87 - #include "rouge87.h" -#elif KEYBOARD_mechlovin_infinity87_rev1_standard - #include "infinity87.h" -#endif diff --git a/keyboards/mechlovin/infinity87/rev1/rogue87/info.json b/keyboards/mechlovin/infinity87/rev1/rogue87/info.json index b9906b410b6..25fa20a9c77 100644 --- a/keyboards/mechlovin/infinity87/rev1/rogue87/info.json +++ b/keyboards/mechlovin/infinity87/rev1/rogue87/info.json @@ -11,92 +11,105 @@ "layouts": { "LAYOUT_all": { "layout": [ - {"label":"K00", "x":0, "y":0}, - {"label":"K01", "x":2, "y":0}, - {"label":"K02", "x":3, "y":0}, - {"label":"K03", "x":4, "y":0}, - {"label":"K04", "x":5, "y":0}, - {"label":"K05", "x":6.5, "y":0}, - {"label":"K06", "x":7.5, "y":0}, - {"label":"K07", "x":8.5, "y":0}, - {"label":"K08", "x":9.5, "y":0}, - {"label":"K09", "x":11, "y":0}, - {"label":"K0A", "x":12, "y":0}, - {"label":"K0B", "x":13, "y":0}, - {"label":"K0C", "x":14, "y":0}, - {"label":"K0E", "x":15.25, "y":0}, - {"label":"K0F", "x":16.25, "y":0}, - {"label":"K0G", "x":17.25, "y":0}, - {"label":"K10", "x":0, "y":1.25}, - {"label":"K11", "x":1, "y":1.25}, - {"label":"K12", "x":2, "y":1.25}, - {"label":"K13", "x":3, "y":1.25}, - {"label":"K14", "x":4, "y":1.25}, - {"label":"K15", "x":5, "y":1.25}, - {"label":"K16", "x":6, "y":1.25}, - {"label":"K17", "x":7, "y":1.25}, - {"label":"K18", "x":8, "y":1.25}, - {"label":"K19", "x":9, "y":1.25}, - {"label":"K1A", "x":10, "y":1.25}, - {"label":"K1B", "x":11, "y":1.25}, - {"label":"K1C", "x":12, "y":1.25}, - {"label":"K1D", "x":13, "y":1.25, "w":2}, - {"label":"K1E", "x":15.25, "y":1.25}, - {"label":"K1F", "x":16.25, "y":1.25}, - {"label":"K1G", "x":17.25, "y":1.25}, - {"label":"K20", "x":0, "y":2.25, "w":1.5}, - {"label":"K21", "x":1.5, "y":2.25}, - {"label":"K22", "x":2.5, "y":2.25}, - {"label":"K23", "x":3.5, "y":2.25}, - {"label":"K24", "x":4.5, "y":2.25}, - {"label":"K25", "x":5.5, "y":2.25}, - {"label":"K26", "x":6.5, "y":2.25}, - {"label":"K27", "x":7.5, "y":2.25}, - {"label":"K28", "x":8.5, "y":2.25}, - {"label":"K29", "x":9.5, "y":2.25}, - {"label":"K2A", "x":10.5, "y":2.25}, - {"label":"K2B", "x":11.5, "y":2.25}, - {"label":"K2C", "x":12.5, "y":2.25}, - {"label":"K2D", "x":13.5, "y":2.25, "w":1.5}, - {"label":"K2E", "x":15.25, "y":2.25}, - {"label":"K2F", "x":16.25, "y":2.25}, - {"label":"K2G", "x":17.25, "y":2.25}, - {"label":"K30", "x":0, "y":3.25, "w":1.75}, - {"label":"K31", "x":1.75, "y":3.25}, - {"label":"K32", "x":2.75, "y":3.25}, - {"label":"K33", "x":3.75, "y":3.25}, - {"label":"K34", "x":4.75, "y":3.25}, - {"label":"K35", "x":5.75, "y":3.25}, - {"label":"K36", "x":6.75, "y":3.25}, - {"label":"K37", "x":7.75, "y":3.25}, - {"label":"K38", "x":8.75, "y":3.25}, - {"label":"K39", "x":9.75, "y":3.25}, - {"label":"K3A", "x":10.75, "y":3.25}, - {"label":"K3B", "x":11.75, "y":3.25}, - {"label":"K3C", "x":12.75, "y":3.25}, - {"label":"K3D", "x":13.75, "y":3.25, "w":1.25}, - {"label":"K40", "x":0, "y":4.25, "w":1.25}, - {"label":"K41", "x":1.25, "y":4.25}, - {"label":"K42", "x":2.25, "y":4.25}, - {"label":"K43", "x":3.25, "y":4.25}, - {"label":"K44", "x":4.25, "y":4.25}, - {"label":"K45", "x":5.25, "y":4.25}, - {"label":"K46", "x":6.25, "y":4.25}, - {"label":"K47", "x":7.25, "y":4.25}, - {"label":"K48", "x":8.25, "y":4.25}, - {"label":"K49", "x":9.25, "y":4.25}, - {"label":"K4A", "x":10.25, "y":4.25}, - {"label":"K4B", "x":11.25, "y":4.25}, - {"label":"K4D", "x":12.25, "y":4.25, "w":2.75}, - {"label":"K4F", "x":16.25, "y":4.25}, - {"label":"K50", "x":0, "y":5.25, "w":1.5}, - {"label":"K52", "x":2.5, "y":5.25, "w":1.5}, - {"label":"K56", "x":4, "y":5.25, "w":7}, - {"label":"K5B", "x":11, "y":5.25, "w":1.5}, - {"label":"K5D", "x":13.5, "y":5.25, "w":1.5}, - {"label":"K5E", "x":15.25, "y":5.25}, - {"label":"K5F", "x":16.25, "y":5.25}, - {"label":"K5G", "x":17.25, "y":5.25} + {"label":"K00", "x":0, "y":0, "matrix": [0, 0]}, + + {"label":"K01", "x":2, "y":0, "matrix": [0, 1]}, + {"label":"K02", "x":3, "y":0, "matrix": [0, 2]}, + {"label":"K03", "x":4, "y":0, "matrix": [0, 3]}, + {"label":"K04", "x":5, "y":0, "matrix": [0, 4]}, + + {"label":"K05", "x":6.5, "y":0, "matrix": [0, 5]}, + {"label":"K06", "x":7.5, "y":0, "matrix": [0, 6]}, + {"label":"K07", "x":8.5, "y":0, "matrix": [0, 7]}, + {"label":"K08", "x":9.5, "y":0, "matrix": [0, 8]}, + + {"label":"K09", "x":11, "y":0, "matrix": [0, 9]}, + {"label":"K0A", "x":12, "y":0, "matrix": [0, 10]}, + {"label":"K0B", "x":13, "y":0, "matrix": [0, 11]}, + {"label":"K0C", "x":14, "y":0, "matrix": [0, 12]}, + + {"label":"K0E", "x":15.25, "y":0, "matrix": [0, 14]}, + {"label":"K0F", "x":16.25, "y":0, "matrix": [0, 15]}, + {"label":"K0G", "x":17.25, "y":0, "matrix": [0, 16]}, + + {"label":"K10", "x":0, "y":1.25, "matrix": [1, 0]}, + {"label":"K11", "x":1, "y":1.25, "matrix": [1, 1]}, + {"label":"K12", "x":2, "y":1.25, "matrix": [1, 2]}, + {"label":"K13", "x":3, "y":1.25, "matrix": [1, 3]}, + {"label":"K14", "x":4, "y":1.25, "matrix": [1, 4]}, + {"label":"K15", "x":5, "y":1.25, "matrix": [1, 5]}, + {"label":"K16", "x":6, "y":1.25, "matrix": [1, 6]}, + {"label":"K17", "x":7, "y":1.25, "matrix": [1, 7]}, + {"label":"K18", "x":8, "y":1.25, "matrix": [1, 8]}, + {"label":"K19", "x":9, "y":1.25, "matrix": [1, 9]}, + {"label":"K1A", "x":10, "y":1.25, "matrix": [1, 10]}, + {"label":"K1B", "x":11, "y":1.25, "matrix": [1, 11]}, + {"label":"K1C", "x":12, "y":1.25, "matrix": [1, 12]}, + {"label":"K1D", "x":13, "y":1.25, "w":2, "matrix": [1, 13]}, + + {"label":"K1E", "x":15.25, "y":1.25, "matrix": [1, 14]}, + {"label":"K1F", "x":16.25, "y":1.25, "matrix": [1, 15]}, + {"label":"K1G", "x":17.25, "y":1.25, "matrix": [1, 16]}, + + {"label":"K20", "x":0, "y":2.25, "w":1.5, "matrix": [2, 0]}, + {"label":"K21", "x":1.5, "y":2.25, "matrix": [2, 1]}, + {"label":"K22", "x":2.5, "y":2.25, "matrix": [2, 2]}, + {"label":"K23", "x":3.5, "y":2.25, "matrix": [2, 3]}, + {"label":"K24", "x":4.5, "y":2.25, "matrix": [2, 4]}, + {"label":"K25", "x":5.5, "y":2.25, "matrix": [2, 5]}, + {"label":"K26", "x":6.5, "y":2.25, "matrix": [2, 6]}, + {"label":"K27", "x":7.5, "y":2.25, "matrix": [2, 7]}, + {"label":"K28", "x":8.5, "y":2.25, "matrix": [2, 8]}, + {"label":"K29", "x":9.5, "y":2.25, "matrix": [2, 9]}, + {"label":"K2A", "x":10.5, "y":2.25, "matrix": [2, 10]}, + {"label":"K2B", "x":11.5, "y":2.25, "matrix": [2, 11]}, + {"label":"K2C", "x":12.5, "y":2.25, "matrix": [2, 12]}, + {"label":"K2D", "x":13.5, "y":2.25, "w":1.5, "matrix": [2, 13]}, + + {"label":"K2E", "x":15.25, "y":2.25, "matrix": [2, 14]}, + {"label":"K2F", "x":16.25, "y":2.25, "matrix": [2, 15]}, + {"label":"K2G", "x":17.25, "y":2.25, "matrix": [2, 16]}, + + {"label":"K30", "x":0, "y":3.25, "w":1.75, "matrix": [3, 0]}, + {"label":"K31", "x":1.75, "y":3.25, "matrix": [3, 1]}, + {"label":"K32", "x":2.75, "y":3.25, "matrix": [3, 2]}, + {"label":"K33", "x":3.75, "y":3.25, "matrix": [3, 3]}, + {"label":"K34", "x":4.75, "y":3.25, "matrix": [3, 4]}, + {"label":"K35", "x":5.75, "y":3.25, "matrix": [3, 5]}, + {"label":"K36", "x":6.75, "y":3.25, "matrix": [3, 6]}, + {"label":"K37", "x":7.75, "y":3.25, "matrix": [3, 7]}, + {"label":"K38", "x":8.75, "y":3.25, "matrix": [3, 8]}, + {"label":"K39", "x":9.75, "y":3.25, "matrix": [3, 9]}, + {"label":"K3A", "x":10.75, "y":3.25, "matrix": [3, 10]}, + {"label":"K3B", "x":11.75, "y":3.25, "matrix": [3, 11]}, + {"label":"K3C", "x":12.75, "y":3.25, "matrix": [3, 12]}, + {"label":"K3D", "x":13.75, "y":3.25, "w":1.25, "matrix": [3, 13]}, + + {"label":"K40", "x":0, "y":4.25, "w":1.25, "matrix": [4, 0]}, + {"label":"K41", "x":1.25, "y":4.25, "matrix": [4, 1]}, + {"label":"K42", "x":2.25, "y":4.25, "matrix": [4, 2]}, + {"label":"K43", "x":3.25, "y":4.25, "matrix": [4, 3]}, + {"label":"K44", "x":4.25, "y":4.25, "matrix": [4, 4]}, + {"label":"K45", "x":5.25, "y":4.25, "matrix": [4, 5]}, + {"label":"K46", "x":6.25, "y":4.25, "matrix": [4, 6]}, + {"label":"K47", "x":7.25, "y":4.25, "matrix": [4, 7]}, + {"label":"K48", "x":8.25, "y":4.25, "matrix": [4, 8]}, + {"label":"K49", "x":9.25, "y":4.25, "matrix": [4, 9]}, + {"label":"K4A", "x":10.25, "y":4.25, "matrix": [4, 10]}, + {"label":"K4B", "x":11.25, "y":4.25, "matrix": [4, 11]}, + {"label":"K4D", "x":12.25, "y":4.25, "w":2.75, "matrix": [4, 13]}, + + {"label":"K4F", "x":16.25, "y":4.25, "matrix": [4, 15]}, + + {"label":"K50", "x":0, "y":5.25, "w":1.5, "matrix": [5, 0]}, + {"label":"K52", "x":2.5, "y":5.25, "w":1.5, "matrix": [5, 2]}, + {"label":"K56", "x":4, "y":5.25, "w":7, "matrix": [5, 6]}, + {"label":"K5B", "x":11, "y":5.25, "w":1.5, "matrix": [5, 11]}, + {"label":"K5D", "x":13.5, "y":5.25, "w":1.5, "matrix": [5, 13]}, + + {"label":"K5E", "x":15.25, "y":5.25, "matrix": [5, 14]}, + {"label":"K5F", "x":16.25, "y":5.25, "matrix": [5, 15]}, + {"label":"K5G", "x":17.25, "y":5.25, "matrix": [5, 16]} ] } } diff --git a/keyboards/mechlovin/infinity87/rev1/rogue87/rogue87.h b/keyboards/mechlovin/infinity87/rev1/rogue87/rogue87.h deleted file mode 100644 index 70a50b96201..00000000000 --- a/keyboards/mechlovin/infinity87/rev1/rogue87/rogue87.h +++ /dev/null @@ -1,34 +0,0 @@ -/* Copyright 2020 Team Mechlovin' - * - * 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 "quantum.h" - -#define LAYOUT_all( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0E, K0F, K0G, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, \ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \ - K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \ - K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4D, K4F, \ - K50, K52, K56, K5B, K5D, K5E, K5F, K5G \ -) { \ - { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, KC_NO, K0E, K0F, K0G }, \ - { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G }, \ - { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G }, \ - { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, KC_NO, KC_NO, KC_NO}, \ - { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, KC_NO, K4D, KC_NO, K4F, KC_NO}, \ - { K50, KC_NO, K52, KC_NO, KC_NO, KC_NO, K56, KC_NO, KC_NO, KC_NO, KC_NO, K5B, KC_NO, K5D, K5E, K5F, K5G }, \ -} diff --git a/keyboards/mechlovin/infinity87/rev1/rouge87/info.json b/keyboards/mechlovin/infinity87/rev1/rouge87/info.json index 2957247ad42..983d20fdbfc 100644 --- a/keyboards/mechlovin/infinity87/rev1/rouge87/info.json +++ b/keyboards/mechlovin/infinity87/rev1/rouge87/info.json @@ -11,94 +11,107 @@ "layouts": { "LAYOUT_all": { "layout": [ - {"label":"K00", "x":0, "y":0}, - {"label":"K01", "x":2, "y":0}, - {"label":"K02", "x":3, "y":0}, - {"label":"K03", "x":4, "y":0}, - {"label":"K04", "x":5, "y":0}, - {"label":"K05", "x":6.5, "y":0}, - {"label":"K06", "x":7.5, "y":0}, - {"label":"K07", "x":8.5, "y":0}, - {"label":"K08", "x":9.5, "y":0}, - {"label":"K09", "x":11, "y":0}, - {"label":"K0A", "x":12, "y":0}, - {"label":"K0B", "x":13, "y":0}, - {"label":"K0C", "x":14, "y":0}, - {"label":"K0E", "x":15.25, "y":0}, - {"label":"K0F", "x":16.25, "y":0}, - {"label":"K0G", "x":17.25, "y":0}, - {"label":"K10", "x":0, "y":1.25}, - {"label":"K11", "x":1, "y":1.25}, - {"label":"K12", "x":2, "y":1.25}, - {"label":"K13", "x":3, "y":1.25}, - {"label":"K14", "x":4, "y":1.25}, - {"label":"K15", "x":5, "y":1.25}, - {"label":"K16", "x":6, "y":1.25}, - {"label":"K17", "x":7, "y":1.25}, - {"label":"K18", "x":8, "y":1.25}, - {"label":"K19", "x":9, "y":1.25}, - {"label":"K1A", "x":10, "y":1.25}, - {"label":"K1B", "x":11, "y":1.25}, - {"label":"K1C", "x":12, "y":1.25}, - {"label":"K1D", "x":13, "y":1.25, "w":2}, - {"label":"K1E", "x":15.25, "y":1.25}, - {"label":"K1F", "x":16.25, "y":1.25}, - {"label":"K1G", "x":17.25, "y":1.25}, - {"label":"K20", "x":0, "y":2.25, "w":1.5}, - {"label":"K21", "x":1.5, "y":2.25}, - {"label":"K22", "x":2.5, "y":2.25}, - {"label":"K23", "x":3.5, "y":2.25}, - {"label":"K24", "x":4.5, "y":2.25}, - {"label":"K25", "x":5.5, "y":2.25}, - {"label":"K26", "x":6.5, "y":2.25}, - {"label":"K27", "x":7.5, "y":2.25}, - {"label":"K28", "x":8.5, "y":2.25}, - {"label":"K29", "x":9.5, "y":2.25}, - {"label":"K2A", "x":10.5, "y":2.25}, - {"label":"K2B", "x":11.5, "y":2.25}, - {"label":"K2C", "x":12.5, "y":2.25}, - {"label":"K2D", "x":13.5, "y":2.25, "w":1.5}, - {"label":"K2E", "x":15.25, "y":2.25}, - {"label":"K2F", "x":16.25, "y":2.25}, - {"label":"K2G", "x":17.25, "y":2.25}, - {"label":"K30", "x":0, "y":3.25, "w":1.75}, - {"label":"K31", "x":1.75, "y":3.25}, - {"label":"K32", "x":2.75, "y":3.25}, - {"label":"K33", "x":3.75, "y":3.25}, - {"label":"K34", "x":4.75, "y":3.25}, - {"label":"K35", "x":5.75, "y":3.25}, - {"label":"K36", "x":6.75, "y":3.25}, - {"label":"K37", "x":7.75, "y":3.25}, - {"label":"K38", "x":8.75, "y":3.25}, - {"label":"K39", "x":9.75, "y":3.25}, - {"label":"K3A", "x":10.75, "y":3.25}, - {"label":"K3B", "x":11.75, "y":3.25}, - {"label":"K3C", "x":12.75, "y":3.25}, - {"label":"K3D", "x":13.75, "y":3.25, "w":1.25}, - {"label":"K40", "x":0, "y":4.25, "w":1.25}, - {"label":"K41", "x":1.25, "y":4.25}, - {"label":"K42", "x":2.25, "y":4.25}, - {"label":"K43", "x":3.25, "y":4.25}, - {"label":"K44", "x":4.25, "y":4.25}, - {"label":"K45", "x":5.25, "y":4.25}, - {"label":"K46", "x":6.25, "y":4.25}, - {"label":"K47", "x":7.25, "y":4.25}, - {"label":"K48", "x":8.25, "y":4.25}, - {"label":"K49", "x":9.25, "y":4.25}, - {"label":"K4A", "x":10.25, "y":4.25}, - {"label":"K4B", "x":11.25, "y":4.25}, - {"label":"K4D", "x":12.25, "y":4.25, "w":2.75}, - {"label":"K4F", "x":16.25, "y":4.25}, - {"label":"K50", "x":0, "y":5.25, "w":1.5}, - {"label":"K51", "x":1.5, "y":5.25}, - {"label":"K52", "x":2.5, "y":5.25, "w":1.5}, - {"label":"K56", "x":4, "y":5.25, "w":7}, - {"label":"K5B", "x":11, "y":5.25, "w":1.5}, - {"label":"K5C", "x":12.5, "y":5.25}, - {"label":"K5D", "x":13.5, "y":5.25, "w":1.5}, - {"label":"K5E", "x":15.25, "y":5.25}, - {"label":"K5F", "x":16.25, "y":5.25}, - {"label":"K5G", "x":17.25, "y":5.25} + {"label":"K00", "x":0, "y":0, "matrix": [0, 0]}, + + {"label":"K01", "x":2, "y":0, "matrix": [0, 1]}, + {"label":"K02", "x":3, "y":0, "matrix": [0, 2]}, + {"label":"K03", "x":4, "y":0, "matrix": [0, 3]}, + {"label":"K04", "x":5, "y":0, "matrix": [0, 4]}, + + {"label":"K05", "x":6.5, "y":0, "matrix": [0, 5]}, + {"label":"K06", "x":7.5, "y":0, "matrix": [0, 6]}, + {"label":"K07", "x":8.5, "y":0, "matrix": [0, 7]}, + {"label":"K08", "x":9.5, "y":0, "matrix": [0, 8]}, + + {"label":"K09", "x":11, "y":0, "matrix": [0, 9]}, + {"label":"K0A", "x":12, "y":0, "matrix": [0, 10]}, + {"label":"K0B", "x":13, "y":0, "matrix": [0, 11]}, + {"label":"K0C", "x":14, "y":0, "matrix": [0, 12]}, + + {"label":"K0E", "x":15.25, "y":0, "matrix": [0, 14]}, + {"label":"K0F", "x":16.25, "y":0, "matrix": [0, 15]}, + {"label":"K0G", "x":17.25, "y":0, "matrix": [0, 16]}, + + {"label":"K10", "x":0, "y":1.25, "matrix": [1, 0]}, + {"label":"K11", "x":1, "y":1.25, "matrix": [1, 1]}, + {"label":"K12", "x":2, "y":1.25, "matrix": [1, 2]}, + {"label":"K13", "x":3, "y":1.25, "matrix": [1, 3]}, + {"label":"K14", "x":4, "y":1.25, "matrix": [1, 4]}, + {"label":"K15", "x":5, "y":1.25, "matrix": [1, 5]}, + {"label":"K16", "x":6, "y":1.25, "matrix": [1, 6]}, + {"label":"K17", "x":7, "y":1.25, "matrix": [1, 7]}, + {"label":"K18", "x":8, "y":1.25, "matrix": [1, 8]}, + {"label":"K19", "x":9, "y":1.25, "matrix": [1, 9]}, + {"label":"K1A", "x":10, "y":1.25, "matrix": [1, 10]}, + {"label":"K1B", "x":11, "y":1.25, "matrix": [1, 11]}, + {"label":"K1C", "x":12, "y":1.25, "matrix": [1, 12]}, + {"label":"K1D", "x":13, "y":1.25, "w":2, "matrix": [1, 13]}, + + {"label":"K1E", "x":15.25, "y":1.25, "matrix": [1, 14]}, + {"label":"K1F", "x":16.25, "y":1.25, "matrix": [1, 15]}, + {"label":"K1G", "x":17.25, "y":1.25, "matrix": [1, 16]}, + + {"label":"K20", "x":0, "y":2.25, "w":1.5, "matrix": [2, 0]}, + {"label":"K21", "x":1.5, "y":2.25, "matrix": [2, 1]}, + {"label":"K22", "x":2.5, "y":2.25, "matrix": [2, 2]}, + {"label":"K23", "x":3.5, "y":2.25, "matrix": [2, 3]}, + {"label":"K24", "x":4.5, "y":2.25, "matrix": [2, 4]}, + {"label":"K25", "x":5.5, "y":2.25, "matrix": [2, 5]}, + {"label":"K26", "x":6.5, "y":2.25, "matrix": [2, 6]}, + {"label":"K27", "x":7.5, "y":2.25, "matrix": [2, 7]}, + {"label":"K28", "x":8.5, "y":2.25, "matrix": [2, 8]}, + {"label":"K29", "x":9.5, "y":2.25, "matrix": [2, 9]}, + {"label":"K2A", "x":10.5, "y":2.25, "matrix": [2, 10]}, + {"label":"K2B", "x":11.5, "y":2.25, "matrix": [2, 11]}, + {"label":"K2C", "x":12.5, "y":2.25, "matrix": [2, 12]}, + {"label":"K2D", "x":13.5, "y":2.25, "w":1.5, "matrix": [2, 13]}, + + {"label":"K2E", "x":15.25, "y":2.25, "matrix": [2, 14]}, + {"label":"K2F", "x":16.25, "y":2.25, "matrix": [2, 15]}, + {"label":"K2G", "x":17.25, "y":2.25, "matrix": [2, 16]}, + + {"label":"K30", "x":0, "y":3.25, "w":1.75, "matrix": [3, 0]}, + {"label":"K31", "x":1.75, "y":3.25, "matrix": [3, 1]}, + {"label":"K32", "x":2.75, "y":3.25, "matrix": [3, 2]}, + {"label":"K33", "x":3.75, "y":3.25, "matrix": [3, 3]}, + {"label":"K34", "x":4.75, "y":3.25, "matrix": [3, 4]}, + {"label":"K35", "x":5.75, "y":3.25, "matrix": [3, 5]}, + {"label":"K36", "x":6.75, "y":3.25, "matrix": [3, 6]}, + {"label":"K37", "x":7.75, "y":3.25, "matrix": [3, 7]}, + {"label":"K38", "x":8.75, "y":3.25, "matrix": [3, 8]}, + {"label":"K39", "x":9.75, "y":3.25, "matrix": [3, 9]}, + {"label":"K3A", "x":10.75, "y":3.25, "matrix": [3, 10]}, + {"label":"K3B", "x":11.75, "y":3.25, "matrix": [3, 11]}, + {"label":"K3C", "x":12.75, "y":3.25, "matrix": [3, 12]}, + {"label":"K3D", "x":13.75, "y":3.25, "w":1.25, "matrix": [3, 13]}, + + {"label":"K40", "x":0, "y":4.25, "w":1.25, "matrix": [4, 0]}, + {"label":"K41", "x":1.25, "y":4.25, "matrix": [4, 1]}, + {"label":"K42", "x":2.25, "y":4.25, "matrix": [4, 2]}, + {"label":"K43", "x":3.25, "y":4.25, "matrix": [4, 3]}, + {"label":"K44", "x":4.25, "y":4.25, "matrix": [4, 4]}, + {"label":"K45", "x":5.25, "y":4.25, "matrix": [4, 5]}, + {"label":"K46", "x":6.25, "y":4.25, "matrix": [4, 6]}, + {"label":"K47", "x":7.25, "y":4.25, "matrix": [4, 7]}, + {"label":"K48", "x":8.25, "y":4.25, "matrix": [4, 8]}, + {"label":"K49", "x":9.25, "y":4.25, "matrix": [4, 9]}, + {"label":"K4A", "x":10.25, "y":4.25, "matrix": [4, 10]}, + {"label":"K4B", "x":11.25, "y":4.25, "matrix": [4, 11]}, + {"label":"K4D", "x":12.25, "y":4.25, "w":2.75, "matrix": [4, 13]}, + + {"label":"K4F", "x":16.25, "y":4.25, "matrix": [4, 15]}, + + {"label":"K50", "x":0, "y":5.25, "w":1.5, "matrix": [5, 0]}, + {"label":"K51", "x":1.5, "y":5.25, "matrix": [5, 1]}, + {"label":"K52", "x":2.5, "y":5.25, "w":1.5, "matrix": [5, 2]}, + {"label":"K56", "x":4, "y":5.25, "w":7, "matrix": [5, 6]}, + {"label":"K5B", "x":11, "y":5.25, "w":1.5, "matrix": [5, 11]}, + {"label":"K5C", "x":12.5, "y":5.25, "matrix": [5, 12]}, + {"label":"K5D", "x":13.5, "y":5.25, "w":1.5, "matrix": [5, 13]}, + + {"label":"K5E", "x":15.25, "y":5.25, "matrix": [5, 14]}, + {"label":"K5F", "x":16.25, "y":5.25, "matrix": [5, 15]}, + {"label":"K5G", "x":17.25, "y":5.25, "matrix": [5, 16]} ] } } diff --git a/keyboards/mechlovin/infinity87/rev1/rouge87/rouge87.h b/keyboards/mechlovin/infinity87/rev1/rouge87/rouge87.h deleted file mode 100644 index 67dcefde26a..00000000000 --- a/keyboards/mechlovin/infinity87/rev1/rouge87/rouge87.h +++ /dev/null @@ -1,35 +0,0 @@ -/* Copyright 2020 Team Mechlovin' - * - * 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 "quantum.h" - -#define LAYOUT_all( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0E, K0F, K0G, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, \ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \ - K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \ - K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4D, K4F, \ - K50, K51, K52, K56, K5B, K5C, K5D, K5E, K5F, K5G \ -) { \ - { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, KC_NO, K0E, K0F, K0G }, \ - { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G }, \ - { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G }, \ - { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, KC_NO, KC_NO, KC_NO}, \ - { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, KC_NO, K4D, KC_NO, K4F, KC_NO}, \ - { K50, K51, K52, KC_NO, KC_NO, KC_NO, K56, KC_NO, KC_NO, KC_NO, KC_NO, K5B, K5C, K5D, K5E, K5F, K5G }, \ -} - diff --git a/keyboards/mechlovin/infinity87/rev1/standard/info.json b/keyboards/mechlovin/infinity87/rev1/standard/info.json index e19d4dbe7d9..29597cce3f0 100644 --- a/keyboards/mechlovin/infinity87/rev1/standard/info.json +++ b/keyboards/mechlovin/infinity87/rev1/standard/info.json @@ -11,97 +11,110 @@ "layouts": { "LAYOUT_all": { "layout": [ - {"label":"K00 (B0,B6)", "x":0, "y":0}, - {"label":"K01 (B0,F4)", "x":2, "y":0}, - {"label":"K02 (B0,C0)", "x":3, "y":0}, - {"label":"K03 (B0,C1)", "x":4, "y":0}, - {"label":"K04 (B0,C2)", "x":5, "y":0}, - {"label":"K05 (B0,C3)", "x":6.5, "y":0}, - {"label":"K06 (B0,C4)", "x":7.5, "y":0}, - {"label":"K07 (B0,C5)", "x":8.5, "y":0}, - {"label":"K08 (B0,C6)", "x":9.5, "y":0}, - {"label":"K09 (B0,C7)", "x":11, "y":0}, - {"label":"K0A (B0,D0)", "x":12, "y":0}, - {"label":"K0B (B0,D1)", "x":13, "y":0}, - {"label":"K0C (B0,D2)", "x":14, "y":0}, - {"label":"K0E (B0,D4)", "x":15.25, "y":0}, - {"label":"K0F (B0,D5)", "x":16.25, "y":0}, - {"label":"K0G (B0,D6)", "x":17.25, "y":0}, - {"label":"K10 (B1,B6)", "x":0, "y":1.25}, - {"label":"K11 (B1,F4)", "x":1, "y":1.25}, - {"label":"K12 (B1,C0)", "x":2, "y":1.25}, - {"label":"K13 (B1,C1)", "x":3, "y":1.25}, - {"label":"K14 (B1,C2)", "x":4, "y":1.25}, - {"label":"K15 (B1,C3)", "x":5, "y":1.25}, - {"label":"K16 (B1,C4)", "x":6, "y":1.25}, - {"label":"K17 (B1,C5)", "x":7, "y":1.25}, - {"label":"K18 (B1,C6)", "x":8, "y":1.25}, - {"label":"K19 (B1,C7)", "x":9, "y":1.25}, - {"label":"K1A (B1,D0)", "x":10, "y":1.25}, - {"label":"K1B (B1,D1)", "x":11, "y":1.25}, - {"label":"K1C (B1,D2)", "x":12, "y":1.25}, - {"label":"K1D (B1,D3)", "x":13, "y":1.25}, - {"label":"K0D (B0,D3)", "x":14, "y":1.25}, - {"label":"K1E (B1,D4)", "x":15.25, "y":1.25}, - {"label":"K1F (B1,D5)", "x":16.25, "y":1.25}, - {"label":"K1G (B1,D6)", "x":17.25, "y":1.25}, - {"label":"K20 (B2,B6)", "x":0, "y":2.25, "w":1.5}, - {"label":"K21 (B2,F4)", "x":1.5, "y":2.25}, - {"label":"K22 (B2,C0)", "x":2.5, "y":2.25}, - {"label":"K23 (B2,C1)", "x":3.5, "y":2.25}, - {"label":"K24 (B2,C2)", "x":4.5, "y":2.25}, - {"label":"K25 (B2,C3)", "x":5.5, "y":2.25}, - {"label":"K26 (B2,C4)", "x":6.5, "y":2.25}, - {"label":"K27 (B2,C5)", "x":7.5, "y":2.25}, - {"label":"K28 (B2,C6)", "x":8.5, "y":2.25}, - {"label":"K29 (B2,C7)", "x":9.5, "y":2.25}, - {"label":"K2A (B2,D0)", "x":10.5, "y":2.25}, - {"label":"K2B (B2,D1)", "x":11.5, "y":2.25}, - {"label":"K2C (B2,D2)", "x":12.5, "y":2.25}, - {"label":"K2D (B2,D3)", "x":13.5, "y":2.25, "w":1.5}, - {"label":"K2E (B2,D4)", "x":15.25, "y":2.25}, - {"label":"K2F (B2,D5)", "x":16.25, "y":2.25}, - {"label":"K2G (B2,D6)", "x":17.25, "y":2.25}, - {"label":"K30 (B3,B6)", "x":0, "y":3.25, "w":1.75}, - {"label":"K31 (B3,F4)", "x":1.75, "y":3.25}, - {"label":"K32 (B3,C0)", "x":2.75, "y":3.25}, - {"label":"K33 (B3,C1)", "x":3.75, "y":3.25}, - {"label":"K34 (B3,C2)", "x":4.75, "y":3.25}, - {"label":"K35 (B3,C3)", "x":5.75, "y":3.25}, - {"label":"K36 (B3,C4)", "x":6.75, "y":3.25}, - {"label":"K37 (B3,C5)", "x":7.75, "y":3.25}, - {"label":"K38 (B3,C6)", "x":8.75, "y":3.25}, - {"label":"K39 (B3,C7)", "x":9.75, "y":3.25}, - {"label":"K3A (B3,D0)", "x":10.75, "y":3.25}, - {"label":"K3B (B3,D1)", "x":11.75, "y":3.25}, - {"label":"K3C (B3,D2)", "x":12.75, "y":3.25}, - {"label":"K3D (B3,D3)", "x":13.75, "y":3.25, "w":1.25}, - {"label":"K40 (B4,B6)", "x":0, "y":4.25, "w":1.25}, - {"label":"K41 (B4,F4)", "x":1.25, "y":4.25}, - {"label":"K42 (B4,C0)", "x":2.25, "y":4.25}, - {"label":"K43 (B4,C1)", "x":3.25, "y":4.25}, - {"label":"K44 (B4,C2)", "x":4.25, "y":4.25}, - {"label":"K45 (B4,C3)", "x":5.25, "y":4.25}, - {"label":"K46 (B4,C4)", "x":6.25, "y":4.25}, - {"label":"K47 (B4,C5)", "x":7.25, "y":4.25}, - {"label":"K48 (B4,C6)", "x":8.25, "y":4.25}, - {"label":"K49 (B4,C7)", "x":9.25, "y":4.25}, - {"label":"K4A (B4,D0)", "x":10.25, "y":4.25}, - {"label":"K4B (B4,D1)", "x":11.25, "y":4.25}, - {"label":"K4C (B4,D2)", "x":12.25, "y":4.25, "w":1.75}, - {"label":"K4D (B4,D3)", "x":14, "y":4.25}, - {"label":"K4F (B4,D5)", "x":16.25, "y":4.25}, - {"label":"K50 (B5,B6)", "x":0, "y":5.25, "w":1.25}, - {"label":"K51 (B5,F4)", "x":1.25, "y":5.25, "w":1.25}, - {"label":"K52 (B5,C0)", "x":2.5, "y":5.25, "w":1.25}, - {"label":"K56 (B5,C4)", "x":3.75, "y":5.25, "w":6.25}, - {"label":"K5A (B5,D0)", "x":10, "y":5.25, "w":1.25}, - {"label":"K5B (B5,D1)", "x":11.25, "y":5.25, "w":1.25}, - {"label":"K5C (B5,D2)", "x":12.5, "y":5.25, "w":1.25}, - {"label":"K5D (B5,D3)", "x":13.75, "y":5.25, "w":1.25}, - {"label":"K5E (B5,D4)", "x":15.25, "y":5.25}, - {"label":"K5F (B5,D5)", "x":16.25, "y":5.25}, - {"label":"K5G (B5,D6)", "x":17.25, "y":5.25} + {"label":"K00 (B0,B6)", "x":0, "y":0, "matrix": [0, 0]}, + + {"label":"K01 (B0,F4)", "x":2, "y":0, "matrix": [0, 1]}, + {"label":"K02 (B0,C0)", "x":3, "y":0, "matrix": [0, 2]}, + {"label":"K03 (B0,C1)", "x":4, "y":0, "matrix": [0, 3]}, + {"label":"K04 (B0,C2)", "x":5, "y":0, "matrix": [0, 4]}, + + {"label":"K05 (B0,C3)", "x":6.5, "y":0, "matrix": [0, 5]}, + {"label":"K06 (B0,C4)", "x":7.5, "y":0, "matrix": [0, 6]}, + {"label":"K07 (B0,C5)", "x":8.5, "y":0, "matrix": [0, 7]}, + {"label":"K08 (B0,C6)", "x":9.5, "y":0, "matrix": [0, 8]}, + + {"label":"K09 (B0,C7)", "x":11, "y":0, "matrix": [0, 9]}, + {"label":"K0A (B0,D0)", "x":12, "y":0, "matrix": [0, 10]}, + {"label":"K0B (B0,D1)", "x":13, "y":0, "matrix": [0, 11]}, + {"label":"K0C (B0,D2)", "x":14, "y":0, "matrix": [0, 12]}, + + {"label":"K0E (B0,D4)", "x":15.25, "y":0, "matrix": [0, 14]}, + {"label":"K0F (B0,D5)", "x":16.25, "y":0, "matrix": [0, 15]}, + {"label":"K0G (B0,D6)", "x":17.25, "y":0, "matrix": [0, 16]}, + + {"label":"K10 (B1,B6)", "x":0, "y":1.25, "matrix": [1, 0]}, + {"label":"K11 (B1,F4)", "x":1, "y":1.25, "matrix": [1, 1]}, + {"label":"K12 (B1,C0)", "x":2, "y":1.25, "matrix": [1, 2]}, + {"label":"K13 (B1,C1)", "x":3, "y":1.25, "matrix": [1, 3]}, + {"label":"K14 (B1,C2)", "x":4, "y":1.25, "matrix": [1, 4]}, + {"label":"K15 (B1,C3)", "x":5, "y":1.25, "matrix": [1, 5]}, + {"label":"K16 (B1,C4)", "x":6, "y":1.25, "matrix": [1, 6]}, + {"label":"K17 (B1,C5)", "x":7, "y":1.25, "matrix": [1, 7]}, + {"label":"K18 (B1,C6)", "x":8, "y":1.25, "matrix": [1, 8]}, + {"label":"K19 (B1,C7)", "x":9, "y":1.25, "matrix": [1, 9]}, + {"label":"K1A (B1,D0)", "x":10, "y":1.25, "matrix": [1, 10]}, + {"label":"K1B (B1,D1)", "x":11, "y":1.25, "matrix": [1, 11]}, + {"label":"K1C (B1,D2)", "x":12, "y":1.25, "matrix": [1, 12]}, + {"label":"K1D (B1,D3)", "x":13, "y":1.25, "matrix": [1, 13]}, + {"label":"K0D (B0,D3)", "x":14, "y":1.25, "matrix": [0, 13]}, + + {"label":"K1E (B1,D4)", "x":15.25, "y":1.25, "matrix": [1, 14]}, + {"label":"K1F (B1,D5)", "x":16.25, "y":1.25, "matrix": [1, 15]}, + {"label":"K1G (B1,D6)", "x":17.25, "y":1.25, "matrix": [1, 16]}, + + {"label":"K20 (B2,B6)", "x":0, "y":2.25, "w":1.5, "matrix": [2, 0]}, + {"label":"K21 (B2,F4)", "x":1.5, "y":2.25, "matrix": [2, 1]}, + {"label":"K22 (B2,C0)", "x":2.5, "y":2.25, "matrix": [2, 2]}, + {"label":"K23 (B2,C1)", "x":3.5, "y":2.25, "matrix": [2, 3]}, + {"label":"K24 (B2,C2)", "x":4.5, "y":2.25, "matrix": [2, 4]}, + {"label":"K25 (B2,C3)", "x":5.5, "y":2.25, "matrix": [2, 5]}, + {"label":"K26 (B2,C4)", "x":6.5, "y":2.25, "matrix": [2, 6]}, + {"label":"K27 (B2,C5)", "x":7.5, "y":2.25, "matrix": [2, 7]}, + {"label":"K28 (B2,C6)", "x":8.5, "y":2.25, "matrix": [2, 8]}, + {"label":"K29 (B2,C7)", "x":9.5, "y":2.25, "matrix": [2, 9]}, + {"label":"K2A (B2,D0)", "x":10.5, "y":2.25, "matrix": [2, 10]}, + {"label":"K2B (B2,D1)", "x":11.5, "y":2.25, "matrix": [2, 11]}, + {"label":"K2C (B2,D2)", "x":12.5, "y":2.25, "matrix": [2, 12]}, + {"label":"K2D (B2,D3)", "x":13.5, "y":2.25, "w":1.5, "matrix": [2, 13]}, + + {"label":"K2E (B2,D4)", "x":15.25, "y":2.25, "matrix": [2, 14]}, + {"label":"K2F (B2,D5)", "x":16.25, "y":2.25, "matrix": [2, 15]}, + {"label":"K2G (B2,D6)", "x":17.25, "y":2.25, "matrix": [2, 16]}, + + {"label":"K30 (B3,B6)", "x":0, "y":3.25, "w":1.75, "matrix": [3, 0]}, + {"label":"K31 (B3,F4)", "x":1.75, "y":3.25, "matrix": [3, 1]}, + {"label":"K32 (B3,C0)", "x":2.75, "y":3.25, "matrix": [3, 2]}, + {"label":"K33 (B3,C1)", "x":3.75, "y":3.25, "matrix": [3, 3]}, + {"label":"K34 (B3,C2)", "x":4.75, "y":3.25, "matrix": [3, 4]}, + {"label":"K35 (B3,C3)", "x":5.75, "y":3.25, "matrix": [3, 5]}, + {"label":"K36 (B3,C4)", "x":6.75, "y":3.25, "matrix": [3, 6]}, + {"label":"K37 (B3,C5)", "x":7.75, "y":3.25, "matrix": [3, 7]}, + {"label":"K38 (B3,C6)", "x":8.75, "y":3.25, "matrix": [3, 8]}, + {"label":"K39 (B3,C7)", "x":9.75, "y":3.25, "matrix": [3, 9]}, + {"label":"K3A (B3,D0)", "x":10.75, "y":3.25, "matrix": [3, 10]}, + {"label":"K3B (B3,D1)", "x":11.75, "y":3.25, "matrix": [3, 11]}, + {"label":"K3C (B3,D2)", "x":12.75, "y":3.25, "matrix": [3, 12]}, + {"label":"K3D (B3,D3)", "x":13.75, "y":3.25, "w":1.25, "matrix": [3, 13]}, + + {"label":"K40 (B4,B6)", "x":0, "y":4.25, "w":1.25, "matrix": [4, 0]}, + {"label":"K41 (B4,F4)", "x":1.25, "y":4.25, "matrix": [4, 1]}, + {"label":"K42 (B4,C0)", "x":2.25, "y":4.25, "matrix": [4, 2]}, + {"label":"K43 (B4,C1)", "x":3.25, "y":4.25, "matrix": [4, 3]}, + {"label":"K44 (B4,C2)", "x":4.25, "y":4.25, "matrix": [4, 4]}, + {"label":"K45 (B4,C3)", "x":5.25, "y":4.25, "matrix": [4, 5]}, + {"label":"K46 (B4,C4)", "x":6.25, "y":4.25, "matrix": [4, 6]}, + {"label":"K47 (B4,C5)", "x":7.25, "y":4.25, "matrix": [4, 7]}, + {"label":"K48 (B4,C6)", "x":8.25, "y":4.25, "matrix": [4, 8]}, + {"label":"K49 (B4,C7)", "x":9.25, "y":4.25, "matrix": [4, 9]}, + {"label":"K4A (B4,D0)", "x":10.25, "y":4.25, "matrix": [4, 10]}, + {"label":"K4B (B4,D1)", "x":11.25, "y":4.25, "matrix": [4, 11]}, + {"label":"K4C (B4,D2)", "x":12.25, "y":4.25, "w":1.75, "matrix": [4, 12]}, + {"label":"K4D (B4,D3)", "x":14, "y":4.25, "matrix": [4, 13]}, + + {"label":"K4F (B4,D5)", "x":16.25, "y":4.25, "matrix": [4, 15]}, + + {"label":"K50 (B5,B6)", "x":0, "y":5.25, "w":1.25, "matrix": [5, 0]}, + {"label":"K51 (B5,F4)", "x":1.25, "y":5.25, "w":1.25, "matrix": [5, 1]}, + {"label":"K52 (B5,C0)", "x":2.5, "y":5.25, "w":1.25, "matrix": [5, 2]}, + {"label":"K56 (B5,C4)", "x":3.75, "y":5.25, "w":6.25, "matrix": [5, 6]}, + {"label":"K5A (B5,D0)", "x":10, "y":5.25, "w":1.25, "matrix": [5, 10]}, + {"label":"K5B (B5,D1)", "x":11.25, "y":5.25, "w":1.25, "matrix": [5, 11]}, + {"label":"K5C (B5,D2)", "x":12.5, "y":5.25, "w":1.25, "matrix": [5, 12]}, + {"label":"K5D (B5,D3)", "x":13.75, "y":5.25, "w":1.25, "matrix": [5, 13]}, + + {"label":"K5E (B5,D4)", "x":15.25, "y":5.25, "matrix": [5, 14]}, + {"label":"K5F (B5,D5)", "x":16.25, "y":5.25, "matrix": [5, 15]}, + {"label":"K5G (B5,D6)", "x":17.25, "y":5.25, "matrix": [5, 16]} ] } } diff --git a/keyboards/mechlovin/infinity87/rev2/info.json b/keyboards/mechlovin/infinity87/rev2/info.json index 609f6b17003..62aa3cfeb0a 100644 --- a/keyboards/mechlovin/infinity87/rev2/info.json +++ b/keyboards/mechlovin/infinity87/rev2/info.json @@ -11,97 +11,110 @@ "layouts": { "LAYOUT_all": { "layout": [ - {"label":"K00 (B0,B6)", "x":0, "y":0}, - {"label":"K01 (B0,F4)", "x":2, "y":0}, - {"label":"K02 (B0,C0)", "x":3, "y":0}, - {"label":"K03 (B0,C1)", "x":4, "y":0}, - {"label":"K04 (B0,C2)", "x":5, "y":0}, - {"label":"K05 (B0,C3)", "x":6.5, "y":0}, - {"label":"K06 (B0,C4)", "x":7.5, "y":0}, - {"label":"K07 (B0,C5)", "x":8.5, "y":0}, - {"label":"K08 (B0,C6)", "x":9.5, "y":0}, - {"label":"K09 (B0,C7)", "x":11, "y":0}, - {"label":"K0A (B0,D0)", "x":12, "y":0}, - {"label":"K0B (B0,D1)", "x":13, "y":0}, - {"label":"K0C (B0,D2)", "x":14, "y":0}, - {"label":"K0E (B0,D4)", "x":15.25, "y":0}, - {"label":"K0F (B0,D5)", "x":16.25, "y":0}, - {"label":"K0G (B0,D6)", "x":17.25, "y":0}, - {"label":"K10 (B1,B6)", "x":0, "y":1.25}, - {"label":"K11 (B1,F4)", "x":1, "y":1.25}, - {"label":"K12 (B1,C0)", "x":2, "y":1.25}, - {"label":"K13 (B1,C1)", "x":3, "y":1.25}, - {"label":"K14 (B1,C2)", "x":4, "y":1.25}, - {"label":"K15 (B1,C3)", "x":5, "y":1.25}, - {"label":"K16 (B1,C4)", "x":6, "y":1.25}, - {"label":"K17 (B1,C5)", "x":7, "y":1.25}, - {"label":"K18 (B1,C6)", "x":8, "y":1.25}, - {"label":"K19 (B1,C7)", "x":9, "y":1.25}, - {"label":"K1A (B1,D0)", "x":10, "y":1.25}, - {"label":"K1B (B1,D1)", "x":11, "y":1.25}, - {"label":"K1C (B1,D2)", "x":12, "y":1.25}, - {"label":"K1D (B1,D3)", "x":13, "y":1.25}, - {"label":"K0D (B0,D3)", "x":14, "y":1.25}, - {"label":"K1E (B1,D4)", "x":15.25, "y":1.25}, - {"label":"K1F (B1,D5)", "x":16.25, "y":1.25}, - {"label":"K1G (B1,D6)", "x":17.25, "y":1.25}, - {"label":"K20 (B2,B6)", "x":0, "y":2.25, "w":1.5}, - {"label":"K21 (B2,F4)", "x":1.5, "y":2.25}, - {"label":"K22 (B2,C0)", "x":2.5, "y":2.25}, - {"label":"K23 (B2,C1)", "x":3.5, "y":2.25}, - {"label":"K24 (B2,C2)", "x":4.5, "y":2.25}, - {"label":"K25 (B2,C3)", "x":5.5, "y":2.25}, - {"label":"K26 (B2,C4)", "x":6.5, "y":2.25}, - {"label":"K27 (B2,C5)", "x":7.5, "y":2.25}, - {"label":"K28 (B2,C6)", "x":8.5, "y":2.25}, - {"label":"K29 (B2,C7)", "x":9.5, "y":2.25}, - {"label":"K2A (B2,D0)", "x":10.5, "y":2.25}, - {"label":"K2B (B2,D1)", "x":11.5, "y":2.25}, - {"label":"K2C (B2,D2)", "x":12.5, "y":2.25}, - {"label":"K2D (B2,D3)", "x":13.5, "y":2.25, "w":1.5}, - {"label":"K2E (B2,D4)", "x":15.25, "y":2.25}, - {"label":"K2F (B2,D5)", "x":16.25, "y":2.25}, - {"label":"K2G (B2,D6)", "x":17.25, "y":2.25}, - {"label":"K30 (B3,B6)", "x":0, "y":3.25, "w":1.75}, - {"label":"K31 (B3,F4)", "x":1.75, "y":3.25}, - {"label":"K32 (B3,C0)", "x":2.75, "y":3.25}, - {"label":"K33 (B3,C1)", "x":3.75, "y":3.25}, - {"label":"K34 (B3,C2)", "x":4.75, "y":3.25}, - {"label":"K35 (B3,C3)", "x":5.75, "y":3.25}, - {"label":"K36 (B3,C4)", "x":6.75, "y":3.25}, - {"label":"K37 (B3,C5)", "x":7.75, "y":3.25}, - {"label":"K38 (B3,C6)", "x":8.75, "y":3.25}, - {"label":"K39 (B3,C7)", "x":9.75, "y":3.25}, - {"label":"K3A (B3,D0)", "x":10.75, "y":3.25}, - {"label":"K3B (B3,D1)", "x":11.75, "y":3.25}, - {"label":"K3C (B3,D2)", "x":12.75, "y":3.25}, - {"label":"K3D (B3,D3)", "x":13.75, "y":3.25, "w":1.25}, - {"label":"K40 (B4,B6)", "x":0, "y":4.25, "w":1.25}, - {"label":"K41 (B4,F4)", "x":1.25, "y":4.25}, - {"label":"K42 (B4,C0)", "x":2.25, "y":4.25}, - {"label":"K43 (B4,C1)", "x":3.25, "y":4.25}, - {"label":"K44 (B4,C2)", "x":4.25, "y":4.25}, - {"label":"K45 (B4,C3)", "x":5.25, "y":4.25}, - {"label":"K46 (B4,C4)", "x":6.25, "y":4.25}, - {"label":"K47 (B4,C5)", "x":7.25, "y":4.25}, - {"label":"K48 (B4,C6)", "x":8.25, "y":4.25}, - {"label":"K49 (B4,C7)", "x":9.25, "y":4.25}, - {"label":"K4A (B4,D0)", "x":10.25, "y":4.25}, - {"label":"K4B (B4,D1)", "x":11.25, "y":4.25}, - {"label":"K4C (B4,D2)", "x":12.25, "y":4.25, "w":1.75}, - {"label":"K4D (B4,D3)", "x":14, "y":4.25}, - {"label":"K4F (B4,D5)", "x":16.25, "y":4.25}, - {"label":"K50 (B5,B6)", "x":0, "y":5.25, "w":1.25}, - {"label":"K51 (B5,F4)", "x":1.25, "y":5.25, "w":1.25}, - {"label":"K52 (B5,C0)", "x":2.5, "y":5.25, "w":1.25}, - {"label":"K56 (B5,C4)", "x":3.75, "y":5.25, "w":6.25}, - {"label":"K5A (B5,D0)", "x":10, "y":5.25, "w":1.25}, - {"label":"K5B (B5,D1)", "x":11.25, "y":5.25, "w":1.25}, - {"label":"K5C (B5,D2)", "x":12.5, "y":5.25, "w":1.25}, - {"label":"K5D (B5,D3)", "x":13.75, "y":5.25, "w":1.25}, - {"label":"K5E (B5,D4)", "x":15.25, "y":5.25}, - {"label":"K5F (B5,D5)", "x":16.25, "y":5.25}, - {"label":"K5G (B5,D6)", "x":17.25, "y":5.25} + {"label":"K00 (B0,B6)", "x":0, "y":0, "matrix": [0, 0]}, + + {"label":"K01 (B0,F4)", "x":2, "y":0, "matrix": [0, 1]}, + {"label":"K02 (B0,C0)", "x":3, "y":0, "matrix": [0, 2]}, + {"label":"K03 (B0,C1)", "x":4, "y":0, "matrix": [0, 3]}, + {"label":"K04 (B0,C2)", "x":5, "y":0, "matrix": [0, 4]}, + + {"label":"K05 (B0,C3)", "x":6.5, "y":0, "matrix": [0, 5]}, + {"label":"K06 (B0,C4)", "x":7.5, "y":0, "matrix": [0, 6]}, + {"label":"K07 (B0,C5)", "x":8.5, "y":0, "matrix": [0, 7]}, + {"label":"K08 (B0,C6)", "x":9.5, "y":0, "matrix": [0, 8]}, + + {"label":"K09 (B0,C7)", "x":11, "y":0, "matrix": [0, 9]}, + {"label":"K0A (B0,D0)", "x":12, "y":0, "matrix": [0, 10]}, + {"label":"K0B (B0,D1)", "x":13, "y":0, "matrix": [0, 11]}, + {"label":"K0C (B0,D2)", "x":14, "y":0, "matrix": [0, 12]}, + + {"label":"K0E (B0,D4)", "x":15.25, "y":0, "matrix": [0, 14]}, + {"label":"K0F (B0,D5)", "x":16.25, "y":0, "matrix": [0, 15]}, + {"label":"K0G (B0,D6)", "x":17.25, "y":0, "matrix": [0, 16]}, + + {"label":"K10 (B1,B6)", "x":0, "y":1.25, "matrix": [1, 0]}, + {"label":"K11 (B1,F4)", "x":1, "y":1.25, "matrix": [1, 1]}, + {"label":"K12 (B1,C0)", "x":2, "y":1.25, "matrix": [1, 2]}, + {"label":"K13 (B1,C1)", "x":3, "y":1.25, "matrix": [1, 3]}, + {"label":"K14 (B1,C2)", "x":4, "y":1.25, "matrix": [1, 4]}, + {"label":"K15 (B1,C3)", "x":5, "y":1.25, "matrix": [1, 5]}, + {"label":"K16 (B1,C4)", "x":6, "y":1.25, "matrix": [1, 6]}, + {"label":"K17 (B1,C5)", "x":7, "y":1.25, "matrix": [1, 7]}, + {"label":"K18 (B1,C6)", "x":8, "y":1.25, "matrix": [1, 8]}, + {"label":"K19 (B1,C7)", "x":9, "y":1.25, "matrix": [1, 9]}, + {"label":"K1A (B1,D0)", "x":10, "y":1.25, "matrix": [1, 10]}, + {"label":"K1B (B1,D1)", "x":11, "y":1.25, "matrix": [1, 11]}, + {"label":"K1C (B1,D2)", "x":12, "y":1.25, "matrix": [1, 12]}, + {"label":"K1D (B1,D3)", "x":13, "y":1.25, "matrix": [1, 13]}, + {"label":"K0D (B0,D3)", "x":14, "y":1.25, "matrix": [0, 13]}, + + {"label":"K1E (B1,D4)", "x":15.25, "y":1.25, "matrix": [1, 14]}, + {"label":"K1F (B1,D5)", "x":16.25, "y":1.25, "matrix": [1, 15]}, + {"label":"K1G (B1,D6)", "x":17.25, "y":1.25, "matrix": [1, 16]}, + + {"label":"K20 (B2,B6)", "x":0, "y":2.25, "w":1.5, "matrix": [2, 0]}, + {"label":"K21 (B2,F4)", "x":1.5, "y":2.25, "matrix": [2, 1]}, + {"label":"K22 (B2,C0)", "x":2.5, "y":2.25, "matrix": [2, 2]}, + {"label":"K23 (B2,C1)", "x":3.5, "y":2.25, "matrix": [2, 3]}, + {"label":"K24 (B2,C2)", "x":4.5, "y":2.25, "matrix": [2, 4]}, + {"label":"K25 (B2,C3)", "x":5.5, "y":2.25, "matrix": [2, 5]}, + {"label":"K26 (B2,C4)", "x":6.5, "y":2.25, "matrix": [2, 6]}, + {"label":"K27 (B2,C5)", "x":7.5, "y":2.25, "matrix": [2, 7]}, + {"label":"K28 (B2,C6)", "x":8.5, "y":2.25, "matrix": [2, 8]}, + {"label":"K29 (B2,C7)", "x":9.5, "y":2.25, "matrix": [2, 9]}, + {"label":"K2A (B2,D0)", "x":10.5, "y":2.25, "matrix": [2, 10]}, + {"label":"K2B (B2,D1)", "x":11.5, "y":2.25, "matrix": [2, 11]}, + {"label":"K2C (B2,D2)", "x":12.5, "y":2.25, "matrix": [2, 12]}, + {"label":"K2D (B2,D3)", "x":13.5, "y":2.25, "w":1.5, "matrix": [2, 13]}, + + {"label":"K2E (B2,D4)", "x":15.25, "y":2.25, "matrix": [2, 14]}, + {"label":"K2F (B2,D5)", "x":16.25, "y":2.25, "matrix": [2, 15]}, + {"label":"K2G (B2,D6)", "x":17.25, "y":2.25, "matrix": [2, 16]}, + + {"label":"K30 (B3,B6)", "x":0, "y":3.25, "w":1.75, "matrix": [3, 0]}, + {"label":"K31 (B3,F4)", "x":1.75, "y":3.25, "matrix": [3, 1]}, + {"label":"K32 (B3,C0)", "x":2.75, "y":3.25, "matrix": [3, 2]}, + {"label":"K33 (B3,C1)", "x":3.75, "y":3.25, "matrix": [3, 3]}, + {"label":"K34 (B3,C2)", "x":4.75, "y":3.25, "matrix": [3, 4]}, + {"label":"K35 (B3,C3)", "x":5.75, "y":3.25, "matrix": [3, 5]}, + {"label":"K36 (B3,C4)", "x":6.75, "y":3.25, "matrix": [3, 6]}, + {"label":"K37 (B3,C5)", "x":7.75, "y":3.25, "matrix": [3, 7]}, + {"label":"K38 (B3,C6)", "x":8.75, "y":3.25, "matrix": [3, 8]}, + {"label":"K39 (B3,C7)", "x":9.75, "y":3.25, "matrix": [3, 9]}, + {"label":"K3A (B3,D0)", "x":10.75, "y":3.25, "matrix": [3, 10]}, + {"label":"K3B (B3,D1)", "x":11.75, "y":3.25, "matrix": [3, 11]}, + {"label":"K3C (B3,D2)", "x":12.75, "y":3.25, "matrix": [3, 12]}, + {"label":"K3D (B3,D3)", "x":13.75, "y":3.25, "w":1.25, "matrix": [3, 13]}, + + {"label":"K40 (B4,B6)", "x":0, "y":4.25, "w":1.25, "matrix": [4, 0]}, + {"label":"K41 (B4,F4)", "x":1.25, "y":4.25, "matrix": [4, 1]}, + {"label":"K42 (B4,C0)", "x":2.25, "y":4.25, "matrix": [4, 2]}, + {"label":"K43 (B4,C1)", "x":3.25, "y":4.25, "matrix": [4, 3]}, + {"label":"K44 (B4,C2)", "x":4.25, "y":4.25, "matrix": [4, 4]}, + {"label":"K45 (B4,C3)", "x":5.25, "y":4.25, "matrix": [4, 5]}, + {"label":"K46 (B4,C4)", "x":6.25, "y":4.25, "matrix": [4, 6]}, + {"label":"K47 (B4,C5)", "x":7.25, "y":4.25, "matrix": [4, 7]}, + {"label":"K48 (B4,C6)", "x":8.25, "y":4.25, "matrix": [4, 8]}, + {"label":"K49 (B4,C7)", "x":9.25, "y":4.25, "matrix": [4, 9]}, + {"label":"K4A (B4,D0)", "x":10.25, "y":4.25, "matrix": [4, 10]}, + {"label":"K4B (B4,D1)", "x":11.25, "y":4.25, "matrix": [4, 11]}, + {"label":"K4C (B4,D2)", "x":12.25, "y":4.25, "w":1.75, "matrix": [4, 12]}, + {"label":"K4D (B4,D3)", "x":14, "y":4.25, "matrix": [4, 13]}, + + {"label":"K4F (B4,D5)", "x":16.25, "y":4.25, "matrix": [4, 15]}, + + {"label":"K50 (B5,B6)", "x":0, "y":5.25, "w":1.25, "matrix": [5, 0]}, + {"label":"K51 (B5,F4)", "x":1.25, "y":5.25, "w":1.25, "matrix": [5, 1]}, + {"label":"K52 (B5,C0)", "x":2.5, "y":5.25, "w":1.25, "matrix": [5, 2]}, + {"label":"K56 (B5,C4)", "x":3.75, "y":5.25, "w":6.25, "matrix": [5, 6]}, + {"label":"K5A (B5,D0)", "x":10, "y":5.25, "w":1.25, "matrix": [5, 10]}, + {"label":"K5B (B5,D1)", "x":11.25, "y":5.25, "w":1.25, "matrix": [5, 11]}, + {"label":"K5C (B5,D2)", "x":12.5, "y":5.25, "w":1.25, "matrix": [5, 12]}, + {"label":"K5D (B5,D3)", "x":13.75, "y":5.25, "w":1.25, "matrix": [5, 13]}, + + {"label":"K5E (B5,D4)", "x":15.25, "y":5.25, "matrix": [5, 14]}, + {"label":"K5F (B5,D5)", "x":16.25, "y":5.25, "matrix": [5, 15]}, + {"label":"K5G (B5,D6)", "x":17.25, "y":5.25, "matrix": [5, 16]} ] } } diff --git a/keyboards/mechlovin/infinity87/rgb_rev1/config.h b/keyboards/mechlovin/infinity87/rgb_rev1/config.h index 3c2ffd4b9ff..d173abe124e 100644 --- a/keyboards/mechlovin/infinity87/rgb_rev1/config.h +++ b/keyboards/mechlovin/infinity87/rgb_rev1/config.h @@ -89,5 +89,5 @@ //#define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_SOLID_REACTIVE_SIMPLE #define DRIVER_ADDR_1 0b0110010 #define DRIVER_COUNT 1 -#define DRIVER_LED_TOTAL 91 +#define RGB_MATRIX_LED_COUNT 91 #define DRIVER_INDICATOR_LED_TOTAL 0 diff --git a/keyboards/mechlovin/infinity87/rgb_rev1/info.json b/keyboards/mechlovin/infinity87/rgb_rev1/info.json index 0589e3f712b..fc308175cff 100644 --- a/keyboards/mechlovin/infinity87/rgb_rev1/info.json +++ b/keyboards/mechlovin/infinity87/rgb_rev1/info.json @@ -11,97 +11,110 @@ "layouts": { "LAYOUT_all": { "layout": [ - {"label":"K00 (B0,B6)", "x":0, "y":0}, - {"label":"K01 (B0,F4)", "x":2, "y":0}, - {"label":"K02 (B0,C0)", "x":3, "y":0}, - {"label":"K03 (B0,C1)", "x":4, "y":0}, - {"label":"K04 (B0,C2)", "x":5, "y":0}, - {"label":"K05 (B0,C3)", "x":6.5, "y":0}, - {"label":"K06 (B0,C4)", "x":7.5, "y":0}, - {"label":"K07 (B0,C5)", "x":8.5, "y":0}, - {"label":"K08 (B0,C6)", "x":9.5, "y":0}, - {"label":"K09 (B0,C7)", "x":11, "y":0}, - {"label":"K0A (B0,D0)", "x":12, "y":0}, - {"label":"K0B (B0,D1)", "x":13, "y":0}, - {"label":"K0C (B0,D2)", "x":14, "y":0}, - {"label":"K0E (B0,D4)", "x":15.25, "y":0}, - {"label":"K0F (B0,D5)", "x":16.25, "y":0}, - {"label":"K0G (B0,D6)", "x":17.25, "y":0}, - {"label":"K10 (B1,B6)", "x":0, "y":1.25}, - {"label":"K11 (B1,F4)", "x":1, "y":1.25}, - {"label":"K12 (B1,C0)", "x":2, "y":1.25}, - {"label":"K13 (B1,C1)", "x":3, "y":1.25}, - {"label":"K14 (B1,C2)", "x":4, "y":1.25}, - {"label":"K15 (B1,C3)", "x":5, "y":1.25}, - {"label":"K16 (B1,C4)", "x":6, "y":1.25}, - {"label":"K17 (B1,C5)", "x":7, "y":1.25}, - {"label":"K18 (B1,C6)", "x":8, "y":1.25}, - {"label":"K19 (B1,C7)", "x":9, "y":1.25}, - {"label":"K1A (B1,D0)", "x":10, "y":1.25}, - {"label":"K1B (B1,D1)", "x":11, "y":1.25}, - {"label":"K1C (B1,D2)", "x":12, "y":1.25}, - {"label":"K1D (B1,D3)", "x":13, "y":1.25}, - {"label":"K0D (B0,D3)", "x":14, "y":1.25}, - {"label":"K1E (B1,D4)", "x":15.25, "y":1.25}, - {"label":"K1F (B1,D5)", "x":16.25, "y":1.25}, - {"label":"K1G (B1,D6)", "x":17.25, "y":1.25}, - {"label":"K20 (B2,B6)", "x":0, "y":2.25, "w":1.5}, - {"label":"K21 (B2,F4)", "x":1.5, "y":2.25}, - {"label":"K22 (B2,C0)", "x":2.5, "y":2.25}, - {"label":"K23 (B2,C1)", "x":3.5, "y":2.25}, - {"label":"K24 (B2,C2)", "x":4.5, "y":2.25}, - {"label":"K25 (B2,C3)", "x":5.5, "y":2.25}, - {"label":"K26 (B2,C4)", "x":6.5, "y":2.25}, - {"label":"K27 (B2,C5)", "x":7.5, "y":2.25}, - {"label":"K28 (B2,C6)", "x":8.5, "y":2.25}, - {"label":"K29 (B2,C7)", "x":9.5, "y":2.25}, - {"label":"K2A (B2,D0)", "x":10.5, "y":2.25}, - {"label":"K2B (B2,D1)", "x":11.5, "y":2.25}, - {"label":"K2C (B2,D2)", "x":12.5, "y":2.25}, - {"label":"K2D (B2,D3)", "x":13.5, "y":2.25, "w":1.5}, - {"label":"K2E (B2,D4)", "x":15.25, "y":2.25}, - {"label":"K2F (B2,D5)", "x":16.25, "y":2.25}, - {"label":"K2G (B2,D6)", "x":17.25, "y":2.25}, - {"label":"K30 (B3,B6)", "x":0, "y":3.25, "w":1.75}, - {"label":"K31 (B3,F4)", "x":1.75, "y":3.25}, - {"label":"K32 (B3,C0)", "x":2.75, "y":3.25}, - {"label":"K33 (B3,C1)", "x":3.75, "y":3.25}, - {"label":"K34 (B3,C2)", "x":4.75, "y":3.25}, - {"label":"K35 (B3,C3)", "x":5.75, "y":3.25}, - {"label":"K36 (B3,C4)", "x":6.75, "y":3.25}, - {"label":"K37 (B3,C5)", "x":7.75, "y":3.25}, - {"label":"K38 (B3,C6)", "x":8.75, "y":3.25}, - {"label":"K39 (B3,C7)", "x":9.75, "y":3.25}, - {"label":"K3A (B3,D0)", "x":10.75, "y":3.25}, - {"label":"K3B (B3,D1)", "x":11.75, "y":3.25}, - {"label":"K3C (B3,D2)", "x":12.75, "y":3.25}, - {"label":"K3D (B3,D3)", "x":13.75, "y":3.25, "w":1.25}, - {"label":"K40 (B4,B6)", "x":0, "y":4.25, "w":1.25}, - {"label":"K41 (B4,F4)", "x":1.25, "y":4.25}, - {"label":"K42 (B4,C0)", "x":2.25, "y":4.25}, - {"label":"K43 (B4,C1)", "x":3.25, "y":4.25}, - {"label":"K44 (B4,C2)", "x":4.25, "y":4.25}, - {"label":"K45 (B4,C3)", "x":5.25, "y":4.25}, - {"label":"K46 (B4,C4)", "x":6.25, "y":4.25}, - {"label":"K47 (B4,C5)", "x":7.25, "y":4.25}, - {"label":"K48 (B4,C6)", "x":8.25, "y":4.25}, - {"label":"K49 (B4,C7)", "x":9.25, "y":4.25}, - {"label":"K4A (B4,D0)", "x":10.25, "y":4.25}, - {"label":"K4B (B4,D1)", "x":11.25, "y":4.25}, - {"label":"K4C (B4,D2)", "x":12.25, "y":4.25, "w":1.75}, - {"label":"K4D (B4,D3)", "x":14, "y":4.25}, - {"label":"K4F (B4,D5)", "x":16.25, "y":4.25}, - {"label":"K50 (B5,B6)", "x":0, "y":5.25, "w":1.25}, - {"label":"K51 (B5,F4)", "x":1.25, "y":5.25, "w":1.25}, - {"label":"K52 (B5,C0)", "x":2.5, "y":5.25, "w":1.25}, - {"label":"K56 (B5,C4)", "x":3.75, "y":5.25, "w":6.25}, - {"label":"K5A (B5,D0)", "x":10, "y":5.25, "w":1.25}, - {"label":"K5B (B5,D1)", "x":11.25, "y":5.25, "w":1.25}, - {"label":"K5C (B5,D2)", "x":12.5, "y":5.25, "w":1.25}, - {"label":"K5D (B5,D3)", "x":13.75, "y":5.25, "w":1.25}, - {"label":"K5E (B5,D4)", "x":15.25, "y":5.25}, - {"label":"K5F (B5,D5)", "x":16.25, "y":5.25}, - {"label":"K5G (B5,D6)", "x":17.25, "y":5.25} + {"label":"K00 (B0,B6)", "x":0, "y":0, "matrix": [0, 0]}, + + {"label":"K01 (B0,F4)", "x":2, "y":0, "matrix": [0, 1]}, + {"label":"K02 (B0,C0)", "x":3, "y":0, "matrix": [0, 2]}, + {"label":"K03 (B0,C1)", "x":4, "y":0, "matrix": [0, 3]}, + {"label":"K04 (B0,C2)", "x":5, "y":0, "matrix": [0, 4]}, + + {"label":"K05 (B0,C3)", "x":6.5, "y":0, "matrix": [0, 5]}, + {"label":"K06 (B0,C4)", "x":7.5, "y":0, "matrix": [0, 6]}, + {"label":"K07 (B0,C5)", "x":8.5, "y":0, "matrix": [0, 7]}, + {"label":"K08 (B0,C6)", "x":9.5, "y":0, "matrix": [0, 8]}, + + {"label":"K09 (B0,C7)", "x":11, "y":0, "matrix": [0, 9]}, + {"label":"K0A (B0,D0)", "x":12, "y":0, "matrix": [0, 10]}, + {"label":"K0B (B0,D1)", "x":13, "y":0, "matrix": [0, 11]}, + {"label":"K0C (B0,D2)", "x":14, "y":0, "matrix": [0, 12]}, + + {"label":"K0E (B0,D4)", "x":15.25, "y":0, "matrix": [0, 14]}, + {"label":"K0F (B0,D5)", "x":16.25, "y":0, "matrix": [0, 15]}, + {"label":"K0G (B0,D6)", "x":17.25, "y":0, "matrix": [0, 16]}, + + {"label":"K10 (B1,B6)", "x":0, "y":1.25, "matrix": [1, 0]}, + {"label":"K11 (B1,F4)", "x":1, "y":1.25, "matrix": [1, 1]}, + {"label":"K12 (B1,C0)", "x":2, "y":1.25, "matrix": [1, 2]}, + {"label":"K13 (B1,C1)", "x":3, "y":1.25, "matrix": [1, 3]}, + {"label":"K14 (B1,C2)", "x":4, "y":1.25, "matrix": [1, 4]}, + {"label":"K15 (B1,C3)", "x":5, "y":1.25, "matrix": [1, 5]}, + {"label":"K16 (B1,C4)", "x":6, "y":1.25, "matrix": [1, 6]}, + {"label":"K17 (B1,C5)", "x":7, "y":1.25, "matrix": [1, 7]}, + {"label":"K18 (B1,C6)", "x":8, "y":1.25, "matrix": [1, 8]}, + {"label":"K19 (B1,C7)", "x":9, "y":1.25, "matrix": [1, 9]}, + {"label":"K1A (B1,D0)", "x":10, "y":1.25, "matrix": [1, 10]}, + {"label":"K1B (B1,D1)", "x":11, "y":1.25, "matrix": [1, 11]}, + {"label":"K1C (B1,D2)", "x":12, "y":1.25, "matrix": [1, 12]}, + {"label":"K1D (B1,D3)", "x":13, "y":1.25, "matrix": [1, 13]}, + {"label":"K0D (B0,D3)", "x":14, "y":1.25, "matrix": [0, 13]}, + + {"label":"K1E (B1,D4)", "x":15.25, "y":1.25, "matrix": [1, 14]}, + {"label":"K1F (B1,D5)", "x":16.25, "y":1.25, "matrix": [1, 15]}, + {"label":"K1G (B1,D6)", "x":17.25, "y":1.25, "matrix": [1, 16]}, + + {"label":"K20 (B2,B6)", "x":0, "y":2.25, "w":1.5, "matrix": [2, 0]}, + {"label":"K21 (B2,F4)", "x":1.5, "y":2.25, "matrix": [2, 1]}, + {"label":"K22 (B2,C0)", "x":2.5, "y":2.25, "matrix": [2, 2]}, + {"label":"K23 (B2,C1)", "x":3.5, "y":2.25, "matrix": [2, 3]}, + {"label":"K24 (B2,C2)", "x":4.5, "y":2.25, "matrix": [2, 4]}, + {"label":"K25 (B2,C3)", "x":5.5, "y":2.25, "matrix": [2, 5]}, + {"label":"K26 (B2,C4)", "x":6.5, "y":2.25, "matrix": [2, 6]}, + {"label":"K27 (B2,C5)", "x":7.5, "y":2.25, "matrix": [2, 7]}, + {"label":"K28 (B2,C6)", "x":8.5, "y":2.25, "matrix": [2, 8]}, + {"label":"K29 (B2,C7)", "x":9.5, "y":2.25, "matrix": [2, 9]}, + {"label":"K2A (B2,D0)", "x":10.5, "y":2.25, "matrix": [2, 10]}, + {"label":"K2B (B2,D1)", "x":11.5, "y":2.25, "matrix": [2, 11]}, + {"label":"K2C (B2,D2)", "x":12.5, "y":2.25, "matrix": [2, 12]}, + {"label":"K2D (B2,D3)", "x":13.5, "y":2.25, "w":1.5, "matrix": [2, 13]}, + + {"label":"K2E (B2,D4)", "x":15.25, "y":2.25, "matrix": [2, 14]}, + {"label":"K2F (B2,D5)", "x":16.25, "y":2.25, "matrix": [2, 15]}, + {"label":"K2G (B2,D6)", "x":17.25, "y":2.25, "matrix": [2, 16]}, + + {"label":"K30 (B3,B6)", "x":0, "y":3.25, "w":1.75, "matrix": [3, 0]}, + {"label":"K31 (B3,F4)", "x":1.75, "y":3.25, "matrix": [3, 1]}, + {"label":"K32 (B3,C0)", "x":2.75, "y":3.25, "matrix": [3, 2]}, + {"label":"K33 (B3,C1)", "x":3.75, "y":3.25, "matrix": [3, 3]}, + {"label":"K34 (B3,C2)", "x":4.75, "y":3.25, "matrix": [3, 4]}, + {"label":"K35 (B3,C3)", "x":5.75, "y":3.25, "matrix": [3, 5]}, + {"label":"K36 (B3,C4)", "x":6.75, "y":3.25, "matrix": [3, 6]}, + {"label":"K37 (B3,C5)", "x":7.75, "y":3.25, "matrix": [3, 7]}, + {"label":"K38 (B3,C6)", "x":8.75, "y":3.25, "matrix": [3, 8]}, + {"label":"K39 (B3,C7)", "x":9.75, "y":3.25, "matrix": [3, 9]}, + {"label":"K3A (B3,D0)", "x":10.75, "y":3.25, "matrix": [3, 10]}, + {"label":"K3B (B3,D1)", "x":11.75, "y":3.25, "matrix": [3, 11]}, + {"label":"K3C (B3,D2)", "x":12.75, "y":3.25, "matrix": [3, 12]}, + {"label":"K3D (B3,D3)", "x":13.75, "y":3.25, "w":1.25, "matrix": [3, 13]}, + + {"label":"K40 (B4,B6)", "x":0, "y":4.25, "w":1.25, "matrix": [4, 0]}, + {"label":"K41 (B4,F4)", "x":1.25, "y":4.25, "matrix": [4, 1]}, + {"label":"K42 (B4,C0)", "x":2.25, "y":4.25, "matrix": [4, 2]}, + {"label":"K43 (B4,C1)", "x":3.25, "y":4.25, "matrix": [4, 3]}, + {"label":"K44 (B4,C2)", "x":4.25, "y":4.25, "matrix": [4, 4]}, + {"label":"K45 (B4,C3)", "x":5.25, "y":4.25, "matrix": [4, 5]}, + {"label":"K46 (B4,C4)", "x":6.25, "y":4.25, "matrix": [4, 6]}, + {"label":"K47 (B4,C5)", "x":7.25, "y":4.25, "matrix": [4, 7]}, + {"label":"K48 (B4,C6)", "x":8.25, "y":4.25, "matrix": [4, 8]}, + {"label":"K49 (B4,C7)", "x":9.25, "y":4.25, "matrix": [4, 9]}, + {"label":"K4A (B4,D0)", "x":10.25, "y":4.25, "matrix": [4, 10]}, + {"label":"K4B (B4,D1)", "x":11.25, "y":4.25, "matrix": [4, 11]}, + {"label":"K4C (B4,D2)", "x":12.25, "y":4.25, "w":1.75, "matrix": [4, 12]}, + {"label":"K4D (B4,D3)", "x":14, "y":4.25, "matrix": [4, 13]}, + + {"label":"K4F (B4,D5)", "x":16.25, "y":4.25, "matrix": [4, 15]}, + + {"label":"K50 (B5,B6)", "x":0, "y":5.25, "w":1.25, "matrix": [5, 0]}, + {"label":"K51 (B5,F4)", "x":1.25, "y":5.25, "w":1.25, "matrix": [5, 1]}, + {"label":"K52 (B5,C0)", "x":2.5, "y":5.25, "w":1.25, "matrix": [5, 2]}, + {"label":"K56 (B5,C4)", "x":3.75, "y":5.25, "w":6.25, "matrix": [5, 6]}, + {"label":"K5A (B5,D0)", "x":10, "y":5.25, "w":1.25, "matrix": [5, 10]}, + {"label":"K5B (B5,D1)", "x":11.25, "y":5.25, "w":1.25, "matrix": [5, 11]}, + {"label":"K5C (B5,D2)", "x":12.5, "y":5.25, "w":1.25, "matrix": [5, 12]}, + {"label":"K5D (B5,D3)", "x":13.75, "y":5.25, "w":1.25, "matrix": [5, 13]}, + + {"label":"K5E (B5,D4)", "x":15.25, "y":5.25, "matrix": [5, 14]}, + {"label":"K5F (B5,D5)", "x":16.25, "y":5.25, "matrix": [5, 15]}, + {"label":"K5G (B5,D6)", "x":17.25, "y":5.25, "matrix": [5, 16]} ] } } diff --git a/keyboards/mechlovin/infinity87/rgb_rev1/rgb_rev1.c b/keyboards/mechlovin/infinity87/rgb_rev1/rgb_rev1.c index 0ad5d414305..c1463cf4ca2 100644 --- a/keyboards/mechlovin/infinity87/rgb_rev1/rgb_rev1.c +++ b/keyboards/mechlovin/infinity87/rgb_rev1/rgb_rev1.c @@ -17,7 +17,7 @@ #include "rgb_rev1.h" #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { {0, CS34_SW1, CS35_SW1, CS36_SW1}, //D92-K00-0 {0, CS37_SW1, CS38_SW1, CS39_SW1}, //D94-K01-1 {0, CS31_SW1, CS32_SW1, CS33_SW1}, //D96-K02-2 diff --git a/keyboards/mechlovin/infinity875/config.h b/keyboards/mechlovin/infinity875/config.h index 4f02ed39c9c..f86332fe08d 100644 --- a/keyboards/mechlovin/infinity875/config.h +++ b/keyboards/mechlovin/infinity875/config.h @@ -45,7 +45,7 @@ along with this program. If not, see . #ifdef RGB_MATRIX_ENABLE #define RGB_DI_PIN E2 -#define DRIVER_LED_TOTAL 42 +#define RGB_MATRIX_LED_COUNT 42 #define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects #define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended #define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness) diff --git a/keyboards/mechlovin/infinity875/keymaps/default/rgb_matrix_user.inc b/keyboards/mechlovin/infinity875/keymaps/default/rgb_matrix_user.inc index cee6a3f0389..627d12bd3c8 100644 --- a/keyboards/mechlovin/infinity875/keymaps/default/rgb_matrix_user.inc +++ b/keyboards/mechlovin/infinity875/keymaps/default/rgb_matrix_user.inc @@ -62,7 +62,7 @@ bool effect_runner_all(effect_params_t* params, i_f effect_func) { RGB rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, i, time)); rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); } - return led_max < DRIVER_LED_TOTAL; + return led_max < RGB_MATRIX_LED_COUNT; } bool effect_runner_esc(effect_params_t* params, i_f effect_func) { @@ -77,7 +77,7 @@ bool effect_runner_esc(effect_params_t* params, i_f effect_func) { for (uint8_t i = 1; i < 18; i++) { rgb_matrix_set_color(i, 0x00, 0x00, 0x00); } - return led_max < DRIVER_LED_TOTAL; + return led_max < RGB_MATRIX_LED_COUNT; } bool effect_runner_f13(effect_params_t* params, i_f effect_func) { @@ -94,7 +94,7 @@ bool effect_runner_f13(effect_params_t* params, i_f effect_func) { for (uint8_t i = 0; i < 14; i++) { rgb_matrix_set_color(i, 0x00, 0x00, 0x00); } - return led_max < DRIVER_LED_TOTAL; + return led_max < RGB_MATRIX_LED_COUNT; } bool effect_runner_clus(effect_params_t* params, i_f effect_func) { @@ -109,7 +109,7 @@ bool effect_runner_clus(effect_params_t* params, i_f effect_func) { for (uint8_t i = 0; i < 15; i++) { rgb_matrix_set_color(i, 0x00, 0x00, 0x00); } - return led_max < DRIVER_LED_TOTAL; + return led_max < RGB_MATRIX_LED_COUNT; } bool effect_runner_dx_dy_all(effect_params_t* params, dx_dy_f effect_func) { @@ -123,7 +123,7 @@ bool effect_runner_dx_dy_all(effect_params_t* params, dx_dy_f effect_func) { RGB rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, dx, dy, time)); rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); } - return led_max < DRIVER_LED_TOTAL; + return led_max < RGB_MATRIX_LED_COUNT; } bool effect_runner_dx_dy_esc(effect_params_t* params, dx_dy_f effect_func) { @@ -140,7 +140,7 @@ bool effect_runner_dx_dy_esc(effect_params_t* params, dx_dy_f effect_func) { for (uint8_t i = 1; i < 18; i++) { rgb_matrix_set_color(i, 0x00, 0x00, 0x00); } - return led_max < DRIVER_LED_TOTAL; + return led_max < RGB_MATRIX_LED_COUNT; } bool effect_runner_dx_dy_f13(effect_params_t* params, dx_dy_f effect_func) { @@ -160,7 +160,7 @@ bool effect_runner_dx_dy_f13(effect_params_t* params, dx_dy_f effect_func) { for (uint8_t i = 0; i < 14; i++) { rgb_matrix_set_color(i, 0x00, 0x00, 0x00); } - return led_max < DRIVER_LED_TOTAL; + return led_max < RGB_MATRIX_LED_COUNT; } bool effect_runner_dx_dy_clus(effect_params_t* params, dx_dy_f effect_func) { @@ -177,7 +177,7 @@ bool effect_runner_dx_dy_clus(effect_params_t* params, dx_dy_f effect_func) { for (uint8_t i = 0; i < 15; i++) { rgb_matrix_set_color(i, 0x00, 0x00, 0x00); } - return led_max < DRIVER_LED_TOTAL; + return led_max < RGB_MATRIX_LED_COUNT; } bool effect_runner_sin_cos_all(effect_params_t* params, sin_cos_i_f effect_func) { @@ -191,7 +191,7 @@ bool effect_runner_sin_cos_all(effect_params_t* params, sin_cos_i_f effect_func) RGB rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, cos_value, sin_value, i, time)); rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); } - return led_max < DRIVER_LED_TOTAL; + return led_max < RGB_MATRIX_LED_COUNT; } bool effect_runner_sin_cos_esc(effect_params_t* params, sin_cos_i_f effect_func) { @@ -208,7 +208,7 @@ bool effect_runner_sin_cos_esc(effect_params_t* params, sin_cos_i_f effect_func) for (uint8_t i = 1; i < 18; i++) { rgb_matrix_set_color(i, 0x00, 0x00, 0x00); } - return led_max < DRIVER_LED_TOTAL; + return led_max < RGB_MATRIX_LED_COUNT; } bool effect_runner_sin_cos_f13(effect_params_t* params, sin_cos_i_f effect_func) { @@ -228,7 +228,7 @@ bool effect_runner_sin_cos_f13(effect_params_t* params, sin_cos_i_f effect_func) for (uint8_t i = 0; i < 14; i++) { rgb_matrix_set_color(i, 0x00, 0x00, 0x00); } - return led_max < DRIVER_LED_TOTAL; + return led_max < RGB_MATRIX_LED_COUNT; } bool effect_runner_sin_cos_clus(effect_params_t* params, sin_cos_i_f effect_func) { @@ -245,7 +245,7 @@ bool effect_runner_sin_cos_clus(effect_params_t* params, sin_cos_i_f effect_func for (uint8_t i = 0; i < 15; i++) { rgb_matrix_set_color(i, 0x00, 0x00, 0x00); } - return led_max < DRIVER_LED_TOTAL; + return led_max < RGB_MATRIX_LED_COUNT; } static void raindrops_set_color_all(int i, effect_params_t* params) { @@ -375,7 +375,7 @@ static bool solid_esc(effect_params_t* params) { rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); rgb_matrix_set_color(0, rgb.r, rgb.g, rgb.b); } - return led_max < DRIVER_LED_TOTAL; + return led_max < RGB_MATRIX_LED_COUNT; } // Solid F13 @@ -390,7 +390,7 @@ static bool solid_f13(effect_params_t* params) { rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); rgb_matrix_set_color(14, rgb.r, rgb.g, rgb.b); } - return led_max < DRIVER_LED_TOTAL; + return led_max < RGB_MATRIX_LED_COUNT; } // Solid cluster @@ -404,7 +404,7 @@ static bool solid_clus(effect_params_t* params) { for (uint8_t i = 15 ; i < led_max; i++) { rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); } - return led_max < DRIVER_LED_TOTAL; + return led_max < RGB_MATRIX_LED_COUNT; } // Breathing all @@ -420,7 +420,7 @@ bool breathing_all(effect_params_t* params) { RGB_MATRIX_TEST_LED_FLAGS(); rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); } - return led_max < DRIVER_LED_TOTAL; + return led_max < RGB_MATRIX_LED_COUNT; } // Breathing ESC @@ -439,7 +439,7 @@ static bool breathing_esc(effect_params_t* params) { rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); } rgb_matrix_set_color(0, rgb.r, rgb.g, rgb.b); - return led_max < DRIVER_LED_TOTAL; + return led_max < RGB_MATRIX_LED_COUNT; } // Breathing F13 @@ -458,7 +458,7 @@ static bool breathing_f13(effect_params_t* params) { rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); } rgb_matrix_set_color(14, rgb.r, rgb.g, rgb.b); - return led_max < DRIVER_LED_TOTAL; + return led_max < RGB_MATRIX_LED_COUNT; } // Breathing cluster @@ -476,7 +476,7 @@ static bool breathing_clus(effect_params_t* params) { RGB_MATRIX_TEST_LED_FLAGS(); rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); } - return led_max < DRIVER_LED_TOTAL; + return led_max < RGB_MATRIX_LED_COUNT; } // Band Val all @@ -698,7 +698,7 @@ static bool raindrops_all(effect_params_t* params) { if (!params->init) { // Change one LED every tick, make sure speed is not 0 if (scale16by8(g_rgb_timer, qadd8(rgb_matrix_config.speed, 16)) % 10 == 0) { - raindrops_set_color_all(rand() % DRIVER_LED_TOTAL, params); + raindrops_set_color_all(rand() % RGB_MATRIX_LED_COUNT, params); } return false; } @@ -707,7 +707,7 @@ static bool raindrops_all(effect_params_t* params) { for (int i = led_min; i < led_max; i++) { raindrops_set_color_all(i, params); } - return led_max < DRIVER_LED_TOTAL; + return led_max < RGB_MATRIX_LED_COUNT; } // Raindrops ESC @@ -715,7 +715,7 @@ static bool raindrops_esc(effect_params_t* params) { if (!params->init) { // Change one LED every tick, make sure speed is not 0 if (scale16by8(g_rgb_timer, qadd8(rgb_matrix_config.speed, 16)) % 10 == 0) { - raindrops_set_color_esc(rand() % DRIVER_LED_TOTAL, params); + raindrops_set_color_esc(rand() % RGB_MATRIX_LED_COUNT, params); } return false; } @@ -724,7 +724,7 @@ static bool raindrops_esc(effect_params_t* params) { for (int i = led_min; i < led_max; i++) { raindrops_set_color_esc(i, params); } - return led_max < DRIVER_LED_TOTAL; + return led_max < RGB_MATRIX_LED_COUNT; } // Raindrops F13 @@ -732,7 +732,7 @@ static bool raindrops_f13(effect_params_t* params) { if (!params->init) { // Change one LED every tick, make sure speed is not 0 if (scale16by8(g_rgb_timer, qadd8(rgb_matrix_config.speed, 16)) % 10 == 0) { - raindrops_set_color_f13(rand() % DRIVER_LED_TOTAL, params); + raindrops_set_color_f13(rand() % RGB_MATRIX_LED_COUNT, params); } return false; } @@ -741,7 +741,7 @@ static bool raindrops_f13(effect_params_t* params) { for (int i = led_min; i < led_max; i++) { raindrops_set_color_f13(i, params); } - return led_max < DRIVER_LED_TOTAL; + return led_max < RGB_MATRIX_LED_COUNT; } // Raindrops Cluster @@ -749,7 +749,7 @@ static bool raindrops_clus(effect_params_t* params) { if (!params->init) { // Change one LED every tick, make sure speed is not 0 if (scale16by8(g_rgb_timer, qadd8(rgb_matrix_config.speed, 16)) % 10 == 0) { - raindrops_set_color_clus(rand() % DRIVER_LED_TOTAL, params); + raindrops_set_color_clus(rand() % RGB_MATRIX_LED_COUNT, params); } return false; } @@ -758,7 +758,7 @@ static bool raindrops_clus(effect_params_t* params) { for (int i = led_min; i < led_max; i++) { raindrops_set_color_clus(i, params); } - return led_max < DRIVER_LED_TOTAL; + return led_max < RGB_MATRIX_LED_COUNT; } #endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS diff --git a/keyboards/mechlovin/infinity875/keymaps/via/rgb_matrix_user.inc b/keyboards/mechlovin/infinity875/keymaps/via/rgb_matrix_user.inc index cee6a3f0389..627d12bd3c8 100644 --- a/keyboards/mechlovin/infinity875/keymaps/via/rgb_matrix_user.inc +++ b/keyboards/mechlovin/infinity875/keymaps/via/rgb_matrix_user.inc @@ -62,7 +62,7 @@ bool effect_runner_all(effect_params_t* params, i_f effect_func) { RGB rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, i, time)); rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); } - return led_max < DRIVER_LED_TOTAL; + return led_max < RGB_MATRIX_LED_COUNT; } bool effect_runner_esc(effect_params_t* params, i_f effect_func) { @@ -77,7 +77,7 @@ bool effect_runner_esc(effect_params_t* params, i_f effect_func) { for (uint8_t i = 1; i < 18; i++) { rgb_matrix_set_color(i, 0x00, 0x00, 0x00); } - return led_max < DRIVER_LED_TOTAL; + return led_max < RGB_MATRIX_LED_COUNT; } bool effect_runner_f13(effect_params_t* params, i_f effect_func) { @@ -94,7 +94,7 @@ bool effect_runner_f13(effect_params_t* params, i_f effect_func) { for (uint8_t i = 0; i < 14; i++) { rgb_matrix_set_color(i, 0x00, 0x00, 0x00); } - return led_max < DRIVER_LED_TOTAL; + return led_max < RGB_MATRIX_LED_COUNT; } bool effect_runner_clus(effect_params_t* params, i_f effect_func) { @@ -109,7 +109,7 @@ bool effect_runner_clus(effect_params_t* params, i_f effect_func) { for (uint8_t i = 0; i < 15; i++) { rgb_matrix_set_color(i, 0x00, 0x00, 0x00); } - return led_max < DRIVER_LED_TOTAL; + return led_max < RGB_MATRIX_LED_COUNT; } bool effect_runner_dx_dy_all(effect_params_t* params, dx_dy_f effect_func) { @@ -123,7 +123,7 @@ bool effect_runner_dx_dy_all(effect_params_t* params, dx_dy_f effect_func) { RGB rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, dx, dy, time)); rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); } - return led_max < DRIVER_LED_TOTAL; + return led_max < RGB_MATRIX_LED_COUNT; } bool effect_runner_dx_dy_esc(effect_params_t* params, dx_dy_f effect_func) { @@ -140,7 +140,7 @@ bool effect_runner_dx_dy_esc(effect_params_t* params, dx_dy_f effect_func) { for (uint8_t i = 1; i < 18; i++) { rgb_matrix_set_color(i, 0x00, 0x00, 0x00); } - return led_max < DRIVER_LED_TOTAL; + return led_max < RGB_MATRIX_LED_COUNT; } bool effect_runner_dx_dy_f13(effect_params_t* params, dx_dy_f effect_func) { @@ -160,7 +160,7 @@ bool effect_runner_dx_dy_f13(effect_params_t* params, dx_dy_f effect_func) { for (uint8_t i = 0; i < 14; i++) { rgb_matrix_set_color(i, 0x00, 0x00, 0x00); } - return led_max < DRIVER_LED_TOTAL; + return led_max < RGB_MATRIX_LED_COUNT; } bool effect_runner_dx_dy_clus(effect_params_t* params, dx_dy_f effect_func) { @@ -177,7 +177,7 @@ bool effect_runner_dx_dy_clus(effect_params_t* params, dx_dy_f effect_func) { for (uint8_t i = 0; i < 15; i++) { rgb_matrix_set_color(i, 0x00, 0x00, 0x00); } - return led_max < DRIVER_LED_TOTAL; + return led_max < RGB_MATRIX_LED_COUNT; } bool effect_runner_sin_cos_all(effect_params_t* params, sin_cos_i_f effect_func) { @@ -191,7 +191,7 @@ bool effect_runner_sin_cos_all(effect_params_t* params, sin_cos_i_f effect_func) RGB rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, cos_value, sin_value, i, time)); rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); } - return led_max < DRIVER_LED_TOTAL; + return led_max < RGB_MATRIX_LED_COUNT; } bool effect_runner_sin_cos_esc(effect_params_t* params, sin_cos_i_f effect_func) { @@ -208,7 +208,7 @@ bool effect_runner_sin_cos_esc(effect_params_t* params, sin_cos_i_f effect_func) for (uint8_t i = 1; i < 18; i++) { rgb_matrix_set_color(i, 0x00, 0x00, 0x00); } - return led_max < DRIVER_LED_TOTAL; + return led_max < RGB_MATRIX_LED_COUNT; } bool effect_runner_sin_cos_f13(effect_params_t* params, sin_cos_i_f effect_func) { @@ -228,7 +228,7 @@ bool effect_runner_sin_cos_f13(effect_params_t* params, sin_cos_i_f effect_func) for (uint8_t i = 0; i < 14; i++) { rgb_matrix_set_color(i, 0x00, 0x00, 0x00); } - return led_max < DRIVER_LED_TOTAL; + return led_max < RGB_MATRIX_LED_COUNT; } bool effect_runner_sin_cos_clus(effect_params_t* params, sin_cos_i_f effect_func) { @@ -245,7 +245,7 @@ bool effect_runner_sin_cos_clus(effect_params_t* params, sin_cos_i_f effect_func for (uint8_t i = 0; i < 15; i++) { rgb_matrix_set_color(i, 0x00, 0x00, 0x00); } - return led_max < DRIVER_LED_TOTAL; + return led_max < RGB_MATRIX_LED_COUNT; } static void raindrops_set_color_all(int i, effect_params_t* params) { @@ -375,7 +375,7 @@ static bool solid_esc(effect_params_t* params) { rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); rgb_matrix_set_color(0, rgb.r, rgb.g, rgb.b); } - return led_max < DRIVER_LED_TOTAL; + return led_max < RGB_MATRIX_LED_COUNT; } // Solid F13 @@ -390,7 +390,7 @@ static bool solid_f13(effect_params_t* params) { rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); rgb_matrix_set_color(14, rgb.r, rgb.g, rgb.b); } - return led_max < DRIVER_LED_TOTAL; + return led_max < RGB_MATRIX_LED_COUNT; } // Solid cluster @@ -404,7 +404,7 @@ static bool solid_clus(effect_params_t* params) { for (uint8_t i = 15 ; i < led_max; i++) { rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); } - return led_max < DRIVER_LED_TOTAL; + return led_max < RGB_MATRIX_LED_COUNT; } // Breathing all @@ -420,7 +420,7 @@ bool breathing_all(effect_params_t* params) { RGB_MATRIX_TEST_LED_FLAGS(); rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); } - return led_max < DRIVER_LED_TOTAL; + return led_max < RGB_MATRIX_LED_COUNT; } // Breathing ESC @@ -439,7 +439,7 @@ static bool breathing_esc(effect_params_t* params) { rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); } rgb_matrix_set_color(0, rgb.r, rgb.g, rgb.b); - return led_max < DRIVER_LED_TOTAL; + return led_max < RGB_MATRIX_LED_COUNT; } // Breathing F13 @@ -458,7 +458,7 @@ static bool breathing_f13(effect_params_t* params) { rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); } rgb_matrix_set_color(14, rgb.r, rgb.g, rgb.b); - return led_max < DRIVER_LED_TOTAL; + return led_max < RGB_MATRIX_LED_COUNT; } // Breathing cluster @@ -476,7 +476,7 @@ static bool breathing_clus(effect_params_t* params) { RGB_MATRIX_TEST_LED_FLAGS(); rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); } - return led_max < DRIVER_LED_TOTAL; + return led_max < RGB_MATRIX_LED_COUNT; } // Band Val all @@ -698,7 +698,7 @@ static bool raindrops_all(effect_params_t* params) { if (!params->init) { // Change one LED every tick, make sure speed is not 0 if (scale16by8(g_rgb_timer, qadd8(rgb_matrix_config.speed, 16)) % 10 == 0) { - raindrops_set_color_all(rand() % DRIVER_LED_TOTAL, params); + raindrops_set_color_all(rand() % RGB_MATRIX_LED_COUNT, params); } return false; } @@ -707,7 +707,7 @@ static bool raindrops_all(effect_params_t* params) { for (int i = led_min; i < led_max; i++) { raindrops_set_color_all(i, params); } - return led_max < DRIVER_LED_TOTAL; + return led_max < RGB_MATRIX_LED_COUNT; } // Raindrops ESC @@ -715,7 +715,7 @@ static bool raindrops_esc(effect_params_t* params) { if (!params->init) { // Change one LED every tick, make sure speed is not 0 if (scale16by8(g_rgb_timer, qadd8(rgb_matrix_config.speed, 16)) % 10 == 0) { - raindrops_set_color_esc(rand() % DRIVER_LED_TOTAL, params); + raindrops_set_color_esc(rand() % RGB_MATRIX_LED_COUNT, params); } return false; } @@ -724,7 +724,7 @@ static bool raindrops_esc(effect_params_t* params) { for (int i = led_min; i < led_max; i++) { raindrops_set_color_esc(i, params); } - return led_max < DRIVER_LED_TOTAL; + return led_max < RGB_MATRIX_LED_COUNT; } // Raindrops F13 @@ -732,7 +732,7 @@ static bool raindrops_f13(effect_params_t* params) { if (!params->init) { // Change one LED every tick, make sure speed is not 0 if (scale16by8(g_rgb_timer, qadd8(rgb_matrix_config.speed, 16)) % 10 == 0) { - raindrops_set_color_f13(rand() % DRIVER_LED_TOTAL, params); + raindrops_set_color_f13(rand() % RGB_MATRIX_LED_COUNT, params); } return false; } @@ -741,7 +741,7 @@ static bool raindrops_f13(effect_params_t* params) { for (int i = led_min; i < led_max; i++) { raindrops_set_color_f13(i, params); } - return led_max < DRIVER_LED_TOTAL; + return led_max < RGB_MATRIX_LED_COUNT; } // Raindrops Cluster @@ -749,7 +749,7 @@ static bool raindrops_clus(effect_params_t* params) { if (!params->init) { // Change one LED every tick, make sure speed is not 0 if (scale16by8(g_rgb_timer, qadd8(rgb_matrix_config.speed, 16)) % 10 == 0) { - raindrops_set_color_clus(rand() % DRIVER_LED_TOTAL, params); + raindrops_set_color_clus(rand() % RGB_MATRIX_LED_COUNT, params); } return false; } @@ -758,7 +758,7 @@ static bool raindrops_clus(effect_params_t* params) { for (int i = led_min; i < led_max; i++) { raindrops_set_color_clus(i, params); } - return led_max < DRIVER_LED_TOTAL; + return led_max < RGB_MATRIX_LED_COUNT; } #endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS diff --git a/keyboards/mechwild/murphpad/keymaps/jonavin/keymap.c b/keyboards/mechwild/murphpad/keymaps/jonavin/keymap.c index 58db97d093b..61e98c2df8a 100644 --- a/keyboards/mechwild/murphpad/keymaps/jonavin/keymap.c +++ b/keyboards/mechwild/murphpad/keymaps/jonavin/keymap.c @@ -175,7 +175,7 @@ static const keycodedescType PROGMEM keyselection[] = { {"Break", KC_PAUS}, {"C-A-D", KC_CAD}, // Ctrl-Alt-Del {"AltF4", KC_AF4}, - {"QK_BOOT", QK_BOOT}, // firmware flash mode + {"RESET", QK_BOOT}, // firmware flash mode }; #define MAX_KEYSELECTION ARRAY_SIZE(keyselection) diff --git a/keyboards/melgeek/mach80/rev1/config.h b/keyboards/melgeek/mach80/rev1/config.h index 7d941ba1e3b..62af5154e6f 100755 --- a/keyboards/melgeek/mach80/rev1/config.h +++ b/keyboards/melgeek/mach80/rev1/config.h @@ -33,7 +33,7 @@ /* COL2ROW, ROW2COL*/ #define DIODE_DIRECTION ROW2COL -#define DRIVER_LED_TOTAL 97 +#define RGB_MATRIX_LED_COUNT 97 #define DRIVER_INDICATOR_LED_TOTAL 3 diff --git a/keyboards/melgeek/mach80/rev1/rev1.c b/keyboards/melgeek/mach80/rev1/rev1.c index 4d11d3f7118..468fc1f6984 100755 --- a/keyboards/melgeek/mach80/rev1/rev1.c +++ b/keyboards/melgeek/mach80/rev1/rev1.c @@ -19,7 +19,7 @@ #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { {0, CS9_SW1, CS8_SW1, CS7_SW1}, /* RGB1 */ {0, CS9_SW2, CS8_SW2, CS7_SW2}, /* RGB2 */ {0, CS9_SW3, CS8_SW3, CS7_SW3}, /* RGB3 */ diff --git a/keyboards/melgeek/mach80/rev2/config.h b/keyboards/melgeek/mach80/rev2/config.h index b08ec051002..b42d96691a6 100755 --- a/keyboards/melgeek/mach80/rev2/config.h +++ b/keyboards/melgeek/mach80/rev2/config.h @@ -33,7 +33,7 @@ /* COL2ROW, ROW2COL*/ #define DIODE_DIRECTION ROW2COL -#define DRIVER_LED_TOTAL 94 +#define RGB_MATRIX_LED_COUNT 94 #define DRIVER_INDICATOR_LED_TOTAL 3 diff --git a/keyboards/melgeek/mach80/rev2/rev2.c b/keyboards/melgeek/mach80/rev2/rev2.c index 09250b1565d..e817ef70a6b 100755 --- a/keyboards/melgeek/mach80/rev2/rev2.c +++ b/keyboards/melgeek/mach80/rev2/rev2.c @@ -19,7 +19,7 @@ #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { {0, CS9_SW1, CS8_SW1, CS7_SW1}, /* RGB1 */ {0, CS9_SW2, CS8_SW2, CS7_SW2}, /* RGB2 */ {0, CS9_SW3, CS8_SW3, CS7_SW3}, /* RGB3 */ diff --git a/keyboards/melgeek/mj61/rev1/config.h b/keyboards/melgeek/mj61/rev1/config.h index bba46db2dd3..c3f72d006a2 100644 --- a/keyboards/melgeek/mj61/rev1/config.h +++ b/keyboards/melgeek/mj61/rev1/config.h @@ -33,5 +33,5 @@ /* COL2ROW, ROW2COL*/ #define DIODE_DIRECTION COL2ROW -#define DRIVER_LED_TOTAL 63 +#define RGB_MATRIX_LED_COUNT 63 #define DRIVER_INDICATOR_LED_TOTAL 0 diff --git a/keyboards/melgeek/mj61/rev1/rev1.c b/keyboards/melgeek/mj61/rev1/rev1.c index 9d8de36d883..9c24335f82f 100644 --- a/keyboards/melgeek/mj61/rev1/rev1.c +++ b/keyboards/melgeek/mj61/rev1/rev1.c @@ -17,7 +17,7 @@ #include "mj61.h" #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { {0, CS12_SW1, CS11_SW1, CS10_SW1}, /* RGB1 */ {0, CS12_SW2, CS11_SW2, CS10_SW2}, /* RGB2 */ {0, CS12_SW3, CS11_SW3, CS10_SW3}, /* RGB3 */ diff --git a/keyboards/melgeek/mj61/rev2/config.h b/keyboards/melgeek/mj61/rev2/config.h index e17f291934c..422d4847e4a 100644 --- a/keyboards/melgeek/mj61/rev2/config.h +++ b/keyboards/melgeek/mj61/rev2/config.h @@ -33,5 +33,5 @@ /* COL2ROW, ROW2COL*/ #define DIODE_DIRECTION COL2ROW -#define DRIVER_LED_TOTAL 71 +#define RGB_MATRIX_LED_COUNT 71 #define DRIVER_INDICATOR_LED_TOTAL 0 diff --git a/keyboards/melgeek/mj61/rev2/rev2.c b/keyboards/melgeek/mj61/rev2/rev2.c index b46cf08c4e1..61588958dc9 100644 --- a/keyboards/melgeek/mj61/rev2/rev2.c +++ b/keyboards/melgeek/mj61/rev2/rev2.c @@ -19,7 +19,7 @@ #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { {0, CS9_SW1, CS8_SW1, CS7_SW1}, /* RGB1 */ {0, CS9_SW2, CS8_SW2, CS7_SW2}, /* RGB3 */ {0, CS9_SW3, CS8_SW3, CS7_SW3}, /* RGB4 */ diff --git a/keyboards/melgeek/mj63/rev1/config.h b/keyboards/melgeek/mj63/rev1/config.h index ef8c7872d61..31c4e0f1484 100644 --- a/keyboards/melgeek/mj63/rev1/config.h +++ b/keyboards/melgeek/mj63/rev1/config.h @@ -33,5 +33,5 @@ /* COL2ROW, ROW2COL*/ #define DIODE_DIRECTION COL2ROW -#define DRIVER_LED_TOTAL 65 +#define RGB_MATRIX_LED_COUNT 65 #define DRIVER_INDICATOR_LED_TOTAL 0 diff --git a/keyboards/melgeek/mj63/rev1/rev1.c b/keyboards/melgeek/mj63/rev1/rev1.c index 45abafd84d0..e69d4b2e065 100644 --- a/keyboards/melgeek/mj63/rev1/rev1.c +++ b/keyboards/melgeek/mj63/rev1/rev1.c @@ -19,7 +19,7 @@ #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { {0, CS9_SW1, CS8_SW1, CS7_SW1}, /* RGB1 */ {0, CS9_SW2, CS8_SW2, CS7_SW2}, /* RGB2 */ {0, CS9_SW3, CS8_SW3, CS7_SW3}, /* RGB3 */ diff --git a/keyboards/melgeek/mj63/rev2/config.h b/keyboards/melgeek/mj63/rev2/config.h index e17f291934c..422d4847e4a 100644 --- a/keyboards/melgeek/mj63/rev2/config.h +++ b/keyboards/melgeek/mj63/rev2/config.h @@ -33,5 +33,5 @@ /* COL2ROW, ROW2COL*/ #define DIODE_DIRECTION COL2ROW -#define DRIVER_LED_TOTAL 71 +#define RGB_MATRIX_LED_COUNT 71 #define DRIVER_INDICATOR_LED_TOTAL 0 diff --git a/keyboards/melgeek/mj63/rev2/rev2.c b/keyboards/melgeek/mj63/rev2/rev2.c index b21c4f960c8..c2398865ce2 100644 --- a/keyboards/melgeek/mj63/rev2/rev2.c +++ b/keyboards/melgeek/mj63/rev2/rev2.c @@ -19,7 +19,7 @@ #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { {0, CS9_SW1, CS8_SW1, CS7_SW1}, /* RGB1 */ {0, CS9_SW2, CS8_SW2, CS7_SW2}, /* RGB3 */ {0, CS9_SW3, CS8_SW3, CS7_SW3}, /* RGB4 */ diff --git a/keyboards/melgeek/mj64/rev1/config.h b/keyboards/melgeek/mj64/rev1/config.h index 713c051a09f..a0048f6912a 100644 --- a/keyboards/melgeek/mj64/rev1/config.h +++ b/keyboards/melgeek/mj64/rev1/config.h @@ -33,5 +33,5 @@ /* COL2ROW, ROW2COL*/ #define DIODE_DIRECTION COL2ROW -#define DRIVER_LED_TOTAL 66 +#define RGB_MATRIX_LED_COUNT 66 #define DRIVER_INDICATOR_LED_TOTAL 0 diff --git a/keyboards/melgeek/mj64/rev1/rev1.c b/keyboards/melgeek/mj64/rev1/rev1.c index 3279e7a1fe3..5bfbe73e2f6 100644 --- a/keyboards/melgeek/mj64/rev1/rev1.c +++ b/keyboards/melgeek/mj64/rev1/rev1.c @@ -18,7 +18,7 @@ #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { {0, CS9_SW1, CS8_SW1, CS7_SW1}, /* RGB1 */ {0, CS9_SW2, CS8_SW2, CS7_SW2}, /* RGB2 */ {0, CS9_SW3, CS8_SW3, CS7_SW3}, /* RGB3 */ diff --git a/keyboards/melgeek/mj64/rev2/config.h b/keyboards/melgeek/mj64/rev2/config.h index 713c051a09f..a0048f6912a 100644 --- a/keyboards/melgeek/mj64/rev2/config.h +++ b/keyboards/melgeek/mj64/rev2/config.h @@ -33,5 +33,5 @@ /* COL2ROW, ROW2COL*/ #define DIODE_DIRECTION COL2ROW -#define DRIVER_LED_TOTAL 66 +#define RGB_MATRIX_LED_COUNT 66 #define DRIVER_INDICATOR_LED_TOTAL 0 diff --git a/keyboards/melgeek/mj64/rev2/rev2.c b/keyboards/melgeek/mj64/rev2/rev2.c index b0653f9e71f..bf408489a02 100644 --- a/keyboards/melgeek/mj64/rev2/rev2.c +++ b/keyboards/melgeek/mj64/rev2/rev2.c @@ -18,7 +18,7 @@ #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { {0, CS9_SW1, CS8_SW1, CS7_SW1}, /* RGB1 */ {0, CS9_SW2, CS8_SW2, CS7_SW2}, /* RGB2 */ {0, CS9_SW3, CS8_SW3, CS7_SW3}, /* RGB3 */ diff --git a/keyboards/melgeek/mj64/rev3/config.h b/keyboards/melgeek/mj64/rev3/config.h index ff467af7d66..bcb2110b605 100644 --- a/keyboards/melgeek/mj64/rev3/config.h +++ b/keyboards/melgeek/mj64/rev3/config.h @@ -33,5 +33,5 @@ /* COL2ROW, ROW2COL*/ #define DIODE_DIRECTION COL2ROW -#define DRIVER_LED_TOTAL 72 +#define RGB_MATRIX_LED_COUNT 72 #define DRIVER_INDICATOR_LED_TOTAL 0 diff --git a/keyboards/melgeek/mj64/rev3/rev3.c b/keyboards/melgeek/mj64/rev3/rev3.c index b67dbee75be..5bf57251105 100644 --- a/keyboards/melgeek/mj64/rev3/rev3.c +++ b/keyboards/melgeek/mj64/rev3/rev3.c @@ -18,7 +18,7 @@ #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { {0, CS9_SW1, CS8_SW1, CS7_SW1}, /* RGB1 */ {0, CS9_SW2, CS8_SW2, CS7_SW2}, /* RGB3 */ {0, CS9_SW3, CS8_SW3, CS7_SW3}, /* RGB4 */ diff --git a/keyboards/melgeek/mj65/rev3/config.h b/keyboards/melgeek/mj65/rev3/config.h index 52745087440..24ed74f4b63 100644 --- a/keyboards/melgeek/mj65/rev3/config.h +++ b/keyboards/melgeek/mj65/rev3/config.h @@ -33,5 +33,5 @@ /* COL2ROW, ROW2COL*/ #define DIODE_DIRECTION COL2ROW -#define DRIVER_LED_TOTAL 76 +#define RGB_MATRIX_LED_COUNT 76 #define DRIVER_INDICATOR_LED_TOTAL 0 diff --git a/keyboards/melgeek/mj65/rev3/rev3.c b/keyboards/melgeek/mj65/rev3/rev3.c index f02c29e7474..6719a03b0fc 100644 --- a/keyboards/melgeek/mj65/rev3/rev3.c +++ b/keyboards/melgeek/mj65/rev3/rev3.c @@ -18,7 +18,7 @@ #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { {0, CS9_SW1, CS8_SW1, CS7_SW1}, /* RGB1 */ {0, CS9_SW2, CS8_SW2, CS7_SW2}, /* RGB2 */ {0, CS9_SW3, CS8_SW3, CS7_SW3}, /* RGB3 */ diff --git a/keyboards/melgeek/mojo68/rev1/config.h b/keyboards/melgeek/mojo68/rev1/config.h index de50fb8b1ee..7cb916e4fb3 100755 --- a/keyboards/melgeek/mojo68/rev1/config.h +++ b/keyboards/melgeek/mojo68/rev1/config.h @@ -33,5 +33,5 @@ /* COL2ROW, ROW2COL*/ #define DIODE_DIRECTION COL2ROW -#define DRIVER_LED_TOTAL 68 +#define RGB_MATRIX_LED_COUNT 68 #define DRIVER_INDICATOR_LED_TOTAL 3 diff --git a/keyboards/melgeek/mojo68/rev1/rev1.c b/keyboards/melgeek/mojo68/rev1/rev1.c index 27c9212ac6f..17c235820be 100755 --- a/keyboards/melgeek/mojo68/rev1/rev1.c +++ b/keyboards/melgeek/mojo68/rev1/rev1.c @@ -18,7 +18,7 @@ #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { {0, CS9_SW1, CS8_SW1, CS7_SW1}, /* RGB1 */ {0, CS9_SW2, CS8_SW2, CS7_SW2}, /* RGB2 */ {0, CS9_SW3, CS8_SW3, CS7_SW3}, /* RGB3 */ diff --git a/keyboards/melgeek/mojo75/rev1/config.h b/keyboards/melgeek/mojo75/rev1/config.h index f51798a3088..6bbda5752a9 100644 --- a/keyboards/melgeek/mojo75/rev1/config.h +++ b/keyboards/melgeek/mojo75/rev1/config.h @@ -33,6 +33,6 @@ /* COL2ROW, ROW2COL*/ #define DIODE_DIRECTION COL2ROW -#define DRIVER_LED_TOTAL 92 +#define RGB_MATRIX_LED_COUNT 92 #define DRIVER_INDICATOR_LED_TOTAL 0 diff --git a/keyboards/melgeek/mojo75/rev1/rev1.c b/keyboards/melgeek/mojo75/rev1/rev1.c index ae103801e2f..b73e101f1e2 100644 --- a/keyboards/melgeek/mojo75/rev1/rev1.c +++ b/keyboards/melgeek/mojo75/rev1/rev1.c @@ -18,7 +18,7 @@ #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { {0, CS6_SW1, CS5_SW1, CS4_SW1}, /* RGB1 */ {0, CS6_SW2, CS5_SW2, CS4_SW2}, /* RGB2 */ {0, CS6_SW3, CS5_SW3, CS4_SW3}, /* RGB3 */ diff --git a/keyboards/melgeek/tegic/rev1/config.h b/keyboards/melgeek/tegic/rev1/config.h index 49d4550be99..e1d22a6384e 100755 --- a/keyboards/melgeek/tegic/rev1/config.h +++ b/keyboards/melgeek/tegic/rev1/config.h @@ -33,7 +33,7 @@ /* COL2ROW, ROW2COL*/ #define DIODE_DIRECTION COL2ROW -#define DRIVER_LED_TOTAL 91 +#define RGB_MATRIX_LED_COUNT 91 //#define DRIVER_INDICATOR_LED_TOTAL 3 diff --git a/keyboards/melgeek/tegic/rev1/rev1.c b/keyboards/melgeek/tegic/rev1/rev1.c index e3ede57b336..04e490794c7 100755 --- a/keyboards/melgeek/tegic/rev1/rev1.c +++ b/keyboards/melgeek/tegic/rev1/rev1.c @@ -19,7 +19,7 @@ #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { {0, CS9_SW1, CS8_SW1, CS7_SW1}, /* RGB1 */ {0, CS9_SW2, CS8_SW2, CS7_SW2}, /* RGB2 */ {0, CS9_SW3, CS8_SW3, CS7_SW3}, /* RGB3 */ diff --git a/keyboards/melgeek/z70ultra/config.h b/keyboards/melgeek/z70ultra/config.h index 2b5f6e59551..e90c780a72e 100644 --- a/keyboards/melgeek/z70ultra/config.h +++ b/keyboards/melgeek/z70ultra/config.h @@ -81,5 +81,5 @@ #define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_ALL #define DRIVER_ADDR_1 0b0110000 #define DRIVER_COUNT 1 -#define DRIVER_LED_TOTAL 69 +#define RGB_MATRIX_LED_COUNT 69 #define DRIVER_INDICATOR_LED_TOTAL 6 diff --git a/keyboards/melgeek/z70ultra/z70ultra.c b/keyboards/melgeek/z70ultra/z70ultra.c index 6be690c01e3..9ade47d43ee 100644 --- a/keyboards/melgeek/z70ultra/z70ultra.c +++ b/keyboards/melgeek/z70ultra/z70ultra.c @@ -18,7 +18,7 @@ #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { {0, CS28_SW1, CS30_SW1, CS29_SW1}, /* RGB10 */ {0, CS28_SW2, CS30_SW2, CS29_SW2}, /* RGB11 */ {0, CS28_SW3, CS30_SW3, CS29_SW3}, /* RGB12 */ diff --git a/keyboards/merge/um70/config.h b/keyboards/merge/um70/config.h index b22bd3fb107..19f3bba97f6 100644 --- a/keyboards/merge/um70/config.h +++ b/keyboards/merge/um70/config.h @@ -35,7 +35,7 @@ #define RGBLED_NUM 83 #define RGBLED_SPLIT { 39, 44 } #ifdef RGB_MATRIX_ENABLE -# define DRIVER_LED_TOTAL RGBLED_NUM +# define RGB_MATRIX_LED_COUNT RGBLED_NUM # define RGB_MATRIX_SPLIT RGBLED_SPLIT #endif #define RGBLIGHT_SLEEP diff --git a/keyboards/merge/um80/config.h b/keyboards/merge/um80/config.h index d76eee087a7..b501e372ade 100644 --- a/keyboards/merge/um80/config.h +++ b/keyboards/merge/um80/config.h @@ -35,7 +35,7 @@ #define RGBLED_NUM 100 #define RGBLED_SPLIT { 48, 52 } #ifdef RGB_MATRIX_ENABLE -# define DRIVER_LED_TOTAL RGBLED_NUM +# define RGB_MATRIX_LED_COUNT RGBLED_NUM # define RGB_MATRIX_SPLIT RGBLED_SPLIT #endif #define RGBLIGHT_SLEEP diff --git a/keyboards/miller/gm862/config.h b/keyboards/miller/gm862/config.h index 0e784fe5279..16587a22d4a 100644 --- a/keyboards/miller/gm862/config.h +++ b/keyboards/miller/gm862/config.h @@ -78,5 +78,5 @@ # define DRIVER_ADDR_1 0b1010000 # define DRIVER_COUNT 1 -# define DRIVER_LED_TOTAL 62 +# define RGB_MATRIX_LED_COUNT 62 #endif diff --git a/keyboards/miller/gm862/gm862.c b/keyboards/miller/gm862/gm862.c index 5262957767d..08c9bfe73b3 100644 --- a/keyboards/miller/gm862/gm862.c +++ b/keyboards/miller/gm862/gm862.c @@ -1,7 +1,7 @@ #include "gm862.h" #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { {0, B_1, A_1, C_1}, {0, B_2, A_2, C_2}, {0, B_3, A_3, C_3}, diff --git a/keyboards/ml/gas75/config.h b/keyboards/ml/gas75/config.h index 82d8c134a0f..ee7a07fd208 100644 --- a/keyboards/ml/gas75/config.h +++ b/keyboards/ml/gas75/config.h @@ -43,7 +43,7 @@ #define ENCODERS_PAD_B { F1 } #ifdef RGB_MATRIX_ENABLE - #define DRIVER_LED_TOTAL 3 + #define RGB_MATRIX_LED_COUNT 3 #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 #define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS #define RGB_MATRIX_KEYPRESSES diff --git a/keyboards/momokai/tap_trio/config.h b/keyboards/momokai/tap_trio/config.h index 431a570e159..7fde303ae97 100644 --- a/keyboards/momokai/tap_trio/config.h +++ b/keyboards/momokai/tap_trio/config.h @@ -58,7 +58,7 @@ // #ifdef RGB_DI_PIN -// #define DRIVER_LED_TOTAL 5 +// #define RGB_MATRIX_LED_COUNT 5 // #define RGB_MATRIX_KEYPRESSES // reacts to keypresses // // # define RGBLIGHT_LIMIT_VAL 180 // Limit to vendor-recommended value diff --git a/keyboards/monstargear/xo87/rgb/config.h b/keyboards/monstargear/xo87/rgb/config.h index 4117f243ac9..cdd5574b232 100644 --- a/keyboards/monstargear/xo87/rgb/config.h +++ b/keyboards/monstargear/xo87/rgb/config.h @@ -27,7 +27,7 @@ #define MATRIX_COL_PINS { C5,C3,C1,E1,D6,D2,B7,B3,F6,F7,F3,A5,A1,E2,C7,A6 } #define DIODE_DIRECTION ROW2COL #define RGB_DI_PIN D7 -#define DRIVER_LED_TOTAL 110 +#define RGB_MATRIX_LED_COUNT 110 #define RGB_DISABLE_WHEN_USB_SUSPENDED #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 100 // limits maximum brightness of LEDs to 100 out of 255. diff --git a/keyboards/monstargear/xo87/solderable/config.h b/keyboards/monstargear/xo87/solderable/config.h index 8b3af960244..bd8b4923c63 100644 --- a/keyboards/monstargear/xo87/solderable/config.h +++ b/keyboards/monstargear/xo87/solderable/config.h @@ -37,7 +37,7 @@ #define DIODE_DIRECTION ROW2COL #define RGB_DI_PIN D7 -#define DRIVER_LED_TOTAL 21 +#define RGB_MATRIX_LED_COUNT 21 #define DRIVER_COUNT 2 #define RGBLED_NUM 21 #define RGBLIGHT_ANIMATIONS diff --git a/keyboards/moonlander/config.h b/keyboards/moonlander/config.h index b0ff86ee815..7db3a184fa2 100644 --- a/keyboards/moonlander/config.h +++ b/keyboards/moonlander/config.h @@ -75,7 +75,7 @@ #define DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 36 #define DRIVER_2_LED_TOTAL 36 -#define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) +#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) #define RGB_MATRIX_CENTER { 125, 26 } #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 175 #define RGB_MATRIX_FRAMEBUFFER_EFFECTS diff --git a/keyboards/moonlander/moonlander.c b/keyboards/moonlander/moonlander.c index 927c88925ee..0844f166610 100644 --- a/keyboards/moonlander/moonlander.c +++ b/keyboards/moonlander/moonlander.c @@ -174,7 +174,7 @@ layer_state_t layer_state_set_kb(layer_state_t state) { #ifdef RGB_MATRIX_ENABLE // clang-format off -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location diff --git a/keyboards/mss_studio/m63_rgb/config.h b/keyboards/mss_studio/m63_rgb/config.h index a7220ab1c66..792cdcc6b33 100644 --- a/keyboards/mss_studio/m63_rgb/config.h +++ b/keyboards/mss_studio/m63_rgb/config.h @@ -37,7 +37,7 @@ #define FORCE_NKRO #ifdef RGB_MATRIX_ENABLE - #define DRIVER_LED_TOTAL 75 + #define RGB_MATRIX_LED_COUNT 75 #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 #define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS #define RGB_MATRIX_KEYPRESSES diff --git a/keyboards/mss_studio/m64_rgb/config.h b/keyboards/mss_studio/m64_rgb/config.h index c9a1e3f3dbe..90b5ae5130b 100644 --- a/keyboards/mss_studio/m64_rgb/config.h +++ b/keyboards/mss_studio/m64_rgb/config.h @@ -37,7 +37,7 @@ #define FORCE_NKRO #ifdef RGB_MATRIX_ENABLE - #define DRIVER_LED_TOTAL 76 + #define RGB_MATRIX_LED_COUNT 76 #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 #define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS #define RGB_MATRIX_KEYPRESSES diff --git a/keyboards/mt/mt64rgb/config.h b/keyboards/mt/mt64rgb/config.h index 8124a6a4a11..86035dc6a3c 100644 --- a/keyboards/mt/mt64rgb/config.h +++ b/keyboards/mt/mt64rgb/config.h @@ -47,7 +47,7 @@ #define DRIVER_ADDR_1 0b1010000 #define DRIVER_COUNT 1 -#define DRIVER_LED_TOTAL 64 +#define RGB_MATRIX_LED_COUNT 64 // RGB Matrix Animation modes. Explicitly enabled diff --git a/keyboards/mt/mt64rgb/mt64rgb.c b/keyboards/mt/mt64rgb/mt64rgb.c index f0c444e8fa5..c87e0d36101 100644 --- a/keyboards/mt/mt64rgb/mt64rgb.c +++ b/keyboards/mt/mt64rgb/mt64rgb.c @@ -16,7 +16,7 @@ #include "mt64rgb.h" #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location diff --git a/keyboards/mt/mt84/config.h b/keyboards/mt/mt84/config.h index ac510f1967b..04c14a27bbd 100644 --- a/keyboards/mt/mt84/config.h +++ b/keyboards/mt/mt84/config.h @@ -52,7 +52,7 @@ #define DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 44 #define DRIVER_2_LED_TOTAL 40 - #define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) + #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) // RGB Matrix Animation modes. Explicitly enabled // For full list of effects, see: diff --git a/keyboards/mt/mt84/mt84.c b/keyboards/mt/mt84/mt84.c index e15a1ff9518..049878419f7 100644 --- a/keyboards/mt/mt84/mt84.c +++ b/keyboards/mt/mt84/mt84.c @@ -16,7 +16,7 @@ #include "mt84.h" #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location diff --git a/keyboards/mwstudio/mw65_rgb/config.h b/keyboards/mwstudio/mw65_rgb/config.h index 2fd67e9e79f..1da7c253906 100644 --- a/keyboards/mwstudio/mw65_rgb/config.h +++ b/keyboards/mwstudio/mw65_rgb/config.h @@ -43,7 +43,7 @@ #define RGB_DI_PIN B3 #ifdef RGB_MATRIX_ENABLE - #define DRIVER_LED_TOTAL 83 + #define RGB_MATRIX_LED_COUNT 83 #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 #define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS #define RGB_MATRIX_KEYPRESSES diff --git a/keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/led/custom_gradient.c b/keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/led/custom_gradient.c index 49e4a242fbb..0d7acd7e8b0 100644 --- a/keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/led/custom_gradient.c +++ b/keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/led/custom_gradient.c @@ -70,5 +70,5 @@ static bool CUSTOM_GRADIENT(effect_params_t* params) { rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); } - return led_max < DRIVER_LED_TOTAL; + return led_max < RGB_MATRIX_LED_COUNT; } diff --git a/keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/led/rainbow_reactive_simple/rainbow_reactive_simple.h b/keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/led/rainbow_reactive_simple/rainbow_reactive_simple.h index 56b204e0a9d..986cbfeb9d0 100644 --- a/keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/led/rainbow_reactive_simple/rainbow_reactive_simple.h +++ b/keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/led/rainbow_reactive_simple/rainbow_reactive_simple.h @@ -41,5 +41,5 @@ bool effect_rainbow_reactive(effect_params_t* params, rainbow_reactive_f effect_ rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); } - return led_max < DRIVER_LED_TOTAL; + return led_max < RGB_MATRIX_LED_COUNT; } diff --git a/keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/led/random_breath_rainbow.c b/keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/led/random_breath_rainbow.c index 041417477ba..29c447c61a4 100644 --- a/keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/led/random_breath_rainbow.c +++ b/keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/led/random_breath_rainbow.c @@ -14,7 +14,7 @@ * along with this program. If not, see . */ -static uint8_t offset[DRIVER_LED_TOTAL]; +static uint8_t offset[RGB_MATRIX_LED_COUNT]; static void doRandom_breath_rainbow(int i, effect_params_t* params) { if (!HAS_ANY_FLAGS(g_led_config.flags[i], params->flags)) return; @@ -41,7 +41,7 @@ bool RANDOM_BREATH_RAINBOW(effect_params_t* params) { if (!params->init) { // Change one LED every tick, make sure speed is not 0 - doRandom_breath_rainbow(rand() % DRIVER_LED_TOTAL, params); + doRandom_breath_rainbow(rand() % RGB_MATRIX_LED_COUNT, params); return false; } @@ -51,5 +51,5 @@ bool RANDOM_BREATH_RAINBOW(effect_params_t* params) { doRandom_breath_rainbow(i, params); } - return led_max < DRIVER_LED_TOTAL; + return led_max < RGB_MATRIX_LED_COUNT; } diff --git a/keyboards/mwstudio/mw75/config.h b/keyboards/mwstudio/mw75/config.h index 2c9e3839b88..b5a8f15804d 100644 --- a/keyboards/mwstudio/mw75/config.h +++ b/keyboards/mwstudio/mw75/config.h @@ -40,7 +40,7 @@ #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 #define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS -#define DRIVER_LED_TOTAL 97 +#define RGB_MATRIX_LED_COUNT 97 #define RGBLED_NUM 97 #define RGB_MATRIX_KEYPRESSES diff --git a/keyboards/mwstudio/mw75r2/config.h b/keyboards/mwstudio/mw75r2/config.h index 0886a9effb1..1fd6a345d15 100644 --- a/keyboards/mwstudio/mw75r2/config.h +++ b/keyboards/mwstudio/mw75r2/config.h @@ -40,7 +40,7 @@ #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 255 #define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS -#define DRIVER_LED_TOTAL 21 +#define RGB_MATRIX_LED_COUNT 21 #define RGBLED_NUM 21 #define ENABLE_RGB_MATRIX_ALPHAS_MODS diff --git a/keyboards/nack/config.h b/keyboards/nack/config.h index 798d4ee12d5..d5e2d8a58eb 100644 --- a/keyboards/nack/config.h +++ b/keyboards/nack/config.h @@ -33,7 +33,7 @@ along with this program. If not, see . #define WS2812_SPI_MOSI_PAL_MODE 5 #define RGB_DI_PIN B5 #define RGBLED_NUM 52 - #define DRIVER_LED_TOTAL RGBLED_NUM + #define RGB_MATRIX_LED_COUNT RGBLED_NUM #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 128 // Max brightness of LEDs #define RGB_MATRIX_STARTUP_VAL 64 #define RGB_MATRIX_HUE_STEP 10 diff --git a/keyboards/nacly/sodium50/config.h b/keyboards/nacly/sodium50/config.h index 5f92ca1c8c5..cdcab9290bc 100644 --- a/keyboards/nacly/sodium50/config.h +++ b/keyboards/nacly/sodium50/config.h @@ -20,11 +20,11 @@ /* key matrix size */ // Rows are doubled-up -#define MATRIX_ROWS 10 +#define MATRIX_ROWS 8 #define MATRIX_COLS 7 // wiring of each half -#define MATRIX_ROW_PINS { F7, D4, D7, B4, B6 } +#define MATRIX_ROW_PINS { F7, D4, D7, B4} #define MATRIX_COL_PINS { D2, C6, E6, B5, B2, B3, B1 } #define DIODE_DIRECTION COL2ROW diff --git a/keyboards/nacly/sodium50/sodium50.h b/keyboards/nacly/sodium50/sodium50.h index c20ea9bc3b7..384867f193c 100644 --- a/keyboards/nacly/sodium50/sodium50.h +++ b/keyboards/nacly/sodium50/sodium50.h @@ -32,5 +32,5 @@ { R00, R01, R02, R03, R04, R05, KC_NO }, \ { R10, R11, R12, R13, R14, R15, KC_NO }, \ { R20, R21, R22, R23, R24, R25, KC_NO }, \ - { R30, R31, R32, R33, R34, R35, L36 } \ + { R30, R31, R32, R33, R34, R35, R36 } \ } diff --git a/keyboards/neson_design/700e/700e.c b/keyboards/neson_design/700e/700e.c index 6b3be48044c..89c5e84efdd 100644 --- a/keyboards/neson_design/700e/700e.c +++ b/keyboards/neson_design/700e/700e.c @@ -111,7 +111,7 @@ static void self_testing(void) } if (rgb_state.index >= ST_LEFT_END) { - for (int i = rgb_state.index - 1; i < DRIVER_LED_TOTAL - rgb_state.index + 1; i++) { + for (int i = rgb_state.index - 1; i < RGB_MATRIX_LED_COUNT - rgb_state.index + 1; i++) { IS31FL3731_set_color(i, led.r, led.g, led.b); } if (rgb_state.index == ST_LEFT_END) { @@ -173,13 +173,13 @@ static void self_testing(void) } break; case ST_STAGE_3: - if (rgb_state.index != DRIVER_LED_TOTAL/2) { + if (rgb_state.index != RGB_MATRIX_LED_COUNT/2) { IS31FL3731_set_color_all(0, 0, 0); } // light left and right - if (rgb_state.index == DRIVER_LED_TOTAL/2) { + if (rgb_state.index == RGB_MATRIX_LED_COUNT/2) { if (rgb_state.duration) { rgb_state.duration--; } else { @@ -207,7 +207,7 @@ static void self_testing(void) update_ticks(); } -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location @@ -299,7 +299,7 @@ void matrix_init_kb(void) #ifdef DRIVER_ADDR_2 IS31FL3731_init(DRIVER_ADDR_2); #endif - for (int index = 0; index < DRIVER_LED_TOTAL; index++) { + for (int index = 0; index < RGB_MATRIX_LED_COUNT; index++) { IS31FL3731_set_led_control_register(index, true, true, true); } IS31FL3731_update_led_control_registers(DRIVER_ADDR_1, 0); @@ -353,16 +353,16 @@ void rgblight_call_driver(LED_TYPE *start_led, uint8_t num_leds) { if (rgb_state.state != NORMAL) return; - for (uint8_t i = 0; i < DRIVER_LED_TOTAL; i++) { + for (uint8_t i = 0; i < RGB_MATRIX_LED_COUNT; i++) { IS31FL3731_set_color(i, start_led[i].r, start_led[i].g, start_led[i].b); } LED_TYPE leds[4]; for (int i = 0; i < 4; i++) { - leds[i].r = start_led[DRIVER_LED_TOTAL+i].g; - leds[i].g = start_led[DRIVER_LED_TOTAL+i].r; - leds[i].b = start_led[DRIVER_LED_TOTAL+i].b; + leds[i].r = start_led[RGB_MATRIX_LED_COUNT+i].g; + leds[i].g = start_led[RGB_MATRIX_LED_COUNT+i].r; + leds[i].b = start_led[RGB_MATRIX_LED_COUNT+i].b; } - //ws2812_setleds(start_led+DRIVER_LED_TOTAL, 4); + //ws2812_setleds(start_led+RGB_MATRIX_LED_COUNT, 4); ws2812_setleds(leds, 4); } diff --git a/keyboards/neson_design/700e/config.h b/keyboards/neson_design/700e/config.h index 83cc780d80c..d5a35e21efd 100644 --- a/keyboards/neson_design/700e/config.h +++ b/keyboards/neson_design/700e/config.h @@ -47,7 +47,7 @@ #define DRIVER_ADDR_1 0b1110100 #define DRIVER_ADDR_2 0b1110111 #define DRIVER_COUNT 2 -#define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL+DRIVER_2_LED_TOTAL) +#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL+DRIVER_2_LED_TOTAL) #define LED_CAPS_LOCK_PIN F5 diff --git a/keyboards/neson_design/n6/config.h b/keyboards/neson_design/n6/config.h index 7d27825eaf2..e06f9c8086b 100644 --- a/keyboards/neson_design/n6/config.h +++ b/keyboards/neson_design/n6/config.h @@ -47,7 +47,7 @@ #define DRIVER_ADDR_1 0b1110100 #define DRIVER_ADDR_2 0b1110111 #define DRIVER_COUNT 2 -#define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL+DRIVER_2_LED_TOTAL) +#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL+DRIVER_2_LED_TOTAL) #define LED_CAPS_LOCK_PIN F5 diff --git a/keyboards/neson_design/n6/n6.c b/keyboards/neson_design/n6/n6.c index 4d5927cae1c..a606e93c8fd 100644 --- a/keyboards/neson_design/n6/n6.c +++ b/keyboards/neson_design/n6/n6.c @@ -115,7 +115,7 @@ static void self_testing(void) } if (rgb_state.index >= ST_LEFT_END) { - for (int i = rgb_state.index - 1; i < DRIVER_LED_TOTAL - rgb_state.index + 1; i++) { + for (int i = rgb_state.index - 1; i < RGB_MATRIX_LED_COUNT - rgb_state.index + 1; i++) { IS31FL3731_set_color(i, led.r, led.g, led.b); } if (rgb_state.index == ST_LEFT_END) { @@ -177,13 +177,13 @@ static void self_testing(void) } break; case ST_STAGE_3: - if (rgb_state.index != DRIVER_LED_TOTAL/2) { + if (rgb_state.index != RGB_MATRIX_LED_COUNT/2) { IS31FL3731_set_color_all(0, 0, 0); } // light left and right - if (rgb_state.index == DRIVER_LED_TOTAL/2) { + if (rgb_state.index == RGB_MATRIX_LED_COUNT/2) { if (rgb_state.duration) { rgb_state.duration--; } else { @@ -211,7 +211,7 @@ static void self_testing(void) update_ticks(); } -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location @@ -303,7 +303,7 @@ void matrix_init_kb(void) #ifdef DRIVER_ADDR_2 IS31FL3731_init(DRIVER_ADDR_2); #endif - for (int index = 0; index < DRIVER_LED_TOTAL; index++) { + for (int index = 0; index < RGB_MATRIX_LED_COUNT; index++) { IS31FL3731_set_led_control_register(index, true, true, true); } IS31FL3731_update_led_control_registers(DRIVER_ADDR_1, 0); @@ -355,10 +355,10 @@ void rgblight_call_driver(LED_TYPE *start_led, uint8_t num_leds) { if (rgb_state.state != NORMAL) return; - for (uint8_t i = 0; i < DRIVER_LED_TOTAL; i++) { + for (uint8_t i = 0; i < RGB_MATRIX_LED_COUNT; i++) { IS31FL3731_set_color(i, start_led[i].r, start_led[i].g, start_led[i].b); } - ws2812_setleds(start_led+DRIVER_LED_TOTAL, 1); + ws2812_setleds(start_led+RGB_MATRIX_LED_COUNT, 1); } bool led_update_kb(led_t led_state) diff --git a/keyboards/novelkeys/nk20/config.h b/keyboards/novelkeys/nk20/config.h index 7b56d50c6f6..f5a75dd14f3 100644 --- a/keyboards/novelkeys/nk20/config.h +++ b/keyboards/novelkeys/nk20/config.h @@ -75,7 +75,7 @@ along with this program. If not, see . #define WS2812_DMA_CHANNEL 3 #define RGBLED_NUM 20 -#define DRIVER_LED_TOTAL 20 +#define RGB_MATRIX_LED_COUNT 20 #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 210 #define RGB_DISABLE_WHEN_USB_SUSPENDED #define RGB_MATRIX_KEYPRESSES diff --git a/keyboards/novelkeys/nk65/config.h b/keyboards/novelkeys/nk65/config.h index df64bbe83ed..9640704b486 100755 --- a/keyboards/novelkeys/nk65/config.h +++ b/keyboards/novelkeys/nk65/config.h @@ -112,7 +112,7 @@ along with this program. If not, see . #define RGB_BACKLIGHT_COLOR_2 { .h = 127, .s = 255 } #define DRIVER_COUNT 2 -#define DRIVER_LED_TOTAL 128 +#define RGB_MATRIX_LED_COUNT 128 // These define which keys in the matrix are alphas/mods // Used for backlight effects so colors are different for diff --git a/keyboards/novelkeys/nk65b/config.h b/keyboards/novelkeys/nk65b/config.h index 45603267a10..0976b425439 100755 --- a/keyboards/novelkeys/nk65b/config.h +++ b/keyboards/novelkeys/nk65b/config.h @@ -79,7 +79,7 @@ along with this program. If not, see . #define WS2812_DMA_CHANNEL 3 #define RGBLED_NUM 68 -#define DRIVER_LED_TOTAL 68 +#define RGB_MATRIX_LED_COUNT 68 #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 130 #define RGB_DISABLE_WHEN_USB_SUSPENDED #define RGB_MATRIX_KEYPRESSES diff --git a/keyboards/novelkeys/nk87/config.h b/keyboards/novelkeys/nk87/config.h index e5b955c3f87..0320f35d849 100755 --- a/keyboards/novelkeys/nk87/config.h +++ b/keyboards/novelkeys/nk87/config.h @@ -112,7 +112,7 @@ along with this program. If not, see . #define RGB_BACKLIGHT_COLOR_2 { .h = 127, .s = 255 } #define DRIVER_COUNT 2 -#define DRIVER_LED_TOTAL 128 +#define RGB_MATRIX_LED_COUNT 128 // These define which keys in the matrix are alphas/mods // Used for backlight effects so colors are different for diff --git a/keyboards/novelkeys/nk87b/config.h b/keyboards/novelkeys/nk87b/config.h index 32bbb5e69e9..7830b398b11 100644 --- a/keyboards/novelkeys/nk87b/config.h +++ b/keyboards/novelkeys/nk87b/config.h @@ -79,7 +79,7 @@ along with this program. If not, see . #define WS2812_DMA_CHANNEL 3 #define RGBLED_NUM 87 -#define DRIVER_LED_TOTAL 87 +#define RGB_MATRIX_LED_COUNT 87 #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 114 #define RGB_DISABLE_WHEN_USB_SUSPENDED #define RGB_MATRIX_KEYPRESSES diff --git a/keyboards/om60/config.h b/keyboards/om60/config.h new file mode 100644 index 00000000000..624579be7ea --- /dev/null +++ b/keyboards/om60/config.h @@ -0,0 +1,104 @@ +/* +Copyright 2021 Salicylic_Acid +Copyright 2021 3araht +Copyright 2022 jun10000 + +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 "config_common.h" + + +/* key matrix size */ +#define MATRIX_ROWS 10 +#define MATRIX_COLS 8 + +// wiring of each half +#define MATRIX_ROW_PINS { D1, D0, D4, C6, D7 } +#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2, E6 } + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* ws2812 RGB LED */ +#define RGB_DI_PIN D3 + +#ifndef RGBLED_NUM + #define RGBLED_NUM 69 + #define RGBLIGHT_LED_MAP { \ + 0, 1, 2, 3, \ + 8, 7, 6, 5, 4, \ + 9,10,11,12,13, \ + 18,17,16,15,14, \ + 19,20,21,22,23, \ + 28,27,26,25,24, \ + 29,30,31,32,33, \ + 38,37,36,35,34, \ + 39,40,41,42,43, \ + 48,47,46,45,44, \ + 49,50,51,52,53, \ + 58,57,56,55,54, \ + 59,60,61,62,63, \ + 68,67,66,65,64 \ + } + + #define RGBLIGHT_SLEEP +#endif + +#define RGBLIGHT_EFFECT_BREATHING +#define RGBLIGHT_EFFECT_RAINBOW_MOOD +#define RGBLIGHT_EFFECT_RAINBOW_SWIRL +#define RGBLIGHT_EFFECT_SNAKE +#define RGBLIGHT_EFFECT_KNIGHT +#define RGBLIGHT_EFFECT_CHRISTMAS +#define RGBLIGHT_EFFECT_STATIC_GRADIENT +#define RGBLIGHT_EFFECT_RGB_TEST +#define RGBLIGHT_EFFECT_ALTERNATING +#define RGBLIGHT_EFFECT_TWINKLE + +#ifndef IOS_DEVICE_ENABLE + #define RGBLIGHT_LIMIT_VAL 90 + #define RGBLIGHT_VAL_STEP 17 +#else + #define RGBLIGHT_LIMIT_VAL 30 + #define RGBLIGHT_VAL_STEP 4 +#endif +#define RGBLIGHT_HUE_STEP 10 +#define RGBLIGHT_SAT_STEP 17 + +#if defined(RGBLIGHT_ENABLE) && !defined(IOS_DEVICE_ENABLE) +// USB_MAX_POWER_CONSUMPTION value for naked48 keyboard +// 120 RGBoff, OLEDoff +// 120 OLED +// 330 RGB 6 +// 300 RGB 32 +// 310 OLED & RGB 32 + #define USB_MAX_POWER_CONSUMPTION 400 +#else + // fix iPhone and iPad power adapter issue + // iOS device need lessthan 100 + #define USB_MAX_POWER_CONSUMPTION 100 +#endif + +#define TAP_CODE_DELAY 10 + +#define ENCODERS_PAD_A { B4 } +#define ENCODERS_PAD_B { B5 } diff --git a/keyboards/om60/info.json b/keyboards/om60/info.json new file mode 100644 index 00000000000..319dca00717 --- /dev/null +++ b/keyboards/om60/info.json @@ -0,0 +1,16 @@ +{ + "keyboard_name": "OM60", + "manufacturer": "jun10000", + "url": "https://github.com/jun10000", + "maintainer": "jun10000", + "usb": { + "vid": "0x6A6E", + "pid": "0x0001", + "device_version": "1.0.0" + }, + "layouts": { + "LAYOUT": { + "layout": [{"label":"0,0", "x":0, "y":0}, {"label":"4,0", "x":1.5, "y":0}, {"label":"4,1", "x":2.5, "y":0}, {"label":"4,2", "x":3.5, "y":0}, {"label":"4,3", "x":4.5, "y":0}, {"label":"4,4", "x":5.5, "y":0}, {"label":"4,5", "x":6.5, "y":0}, {"label":"4,6", "x":7.5, "y":0}, {"label":"4,7", "x":8.5, "y":0}, {"label":"9,0", "x":9.5, "y":0}, {"label":"9,1", "x":10.5, "y":0}, {"label":"9,2", "x":11.5, "y":0}, {"label":"9,3", "x":12.5, "y":0}, {"label":"9,4", "x":13.5, "y":0}, {"label":"0,1", "x":1.5, "y":1}, {"label":"0,2", "x":2.5, "y":1}, {"label":"0,3", "x":3.5, "y":1}, {"label":"0,4", "x":4.5, "y":1}, {"label":"0,5", "x":5.5, "y":1}, {"label":"0,6", "x":6.5, "y":1}, {"label":"0,7", "x":7.5, "y":1}, {"label":"5,0", "x":8.5, "y":1}, {"label":"5,1", "x":9.5, "y":1}, {"label":"5,2", "x":10.5, "y":1}, {"label":"5,3", "x":11.5, "y":1}, {"label":"5,4", "x":12.5, "y":1}, {"label":"5,5", "x":13.5, "y":1}, {"label":"1,0", "x":0, "y":2}, {"label":"1,1", "x":1.5, "y":2}, {"label":"1,2", "x":2.5, "y":2}, {"label":"1,3", "x":3.5, "y":2}, {"label":"1,4", "x":4.5, "y":2}, {"label":"1,5", "x":5.5, "y":2}, {"label":"1,6", "x":6.5, "y":2}, {"label":"1,7", "x":7.5, "y":2}, {"label":"6,0", "x":8.5, "y":2}, {"label":"6,1", "x":9.5, "y":2}, {"label":"6,2", "x":10.5, "y":2}, {"label":"6,3", "x":11.5, "y":2}, {"label":"6,4", "x":12.5, "y":2}, {"label":"6,5", "x":13.5, "y":2}, {"label":"2,0", "x":0, "y":3}, {"label":"2,1", "x":1.5, "y":3}, {"label":"2,2", "x":2.5, "y":3}, {"label":"2,3", "x":3.5, "y":3}, {"label":"2,4", "x":4.5, "y":3}, {"label":"2,5", "x":5.5, "y":3}, {"label":"2,6", "x":6.5, "y":3}, {"label":"2,7", "x":7.5, "y":3}, {"label":"7,0", "x":8.5, "y":3}, {"label":"7,1", "x":9.5, "y":3}, {"label":"7,2", "x":10.5, "y":3}, {"label":"7,3", "x":11.5, "y":3}, {"label":"7,4", "x":12.5, "y":3}, {"label":"7,5", "x":13.5, "y":3}, {"label":"3,0", "x":0, "y":4}, {"label":"3,1", "x":1.5, "y":4}, {"label":"3,2", "x":2.5, "y":4}, {"label":"3,3", "x":3.5, "y":4}, {"label":"3,4", "x":4.5, "y":4}, {"label":"3,5", "x":5.5, "y":4}, {"label":"3,6", "x":6.5, "y":4}, {"label":"3,7", "x":7.5, "y":4}, {"label":"8,0", "x":8.5, "y":4}, {"label":"8,1", "x":9.5, "y":4}, {"label":"8,2", "x":10.5, "y":4}, {"label":"8,3", "x":11.5, "y":4}, {"label":"8,4", "x":12.5, "y":4}, {"label":"8,5", "x":13.5, "y":4}] + } + } +} \ No newline at end of file diff --git a/keyboards/om60/keymaps/default/keymap.c b/keyboards/om60/keymaps/default/keymap.c new file mode 100644 index 00000000000..336b98d3bf2 --- /dev/null +++ b/keyboards/om60/keymaps/default/keymap.c @@ -0,0 +1,70 @@ +/* +Copyright 2021 Salicylic_Acid +Copyright 2021 3araht +Copyright 2022 jun10000 + +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 . +*/ + +#include QMK_KEYBOARD_H + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(_______, _______) }, + [2] = { ENCODER_CCW_CW(_______, _______) }, +}; +#endif + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + //,-----------------------------------------------------------------------------------------------------------------------------. + KC_MUTE, 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_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, KC_BSPC, + //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + TO(0), KC_GRV, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + TO(1), KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, KC_RSFT, + //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + TO(2),KC_LCTRL, KC_LGUI, KC_LALT, KC_DEL, KC_LBRC, KC_SPC, KC_SPC, KC_RBRC, KC_RALT, KC_CAPS, KC_LEFT, KC_DOWN, KC_RGHT + //|-----------------------------------------------------------------------------------------------------------------------------' + ), + [1] = LAYOUT( + //,-----------------------------------------------------------------------------------------------------------------------------. + _______, KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + _______, _______, _______, _______, _______, _______, _______, KC_SLSH, KC_ASTR, KC_MINS, KC_PLUS, KC_BSPC, _______, + //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + TO(0), _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL, _______, + //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + TO(1), _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DOT, KC_ENT, _______, _______, + //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + TO(2), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + //|-----------------------------------------------------------------------------------------------------------------------------' + ), + [2] = LAYOUT( + //,-----------------------------------------------------------------------------------------------------------------------------. + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, EE_CLR, + //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + _______, _______, _______, KC_UP, _______, _______, _______,RGB_RMOD, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, + //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + TO(0), _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, + //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + TO(1), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + TO(2), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + //|-----------------------------------------------------------------------------------------------------------------------------' + ) +}; diff --git a/keyboards/om60/keymaps/default/rules.mk b/keyboards/om60/keymaps/default/rules.mk new file mode 100644 index 00000000000..8acf3d642bf --- /dev/null +++ b/keyboards/om60/keymaps/default/rules.mk @@ -0,0 +1,2 @@ +LTO_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/om60/keymaps/via/keymap.c b/keyboards/om60/keymaps/via/keymap.c new file mode 100644 index 00000000000..beb4ab962bf --- /dev/null +++ b/keyboards/om60/keymaps/via/keymap.c @@ -0,0 +1,84 @@ +/* +Copyright 2021 Salicylic_Acid +Copyright 2021 3araht +Copyright 2022 jun10000 + +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 . +*/ + +#include QMK_KEYBOARD_H + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(_______, _______) }, + [2] = { ENCODER_CCW_CW(_______, _______) }, + [3] = { ENCODER_CCW_CW(_______, _______) }, +}; +#endif + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + //,-----------------------------------------------------------------------------------------------------------------------------. + KC_MUTE, 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_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, KC_BSPC, + //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + TO(0), KC_GRV, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + TO(1), KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, KC_RSFT, + //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + TO(2),KC_LCTRL, KC_LGUI, KC_LALT, KC_DEL, KC_LBRC, KC_SPC, KC_SPC, KC_RBRC, KC_RALT, KC_CAPS, KC_LEFT, KC_DOWN, KC_RGHT + //|-----------------------------------------------------------------------------------------------------------------------------' + ), + [1] = LAYOUT( + //,-----------------------------------------------------------------------------------------------------------------------------. + _______, KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + _______, _______, _______, _______, _______, _______, _______, KC_SLSH, KC_ASTR, KC_MINS, KC_PLUS, KC_BSPC, _______, + //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + TO(0), _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL, _______, + //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + TO(1), _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DOT, KC_ENT, _______, _______, + //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + TO(2), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + //|-----------------------------------------------------------------------------------------------------------------------------' + ), + [2] = LAYOUT( + //,-----------------------------------------------------------------------------------------------------------------------------. + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, EE_CLR, + //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + _______, _______, _______, KC_UP, _______, _______, _______,RGB_RMOD, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, + //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + TO(0), _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, + //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + TO(1), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + TO(2), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + //|-----------------------------------------------------------------------------------------------------------------------------' + ), + [3] = LAYOUT( + //,-----------------------------------------------------------------------------------------------------------------------------. + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + TO(0), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + TO(1), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + TO(2), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + //|-----------------------------------------------------------------------------------------------------------------------------' + ) +}; diff --git a/keyboards/om60/keymaps/via/rules.mk b/keyboards/om60/keymaps/via/rules.mk new file mode 100644 index 00000000000..1189f4ad192 --- /dev/null +++ b/keyboards/om60/keymaps/via/rules.mk @@ -0,0 +1,3 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/om60/matrix.c b/keyboards/om60/matrix.c new file mode 100644 index 00000000000..36867804689 --- /dev/null +++ b/keyboards/om60/matrix.c @@ -0,0 +1,166 @@ +/* +Copyright 2012-2018 Jun Wako, Jack Humbert, Yiancar +Copyright 2022 jun10000 + +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 . +*/ +#include "quantum.h" + +#if (MATRIX_COLS <= 8) +# define ROW_SHIFTER ((uint8_t)1) +#elif (MATRIX_COLS <= 16) +# define ROW_SHIFTER ((uint16_t)1) +#elif (MATRIX_COLS <= 32) +# define ROW_SHIFTER ((uint32_t)1) +#endif + +static const pin_t row_pins[MATRIX_ROWS] = MATRIX_ROW_PINS; +static const pin_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS; + +static void select_row(uint8_t row) +{ + setPinOutput(row_pins[row]); + writePinLow(row_pins[row]); +} + +static void unselect_row(uint8_t row) +{ + setPinInputHigh(row_pins[row]); +} + +static void unselect_rows(void) +{ + for(uint8_t x = 0; x < MATRIX_ROWS; x++) { + setPinInputHigh(row_pins[x]); + } +} + +static void select_col(uint8_t col) +{ + setPinOutput(col_pins[col]); + writePinLow(col_pins[col]); +} + +static void unselect_col(uint8_t col) +{ + setPinInputHigh(col_pins[col]); +} + +static void unselect_cols(void) +{ + for(uint8_t x = 0; x < MATRIX_COLS; x++) { + setPinInputHigh(col_pins[x]); + } +} + +static void init_pins(void) { + unselect_rows(); + unselect_cols(); + for (uint8_t x = 0; x < MATRIX_COLS; x++) { + setPinInputHigh(col_pins[x]); + } + for (uint8_t x = 0; x < MATRIX_ROWS; x++) { + setPinInputHigh(row_pins[x]); + } +} + +static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) +{ + // Store last value of row prior to reading + matrix_row_t last_row_value = current_matrix[current_row]; + + // Clear data in matrix row + current_matrix[current_row] = 0; + + // Select row and wait for row selecton to stabilize + select_row(current_row); + wait_us(30); + + // For each col... + for(uint8_t col_index = 0; col_index < MATRIX_COLS; col_index++) { + + // Select the col pin to read (active low) + uint8_t pin_state = readPin(col_pins[col_index]); + + // Populate the matrix row with the state of the col pin + current_matrix[current_row] |= pin_state ? 0 : (ROW_SHIFTER << col_index); + } + + // Unselect row + unselect_row(current_row); + + return (last_row_value != current_matrix[current_row]); +} + +static bool read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col) +{ + bool matrix_changed = false; + + // Select col and wait for col selecton to stabilize + select_col(current_col); + wait_us(30); + + // For each row... + for(uint8_t row_index = 0; row_index < MATRIX_ROWS/2; row_index++) + { + uint8_t tmp = row_index + MATRIX_ROWS/2; + // Store last value of row prior to reading + matrix_row_t last_row_value = current_matrix[tmp]; + + // Check row pin state + if (readPin(row_pins[row_index]) == 0) + { + // Pin LO, set col bit + current_matrix[tmp] |= (ROW_SHIFTER << current_col); + } + else + { + // Pin HI, clear col bit + current_matrix[tmp] &= ~(ROW_SHIFTER << current_col); + } + + // Determine if the matrix changed state + if ((last_row_value != current_matrix[tmp]) && !(matrix_changed)) + { + matrix_changed = true; + } + } + + // Unselect col + unselect_col(current_col); + + return matrix_changed; +} + +void matrix_init_custom(void) { + // initialize key pins + init_pins(); +} + +bool matrix_scan_custom(matrix_row_t current_matrix[]) +{ + bool changed = false; + + // Set row, read cols + for (uint8_t current_row = 0; current_row < MATRIX_ROWS / 2; current_row++) { + changed |= read_cols_on_row(current_matrix, current_row); + } + //else + // Set col, read rows + for (uint8_t current_col = 0; current_col < MATRIX_COLS; current_col++) { + changed |= read_rows_on_col(current_matrix, current_col); + } + + return (uint8_t)changed; +} diff --git a/keyboards/om60/om60.c b/keyboards/om60/om60.c new file mode 100644 index 00000000000..9e66d6721c7 --- /dev/null +++ b/keyboards/om60/om60.c @@ -0,0 +1,19 @@ +/* +Copyright 2021 Salicylic_Acid +Copyright 2022 jun10000 + +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 . +*/ + +#include "om60.h" diff --git a/keyboards/om60/om60.h b/keyboards/om60/om60.h new file mode 100644 index 00000000000..669a610031a --- /dev/null +++ b/keyboards/om60/om60.h @@ -0,0 +1,41 @@ +/* +Copyright 2021 Salicylic_Acid +Copyright 2022 jun10000 + +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 "quantum.h" + +#define LAYOUT( \ + L01, L05, L10, L15, L20, L25, L30, L35, L40, R45, R50, R55, R60, R65, \ + L06, L11, L16, L21, L26, L31, L36, R41, R46, R51, R56, R61, R66, \ + L02, L07, L12, L17, L22, L27, L32, L37, R42, R47, R52, R57, R62, R67, \ + L03, L08, L13, L18, L23, L28, L33, L38, R43, R48, R53, R58, R63, R68, \ + L04, L09, L14, L19, L24, L29, L34, L39, R44, R49, R54, R59, R64, R69 \ + ) \ + { \ + { L01, L06, L11, L16, L21, L26, L31, L36 }, \ + { L02, L07, L12, L17, L22, L27, L32, L37 }, \ + { L03, L08, L13, L18, L23, L28, L33, L38 }, \ + { L04, L09, L14, L19, L24, L29, L34, L39 }, \ + { L05, L10, L15, L20, L25, L30, L35, L40 }, \ + { R41, R46, R51, R56, R61, R66, KC_NO, KC_NO }, \ + { R42, R47, R52, R57, R62, R67, KC_NO, KC_NO }, \ + { R43, R48, R53, R58, R63, R68, KC_NO, KC_NO }, \ + { R44, R49, R54, R59, R64, R69, KC_NO, KC_NO }, \ + { R45, R50, R55, R60, R65, KC_NO, KC_NO, KC_NO } \ + } diff --git a/keyboards/om60/readme.md b/keyboards/om60/readme.md new file mode 100644 index 00000000000..5d9d096d56a --- /dev/null +++ b/keyboards/om60/readme.md @@ -0,0 +1,27 @@ +# OM60 + +![OM60](https://i.imgur.com/WoO8oezh.jpg) + +The 60% Poker compatible Ortholinear keyboard or jumbo Macropad. + +* Keyboard Maintainer: [jun10000](https://github.com/jun10000) +* Hardware Supported: OM60 PCB, Pro Micro +* Hardware Availability: [junsgamingstore.booth.pm](https://junsgamingstore.booth.pm/) + +Make example for this keyboard (after setting up your build environment): + + make om60:default + +Flashing example for this keyboard: + + make om60: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 \ No newline at end of file diff --git a/keyboards/om60/rules.mk b/keyboards/om60/rules.mk new file mode 100644 index 00000000000..9dc673edbff --- /dev/null +++ b/keyboards/om60/rules.mk @@ -0,0 +1,24 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = no # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output + +ENCODER_ENABLE = yes + +CUSTOM_MATRIX = lite + +SRC += matrix.c diff --git a/keyboards/omkbd/runner3680/5x6_5x8/config.h b/keyboards/omkbd/runner3680/5x6_5x8/config.h index 6348f10eb1e..29c4c320158 100644 --- a/keyboards/omkbd/runner3680/5x6_5x8/config.h +++ b/keyboards/omkbd/runner3680/5x6_5x8/config.h @@ -61,7 +61,7 @@ #define RGBLIGHT_LIMIT_VAL 100 #endif #ifdef RGB_MATRIX_ENABLE -#define DRIVER_LED_TOTAL 70 +#define RGB_MATRIX_LED_COUNT 70 #define RGB_MATRIX_SPLIT { 30, 40 } // Number of LEDs #endif diff --git a/keyboards/opendeck/32/rev1/config.h b/keyboards/opendeck/32/rev1/config.h index 6a87ad86b49..87b153c7362 100644 --- a/keyboards/opendeck/32/rev1/config.h +++ b/keyboards/opendeck/32/rev1/config.h @@ -29,7 +29,7 @@ // RGB matrix #define DRIVER_ADDR_1 0b1110100 #define DRIVER_COUNT 1 -#define DRIVER_LED_TOTAL (4 * 8 * 3) +#define RGB_MATRIX_LED_COUNT (4 * 8 * 3) #define RGB_DISABLE_WHEN_USB_SUSPENDED #define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_SPIRAL #define RGB_MATRIX_DISABLE_KEYCODES diff --git a/keyboards/opendeck/32/rev1/rev1.c b/keyboards/opendeck/32/rev1/rev1.c index 332dc3cc400..be50d91944e 100644 --- a/keyboards/opendeck/32/rev1/rev1.c +++ b/keyboards/opendeck/32/rev1/rev1.c @@ -17,7 +17,7 @@ #include "rev1.h" #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location diff --git a/keyboards/owlab/voice65/hotswap/config.h b/keyboards/owlab/voice65/hotswap/config.h index 507b1f75e28..6b8bf0b3ac6 100644 --- a/keyboards/owlab/voice65/hotswap/config.h +++ b/keyboards/owlab/voice65/hotswap/config.h @@ -71,7 +71,7 @@ along with this program. If not, see . # define RGB_MATRIX_STARTUP_VAL 128 # define DRIVER_ADDR_1 0b0110000 # define DRIVER_COUNT 1 -# define DRIVER_LED_TOTAL 67 +# define RGB_MATRIX_LED_COUNT 67 // RGB Matrix Animation modes. Explicitly enabled // For full list of effects, see: // https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects diff --git a/keyboards/owlab/voice65/hotswap/hotswap.c b/keyboards/owlab/voice65/hotswap/hotswap.c index ca5ce7bb8b3..ed40d335325 100644 --- a/keyboards/owlab/voice65/hotswap/hotswap.c +++ b/keyboards/owlab/voice65/hotswap/hotswap.c @@ -17,7 +17,7 @@ #include "hotswap.h" #ifdef RGB_MATRIX_ENABLE -const is31_led g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led g_is31_leds[RGB_MATRIX_LED_COUNT] = { {0, CS3_SW1, CS2_SW1, CS1_SW1}, /* RGB0-ESC ROW0*/ {0, CS6_SW1, CS5_SW1, CS4_SW1}, /* RGB1-1 */ {0, CS9_SW1, CS8_SW1, CS7_SW1}, /* RGB2-2 */ diff --git a/keyboards/owlab/voice65/soldered/config.h b/keyboards/owlab/voice65/soldered/config.h index 74ab2db520b..1bf9702a3e9 100644 --- a/keyboards/owlab/voice65/soldered/config.h +++ b/keyboards/owlab/voice65/soldered/config.h @@ -70,7 +70,7 @@ along with this program. If not, see . # define RGB_MATRIX_STARTUP_VAL 128 # define DRIVER_ADDR_1 0b0110000 # define DRIVER_COUNT 1 -# define DRIVER_LED_TOTAL 71 +# define RGB_MATRIX_LED_COUNT 71 // RGB Matrix Animation modes. Explicitly enabled // For full list of effects, see: diff --git a/keyboards/owlab/voice65/soldered/soldered.c b/keyboards/owlab/voice65/soldered/soldered.c index bbd2daf2931..cea25b093eb 100644 --- a/keyboards/owlab/voice65/soldered/soldered.c +++ b/keyboards/owlab/voice65/soldered/soldered.c @@ -17,7 +17,7 @@ #include "soldered.h" #ifdef RGB_MATRIX_ENABLE -const is31_led g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led g_is31_leds[RGB_MATRIX_LED_COUNT] = { {0, CS3_SW1, CS2_SW1, CS1_SW1}, /* RGB0-ESC ROW0*/ {0, CS6_SW1, CS5_SW1, CS4_SW1}, /* RGB1-1 */ {0, CS9_SW1, CS8_SW1, CS7_SW1}, /* RGB2-2 */ diff --git a/keyboards/paprikman/albacore/config.h b/keyboards/paprikman/albacore/config.h index 862f82ea545..0835c606fa3 100644 --- a/keyboards/paprikman/albacore/config.h +++ b/keyboards/paprikman/albacore/config.h @@ -42,7 +42,7 @@ along with this program. If not, see . #define RGB_DI_PIN B3 #ifdef RGB_MATRIX_ENABLE - #define DRIVER_LED_TOTAL 8 + #define RGB_MATRIX_LED_COUNT 8 #define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects #define RGB_DISABLE_WHEN_USB_SUSPENDED #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 220 diff --git a/keyboards/percent/canoe_gen2/config.h b/keyboards/percent/canoe_gen2/config.h index 1f05360aae6..aec0cdfe5e1 100644 --- a/keyboards/percent/canoe_gen2/config.h +++ b/keyboards/percent/canoe_gen2/config.h @@ -48,7 +48,7 @@ along with this program. If not, see . /* Backlight configuration */ #define RGB_DI_PIN B7 -#define DRIVER_LED_TOTAL 77 +#define RGB_MATRIX_LED_COUNT 77 #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 #define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_LEFT_RIGHT diff --git a/keyboards/phase_studio/titan65/hotswap/config.h b/keyboards/phase_studio/titan65/hotswap/config.h index 9b942b20d38..06c32565010 100644 --- a/keyboards/phase_studio/titan65/hotswap/config.h +++ b/keyboards/phase_studio/titan65/hotswap/config.h @@ -38,7 +38,7 @@ #define DIODE_DIRECTION COL2ROW #define RGB_DI_PIN E6 -#define DRIVER_LED_TOTAL 67 +#define RGB_MATRIX_LED_COUNT 67 #define RGB_MATRIX_KEYPRESSES // reacts to keypresses // #define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 // limits maximum brightness of LEDs to 200 out of 255. If not defined maximum brightness is set to 255 diff --git a/keyboards/planck/ez/config.h b/keyboards/planck/ez/config.h index c9ed9e59ba5..1840e087cfa 100644 --- a/keyboards/planck/ez/config.h +++ b/keyboards/planck/ez/config.h @@ -109,7 +109,7 @@ #define DRIVER_ADDR_1 0b1010000 #define DRIVER_COUNT 1 -#define DRIVER_LED_TOTAL 47 +#define RGB_MATRIX_LED_COUNT 47 #define RGB_MATRIX_KEYPRESSES #define RGB_MATRIX_FRAMEBUFFER_EFFECTS diff --git a/keyboards/planck/ez/ez.c b/keyboards/planck/ez/ez.c index 25dfe9adfb6..77ae20ba5a6 100644 --- a/keyboards/planck/ez/ez.c +++ b/keyboards/planck/ez/ez.c @@ -21,7 +21,7 @@ keyboard_config_t keyboard_config; #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location diff --git a/keyboards/planck/keymaps/charlesrocket/keymap.c b/keyboards/planck/keymaps/charlesrocket/keymap.c index f6229d2d692..d3d2f824209 100644 --- a/keyboards/planck/keymaps/charlesrocket/keymap.c +++ b/keyboards/planck/keymaps/charlesrocket/keymap.c @@ -71,7 +71,7 @@ void keyboard_post_init_user(void) { rgb_matrix_enable(); } -const uint8_t PROGMEM ledmap[][DRIVER_LED_TOTAL][3] = { +const uint8_t PROGMEM ledmap[][RGB_MATRIX_LED_COUNT][3] = { [0] = { {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255} }, [1] = { {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255} }, @@ -83,7 +83,7 @@ const uint8_t PROGMEM ledmap[][DRIVER_LED_TOTAL][3] = { }; void set_layer_color(int layer) { - for (int i = 0; i < DRIVER_LED_TOTAL; i++) { + for (int i = 0; i < RGB_MATRIX_LED_COUNT; i++) { HSV hsv = { .h = pgm_read_byte(&ledmap[layer][i][0]), .s = pgm_read_byte(&ledmap[layer][i][1]), diff --git a/keyboards/planck/keymaps/dshields/keymap.c b/keyboards/planck/keymaps/dshields/keymap.c index 948f978330a..538c41922a6 100644 --- a/keyboards/planck/keymaps/dshields/keymap.c +++ b/keyboards/planck/keymaps/dshields/keymap.c @@ -4,7 +4,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [DEF] = LAYOUT_planck_grid( KC_Q, KC_W, KC_E, KC_R, KC_T, KC_ESC, KC_BSPC, KC_Y, KC_U, KC_I, KC_O, KC_P , - KC_A, KC_S, KC_D, KC_F, KC_G, KC_TAB, KC_ENT, KC_H, KC_J, KC_K, KC_L, KC_SCLN, + MT_A, MT_S, MT_D, MT_F, KC_G, KC_TAB, KC_ENT, KC_H, MT_J, MT_K, MT_L, MT_SCLN, KC_Z, KC_X, KC_C, KC_V, KC_B, OSMLSFT, DM_PLY1, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, OSMLCTL, KC_LGUI, OSMLALT, OSL_FUN, OSL_LWR, MT_SPC, MT_SPC, OSL_RSE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT ), diff --git a/keyboards/planck/keymaps/jimmysjolund/keymap.c b/keyboards/planck/keymaps/jimmysjolund/keymap.c index f3439096e31..91aaa0fa00c 100644 --- a/keyboards/planck/keymaps/jimmysjolund/keymap.c +++ b/keyboards/planck/keymaps/jimmysjolund/keymap.c @@ -53,23 +53,24 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | * `-----------------------------------------------------------------------------------' */ -/* Qwerty - jimmysjolund 2022-02-06 +/* Qwerty - jimmysjolund 2022-09-17 * ,-----------------------------------------------------------------------------------. - * | ` | Q | W | E | R | T | Y | U | I | O | P | Del | + * | Esc | Q | W | E | R | T | Y | U | I | O | P | Bksp | * |------+------+------+------+------+-------------+------+------+------+------+------| - * |Raise | A | S | D | F | G | H | J | K | L | ; | " | + * | Tab | A | S | D | F | G | H | J | K | L | ; | " | * |------+------+------+------+------+------|------+------+------+------+------+------| * |Lower | Z | X | C | V | B | N | M | , | . | / |Shift | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Esc | Tab | GUI |Shift | Bksp | Ctrl |Enter |Space |AltGr | Alt | Down | Up | + * |Raise |Ctrl+ | GUI |Shift |Bksp/ |Lower |Enter |Space |AltGr | Alt | Left |Right | + * | | Alt | | | Ctrl | | | | | | | | * `-----------------------------------------------------------------------------------' */ [_QWERTY] = LAYOUT_planck_grid( - KC_GRV, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, - RAISE, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, LOWER, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - KC_ESC, KC_TAB, KC_LGUI, KC_LSFT, KC_BSPC, KC_LCTL, KC_ENT, KC_SPC, KC_ALGR, KC_LALT, KC_DOWN, KC_UP + RAISE, LCTL(KC_LALT), KC_LGUI, KC_LSFT, LCTL_T(KC_BSPC), LOWER, KC_ENT, KC_SPC, KC_ALGR, KC_LALT, KC_LEFT, KC_RGHT ), /* Colemak Original @@ -85,20 +86,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ /* Colemak jimmysjolund * ,-----------------------------------------------------------------------------------. - * | ` | Q | W | F | P | G | J | L | U | Y | ; | Del | + * | Esc | Q | W | F | P | G | J | L | U | Y | ; | Bksp | * |------+------+------+------+------+-------------+------+------+------+------+------| - * |Raise | A | R | S | T | D | H | N | E | I | O | " | + * | Tab | A | R | S | T | D | H | N | E | I | O | " | * |------+------+------+------+------+------|------+------+------+------+------+------| * |Lower | Z | X | C | V | B | K | M | , | . | / |Shift | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Esc | Tab | GUI |Shift | Bksp | Ctrl |Enter |Space |AltGr | Alt | Down | Up | + * |Raise |Ctrl+ | GUI |Shift |Bksp/ |Lower |Enter |Space |AltGr | Alt | Left |Right | + * | | Alt | | | Ctrl | | | | | | | | * `-----------------------------------------------------------------------------------' */ [_COLEMAK] = LAYOUT_planck_grid( - KC_GRV, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_DEL, - RAISE, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, + KC_ESC, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, + KC_TAB, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, LOWER, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - KC_ESC, KC_TAB, KC_LGUI, KC_LSFT, KC_BSPC, KC_LCTL, KC_ENT, KC_SPC, KC_ALGR, KC_LALT, KC_DOWN, KC_UP + RAISE, LCTL(KC_LALT), KC_LGUI, KC_LSFT, LCTL_T(KC_BSPC), LOWER, KC_ENT, KC_SPC, KC_ALGR, KC_LALT, KC_LEFT, KC_RGHT ), /* Dvorak @@ -119,21 +121,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT ), -/* Lower +/* Lower - Jimmy Sjölund 2022-09-19 * ,-----------------------------------------------------------------------------------. * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * | Del | ! | @ | # | $ | % | ^ | & | * | ( | ) | + | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / |Pg Up |Pg Dn | | + * | | | \ | : | ; | - | [ | ] | _ | , | . | / | ? | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | Left | Down | Up |Right | * `-----------------------------------------------------------------------------------' */ [_LOWER] = LAYOUT_planck_grid( 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_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, - _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______, + KC_DEL, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_PLUS, + KC_PIPE, KC_BSLS, KC_COLN, KC_SCLN, KC_MINS, KC_LBRC, KC_RBRC, KC_UNDS, KC_COMM, KC_DOT, KC_SLSH, KC_QUES, _______, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT ), @@ -188,7 +190,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_ADJUST] = LAYOUT_planck_grid( _______, QK_BOOT, DEBUG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL , _______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, PLOVER, _______, - _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, TERM_ON, TERM_OFF, _______, _______, _______, + _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) diff --git a/keyboards/planck/keymaps/oryx/keymap.c b/keyboards/planck/keymaps/oryx/keymap.c index 9e451a010a0..436deadee4d 100644 --- a/keyboards/planck/keymaps/oryx/keymap.c +++ b/keyboards/planck/keymaps/oryx/keymap.c @@ -64,7 +64,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; // clang-format on -const uint8_t PROGMEM ledmap[][DRIVER_LED_TOTAL][3] = { +const uint8_t PROGMEM ledmap[][RGB_MATRIX_LED_COUNT][3] = { [0] = {{42, 255, 255}, {42, 255, 255}, {42, 255, 255}, {42, 255, 255}, {42, 255, 255}, {42, 255, 255}, {42, 255, 255}, {42, 255, 255}, {42, 255, 255}, {42, 255, 255}, {42, 255, 255}, {42, 255, 255}, {42, 255, 255}, {146, 224, 255}, {146, 224, 255}, {146, 224, 255}, {146, 224, 255}, {146, 224, 255}, {146, 224, 255}, {42, 255, 255}, {42, 255, 255}, {42, 255, 255}, {42, 255, 255}, {42, 255, 255}, {42, 255, 255}, {146, 224, 255}, {146, 224, 255}, {146, 224, 255}, {146, 224, 255}, {146, 224, 255}, {146, 224, 255}, {42, 255, 255}, {42, 255, 255}, {42, 255, 255}, {42, 255, 255}, {42, 255, 255}, {42, 255, 255}, {42, 255, 255}, {42, 255, 255}, {42, 255, 255}, {42, 255, 255}, {42, 255, 255}, {42, 255, 255}, {32, 255, 234}, {32, 255, 234}, {32, 255, 234}, {32, 255, 234}}, [1] = {{89, 255, 246}, {89, 255, 246}, {89, 255, 246}, {89, 255, 246}, {89, 255, 246}, {89, 255, 246}, {89, 255, 246}, {89, 255, 246}, {89, 255, 246}, {89, 255, 246}, {89, 255, 246}, {89, 255, 246}, {89, 255, 246}, {169, 120, 255}, {169, 120, 255}, {169, 120, 255}, {169, 120, 255}, {169, 120, 255}, {169, 120, 255}, {89, 255, 246}, {89, 255, 246}, {89, 255, 246}, {89, 255, 246}, {89, 255, 246}, {89, 255, 246}, {89, 255, 246}, {169, 120, 255}, {169, 120, 255}, {169, 120, 255}, {169, 120, 255}, {169, 120, 255}, {89, 255, 246}, {89, 255, 246}, {89, 255, 246}, {89, 255, 246}, {89, 255, 246}, {89, 255, 246}, {89, 255, 246}, {89, 255, 246}, {89, 255, 246}, {89, 255, 246}, {89, 255, 246}, {89, 255, 246}, {89, 255, 246}, {89, 255, 246}, {89, 255, 246}, {89, 255, 246}}, @@ -74,7 +74,7 @@ const uint8_t PROGMEM ledmap[][DRIVER_LED_TOTAL][3] = { }; void set_layer_color(int layer) { - for (int i = 0; i < DRIVER_LED_TOTAL; i++) { + for (int i = 0; i < RGB_MATRIX_LED_COUNT; i++) { HSV hsv = { .h = pgm_read_byte(&ledmap[layer][i][0]), .s = pgm_read_byte(&ledmap[layer][i][1]), diff --git a/keyboards/planck/keymaps/tom/keymap.c b/keyboards/planck/keymaps/tom/keymap.c index 89175e01155..6d101f3a3fc 100644 --- a/keyboards/planck/keymaps/tom/keymap.c +++ b/keyboards/planck/keymaps/tom/keymap.c @@ -230,7 +230,7 @@ void rgb_matrix_indicators_user(void) { #ifdef RGB_MATRIX_ENABLE switch (get_highest_layer(layer_state)) { case _RAISE: - for (int i = 0; i < DRIVER_LED_TOTAL; i++) { + for (int i = 0; i < RGB_MATRIX_LED_COUNT; i++) { if (HAS_FLAGS(g_led_config.flags[i], LED_FLAG_MODIFIER)) { rgb_matrix_set_color(i, 0x6B, 0x00, 0x80); } else { @@ -240,7 +240,7 @@ void rgb_matrix_indicators_user(void) { break; case _LOWER: - for (int i = 0; i < DRIVER_LED_TOTAL; i++) { + for (int i = 0; i < RGB_MATRIX_LED_COUNT; i++) { if (HAS_FLAGS(g_led_config.flags[i], LED_FLAG_MODIFIER)) { rgb_matrix_set_color(i, 0xFF, 0xA5, 0x00); } else { @@ -250,7 +250,7 @@ void rgb_matrix_indicators_user(void) { break; case _ADJUST: - for (int i = 0; i < DRIVER_LED_TOTAL; i++) { + for (int i = 0; i < RGB_MATRIX_LED_COUNT; i++) { rgb_matrix_set_color(i, 0xFF, 0x99, 0x00); } rgb_matrix_set_color(1, 0xFF, 0x00, 0x00); diff --git a/keyboards/planck/keymaps/tylerwince/keymap.c b/keyboards/planck/keymaps/tylerwince/keymap.c index e6d174fbce6..e00fb2567d0 100644 --- a/keyboards/planck/keymaps/tylerwince/keymap.c +++ b/keyboards/planck/keymaps/tylerwince/keymap.c @@ -130,7 +130,7 @@ void keyboard_post_init_user(void) { rgb_matrix_enable(); } -const uint8_t PROGMEM ledmap[][DRIVER_LED_TOTAL][3] = { +const uint8_t PROGMEM ledmap[][RGB_MATRIX_LED_COUNT][3] = { [0] = { {32,255,234}, {32,255,234}, {12,225,241}, {12,225,241}, {0,204,255}, {0,204,255}, {169,120,255}, {169,120,255}, {169,120,255}, {146,224,255}, {146,224,255}, {146,224,255}, {32,255,234}, {32,255,234}, {12,225,241}, {12,225,241}, {0,204,255}, {0,204,255}, {169,120,255}, {169,120,255}, {169,120,255}, {146,224,255}, {146,224,255}, {146,224,255}, {32,255,234}, {32,255,234}, {12,225,241}, {12,225,241}, {0,204,255}, {0,204,255}, {169,120,255}, {169,120,255}, {169,120,255}, {146,224,255}, {146,224,255}, {146,224,255}, @@ -151,7 +151,7 @@ const uint8_t PROGMEM ledmap[][DRIVER_LED_TOTAL][3] = { }; void set_layer_color(int layer) { - for (int i = 0; i < DRIVER_LED_TOTAL; i++) { + for (int i = 0; i < RGB_MATRIX_LED_COUNT; i++) { HSV hsv = { .h = pgm_read_byte(&ledmap[layer][i][0]), .s = pgm_read_byte(&ledmap[layer][i][1]), diff --git a/keyboards/planck/light/config.h b/keyboards/planck/light/config.h index 67b42e8c08d..d0e30bde021 100644 --- a/keyboards/planck/light/config.h +++ b/keyboards/planck/light/config.h @@ -34,7 +34,7 @@ #define DRIVER_COUNT 2 #define DRIVER_1_LED_TOTAL 25 #define DRIVER_2_LED_TOTAL 24 -#define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) +#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) // RGB Matrix Animation modes. Explicitly enabled // For full list of effects, see: // https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects diff --git a/keyboards/planck/light/light.c b/keyboards/planck/light/light.c index 5a7c656f1ae..c2c241fab45 100644 --- a/keyboards/planck/light/light.c +++ b/keyboards/planck/light/light.c @@ -16,7 +16,7 @@ #include "light.h" -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location diff --git a/keyboards/planck/rev6/config.h b/keyboards/planck/rev6/config.h index 3879cb76902..5925feb8d96 100644 --- a/keyboards/planck/rev6/config.h +++ b/keyboards/planck/rev6/config.h @@ -103,7 +103,7 @@ */ #define RGB_DI_PIN A1 #define RGBLED_NUM 9 -#define DRIVER_LED_TOTAL RGBLED_NUM +#define RGB_MATRIX_LED_COUNT RGBLED_NUM #define WS2812_PWM_DRIVER PWMD2 #define WS2812_PWM_CHANNEL 2 diff --git a/keyboards/planck/rev6_drop/config.h b/keyboards/planck/rev6_drop/config.h index 3cbee54de55..35b3a55c1f6 100644 --- a/keyboards/planck/rev6_drop/config.h +++ b/keyboards/planck/rev6_drop/config.h @@ -108,7 +108,7 @@ */ #define RGB_DI_PIN A1 #define RGBLED_NUM 9 -#define DRIVER_LED_TOTAL RGBLED_NUM +#define RGB_MATRIX_LED_COUNT RGBLED_NUM #define WS2812_PWM_DRIVER PWMD2 #define WS2812_PWM_CHANNEL 2 diff --git a/keyboards/playkbtw/pk64rgb/config.h b/keyboards/playkbtw/pk64rgb/config.h index 2ec5f15a39d..c6f03af638d 100644 --- a/keyboards/playkbtw/pk64rgb/config.h +++ b/keyboards/playkbtw/pk64rgb/config.h @@ -47,7 +47,7 @@ #define RGB_MATRIX_LED_FLUSH_LIMIT 26 #define DRIVER_ADDR_1 0b1010000 #define DRIVER_COUNT 1 - #define DRIVER_LED_TOTAL 64 + #define RGB_MATRIX_LED_COUNT 64 #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE diff --git a/keyboards/playkbtw/pk64rgb/pk64rgb.c b/keyboards/playkbtw/pk64rgb/pk64rgb.c index bc1f63a5ba0..e2db8056ee7 100644 --- a/keyboards/playkbtw/pk64rgb/pk64rgb.c +++ b/keyboards/playkbtw/pk64rgb/pk64rgb.c @@ -17,7 +17,7 @@ #include "pk64rgb.h" #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location diff --git a/keyboards/plywrks/allaro/info.json b/keyboards/plywrks/allaro/info.json new file mode 100644 index 00000000000..aa56aa11034 --- /dev/null +++ b/keyboards/plywrks/allaro/info.json @@ -0,0 +1,124 @@ +{ + "manufacturer": "Plywrks", + "keyboard_name": "Allaro", + "maintainer": "ramonimbao", + "development_board": "promicro", + + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgblight": true + }, + "matrix_pins": { + "cols": ["F0", "F7", "F6", "C7", "C6", "B6", "B5", "B4", "D7", "D6", "D4", "D5", "D3", "D2", "D1"], + "rows": ["F1", "B7", "B0", "D0", "F5"] + }, + "url": "", + "usb": { + "vid": "0x706C", + "pid": "0x7903", + "device_version": "1.0.0" + }, + "rgblight": { + "led_count": 16, + "pin": "E2", + "hue_steps": 10, + "saturation_steps": 17, + "brightness_steps": 17, + "animations": { + "alternating": true, + "breathing": true, + "christmas": true, + "knight": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "rgb_test": true, + "snake": true, + "static_gradient": true, + "twinkle": true + } + }, + "layouts": { + "LAYOUT_arisu": { + "layout": [ + { "matrix": [0, 0], "x": 0.4, "y": 0 }, + { "matrix": [0, 1], "x": 1.55, "y": 0.1 }, + { "matrix": [0, 2], "x": 2.55, "y": 0.1 }, + { "matrix": [0, 3], "x": 3.55, "y": 0 }, + { "matrix": [0, 4], "x": 4.55, "y": 0.1 }, + { "matrix": [0, 5], "x": 5.55, "y": 0.1 }, + { "matrix": [0, 6], "x": 6.55, "y": 0.1 }, + { "matrix": [2, 7], "x": 7.55, "y": 0.1 }, + { "matrix": [0, 7], "x": 9.75, "y": 0.1 }, + { "matrix": [0, 8], "x": 10.75, "y": 0.1 }, + { "matrix": [0, 9], "x": 11.75, "y": 0.1 }, + { "matrix": [0, 10], "x": 12.75, "y": 0.1 }, + { "matrix": [0, 11], "x": 13.75, "y": 0 }, + { "matrix": [0, 12], "x": 14.75, "y": 0.1 }, + { "matrix": [0, 13], "x": 15.75, "y": 0.1 }, + { "matrix": [0, 14], "x": 16.75, "y": 0.1 }, + + { "matrix": [1, 0], "x": 0.2, "y": 1.0 }, + { "matrix": [1, 1], "w": 1.5, "x": 1.35, "y": 1.1 }, + { "matrix": [1, 2], "x": 2.85, "y": 1.1 }, + { "matrix": [1, 3], "x": 3.85, "y": 1.1 }, + { "matrix": [1, 4], "x": 4.85, "y": 1.1 }, + { "matrix": [1, 5], "x": 5.85, "y": 1.1 }, + { "matrix": [1, 6], "x": 6.85, "y": 1.1 }, + { "matrix": [1, 7], "x": 9.45, "y": 1.1 }, + { "matrix": [1, 8], "x": 10.45, "y": 1.1 }, + { "matrix": [1, 9], "x": 11.45, "y": 1.1 }, + { "matrix": [1, 10], "x": 12.45, "y": 1.1 }, + { "matrix": [1, 11], "x": 13.45, "y": 1.1 }, + { "matrix": [1, 12], "x": 14.45, "y": 1.1 }, + { "matrix": [1, 13], "x": 15.45, "y": 1.1 }, + { "matrix": [1, 14], "w": 1.5, "x": 16.45, "y": 1.1 }, + + { "matrix": [2, 0], "x": 0, "y": 2.0 }, + { "matrix": [2, 1], "w": 1.75, "x": 1.15, "y": 2.1 }, + { "matrix": [2, 2], "x": 2.9, "y": 2.1 }, + { "matrix": [2, 3], "x": 3.9, "y": 2.1 }, + { "matrix": [2, 4], "x": 4.9, "y": 2.1 }, + { "matrix": [2, 5], "x": 5.9, "y": 2.1 }, + { "matrix": [2, 6], "x": 6.9, "y": 2.1 }, + { "matrix": [2, 8], "x": 9.9, "y": 2.1 }, + { "matrix": [2, 9], "x": 10.9, "y": 2.1 }, + { "matrix": [2, 10], "x": 11.9, "y": 2.1 }, + { "matrix": [2, 11], "x": 12.9, "y": 2.1 }, + { "matrix": [2, 12], "x": 13.9, "y": 2.1 }, + { "matrix": [2, 13], "x": 14.9, "y": 2.1 }, + { "matrix": [2, 14], "w": 2.25, "x": 15.9, "y": 2.1 }, + + { "matrix": [3, 1], "w": 2.25, "x": 0.95, "y": 3.1 }, + { "matrix": [3, 2], "x": 3.2, "y": 3.1 }, + { "matrix": [3, 3], "x": 4.2, "y": 3.1 }, + { "matrix": [3, 4], "x": 5.2, "y": 3.1 }, + { "matrix": [3, 5], "x": 6.2, "y": 3.1 }, + { "matrix": [3, 6], "x": 7.2, "y": 3.1 }, + { "matrix": [3, 7], "x": 9.6, "y": 3.1 }, + { "matrix": [3, 8], "x": 10.6, "y": 3.1 }, + { "matrix": [3, 9], "x": 11.6, "y": 3.1 }, + { "matrix": [3, 10], "x": 12.6, "y": 3.1 }, + { "matrix": [3, 11], "x": 13.6, "y": 3.1 }, + { "matrix": [3, 12], "x": 14.6, "y": 3.1 }, + { "matrix": [3, 13], "x": 15.6, "y": 3.1 }, + { "matrix": [3, 14], "w": 1.75, "x": 16.6, "y": 3.1 }, + + { "matrix": [4, 1], "w": 1.5, "x": 0.95, "y": 4.1 }, + { "matrix": [4, 3], "w": 1.5, "x": 3.85, "y": 4.1 }, + { "matrix": [4, 5], "w": 2, "x": 5.35, "y": 4.1 }, + { "matrix": [4, 6], "w": 1.25, "x": 7.35, "y": 4.1 }, + { "matrix": [4, 8], "w": 2.75, "x": 9.6, "y": 4.1 }, + { "matrix": [4, 10], "w": 1.5, "x": 12.35, "y": 4.1 }, + { "matrix": [4, 12], "x": 14.6, "y": 4.1 }, + { "matrix": [4, 13], "x": 15.6, "y": 4.1 }, + { "matrix": [4, 14], "x": 16.6, "y": 4.1 } + ] + } + } +} diff --git a/keyboards/plywrks/allaro/keymaps/default/keymap.c b/keyboards/plywrks/allaro/keymaps/default/keymap.c new file mode 100644 index 00000000000..dbfa2e888ea --- /dev/null +++ b/keyboards/plywrks/allaro/keymaps/default/keymap.c @@ -0,0 +1,33 @@ +/* Copyright 2020 MudkipMao + * + * 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 . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_arisu( + KC_ESC, 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_BSPC, + KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, KC_RSFT, + KC_LCTL, KC_LALT, KC_SPC, MO(1), KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_arisu( + RGB_TOG, 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_DEL, + RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, _______, + _______, _______, _______, _______, _______, _______, KC_END, KC_PGDN, KC_HOME + ) +}; diff --git a/keyboards/plywrks/allaro/keymaps/via/keymap.c b/keyboards/plywrks/allaro/keymaps/via/keymap.c new file mode 100644 index 00000000000..667ac0f1a62 --- /dev/null +++ b/keyboards/plywrks/allaro/keymaps/via/keymap.c @@ -0,0 +1,47 @@ +/* Copyright 2020 MudkipMao + * + * 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 . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_arisu( + KC_ESC, 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_BSPC, + KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, KC_RSFT, + KC_LCTL, KC_LALT, KC_SPC, MO(1), KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_arisu( + RGB_TOG, 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_DEL, + RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, _______, + _______, _______, _______, _______, _______, _______, KC_END, KC_PGDN, KC_HOME + ), + [2] = LAYOUT_arisu( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [3] = LAYOUT_arisu( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/plywrks/allaro/keymaps/via/rules.mk b/keyboards/plywrks/allaro/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/plywrks/allaro/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/plywrks/allaro/readme.md b/keyboards/plywrks/allaro/readme.md new file mode 100644 index 00000000000..7fb1c1715ca --- /dev/null +++ b/keyboards/plywrks/allaro/readme.md @@ -0,0 +1,26 @@ +# Plywrks Allaro + +![Allaro](https://i.imgur.com/SwVyLLzl.png) + +An Arisu-like hotswap PCB. + +* Keyboard Maintainer: [Ramon Imbao](https://github.com/ramonimbao) +* Hardware Supported: ATmega32u4 + +Make example for this keyboard (after setting up your build environment): + + make plywrks/allaro:via + +Flashing example for this keyboard: + + make plywrks/allaro:via: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 diff --git a/keyboards/plywrks/allaro/rules.mk b/keyboards/plywrks/allaro/rules.mk new file mode 100644 index 00000000000..6e7633bfe01 --- /dev/null +++ b/keyboards/plywrks/allaro/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/pom_keyboards/tnln95/config.h b/keyboards/pom_keyboards/tnln95/config.h index e958aebd303..f4dfa80a7ec 100644 --- a/keyboards/pom_keyboards/tnln95/config.h +++ b/keyboards/pom_keyboards/tnln95/config.h @@ -66,7 +66,7 @@ along with this program. If not, see . #define RGBLIGHT_SAT_STEP 8 #define RGBLIGHT_VAL_STEP 8 #define RGBLIGHT_SLEEP // RGB will turn off when PC is put to sleep -// #define RGB_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) +// #define RGB_MATRIX_LED_PROCESS_LIMIT (RGB_MATRIX_LED_COUNT + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) // #define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness) // #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 225 // limits maximum brightness of LEDs to 200 out of 255. If not defined maximum brightness is set to 255 // #define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_SOLID_COLOR // Sets the default mode, if none has been set diff --git a/keyboards/preonic/rev3/config.h b/keyboards/preonic/rev3/config.h index 5590ba02525..1c5dfe2e68d 100644 --- a/keyboards/preonic/rev3/config.h +++ b/keyboards/preonic/rev3/config.h @@ -92,7 +92,7 @@ #define RGBLED_NUM 9 #define RGBLIGHT_ANIMATIONS // RGB Matrix support -#define DRIVER_LED_TOTAL RGBLED_NUM +#define RGB_MATRIX_LED_COUNT RGBLED_NUM #define WS2812_PWM_DRIVER PWMD2 #define WS2812_PWM_CHANNEL 2 diff --git a/keyboards/preonic/rev3_drop/config.h b/keyboards/preonic/rev3_drop/config.h index 5590ba02525..1c5dfe2e68d 100644 --- a/keyboards/preonic/rev3_drop/config.h +++ b/keyboards/preonic/rev3_drop/config.h @@ -92,7 +92,7 @@ #define RGBLED_NUM 9 #define RGBLIGHT_ANIMATIONS // RGB Matrix support -#define DRIVER_LED_TOTAL RGBLED_NUM +#define RGB_MATRIX_LED_COUNT RGBLED_NUM #define WS2812_PWM_DRIVER PWMD2 #define WS2812_PWM_CHANNEL 2 diff --git a/keyboards/qpockets/space_space/rev2/config.h b/keyboards/qpockets/space_space/rev2/config.h index b762783d7e2..a1ad4fc021b 100644 --- a/keyboards/qpockets/space_space/rev2/config.h +++ b/keyboards/qpockets/space_space/rev2/config.h @@ -46,5 +46,5 @@ #define RGB_DI_PIN F0 #define RGBLED_NUM 4 -#define DRIVER_LED_TOTAL RGBLED_NUM +#define RGB_MATRIX_LED_COUNT RGBLED_NUM #define RGBLIGHT_DEFAULT_HUE 130 diff --git a/keyboards/rgbkb/mun/config.h b/keyboards/rgbkb/mun/config.h index 0c39127af54..cd92c3893db 100644 --- a/keyboards/rgbkb/mun/config.h +++ b/keyboards/rgbkb/mun/config.h @@ -71,7 +71,7 @@ #define RGBLED_SPLIT { 49, 49 } #define RGBLIGHT_ANIMATIONS -#define DRIVER_LED_TOTAL RGBLED_NUM +#define RGB_MATRIX_LED_COUNT RGBLED_NUM #define RGB_MATRIX_SPLIT RGBLED_SPLIT #define RGB_MATRIX_CENTER { 128, 34 } #define RGB_MATRIX_LED_FLUSH_LIMIT 33 diff --git a/keyboards/rgbkb/pan/config.h b/keyboards/rgbkb/pan/config.h index 5b6ca7e8763..35699147dbd 100644 --- a/keyboards/rgbkb/pan/config.h +++ b/keyboards/rgbkb/pan/config.h @@ -25,7 +25,7 @@ along with this program. If not, see . #define ENCODER_RESOLUTION 4 #define RGBLED_NUM 64 #define RGBLIGHT_ANIMATIONS -#define DRIVER_LED_TOTAL RGBLED_NUM +#define RGB_MATRIX_LED_COUNT RGBLED_NUM /* COL2ROW, ROW2COL*/ #define DIODE_DIRECTION COL2ROW diff --git a/keyboards/rgbkb/pan/pan.c b/keyboards/rgbkb/pan/pan.c index 6a17456390f..f0194ebdfdf 100644 --- a/keyboards/rgbkb/pan/pan.c +++ b/keyboards/rgbkb/pan/pan.c @@ -22,13 +22,13 @@ # include "ws2812.h" // LED color buffer -LED_TYPE rgb_matrix_ws2812_array[DRIVER_LED_TOTAL]; +LED_TYPE rgb_matrix_ws2812_array[RGB_MATRIX_LED_COUNT]; static void init(void) {} static void flush(void) { // Assumes use of RGB_DI_PIN - ws2812_setleds(rgb_matrix_ws2812_array, DRIVER_LED_TOTAL); + ws2812_setleds(rgb_matrix_ws2812_array, RGB_MATRIX_LED_COUNT); } // Set an led in the buffer to a color diff --git a/keyboards/rgbkb/sol/rev1/config.h b/keyboards/rgbkb/sol/rev1/config.h index 3e08848f6b3..48f341583d0 100644 --- a/keyboards/rgbkb/sol/rev1/config.h +++ b/keyboards/rgbkb/sol/rev1/config.h @@ -26,7 +26,7 @@ along with this program. If not, see . #else #define RGBLED_NUM 70 #endif -#define DRIVER_LED_TOTAL RGBLED_NUM +#define RGB_MATRIX_LED_COUNT RGBLED_NUM #define RGB_MATRIX_CENTER { 112, 35 } diff --git a/keyboards/rgbkb/sol/rev2/config.h b/keyboards/rgbkb/sol/rev2/config.h index cdaf9c05360..874ec536b18 100644 --- a/keyboards/rgbkb/sol/rev2/config.h +++ b/keyboards/rgbkb/sol/rev2/config.h @@ -48,7 +48,7 @@ along with this program. If not, see . #endif #endif -#define DRIVER_LED_TOTAL RGBLED_NUM +#define RGB_MATRIX_LED_COUNT RGBLED_NUM #define RGB_MATRIX_CENTER { 112, 37 } diff --git a/keyboards/rgbkb/sol3/config.h b/keyboards/rgbkb/sol3/config.h index 20435a159a9..9689f65356b 100644 --- a/keyboards/rgbkb/sol3/config.h +++ b/keyboards/rgbkb/sol3/config.h @@ -96,7 +96,7 @@ #define RGBLIGHT_EFFECT_ALTERNATING #define RGBLIGHT_EFFECT_TWINKLE -#define DRIVER_LED_TOTAL RGBLED_NUM +#define RGB_MATRIX_LED_COUNT RGBLED_NUM #define RGB_MATRIX_SPLIT RGBLED_SPLIT #define RGB_MATRIX_CENTER { 81, 28 } #define RGB_MATRIX_MAXIMUM_BRIGHTNESS RGBLIGHT_LIMIT_VAL diff --git a/keyboards/rgbkb/zygomorph/rev1/config.h b/keyboards/rgbkb/zygomorph/rev1/config.h index 3835a3e7053..4c5801f4cfb 100644 --- a/keyboards/rgbkb/zygomorph/rev1/config.h +++ b/keyboards/rgbkb/zygomorph/rev1/config.h @@ -49,7 +49,7 @@ along with this program. If not, see . #define RGBLED_SPLIT { 30, 30 } #endif -#define DRIVER_LED_TOTAL 60 +#define RGB_MATRIX_LED_COUNT 60 #define RGB_MATRIX_SPLIT { 30, 30 } #ifdef IOS_DEVICE_ENABLE diff --git a/keyboards/ryanskidmore/rskeys100/config.h b/keyboards/ryanskidmore/rskeys100/config.h index 187834f7e34..e80efaef648 100644 --- a/keyboards/ryanskidmore/rskeys100/config.h +++ b/keyboards/ryanskidmore/rskeys100/config.h @@ -31,7 +31,7 @@ /* RGB Data Pin */ #define RGB_DI_PIN C7 /* The number of RGB LEDs connected */ -#define DRIVER_LED_TOTAL 118 +#define RGB_MATRIX_LED_COUNT 118 /* Set the maximum brightness to 110 to avoid going over 500 mA. * At full brightness with all three indicator LEDs on, the power draw is about 450 mA. */ #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 110 diff --git a/keyboards/s_ol/0xc_pad/config.h b/keyboards/s_ol/0xc_pad/config.h index 4260c7a07dc..7a6d897e470 100644 --- a/keyboards/s_ol/0xc_pad/config.h +++ b/keyboards/s_ol/0xc_pad/config.h @@ -19,7 +19,7 @@ /* ws2812 RGB LED */ #define RGB_DI_PIN C7 -#define DRIVER_LED_TOTAL 12 +#define RGB_MATRIX_LED_COUNT 12 #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 255 #define RGB_MATRIX_CENTER \ { 112, 63 } diff --git a/keyboards/saevus/cor_tkl/config.h b/keyboards/saevus/cor_tkl/config.h new file mode 100644 index 00000000000..449f2da113f --- /dev/null +++ b/keyboards/saevus/cor_tkl/config.h @@ -0,0 +1,26 @@ +/* +Copyright 2022 Ramon Imbao + +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 "config_common.h" + +/* RGB Matrix setup */ +#define RGB_DI_PIN GP19 +#define DRIVER_LED_TOTAL 2 +#define RGBLED_NUM 2 +#define WS2812_PIO_USE_PIO1 // Force the usage of PIO1 peripheral, by default the WS2812 implementation uses the PIO0 peripheral diff --git a/keyboards/saevus/cor_tkl/cor_tkl.c b/keyboards/saevus/cor_tkl/cor_tkl.c new file mode 100644 index 00000000000..45cc8c08681 --- /dev/null +++ b/keyboards/saevus/cor_tkl/cor_tkl.c @@ -0,0 +1,44 @@ +/* Copyright 2022 Ramon Imbao + * + * 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 . + */ + +#include "cor_tkl.h" + +led_config_t g_led_config = {{ + // Key Matrix to LED Index + { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, 1, NO_LED }, + { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, + { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, + { 0, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, + { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, + { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED } +}, { + // LED Index to Physical Position + { 5, 40 }, { 211, 0 } +}, { + // LED Index to Flag + LED_FLAG_INDICATOR, LED_FLAG_INDICATOR +}}; + +void rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { + if (!host_keyboard_led_state().caps_lock) { + RGB_MATRIX_INDICATOR_SET_COLOR(0, 0, 0, 0); + } + if (!host_keyboard_led_state().scroll_lock) { + RGB_MATRIX_INDICATOR_SET_COLOR(1, 0, 0, 0); + } + + rgb_matrix_indicators_advanced_user(led_min, led_max); +} diff --git a/keyboards/saevus/cor_tkl/cor_tkl.h b/keyboards/saevus/cor_tkl/cor_tkl.h new file mode 100644 index 00000000000..e629f7e741c --- /dev/null +++ b/keyboards/saevus/cor_tkl/cor_tkl.h @@ -0,0 +1,121 @@ +/* Copyright 2022 Ramon Imbao + * + * 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 "quantum.h" + +#define ___ KC_NO + +// ANSI layout +// Full backspace +// Full right shift +// Full left shift +#define LAYOUT_tkl_f13_ansi( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, \ + k40, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, k4f, \ + k50, k51, k52, k57, k5a, k5b, k5c, k5d, k5e, k5f, k5g \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, ___, ___, ___, ___ }, \ + { k40, ___, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, ___, ___, k4f, ___ }, \ + { k50, k51, k52, ___, ___, ___, ___, k57, ___, ___, k5a, k5b, k5c, k5d, k5e, k5f, k5g }, \ +} + +// ANSI layout +// Split backspace +// Split right shift +// Full left shift +#define LAYOUT_tkl_f13_ansi_split_bs_rshift( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k3d, k1e, k1f, k1g, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, \ + k40, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, k4d, k4f, \ + k50, k51, k52, k57, k5a, k5b, k5c, k5d, k5e, k5f, k5g \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, ___, ___, ___ }, \ + { k40, ___, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, k4d, ___, k4f, ___ }, \ + { k50, k51, k52, ___, ___, ___, ___, k57, ___, ___, k5a, k5b, k5c, k5d, k5e, k5f, k5g }, \ +} + +// ISO layout +// Full backspace +// Full right shift +// Split left shift +#define LAYOUT_tkl_f13_iso( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2e, k2f, k2g, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k2d, \ + k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, k4f, \ + k50, k51, k52, k57, k5a, k5b, k5c, k5d, k5e, k5f, k5g \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, ___, ___, ___, ___ }, \ + { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, ___, ___, k4f, ___ }, \ + { k50, k51, k52, ___, ___, ___, ___, k57, ___, ___, k5a, k5b, k5c, k5d, k5e, k5f, k5g }, \ +} + +// ISO layout +// Split backspace +// Split right shift +// Split left shift +#define LAYOUT_tkl_f13_iso_split_bs_rshift( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k3d, k1e, k1f, k1g, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2e, k2f, k2g, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k2d, \ + k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, k4d, k4f, \ + k50, k51, k52, k57, k5a, k5b, k5c, k5d, k5e, k5f, k5g \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, ___, ___, ___ }, \ + { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, k4d, ___, k4f, ___ }, \ + { k50, k51, k52, ___, ___, ___, ___, k57, ___, ___, k5a, k5b, k5c, k5d, k5e, k5f, k5g }, \ +} + +// Layout for VIA +// Split backspace +// Split left shift +// Split right shift +#define LAYOUT_all( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k3d, k1e, k1f, k1g, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, \ + k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, k4d, k4f, \ + k50, k51, k52, k57, k5a, k5b, k5c, k5d, k5e, k5f, k5g \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, ___, ___, ___ }, \ + { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, k4d, ___, k4f, ___ }, \ + { k50, k51, k52, ___, ___, ___, ___, k57, ___, ___, k5a, k5b, k5c, k5d, k5e, k5f, k5g } \ +} diff --git a/keyboards/saevus/cor_tkl/info.json b/keyboards/saevus/cor_tkl/info.json new file mode 100644 index 00000000000..5a881ce5cdd --- /dev/null +++ b/keyboards/saevus/cor_tkl/info.json @@ -0,0 +1,524 @@ +{ + "keyboard_name": "Cor TKL", + "manufacturer": "saevus", + "url": "", + "maintainer": "ramonimbao", + "layout_aliases": { + "LAYOUT_ansi": "LAYOUT_tkl_f13_ansi", + "LAYOUT_iso": "LAYOUT_tkl_f13_iso" + }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "console": false, + "command": false, + "nkro": false + }, + "usb": { + "vid": "0x5001", + "pid": "0x0003", + "device_version": "1.0.0" + }, + "diode_direction": "COL2ROW", + "matrix_pins": { + "cols": ["GP29", "GP28", "GP27", "GP26", "GP25", "GP24", "GP23", "GP22", "GP18", "GP17", "GP16", "GP15", "GP14", "GP13", "GP12", "GP11", "GP5"], + "rows": ["GP0", "GP1", "GP2", "GP21", "GP3", "GP4"] + }, + "layouts": { + "LAYOUT_tkl_f13_ansi": { + "layout": [ + {"x":0, "y":0}, + {"x":1.25, "y":0}, + {"x":2.25, "y":0}, + {"x":3.25, "y":0}, + {"x":4.25, "y":0}, + {"x":5.5, "y":0}, + {"x":6.5, "y":0}, + {"x":7.5, "y":0}, + {"x":8.5, "y":0}, + {"x":9.75, "y":0}, + {"x":10.75, "y":0}, + {"x":11.75, "y":0}, + {"x":12.75, "y":0}, + {"x":14, "y":0}, + {"x":15.25, "y":0}, + {"x":16.25, "y":0}, + {"x":17.25, "y":0}, + + {"x":0, "y":1.25}, + {"x":1, "y":1.25}, + {"x":2, "y":1.25}, + {"x":3, "y":1.25}, + {"x":4, "y":1.25}, + {"x":5, "y":1.25}, + {"x":6, "y":1.25}, + {"x":7, "y":1.25}, + {"x":8, "y":1.25}, + {"x":9, "y":1.25}, + {"x":10, "y":1.25}, + {"x":11, "y":1.25}, + {"x":12, "y":1.25}, + {"x":13, "y":1.25, "w":2}, + {"x":15.25, "y":1.25}, + {"x":16.25, "y":1.25}, + {"x":17.25, "y":1.25}, + + {"x":0, "y":2.25, "w":1.5}, + {"x":1.5, "y":2.25}, + {"x":2.5, "y":2.25}, + {"x":3.5, "y":2.25}, + {"x":4.5, "y":2.25}, + {"x":5.5, "y":2.25}, + {"x":6.5, "y":2.25}, + {"x":7.5, "y":2.25}, + {"x":8.5, "y":2.25}, + {"x":9.5, "y":2.25}, + {"x":10.5, "y":2.25}, + {"x":11.5, "y":2.25}, + {"x":12.5, "y":2.25}, + {"x":13.5, "y":2.25, "w":1.5}, + {"x":15.25, "y":2.25}, + {"x":16.25, "y":2.25}, + {"x":17.25, "y":2.25}, + + {"x":0, "y":3.25, "w":1.75}, + {"x":1.75, "y":3.25}, + {"x":2.75, "y":3.25}, + {"x":3.75, "y":3.25}, + {"x":4.75, "y":3.25}, + {"x":5.75, "y":3.25}, + {"x":6.75, "y":3.25}, + {"x":7.75, "y":3.25}, + {"x":8.75, "y":3.25}, + {"x":9.75, "y":3.25}, + {"x":10.75, "y":3.25}, + {"x":11.75, "y":3.25}, + {"x":12.75, "y":3.25, "w":2.25}, + + {"x":0, "y":4.25, "w":2.25}, + {"x":2.25, "y":4.25}, + {"x":3.25, "y":4.25}, + {"x":4.25, "y":4.25}, + {"x":5.25, "y":4.25}, + {"x":6.25, "y":4.25}, + {"x":7.25, "y":4.25}, + {"x":8.25, "y":4.25}, + {"x":9.25, "y":4.25}, + {"x":10.25, "y":4.25}, + {"x":11.25, "y":4.25}, + {"x":12.25, "y":4.25, "w":2.75}, + {"x":16.25, "y":4.25}, + + {"x":0, "y":5.25, "w":1.25}, + {"x":1.25, "y":5.25, "w":1.25}, + {"x":2.5, "y":5.25, "w":1.25}, + {"x":3.75, "y":5.25, "w":6.25}, + {"x":10, "y":5.25, "w":1.25}, + {"x":11.25, "y":5.25, "w":1.25}, + {"x":12.5, "y":5.25, "w":1.25}, + {"x":13.75, "y":5.25, "w":1.25}, + {"x":15.25, "y":5.25}, + {"x":16.25, "y":5.25}, + {"x":17.25, "y":5.25} + ] + }, + "LAYOUT_tkl_f13_ansi_split_bs_rshift": { + "layout": [ + {"x":0, "y":0}, + {"x":1.25, "y":0}, + {"x":2.25, "y":0}, + {"x":3.25, "y":0}, + {"x":4.25, "y":0}, + {"x":5.5, "y":0}, + {"x":6.5, "y":0}, + {"x":7.5, "y":0}, + {"x":8.5, "y":0}, + {"x":9.75, "y":0}, + {"x":10.75, "y":0}, + {"x":11.75, "y":0}, + {"x":12.75, "y":0}, + {"x":14, "y":0}, + {"x":15.25, "y":0}, + {"x":16.25, "y":0}, + {"x":17.25, "y":0}, + + {"x":0, "y":1.25}, + {"x":1, "y":1.25}, + {"x":2, "y":1.25}, + {"x":3, "y":1.25}, + {"x":4, "y":1.25}, + {"x":5, "y":1.25}, + {"x":6, "y":1.25}, + {"x":7, "y":1.25}, + {"x":8, "y":1.25}, + {"x":9, "y":1.25}, + {"x":10, "y":1.25}, + {"x":11, "y":1.25}, + {"x":12, "y":1.25}, + {"x":13, "y":1.25}, + {"x":14, "y":1.25}, + {"x":15.25, "y":1.25}, + {"x":16.25, "y":1.25}, + {"x":17.25, "y":1.25}, + + {"x":0, "y":2.25, "w":1.5}, + {"x":1.5, "y":2.25}, + {"x":2.5, "y":2.25}, + {"x":3.5, "y":2.25}, + {"x":4.5, "y":2.25}, + {"x":5.5, "y":2.25}, + {"x":6.5, "y":2.25}, + {"x":7.5, "y":2.25}, + {"x":8.5, "y":2.25}, + {"x":9.5, "y":2.25}, + {"x":10.5, "y":2.25}, + {"x":11.5, "y":2.25}, + {"x":12.5, "y":2.25}, + {"x":13.5, "y":2.25, "w":1.5}, + {"x":15.25, "y":2.25}, + {"x":16.25, "y":2.25}, + {"x":17.25, "y":2.25}, + + {"x":0, "y":3.25, "w":1.75}, + {"x":1.75, "y":3.25}, + {"x":2.75, "y":3.25}, + {"x":3.75, "y":3.25}, + {"x":4.75, "y":3.25}, + {"x":5.75, "y":3.25}, + {"x":6.75, "y":3.25}, + {"x":7.75, "y":3.25}, + {"x":8.75, "y":3.25}, + {"x":9.75, "y":3.25}, + {"x":10.75, "y":3.25}, + {"x":11.75, "y":3.25}, + {"x":12.75, "y":3.25, "w":2.25}, + + {"x":0, "y":4.25, "w":2.25}, + {"x":2.25, "y":4.25}, + {"x":3.25, "y":4.25}, + {"x":4.25, "y":4.25}, + {"x":5.25, "y":4.25}, + {"x":6.25, "y":4.25}, + {"x":7.25, "y":4.25}, + {"x":8.25, "y":4.25}, + {"x":9.25, "y":4.25}, + {"x":10.25, "y":4.25}, + {"x":11.25, "y":4.25}, + {"x":12.25, "y":4.25, "w":1.75}, + {"x":14, "y":4.25}, + {"x":16.25, "y":4.25}, + + {"x":0, "y":5.25, "w":1.25}, + {"x":1.25, "y":5.25, "w":1.25}, + {"x":2.5, "y":5.25, "w":1.25}, + {"x":3.75, "y":5.25, "w":6.25}, + {"x":10, "y":5.25, "w":1.25}, + {"x":11.25, "y":5.25, "w":1.25}, + {"x":12.5, "y":5.25, "w":1.25}, + {"x":13.75, "y":5.25, "w":1.25}, + {"x":15.25, "y":5.25}, + {"x":16.25, "y":5.25}, + {"x":17.25, "y":5.25} + ] + }, + "LAYOUT_tkl_f13_iso": { + "layout": [ + {"x":0, "y":0}, + {"x":1.25, "y":0}, + {"x":2.25, "y":0}, + {"x":3.25, "y":0}, + {"x":4.25, "y":0}, + {"x":5.5, "y":0}, + {"x":6.5, "y":0}, + {"x":7.5, "y":0}, + {"x":8.5, "y":0}, + {"x":9.75, "y":0}, + {"x":10.75, "y":0}, + {"x":11.75, "y":0}, + {"x":12.75, "y":0}, + {"x":14, "y":0}, + {"x":15.25, "y":0}, + {"x":16.25, "y":0}, + {"x":17.25, "y":0}, + + {"x":0, "y":1.25}, + {"x":1, "y":1.25}, + {"x":2, "y":1.25}, + {"x":3, "y":1.25}, + {"x":4, "y":1.25}, + {"x":5, "y":1.25}, + {"x":6, "y":1.25}, + {"x":7, "y":1.25}, + {"x":8, "y":1.25}, + {"x":9, "y":1.25}, + {"x":10, "y":1.25}, + {"x":11, "y":1.25}, + {"x":12, "y":1.25}, + {"x":13, "y":1.25, "w":2}, + {"x":15.25, "y":1.25}, + {"x":16.25, "y":1.25}, + {"x":17.25, "y":1.25}, + + {"x":0, "y":2.25, "w":1.5}, + {"x":1.5, "y":2.25}, + {"x":2.5, "y":2.25}, + {"x":3.5, "y":2.25}, + {"x":4.5, "y":2.25}, + {"x":5.5, "y":2.25}, + {"x":6.5, "y":2.25}, + {"x":7.5, "y":2.25}, + {"x":8.5, "y":2.25}, + {"x":9.5, "y":2.25}, + {"x":10.5, "y":2.25}, + {"x":11.5, "y":2.25}, + {"x":12.5, "y":2.25}, + {"x":15.25, "y":2.25}, + {"x":16.25, "y":2.25}, + {"x":17.25, "y":2.25}, + + {"x":0, "y":3.25, "w":1.75}, + {"x":1.75, "y":3.25}, + {"x":2.75, "y":3.25}, + {"x":3.75, "y":3.25}, + {"x":4.75, "y":3.25}, + {"x":5.75, "y":3.25}, + {"x":6.75, "y":3.25}, + {"x":7.75, "y":3.25}, + {"x":8.75, "y":3.25}, + {"x":9.75, "y":3.25}, + {"x":10.75, "y":3.25}, + {"x":11.75, "y":3.25}, + {"x":12.75, "y":3.25}, + {"x":13.75, "y":2.25, "w":1.25, "h":2}, + + {"x":0, "y":4.25, "w":1.25}, + {"x":1.25, "y":4.25}, + {"x":2.25, "y":4.25}, + {"x":3.25, "y":4.25}, + {"x":4.25, "y":4.25}, + {"x":5.25, "y":4.25}, + {"x":6.25, "y":4.25}, + {"x":7.25, "y":4.25}, + {"x":8.25, "y":4.25}, + {"x":9.25, "y":4.25}, + {"x":10.25, "y":4.25}, + {"x":11.25, "y":4.25}, + {"x":12.25, "y":4.25, "w":2.75}, + {"x":16.25, "y":4.25}, + + {"x":0, "y":5.25, "w":1.25}, + {"x":1.25, "y":5.25, "w":1.25}, + {"x":2.5, "y":5.25, "w":1.25}, + {"x":3.75, "y":5.25, "w":6.25}, + {"x":10, "y":5.25, "w":1.25}, + {"x":11.25, "y":5.25, "w":1.25}, + {"x":12.5, "y":5.25, "w":1.25}, + {"x":13.75, "y":5.25, "w":1.25}, + {"x":15.25, "y":5.25}, + {"x":16.25, "y":5.25}, + {"x":17.25, "y":5.25} + ] + }, + "LAYOUT_tkl_f13_iso_split_bs_rshift": { + "layout": [ + {"x":0, "y":0}, + {"x":1.25, "y":0}, + {"x":2.25, "y":0}, + {"x":3.25, "y":0}, + {"x":4.25, "y":0}, + {"x":5.5, "y":0}, + {"x":6.5, "y":0}, + {"x":7.5, "y":0}, + {"x":8.5, "y":0}, + {"x":9.75, "y":0}, + {"x":10.75, "y":0}, + {"x":11.75, "y":0}, + {"x":12.75, "y":0}, + {"x":14, "y":0}, + {"x":15.25, "y":0}, + {"x":16.25, "y":0}, + {"x":17.25, "y":0}, + + {"x":0, "y":1.25}, + {"x":1, "y":1.25}, + {"x":2, "y":1.25}, + {"x":3, "y":1.25}, + {"x":4, "y":1.25}, + {"x":5, "y":1.25}, + {"x":6, "y":1.25}, + {"x":7, "y":1.25}, + {"x":8, "y":1.25}, + {"x":9, "y":1.25}, + {"x":10, "y":1.25}, + {"x":11, "y":1.25}, + {"x":12, "y":1.25}, + {"x":13, "y":1.25}, + {"x":14, "y":1.25}, + {"x":15.25, "y":1.25}, + {"x":16.25, "y":1.25}, + {"x":17.25, "y":1.25}, + + {"x":0, "y":2.25, "w":1.5}, + {"x":1.5, "y":2.25}, + {"x":2.5, "y":2.25}, + {"x":3.5, "y":2.25}, + {"x":4.5, "y":2.25}, + {"x":5.5, "y":2.25}, + {"x":6.5, "y":2.25}, + {"x":7.5, "y":2.25}, + {"x":8.5, "y":2.25}, + {"x":9.5, "y":2.25}, + {"x":10.5, "y":2.25}, + {"x":11.5, "y":2.25}, + {"x":12.5, "y":2.25}, + {"x":15.25, "y":2.25}, + {"x":16.25, "y":2.25}, + {"x":17.25, "y":2.25}, + + {"x":0, "y":3.25, "w":1.75}, + {"x":1.75, "y":3.25}, + {"x":2.75, "y":3.25}, + {"x":3.75, "y":3.25}, + {"x":4.75, "y":3.25}, + {"x":5.75, "y":3.25}, + {"x":6.75, "y":3.25}, + {"x":7.75, "y":3.25}, + {"x":8.75, "y":3.25}, + {"x":9.75, "y":3.25}, + {"x":10.75, "y":3.25}, + {"x":11.75, "y":3.25}, + {"x":12.75, "y":3.25}, + {"x":13.75, "y":2.25, "w":1.25, "h":2}, + + {"x":0, "y":4.25, "w":1.25}, + {"x":1.25, "y":4.25}, + {"x":2.25, "y":4.25}, + {"x":3.25, "y":4.25}, + {"x":4.25, "y":4.25}, + {"x":5.25, "y":4.25}, + {"x":6.25, "y":4.25}, + {"x":7.25, "y":4.25}, + {"x":8.25, "y":4.25}, + {"x":9.25, "y":4.25}, + {"x":10.25, "y":4.25}, + {"x":11.25, "y":4.25}, + {"x":12.25, "y":4.25, "w":1.75}, + {"x":14, "y":4.25}, + {"x":16.25, "y":4.25}, + + {"x":0, "y":5.25, "w":1.25}, + {"x":1.25, "y":5.25, "w":1.25}, + {"x":2.5, "y":5.25, "w":1.25}, + {"x":3.75, "y":5.25, "w":6.25}, + {"x":10, "y":5.25, "w":1.25}, + {"x":11.25, "y":5.25, "w":1.25}, + {"x":12.5, "y":5.25, "w":1.25}, + {"x":13.75, "y":5.25, "w":1.25}, + {"x":15.25, "y":5.25}, + {"x":16.25, "y":5.25}, + {"x":17.25, "y":5.25} + ] + }, + "LAYOUT_all": { + "layout": [ + {"x":0, "y":0}, + {"x":1.25, "y":0}, + {"x":2.25, "y":0}, + {"x":3.25, "y":0}, + {"x":4.25, "y":0}, + {"x":5.5, "y":0}, + {"x":6.5, "y":0}, + {"x":7.5, "y":0}, + {"x":8.5, "y":0}, + {"x":9.75, "y":0}, + {"x":10.75, "y":0}, + {"x":11.75, "y":0}, + {"x":12.75, "y":0}, + {"x":14, "y":0}, + {"x":15.25, "y":0}, + {"x":16.25, "y":0}, + {"x":17.25, "y":0}, + + {"x":0, "y":1.25}, + {"x":1, "y":1.25}, + {"x":2, "y":1.25}, + {"x":3, "y":1.25}, + {"x":4, "y":1.25}, + {"x":5, "y":1.25}, + {"x":6, "y":1.25}, + {"x":7, "y":1.25}, + {"x":8, "y":1.25}, + {"x":9, "y":1.25}, + {"x":10, "y":1.25}, + {"x":11, "y":1.25}, + {"x":12, "y":1.25}, + {"x":13, "y":1.25}, + {"x":14, "y":1.25}, + {"x":15.25, "y":1.25}, + {"x":16.25, "y":1.25}, + {"x":17.25, "y":1.25}, + + {"x":0, "y":2.25, "w":1.5}, + {"x":1.5, "y":2.25}, + {"x":2.5, "y":2.25}, + {"x":3.5, "y":2.25}, + {"x":4.5, "y":2.25}, + {"x":5.5, "y":2.25}, + {"x":6.5, "y":2.25}, + {"x":7.5, "y":2.25}, + {"x":8.5, "y":2.25}, + {"x":9.5, "y":2.25}, + {"x":10.5, "y":2.25}, + {"x":11.5, "y":2.25}, + {"x":12.5, "y":2.25}, + {"x":13.5, "y":2.25, "w":1.5}, + {"x":15.25, "y":2.25}, + {"x":16.25, "y":2.25}, + {"x":17.25, "y":2.25}, + + {"x":0, "y":3.25, "w":1.75}, + {"x":1.75, "y":3.25}, + {"x":2.75, "y":3.25}, + {"x":3.75, "y":3.25}, + {"x":4.75, "y":3.25}, + {"x":5.75, "y":3.25}, + {"x":6.75, "y":3.25}, + {"x":7.75, "y":3.25}, + {"x":8.75, "y":3.25}, + {"x":9.75, "y":3.25}, + {"x":10.75, "y":3.25}, + {"x":11.75, "y":3.25}, + {"x":12.75, "y":3.25, "w":2.25}, + + {"x":0, "y":4.25, "w":1.25}, + {"x":1.25, "y":4.25}, + {"x":2.25, "y":4.25}, + {"x":3.25, "y":4.25}, + {"x":4.25, "y":4.25}, + {"x":5.25, "y":4.25}, + {"x":6.25, "y":4.25}, + {"x":7.25, "y":4.25}, + {"x":8.25, "y":4.25}, + {"x":9.25, "y":4.25}, + {"x":10.25, "y":4.25}, + {"x":11.25, "y":4.25}, + {"x":12.25, "y":4.25, "w":1.75}, + {"x":14, "y":4.25}, + {"x":16.25, "y":4.25}, + + {"x":0, "y":5.25, "w":1.25}, + {"x":1.25, "y":5.25, "w":1.25}, + {"x":2.5, "y":5.25, "w":1.25}, + {"x":3.75, "y":5.25, "w":6.25}, + {"x":10, "y":5.25, "w":1.25}, + {"x":11.25, "y":5.25, "w":1.25}, + {"x":12.5, "y":5.25, "w":1.25}, + {"x":13.75, "y":5.25, "w":1.25}, + {"x":15.25, "y":5.25}, + {"x":16.25, "y":5.25}, + {"x":17.25, "y":5.25} + ] + } + } +} diff --git a/keyboards/saevus/cor_tkl/keymaps/default/config.h b/keyboards/saevus/cor_tkl/keymaps/default/config.h new file mode 100644 index 00000000000..08636494e6d --- /dev/null +++ b/keyboards/saevus/cor_tkl/keymaps/default/config.h @@ -0,0 +1,20 @@ +/* Copyright 2022 Ramon Imbao + * + * 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 RGBLIGHT_LAYERS +#define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF diff --git a/keyboards/saevus/cor_tkl/keymaps/default/keymap.c b/keyboards/saevus/cor_tkl/keymaps/default/keymap.c new file mode 100644 index 00000000000..3c5139dbe78 --- /dev/null +++ b/keyboards/saevus/cor_tkl/keymaps/default/keymap.c @@ -0,0 +1,27 @@ +/* Copyright 2022 Ramon Imbao + * + * 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 . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_tkl_f13_ansi_tsangan( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_PSCR, KC_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_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_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_MENU, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ) +}; diff --git a/keyboards/saevus/cor_tkl/keymaps/iso/config.h b/keyboards/saevus/cor_tkl/keymaps/iso/config.h new file mode 100644 index 00000000000..52983591bf0 --- /dev/null +++ b/keyboards/saevus/cor_tkl/keymaps/iso/config.h @@ -0,0 +1,19 @@ +/* Copyright 2022 Ramon Imbao + * + * 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 RGBLIGHT_LAYERS +#define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF diff --git a/keyboards/saevus/cor_tkl/keymaps/iso/keymap.c b/keyboards/saevus/cor_tkl/keymaps/iso/keymap.c new file mode 100644 index 00000000000..4bc1c418096 --- /dev/null +++ b/keyboards/saevus/cor_tkl/keymaps/iso/keymap.c @@ -0,0 +1,27 @@ +/* Copyright 2022 Ramon Imbao + * + * 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 . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_tkl_f13_iso_tsangan( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_PSCR, KC_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_MENU, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ) +}; diff --git a/keyboards/saevus/cor_tkl/keymaps/via/config.h b/keyboards/saevus/cor_tkl/keymaps/via/config.h new file mode 100644 index 00000000000..52983591bf0 --- /dev/null +++ b/keyboards/saevus/cor_tkl/keymaps/via/config.h @@ -0,0 +1,19 @@ +/* Copyright 2022 Ramon Imbao + * + * 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 RGBLIGHT_LAYERS +#define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF diff --git a/keyboards/saevus/cor_tkl/keymaps/via/keymap.c b/keyboards/saevus/cor_tkl/keymaps/via/keymap.c new file mode 100644 index 00000000000..d7e1cabc677 --- /dev/null +++ b/keyboards/saevus/cor_tkl/keymaps/via/keymap.c @@ -0,0 +1,51 @@ +/* Copyright 2022 Ramon Imbao + * + * 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 . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_all( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_PSCR, KC_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_NO, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_MENU, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [2] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [3] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/saevus/cor_tkl/keymaps/via/rules.mk b/keyboards/saevus/cor_tkl/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/saevus/cor_tkl/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/saevus/cor_tkl/readme.md b/keyboards/saevus/cor_tkl/readme.md new file mode 100644 index 00000000000..c0c5ab0e913 --- /dev/null +++ b/keyboards/saevus/cor_tkl/readme.md @@ -0,0 +1,18 @@ +# saevus cor TKL + +![Cor TKL](https://i.imgur.com/RGctsaVl.png) + +* Keyboard Maintainer: [Ramon Imbao](https://github.com/ramonimbao) +* Hardware Supported: RP2040 + +Make example for this keyboard (after setting up your build environment): + + make saevus/cor_tkl:via + +To get to the bootloader, simply press the reset button located at the back of the PCB. You can then flash new firmware onto it. + +Flashing example for this keyboard: + + make saevus/cor_tkl:via: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/saevus/cor_tkl/rules.mk b/keyboards/saevus/cor_tkl/rules.mk new file mode 100644 index 00000000000..e53fbb2e92c --- /dev/null +++ b/keyboards/saevus/cor_tkl/rules.mk @@ -0,0 +1,13 @@ +# MCU name +MCU = RP2040 + +# Bootloader selection +BOOTLOADER = rp2040 + +# RGB Matrix +RGB_MATRIX_ENABLE = yes +RGB_MATRIX_DRIVER = WS2812 +WS2812_DRIVER = vendor + +LAYOUTS = tkl_f13_ansi tkl_f13_ansi_split_bs_rshift tkl_f13_iso tkl_f13_iso_split_bs_rshift + diff --git a/keyboards/salicylic_acid3/naked48/keymaps/salicylic/config.h b/keyboards/salicylic_acid3/naked48/keymaps/salicylic/config.h index 71a43e208c2..026e8d90979 100644 --- a/keyboards/salicylic_acid3/naked48/keymaps/salicylic/config.h +++ b/keyboards/salicylic_acid3/naked48/keymaps/salicylic/config.h @@ -25,14 +25,14 @@ #undef RGBLED_NUM #endif -#define DRIVER_LED_TOTAL 48 +#define RGB_MATRIX_LED_COUNT 48 #ifdef RGB_MATRIX_ENABLE # define RGB_MATRIX_KEYPRESSES // reacts to keypresses // # define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses) // # define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects # define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended -// # define RGB_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) +// # define RGB_MATRIX_LED_PROCESS_LIMIT (RGB_MATRIX_LED_COUNT + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) // # define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness) // # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 // limits maximum brightness of LEDs to 200 out of 255. If not defined maximum brightness is set to 255 # define RGB_MATRIX_HUE_STEP 8 diff --git a/keyboards/salicylic_acid3/naked48/keymaps/via_rgb_matrix/config.h b/keyboards/salicylic_acid3/naked48/keymaps/via_rgb_matrix/config.h index 7eabf9e831d..129e9a55487 100644 --- a/keyboards/salicylic_acid3/naked48/keymaps/via_rgb_matrix/config.h +++ b/keyboards/salicylic_acid3/naked48/keymaps/via_rgb_matrix/config.h @@ -25,7 +25,7 @@ #undef RGBLED_NUM #endif -#define DRIVER_LED_TOTAL 48 +#define RGB_MATRIX_LED_COUNT 48 #ifdef RGB_MATRIX_ENABLE #define RGB_MATRIX_KEYPRESSES // reacts to keypresses @@ -34,7 +34,7 @@ // #define RGB_DISABLE_TIMEOUT 0 // number of milliseconds to wait until rgb automatically turns off // #define RGB_DISABLE_AFTER_TIMEOUT 0 // OBSOLETE: number of ticks to wait until disabling effects #define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended - #define RGB_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) + #define RGB_MATRIX_LED_PROCESS_LIMIT (RGB_MATRIX_LED_COUNT + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) #define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness) #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 255 // limits maximum brightness of LEDs to 200 out of 255. If not defined maximum brightness is set to 255 // #define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_LEFT_RIGHT // Sets the default mode, if none has been set diff --git a/keyboards/salicylic_acid3/setta21/keymaps/salicylic/config.h b/keyboards/salicylic_acid3/setta21/keymaps/salicylic/config.h index 06e23ba7a3e..0fa44eb3ce1 100644 --- a/keyboards/salicylic_acid3/setta21/keymaps/salicylic/config.h +++ b/keyboards/salicylic_acid3/setta21/keymaps/salicylic/config.h @@ -21,14 +21,14 @@ #define TAPPING_FORCE_HOLD #define TAPPING_TERM 180 -#define DRIVER_LED_TOTAL RGBLED_NUM +#define RGB_MATRIX_LED_COUNT RGBLED_NUM #ifdef RGB_MATRIX_ENABLE # define RGB_MATRIX_KEYPRESSES // reacts to keypresses // # define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses) // # define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects # define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended -// # define RGB_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) +// # define RGB_MATRIX_LED_PROCESS_LIMIT (RGB_MATRIX_LED_COUNT + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) // # define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness) // # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 // limits maximum brightness of LEDs to 200 out of 255. If not defined maximum brightness is set to 255 # define RGB_MATRIX_HUE_STEP 8 diff --git a/keyboards/sawnsprojects/satxri6key/config.h b/keyboards/sawnsprojects/satxri6key/config.h index 077b18d0d8e..f1b06ace227 100644 --- a/keyboards/sawnsprojects/satxri6key/config.h +++ b/keyboards/sawnsprojects/satxri6key/config.h @@ -59,7 +59,7 @@ // #define RGBLIGHT_EFFECT_ALTERNATING #endif -#define DRIVER_LED_TOTAL 6 +#define RGB_MATRIX_LED_COUNT 6 #define RGB_MATRIX_KEYPRESSES // reacts to keypresses #define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses) #define RGB_MATRIX_FRAMEBUFFER_EFFECTS diff --git a/keyboards/senselessclay/ck60/config.h b/keyboards/senselessclay/ck60/config.h index ea48db4e15c..d02cf044210 100644 --- a/keyboards/senselessclay/ck60/config.h +++ b/keyboards/senselessclay/ck60/config.h @@ -35,7 +35,7 @@ along with this program. If not, see . /* RGB matrix lighting */ #define RGB_DI_PIN B1 -#define DRIVER_LED_TOTAL 62 +#define RGB_MATRIX_LED_COUNT 62 #define RGB_MATRIX_KEYPRESSES #define RGB_MATRIX_FRAMEBUFFER_EFFECTS #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 160 // limit brightness to not overamp the USB diff --git a/keyboards/sets3n/kk980/config.h b/keyboards/sets3n/kk980/config.h index e24468054ea..a9881717555 100644 --- a/keyboards/sets3n/kk980/config.h +++ b/keyboards/sets3n/kk980/config.h @@ -86,7 +86,7 @@ #endif #ifdef RGB_MATRIX_ENABLE -#define DRIVER_LED_TOTAL RGBLED_NUM +#define RGB_MATRIX_LED_COUNT RGBLED_NUM #define RGB_MATRIX_KEYPRESSES #endif diff --git a/keyboards/silverbullet44/config.h b/keyboards/silverbullet44/config.h index 28339ff4319..5e011267f1f 100644 --- a/keyboards/silverbullet44/config.h +++ b/keyboards/silverbullet44/config.h @@ -55,7 +55,7 @@ along with this program. If not, see . #define RGBLED_SPLIT {26, 26} #define RGBLED_NUM 52 #ifdef RGB_MATRIX_ENABLE - #define DRIVER_LED_TOTAL 52 + #define RGB_MATRIX_LED_COUNT 52 #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 #define RGB_MATRIX_HUE_STEP 8 diff --git a/keyboards/skmt/15k/config.h b/keyboards/skmt/15k/config.h index 6144e332ea3..e1f021159ea 100644 --- a/keyboards/skmt/15k/config.h +++ b/keyboards/skmt/15k/config.h @@ -23,7 +23,7 @@ #define RGB_DI_PIN GP1 // RGB LED pin #define RGBLED_NUM 15 // Number of LEDs -#define DRIVER_LED_TOTAL 15 // Number of LEDs +#define RGB_MATRIX_LED_COUNT 15 // Number of LEDs #define RGB_DISABLE_WHEN_USB_SUSPENDED #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 255 #define RGB_MATRIX_LED_FLUSH_LIMIT 16 diff --git a/keyboards/smallkeyboard/config.h b/keyboards/smallkeyboard/config.h index 20a9f2d88a2..71639479208 100644 --- a/keyboards/smallkeyboard/config.h +++ b/keyboards/smallkeyboard/config.h @@ -102,7 +102,7 @@ #define DRIVER_ADDR_1 0b1110100 #define DRIVER_COUNT 1 -#define DRIVER_LED_TOTAL 6 +#define RGB_MATRIX_LED_COUNT 6 #endif //#define RGB_DI_PIN B7 //#ifdef RGB_DI_PIN diff --git a/keyboards/smallkeyboard/smallkeyboard.c b/keyboards/smallkeyboard/smallkeyboard.c index af38cb61218..40cf3fc71ad 100644 --- a/keyboards/smallkeyboard/smallkeyboard.c +++ b/keyboards/smallkeyboard/smallkeyboard.c @@ -17,7 +17,7 @@ #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location diff --git a/keyboards/sofle/keymaps/devdev/config.h b/keyboards/sofle/keymaps/devdev/config.h index c34da8382b9..cb5ff7210a3 100644 --- a/keyboards/sofle/keymaps/devdev/config.h +++ b/keyboards/sofle/keymaps/devdev/config.h @@ -51,7 +51,7 @@ #ifdef RGB_MATRIX_ENABLE #define RGBLED_NUM 35 // Number of LEDs #define RGBLED_NUM 35 // Number of LEDs -#define DRIVER_LED_TOTAL RGBLED_NUM +#define RGB_MATRIX_LED_COUNT RGBLED_NUM #endif #ifdef RGBLIGHT_ENABLE @@ -86,7 +86,7 @@ // # define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects # define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended # define RGB_MATRIX_FRAMEBUFFER_EFFECTS -// # define RGB_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) +// # define RGB_MATRIX_LED_PROCESS_LIMIT (RGB_MATRIX_LED_COUNT + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) // # define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness) # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 // limits maximum brightness of LEDs to 150 out of 255. Higher may cause the controller to crash. diff --git a/keyboards/sofle/keymaps/killmaster/config.h b/keyboards/sofle/keymaps/killmaster/config.h index 9d1de12d5ac..db44250c171 100644 --- a/keyboards/sofle/keymaps/killmaster/config.h +++ b/keyboards/sofle/keymaps/killmaster/config.h @@ -25,7 +25,7 @@ for more options. #ifdef RGB_MATRIX_ENABLE #define RGBLED_NUM 72 -#define DRIVER_LED_TOTAL RGBLED_NUM +#define RGB_MATRIX_LED_COUNT RGBLED_NUM #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 120 // limits maximum brightness of LEDs to 150 out of 255. Higher may cause the controller to crash. #define RGB_MATRIX_HUE_STEP 8 #define RGB_MATRIX_SAT_STEP 8 diff --git a/keyboards/sofle/keymaps/rgb_default/config.h b/keyboards/sofle/keymaps/rgb_default/config.h index c34da8382b9..cb5ff7210a3 100644 --- a/keyboards/sofle/keymaps/rgb_default/config.h +++ b/keyboards/sofle/keymaps/rgb_default/config.h @@ -51,7 +51,7 @@ #ifdef RGB_MATRIX_ENABLE #define RGBLED_NUM 35 // Number of LEDs #define RGBLED_NUM 35 // Number of LEDs -#define DRIVER_LED_TOTAL RGBLED_NUM +#define RGB_MATRIX_LED_COUNT RGBLED_NUM #endif #ifdef RGBLIGHT_ENABLE @@ -86,7 +86,7 @@ // # define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects # define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended # define RGB_MATRIX_FRAMEBUFFER_EFFECTS -// # define RGB_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) +// # define RGB_MATRIX_LED_PROCESS_LIMIT (RGB_MATRIX_LED_COUNT + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) // # define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness) # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 // limits maximum brightness of LEDs to 150 out of 255. Higher may cause the controller to crash. diff --git a/keyboards/sofle/keymaps/via/config.h b/keyboards/sofle/keymaps/via/config.h index 77ce4f25901..0fb2cbf36de 100644 --- a/keyboards/sofle/keymaps/via/config.h +++ b/keyboards/sofle/keymaps/via/config.h @@ -29,7 +29,7 @@ for more options. # define RGBLED_SPLIT \ { 36, 36 } # ifdef RGB_MATRIX_ENABLE -# define DRIVER_LED_TOTAL RGBLED_NUM +# define RGB_MATRIX_LED_COUNT RGBLED_NUM # define RGB_MATRIX_SPLIT RGBLED_SPLIT # define SPLIT_TRANSPORT_MIRROR # else diff --git a/keyboards/sowbug/68keys/config.h b/keyboards/sowbug/68keys/config.h index 44d75e670ad..48b13e6a28c 100644 --- a/keyboards/sowbug/68keys/config.h +++ b/keyboards/sowbug/68keys/config.h @@ -40,7 +40,7 @@ // #define BACKLIGHT_PIN rgb_matrix #define RGB_MATRIX_KEYPRESSES #define RGBLED_NUM 68 -#define DRIVER_LED_TOTAL RGBLED_NUM +#define RGB_MATRIX_LED_COUNT RGBLED_NUM #define RGB_MATRIX_FRAMEBUFFER_EFFECTS #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 128 // RGB Matrix Animation modes. Explicitly enabled diff --git a/keyboards/sowbug/ansi_tkl/config.h b/keyboards/sowbug/ansi_tkl/config.h index e4752f94258..f34d4434ffd 100644 --- a/keyboards/sowbug/ansi_tkl/config.h +++ b/keyboards/sowbug/ansi_tkl/config.h @@ -36,7 +36,7 @@ #define RGB_DI_PIN B9 #define RGB_MATRIX_KEYPRESSES #define RGBLED_NUM 87 -#define DRIVER_LED_TOTAL RGBLED_NUM +#define RGB_MATRIX_LED_COUNT RGBLED_NUM #define RGB_MATRIX_FRAMEBUFFER_EFFECTS #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 128 diff --git a/keyboards/spaceholdings/nebula12/config.h b/keyboards/spaceholdings/nebula12/config.h index 97623f0ff0c..07b2e9fc6c3 100755 --- a/keyboards/spaceholdings/nebula12/config.h +++ b/keyboards/spaceholdings/nebula12/config.h @@ -144,7 +144,7 @@ along with this program. If not, see . #define RGB_BACKLIGHT_COLOR_2 { .h = 127, .s = 255 } #define DRIVER_COUNT 1 -#define DRIVER_LED_TOTAL 16 +#define RGB_MATRIX_LED_COUNT 16 // These define which keys in the matrix are alphas/mods // Used for backlight effects so colors are different for diff --git a/keyboards/spaceholdings/nebula12b/config.h b/keyboards/spaceholdings/nebula12b/config.h index ac3826b2538..b4e319b6032 100755 --- a/keyboards/spaceholdings/nebula12b/config.h +++ b/keyboards/spaceholdings/nebula12b/config.h @@ -68,7 +68,7 @@ along with this program. If not, see . /* RGB options */ #define RGB_DI_PIN D5 -#define DRIVER_LED_TOTAL 16 +#define RGB_MATRIX_LED_COUNT 16 #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 255 #define RGB_DISABLE_WHEN_USB_SUSPENDED #define RGB_MATRIX_KEYPRESSES diff --git a/keyboards/spaceholdings/nebula68/config.h b/keyboards/spaceholdings/nebula68/config.h index a8a9803d152..0d2db2c8247 100755 --- a/keyboards/spaceholdings/nebula68/config.h +++ b/keyboards/spaceholdings/nebula68/config.h @@ -128,7 +128,7 @@ along with this program. If not, see . #define RGB_BACKLIGHT_COLOR_2 { .h = 127, .s = 255 } #define DRIVER_COUNT 2 -#define DRIVER_LED_TOTAL 128 +#define RGB_MATRIX_LED_COUNT 128 // These define which keys in the matrix are alphas/mods // Used for backlight effects so colors are different for diff --git a/keyboards/spaceholdings/nebula68b/config.h b/keyboards/spaceholdings/nebula68b/config.h index 4e22e69e100..b95adb0508b 100755 --- a/keyboards/spaceholdings/nebula68b/config.h +++ b/keyboards/spaceholdings/nebula68b/config.h @@ -68,7 +68,7 @@ along with this program. If not, see . /* RGB options */ #define RGB_DI_PIN B7 -#define DRIVER_LED_TOTAL 79 +#define RGB_MATRIX_LED_COUNT 79 #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 130 #define RGB_DISABLE_WHEN_USB_SUSPENDED #define RGB_MATRIX_KEYPRESSES diff --git a/keyboards/spaceholdings/nebula68b/hs/config.h b/keyboards/spaceholdings/nebula68b/hs/config.h index ac25a8ef1d0..b66344faccd 100755 --- a/keyboards/spaceholdings/nebula68b/hs/config.h +++ b/keyboards/spaceholdings/nebula68b/hs/config.h @@ -15,5 +15,5 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#undef DRIVER_LED_TOTAL -#define DRIVER_LED_TOTAL 78 +#undef RGB_MATRIX_LED_COUNT +#define RGB_MATRIX_LED_COUNT 78 diff --git a/keyboards/splitkb/kyria/keymaps/jimmysjolund/config.h b/keyboards/splitkb/kyria/keymaps/jimmysjolund/config.h new file mode 100644 index 00000000000..217e97f9319 --- /dev/null +++ b/keyboards/splitkb/kyria/keymaps/jimmysjolund/config.h @@ -0,0 +1,20 @@ +/* Copyright 2022 Thomas Baart + * + * 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 + +// Lets you roll mod-tap keys +#define IGNORE_MOD_TAP_INTERRUPT diff --git a/keyboards/splitkb/kyria/keymaps/jimmysjolund/keymap.c b/keyboards/splitkb/kyria/keymaps/jimmysjolund/keymap.c new file mode 100644 index 00000000000..9e5224b28dd --- /dev/null +++ b/keyboards/splitkb/kyria/keymaps/jimmysjolund/keymap.c @@ -0,0 +1,257 @@ +/* Copyright 2019 Thomas Baart + * + * 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 . + */ +#include QMK_KEYBOARD_H + +enum layers { + _QWERTY = 0, + _DVORAK, + _COLEMAK_DH, + _NAV, + _SYM, + _FUNCTION, + _ADJUST, +}; + + +// Aliases for readability +#define QWERTY DF(_QWERTY) +#define COLEMAK DF(_COLEMAK_DH) +#define DVORAK DF(_DVORAK) + +#define SYM MO(_SYM) +#define NAV MO(_NAV) +#define FKEYS MO(_FUNCTION) +#define ADJUST MO(_ADJUST) + +#define CTL_ESC MT(MOD_LCTL, KC_ESC) +#define CTL_QUOT MT(MOD_RCTL, KC_QUOTE) +#define CTL_MINS MT(MOD_RCTL, KC_MINUS) +#define ALT_ENT MT(MOD_LALT, KC_ENT) + +// Note: LAlt/Enter (ALT_ENT) is not the same thing as the keyboard shortcut Alt+Enter. +// The notation `mod/tap` denotes a key that activates the modifier `mod` when held down, and +// produces the key `tap` when tapped (i.e. pressed and released). + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* + * Base Layer: QWERTY + * + * ,-------------------------------------------. ,-------------------------------------------. + * | Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp | + * |--------+------+------+------+------+------| |------+------+------+------+------+--------| + * |Ctrl/Esc| A | S | D | F | G | | H | J | K | L | ; : |Ctrl/' "| + * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| + * | LShift | Z | X | C | V | B | [ { |CapsLk| |F-keys| ] } | N | M | , < | . > | / ? | RShift | + * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + * |Adjust| LGUI | LAlt/| Space| Nav | | Sym | Space| AltGr| RGUI | Menu | + * | | | Enter| | | | | | | | | + * `----------------------------------' `----------------------------------' + */ + +/* + * jimmysjolund 2022-09-13 + * + * Base Layer: QWERTY + * + * ,-------------------------------------------. ,-------------------------------------------. + * | Esc | Q | W | E | R | T | | Y | U | I | O | P | Bksp | + * |--------+------+------+------+------+------| |------+------+------+------+------+--------| + * | Tab | A | S | D | F | G | | H | J | K | L | ; : | ' " | + * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| + * | Nav | Z | X | C | V | B | [ { | Alt | | Nav | ] } | N | M | , < | . > | / ? | Adjust | + * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + * |Ctrl+ | LGUI | Shift|Bksp/ | Sym | |Enter | Space| AltGr| ← | → | + * | Alt | | | Ctrl | | | | | | | | + * `----------------------------------' `----------------------------------' + */ + + + + + [_QWERTY] = LAYOUT( + KC_ESC , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y, KC_U , KC_I , KC_O , KC_P , KC_BSPC, + KC_TAB , KC_A , KC_S , KC_D , KC_F , KC_G , KC_H, KC_J , KC_K , KC_L ,KC_SCLN, KC_QUOT, + NAV , KC_Z , KC_X , KC_C , KC_V , KC_B , KC_LBRC, KC_LALT, NAV , KC_RBRC, KC_N, KC_M ,KC_COMM, KC_DOT ,KC_SLSH, ADJUST, + LCTL(KC_LALT) , KC_LGUI, KC_LSFT, LCTL_T(KC_BSPC), SYM, KC_ENT, KC_SPC ,KC_ALGR, KC_LEFT, KC_RGHT + ), + +/* + * Base Layer: Dvorak + * + * ,-------------------------------------------. ,-------------------------------------------. + * | Tab | ' " | , < | . > | P | Y | | F | G | C | R | L | Bksp | + * |--------+------+------+------+------+------| |------+------+------+------+------+--------| + * |Ctrl/Esc| A | O | E | U | I | | D | H | T | N | S |Ctrl/- _| + * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| + * | LShift | ; : | Q | J | K | X | [ { |CapsLk| |F-keys| ] } | B | M | W | V | Z | RShift | + * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + * |Adjust| LGUI | LAlt/| Space| Nav | | Sym | Space| AltGr| RGUI | Menu | + * | | | Enter| | | | | | | | | + * `----------------------------------' `----------------------------------' + */ + [_DVORAK] = LAYOUT( + KC_TAB ,KC_QUOTE,KC_COMM, KC_DOT, KC_P , KC_Y , KC_F, KC_G , KC_C , KC_R , KC_L , KC_BSPC, + CTL_ESC , KC_A , KC_O , KC_E , KC_U , KC_I , KC_D, KC_H , KC_T , KC_N , KC_S , CTL_MINS, + KC_LSFT ,KC_SCLN, KC_Q , KC_J , KC_K , KC_X , KC_LBRC,KC_CAPS, FKEYS , KC_RBRC, KC_B, KC_M , KC_W , KC_V , KC_Z , KC_RSFT, + ADJUST, KC_LGUI, ALT_ENT, KC_SPC , NAV , SYM , KC_SPC ,KC_RALT, KC_RGUI, KC_APP + ), + +/* + * Base Layer: Colemak DH + * + * ,-------------------------------------------. ,-------------------------------------------. + * | Tab | Q | W | F | P | B | | J | L | U | Y | ; : | Bksp | + * |--------+------+------+------+------+------| |------+------+------+------+------+--------| + * |Ctrl/Esc| A | R | S | T | G | | M | N | E | I | O |Ctrl/' "| + * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| + * | LShift | Z | X | C | D | V | [ { |CapsLk| |F-keys| ] } | K | H | , < | . > | / ? | RShift | + * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + * |Adjust| LGUI | LAlt/| Space| Nav | | Sym | Space| AltGr| RGUI | Menu | + * | | | Enter| | | | | | | | | + * `----------------------------------' `----------------------------------' + */ + +/* + * jimmysjolund 2022-09-10 + * Base Layer: Colemak DH + * + * ,-------------------------------------------. ,-------------------------------------------. + * | Esc | Q | W | F | P | G | | J | L | U | Y | ; : | Bksp | + * |--------+------+------+------+------+------| |------+------+------+------+------+--------| + * | Tab | A | R | S | T | D | | H | N | E | I | O |Ctrl/' "| + * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| + * | Sym | Z | X | C | V | B | [ { | Alt | | Nav | ] } | K | M | , < | . > | / ? | RShift | + * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + * |Adjust| LGUI |LShift| Bksp | Ctrl | | Enter| Space| AltGr| ← | → | + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + */ + + + [_COLEMAK_DH] = LAYOUT( + KC_ESC , KC_Q , KC_W , KC_F , KC_P , KC_G , KC_J, KC_L , KC_U , KC_Y ,KC_SCLN, KC_BSPC, + KC_TAB , KC_A , KC_R , KC_S , KC_T , KC_D , KC_H, KC_N , KC_E , KC_I , KC_O , CTL_QUOT, + SYM , KC_Z , KC_X , KC_C , KC_V , KC_B , KC_LBRC, KC_LALT, NAV , KC_RBRC, KC_K, KC_M ,KC_COMM, KC_DOT ,KC_SLSH, KC_RSFT, + ADJUST, KC_LGUI, KC_LSFT, KC_BSPC ,KC_LCTL, KC_ENT , KC_SPC ,KC_ALGR, KC_LEFT, KC_RGHT + ), + +/* + * Nav Layer: Media, navigation + * + * ,-------------------------------------------. ,-------------------------------------------. + * | | | | | | | | PgUp | Home | ↑ | End | VolUp| Delete | + * |--------+------+------+------+------+------| |------+------+------+------+------+--------| + * | | GUI | Alt | Ctrl | Shift| | | PgDn | ← | ↓ | → | VolDn| Insert | + * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| + * | | | | | | | |ScLck | | | | Pause|M Prev|M Play|M Next|VolMut| PrtSc | + * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + * | | | | | | | | | | | | + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + */ + [_NAV] = LAYOUT( + _______, _______, _______, _______, _______, _______, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_VOLU, KC_DEL, + _______, KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, _______, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_VOLD, KC_INS, + _______, _______, _______, _______, _______, _______, _______, KC_SLCK, _______, _______,KC_PAUSE, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_PSCR, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + +/* + * Sym Layer: Numbers and symbols + * + * ,-------------------------------------------. ,-------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | = | + * |--------+------+------+------+------+------| |------+------+------+------+------+--------| + * | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | + | + * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| + * | | | \ | : | ; | - | [ | { | | | | } | ] | _ | , | . | / | ? | + * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + * | | | | | | | | | | | | + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + */ + [_SYM] = LAYOUT( + KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_EQL , + KC_TILD , KC_EXLM, KC_AT , KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_PLUS, + KC_PIPE , KC_BSLS, KC_COLN, KC_SCLN, KC_MINS, KC_LBRC, KC_LCBR, _______, _______, KC_RCBR, KC_RBRC, KC_UNDS, KC_COMM, KC_DOT, KC_SLSH, KC_QUES, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + +/* + * Function Layer: Function keys + * + * ,-------------------------------------------. ,-------------------------------------------. + * | | F9 | F10 | F11 | F12 | | | | | | | | | + * |--------+------+------+------+------+------| |------+------+------+------+------+--------| + * | | F5 | F6 | F7 | F8 | | | | Shift| Ctrl | Alt | GUI | | + * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| + * | | F1 | F2 | F3 | F4 | | | | | | | | | | | | | + * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + * | | | | | | | | | | | | + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + */ + [_FUNCTION] = LAYOUT( + _______, KC_F9 , KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, + _______, KC_F5 , KC_F6 , KC_F7 , KC_F8 , _______, _______, KC_RSFT, KC_RCTL, KC_LALT, KC_RGUI, _______, + _______, KC_F1 , KC_F2 , KC_F3 , KC_F4 , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + +/* + * Adjust Layer: Default layer settings, RGB + * + * ,-------------------------------------------. ,-------------------------------------------. + * | | | |QWERTY| | | | | | | | | | + * |--------+------+------+------+------+------| |------+------+------+------+------+--------| + * | | | |Dvorak| | | | TOG | SAI | HUI | VAI | MOD | | + * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| + * | | | |Colmak| | | | | | | | | SAD | HUD | VAD | RMOD | | + * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' + * | | | | | | | | | | | | + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + */ + [_ADJUST] = LAYOUT( + _______, _______, _______, QWERTY , _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, DVORAK , _______, _______, RGB_TOG, RGB_SAI, RGB_HUI, RGB_VAI, RGB_MOD, _______, + _______, _______, _______, COLEMAK, _______, _______,_______, _______, _______, _______, _______, RGB_SAD, RGB_HUD, RGB_VAD, RGB_RMOD, _______, + _______, _______, _______,_______, _______, _______, _______, _______, _______, _______ + ), + +// /* +// * Layer template +// * +// * ,-------------------------------------------. ,-------------------------------------------. +// * | | | | | | | | | | | | | | +// * |--------+------+------+------+------+------| |------+------+------+------+------+--------| +// * | | | | | | | | | | | | | | +// * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| +// * | | | | | | | | | | | | | | | | | | +// * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------' +// * | | | | | | | | | | | | +// * | | | | | | | | | | | | +// * `----------------------------------' `----------------------------------' +// */ +// [_LAYERINDEX] = LAYOUT( +// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +// ), +}; + diff --git a/keyboards/splitkb/kyria/keymaps/jimmysjolund/rules.mk b/keyboards/splitkb/kyria/keymaps/jimmysjolund/rules.mk new file mode 100644 index 00000000000..35f8ec90c6f --- /dev/null +++ b/keyboards/splitkb/kyria/keymaps/jimmysjolund/rules.mk @@ -0,0 +1,4 @@ +OLED_ENABLE = yes +OLED_DRIVER = SSD1306 # Enables the use of OLED displays +ENCODER_ENABLE = yes # Enables the use of one or more encoders +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow diff --git a/keyboards/splitkb/kyria/rev1/config.h b/keyboards/splitkb/kyria/rev1/config.h index f6f9a98c3ee..7bc756c0421 100644 --- a/keyboards/splitkb/kyria/rev1/config.h +++ b/keyboards/splitkb/kyria/rev1/config.h @@ -82,7 +82,7 @@ along with this program. If not, see . /* RGB matrix support */ #ifdef RGB_MATRIX_ENABLE # define SPLIT_TRANSPORT_MIRROR -# define DRIVER_LED_TOTAL RGBLED_NUM // Number of LEDs +# define RGB_MATRIX_LED_COUNT RGBLED_NUM // Number of LEDs # define RGB_MATRIX_SPLIT { 10, 10 } # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 170 # define RGB_DISABLE_WHEN_USB_SUSPENDED diff --git a/keyboards/splitkb/kyria/rev2/config.h b/keyboards/splitkb/kyria/rev2/config.h index 6af99e0a7c6..1733eddf9a2 100644 --- a/keyboards/splitkb/kyria/rev2/config.h +++ b/keyboards/splitkb/kyria/rev2/config.h @@ -92,7 +92,7 @@ along with this program. If not, see . /* RGB matrix support */ #ifdef RGB_MATRIX_ENABLE # define SPLIT_TRANSPORT_MIRROR -# define DRIVER_LED_TOTAL RGBLED_NUM // Number of LEDs +# define RGB_MATRIX_LED_COUNT RGBLED_NUM // Number of LEDs # define RGB_MATRIX_SPLIT { 10, 10 } # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 170 # define RGB_DISABLE_WHEN_USB_SUSPENDED diff --git a/keyboards/synapse/config.h b/keyboards/synapse/config.h index b4311c14028..c52ae2edc87 100644 --- a/keyboards/synapse/config.h +++ b/keyboards/synapse/config.h @@ -46,5 +46,5 @@ //#define RGB_DI_PIN D5 //#define RGBLED_NUM 4 -//#define DRIVER_LED_TOTAL RGBLED_NUM +//#define RGB_MATRIX_LED_COUNT RGBLED_NUM //#define RGBLIGHT_DEFAULT_HUE 130 diff --git a/keyboards/system76/launch_1/config.h b/keyboards/system76/launch_1/config.h index 50a6e6f9d72..6f257e91188 100644 --- a/keyboards/system76/launch_1/config.h +++ b/keyboards/system76/launch_1/config.h @@ -43,7 +43,7 @@ #ifdef RGB_MATRIX_ENABLE # define RGB_DI_PIN E2 -# define DRIVER_LED_TOTAL 84 +# define RGB_MATRIX_LED_COUNT 84 # define RGB_MATRIX_KEYPRESSES // Reacts to keypresses // # define RGB_MATRIX_KEYRELEASES // Reacts to keyreleases (instead of keypresses) // # define RGB_MATRIX_FRAMEBUFFER_EFFECTS // Enables framebuffer effects diff --git a/keyboards/system76/launch_1/rgb_matrix_kb.inc b/keyboards/system76/launch_1/rgb_matrix_kb.inc index 484483e0a10..02de10ed500 100644 --- a/keyboards/system76/launch_1/rgb_matrix_kb.inc +++ b/keyboards/system76/launch_1/rgb_matrix_kb.inc @@ -24,13 +24,13 @@ RGB_MATRIX_EFFECT(unlocked) #include "dynamic_keymap.h" static bool active_keys_initialized = false; -static uint8_t active_keys_table[DRIVER_LED_TOTAL] = {0}; +static uint8_t active_keys_table[RGB_MATRIX_LED_COUNT] = {0}; static void active_keys_initialize(void) { for (uint8_t row = 0; row < MATRIX_ROWS; row++) { for (uint8_t col = 0; col < MATRIX_COLS; col++) { uint8_t led = g_led_config.matrix_co[row][col]; - if (led < DRIVER_LED_TOTAL && row < 16 && col < 16) { + if (led < RGB_MATRIX_LED_COUNT && row < 16 && col < 16) { active_keys_table[led] = (row << 4) | col; } } @@ -65,10 +65,10 @@ static bool active_keys(effect_params_t* params) { } } - return led_max < DRIVER_LED_TOTAL; + return led_max < RGB_MATRIX_LED_COUNT; } -RGB raw_rgb_data[DRIVER_LED_TOTAL] = {0}; +RGB raw_rgb_data[RGB_MATRIX_LED_COUNT] = {0}; static uint8_t normalize_component(uint8_t component) { uint16_t x = (uint16_t)component; @@ -94,7 +94,7 @@ static bool raw_rgb(effect_params_t* params) { RGB rgb = normalize_index(i); rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); } - return led_max < DRIVER_LED_TOTAL; + return led_max < RGB_MATRIX_LED_COUNT; } static uint8_t unlocked_keys[8][2] = { @@ -151,7 +151,7 @@ static bool unlocked(effect_params_t* params) { RGB rgb = hsv_to_rgb(hsv); rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); } - return led_max < DRIVER_LED_TOTAL; + return led_max < RGB_MATRIX_LED_COUNT; } #endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS diff --git a/keyboards/system76/system76_ec.c b/keyboards/system76/system76_ec.c index f6c8af82fe1..5474181ecac 100644 --- a/keyboards/system76/system76_ec.c +++ b/keyboards/system76/system76_ec.c @@ -129,7 +129,7 @@ static enum rgb_matrix_effects mode_map[] = { _Static_assert(sizeof(mode_map) == MODE_LAST, "mode_map_length"); -RGB raw_rgb_data[DRIVER_LED_TOTAL]; +RGB raw_rgb_data[RGB_MATRIX_LED_COUNT]; // clang-format off rgb_config_t layer_rgb[DYNAMIC_KEYMAP_LAYER_COUNT] = { @@ -294,7 +294,7 @@ void raw_hid_receive(uint8_t *data, uint8_t length) { case CMD_LED_GET_COLOR: if (!bootloader_unlocked) { uint8_t index = data[2]; - if (index < DRIVER_LED_TOTAL) { + if (index < RGB_MATRIX_LED_COUNT) { data[3] = raw_rgb_data[index].r; data[4] = raw_rgb_data[index].g; data[5] = raw_rgb_data[index].b; @@ -322,7 +322,7 @@ void raw_hid_receive(uint8_t *data, uint8_t length) { .b = data[5], }; - if (index < DRIVER_LED_TOTAL) { + if (index < RGB_MATRIX_LED_COUNT) { raw_rgb_data[index] = rgb; data[1] = 0; } else { diff --git a/keyboards/takashicompany/goat51/info.json b/keyboards/takashicompany/goat51/info.json new file mode 100644 index 00000000000..b87b08161e6 --- /dev/null +++ b/keyboards/takashicompany/goat51/info.json @@ -0,0 +1,498 @@ +{ + "manufacturer": "takashicompany", + "keyboard_name": "GOAT51", + "maintainer": "takashicompany", + "development_board": "promicro", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "encoder": true, + "rgblight": true + }, + "matrix_pins": { + "cols": [ + "D4", + "C6", + "D7", + "E6", + "B4", + "B5", + "D2" + ], + "rows": [ + "F4", + "F5", + "F6", + "F7", + "B1", + "B3", + "B2", + "B6" + ] + }, + "encoder": { + "rotary": [ + { "pin_a": "D1", "pin_b": "D0" } + ] + }, + "url": "https://github.com/takashicompany/goat51", + "usb": { + "device_version": "1.0.0", + "pid": "0x0029", + "vid": "0x7463" + }, + "rgblight": { + "led_count": 11, + "pin": "D3", + "hue_steps": 10, + "saturation_steps": 17, + "brightness_steps": 17, + "animations": { + "alternating": true, + "breathing": true, + "christmas": true, + "knight": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "rgb_test": true, + "snake": true, + "static_gradient": true, + "twinkle": true + } + }, + "layouts": { + "LAYOUT": { + "layout": [ + { + "matrix": [ + 0, + 0 + ], + "x": 0, + "y": 0.5 + }, + { + "matrix": [ + 0, + 1 + ], + "x": 1, + "y": 0.5 + }, + { + "matrix": [ + 0, + 2 + ], + "x": 2, + "y": 0.25 + }, + { + "matrix": [ + 0, + 3 + ], + "x": 3, + "y": 0 + }, + { + "matrix": [ + 0, + 4 + ], + "x": 4, + "y": 0 + }, + { + "matrix": [ + 0, + 5 + ], + "x": 5, + "y": 0 + }, + { + "matrix": [ + 4, + 1 + ], + "x": 10, + "y": 0 + }, + { + "matrix": [ + 4, + 2 + ], + "x": 11, + "y": 0 + }, + { + "matrix": [ + 4, + 3 + ], + "x": 12, + "y": 0 + }, + { + "matrix": [ + 4, + 4 + ], + "x": 13, + "y": 0.25 + }, + { + "matrix": [ + 4, + 5 + ], + "x": 14, + "y": 0.5 + }, + { + "matrix": [ + 4, + 6 + ], + "x": 15, + "y": 0.5 + }, + { + "matrix": [ + 1, + 0 + ], + "x": 0, + "y": 1.5 + }, + { + "matrix": [ + 1, + 1 + ], + "x": 1, + "y": 1.5 + }, + { + "matrix": [ + 1, + 2 + ], + "x": 2, + "y": 1.25 + }, + { + "matrix": [ + 1, + 3 + ], + "x": 3, + "y": 1 + }, + { + "matrix": [ + 1, + 4 + ], + "x": 4, + "y": 1 + }, + { + "matrix": [ + 1, + 5 + ], + "x": 5, + "y": 1 + }, + { + "matrix": [ + 1, + 6 + ], + "x": 7.5, + "y": 0.5 + }, + { + "matrix": [ + 5, + 1 + ], + "x": 10, + "y": 1 + }, + { + "matrix": [ + 5, + 2 + ], + "x": 11, + "y": 1 + }, + { + "matrix": [ + 5, + 3 + ], + "x": 12, + "y": 1 + }, + { + "matrix": [ + 5, + 4 + ], + "x": 13, + "y": 1.25 + }, + { + "matrix": [ + 5, + 5 + ], + "x": 14, + "y": 1.5 + }, + { + "matrix": [ + 5, + 6 + ], + "x": 15, + "y": 1.5 + }, + { + "matrix": [ + 2, + 0 + ], + "x": 0, + "y": 2.5 + }, + { + "matrix": [ + 2, + 1 + ], + "x": 1, + "y": 2.5 + }, + { + "matrix": [ + 2, + 2 + ], + "x": 2, + "y": 2.25 + }, + { + "matrix": [ + 2, + 3 + ], + "x": 3, + "y": 2 + }, + { + "matrix": [ + 2, + 4 + ], + "x": 4, + "y": 2 + }, + { + "matrix": [ + 2, + 5 + ], + "x": 5, + "y": 2 + }, + { + "matrix": [ + 6, + 1 + ], + "x": 10, + "y": 2 + }, + { + "matrix": [ + 6, + 2 + ], + "x": 11, + "y": 2 + }, + { + "matrix": [ + 6, + 3 + ], + "x": 12, + "y": 2 + }, + { + "matrix": [ + 6, + 4 + ], + "x": 13, + "y": 2.25 + }, + { + "matrix": [ + 6, + 5 + ], + "x": 14, + "y": 2.5 + }, + { + "matrix": [ + 6, + 6 + ], + "x": 15, + "y": 2.5 + }, + { + "matrix": [ + 3, + 0 + ], + "x": 0, + "y": 3.5 + }, + { + "matrix": [ + 3, + 1 + ], + "x": 1, + "y": 3.5 + }, + { + "matrix": [ + 3, + 2 + ], + "x": 2, + "y": 3.25 + }, + { + "matrix": [ + 3, + 3 + ], + "x": 3, + "y": 3 + }, + { + "matrix": [ + 3, + 4 + ], + "x": 4, + "y": 3 + }, + { + "matrix": [ + 3, + 5 + ], + "x": 5, + "y": 3 + }, + { + "matrix": [ + 3, + 6 + ], + "x": 6, + "y": 3 + }, + { + "matrix": [ + 7, + 0 + ], + "x": 9, + "y": 3 + }, + { + "matrix": [ + 7, + 1 + ], + "x": 10, + "y": 3 + }, + { + "matrix": [ + 7, + 2 + ], + "x": 11, + "y": 3 + }, + { + "matrix": [ + 7, + 3 + ], + "x": 12, + "y": 3 + }, + { + "matrix": [ + 7, + 4 + ], + "x": 13, + "y": 3.25 + }, + { + "matrix": [ + 7, + 5 + ], + "x": 14, + "y": 3.5 + }, + { + "matrix": [ + 7, + 6 + ], + "x": 15, + "y": 3.5 + }, + { + "matrix": [ + 0, + 6 + ], + "x": 7, + "y": 1.5 + }, + { + "matrix": [ + 4, + 0 + ], + "x": 8, + "y": 1.5 + } + ] + } + } +} \ No newline at end of file diff --git a/keyboards/takashicompany/goat51/keymaps/default/keymap.c b/keyboards/takashicompany/goat51/keymaps/default/keymap.c new file mode 100644 index 00000000000..4e2c0e2d579 --- /dev/null +++ b/keyboards/takashicompany/goat51/keymaps/default/keymap.c @@ -0,0 +1,123 @@ +// Copyright 2022 takashicompany (@takashicompany) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +enum custom_keycodes { + GOAT51 = SAFE_RANGE, + WEB, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + // 0: JIS-Alphabet + LAYOUT( + KC_ESC, LT(7, KC_Q), KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_LCTL, KC_A, KC_S, LT(6, KC_D), KC_F, KC_G, GOAT51, KC_H, KC_J, LT(6, KC_K), KC_L, KC_ENT, KC_ENT, + KC_LSFT, LSFT_T(KC_Z), LGUI_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, LCTL_T(KC_DOT), KC_BSPC, KC_DEL, + TG(6), KC_PGUP, KC_PGDN, KC_LCTL, KC_LGUI, ALT_T(KC_LANG2), LSFT_T(KC_TAB), LT(2, KC_SPC), LT(1, KC_LANG1), KC_RALT, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, + KC_PGDN, KC_PGUP + ), + + // 1: JIS-Num + LAYOUT( + KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, + KC_TRNS, LCTL_T(KC_EQL), KC_LBRC, KC_SLSH, KC_MINS, KC_RO, GOAT51, KC_SCLN, KC_QUOT, KC_RBRC, KC_NUHS, KC_JYEN, KC_TRNS, + KC_TRNS, LSFT_T(KC_PLUS), KC_LCBR, KC_QUES, KC_UNDS, LSFT(KC_RO), KC_COLN, KC_DQUO, KC_RCBR, LSFT(KC_NUHS), LSFT(KC_JYEN), KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS + ), + + // 2: JIS-Shift-Num + LAYOUT( + KC_TRNS, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, LGUI(KC_JYEN), KC_TRNS, + KC_TRNS, KC_PLUS, KC_LCBR, KC_QUES, KC_UNDS, LSFT(KC_RO), GOAT51, KC_COLN, KC_DQUO, KC_RCBR, LSFT(KC_NUHS), LSFT(KC_JYEN), KC_TRNS, + KC_TRNS, KC_LSFT, KC_LGUI, KC_LALT, KC_LANG2, KC_LSFT, KC_SPC, KC_LANG1, KC_TRNS, KC_TRNS, KC_DEL, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS + ), + + // 3: US-Alphabet + LAYOUT( + KC_TRNS, LT(7, KC_Q), KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_TRNS, + KC_TRNS, KC_A, KC_S, LT(6, KC_D), KC_F, KC_G, GOAT51, KC_H, KC_J, LT(6, KC_K), KC_L, KC_ENT, KC_TRNS, + KC_TRNS, LSFT_T(KC_Z), LGUI_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, LCTL_T(KC_DOT), KC_BSPC, KC_TRNS, + TG(6), KC_PGUP, KC_PGDN, KC_LCTL, KC_LGUI, ALT_T(KC_LANG2), LSFT_T(KC_TAB), LT(5, KC_SPC), LT(4, KC_LANG1), KC_RALT, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, + KC_PGDN, KC_PGUP + ), + + // 4: US-Num + LAYOUT( + KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, + KC_TRNS, KC_CIRC, KC_AT, KC_SLSH, KC_MINS, KC_UNDS, GOAT51, KC_SCLN, KC_COLN, KC_LBRC, KC_RBRC, KC_JYEN, KC_TRNS, + KC_TRNS, LT(5, KC_TILD), KC_GRV, KC_QUES, KC_EQL, KC_UNDS, KC_PLUS, KC_ASTR, KC_LCBR, KC_RCBR, KC_PIPE, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS + ), + + // 5: US-Shift-Num + LAYOUT( + KC_TRNS, KC_EXLM, KC_DQUO, KC_HASH, KC_DLR, KC_PERC, KC_AMPR, KC_QUOT, KC_LPRN, KC_RPRN, KC_BSLS, KC_TRNS, + KC_TRNS, KC_TILD, KC_GRV, KC_QUES, KC_EQL, KC_UNDS, GOAT51, KC_PLUS, KC_ASTR, KC_LCBR, KC_RCBR, KC_PIPE, KC_TRNS, + KC_TRNS, KC_LSFT, KC_LGUI, KC_LALT, KC_LANG2, KC_LSFT, KC_SPC, KC_LANG1, KC_TRNS, KC_TRNS, KC_DEL, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS + ), + + // 6: Cursor + LAYOUT( + KC_TRNS, KC_P7, KC_P8, KC_P9, KC_PSLS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_P4, KC_P5, KC_P6, KC_PAST, KC_PCMM, GOAT51, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, + KC_TRNS, LSFT_T(KC_P1), KC_P2, KC_P3, KC_PMNS, KC_KP_EQUAL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + TG(6), KC_P0, KC_PDOT, KC_PENT, KC_PPLS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS + ), + + // 7: Function + LAYOUT( + KC_TRNS, KC_TRNS, KC_TAB, KC_TRNS, KC_TRNS, KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, GOAT51, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + KC_TRNS, KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(8), MO(9), KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS + ), + + // 8: LED + LAYOUT( + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS, DF(0), DF(3), KC_TRNS, + KC_TRNS, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, GOAT51, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_M_K, RGB_M_X, RGB_M_G, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS + ) +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case GOAT51: + if (record->event.pressed) { + SEND_STRING("GOAT51"); + rgblight_toggle(); + } + return false; + + case WEB: + if (record->event.pressed) { + SEND_STRING("github.com/takashicompany/goat51"); + } + return false; + } + + return true; +} + +bool encoder_update_user(uint8_t index, bool clockwise) { + + if (clockwise) { + tap_code(KC_MS_WH_DOWN); + } else { + tap_code(KC_MS_WH_UP); + } + + return true; +} \ No newline at end of file diff --git a/keyboards/takashicompany/goat51/keymaps/via/config.h b/keyboards/takashicompany/goat51/keymaps/via/config.h new file mode 100644 index 00000000000..dc91fa69c2b --- /dev/null +++ b/keyboards/takashicompany/goat51/keymaps/via/config.h @@ -0,0 +1,6 @@ +// Copyright 2022 takashicompany (@takashicompany) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define DYNAMIC_KEYMAP_LAYER_COUNT 7 \ No newline at end of file diff --git a/keyboards/takashicompany/goat51/keymaps/via/keymap.c b/keyboards/takashicompany/goat51/keymaps/via/keymap.c new file mode 100644 index 00000000000..6adb87dc32b --- /dev/null +++ b/keyboards/takashicompany/goat51/keymaps/via/keymap.c @@ -0,0 +1,106 @@ +// Copyright 2022 takashicompany (@takashicompany) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +enum custom_keycodes { + GOAT51 = SAFE_RANGE, + WEB, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + // 0: JIS-Alphabet + LAYOUT( + KC_ESC, LT(4, KC_Q), KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_LCTL, KC_A, KC_S, LT(3, KC_D), KC_F, KC_G, GOAT51, KC_H, KC_J, LT(3, KC_K), KC_L, KC_ENT, KC_ENT, + KC_LSFT, LSFT_T(KC_Z), LGUI_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, LCTL_T(KC_DOT), KC_BSPC, KC_DEL, + TG(3), KC_PGUP, KC_PGDN, KC_LCTL, KC_LGUI, ALT_T(KC_LANG2), LSFT_T(KC_TAB), LT(2, KC_SPC), LT(1, KC_LANG1), KC_RALT, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, + KC_PGDN, KC_PGUP + ), + + // 1: JIS-Num + LAYOUT( + KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, + KC_TRNS, LCTL_T(KC_EQL), KC_LBRC, KC_SLSH, KC_MINS, KC_RO, GOAT51, KC_SCLN, KC_QUOT, KC_RBRC, KC_NUHS, KC_JYEN, KC_TRNS, + KC_TRNS, LSFT_T(KC_PLUS), KC_LCBR, KC_QUES, KC_UNDS, LSFT(KC_RO), KC_COLN, KC_DQUO, KC_RCBR, LSFT(KC_NUHS), LSFT(KC_JYEN), KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS + ), + + // 2: JIS-Shift-Num + LAYOUT( + KC_TRNS, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, LGUI(KC_JYEN), KC_TRNS, + KC_TRNS, KC_PLUS, KC_LCBR, KC_QUES, KC_UNDS, LSFT(KC_RO), GOAT51, KC_COLN, KC_DQUO, KC_RCBR, LSFT(KC_NUHS), LSFT(KC_JYEN), KC_TRNS, + KC_TRNS, KC_LSFT, KC_LGUI, KC_LALT, KC_LANG2, KC_LSFT, KC_SPC, KC_LANG1, KC_TRNS, KC_TRNS, KC_DEL, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS + ), + + // 3: Cursor + LAYOUT( + KC_TRNS, KC_P7, KC_P8, KC_P9, KC_PSLS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_P4, KC_P5, KC_P6, KC_PAST, KC_PCMM, GOAT51, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, + KC_TRNS, LSFT_T(KC_P1), KC_P2, KC_P3, KC_PMNS, KC_KP_EQUAL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + TG(3), KC_P0, KC_PDOT, KC_PENT, KC_PPLS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS + ), + + // 4: Function + LAYOUT( + KC_TRNS, KC_TRNS, KC_TAB, KC_TRNS, KC_TRNS, KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, GOAT51, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + KC_TRNS, KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(5), MO(6), KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS + ), + + // 5: LED + LAYOUT( + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, GOAT51, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_M_K, RGB_M_X, RGB_M_G, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS + ), + + LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS + ), + +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case GOAT51: + if (record->event.pressed) { + SEND_STRING("GOAT51"); + rgblight_toggle(); + } + return false; + + case WEB: + if (record->event.pressed) { + SEND_STRING("github.com/takashicompany/goat51"); + } + return false; + } + + return true; +} + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + { ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN) }, + { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, +}; +#endif \ No newline at end of file diff --git a/keyboards/takashicompany/goat51/keymaps/via/rules.mk b/keyboards/takashicompany/goat51/keymaps/via/rules.mk new file mode 100644 index 00000000000..4253f570f0b --- /dev/null +++ b/keyboards/takashicompany/goat51/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/takashicompany/goat51/readme.md b/keyboards/takashicompany/goat51/readme.md new file mode 100644 index 00000000000..b2edaa157ee --- /dev/null +++ b/keyboards/takashicompany/goat51/readme.md @@ -0,0 +1,40 @@ +# 🐐 GOAT51 + +![takashicompany/GOAT51](https://i.imgur.com/7xD9a4zh.jpg) + +GOAT51は51キーのキーボードです。 +特徴的な放射状のキーレイアウトは指を自然に置くことができ、効率的な入力が可能です。 +MX互換のキースイッチとChoc v1キースイッチの取り付けに対応しております。 +またPCBにキースイッチソケットを取り付けることが可能で、容易にキースイッチの交換ができます。 +キーボードの中央にはお気に入りのキーキャップを取り付ける専用スペースがあり、アルチザンキーキャップやお気に入りのキーキャップを飾ることができます。 +実はそこにはロータリーエンコーダを置くこともできちゃいます。 + +--- +GOAT51 is a 51-key keyboard. +The distinctive radial key layout allows the fingers to be placed naturally for efficient typing. +It supports the installation of MX compatible key switches and Choc v1 key switches. +A key switch socket can also be installed on the PCB for easy keyswitch replacement. +There is a dedicated space in the center of the keyboard for mounting your favorite keycaps, allowing you to display Artisan keycaps or your favorite keycaps. +In fact, you can even place a rotary encoder there. + +* Keyboard Maintainer: [takashicompany](https://github.com/takashicompany) +* Hardware Supported: GOAT51 PCB, Pro Micro +* Hardware Availability: https://github.com/takashicompany/goat51 + +Make example for this keyboard (after setting up your build environment): + + make takashicompany/goat51:default + +Flashing example for this keyboard: + + make takashicompany/goat51: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 diff --git a/keyboards/takashicompany/goat51/rules.mk b/keyboards/takashicompany/goat51/rules.mk new file mode 100644 index 00000000000..7ff128fa692 --- /dev/null +++ b/keyboards/takashicompany/goat51/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank \ No newline at end of file diff --git a/keyboards/terrazzo/config.h b/keyboards/terrazzo/config.h index ec4ded7eb9a..1d7224a09bb 100644 --- a/keyboards/terrazzo/config.h +++ b/keyboards/terrazzo/config.h @@ -76,7 +76,7 @@ so there is only one configuration. */ #define LED_DRIVER_ADDR_1 0x74 #define LED_DRIVER_COUNT 1 -#define DRIVER_LED_TOTAL 105 +#define LED_MATRIX_LED_COUNT 105 #define LED_MATRIX_ROWS 15 #define LED_MATRIX_COLS 7 #define LED_MATRIX_MAXIMUM_BRIGHTNESS 20 diff --git a/keyboards/terrazzo/terrazzo.c b/keyboards/terrazzo/terrazzo.c index 731efec20c0..35452acf4a0 100644 --- a/keyboards/terrazzo/terrazzo.c +++ b/keyboards/terrazzo/terrazzo.c @@ -21,7 +21,7 @@ #include "print.h" #include "quantum.h" -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[LED_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * https://cdn-learn.adafruit.com/downloads/pdf/adafruit-15x7-7x15-charlieplex-led-matrix-charliewing-featherwing.pdf */ @@ -90,7 +90,7 @@ uint8_t terrazzo_effect = 1; void terrazzo_set_pixel(uint8_t x, uint8_t y, uint8_t value) { uint8_t target = y * LED_MATRIX_COLS + x; - if (target < DRIVER_LED_TOTAL && target >= 0) { + if (target < LED_MATRIX_LED_COUNT && target >= 0) { led_matrix_set_value(y * LED_MATRIX_COLS + x, value); } } @@ -117,10 +117,10 @@ void terrazzo_scroll_pixel(bool clockwise) { terrazzo_led_index = terrazzo_led_index - 1; } - if (terrazzo_led_index >= DRIVER_LED_TOTAL) { + if (terrazzo_led_index >= LED_MATRIX_LED_COUNT) { terrazzo_led_index = 0; } else if (terrazzo_led_index <= 0 ) { - terrazzo_led_index = DRIVER_LED_TOTAL - 1; + terrazzo_led_index = LED_MATRIX_LED_COUNT - 1; } } diff --git a/keyboards/tkc/portico/config.h b/keyboards/tkc/portico/config.h index 0a52f2e3afd..38919aa55ca 100644 --- a/keyboards/tkc/portico/config.h +++ b/keyboards/tkc/portico/config.h @@ -58,12 +58,12 @@ along with this program. If not, see . # define DRIVER_COUNT 2 # define DRIVER_1_LED_TOTAL 36 # define DRIVER_2_LED_TOTAL 31 -# define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) +# define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) #else // IS31FL3731 driver #define DRIVER_COUNT 2 -#define DRIVER_LED_TOTAL 67 +#define RGB_MATRIX_LED_COUNT 67 #define RGB_BACKLIGHT_ENABLED 1 diff --git a/keyboards/tkc/portico/portico.c b/keyboards/tkc/portico/portico.c index 0e2b4b2499a..47dfe88231a 100644 --- a/keyboards/tkc/portico/portico.c +++ b/keyboards/tkc/portico/portico.c @@ -19,7 +19,7 @@ along with this program. If not, see . #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { { 0, C2_1, C3_1, C4_1 }, { 0, C1_1, C3_2, C4_2 }, { 0, C1_2, C2_2, C4_3 }, diff --git a/keyboards/tkc/portico68v2/config.h b/keyboards/tkc/portico68v2/config.h index 5cfdf43c3da..4b6d5a2ef65 100644 --- a/keyboards/tkc/portico68v2/config.h +++ b/keyboards/tkc/portico68v2/config.h @@ -35,7 +35,7 @@ along with this program. If not, see . #define DRIVER_ADDR_1 0b0110000 #define DRIVER_COUNT 1 #define DRIVER_1_LED_TOTAL 82 -#define DRIVER_LED_TOTAL DRIVER_1_LED_TOTAL +#define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL #define DRIVER_INDICATOR_LED_TOTAL 0 #define RGB_MATRIX_CENTER { 116, 32 } #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 175 diff --git a/keyboards/tkc/portico68v2/portico68v2.c b/keyboards/tkc/portico68v2/portico68v2.c index 8e98034ca5c..6022d5674f6 100644 --- a/keyboards/tkc/portico68v2/portico68v2.c +++ b/keyboards/tkc/portico68v2/portico68v2.c @@ -18,7 +18,7 @@ along with this program. If not, see . #include "portico68v2.h" #ifdef RGB_MATRIX_ENABLE -const is31_led g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led g_is31_leds[RGB_MATRIX_LED_COUNT] = { {0, CS18_SW1, CS17_SW1, CS16_SW1}, /* RGB1 */ {0, CS18_SW2, CS17_SW2, CS16_SW2}, /* RGB2 */ {0, CS18_SW3, CS17_SW3, CS16_SW3}, /* RGB3 */ diff --git a/keyboards/tkc/portico75/config.h b/keyboards/tkc/portico75/config.h index 63a9ee49586..fe00c26b6a5 100644 --- a/keyboards/tkc/portico75/config.h +++ b/keyboards/tkc/portico75/config.h @@ -100,12 +100,12 @@ along with this program. If not, see . # define DRIVER_ADDR_1 0b0110000 # define DRIVER_COUNT 1 # define DRIVER_1_LED_TOTAL 98 -# define DRIVER_LED_TOTAL DRIVER_1_LED_TOTAL +# define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL # define DRIVER_INDICATOR_LED_TOTAL 0 #else // WT_RGB IS31FL3741 driver code # define DRIVER_COUNT 1 -# define DRIVER_LED_TOTAL 98 +# define RGB_MATRIX_LED_COUNT 98 # define RGB_BACKLIGHT_ENABLED 1 diff --git a/keyboards/tkc/portico75/portico75.c b/keyboards/tkc/portico75/portico75.c index 812345b384b..30fafa2dfc9 100644 --- a/keyboards/tkc/portico75/portico75.c +++ b/keyboards/tkc/portico75/portico75.c @@ -20,7 +20,7 @@ along with this program. If not, see . #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { {0, CS18_SW1, CS17_SW1, CS16_SW1}, {0, CS18_SW2, CS17_SW2, CS16_SW2}, {0, CS18_SW3, CS17_SW3, CS16_SW3}, diff --git a/keyboards/tominabox1/le_chiffre/config.h b/keyboards/tominabox1/le_chiffre/config.h index e5715bdbce8..f6fed063c52 100644 --- a/keyboards/tominabox1/le_chiffre/config.h +++ b/keyboards/tominabox1/le_chiffre/config.h @@ -39,7 +39,7 @@ #define RGBLED_NUM 11 -#define DRIVER_LED_TOTAL RGBLED_NUM +#define RGB_MATRIX_LED_COUNT RGBLED_NUM #define RGBLIGHT_ANIMATIONS diff --git a/keyboards/tzarc/djinn/rev1/config.h b/keyboards/tzarc/djinn/rev1/config.h index 14cdaf2fdb6..6f001cbd0cf 100644 --- a/keyboards/tzarc/djinn/rev1/config.h +++ b/keyboards/tzarc/djinn/rev1/config.h @@ -21,7 +21,7 @@ // RGB configuration #define RGBLED_NUM 84 -#define DRIVER_LED_TOTAL 84 +#define RGB_MATRIX_LED_COUNT 84 #define RGB_MATRIX_SPLIT \ { 42, 42 } #define RGB_POWER_ENABLE_PIN B1 diff --git a/keyboards/tzarc/djinn/rev2/config.h b/keyboards/tzarc/djinn/rev2/config.h index 52c909d442a..b0deb6d991d 100644 --- a/keyboards/tzarc/djinn/rev2/config.h +++ b/keyboards/tzarc/djinn/rev2/config.h @@ -23,7 +23,7 @@ // RGB configuration #define RGBLED_NUM 86 -#define DRIVER_LED_TOTAL 86 +#define RGB_MATRIX_LED_COUNT 86 #define RGB_MATRIX_SPLIT \ { 43, 43 } #define RGB_POWER_ENABLE_PIN B0 diff --git a/keyboards/ungodly/launch_pad/config.h b/keyboards/ungodly/launch_pad/config.h index d641bab9cd7..54ef84a71e5 100644 --- a/keyboards/ungodly/launch_pad/config.h +++ b/keyboards/ungodly/launch_pad/config.h @@ -45,13 +45,13 @@ #define RGB_DI_PIN F7 #ifdef RGB_MATRIX_ENABLE # define RGBLED_NUM 22 -# define DRIVER_LED_TOTAL RGBLED_NUM +# define RGB_MATRIX_LED_COUNT RGBLED_NUM # define RGB_MATRIX_KEYPRESSES // reacts to keypresses // # define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses) // # define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects # define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended # define RGB_MATRIX_FRAMEBUFFER_EFFECTS -// # define RGB_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) +// # define RGB_MATRIX_LED_PROCESS_LIMIT (RGB_MATRIX_LED_COUNT + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) // # define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness) # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 50 // limits maximum brightness of LEDs to 150 out of 255. Higher may cause the controller to crash. # define RGB_MATRIX_HUE_STEP 8 diff --git a/keyboards/wekey/we27/config.h b/keyboards/wekey/we27/config.h index a02bc1661ae..67428d5decc 100644 --- a/keyboards/wekey/we27/config.h +++ b/keyboards/wekey/we27/config.h @@ -48,7 +48,7 @@ along with this program. If not, see . // The pin connected to the data pin of the LEDs #define RGB_DI_PIN C6 // The number of LEDs connected -#define DRIVER_LED_TOTAL 27 +#define RGB_MATRIX_LED_COUNT 27 #define RGB_MATRIX_KEYPRESSES // reacts to keypresses #define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses) diff --git a/keyboards/wilba_tech/rama_works_kara/config.h b/keyboards/wilba_tech/rama_works_kara/config.h index 3ce58330edd..7c9489e922b 100644 --- a/keyboards/wilba_tech/rama_works_kara/config.h +++ b/keyboards/wilba_tech/rama_works_kara/config.h @@ -27,7 +27,7 @@ // IS31FL3731 driver #define DRIVER_COUNT 2 -#define DRIVER_LED_TOTAL 72 +#define RGB_MATRIX_LED_COUNT 72 // COL2ROW or ROW2COL #define DIODE_DIRECTION COL2ROW diff --git a/keyboards/wilba_tech/rama_works_koyu/config.h b/keyboards/wilba_tech/rama_works_koyu/config.h index 8a02f0bd980..9b5048d11ae 100644 --- a/keyboards/wilba_tech/rama_works_koyu/config.h +++ b/keyboards/wilba_tech/rama_works_koyu/config.h @@ -27,7 +27,7 @@ // IS31FL3731 driver #define DRIVER_COUNT 2 -#define DRIVER_LED_TOTAL 72 +#define RGB_MATRIX_LED_COUNT 72 // COL2ROW or ROW2COL #define DIODE_DIRECTION COL2ROW diff --git a/keyboards/wilba_tech/rama_works_m10_c/config.h b/keyboards/wilba_tech/rama_works_m10_c/config.h index d42c329b96d..456023d4143 100644 --- a/keyboards/wilba_tech/rama_works_m10_c/config.h +++ b/keyboards/wilba_tech/rama_works_m10_c/config.h @@ -47,7 +47,7 @@ // IS31FL3731 driver #define DRIVER_COUNT 1 -#define DRIVER_LED_TOTAL 12 +#define RGB_MATRIX_LED_COUNT 12 // Enable WT RGB backlight #define RGB_BACKLIGHT_ENABLED 1 diff --git a/keyboards/wilba_tech/rama_works_m50_a/config.h b/keyboards/wilba_tech/rama_works_m50_a/config.h index fb6ffd8abad..6284a4027a3 100644 --- a/keyboards/wilba_tech/rama_works_m50_a/config.h +++ b/keyboards/wilba_tech/rama_works_m50_a/config.h @@ -47,7 +47,7 @@ // IS31FL3731 driver #define DRIVER_COUNT 2 -#define DRIVER_LED_TOTAL 72 +#define RGB_MATRIX_LED_COUNT 72 // Enable WT RGB backlight #define RGB_BACKLIGHT_ENABLED 1 diff --git a/keyboards/wilba_tech/rama_works_m60_a/config.h b/keyboards/wilba_tech/rama_works_m60_a/config.h index 55fa484716d..22abe6ee605 100644 --- a/keyboards/wilba_tech/rama_works_m60_a/config.h +++ b/keyboards/wilba_tech/rama_works_m60_a/config.h @@ -27,7 +27,7 @@ // IS31FL3731 driver #define DRIVER_COUNT 2 -#define DRIVER_LED_TOTAL 72 +#define RGB_MATRIX_LED_COUNT 72 // COL2ROW or ROW2COL #define DIODE_DIRECTION COL2ROW diff --git a/keyboards/wilba_tech/rama_works_m65_b/config.h b/keyboards/wilba_tech/rama_works_m65_b/config.h index c753a938417..1982b2e8e12 100644 --- a/keyboards/wilba_tech/rama_works_m65_b/config.h +++ b/keyboards/wilba_tech/rama_works_m65_b/config.h @@ -47,7 +47,7 @@ // IS31FL3731 driver #define DRIVER_COUNT 2 -#define DRIVER_LED_TOTAL 72 +#define RGB_MATRIX_LED_COUNT 72 // Enable WT RGB backlight #define RGB_BACKLIGHT_ENABLED 1 diff --git a/keyboards/wilba_tech/rama_works_m65_bx/config.h b/keyboards/wilba_tech/rama_works_m65_bx/config.h index f0eb52940c8..83c2be20013 100644 --- a/keyboards/wilba_tech/rama_works_m65_bx/config.h +++ b/keyboards/wilba_tech/rama_works_m65_bx/config.h @@ -47,7 +47,7 @@ // IS31FL3731 driver #define DRIVER_COUNT 2 -#define DRIVER_LED_TOTAL 72 +#define RGB_MATRIX_LED_COUNT 72 // Enable WT RGB backlight #define RGB_BACKLIGHT_ENABLED 1 diff --git a/keyboards/wilba_tech/rama_works_u80_a/config.h b/keyboards/wilba_tech/rama_works_u80_a/config.h index 44582ada4f3..4653556190b 100644 --- a/keyboards/wilba_tech/rama_works_u80_a/config.h +++ b/keyboards/wilba_tech/rama_works_u80_a/config.h @@ -99,7 +99,7 @@ // IS31FL3731 driver #define DRIVER_COUNT 3 -#define DRIVER_LED_TOTAL 108 +#define RGB_MATRIX_LED_COUNT 108 #define RGB_BACKLIGHT_ENABLED 1 diff --git a/keyboards/wilba_tech/wt60_a/config.h b/keyboards/wilba_tech/wt60_a/config.h index 8bd0e085084..c2b85fee76d 100644 --- a/keyboards/wilba_tech/wt60_a/config.h +++ b/keyboards/wilba_tech/wt60_a/config.h @@ -100,8 +100,8 @@ // enable the mono backlight #define MONO_BACKLIGHT_ENABLED 1 -// enable the RGB indicator for WT75-A -#define MONO_BACKLIGHT_WT75_A +// enable the specific indicators +#define MONO_BACKLIGHT_WT60_A // disable backlight when USB suspended (PC sleep/hibernate/shutdown) #define MONO_BACKLIGHT_DISABLE_WHEN_USB_SUSPENDED 0 diff --git a/keyboards/wilba_tech/wt60_b/config.h b/keyboards/wilba_tech/wt60_b/config.h index a68cfa5ec2d..43a10844da0 100644 --- a/keyboards/wilba_tech/wt60_b/config.h +++ b/keyboards/wilba_tech/wt60_b/config.h @@ -50,7 +50,7 @@ // IS31FL3731 driver #define DRIVER_COUNT 2 -#define DRIVER_LED_TOTAL 72 +#define RGB_MATRIX_LED_COUNT 72 #define RGB_BACKLIGHT_ENABLED 1 diff --git a/keyboards/wilba_tech/wt60_bx/config.h b/keyboards/wilba_tech/wt60_bx/config.h index cab8276545d..d26b3a02ba9 100644 --- a/keyboards/wilba_tech/wt60_bx/config.h +++ b/keyboards/wilba_tech/wt60_bx/config.h @@ -50,7 +50,7 @@ // IS31FL3731 driver #define DRIVER_COUNT 2 -#define DRIVER_LED_TOTAL 72 +#define RGB_MATRIX_LED_COUNT 72 #define RGB_BACKLIGHT_ENABLED 1 diff --git a/keyboards/wilba_tech/wt60_c/config.h b/keyboards/wilba_tech/wt60_c/config.h index 47636eef4ba..489207d56c0 100644 --- a/keyboards/wilba_tech/wt60_c/config.h +++ b/keyboards/wilba_tech/wt60_c/config.h @@ -50,7 +50,7 @@ // IS31FL3731 driver #define DRIVER_COUNT 2 -#define DRIVER_LED_TOTAL 72 +#define RGB_MATRIX_LED_COUNT 72 #define RGB_BACKLIGHT_ENABLED 1 diff --git a/keyboards/wilba_tech/wt65_a/config.h b/keyboards/wilba_tech/wt65_a/config.h index 5a03ec52c13..062e2d8564e 100644 --- a/keyboards/wilba_tech/wt65_a/config.h +++ b/keyboards/wilba_tech/wt65_a/config.h @@ -100,6 +100,9 @@ // enable the mono backlight #define MONO_BACKLIGHT_ENABLED 1 +// enable the specific indicators +#define MONO_BACKLIGHT_WT65_A + // disable backlight when USB suspended (PC sleep/hibernate/shutdown) #define MONO_BACKLIGHT_DISABLE_WHEN_USB_SUSPENDED 0 diff --git a/keyboards/wilba_tech/wt65_b/config.h b/keyboards/wilba_tech/wt65_b/config.h index 426a0b824b5..8320daef0af 100644 --- a/keyboards/wilba_tech/wt65_b/config.h +++ b/keyboards/wilba_tech/wt65_b/config.h @@ -100,6 +100,9 @@ // enable the mono backlight #define MONO_BACKLIGHT_ENABLED 1 +// enable the specific indicators +#define MONO_BACKLIGHT_WT65_B + // disable backlight when USB suspended (PC sleep/hibernate/shutdown) #define MONO_BACKLIGHT_DISABLE_WHEN_USB_SUSPENDED 0 diff --git a/keyboards/wilba_tech/wt75_b/config.h b/keyboards/wilba_tech/wt75_b/config.h index d7abac199e2..98b3d937f94 100644 --- a/keyboards/wilba_tech/wt75_b/config.h +++ b/keyboards/wilba_tech/wt75_b/config.h @@ -100,6 +100,9 @@ // enable the mono backlight #define MONO_BACKLIGHT_ENABLED 1 +// enable the specific indicators +#define MONO_BACKLIGHT_WT75_B + // disable backlight when USB suspended (PC sleep/hibernate/shutdown) #define MONO_BACKLIGHT_DISABLE_WHEN_USB_SUSPENDED 0 diff --git a/keyboards/wilba_tech/wt75_c/config.h b/keyboards/wilba_tech/wt75_c/config.h index 8562e8e18af..d8cf5a1a959 100644 --- a/keyboards/wilba_tech/wt75_c/config.h +++ b/keyboards/wilba_tech/wt75_c/config.h @@ -100,6 +100,9 @@ // enable the mono backlight #define MONO_BACKLIGHT_ENABLED 1 +// enable the specific indicators +#define MONO_BACKLIGHT_WT75_C + // disable backlight when USB suspended (PC sleep/hibernate/shutdown) #define MONO_BACKLIGHT_DISABLE_WHEN_USB_SUSPENDED 0 diff --git a/keyboards/wilba_tech/wt80_a/config.h b/keyboards/wilba_tech/wt80_a/config.h index f9708ab33b7..2bc81b2fa5a 100644 --- a/keyboards/wilba_tech/wt80_a/config.h +++ b/keyboards/wilba_tech/wt80_a/config.h @@ -100,6 +100,9 @@ // enable the mono backlight #define MONO_BACKLIGHT_ENABLED 1 +// enable the specific indicators +#define MONO_BACKLIGHT_WT80_A + // disable backlight when USB suspended (PC sleep/hibernate/shutdown) #define MONO_BACKLIGHT_DISABLE_WHEN_USB_SUSPENDED 0 diff --git a/keyboards/wilba_tech/wt_mono_backlight.c b/keyboards/wilba_tech/wt_mono_backlight.c index 5e2fde810c0..71bf8e0284d 100644 --- a/keyboards/wilba_tech/wt_mono_backlight.c +++ b/keyboards/wilba_tech/wt_mono_backlight.c @@ -173,6 +173,33 @@ void backlight_effect_indicators(void) IS31FL3736_mono_set_brightness(63, rgb.g); IS31FL3736_mono_set_brightness(71, rgb.b); #endif // MONO_BACKLIGHT_WT75_A + +// This pairs with "All Off" already setting zero brightness, +// and "All On" already setting non-zero brightness. +#if defined(MONO_BACKLIGHT_WT60_A) || \ +defined(MONO_BACKLIGHT_WT65_A) || \ +defined(MONO_BACKLIGHT_WT65_B) || \ +defined(MONO_BACKLIGHT_WT75_A) || \ +defined(MONO_BACKLIGHT_WT75_B) || \ +defined(MONO_BACKLIGHT_WT75_C) || \ +defined(MONO_BACKLIGHT_WT80_A) + if ( g_indicator_state & (1< (4*8+0) + IS31FL3736_mono_set_brightness(32, 255); + } +#endif +#if defined(MONO_BACKLIGHT_WT80_A) + if ( g_indicator_state & (1< (6*8+6) + IS31FL3736_mono_set_brightness(54, 255); + } +#endif +#if defined(MONO_BACKLIGHT_WT75_C) + if ( g_indicator_state & (1< (6*8+7) + IS31FL3736_mono_set_brightness(55, 255); + } +#endif } ISR(TIMER3_COMPA_vect) diff --git a/keyboards/wilba_tech/wt_rgb_backlight.c b/keyboards/wilba_tech/wt_rgb_backlight.c index a696fe7ed4c..e0a04ce32c0 100644 --- a/keyboards/wilba_tech/wt_rgb_backlight.c +++ b/keyboards/wilba_tech/wt_rgb_backlight.c @@ -162,7 +162,7 @@ uint32_t g_any_key_hit = 0; // ADDR_2 is not needed. it is here as a dummy #define ISSI_ADDR_1 0x50 -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location @@ -243,7 +243,7 @@ const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { #define ISSI_ADDR_1 0x50 #define ISSI_ADDR_2 0x52 -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location @@ -386,7 +386,7 @@ const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { // set to 0 for write, 1 for read (as per I2C protocol) #define ISSI_ADDR_1 0x74 -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location @@ -418,7 +418,7 @@ const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { #define ISSI_ADDR_2 0x76 // 11101[10] <- SDA #define ISSI_ADDR_3 0x75 // 11101[01] <- SCL -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location @@ -545,7 +545,7 @@ const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { #define ISSI_ADDR_1 0x74 #define ISSI_ADDR_2 0x76 -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location @@ -626,7 +626,7 @@ const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { #define ISSI_ADDR_1 0x74 #define ISSI_ADDR_2 0x77 -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location @@ -712,7 +712,7 @@ const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { #define ISSI_ADDR_1 0x30 #define ISSI_ADDR_2 -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location @@ -842,7 +842,7 @@ const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { #define ISSI_ADDR_1 0x74 #define ISSI_ADDR_2 -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { {0, C1_9, C3_10, C4_10}, // LB1 {0, C1_10, C2_10, C4_11}, // LB2 {0, C1_11, C2_11, C3_11}, // LB3 @@ -862,7 +862,7 @@ const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { #define ISSI_ADDR_1 0x74 #define ISSI_ADDR_2 0x76 -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location @@ -1832,12 +1832,12 @@ void backlight_set_color( int index, uint8_t red, uint8_t green, uint8_t blue ) IS31FL3733_set_color( index, red, green, blue ); } #elif defined(RGB_BACKLIGHT_DAWN60) - if( index < DRIVER_LED_TOTAL ) { + if( index < RGB_MATRIX_LED_COUNT ) { IS31FL3731_set_color( index, red, green, blue ); } else { - g_ws2812_leds[index - DRIVER_LED_TOTAL].r = red; - g_ws2812_leds[index - DRIVER_LED_TOTAL].g = green; - g_ws2812_leds[index - DRIVER_LED_TOTAL].b = blue; + g_ws2812_leds[index - RGB_MATRIX_LED_COUNT].r = red; + g_ws2812_leds[index - RGB_MATRIX_LED_COUNT].g = green; + g_ws2812_leds[index - RGB_MATRIX_LED_COUNT].b = blue; ws2812_setleds(g_ws2812_leds, WS2812_LED_TOTAL); } #else @@ -2131,9 +2131,9 @@ void backlight_effect_alphas_mods(void) for (int i = 0; i < WS2812_LED_TOTAL; i++) { if ((RGB_UNDERGLOW_ALPHA_TOP_START <= i && i <= RGB_UNDERGLOW_ALPHA_TOP_END) || (RGB_UNDERGLOW_ALPHA_BOT_START <= i && i <= RGB_UNDERGLOW_ALPHA_BOT_END)) { - backlight_set_color(i + DRIVER_LED_TOTAL, rgb1.r, rgb1.g, rgb1.b); + backlight_set_color(i + RGB_MATRIX_LED_COUNT, rgb1.r, rgb1.g, rgb1.b); } else { - backlight_set_color(i + DRIVER_LED_TOTAL, rgb2.r, rgb2.g, rgb2.b); + backlight_set_color(i + RGB_MATRIX_LED_COUNT, rgb2.r, rgb2.g, rgb2.b); } } #endif @@ -2927,7 +2927,7 @@ void backlight_init_drivers(void) #elif defined(RGB_BACKLIGHT_HS60) IS31FL3733_init( ISSI_ADDR_1, 0 ); - for ( int index = 0; index < DRIVER_LED_TOTAL; index++ ) + for ( int index = 0; index < RGB_MATRIX_LED_COUNT; index++ ) { #if defined(HS60_ANSI) bool enabled = !( ( index == 48-1 ) || //LA48 @@ -2949,7 +2949,7 @@ void backlight_init_drivers(void) IS31FL3733_init( ISSI_ADDR_1, 0 ); IS31FL3733_init( ISSI_ADDR_2, 0 ); - for ( int index = 0; index < DRIVER_LED_TOTAL; index++ ) + for ( int index = 0; index < RGB_MATRIX_LED_COUNT; index++ ) { bool enabled = !( ( index == 61-1 ) || //LA61 ( index > 6+64-1 ) ); //LB7-LB64 @@ -2964,7 +2964,7 @@ void backlight_init_drivers(void) IS31FL3733_init( ISSI_ADDR_1, 0 ); IS31FL3733_init( ISSI_ADDR_2, 0 ); - for ( int index = 0; index < DRIVER_LED_TOTAL; index++ ) + for ( int index = 0; index < RGB_MATRIX_LED_COUNT; index++ ) { bool enabled = !( ( index == 61-1 ) || //LA61 ( (index >= 2+64-1) && (index <= 4+64-1) ) || @@ -2994,7 +2994,7 @@ void backlight_init_drivers(void) IS31FL3733_init( ISSI_ADDR_1, 0 ); IS31FL3733_init( ISSI_ADDR_2, 0 ); - for ( int index = 0; index < DRIVER_LED_TOTAL; index++ ) + for ( int index = 0; index < RGB_MATRIX_LED_COUNT; index++ ) { bool enabled = !( ( index == 61-1 ) || //LA61 ( index > 5+64-1 ) ); //LB6-LB64 @@ -3007,7 +3007,7 @@ void backlight_init_drivers(void) #elif defined(RGB_BACKLIGHT_PORTICO75) IS31FL3741_init( ISSI_ADDR_1 ); bool enabled = true; - for ( int index = 0; index < DRIVER_LED_TOTAL; index++ ) + for ( int index = 0; index < RGB_MATRIX_LED_COUNT; index++ ) { IS31FL3741_set_led_control_register( index, enabled, enabled, enabled ); } @@ -3017,7 +3017,7 @@ void backlight_init_drivers(void) IS31FL3733_init( ISSI_ADDR_1, 0 ); IS31FL3733_init( ISSI_ADDR_2, 0 ); - for ( int index = 0; index < DRIVER_LED_TOTAL; index++ ) + for ( int index = 0; index < RGB_MATRIX_LED_COUNT; index++ ) { bool enabled = !( ( index == 61-1 ) || //LA61 ( index > 6+64-1 ) ); //LB7-LB64 @@ -3044,7 +3044,7 @@ void backlight_init_drivers(void) bool disable_spacebar_stab_leds = false; #endif - for ( int index = 0; index < DRIVER_LED_TOTAL; index++ ) + for ( int index = 0; index < RGB_MATRIX_LED_COUNT; index++ ) { // OR the possible "disabled" cases together, then NOT the result to get the enabled state // LC6 LD13 not present on Zeal65 diff --git a/keyboards/wilba_tech/zeal60/config.h b/keyboards/wilba_tech/zeal60/config.h index b3c04773429..eaf7b76504b 100644 --- a/keyboards/wilba_tech/zeal60/config.h +++ b/keyboards/wilba_tech/zeal60/config.h @@ -27,7 +27,7 @@ // IS31FL3731 driver #define DRIVER_COUNT 2 -#define DRIVER_LED_TOTAL 72 +#define RGB_MATRIX_LED_COUNT 72 // COL2ROW or ROW2COL #define DIODE_DIRECTION COL2ROW diff --git a/keyboards/wilba_tech/zeal65/config.h b/keyboards/wilba_tech/zeal65/config.h index 27f4fd4b447..d5e83a11e3c 100644 --- a/keyboards/wilba_tech/zeal65/config.h +++ b/keyboards/wilba_tech/zeal65/config.h @@ -27,7 +27,7 @@ // IS31FL3731 driver #define DRIVER_COUNT 2 -#define DRIVER_LED_TOTAL 72 +#define RGB_MATRIX_LED_COUNT 72 // COL2ROW or ROW2COL #define DIODE_DIRECTION COL2ROW diff --git a/keyboards/winry/winry315/config.h b/keyboards/winry/winry315/config.h index 1a9617c1e36..3d0921590e0 100644 --- a/keyboards/winry/winry315/config.h +++ b/keyboards/winry/winry315/config.h @@ -62,7 +62,7 @@ // RGB Matrix configuration. #ifdef RGB_MATRIX_ENABLE -# define DRIVER_LED_TOTAL RGBLED_NUM +# define RGB_MATRIX_LED_COUNT RGBLED_NUM # define RGB_MATRIX_MAXIMUM_BRIGHTNESS RGBLIGHT_LIMIT_VAL # define RGB_MATRIX_CENTER \ diff --git a/keyboards/winry/winry315/winry315.c b/keyboards/winry/winry315/winry315.c index c741ffeb744..d8042606c08 100644 --- a/keyboards/winry/winry315/winry315.c +++ b/keyboards/winry/winry315/winry315.c @@ -223,7 +223,7 @@ void raw_hid_receive_kb(uint8_t *data, uint8_t length) { void winry315_set_orientation(uint8_t orientation) { (void)orientation; #if defined(RGB_MATRIX_ENABLE) - for (uint8_t i = 0; i < DRIVER_LED_TOTAL; ++i) { + for (uint8_t i = 0; i < RGB_MATRIX_LED_COUNT; ++i) { led_point_t * dst_point = &g_led_config.point[i]; const led_point_t *src_point = &initial_led_config.point[i]; uint8_t x = pgm_read_byte(&src_point->x); diff --git a/keyboards/work_louder/loop/config.h b/keyboards/work_louder/loop/config.h index 32856ecebfa..fc1ce6c902f 100644 --- a/keyboards/work_louder/loop/config.h +++ b/keyboards/work_louder/loop/config.h @@ -79,7 +79,7 @@ along with this program. If not, see . //#endif #define RGB_DI_PIN F1 -#define DRIVER_LED_TOTAL 9 +#define RGB_MATRIX_LED_COUNT 9 #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 120 #define RGB_MATRIX_DISABLE_KEYCODES #define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_LEFT_RIGHT // Sets the default mode, if none has been set diff --git a/keyboards/work_louder/loop/keymaps/via/keymap.c b/keyboards/work_louder/loop/keymaps/via/keymap.c index f2f8f7d9a6a..5b35be9cf3f 100644 --- a/keyboards/work_louder/loop/keymaps/via/keymap.c +++ b/keyboards/work_louder/loop/keymaps/via/keymap.c @@ -34,7 +34,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #ifdef ENCODER_MAP_ENABLE const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { - [0] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD), ENCODER_CCW_CW(KC_MPRV, KC_MNXT), ENCODER_CCW_CW(R_M_RMOD, R_M_MOD) }, + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_MPRV, KC_MNXT), ENCODER_CCW_CW(R_M_RMOD, R_M_MOD) }, [1] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) }, [2] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) }, [3] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) }, diff --git a/keyboards/work_louder/micro/config.h b/keyboards/work_louder/micro/config.h index a4d5ca2c936..0f1c76ff41c 100644 --- a/keyboards/work_louder/micro/config.h +++ b/keyboards/work_louder/micro/config.h @@ -11,7 +11,7 @@ */ #define RGB_DI_PIN D1 -#define DRIVER_LED_TOTAL 12 +#define RGB_MATRIX_LED_COUNT 12 #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 255 #define RGB_MATRIX_DISABLE_KEYCODES #define RGB_DISABLE_WHEN_USB_SUSPENDED diff --git a/keyboards/work_louder/nano/config.h b/keyboards/work_louder/nano/config.h index 7a7d03b8a30..8d3732e8256 100644 --- a/keyboards/work_louder/nano/config.h +++ b/keyboards/work_louder/nano/config.h @@ -80,7 +80,7 @@ along with this program. If not, see . //#endif #define RGB_DI_PIN F6 -#define DRIVER_LED_TOTAL 2 +#define RGB_MATRIX_LED_COUNT 2 #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 120 #define RGB_MATRIX_DISABLE_KEYCODES #define RGB_DISABLE_WHEN_USB_SUSPENDED diff --git a/keyboards/work_louder/work_board/config.h b/keyboards/work_louder/work_board/config.h index 512c2827948..de72eaf20ae 100644 --- a/keyboards/work_louder/work_board/config.h +++ b/keyboards/work_louder/work_board/config.h @@ -69,7 +69,7 @@ along with this program. If not, see . //#endif #define RGB_DI_PIN D1 -#define DRIVER_LED_TOTAL 49 +#define RGB_MATRIX_LED_COUNT 49 #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 120 #define RGB_MATRIX_DISABLE_KEYCODES #define RGB_DISABLE_WHEN_USB_SUSPENDED @@ -123,6 +123,10 @@ along with this program. If not, see . #define ENABLE_RGB_MATRIX_SOLID_SPLASH #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH + +#define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_SOLID_COLOR // Sets the default mode, if none has been set +#define RGB_MATRIX_STARTUP_HUE 191 // Sets the default hue value, if none has been set + /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ #define DEBOUNCE 5 diff --git a/keyboards/work_louder/work_board/keymaps/via/keymap.c b/keyboards/work_louder/work_board/keymaps/via/keymap.c index 999ffd9019f..d39c5f405db 100644 --- a/keyboards/work_louder/work_board/keymaps/via/keymap.c +++ b/keyboards/work_louder/work_board/keymaps/via/keymap.c @@ -35,32 +35,29 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_QWERTY] = LAYOUT( KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, USER09, KC_TAB, 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, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_ENT, - MO(3), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_SLSH, KC_LEFT, KC_DOWN, KC_RGHT + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + MO(3), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT ), - [_LOWER] = LAYOUT( - KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, _______, - KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, - _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______, - _______, _______, _______, _______, _______, _______, _______, _______, 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_BSPC, _______, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS),S(KC_NUBS),KC_HOME, KC_END, _______, + _______, _______, _______, MACRO_1, _______, MACRO_0, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY ), - [_RAISE] = LAYOUT( 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_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY ), - [_ADJUST] = LAYOUT( - _______, QK_BOOT, _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL , R_M_TOG, - _______, _______, MU_MOD, R_M_TOG, R_M_MOD, R_M_HUI, R_M_HUD, R_M_SAI, R_M_SAD, R_M_VAI, R_M_VAD, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, QK_BOOT, _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL, R_M_TOG, + _______, _______, MU_MOD, R_M_TOG, R_M_MOD, _______, _______, _______, _______, R_M_SAI, R_M_HUI, R_M_MOD, + _______, _______, _______, _______, _______, _______, _______, _______, _______, R_M_SAD, R_M_HUD, R_M_RMOD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) }; -// clang-format on + void dance_enc_finished(qk_tap_dance_state_t *state, void *user_data) { if (state->count == 1) { @@ -117,9 +114,9 @@ layer_state_t layer_state_set_user(layer_state_t state) { #ifdef ENCODER_MAP_ENABLE const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { - [_QWERTY] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) }, - [_LOWER] = { ENCODER_CCW_CW(KC_PGUP, KC_PGDN) }, - [_RAISE] = { ENCODER_CCW_CW(KC_UP, KC_DOWN) }, + [_QWERTY] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [_LOWER] = { ENCODER_CCW_CW(KC_PGDN, KC_PGUP) }, + [_RAISE] = { ENCODER_CCW_CW(R_M_RMOD, R_M_MOD) }, [_ADJUST] = { ENCODER_CCW_CW(R_M_HUI, R_M_HUD) }, }; #endif diff --git a/keyboards/xbows/knight/config.h b/keyboards/xbows/knight/config.h index f0fc0f712ab..1612f636bd1 100644 --- a/keyboards/xbows/knight/config.h +++ b/keyboards/xbows/knight/config.h @@ -64,5 +64,5 @@ # define DRIVER_1_LED_TOTAL 36 # define DRIVER_2_LED_TOTAL 35 # define DRIVER_3_LED_TOTAL 15 -# define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL + DRIVER_3_LED_TOTAL) +# define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL + DRIVER_3_LED_TOTAL) #endif diff --git a/keyboards/xbows/knight/knight.c b/keyboards/xbows/knight/knight.c index 9d9d7cfd102..9b6628b63ee 100644 --- a/keyboards/xbows/knight/knight.c +++ b/keyboards/xbows/knight/knight.c @@ -15,7 +15,7 @@ */ #include "knight.h" #ifdef RGB_MATRIX_ENABLE - const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { + const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { {0, C1_3, C2_3, C3_3}, // L01 {0, C1_4, C2_4, C3_4}, // L02 diff --git a/keyboards/xbows/knight_plus/config.h b/keyboards/xbows/knight_plus/config.h index 91c6dcebd48..bc496ee3da7 100644 --- a/keyboards/xbows/knight_plus/config.h +++ b/keyboards/xbows/knight_plus/config.h @@ -64,5 +64,5 @@ # define DRIVER_1_LED_TOTAL 36 # define DRIVER_2_LED_TOTAL 35 # define DRIVER_3_LED_TOTAL 15 -# define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL + DRIVER_3_LED_TOTAL) +# define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL + DRIVER_3_LED_TOTAL) #endif diff --git a/keyboards/xbows/knight_plus/knight_plus.c b/keyboards/xbows/knight_plus/knight_plus.c index bf008fd0914..bdf862dbe47 100644 --- a/keyboards/xbows/knight_plus/knight_plus.c +++ b/keyboards/xbows/knight_plus/knight_plus.c @@ -15,7 +15,7 @@ */ #include "knight_plus.h" #ifdef RGB_MATRIX_ENABLE - const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { + const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { {0, C1_3, C2_3, C3_3}, // L01 {0, C1_4, C2_4, C3_4}, // L02 diff --git a/keyboards/xbows/nature/config.h b/keyboards/xbows/nature/config.h index a248fa37bb0..444133cd00d 100644 --- a/keyboards/xbows/nature/config.h +++ b/keyboards/xbows/nature/config.h @@ -66,5 +66,5 @@ # define DRIVER_1_LED_TOTAL 36 # define DRIVER_2_LED_TOTAL 36 # define DRIVER_3_LED_TOTAL 15 -# define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL + DRIVER_3_LED_TOTAL) +# define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL + DRIVER_3_LED_TOTAL) #endif diff --git a/keyboards/xbows/nature/nature.c b/keyboards/xbows/nature/nature.c index d4957003bdf..48534d87c40 100644 --- a/keyboards/xbows/nature/nature.c +++ b/keyboards/xbows/nature/nature.c @@ -15,7 +15,7 @@ */ #include "nature.h" #ifdef RGB_MATRIX_ENABLE - const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { + const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { {0, C1_3, C2_3, C3_3}, // L01 {0, C1_4, C2_4, C3_4}, // L02 diff --git a/keyboards/xbows/numpad/config.h b/keyboards/xbows/numpad/config.h index 7eb56caea73..5022f26339b 100644 --- a/keyboards/xbows/numpad/config.h +++ b/keyboards/xbows/numpad/config.h @@ -59,5 +59,5 @@ # define DRIVER_ADDR_1 0b1110111 # define DRIVER_COUNT 1 -# define DRIVER_LED_TOTAL 22 +# define RGB_MATRIX_LED_COUNT 22 #endif diff --git a/keyboards/xbows/numpad/numpad.c b/keyboards/xbows/numpad/numpad.c index bbc2a1e98a2..f998e8122ed 100644 --- a/keyboards/xbows/numpad/numpad.c +++ b/keyboards/xbows/numpad/numpad.c @@ -15,7 +15,7 @@ */ #include "numpad.h" #ifdef RGB_MATRIX_ENABLE - const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { + const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { {0, C3_3, C2_3, C1_3}, // L01 {0, C3_4, C2_4, C1_4}, // L02 diff --git a/keyboards/xbows/ranger/config.h b/keyboards/xbows/ranger/config.h index 6c557bf3412..15846a8dc90 100644 --- a/keyboards/xbows/ranger/config.h +++ b/keyboards/xbows/ranger/config.h @@ -63,6 +63,6 @@ # define DRIVER_1_LED_TOTAL 36 # define DRIVER_2_LED_TOTAL 36 # define DRIVER_3_LED_TOTAL 15 -# define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL + DRIVER_3_LED_TOTAL) +# define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL + DRIVER_3_LED_TOTAL) #endif diff --git a/keyboards/xbows/ranger/ranger.c b/keyboards/xbows/ranger/ranger.c index 9a09918967e..c4b0e545441 100644 --- a/keyboards/xbows/ranger/ranger.c +++ b/keyboards/xbows/ranger/ranger.c @@ -15,7 +15,7 @@ */ #include "ranger.h" #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { {0, C3_3, C2_3, C1_3}, // L01 {0, C3_4, C2_4, C1_4}, // L02 diff --git a/keyboards/xbows/woody/config.h b/keyboards/xbows/woody/config.h index d6b7f32c68b..ad2a7101cfa 100644 --- a/keyboards/xbows/woody/config.h +++ b/keyboards/xbows/woody/config.h @@ -69,5 +69,5 @@ # define DRIVER_COUNT 2 # define DRIVER_1_LED_TOTAL 35 # define DRIVER_2_LED_TOTAL 32 -# define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) +# define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) #endif diff --git a/keyboards/xbows/woody/woody.c b/keyboards/xbows/woody/woody.c index 41601d39a98..9dd57d2fd30 100644 --- a/keyboards/xbows/woody/woody.c +++ b/keyboards/xbows/woody/woody.c @@ -1,6 +1,6 @@ #include "woody.h" #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { {0, C8_8, C7_8, C6_8}, // LA17 {0, C9_8, C7_7, C6_7}, // LA16 diff --git a/keyboards/xelus/dawn60/rev1/config.h b/keyboards/xelus/dawn60/rev1/config.h index 4b3a1641b9e..af4c31e4783 100644 --- a/keyboards/xelus/dawn60/rev1/config.h +++ b/keyboards/xelus/dawn60/rev1/config.h @@ -31,7 +31,7 @@ // IS31FL3731 driver #define DRIVER_COUNT 2 -#define DRIVER_LED_TOTAL 64 +#define RGB_MATRIX_LED_COUNT 64 // COL2ROW or ROW2COL #define DIODE_DIRECTION COL2ROW diff --git a/keyboards/xelus/dawn60/rev1_qmk/config.h b/keyboards/xelus/dawn60/rev1_qmk/config.h index 11c59f8847b..755e2c9000a 100644 --- a/keyboards/xelus/dawn60/rev1_qmk/config.h +++ b/keyboards/xelus/dawn60/rev1_qmk/config.h @@ -48,7 +48,7 @@ #define DRIVER_1_LED_TOTAL 32 #define DRIVER_2_LED_TOTAL 32 #define ISSI_DRIVER_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) -#define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL + WS2812_LED_TOTAL) +#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL + WS2812_LED_TOTAL) #define RGB_MATRIX_STARTUP_VAL 80 #define RGB_MATRIX_KEYPRESSES diff --git a/keyboards/xelus/dawn60/rev1_qmk/rev1_qmk.c b/keyboards/xelus/dawn60/rev1_qmk/rev1_qmk.c index 8b044ee4f6b..203ad4b5c63 100644 --- a/keyboards/xelus/dawn60/rev1_qmk/rev1_qmk.c +++ b/keyboards/xelus/dawn60/rev1_qmk/rev1_qmk.c @@ -25,7 +25,7 @@ #ifdef RGB_MATRIX_ENABLE LED_TYPE rgb_matrix_ws2812_array[WS2812_LED_TOTAL]; -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location diff --git a/keyboards/xelus/la_plus/config.h b/keyboards/xelus/la_plus/config.h index 40d53adb060..9561596fd0a 100755 --- a/keyboards/xelus/la_plus/config.h +++ b/keyboards/xelus/la_plus/config.h @@ -42,7 +42,7 @@ // The pin connected to the data pin of the LEDs #define RGB_DI_PIN F1 // The number of LEDs connected -#define DRIVER_LED_TOTAL 32 +#define RGB_MATRIX_LED_COUNT 32 #define RGB_MATRIX_STARTUP_VAL 80 #define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended diff --git a/keyboards/xelus/pachi/rgb/rev1/config.h b/keyboards/xelus/pachi/rgb/rev1/config.h index 9eda99ed322..9b14fbcbf5c 100644 --- a/keyboards/xelus/pachi/rgb/rev1/config.h +++ b/keyboards/xelus/pachi/rgb/rev1/config.h @@ -58,8 +58,8 @@ #define DRIVER_COUNT 1 #define DRIVER_1_LED_TOTAL 117 -#define DRIVER_LED_TOTAL DRIVER_1_LED_TOTAL -#define ISSI_DRIVER_TOTAL DRIVER_LED_TOTAL +#define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL +#define ISSI_DRIVER_TOTAL RGB_MATRIX_LED_COUNT #define RGB_MATRIX_STARTUP_VAL 80 #define RGB_MATRIX_FRAMEBUFFER_EFFECTS diff --git a/keyboards/xelus/pachi/rgb/rev1/rev1.c b/keyboards/xelus/pachi/rgb/rev1/rev1.c index 70742650094..7dd446a41ed 100644 --- a/keyboards/xelus/pachi/rgb/rev1/rev1.c +++ b/keyboards/xelus/pachi/rgb/rev1/rev1.c @@ -22,7 +22,7 @@ void matrix_io_delay(void) { __asm__ volatile("nop\nnop\nnop\n"); } #ifdef RGB_MATRIX_ENABLE #include "i2c_master.h" #include "drivers/led/issi/is31fl3741.h" -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location diff --git a/keyboards/xelus/pachi/rgb/rev2/config.h b/keyboards/xelus/pachi/rgb/rev2/config.h index 6295228c312..52a8331867d 100644 --- a/keyboards/xelus/pachi/rgb/rev2/config.h +++ b/keyboards/xelus/pachi/rgb/rev2/config.h @@ -55,8 +55,8 @@ #define DRIVER_COUNT 1 #define DRIVER_1_LED_TOTAL 117 -#define DRIVER_LED_TOTAL DRIVER_1_LED_TOTAL -#define ISSI_DRIVER_TOTAL DRIVER_LED_TOTAL +#define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL +#define ISSI_DRIVER_TOTAL RGB_MATRIX_LED_COUNT #define RGB_MATRIX_STARTUP_VAL 80 #define RGB_MATRIX_FRAMEBUFFER_EFFECTS diff --git a/keyboards/xelus/pachi/rgb/rev2/rev2.c b/keyboards/xelus/pachi/rgb/rev2/rev2.c index f8ca9ec53e4..53552d29099 100644 --- a/keyboards/xelus/pachi/rgb/rev2/rev2.c +++ b/keyboards/xelus/pachi/rgb/rev2/rev2.c @@ -22,7 +22,7 @@ void matrix_io_delay(void) { __asm__ volatile("nop\nnop\nnop\n"); } #ifdef RGB_MATRIX_ENABLE #include "i2c_master.h" #include "drivers/led/issi/is31fl3741.h" -const is31_led PROGMEM g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location diff --git a/keyboards/xelus/valor/rev2/config.h b/keyboards/xelus/valor/rev2/config.h index 44a16e9b7e2..875d8e988fa 100644 --- a/keyboards/xelus/valor/rev2/config.h +++ b/keyboards/xelus/valor/rev2/config.h @@ -58,7 +58,7 @@ /* RGB Matrix */ #define RGB_DI_PIN A9 #define RGBLED_NUM 28 -#define DRIVER_LED_TOTAL 28 +#define RGB_MATRIX_LED_COUNT 28 #define NOP_FUDGE 0.4 // RGB PWM diff --git a/keyboards/yandrstudio/nz64/config.h b/keyboards/yandrstudio/nz64/config.h index 665cc962756..224eb16bb34 100644 --- a/keyboards/yandrstudio/nz64/config.h +++ b/keyboards/yandrstudio/nz64/config.h @@ -37,7 +37,7 @@ #ifdef RGB_MATRIX_ENABLE # define RGB_DI_PIN A7 # define RGBLED_NUM 82 -# define DRIVER_LED_TOTAL RGBLED_NUM +# define RGB_MATRIX_LED_COUNT RGBLED_NUM # define WS2812_PWM_DRIVER PWMD3 // default: PWMD2 # define WS2812_PWM_CHANNEL 2 // default: 2 @@ -105,7 +105,7 @@ #ifdef RGBLIGHT_ENABLE # define RGB_DI_PIN A7 # define RGBLED_NUM 82 -# define DRIVER_LED_TOTAL RGBLED_NUM +# define RGB_MATRIX_LED_COUNT RGBLED_NUM # define WS2812_PWM_DRIVER PWMD3 // default: PWMD2 # define WS2812_PWM_CHANNEL 2 // default: 2 diff --git a/keyboards/yandrstudio/nz67v2/config.h b/keyboards/yandrstudio/nz67v2/config.h index 5d0aa382de6..faa7f82141f 100644 --- a/keyboards/yandrstudio/nz67v2/config.h +++ b/keyboards/yandrstudio/nz67v2/config.h @@ -46,12 +46,11 @@ # define RGB_DI_PIN B5 # define RGBLED_NUM 86 -# define DRIVER_LED_TOTAL RGBLED_NUM +# define RGB_MATRIX_LED_COUNT RGBLED_NUM # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 180 # define RGBLIGHT_VAL_STEP 5 # define RGB_DISABLE_WHEN_USB_SUSPENDED -# define RGB_MATRIX_CENTER { 112, 32 } # define RGB_MATRIX_KEYPRESSES # define RGB_MATRIX_FRAMEBUFFER_EFFECTS diff --git a/keyboards/yandrstudio/tg67/config.h b/keyboards/yandrstudio/tg67/config.h index 729375f987e..d4ef221deeb 100644 --- a/keyboards/yandrstudio/tg67/config.h +++ b/keyboards/yandrstudio/tg67/config.h @@ -35,12 +35,11 @@ # define RGB_DI_PIN A7 # define RGBLED_NUM 69 -# define DRIVER_LED_TOTAL RGBLED_NUM +# define RGB_MATRIX_LED_COUNT RGBLED_NUM # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 250 # define RGBLIGHT_VAL_STEP 5 # define RGB_DISABLE_WHEN_USB_SUSPENDED -# define RGB_MATRIX_CENTER { 112, 32 } # define RGB_MATRIX_KEYPRESSES # define RGB_MATRIX_FRAMEBUFFER_EFFECTS # define RGBLIGHT_ANIMATIONS diff --git a/keyboards/yanghu/unicorne/config.h b/keyboards/yanghu/unicorne/config.h index 749f7f69e46..285f3209aa9 100644 --- a/keyboards/yanghu/unicorne/config.h +++ b/keyboards/yanghu/unicorne/config.h @@ -51,7 +51,7 @@ /* RGB LED */ #define RGB_DI_PIN B1 #define RGBLED_NUM 8 -#define DRIVER_LED_TOTAL RGBLED_NUM +#define RGB_MATRIX_LED_COUNT RGBLED_NUM #define RGBLIGHT_EFFECT_BREATHING #define RGBLIGHT_EFFECT_RAINBOW_MOOD #define RGBLIGHT_EFFECT_RAINBOW_SWIRL diff --git a/keyboards/yncognito/batpad/config.h b/keyboards/yncognito/batpad/config.h index a9cac6d8167..4db1cdf5687 100644 --- a/keyboards/yncognito/batpad/config.h +++ b/keyboards/yncognito/batpad/config.h @@ -39,7 +39,7 @@ along with this program. If not, see . #define DIODE_DIRECTION COL2ROW #define RGB_DI_PIN B5 -#define DRIVER_LED_TOTAL 8 +#define RGB_MATRIX_LED_COUNT 8 #define RGB_MATRIX_KEYPRESSES #define RGB_MATRIX_KEYRELEASES #define RGB_MATRIX_FRAMEBUFFER_EFFECTS diff --git a/keyboards/yushakobo/quick17/config.h b/keyboards/yushakobo/quick17/config.h index 3595bf20c68..36dc55747d7 100644 --- a/keyboards/yushakobo/quick17/config.h +++ b/keyboards/yushakobo/quick17/config.h @@ -52,13 +52,13 @@ along with this program. If not, see . #define RGBLED_NUM 18 #ifdef RGB_MATRIX_ENABLE -# define DRIVER_LED_TOTAL RGBLED_NUM +# define RGB_MATRIX_LED_COUNT RGBLED_NUM # define RGB_MATRIX_KEYPRESSES // reacts to keypresses // # define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses) // # define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects # define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended # define RGB_MATRIX_FRAMEBUFFER_EFFECTS -// # define RGB_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) +// # define RGB_MATRIX_LED_PROCESS_LIMIT (RGB_MATRIX_LED_COUNT + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) // # define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness) # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 // limits maximum brightness of LEDs to 150 out of 255. Higher may cause the controller to crash. // HSV_TEAL diff --git a/keyboards/yushakobo/quick17/rgb_matrix_kb.inc b/keyboards/yushakobo/quick17/rgb_matrix_kb.inc index 0232b05ab94..d0071205afc 100644 --- a/keyboards/yushakobo/quick17/rgb_matrix_kb.inc +++ b/keyboards/yushakobo/quick17/rgb_matrix_kb.inc @@ -27,7 +27,7 @@ enum lighting_types { NUM_L }; -const uint8_t rgb_keymaps [][DRIVER_LED_TOTAL] = { +const uint8_t rgb_keymaps [][RGB_MATRIX_LED_COUNT] = { [_CONTROL] = LED_LAYOUT( _____, INDC2, INDC1, INDC2, INDC3, INDC4, _____, INDC1, INDC1, INDC1, INDC3, INDC4, diff --git a/layouts/community/ortho_3x10/bbaserdem/config.h b/layouts/community/ortho_3x10/bbaserdem/config.h index d781d344785..b792b2e6fa2 100644 --- a/layouts/community/ortho_3x10/bbaserdem/config.h +++ b/layouts/community/ortho_3x10/bbaserdem/config.h @@ -17,5 +17,5 @@ along with this program. If not, see . #ifdef KEYBOARD_40percentclub_gherkin #define MUSIC_MAP #define RGB_DI_PIN F6 - #define DRIVER_LED_TOTAL 10 + #define RGB_MATRIX_LED_COUNT 10 #endif diff --git a/layouts/community/ortho_4x12/drashna/config.h b/layouts/community/ortho_4x12/drashna/config.h index 1c88d66f3b4..3f47a3dcbc5 100644 --- a/layouts/community/ortho_4x12/drashna/config.h +++ b/layouts/community/ortho_4x12/drashna/config.h @@ -41,7 +41,7 @@ # undef RGB_MATRIX_LED_PROCESS_LIMIT # undef RGB_MATRIX_LED_FLUSH_LIMIT # ifdef KEYBOARD_planck_rev6 -# define DRIVER_LED_TOTAL RGBLED_NUM +# define RGB_MATRIX_LED_COUNT RGBLED_NUM # endif #endif diff --git a/layouts/community/split_3x5_3/bbaserdem/config.h b/layouts/community/split_3x5_3/bbaserdem/config.h index 6bb3515b9ec..2f7c0f70681 100644 --- a/layouts/community/split_3x5_3/bbaserdem/config.h +++ b/layouts/community/split_3x5_3/bbaserdem/config.h @@ -27,9 +27,9 @@ # ifdef RGBLED_NUM # undef RGBLED_NUM # endif -# ifdef DRIVER_LED_TOTAL -# undef DRIVER_LED_TOTAL +# ifdef RGB_MATRIX_LED_COUNT +# undef RGB_MATRIX_LED_COUNT # endif # define RGBLED_NUM 48 -# define DRIVER_LED_TOTAL RGBLED_NUM +# define RGB_MATRIX_LED_COUNT RGBLED_NUM #endif // KEYBOARD_crkbd_rev1 diff --git a/layouts/community/split_3x6_3/drashna/config.h b/layouts/community/split_3x6_3/drashna/config.h index a84d6eef2ef..cfe2d4436fd 100644 --- a/layouts/community/split_3x6_3/drashna/config.h +++ b/layouts/community/split_3x6_3/drashna/config.h @@ -48,7 +48,7 @@ // # define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses) // # define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects # define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended -// # define RGB_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) +// # define RGB_MATRIX_LED_PROCESS_LIMIT (RGB_MATRIX_LED_COUNT + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) // # define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness) # ifndef RGB_MATRIX_MAXIMUM_BRIGHTNESS # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 120 // limits maximum brightness of LEDs to 200 out of 255. If not defined maximum brightness is set to 255 diff --git a/lib/chibios b/lib/chibios index f836d24b06d..0e9d558b525 160000 --- a/lib/chibios +++ b/lib/chibios @@ -1 +1 @@ -Subproject commit f836d24b06d7265696a33d1cea010bd6a931791d +Subproject commit 0e9d558b525a8f28285f3bb509fd48a897c43151 diff --git a/lib/chibios-contrib b/lib/chibios-contrib index d03aa9cc2f7..b51787777be 160000 --- a/lib/chibios-contrib +++ b/lib/chibios-contrib @@ -1 +1 @@ -Subproject commit d03aa9cc2f76468e431c71421015102956dd6ad7 +Subproject commit b51787777beda4be659212503d5f3901ca91db08 diff --git a/lib/pico-sdk b/lib/pico-sdk index 07edde8e498..8d56ea332b3 160000 --- a/lib/pico-sdk +++ b/lib/pico-sdk @@ -1 +1 @@ -Subproject commit 07edde8e49890d2172bbc272aacc119f999df063 +Subproject commit 8d56ea332b3734cef0a8e61f7d61f2422bd539b1 diff --git a/lib/python/qmk/cli/__init__.py b/lib/python/qmk/cli/__init__.py index 02561da1fb4..cf5b5ad87eb 100644 --- a/lib/python/qmk/cli/__init__.py +++ b/lib/python/qmk/cli/__init__.py @@ -56,7 +56,6 @@ subcommands = [ 'qmk.cli.generate.info_json', 'qmk.cli.generate.keyboard_c', 'qmk.cli.generate.keyboard_h', - 'qmk.cli.generate.layouts', 'qmk.cli.generate.rgb_breathe_table', 'qmk.cli.generate.rules_mk', 'qmk.cli.generate.version_h', diff --git a/lib/python/qmk/cli/generate/config_h.py b/lib/python/qmk/cli/generate/config_h.py index a2178bf1e96..d6e87c8803f 100755 --- a/lib/python/qmk/cli/generate/config_h.py +++ b/lib/python/qmk/cli/generate/config_h.py @@ -13,6 +13,14 @@ from qmk.path import normpath from qmk.constants import GPL2_HEADER_C_LIKE, GENERATED_HEADER_C_LIKE +def generate_define(define, value=None): + value = f' {value}' if value is not None else '' + return f""" +#ifndef {define} +# define {define}{value} +#endif // {define}""" + + def direct_pins(direct_pins, postfix): """Return the config.h lines that set the direct pins. """ @@ -22,11 +30,7 @@ def direct_pins(direct_pins, postfix): cols = ','.join(map(str, [col or 'NO_PIN' for col in row])) rows.append('{' + cols + '}') - return f""" -#ifndef DIRECT_PINS{postfix} -# define DIRECT_PINS{postfix} {{ {", ".join(rows)} }} -#endif // DIRECT_PINS{postfix} -""" + return generate_define(f'DIRECT_PINS{postfix}', f'{{ {", ".join(rows)} }}') def pin_array(define, pins, postfix): @@ -34,11 +38,7 @@ def pin_array(define, pins, postfix): """ pin_array = ', '.join(map(str, [pin or 'NO_PIN' for pin in pins])) - return f""" -#ifndef {define}_PINS{postfix} -# define {define}_PINS{postfix} {{ {pin_array} }} -#endif // {define}_PINS{postfix} -""" + return generate_define(f'{define}_PINS{postfix}', f'{{ {pin_array} }}') def matrix_pins(matrix_pins, postfix=''): @@ -62,18 +62,8 @@ def generate_matrix_size(kb_info_json, config_h_lines): """Add the matrix size to the config.h. """ if 'matrix_pins' in kb_info_json: - col_count = kb_info_json['matrix_size']['cols'] - row_count = kb_info_json['matrix_size']['rows'] - - config_h_lines.append(f""" -#ifndef MATRIX_COLS -# define MATRIX_COLS {col_count} -#endif // MATRIX_COLS - -#ifndef MATRIX_ROWS -# define MATRIX_ROWS {row_count} -#endif // MATRIX_ROWS -""") + config_h_lines.append(generate_define('MATRIX_COLS', kb_info_json['matrix_size']['cols'])) + config_h_lines.append(generate_define('MATRIX_ROWS', kb_info_json['matrix_size']['rows'])) def generate_config_items(kb_info_json, config_h_lines): @@ -95,44 +85,23 @@ def generate_config_items(kb_info_json, config_h_lines): continue if key_type.startswith('array.array'): - config_h_lines.append('') - config_h_lines.append(f'#ifndef {config_key}') - config_h_lines.append(f'# define {config_key} {{ {", ".join(["{" + ",".join(list(map(str, x))) + "}" for x in config_value])} }}') - config_h_lines.append(f'#endif // {config_key}') + config_h_lines.append(generate_define(config_key, f'{{ {", ".join(["{" + ",".join(list(map(str, x))) + "}" for x in config_value])} }}')) elif key_type.startswith('array'): - config_h_lines.append('') - config_h_lines.append(f'#ifndef {config_key}') - config_h_lines.append(f'# define {config_key} {{ {", ".join(map(str, config_value))} }}') - config_h_lines.append(f'#endif // {config_key}') + config_h_lines.append(generate_define(config_key, f'{{ {", ".join(map(str, config_value))} }}')) elif key_type == 'bool': if config_value: - config_h_lines.append('') - config_h_lines.append(f'#ifndef {config_key}') - config_h_lines.append(f'# define {config_key}') - config_h_lines.append(f'#endif // {config_key}') + config_h_lines.append(generate_define(config_key)) elif key_type == 'mapping': for key, value in config_value.items(): - config_h_lines.append('') - config_h_lines.append(f'#ifndef {key}') - config_h_lines.append(f'# define {key} {value}') - config_h_lines.append(f'#endif // {key}') + config_h_lines.append(generate_define(key, value)) elif key_type == 'str': escaped_str = config_value.replace('\\', '\\\\').replace('"', '\\"') - config_h_lines.append('') - config_h_lines.append(f'#ifndef {config_key}') - config_h_lines.append(f'# define {config_key} "{escaped_str}"') - config_h_lines.append(f'#endif // {config_key}') + config_h_lines.append(generate_define(config_key, f'"{escaped_str}"')) elif key_type == 'bcd_version': (major, minor, revision) = config_value.split('.') - config_h_lines.append('') - config_h_lines.append(f'#ifndef {config_key}') - config_h_lines.append(f'# define {config_key} 0x{major.zfill(2)}{minor}{revision}') - config_h_lines.append(f'#endif // {config_key}') + config_h_lines.append(generate_define(config_key, f'0x{major.zfill(2)}{minor}{revision}')) else: - config_h_lines.append('') - config_h_lines.append(f'#ifndef {config_key}') - config_h_lines.append(f'# define {config_key} {config_value}') - config_h_lines.append(f'#endif // {config_key}') + config_h_lines.append(generate_define(config_key, config_value)) def generate_encoder_config(encoder_json, config_h_lines, postfix=''): @@ -145,24 +114,15 @@ def generate_encoder_config(encoder_json, config_h_lines, postfix=''): b_pads.append(encoder["pin_b"]) resolutions.append(encoder.get("resolution", None)) - config_h_lines.append(f'#ifndef ENCODERS_PAD_A{postfix}') - config_h_lines.append(f'# define ENCODERS_PAD_A{postfix} {{ { ", ".join(a_pads) } }}') - config_h_lines.append(f'#endif // ENCODERS_PAD_A{postfix}') - - config_h_lines.append(f'#ifndef ENCODERS_PAD_B{postfix}') - config_h_lines.append(f'# define ENCODERS_PAD_B{postfix} {{ { ", ".join(b_pads) } }}') - config_h_lines.append(f'#endif // ENCODERS_PAD_B{postfix}') + config_h_lines.append(generate_define(f'ENCODERS_PAD_A{postfix}', f'{{ {", ".join(a_pads)} }}')) + config_h_lines.append(generate_define(f'ENCODERS_PAD_B{postfix}', f'{{ {", ".join(b_pads)} }}')) if None in resolutions: cli.log.debug("Unable to generate ENCODER_RESOLUTION configuration") elif len(set(resolutions)) == 1: - config_h_lines.append(f'#ifndef ENCODER_RESOLUTION{postfix}') - config_h_lines.append(f'# define ENCODER_RESOLUTION{postfix} { resolutions[0] }') - config_h_lines.append(f'#endif // ENCODER_RESOLUTION{postfix}') + config_h_lines.append(generate_define(f'ENCODER_RESOLUTION{postfix}', resolutions[0])) else: - config_h_lines.append(f'#ifndef ENCODER_RESOLUTIONS{postfix}') - config_h_lines.append(f'# define ENCODER_RESOLUTIONS{postfix} {{ { ", ".join(map(str,resolutions)) } }}') - config_h_lines.append(f'#endif // ENCODER_RESOLUTIONS{postfix}') + config_h_lines.append(generate_define(f'ENCODER_RESOLUTIONS{postfix}', f'{{ {", ".join(map(str,resolutions))} }}')) def generate_split_config(kb_info_json, config_h_lines): @@ -171,35 +131,23 @@ def generate_split_config(kb_info_json, config_h_lines): if kb_info_json['split']['primary'] in ('left', 'right'): config_h_lines.append('') config_h_lines.append('#ifndef MASTER_LEFT') - config_h_lines.append('# ifndef MASTER_RIGHT') + config_h_lines.append('# ifndef MASTER_RIGHT') if kb_info_json['split']['primary'] == 'left': - config_h_lines.append('# define MASTER_LEFT') + config_h_lines.append('# define MASTER_LEFT') elif kb_info_json['split']['primary'] == 'right': - config_h_lines.append('# define MASTER_RIGHT') - config_h_lines.append('# endif // MASTER_RIGHT') + config_h_lines.append('# define MASTER_RIGHT') + config_h_lines.append('# endif // MASTER_RIGHT') config_h_lines.append('#endif // MASTER_LEFT') elif kb_info_json['split']['primary'] == 'pin': - config_h_lines.append('') - config_h_lines.append('#ifndef SPLIT_HAND_PIN') - config_h_lines.append('# define SPLIT_HAND_PIN') - config_h_lines.append('#endif // SPLIT_HAND_PIN') + config_h_lines.append(generate_define('SPLIT_HAND_PIN')) elif kb_info_json['split']['primary'] == 'matrix_grid': - config_h_lines.append('') - config_h_lines.append('#ifndef SPLIT_HAND_MATRIX_GRID') - config_h_lines.append('# define SPLIT_HAND_MATRIX_GRID {%s}' % (','.join(kb_info_json["split"]["matrix_grid"],))) - config_h_lines.append('#endif // SPLIT_HAND_MATRIX_GRID') + config_h_lines.append(generate_define('SPLIT_HAND_MATRIX_GRID', f'{{ {",".join(kb_info_json["split"]["matrix_grid"])} }}')) elif kb_info_json['split']['primary'] == 'eeprom': - config_h_lines.append('') - config_h_lines.append('#ifndef EE_HANDS') - config_h_lines.append('# define EE_HANDS') - config_h_lines.append('#endif // EE_HANDS') + config_h_lines.append(generate_define('EE_HANDS')) if 'protocol' in kb_info_json['split'].get('transport', {}): if kb_info_json['split']['transport']['protocol'] == 'i2c': - config_h_lines.append('') - config_h_lines.append('#ifndef USE_I2C') - config_h_lines.append('# define USE_I2C') - config_h_lines.append('#endif // USE_I2C') + config_h_lines.append(generate_define('USE_I2C')) if 'right' in kb_info_json['split'].get('matrix_pins', {}): config_h_lines.append(matrix_pins(kb_info_json['split']['matrix_pins']['right'], '_RIGHT')) diff --git a/lib/python/qmk/cli/generate/keyboard_h.py b/lib/python/qmk/cli/generate/keyboard_h.py index 54ddb4cffd5..910bd6a08db 100755 --- a/lib/python/qmk/cli/generate/keyboard_h.py +++ b/lib/python/qmk/cli/generate/keyboard_h.py @@ -1,33 +1,72 @@ """Used by the make system to generate keyboard.h from info.json. """ +from pathlib import Path + from milc import cli +from qmk.path import normpath from qmk.info import info_json from qmk.commands import dump_lines from qmk.keyboard import keyboard_completer, keyboard_folder -from qmk.path import normpath -from qmk.constants import GPL2_HEADER_C_LIKE, GENERATED_HEADER_C_LIKE +from qmk.constants import COL_LETTERS, ROW_LETTERS, GPL2_HEADER_C_LIKE, GENERATED_HEADER_C_LIKE -def would_populate_layout_h(keyboard): - """Detect if a given keyboard is doing data driven layouts +def _generate_layouts(keyboard): + """Generates the layouts.h file. """ # Build the info.json file kb_info_json = info_json(keyboard) + if 'matrix_size' not in kb_info_json: + cli.log.error(f'{keyboard}: Invalid matrix config.') + return [] + + col_num = kb_info_json['matrix_size']['cols'] + row_num = kb_info_json['matrix_size']['rows'] + + lines = [] for layout_name in kb_info_json['layouts']: if kb_info_json['layouts'][layout_name]['c_macro']: continue if 'matrix' not in kb_info_json['layouts'][layout_name]['layout'][0]: - cli.log.debug('%s/%s: No matrix data!', keyboard, layout_name) + cli.log.debug(f'{keyboard}/{layout_name}: No matrix data!') continue - return True + layout_keys = [] + layout_matrix = [['KC_NO' for i in range(col_num)] for i in range(row_num)] - return False + for i, key in enumerate(kb_info_json['layouts'][layout_name]['layout']): + row = key['matrix'][0] + col = key['matrix'][1] + identifier = 'k%s%s' % (ROW_LETTERS[row], COL_LETTERS[col]) + + try: + layout_matrix[row][col] = identifier + layout_keys.append(identifier) + except IndexError: + key_name = key.get('label', identifier) + cli.log.error(f'Matrix data out of bounds for layout {layout_name} at index {i} ({key_name}): [{row}, {col}]') + return [] + + lines.append('') + lines.append('#define %s(%s) {\\' % (layout_name, ', '.join(layout_keys))) + + rows = ', \\\n'.join(['\t {' + ', '.join(row) + '}' for row in layout_matrix]) + rows += ' \\' + lines.append(rows) + lines.append('}') + + for alias, target in kb_info_json.get('layout_aliases', {}).items(): + lines.append('') + lines.append(f'#ifndef {alias}') + lines.append(f'# define {alias} {target}') + lines.append('#endif') + + return lines +@cli.argument('-i', '--include', nargs='?', arg_only=True, help='Optional file to include') @cli.argument('-o', '--output', arg_only=True, type=normpath, help='File to write to') @cli.argument('-q', '--quiet', arg_only=True, action='store_true', help="Quiet mode, only output error messages") @cli.argument('-kb', '--keyboard', arg_only=True, type=keyboard_folder, completer=keyboard_completer, required=True, help='Keyboard to generate keyboard.h for.') @@ -35,13 +74,23 @@ def would_populate_layout_h(keyboard): def generate_keyboard_h(cli): """Generates the keyboard.h file. """ - has_layout_h = would_populate_layout_h(cli.args.keyboard) + keyboard_h = cli.args.include + dd_layouts = _generate_layouts(cli.args.keyboard) + valid_config = dd_layouts or keyboard_h # Build the layouts.h file. keyboard_h_lines = [GPL2_HEADER_C_LIKE, GENERATED_HEADER_C_LIKE, '#pragma once', '#include "quantum.h"'] - if not has_layout_h: - keyboard_h_lines.append('#error(".h is only optional for data driven keyboards - kb.h == bad times")') + keyboard_h_lines.append('') + keyboard_h_lines.append('// Layout content') + if dd_layouts: + keyboard_h_lines.extend(dd_layouts) + if keyboard_h: + keyboard_h_lines.append(f'#include "{Path(keyboard_h).name}"') + + # Protect against poorly configured keyboards + if not valid_config: + keyboard_h_lines.append('#error(".h is required unless your keyboard uses data-driven configuration. Please rename your keyboard\'s header file to .h")') # Show the results dump_lines(cli.args.output, keyboard_h_lines, cli.args.quiet) diff --git a/lib/python/qmk/cli/generate/layouts.py b/lib/python/qmk/cli/generate/layouts.py deleted file mode 100755 index 8336f36b50d..00000000000 --- a/lib/python/qmk/cli/generate/layouts.py +++ /dev/null @@ -1,84 +0,0 @@ -"""Used by the make system to generate layouts.h from info.json. -""" -from milc import cli - -from qmk.constants import COL_LETTERS, ROW_LETTERS, GPL2_HEADER_C_LIKE, GENERATED_HEADER_C_LIKE -from qmk.decorators import automagic_keyboard, automagic_keymap -from qmk.info import info_json -from qmk.keyboard import keyboard_completer, keyboard_folder -from qmk.path import is_keyboard, normpath -from qmk.commands import dump_lines - - -@cli.argument('-o', '--output', arg_only=True, type=normpath, help='File to write to') -@cli.argument('-q', '--quiet', arg_only=True, action='store_true', help="Quiet mode, only output error messages") -@cli.argument('-kb', '--keyboard', type=keyboard_folder, completer=keyboard_completer, help='Keyboard to generate config.h for.') -@cli.subcommand('Used by the make system to generate layouts.h from info.json', hidden=True) -@automagic_keyboard -@automagic_keymap -def generate_layouts(cli): - """Generates the layouts.h file. - """ - # Determine our keyboard(s) - if not cli.config.generate_layouts.keyboard: - cli.log.error('Missing parameter: --keyboard') - cli.subcommands['info'].print_help() - return False - - if not is_keyboard(cli.config.generate_layouts.keyboard): - cli.log.error('Invalid keyboard: "%s"', cli.config.generate_layouts.keyboard) - return False - - # Build the info.json file - kb_info_json = info_json(cli.config.generate_layouts.keyboard) - - # Build the layouts.h file. - layouts_h_lines = [GPL2_HEADER_C_LIKE, GENERATED_HEADER_C_LIKE, '#pragma once'] - - if 'matrix_size' not in kb_info_json: - cli.log.error('%s: Invalid matrix config.', cli.config.generate_layouts.keyboard) - return False - - col_num = kb_info_json['matrix_size']['cols'] - row_num = kb_info_json['matrix_size']['rows'] - - for layout_name in kb_info_json['layouts']: - if kb_info_json['layouts'][layout_name]['c_macro']: - continue - - if 'matrix' not in kb_info_json['layouts'][layout_name]['layout'][0]: - cli.log.debug('%s/%s: No matrix data!', cli.config.generate_layouts.keyboard, layout_name) - continue - - layout_keys = [] - layout_matrix = [['KC_NO' for i in range(col_num)] for i in range(row_num)] - - for i, key in enumerate(kb_info_json['layouts'][layout_name]['layout']): - row = key['matrix'][0] - col = key['matrix'][1] - identifier = 'k%s%s' % (ROW_LETTERS[row], COL_LETTERS[col]) - - try: - layout_matrix[row][col] = identifier - layout_keys.append(identifier) - except IndexError: - key_name = key.get('label', identifier) - cli.log.error('Matrix data out of bounds for layout %s at index %s (%s): %s, %s', layout_name, i, key_name, row, col) - return False - - layouts_h_lines.append('') - layouts_h_lines.append('#define %s(%s) {\\' % (layout_name, ', '.join(layout_keys))) - - rows = ', \\\n'.join(['\t {' + ', '.join(row) + '}' for row in layout_matrix]) - rows += ' \\' - layouts_h_lines.append(rows) - layouts_h_lines.append('}') - - for alias, target in kb_info_json.get('layout_aliases', {}).items(): - layouts_h_lines.append('') - layouts_h_lines.append(f'#ifndef {alias}') - layouts_h_lines.append(f'# define {alias} {target}') - layouts_h_lines.append('#endif') - - # Show the results - dump_lines(cli.args.output, layouts_h_lines, cli.args.quiet) diff --git a/lib/python/qmk/info.py b/lib/python/qmk/info.py index 834f7d9170a..5ca282b2d31 100644 --- a/lib/python/qmk/info.py +++ b/lib/python/qmk/info.py @@ -613,20 +613,24 @@ def _extract_led_config(info_data, keyboard): cols = info_data['matrix_size']['cols'] rows = info_data['matrix_size']['rows'] - # Assume what feature owns g_led_config - feature = "rgb_matrix" - if info_data.get("features", {}).get("led_matrix", False): + # Determine what feature owns g_led_config + features = info_data.get("features", {}) + feature = None + if features.get("rgb_matrix", False): + feature = "rgb_matrix" + elif features.get("led_matrix", False): feature = "led_matrix" - # Process - for file in find_keyboard_c(keyboard): - try: - ret = find_led_config(file, cols, rows) - if ret: - info_data[feature] = info_data.get(feature, {}) - info_data[feature]["layout"] = ret - except Exception as e: - _log_warning(info_data, f'led_config: {file.name}: {e}') + if feature: + # Process + for file in find_keyboard_c(keyboard): + try: + ret = find_led_config(file, cols, rows) + if ret: + info_data[feature] = info_data.get(feature, {}) + info_data[feature]["layout"] = ret + except Exception as e: + _log_warning(info_data, f'led_config: {file.name}: {e}') return info_data diff --git a/lib/python/qmk/tests/test_cli_commands.py b/lib/python/qmk/tests/test_cli_commands.py index 185abb5f213..9bfc5a0a799 100644 --- a/lib/python/qmk/tests/test_cli_commands.py +++ b/lib/python/qmk/tests/test_cli_commands.py @@ -263,16 +263,16 @@ def test_generate_rgb_breathe_table(): def test_generate_config_h(): result = check_subcommand('generate-config-h', '-kb', 'handwired/pytest/basic') check_returncode(result) - assert '# define DEVICE_VER 0x0001' in result.stdout - assert '# define DIODE_DIRECTION COL2ROW' in result.stdout - assert '# define MANUFACTURER "none"' in result.stdout - assert '# define PRODUCT "pytest"' in result.stdout - assert '# define PRODUCT_ID 0x6465' in result.stdout - assert '# define VENDOR_ID 0xFEED' in result.stdout - assert '# define MATRIX_COLS 1' in result.stdout - assert '# define MATRIX_COL_PINS { F4 }' in result.stdout - assert '# define MATRIX_ROWS 1' in result.stdout - assert '# define MATRIX_ROW_PINS { F5 }' in result.stdout + assert '# define DEVICE_VER 0x0001' in result.stdout + assert '# define DIODE_DIRECTION COL2ROW' in result.stdout + assert '# define MANUFACTURER "none"' in result.stdout + assert '# define PRODUCT "pytest"' in result.stdout + assert '# define PRODUCT_ID 0x6465' in result.stdout + assert '# define VENDOR_ID 0xFEED' in result.stdout + assert '# define MATRIX_COLS 1' in result.stdout + assert '# define MATRIX_COL_PINS { F4 }' in result.stdout + assert '# define MATRIX_ROWS 1' in result.stdout + assert '# define MATRIX_ROW_PINS { F5 }' in result.stdout def test_generate_rules_mk(): @@ -288,12 +288,6 @@ def test_generate_version_h(): assert '#define QMK_VERSION' in result.stdout -def test_generate_layouts(): - result = check_subcommand('generate-layouts', '-kb', 'handwired/pytest/basic') - check_returncode(result) - assert '#define LAYOUT_custom(k0A) {' in result.stdout - - def test_format_json_keyboard(): result = check_subcommand('format-json', '--format', 'keyboard', 'lib/python/qmk/tests/minimal_info.json') check_returncode(result) diff --git a/platforms/chibios/converters/elite_c_to_elite_pi/_pin_defs.h b/platforms/chibios/converters/elite_c_to_elite_pi/_pin_defs.h new file mode 100644 index 00000000000..98dd37e279b --- /dev/null +++ b/platforms/chibios/converters/elite_c_to_elite_pi/_pin_defs.h @@ -0,0 +1,39 @@ +// Copyright 2022 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +// Left side (front) +#define D3 0U +#define D2 1U +// GND +// GND +#define D1 2U +#define D0 3U +#define D4 4U +#define C6 5U +#define D7 6U +#define E6 7U +#define B4 8U +#define B5 9U + +// Right side (front) +// RAW +// GND +// RESET +// VCC +#define F4 29U +#define F5 28U +#define F6 27U +#define F7 26U +#define B1 22U +#define B3 20U +#define B2 23U +#define B6 21U + +// Bottom row +#define B7 12U +#define D5 13U +#define C7 14U +#define F1 15U +#define F0 16U diff --git a/platforms/chibios/converters/elite_c_to_elite_pi/converter.mk b/platforms/chibios/converters/elite_c_to_elite_pi/converter.mk new file mode 100644 index 00000000000..590a0041892 --- /dev/null +++ b/platforms/chibios/converters/elite_c_to_elite_pi/converter.mk @@ -0,0 +1,9 @@ +# Elite-Pi MCU settings for converting AVR projects +MCU := RP2040 +BOARD := QMK_PM2040 +BOOTLOADER := rp2040 + +# These are defaults based on what has been implemented for RP2040 boards +SERIAL_DRIVER ?= vendor +WS2812_DRIVER ?= vendor +BACKLIGHT_DRIVER ?= software diff --git a/platforms/chibios/converters/elite_c_to_stemcell/_pin_defs.h b/platforms/chibios/converters/elite_c_to_stemcell/_pin_defs.h new file mode 100644 index 00000000000..4458abfa1ca --- /dev/null +++ b/platforms/chibios/converters/elite_c_to_stemcell/_pin_defs.h @@ -0,0 +1,54 @@ +// Copyright 2022 Mega Mind (@megamind4089) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +// Pindefs for v2.0.0 +// https://megamind4089.github.io/STeMCell/pinout/ + +// Left side (front) +#ifdef STEMCELL_UART_SWAP +# define D3 PAL_LINE(GPIOA, 3) +# define D2 PAL_LINE(GPIOA, 2) +#else +# define D3 PAL_LINE(GPIOA, 2) +# define D2 PAL_LINE(GPIOA, 3) +#endif +// GND +// GND +#ifdef STEMCELL_I2C_SWAP +# define D1 PAL_LINE(GPIOB, 6) +# define D0 PAL_LINE(GPIOB, 7) +#else +# define D1 PAL_LINE(GPIOB, 7) +# define D0 PAL_LINE(GPIOB, 6) +#endif + +#define D4 PAL_LINE(GPIOA, 15) +#define C6 PAL_LINE(GPIOB, 3) +#define D7 PAL_LINE(GPIOB, 4) +#define E6 PAL_LINE(GPIOB, 5) +#define B4 PAL_LINE(GPIOB, 8) +#define B5 PAL_LINE(GPIOB, 9) + +// Right side (front) +// RAW +// GND +// RESET +// VCC +#define F4 PAL_LINE(GPIOB, 10) +#define F5 PAL_LINE(GPIOB, 2) +#define F6 PAL_LINE(GPIOB, 1) +#define F7 PAL_LINE(GPIOB, 0) + +#define B1 PAL_LINE(GPIOA, 5) +#define B3 PAL_LINE(GPIOA, 6) +#define B2 PAL_LINE(GPIOA, 7) +#define B6 PAL_LINE(GPIOA, 4) + +// Bottom row +#define B7 PAL_LINE(GPIOC, 13) +#define D5 PAL_LINE(GPIOC, 14) +#define C7 PAL_LINE(GPIOC, 15) +#define F1 PAL_LINE(GPIOA, 0) +#define F0 PAL_LINE(GPIOA, 1) diff --git a/platforms/chibios/converters/elite_c_to_stemcell/converter.mk b/platforms/chibios/converters/elite_c_to_stemcell/converter.mk new file mode 100644 index 00000000000..1bbe9bf09ed --- /dev/null +++ b/platforms/chibios/converters/elite_c_to_stemcell/converter.mk @@ -0,0 +1,18 @@ +# Copyright 2022 Mega Mind (@megamind4089) +# SPDX-License-Identifier: GPL-2.0-or-later + +MCU := STM32F411 +BOARD := STEMCELL +BOOTLOADER := tinyuf2 + +SERIAL_DRIVER ?= usart +WS2812_DRIVER ?= bitbang + +ifeq ($(strip $(STMC_US)), yes) + OPT_DEFS += -DSTEMCELL_UART_SWAP +endif + +ifeq ($(strip $(STMC_IS)), yes) + OPT_DEFS += -DSTEMCELL_I2C_SWAP +endif + diff --git a/platforms/chibios/drivers/vendor/RP/RP2040/serial_vendor.c b/platforms/chibios/drivers/vendor/RP/RP2040/serial_vendor.c index 764764b3f9e..afd7e65ad81 100644 --- a/platforms/chibios/drivers/vendor/RP/RP2040/serial_vendor.c +++ b/platforms/chibios/drivers/vendor/RP/RP2040/serial_vendor.c @@ -140,9 +140,8 @@ void pio_serve_interrupt(void) { // strength is chosen because the transmitting side must still be able to drive // the signal low. With this configuration the rise times are fast enough and // the generated low level with 360mV will generate a logical zero. -static inline void enter_rx_state(void) { +static void __no_inline_not_in_flash_func(enter_rx_state)(void) { osalSysLock(); - nvicEnableVector(RP_USBCTRL_IRQ_NUMBER, RP_IRQ_USB0_PRIORITY); // Wait for the transmitting state machines FIFO to run empty. At this point // the last byte has been pulled from the transmitting state machines FIFO // into the output shift register. We have to wait a tiny bit more until @@ -162,11 +161,8 @@ static inline void enter_rx_state(void) { osalSysUnlock(); } -static inline void leave_rx_state(void) { +static void __no_inline_not_in_flash_func(leave_rx_state)(void) { osalSysLock(); - // We don't want to be interrupted by frequent (1KHz) USB interrupts while - // doing our timing critical sending operation. - nvicDisableVector(RP_USBCTRL_IRQ_NUMBER); // In Half-duplex operation the tx pin dual-functions as sender and // receiver. To not receive the data we will send, we disable the receiving // state machine. @@ -198,11 +194,6 @@ static inline msg_t sync_tx(sysinterval_t timeout) { msg_t msg = MSG_OK; osalSysLock(); while (pio_sm_is_tx_fifo_full(pio, tx_state_machine)) { -#if !defined(SERIAL_USART_FULL_DUPLEX) - // Enable USB interrupts again, because we might sleep for a long time - // here and don't want to be disconnected from the host. - nvicEnableVector(RP_USBCTRL_IRQ_NUMBER, RP_IRQ_USB0_PRIORITY); -#endif pio_set_irq0_source_enabled(pio, pis_sm0_tx_fifo_not_full + tx_state_machine, true); msg = osalThreadSuspendTimeoutS(&tx_thread, timeout); if (msg < MSG_OK) { @@ -210,10 +201,6 @@ static inline msg_t sync_tx(sysinterval_t timeout) { break; } } -#if !defined(SERIAL_USART_FULL_DUPLEX) - // Entering timing critical territory again. - nvicDisableVector(RP_USBCTRL_IRQ_NUMBER); -#endif osalSysUnlock(); return msg; } diff --git a/platforms/chibios/vendors/RP/RP2040.mk b/platforms/chibios/vendors/RP/RP2040.mk index de426c9c40f..efa3fef13f6 100644 --- a/platforms/chibios/vendors/RP/RP2040.mk +++ b/platforms/chibios/vendors/RP/RP2040.mk @@ -11,7 +11,8 @@ endif # Raspberry Pi Pico SDK Support ############################################################################## ADEFS += -DCRT0_VTOR_INIT=1 \ - -DCRT0_EXTRA_CORES_NUMBER=0 + -DCRT0_EXTRA_CORES_NUMBER=0 \ + -DCRT0_INIT_VECTORS=1 CFLAGS += -DPICO_NO_FPGA_CHECK \ -DNDEBUG diff --git a/quantum/eeconfig.c b/quantum/eeconfig.c index 7c0431fd128..27a0f6d48f1 100644 --- a/quantum/eeconfig.c +++ b/quantum/eeconfig.c @@ -46,7 +46,8 @@ void eeconfig_init_quantum(void) { eeprom_update_byte(EECONFIG_DEFAULT_LAYER, 0); default_layer_state = 0; eeprom_update_byte(EECONFIG_KEYMAP_LOWER_BYTE, 0); - eeprom_update_byte(EECONFIG_KEYMAP_UPPER_BYTE, 0xC); + // Enable oneshot and autocorrect by default: 0b0001 0100 + eeprom_update_byte(EECONFIG_KEYMAP_UPPER_BYTE, 0x14); eeprom_update_byte(EECONFIG_MOUSEKEY_ACCEL, 0); eeprom_update_byte(EECONFIG_BACKLIGHT, 0); eeprom_update_byte(EECONFIG_AUDIO, 0xFF); // On by default diff --git a/quantum/led_matrix/led_matrix.c b/quantum/led_matrix/led_matrix.c index 14dd0dd48a4..5bff1544804 100644 --- a/quantum/led_matrix/led_matrix.c +++ b/quantum/led_matrix/led_matrix.c @@ -170,7 +170,7 @@ void led_matrix_set_value(int index, uint8_t value) { void led_matrix_set_value_all(uint8_t value) { #if defined(LED_MATRIX_ENABLE) && defined(LED_MATRIX_SPLIT) - for (uint8_t i = 0; i < DRIVER_LED_TOTAL; i++) + for (uint8_t i = 0; i < LED_MATRIX_LED_COUNT; i++) led_matrix_set_value(i, value); #else # ifdef USE_CIE1931_CURVE @@ -399,13 +399,13 @@ void led_matrix_indicators_advanced(effect_params_t *params) { * and not sure which would be better. Otherwise, this should be called from * led_task_render, right before the iter++ line. */ -#if defined(LED_MATRIX_LED_PROCESS_LIMIT) && LED_MATRIX_LED_PROCESS_LIMIT > 0 && LED_MATRIX_LED_PROCESS_LIMIT < DRIVER_LED_TOTAL +#if defined(LED_MATRIX_LED_PROCESS_LIMIT) && LED_MATRIX_LED_PROCESS_LIMIT > 0 && LED_MATRIX_LED_PROCESS_LIMIT < LED_MATRIX_LED_COUNT uint8_t min = LED_MATRIX_LED_PROCESS_LIMIT * (params->iter - 1); uint8_t max = min + LED_MATRIX_LED_PROCESS_LIMIT; - if (max > DRIVER_LED_TOTAL) max = DRIVER_LED_TOTAL; + if (max > LED_MATRIX_LED_COUNT) max = LED_MATRIX_LED_COUNT; #else uint8_t min = 0; - uint8_t max = DRIVER_LED_TOTAL; + uint8_t max = LED_MATRIX_LED_COUNT; #endif led_matrix_indicators_advanced_kb(min, max); led_matrix_indicators_advanced_user(min, max); diff --git a/quantum/led_matrix/led_matrix.h b/quantum/led_matrix/led_matrix.h index 446f293c786..db4f223d5b7 100644 --- a/quantum/led_matrix/led_matrix.h +++ b/quantum/led_matrix/led_matrix.h @@ -42,15 +42,15 @@ #endif #ifndef LED_MATRIX_LED_PROCESS_LIMIT -# define LED_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 +# define LED_MATRIX_LED_PROCESS_LIMIT (LED_MATRIX_LED_COUNT + 4) / 5 #endif -#if defined(LED_MATRIX_LED_PROCESS_LIMIT) && LED_MATRIX_LED_PROCESS_LIMIT > 0 && LED_MATRIX_LED_PROCESS_LIMIT < DRIVER_LED_TOTAL +#if defined(LED_MATRIX_LED_PROCESS_LIMIT) && LED_MATRIX_LED_PROCESS_LIMIT > 0 && LED_MATRIX_LED_PROCESS_LIMIT < LED_MATRIX_LED_COUNT # if defined(LED_MATRIX_SPLIT) # define LED_MATRIX_USE_LIMITS(min, max) \ uint8_t min = LED_MATRIX_LED_PROCESS_LIMIT * params->iter; \ uint8_t max = min + LED_MATRIX_LED_PROCESS_LIMIT; \ - if (max > DRIVER_LED_TOTAL) max = DRIVER_LED_TOTAL; \ + if (max > LED_MATRIX_LED_COUNT) max = LED_MATRIX_LED_COUNT; \ uint8_t k_led_matrix_split[2] = LED_MATRIX_SPLIT; \ if (is_keyboard_left() && (max > k_led_matrix_split[0])) max = k_led_matrix_split[0]; \ if (!(is_keyboard_left()) && (min < k_led_matrix_split[0])) min = k_led_matrix_split[0]; @@ -58,20 +58,20 @@ # define LED_MATRIX_USE_LIMITS(min, max) \ uint8_t min = LED_MATRIX_LED_PROCESS_LIMIT * params->iter; \ uint8_t max = min + LED_MATRIX_LED_PROCESS_LIMIT; \ - if (max > DRIVER_LED_TOTAL) max = DRIVER_LED_TOTAL; + if (max > LED_MATRIX_LED_COUNT) max = LED_MATRIX_LED_COUNT; # endif #else # if defined(LED_MATRIX_SPLIT) # define LED_MATRIX_USE_LIMITS(min, max) \ uint8_t min = 0; \ - uint8_t max = DRIVER_LED_TOTAL; \ + uint8_t max = LED_MATRIX_LED_COUNT; \ const uint8_t k_led_matrix_split[2] = LED_MATRIX_SPLIT; \ if (is_keyboard_left() && (max > k_led_matrix_split[0])) max = k_led_matrix_split[0]; \ if (!(is_keyboard_left()) && (min < k_led_matrix_split[0])) min = k_led_matrix_split[0]; # else # define LED_MATRIX_USE_LIMITS(min, max) \ uint8_t min = 0; \ - uint8_t max = DRIVER_LED_TOTAL; + uint8_t max = LED_MATRIX_LED_COUNT; # endif #endif @@ -181,9 +181,9 @@ static inline bool led_matrix_check_finished_leds(uint8_t led_idx) { uint8_t k_led_matrix_split[2] = LED_MATRIX_SPLIT; return led_idx < k_led_matrix_split[0]; } else - return led_idx < DRIVER_LED_TOTAL; + return led_idx < LED_MATRIX_LED_COUNT; #else - return led_idx < DRIVER_LED_TOTAL; + return led_idx < LED_MATRIX_LED_COUNT; #endif } diff --git a/quantum/led_matrix/led_matrix_drivers.c b/quantum/led_matrix/led_matrix_drivers.c index f01b395c155..2c09ba82b1f 100644 --- a/quantum/led_matrix/led_matrix_drivers.c +++ b/quantum/led_matrix/led_matrix_drivers.c @@ -96,7 +96,7 @@ static void init(void) { # endif # endif - for (int index = 0; index < DRIVER_LED_TOTAL; index++) { + for (int index = 0; index < LED_MATRIX_LED_COUNT; index++) { # if defined(IS31FL3731) IS31FL3731_set_led_control_register(index, true); # elif defined(IS31FL3733) diff --git a/quantum/led_matrix/led_matrix_types.h b/quantum/led_matrix/led_matrix_types.h index 3dc533100f4..6d79a3592df 100644 --- a/quantum/led_matrix/led_matrix_types.h +++ b/quantum/led_matrix/led_matrix_types.h @@ -76,8 +76,8 @@ typedef struct PACKED { typedef struct PACKED { uint8_t matrix_co[MATRIX_ROWS][MATRIX_COLS]; - led_point_t point[DRIVER_LED_TOTAL]; - uint8_t flags[DRIVER_LED_TOTAL]; + led_point_t point[LED_MATRIX_LED_COUNT]; + uint8_t flags[LED_MATRIX_LED_COUNT]; } led_config_t; typedef union { diff --git a/quantum/painter/qp.h b/quantum/painter/qp.h index fb6904de228..69bc4359612 100644 --- a/quantum/painter/qp.h +++ b/quantum/painter/qp.h @@ -432,6 +432,10 @@ int16_t qp_drawtext_recolor(painter_device_t device, uint16_t x, uint16_t y, pai //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Quantum Painter Drivers +#ifdef QUANTUM_PAINTER_RGB565_SURFACE_ENABLE +# include "qp_rgb565_surface.h" +#endif // QUANTUM_PAINTER_RGB565_SURFACE_ENABLE + #ifdef QUANTUM_PAINTER_ILI9163_ENABLE # include "qp_ili9163.h" #endif // QUANTUM_PAINTER_ILI9163_ENABLE diff --git a/quantum/painter/qp_draw_image.c b/quantum/painter/qp_draw_image.c index 5822758dce9..e9b975f23a6 100644 --- a/quantum/painter/qp_draw_image.c +++ b/quantum/painter/qp_draw_image.c @@ -25,10 +25,10 @@ typedef struct qgf_image_handle_t { static qgf_image_handle_t image_descriptors[QUANTUM_PAINTER_NUM_IMAGES] = {0}; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// Quantum Painter External API: qp_load_image_mem +// Helper: load image from stream -painter_image_handle_t qp_load_image_mem(const void *buffer) { - qp_dprintf("qp_load_image_mem: entry\n"); +static painter_image_handle_t qp_load_image_internal(bool (*stream_factory)(qgf_image_handle_t *image, void *arg), void *arg) { + qp_dprintf("qp_load_image: entry\n"); qgf_image_handle_t *image = NULL; // Find a free slot @@ -41,20 +41,18 @@ painter_image_handle_t qp_load_image_mem(const void *buffer) { // Drop out if not found if (!image) { - qp_dprintf("qp_load_image_mem: fail (no free slot)\n"); + qp_dprintf("qp_load_image: fail (no free slot)\n"); return NULL; } - // Assume we can read the graphics descriptor - image->mem_stream = qp_make_memory_stream((void *)buffer, sizeof(qgf_graphics_descriptor_v1_t)); - - // Update the length of the stream to match, and rewind to the start - image->mem_stream.length = qgf_get_total_size(&image->stream); - image->mem_stream.position = 0; + if (!stream_factory(image, arg)) { + qp_dprintf("qp_load_image: fail (could not create stream)\n"); + return NULL; + } // Now that we know the length, validate the input data if (!qgf_validate_stream(&image->stream)) { - qp_dprintf("qp_load_image_mem: fail (failed validation)\n"); + qp_dprintf("qp_load_image: fail (failed validation)\n"); return NULL; } @@ -63,10 +61,30 @@ painter_image_handle_t qp_load_image_mem(const void *buffer) { // Validation success, we can return the handle image->validate_ok = true; - qp_dprintf("qp_load_image_mem: ok\n"); + qp_dprintf("qp_load_image: ok\n"); return (painter_image_handle_t)image; } +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Quantum Painter External API: qp_load_image_mem + +static inline bool image_mem_stream_factory(qgf_image_handle_t *image, void *arg) { + void *buffer = arg; + + // Assume we can read the graphics descriptor + image->mem_stream = qp_make_memory_stream((void *)buffer, sizeof(qgf_graphics_descriptor_v1_t)); + + // Update the length of the stream to match, and rewind to the start + image->mem_stream.length = qgf_get_total_size(&image->stream); + image->mem_stream.position = 0; + + return true; +} + +painter_image_handle_t qp_load_image_mem(const void *buffer) { + return qp_load_image_internal(image_mem_stream_factory, (void *)buffer); +} + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Quantum Painter External API: qp_close_image @@ -79,6 +97,7 @@ bool qp_close_image(painter_image_handle_t image) { // Free up this image for use elsewhere. qgf_image->validate_ok = false; + qp_stream_close(&qgf_image->stream); return true; } diff --git a/quantum/painter/qp_draw_text.c b/quantum/painter/qp_draw_text.c index f99e082cad2..0f5473abd00 100644 --- a/quantum/painter/qp_draw_text.c +++ b/quantum/painter/qp_draw_text.c @@ -36,10 +36,10 @@ typedef struct qff_font_handle_t { static qff_font_handle_t font_descriptors[QUANTUM_PAINTER_NUM_FONTS] = {0}; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// Quantum Painter External API: qp_load_font_mem +// Helper: load font from stream -painter_font_handle_t qp_load_font_mem(const void *buffer) { - qp_dprintf("qp_load_font_mem: entry\n"); +static painter_font_handle_t qp_load_font_internal(bool (*stream_factory)(qff_font_handle_t *font, void *arg), void *arg) { + qp_dprintf("qp_load_font: entry\n"); qff_font_handle_t *font = NULL; // Find a free slot @@ -52,20 +52,18 @@ painter_font_handle_t qp_load_font_mem(const void *buffer) { // Drop out if not found if (!font) { - qp_dprintf("qp_load_font_mem: fail (no free slot)\n"); + qp_dprintf("qp_load_font: fail (no free slot)\n"); return NULL; } - // Assume we can read the graphics descriptor - font->mem_stream = qp_make_memory_stream((void *)buffer, sizeof(qff_font_descriptor_v1_t)); - - // Update the length of the stream to match, and rewind to the start - font->mem_stream.length = qff_get_total_size(&font->stream); - font->mem_stream.position = 0; + if (!stream_factory(font, arg)) { + qp_dprintf("qp_load_font: fail (could not create stream)\n"); + return NULL; + } // Now that we know the length, validate the input data if (!qff_validate_stream(&font->stream)) { - qp_dprintf("qp_load_font_mem: fail (failed validation)\n"); + qp_dprintf("qp_load_font: fail (failed validation)\n"); return NULL; } @@ -76,12 +74,12 @@ painter_font_handle_t qp_load_font_mem(const void *buffer) { void *ram_buffer = malloc(font->mem_stream.length); if (ram_buffer == NULL) { - qp_dprintf("qp_load_font_mem: could not allocate enough RAM for font, falling back to original\n"); + qp_dprintf("qp_load_font: could not allocate enough RAM for font, falling back to original\n"); } else { do { // Copy the data into RAM if (qp_stream_read(ram_buffer, 1, font->mem_stream.length, &font->mem_stream) != font->mem_stream.length) { - qp_dprintf("qp_load_font_mem: could not copy from flash to RAM, falling back to original\n"); + qp_dprintf("qp_load_font: could not copy from flash to RAM, falling back to original\n"); break; } @@ -102,17 +100,37 @@ painter_font_handle_t qp_load_font_mem(const void *buffer) { qff_read_font_descriptor(&font->stream, &font->base.line_height, &font->has_ascii_table, &font->num_unicode_glyphs, &font->bpp, &font->has_palette, &font->compression_scheme, NULL); if (!qp_internal_bpp_capable(font->bpp)) { - qp_dprintf("qp_load_font_mem: fail (image bpp too high (%d), check QUANTUM_PAINTER_SUPPORTS_256_PALETTE)\n", (int)font->bpp); + qp_dprintf("qp_load_font: fail (image bpp too high (%d), check QUANTUM_PAINTER_SUPPORTS_256_PALETTE)\n", (int)font->bpp); qp_close_font((painter_font_handle_t)font); return NULL; } // Validation success, we can return the handle font->validate_ok = true; - qp_dprintf("qp_load_font_mem: ok\n"); + qp_dprintf("qp_load_font: ok\n"); return (painter_font_handle_t)font; } +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Quantum Painter External API: qp_load_font_mem + +static inline bool font_mem_stream_factory(qff_font_handle_t *font, void *arg) { + void *buffer = arg; + + // Assume we can read the graphics descriptor + font->mem_stream = qp_make_memory_stream(buffer, sizeof(qff_font_descriptor_v1_t)); + + // Update the length of the stream to match, and rewind to the start + font->mem_stream.length = qff_get_total_size(&font->stream); + font->mem_stream.position = 0; + + return true; +} + +painter_font_handle_t qp_load_font_mem(const void *buffer) { + return qp_load_font_internal(font_mem_stream_factory, (void *)buffer); +} + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Quantum Painter External API: qp_close_font @@ -133,6 +151,7 @@ bool qp_close_font(painter_font_handle_t font) { #endif // QUANTUM_PAINTER_LOAD_FONTS_TO_RAM // Free up this font for use elsewhere. + qp_stream_close(&qff_font->stream); qff_font->validate_ok = false; return true; } diff --git a/quantum/painter/qp_stream.c b/quantum/painter/qp_stream.c index f00ae5ed38e..1198cf793db 100644 --- a/quantum/painter/qp_stream.c +++ b/quantum/painter/qp_stream.c @@ -38,7 +38,7 @@ uint32_t qp_stream_write_impl(const void *input_buf, uint32_t member_size, uint3 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Memory streams -int16_t mem_get(qp_stream_t *stream) { +static inline int16_t mem_get(qp_stream_t *stream) { qp_memory_stream_t *s = (qp_memory_stream_t *)stream; if (s->position >= s->length) { s->is_eof = true; @@ -47,7 +47,7 @@ int16_t mem_get(qp_stream_t *stream) { return s->buffer[s->position++]; } -bool mem_put(qp_stream_t *stream, uint8_t c) { +static inline bool mem_put(qp_stream_t *stream, uint8_t c) { qp_memory_stream_t *s = (qp_memory_stream_t *)stream; if (s->position >= s->length) { s->is_eof = true; @@ -57,7 +57,7 @@ bool mem_put(qp_stream_t *stream, uint8_t c) { return true; } -int mem_seek(qp_stream_t *stream, int32_t offset, int origin) { +static inline int mem_seek(qp_stream_t *stream, int32_t offset, int origin) { qp_memory_stream_t *s = (qp_memory_stream_t *)stream; // Handle as per fseek @@ -95,26 +95,23 @@ int mem_seek(qp_stream_t *stream, int32_t offset, int origin) { return 0; } -int32_t mem_tell(qp_stream_t *stream) { +static inline int32_t mem_tell(qp_stream_t *stream) { qp_memory_stream_t *s = (qp_memory_stream_t *)stream; return s->position; } -bool mem_is_eof(qp_stream_t *stream) { +static inline bool mem_is_eof(qp_stream_t *stream) { qp_memory_stream_t *s = (qp_memory_stream_t *)stream; return s->is_eof; } +static inline void mem_close(qp_stream_t *stream) { + // No-op. +} + qp_memory_stream_t qp_make_memory_stream(void *buffer, int32_t length) { qp_memory_stream_t stream = { - .base = - { - .get = mem_get, - .put = mem_put, - .seek = mem_seek, - .tell = mem_tell, - .is_eof = mem_is_eof, - }, + .base = {.get = mem_get, .put = mem_put, .seek = mem_seek, .tell = mem_tell, .is_eof = mem_is_eof, .close = mem_close}, .buffer = (uint8_t *)buffer, .length = length, .position = 0, @@ -127,43 +124,41 @@ qp_memory_stream_t qp_make_memory_stream(void *buffer, int32_t length) { #ifdef QP_STREAM_HAS_FILE_IO -int16_t file_get(qp_stream_t *stream) { +static inline int16_t file_get(qp_stream_t *stream) { qp_file_stream_t *s = (qp_file_stream_t *)stream; int c = fgetc(s->file); if (c < 0 || feof(s->file)) return STREAM_EOF; return (uint16_t)c; } -bool file_put(qp_stream_t *stream, uint8_t c) { +static inline bool file_put(qp_stream_t *stream, uint8_t c) { qp_file_stream_t *s = (qp_file_stream_t *)stream; return fputc(c, s->file) == c; } -int file_seek(qp_stream_t *stream, int32_t offset, int origin) { +static inline int file_seek(qp_stream_t *stream, int32_t offset, int origin) { qp_file_stream_t *s = (qp_file_stream_t *)stream; return fseek(s->file, offset, origin); } -int32_t file_tell(qp_stream_t *stream) { +static inline int32_t file_tell(qp_stream_t *stream) { qp_file_stream_t *s = (qp_file_stream_t *)stream; return (int32_t)ftell(s->file); } -bool file_is_eof(qp_stream_t *stream) { +static inline bool file_is_eof(qp_stream_t *stream) { qp_file_stream_t *s = (qp_file_stream_t *)stream; return (bool)feof(s->file); } +static inline void file_close(qp_stream_t *stream) { + qp_file_stream_t *s = (qp_file_stream_t *)stream; + fclose(s->file); +} + qp_file_stream_t qp_make_file_stream(FILE *f) { qp_file_stream_t stream = { - .base = - { - .get = file_get, - .put = file_put, - .seek = file_seek, - .tell = file_tell, - .is_eof = file_is_eof, - }, + .base = {.get = file_get, .put = file_put, .seek = file_seek, .tell = file_tell, .is_eof = file_is_eof, .close = file_close}, .file = f, }; return stream; diff --git a/quantum/painter/qp_stream.h b/quantum/painter/qp_stream.h index 878b9bf5308..c0e745adc1d 100644 --- a/quantum/painter/qp_stream.h +++ b/quantum/painter/qp_stream.h @@ -41,6 +41,8 @@ typedef struct qp_stream_t qp_stream_t; uint32_t qp_stream_read_impl(void *output_buf, uint32_t member_size, uint32_t num_members, qp_stream_t *stream); uint32_t qp_stream_write_impl(const void *input_buf, uint32_t member_size, uint32_t num_members, qp_stream_t *stream); +#define qp_stream_close(stream_ptr) (((qp_stream_t *)(stream_ptr))->close((qp_stream_t *)(stream_ptr))) + #define STREAM_EOF ((int16_t)(-1)) //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -52,6 +54,7 @@ struct qp_stream_t { int (*seek)(qp_stream_t *stream, int32_t offset, int origin); int32_t (*tell)(qp_stream_t *stream); bool (*is_eof)(qp_stream_t *stream); + void (*close)(qp_stream_t *stream); }; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -77,6 +80,6 @@ typedef struct qp_file_stream_t { FILE * file; } qp_file_stream_t; -qp_file_stream_t qo_make_file_stream(FILE *f); +qp_file_stream_t qp_make_file_stream(FILE *f); #endif // QP_STREAM_HAS_FILE_IO diff --git a/quantum/painter/rules.mk b/quantum/painter/rules.mk index 4420bccf63c..5ac374a96ea 100644 --- a/quantum/painter/rules.mk +++ b/quantum/painter/rules.mk @@ -3,7 +3,15 @@ QUANTUM_PAINTER_DRIVERS ?= QUANTUM_PAINTER_ANIMATIONS_ENABLE ?= yes # The list of permissible drivers that can be listed in QUANTUM_PAINTER_DRIVERS -VALID_QUANTUM_PAINTER_DRIVERS := ili9163_spi ili9341_spi ili9488_spi st7789_spi st7735_spi gc9a01_spi ssd1351_spi +VALID_QUANTUM_PAINTER_DRIVERS := \ + rgb565_surface \ + ili9163_spi \ + ili9341_spi \ + ili9488_spi \ + st7735_spi \ + st7789_spi \ + gc9a01_spi \ + ssd1351_spi #------------------------------------------------------------------------------- @@ -40,6 +48,13 @@ define handle_quantum_painter_driver ifeq ($$(filter $$(strip $$(CURRENT_PAINTER_DRIVER)),$$(VALID_QUANTUM_PAINTER_DRIVERS)),) $$(error "$$(CURRENT_PAINTER_DRIVER)" is not a valid Quantum Painter driver) + else ifeq ($$(strip $$(CURRENT_PAINTER_DRIVER)),rgb565_surface) + OPT_DEFS += -DQUANTUM_PAINTER_RGB565_SURFACE_ENABLE + COMMON_VPATH += \ + $(DRIVER_PATH)/painter/generic + SRC += \ + $(DRIVER_PATH)/painter/generic/qp_rgb565_surface.c \ + else ifeq ($$(strip $$(CURRENT_PAINTER_DRIVER)),ili9163_spi) QUANTUM_PAINTER_NEEDS_COMMS_SPI := yes QUANTUM_PAINTER_NEEDS_COMMS_SPI_DC_RESET := yes @@ -73,17 +88,6 @@ define handle_quantum_painter_driver $(DRIVER_PATH)/painter/tft_panel/qp_tft_panel.c \ $(DRIVER_PATH)/painter/ili9xxx/qp_ili9488.c \ - else ifeq ($$(strip $$(CURRENT_PAINTER_DRIVER)),st7789_spi) - QUANTUM_PAINTER_NEEDS_COMMS_SPI := yes - QUANTUM_PAINTER_NEEDS_COMMS_SPI_DC_RESET := yes - OPT_DEFS += -DQUANTUM_PAINTER_ST7789_ENABLE -DQUANTUM_PAINTER_ST7789_SPI_ENABLE - COMMON_VPATH += \ - $(DRIVER_PATH)/painter/tft_panel \ - $(DRIVER_PATH)/painter/st77xx - SRC += \ - $(DRIVER_PATH)/painter/tft_panel/qp_tft_panel.c \ - $(DRIVER_PATH)/painter/st77xx/qp_st7789.c - else ifeq ($$(strip $$(CURRENT_PAINTER_DRIVER)),st7735_spi) QUANTUM_PAINTER_NEEDS_COMMS_SPI := yes QUANTUM_PAINTER_NEEDS_COMMS_SPI_DC_RESET := yes @@ -95,6 +99,17 @@ define handle_quantum_painter_driver $(DRIVER_PATH)/painter/tft_panel/qp_tft_panel.c \ $(DRIVER_PATH)/painter/st77xx/qp_st7735.c + else ifeq ($$(strip $$(CURRENT_PAINTER_DRIVER)),st7789_spi) + QUANTUM_PAINTER_NEEDS_COMMS_SPI := yes + QUANTUM_PAINTER_NEEDS_COMMS_SPI_DC_RESET := yes + OPT_DEFS += -DQUANTUM_PAINTER_ST7789_ENABLE -DQUANTUM_PAINTER_ST7789_SPI_ENABLE + COMMON_VPATH += \ + $(DRIVER_PATH)/painter/tft_panel \ + $(DRIVER_PATH)/painter/st77xx + SRC += \ + $(DRIVER_PATH)/painter/tft_panel/qp_tft_panel.c \ + $(DRIVER_PATH)/painter/st77xx/qp_st7789.c + else ifeq ($$(strip $$(CURRENT_PAINTER_DRIVER)),gc9a01_spi) QUANTUM_PAINTER_NEEDS_COMMS_SPI := yes QUANTUM_PAINTER_NEEDS_COMMS_SPI_DC_RESET := yes diff --git a/quantum/pointing_device/pointing_device.c b/quantum/pointing_device/pointing_device.c index ae3f122e89f..6981f850d09 100644 --- a/quantum/pointing_device/pointing_device.c +++ b/quantum/pointing_device/pointing_device.c @@ -144,7 +144,11 @@ __attribute__((weak)) void pointing_device_init(void) { { pointing_device_driver.init(); #ifdef POINTING_DEVICE_MOTION_PIN +# ifdef POINTING_DEVICE_MOTION_PIN_ACTIVE_LOW setPinInputHigh(POINTING_DEVICE_MOTION_PIN); +# else + setPinInput(POINTING_DEVICE_MOTION_PIN); +# endif #endif } @@ -236,7 +240,11 @@ __attribute__((weak)) void pointing_device_task(void) { # if defined(SPLIT_POINTING_ENABLE) # error POINTING_DEVICE_MOTION_PIN not supported when sharing the pointing device report between sides. # endif +# ifdef POINTING_DEVICE_MOTION_PIN_ACTIVE_LOW if (!readPin(POINTING_DEVICE_MOTION_PIN)) +# else + if (readPin(POINTING_DEVICE_MOTION_PIN)) +# endif #endif #if defined(SPLIT_POINTING_ENABLE) @@ -267,6 +275,10 @@ __attribute__((weak)) void pointing_device_task(void) { #else local_mouse_report = pointing_device_adjust_by_defines(local_mouse_report); local_mouse_report = pointing_device_task_kb(local_mouse_report); +#endif + // automatic mouse layer function +#ifdef POINTING_DEVICE_AUTO_MOUSE_ENABLE + pointing_device_task_auto_mouse(local_mouse_report); #endif // combine with mouse report to ensure that the combined is sent correctly #ifdef MOUSEKEY_ENABLE diff --git a/quantum/pointing_device/pointing_device.h b/quantum/pointing_device/pointing_device.h index 77db5471eac..27a3f95e32a 100644 --- a/quantum/pointing_device/pointing_device.h +++ b/quantum/pointing_device/pointing_device.h @@ -21,20 +21,28 @@ along with this program. If not, see . #include "host.h" #include "report.h" +#ifdef POINTING_DEVICE_AUTO_MOUSE_ENABLE +# include "pointing_device_auto_mouse.h" +#endif + #if defined(POINTING_DEVICE_DRIVER_adns5050) # include "drivers/sensors/adns5050.h" +# define POINTING_DEVICE_MOTION_PIN_ACTIVE_LOW #elif defined(POINTING_DEVICE_DRIVER_adns9800) # include "spi_master.h" # include "drivers/sensors/adns9800.h" +# define POINTING_DEVICE_MOTION_PIN_ACTIVE_LOW #elif defined(POINTING_DEVICE_DRIVER_analog_joystick) # include "analog.h" # include "drivers/sensors/analog_joystick.h" +# define POINTING_DEVICE_MOTION_PIN_ACTIVE_LOW #elif defined(POINTING_DEVICE_DRIVER_cirque_pinnacle_i2c) || defined(POINTING_DEVICE_DRIVER_cirque_pinnacle_spi) # include "drivers/sensors/cirque_pinnacle.h" # include "drivers/sensors/cirque_pinnacle_gestures.h" # include "pointing_device_gestures.h" #elif defined(POINTING_DEVICE_DRIVER_paw3204) # include "drivers/sensors/paw3204.h" +# define POINTING_DEVICE_MOTION_PIN_ACTIVE_LOW #elif defined(POINTING_DEVICE_DRIVER_pimoroni_trackball) # include "i2c_master.h" # include "drivers/sensors/pimoroni_trackball.h" @@ -48,9 +56,11 @@ along with this program. If not, see . # ifdef PIMORONI_TRACKBALL_ROTATE # define POINTING_DEVICE_ROTATION_90 # endif +# define POINTING_DEVICE_MOTION_PIN_ACTIVE_LOW #elif defined(POINTING_DEVICE_DRIVER_pmw3360) || defined(POINTING_DEVICE_DRIVER_pmw3389) # include "spi_master.h" # include "drivers/sensors/pmw33xx_common.h" +# define POINTING_DEVICE_MOTION_PIN_ACTIVE_LOW #else void pointing_device_driver_init(void); report_mouse_t pointing_device_driver_get_report(report_mouse_t mouse_report); diff --git a/quantum/pointing_device/pointing_device_auto_mouse.c b/quantum/pointing_device/pointing_device_auto_mouse.c new file mode 100644 index 00000000000..edffd447874 --- /dev/null +++ b/quantum/pointing_device/pointing_device_auto_mouse.c @@ -0,0 +1,384 @@ +/* Copyright 2021 Christopher Courtney, aka Drashna Jael're (@drashna) + * Copyright 2022 Alabastard + * + * 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 . + */ + +#ifdef POINTING_DEVICE_AUTO_MOUSE_ENABLE + +# include "pointing_device_auto_mouse.h" + +/* local data structure for tracking auto mouse */ +static auto_mouse_context_t auto_mouse_context = {.config.layer = (uint8_t)AUTO_MOUSE_DEFAULT_LAYER}; + +/* local functions */ +static bool is_mouse_record(uint16_t keycode, keyrecord_t* record); +static void auto_mouse_reset(void); + +/* check for target layer deactivation overrides */ +static inline bool layer_hold_check(void) { + return get_auto_mouse_toggle() || +# ifndef NO_ACTION_ONESHOT + get_oneshot_layer() == (AUTO_MOUSE_TARGET_LAYER) || +# endif + false; +} + +/* check all layer activation criteria */ +static inline bool is_auto_mouse_active(void) { + return auto_mouse_context.status.is_activated || auto_mouse_context.status.mouse_key_tracker || layer_hold_check(); +} + +/** + * @brief Get auto mouse enable state + * + * Return is_enabled value + * + * @return bool true: auto mouse enabled false: auto mouse disabled + */ +bool get_auto_mouse_enable(void) { + return auto_mouse_context.config.is_enabled; +} + +/** + * @brief get current target layer index + * + * NOTE: (AUTO_MOUSE_TARGET_LAYER) is an alias for this function + * + * @return uint8_t target layer index + */ +uint8_t get_auto_mouse_layer(void) { + return auto_mouse_context.config.layer; +} + +/** + * @brief get layer_toggled value + * + * @return bool of current layer_toggled state + */ +bool get_auto_mouse_toggle(void) { + return auto_mouse_context.status.is_toggled; +} + +/** + * @brief Reset auto mouse context + * + * Clear timers and status + * + * NOTE: this will set is_toggled to false so careful when using it + */ +static void auto_mouse_reset(void) { + memset(&auto_mouse_context.status, 0, sizeof(auto_mouse_context.status)); + memset(&auto_mouse_context.timer, 0, sizeof(auto_mouse_context.timer)); +} + +/** + * @brief Set auto mouse enable state + * + * Set local auto mouse enabled state + * + * @param[in] state bool + */ +void set_auto_mouse_enable(bool enable) { + // skip if unchanged + if (auto_mouse_context.config.is_enabled == enable) return; + auto_mouse_context.config.is_enabled = enable; + auto_mouse_reset(); +} + +/** + * @brief Change target layer for auto mouse + * + * Sets input as the new target layer if different from current and resets auto mouse + * + * NOTE: remove_auto_mouse_layer(state, false) or auto_mouse_layer_off should be called + * before this function to avoid issues with layers getting stuck + * + * @param[in] layer uint8_t + */ +void set_auto_mouse_layer(uint8_t layer) { + // skip if unchanged + if (auto_mouse_context.config.layer == layer) return; + auto_mouse_context.config.layer = layer; + auto_mouse_reset(); +} + +/** + * @brief toggle mouse layer setting + * + * Change state of local layer_toggled bool meant to track when the mouse layer is toggled on by other means + * + * NOTE: While is_toggled is true it will prevent deactiving target layer (but not activation) + */ +void auto_mouse_toggle(void) { + auto_mouse_context.status.is_toggled ^= 1; + auto_mouse_context.timer.delay = 0; +} + +/** + * @brief Remove current auto mouse target layer from layer state + * + * Will remove auto mouse target layer from given layer state if appropriate. + * + * NOTE: Removal can be forced, ignoring appropriate critera + * + * @params state[in] layer_state_t original layer state + * @params force[in] bool force removal + * + * @return layer_state_t modified layer state + */ +layer_state_t remove_auto_mouse_layer(layer_state_t state, bool force) { + if (force || ((AUTO_MOUSE_ENABLED) && !layer_hold_check())) { + state &= ~((layer_state_t)1 << (AUTO_MOUSE_TARGET_LAYER)); + } + return state; +} + +/** + * @brief Disable target layer + * + * Will disable target layer if appropriate. + * NOTE: NOT TO BE USED in layer_state_set stack!!! + */ +void auto_mouse_layer_off(void) { + if (layer_state_is((AUTO_MOUSE_TARGET_LAYER)) && (AUTO_MOUSE_ENABLED) && !layer_hold_check()) { + layer_off((AUTO_MOUSE_TARGET_LAYER)); + } +} + +/** + * @brief Weak function to handel testing if pointing_device is active + * + * Will trigger target layer activation(if delay timer has expired) and prevent deactivation when true. + * May be replaced by bool in report_mouse_t in future + * + * NOTE: defined weakly to allow for changing and adding conditions for specific hardware/customization + * + * @param[in] mouse_report report_mouse_t + * @return bool of pointing_device activation + */ +__attribute__((weak)) bool auto_mouse_activation(report_mouse_t mouse_report) { + return mouse_report.x != 0 || mouse_report.y != 0 || mouse_report.h != 0 || mouse_report.v != 0 || mouse_report.buttons; +} + +/** + * @brief Update the auto mouse based on mouse_report + * + * Handel activation/deactivation of target layer based on auto_mouse_activation and state timers and local key/layer tracking data + * + * @param[in] mouse_report report_mouse_t + */ +void pointing_device_task_auto_mouse(report_mouse_t mouse_report) { + // skip if disabled, delay timer running, or debounce + if (!(AUTO_MOUSE_ENABLED) || timer_elapsed(auto_mouse_context.timer.active) <= AUTO_MOUSE_DEBOUNCE || timer_elapsed(auto_mouse_context.timer.delay) <= AUTO_MOUSE_DELAY) { + return; + } + // update activation and reset debounce + auto_mouse_context.status.is_activated = auto_mouse_activation(mouse_report); + if (is_auto_mouse_active()) { + auto_mouse_context.timer.active = timer_read(); + auto_mouse_context.timer.delay = 0; + if (!layer_state_is((AUTO_MOUSE_TARGET_LAYER))) { + layer_on((AUTO_MOUSE_TARGET_LAYER)); + } + } else if (layer_state_is((AUTO_MOUSE_TARGET_LAYER)) && timer_elapsed(auto_mouse_context.timer.active) > AUTO_MOUSE_TIME) { + layer_off((AUTO_MOUSE_TARGET_LAYER)); + auto_mouse_context.timer.active = 0; + } +} + +/** + * @brief Handle mouskey event + * + * Increments/decrements mouse_key_tracker and restart active timer + * + * @param[in] pressed bool + */ +void auto_mouse_keyevent(bool pressed) { + if (pressed) { + auto_mouse_context.status.mouse_key_tracker++; + } else { + auto_mouse_context.status.mouse_key_tracker--; + } + auto_mouse_context.timer.delay = 0; +} + +/** + * @brief Handle auto mouse non mousekey reset + * + * Start/restart delay timer and reset auto mouse on keydown as well as turn the + * target layer off if on and reset toggle status + * + * NOTE: NOT TO BE USED in layer_state_set stack!!! + * + * @param[in] pressed bool + */ +void auto_mouse_reset_trigger(bool pressed) { + if (pressed) { + if (layer_state_is((AUTO_MOUSE_TARGET_LAYER))) { + layer_off((AUTO_MOUSE_TARGET_LAYER)); + }; + auto_mouse_reset(); + } + auto_mouse_context.timer.delay = timer_read(); +} + +/** + * @brief handle key events processing for auto mouse + * + * Will process keys differently depending on if key is defined as mousekey or not. + * Some keys have built in behaviour(not overwritable): + * mouse buttons : auto_mouse_keyevent() + * non-mouse keys : auto_mouse_reset_trigger() + * mod keys : skip auto mouse key processing + * mod tap : skip on hold (mod keys) + * QK mods e.g. LCTL(kc): default to non-mouse key, add at kb/user level as needed + * non target layer keys: skip auto mouse key processing (same as mod keys) + * MO(target layer) : auto_mouse_keyevent() + * target layer toggles : auto_mouse_toggle() (on both key up and keydown) + * target layer tap : default processing on tap mouse key on hold + * all other keycodes : default to non-mouse key, add at kb/user level as needed + * + * Will deactivate target layer once a non mouse key is pressed if nothing is holding the layer active + * such as held mousekey, toggled current target layer, or auto_mouse_activation is true + * + * @params keycode[in] uint16_t + * @params record[in] keyrecord_t pointer + */ +bool process_auto_mouse(uint16_t keycode, keyrecord_t* record) { + // skip if not enabled or mouse_layer not set + if (!(AUTO_MOUSE_ENABLED)) return true; + + switch (keycode) { + // Skip Mod keys to avoid layer reset + case KC_LEFT_CTRL ... KC_RIGHT_GUI: + case QK_MODS ... QK_MODS_MAX: + break; + // TO((AUTO_MOUSE_TARGET_LAYER))------------------------------------------------------------------------------- + case QK_TO ... QK_TO_MAX: // same proccessing as next + // TG((AUTO_MOUSE_TARGET_LAYER))------------------------------------------------------------------------------- + case QK_TOGGLE_LAYER ... QK_TOGGLE_LAYER_MAX: + if ((keycode & 0xff) == (AUTO_MOUSE_TARGET_LAYER)) { + if (!(record->event.pressed)) auto_mouse_toggle(); + } + break; + // MO((AUTO_MOUSE_TARGET_LAYER))------------------------------------------------------------------------------- + case QK_MOMENTARY ... QK_MOMENTARY_MAX: + if ((keycode & 0xff) == (AUTO_MOUSE_TARGET_LAYER)) { + auto_mouse_keyevent(record->event.pressed); + } + // DF --------------------------------------------------------------------------------------------------------- + case QK_DEF_LAYER ... QK_DEF_LAYER_MAX: +# ifndef NO_ACTION_ONESHOT + // OSL((AUTO_MOUSE_TARGET_LAYER))------------------------------------------------------------------------------ + case QK_ONE_SHOT_LAYER ... QK_ONE_SHOT_LAYER_MAX: + case QK_ONE_SHOT_MOD ... QK_ONE_SHOT_MOD_MAX: +# endif + break; + // LM((AUTO_MOUSE_TARGET_LAYER), mod)-------------------------------------------------------------------------- + case QK_LAYER_MOD ... QK_LAYER_MOD_MAX: + if (((keycode >> 8) & 0x0f) == (AUTO_MOUSE_TARGET_LAYER)) { + auto_mouse_keyevent(record->event.pressed); + } + break; + // TT((AUTO_MOUSE_TARGET_LAYER))--------------------------------------------------------------------------- +# ifndef NO_ACTION_TAPPING + case QK_LAYER_TAP_TOGGLE ... QK_LAYER_TAP_TOGGLE_MAX: + if ((keycode & 0xff) == (AUTO_MOUSE_TARGET_LAYER)) { + auto_mouse_keyevent(record->event.pressed); +# if TAPPING_TOGGLE != 0 + if (record->tap.count == TAPPING_TOGGLE) { + if (record->event.pressed) { + auto_mouse_context.status.mouse_key_tracker--; + } else { + auto_mouse_toggle(); + auto_mouse_context.status.mouse_key_tracker++; + } + } +# endif + } + break; + // LT((AUTO_MOUSE_TARGET_LAYER), kc)--------------------------------------------------------------------------- + case QK_LAYER_TAP ... QK_LAYER_TAP_MAX: + if (!record->tap.count) { + if (((keycode >> 8) & 0x0f) == (AUTO_MOUSE_TARGET_LAYER)) { + auto_mouse_keyevent(record->event.pressed); + } + break; + } + // MT(kc) only skip on hold + case QK_MOD_TAP ... QK_MOD_TAP_MAX: + if (!record->tap.count) break; +# endif + // QK_MODS goes to default + default: + // skip on no event + if (IS_NOEVENT(record->event)) break; + // check if keyrecord is mousekey + if (is_mouse_record(keycode, record)) { + auto_mouse_keyevent(record->event.pressed); + } else if (!is_auto_mouse_active()) { + // all non-mousekey presses restart delay timer and reset status + auto_mouse_reset_trigger(record->event.pressed); + } + } + if (auto_mouse_context.status.mouse_key_tracker < 0) { + auto_mouse_context.status.mouse_key_tracker = 0; + dprintf("key tracker error (<0) \n"); + } + return true; +} + +/** + * @brief Local function to handle checking if a keycode is a mouse button + * + * Starts code stack for checking keyrecord if defined as mousekey + * + * @params keycode[in] uint16_t + * @params record[in] keyrecord_t pointer + * @return bool true: keyrecord is mousekey false: keyrecord is not mousekey + */ +static bool is_mouse_record(uint16_t keycode, keyrecord_t* record) { + // allow for keyboard to hook in and override if need be + if (is_mouse_record_kb(keycode, record) || IS_MOUSEKEY(keycode)) return true; + return false; +} + +/** + * @brief Weakly defined keyboard level callback for adding keyrecords as mouse keys + * + * Meant for redefinition at keyboard level and should return is_mouse_record_user by default at end of function + * + * @params keycode[in] uint16_t + * @params record[in] keyrecord_t pointer + * @return bool true: keyrecord is defined as mouse key false: keyrecord is not defined as mouse key + */ +__attribute__((weak)) bool is_mouse_record_kb(uint16_t keycode, keyrecord_t* record) { + return is_mouse_record_user(keycode, record); +} + +/** + * @brief Weakly defined keymap/user level callback for adding keyrecords as mouse keys + * + * Meant for redefinition at keymap/user level and should return false by default at end of function + * + * @params keycode[in] uint16_t + * @params record[in] keyrecord_t pointer + * @return bool true: keyrecord is defined as mouse key false: keyrecord is not defined as mouse key + */ +__attribute__((weak)) bool is_mouse_record_user(uint16_t keycode, keyrecord_t* record) { + return false; +} + +#endif // POINTING_DEVICE_AUTO_MOUSE_ENABLE diff --git a/quantum/pointing_device/pointing_device_auto_mouse.h b/quantum/pointing_device/pointing_device_auto_mouse.h new file mode 100644 index 00000000000..0f26af79e67 --- /dev/null +++ b/quantum/pointing_device/pointing_device_auto_mouse.h @@ -0,0 +1,87 @@ +/* Copyright 2022 Alabastard + * + * 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 + +#include "quantum.h" +#include "pointing_device.h" +#include "print.h" + +/* check settings and set defaults */ +#ifndef POINTING_DEVICE_AUTO_MOUSE_ENABLE +# error "POINTING_DEVICE_AUTO_MOUSE_ENABLE not defined! check config settings" +#endif + +#ifndef AUTO_MOUSE_DEFAULT_LAYER +# define AUTO_MOUSE_DEFAULT_LAYER 1 +#endif +#ifndef AUTO_MOUSE_TIME +# define AUTO_MOUSE_TIME 650 +#endif +#ifndef AUTO_MOUSE_DELAY +# define AUTO_MOUSE_DELAY GET_TAPPING_TERM(KC_MS_BTN1, &(keyrecord_t){}) +#endif +#ifndef AUTO_MOUSE_DEBOUNCE +# define AUTO_MOUSE_DEBOUNCE 25 +#endif + +/* data structure */ +typedef struct { + struct { + bool is_enabled; + uint8_t layer; + } config; + struct { + uint16_t active; + uint16_t delay; + } timer; + struct { + bool is_activated; + bool is_toggled; + int8_t mouse_key_tracker; + } status; +} auto_mouse_context_t; + +/* ----------Set up and control------------------------------------------------------------------------------ */ +void set_auto_mouse_enable(bool enable); // enable/disable auto mouse feature +bool get_auto_mouse_enable(void); // get auto_mouse_enable +void set_auto_mouse_layer(uint8_t layer); // set target layer by index +uint8_t get_auto_mouse_layer(void); // get target layer index +void auto_mouse_layer_off(void); // disable target layer if appropriate (DO NOT USE in layer_state_set stack!!) +layer_state_t remove_auto_mouse_layer(layer_state_t state, bool force); // remove auto mouse target layer from state if appropriate (can be forced) + +/* ----------For custom pointing device activation----------------------------------------------------------- */ +bool auto_mouse_activation(report_mouse_t mouse_report); // handles pointing device trigger conditions for target layer activation (overwritable) + +/* ----------Handling keyevents------------------------------------------------------------------------------ */ +void auto_mouse_keyevent(bool pressed); // trigger auto mouse keyevent: mouse_keytracker increment/decrement on press/release +void auto_mouse_reset_trigger(bool pressed); // trigger non mouse keyevent: reset and start delay timer (DO NOT USE in layer_state_set stack!!) +void auto_mouse_toggle(void); // toggle mouse layer flag disables mouse layer deactivation while on (meant for tap toggle or toggle of target) +bool get_auto_mouse_toggle(void); // get toggle mouse layer flag value + +/* ----------Callbacks for adding keycodes to mouse record checking------------------------------------------ */ +bool is_mouse_record_kb(uint16_t keycode, keyrecord_t* record); +bool is_mouse_record_user(uint16_t keycode, keyrecord_t* record); + +/* ----------Core functions (only used in custom pointing devices or key processing)------------------------- */ +void pointing_device_task_auto_mouse(report_mouse_t mouse_report); // add to pointing_device_task_* +bool process_auto_mouse(uint16_t keycode, keyrecord_t* record); // add to process_record_* + +/* ----------Macros/Aliases---------------------------------------------------------------------------------- */ +#define AUTO_MOUSE_TARGET_LAYER get_auto_mouse_layer() +#define AUTO_MOUSE_ENABLED get_auto_mouse_enable() diff --git a/quantum/pointing_device/pointing_device_drivers.c b/quantum/pointing_device/pointing_device_drivers.c index d7e0b909175..172c9f36d72 100644 --- a/quantum/pointing_device/pointing_device_drivers.c +++ b/quantum/pointing_device/pointing_device_drivers.c @@ -113,6 +113,15 @@ void cirque_pinnacle_configure_cursor_glide(float trigger_px) { # endif # if CIRQUE_PINNACLE_POSITION_MODE + +# ifdef POINTING_DEVICE_AUTO_MOUSE_ENABLE +static bool is_touch_down; + +bool auto_mouse_activation(report_mouse_t mouse_report) { + return is_touch_down || mouse_report.x != 0 || mouse_report.y != 0 || mouse_report.h != 0 || mouse_report.v != 0 || mouse_report.buttons; +} +# endif + report_mouse_t cirque_pinnacle_get_report(report_mouse_t mouse_report) { pinnacle_data_t touchData = cirque_pinnacle_read_data(); mouse_xy_report_t report_x = 0, report_y = 0; @@ -143,6 +152,10 @@ report_mouse_t cirque_pinnacle_get_report(report_mouse_t mouse_report) { pd_dprintf("cirque_pinnacle touchData x=%4d y=%4d z=%2d\n", touchData.xValue, touchData.yValue, touchData.zValue); } +# ifdef POINTING_DEVICE_AUTO_MOUSE_ENABLE + is_touch_down = touchData.touchDown; +# endif + // Scale coordinates to arbitrary X, Y resolution cirque_pinnacle_scale_data(&touchData, cirque_pinnacle_get_scale(), cirque_pinnacle_get_scale()); diff --git a/quantum/quantum.c b/quantum/quantum.c index 9f1d3502fb5..ff36e14775c 100644 --- a/quantum/quantum.c +++ b/quantum/quantum.c @@ -271,6 +271,9 @@ bool process_record_quantum(keyrecord_t *record) { #endif #if defined(VIA_ENABLE) process_record_via(keycode, record) && +#endif +#if defined(POINTING_DEVICE_ENABLE) && defined(POINTING_DEVICE_AUTO_MOUSE_ENABLE) + process_auto_mouse(keycode, record) && #endif process_record_kb(keycode, record) && #if defined(SECURE_ENABLE) diff --git a/quantum/rgb_matrix/animations/jellybean_raindrops_anim.h b/quantum/rgb_matrix/animations/jellybean_raindrops_anim.h index 31dffcbc5af..69bf265d144 100644 --- a/quantum/rgb_matrix/animations/jellybean_raindrops_anim.h +++ b/quantum/rgb_matrix/animations/jellybean_raindrops_anim.h @@ -13,7 +13,7 @@ bool JELLYBEAN_RAINDROPS(effect_params_t* params) { if (!params->init) { // Change one LED every tick, make sure speed is not 0 if (scale16by8(g_rgb_timer, qadd8(rgb_matrix_config.speed, 16)) % 5 == 0) { - jellybean_raindrops_set_color(rand() % DRIVER_LED_TOTAL, params); + jellybean_raindrops_set_color(rand() % RGB_MATRIX_LED_COUNT, params); } return false; } diff --git a/quantum/rgb_matrix/animations/pixel_flow_anim.h b/quantum/rgb_matrix/animations/pixel_flow_anim.h index 714f5d174e3..8628c3c2eca 100644 --- a/quantum/rgb_matrix/animations/pixel_flow_anim.h +++ b/quantum/rgb_matrix/animations/pixel_flow_anim.h @@ -7,7 +7,7 @@ RGB_MATRIX_EFFECT(PIXEL_FLOW) static bool PIXEL_FLOW(effect_params_t* params) { // LED state array - static RGB led[DRIVER_LED_TOTAL]; + static RGB led[RGB_MATRIX_LED_COUNT]; static uint32_t wait_timer = 0; if (wait_timer > g_rgb_timer) { @@ -21,7 +21,7 @@ static bool PIXEL_FLOW(effect_params_t* params) { if (params->init) { // Clear LEDs and fill the state array rgb_matrix_set_color_all(0, 0, 0); - for (uint8_t j = 0; j < DRIVER_LED_TOTAL; ++j) { + for (uint8_t j = 0; j < RGB_MATRIX_LED_COUNT; ++j) { led[j] = (random8() & 2) ? (RGB){0, 0, 0} : hsv_to_rgb((HSV){random8(), qadd8(random8() >> 1, 127), rgb_matrix_config.hsv.v}); } } diff --git a/quantum/rgb_matrix/animations/pixel_rain_anim.h b/quantum/rgb_matrix/animations/pixel_rain_anim.h index ce2528a26d8..fded60340f6 100644 --- a/quantum/rgb_matrix/animations/pixel_rain_anim.h +++ b/quantum/rgb_matrix/animations/pixel_rain_anim.h @@ -41,7 +41,7 @@ static bool PIXEL_RAIN(effect_params_t* params) { RGB_MATRIX_USE_LIMITS(led_min, led_max); if (g_rgb_timer > wait_timer) { - rain_pixel(mod8(random8(), DRIVER_LED_TOTAL), params, random8() & 2); + rain_pixel(mod8(random8(), RGB_MATRIX_LED_COUNT), params, random8() & 2); } return rgb_matrix_check_finished_leds(led_max); } diff --git a/quantum/rgb_matrix/animations/raindrops_anim.h b/quantum/rgb_matrix/animations/raindrops_anim.h index a508e51183f..6b92d649ad1 100644 --- a/quantum/rgb_matrix/animations/raindrops_anim.h +++ b/quantum/rgb_matrix/animations/raindrops_anim.h @@ -24,7 +24,7 @@ bool RAINDROPS(effect_params_t* params) { if (!params->init) { // Change one LED every tick, make sure speed is not 0 if (scale16by8(g_rgb_timer, qadd8(rgb_matrix_config.speed, 16)) % 10 == 0) { - raindrops_set_color(random8() % DRIVER_LED_TOTAL, params); + raindrops_set_color(random8() % RGB_MATRIX_LED_COUNT, params); } } else { for (int i = led_min; i < led_max; i++) { diff --git a/quantum/rgb_matrix/animations/typing_heatmap_anim.h b/quantum/rgb_matrix/animations/typing_heatmap_anim.h index a05c07760ec..00d137f1a6c 100644 --- a/quantum/rgb_matrix/animations/typing_heatmap_anim.h +++ b/quantum/rgb_matrix/animations/typing_heatmap_anim.h @@ -29,7 +29,7 @@ void process_rgb_matrix_typing_heatmap(uint8_t row, uint8_t col) { if (i_row == row && i_col == col) { g_rgb_frame_buffer[row][col] = qadd8(g_rgb_frame_buffer[row][col], 32); } else { -# define LED_DISTANCE(led_a, led_b) sqrt16(((int8_t)(led_a.x - led_b.x) * (int8_t)(led_a.x - led_b.x)) + ((int8_t)(led_a.y - led_b.y) * (int8_t)(led_a.y - led_b.y))) +# define LED_DISTANCE(led_a, led_b) sqrt16(((int16_t)(led_a.x - led_b.x) * (int16_t)(led_a.x - led_b.x)) + ((int16_t)(led_a.y - led_b.y) * (int16_t)(led_a.y - led_b.y))) uint8_t distance = LED_DISTANCE(g_led_config.point[g_led_config.matrix_co[row][col]], g_led_config.point[g_led_config.matrix_co[i_row][i_col]]); # undef LED_DISTANCE if (distance <= RGB_MATRIX_TYPING_HEATMAP_SPREAD) { diff --git a/quantum/rgb_matrix/rgb_matrix.c b/quantum/rgb_matrix/rgb_matrix.c index 27306868398..ae61e755352 100644 --- a/quantum/rgb_matrix/rgb_matrix.c +++ b/quantum/rgb_matrix/rgb_matrix.c @@ -202,7 +202,7 @@ void rgb_matrix_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { void rgb_matrix_set_color_all(uint8_t red, uint8_t green, uint8_t blue) { #if defined(RGB_MATRIX_ENABLE) && defined(RGB_MATRIX_SPLIT) - for (uint8_t i = 0; i < DRIVER_LED_TOTAL; i++) + for (uint8_t i = 0; i < RGB_MATRIX_LED_COUNT; i++) rgb_matrix_set_color(i, red, green, blue); #else rgb_matrix_driver.set_color_all(red, green, blue); @@ -461,13 +461,13 @@ void rgb_matrix_indicators_advanced(effect_params_t *params) { * and not sure which would be better. Otherwise, this should be called from * rgb_task_render, right before the iter++ line. */ -#if defined(RGB_MATRIX_LED_PROCESS_LIMIT) && RGB_MATRIX_LED_PROCESS_LIMIT > 0 && RGB_MATRIX_LED_PROCESS_LIMIT < DRIVER_LED_TOTAL +#if defined(RGB_MATRIX_LED_PROCESS_LIMIT) && RGB_MATRIX_LED_PROCESS_LIMIT > 0 && RGB_MATRIX_LED_PROCESS_LIMIT < RGB_MATRIX_LED_COUNT uint8_t min = RGB_MATRIX_LED_PROCESS_LIMIT * (params->iter - 1); uint8_t max = min + RGB_MATRIX_LED_PROCESS_LIMIT; - if (max > DRIVER_LED_TOTAL) max = DRIVER_LED_TOTAL; + if (max > RGB_MATRIX_LED_COUNT) max = RGB_MATRIX_LED_COUNT; #else uint8_t min = 0; - uint8_t max = DRIVER_LED_TOTAL; + uint8_t max = RGB_MATRIX_LED_COUNT; #endif rgb_matrix_indicators_advanced_kb(min, max); rgb_matrix_indicators_advanced_user(min, max); diff --git a/quantum/rgb_matrix/rgb_matrix.h b/quantum/rgb_matrix/rgb_matrix.h index fc9fc3e020e..0b35e98f45a 100644 --- a/quantum/rgb_matrix/rgb_matrix.h +++ b/quantum/rgb_matrix/rgb_matrix.h @@ -47,15 +47,15 @@ #endif #ifndef RGB_MATRIX_LED_PROCESS_LIMIT -# define RGB_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 +# define RGB_MATRIX_LED_PROCESS_LIMIT (RGB_MATRIX_LED_COUNT + 4) / 5 #endif -#if defined(RGB_MATRIX_LED_PROCESS_LIMIT) && RGB_MATRIX_LED_PROCESS_LIMIT > 0 && RGB_MATRIX_LED_PROCESS_LIMIT < DRIVER_LED_TOTAL +#if defined(RGB_MATRIX_LED_PROCESS_LIMIT) && RGB_MATRIX_LED_PROCESS_LIMIT > 0 && RGB_MATRIX_LED_PROCESS_LIMIT < RGB_MATRIX_LED_COUNT # if defined(RGB_MATRIX_SPLIT) # define RGB_MATRIX_USE_LIMITS(min, max) \ uint8_t min = RGB_MATRIX_LED_PROCESS_LIMIT * params->iter; \ uint8_t max = min + RGB_MATRIX_LED_PROCESS_LIMIT; \ - if (max > DRIVER_LED_TOTAL) max = DRIVER_LED_TOTAL; \ + if (max > RGB_MATRIX_LED_COUNT) max = RGB_MATRIX_LED_COUNT; \ uint8_t k_rgb_matrix_split[2] = RGB_MATRIX_SPLIT; \ if (is_keyboard_left() && (max > k_rgb_matrix_split[0])) max = k_rgb_matrix_split[0]; \ if (!(is_keyboard_left()) && (min < k_rgb_matrix_split[0])) min = k_rgb_matrix_split[0]; @@ -63,20 +63,20 @@ # define RGB_MATRIX_USE_LIMITS(min, max) \ uint8_t min = RGB_MATRIX_LED_PROCESS_LIMIT * params->iter; \ uint8_t max = min + RGB_MATRIX_LED_PROCESS_LIMIT; \ - if (max > DRIVER_LED_TOTAL) max = DRIVER_LED_TOTAL; + if (max > RGB_MATRIX_LED_COUNT) max = RGB_MATRIX_LED_COUNT; # endif #else # if defined(RGB_MATRIX_SPLIT) # define RGB_MATRIX_USE_LIMITS(min, max) \ uint8_t min = 0; \ - uint8_t max = DRIVER_LED_TOTAL; \ + uint8_t max = RGB_MATRIX_LED_COUNT; \ const uint8_t k_rgb_matrix_split[2] = RGB_MATRIX_SPLIT; \ if (is_keyboard_left() && (max > k_rgb_matrix_split[0])) max = k_rgb_matrix_split[0]; \ if (!(is_keyboard_left()) && (min < k_rgb_matrix_split[0])) min = k_rgb_matrix_split[0]; # else # define RGB_MATRIX_USE_LIMITS(min, max) \ uint8_t min = 0; \ - uint8_t max = DRIVER_LED_TOTAL; + uint8_t max = RGB_MATRIX_LED_COUNT; # endif #endif @@ -246,9 +246,9 @@ static inline bool rgb_matrix_check_finished_leds(uint8_t led_idx) { uint8_t k_rgb_matrix_split[2] = RGB_MATRIX_SPLIT; return led_idx < k_rgb_matrix_split[0]; } else - return led_idx < DRIVER_LED_TOTAL; + return led_idx < RGB_MATRIX_LED_COUNT; #else - return led_idx < DRIVER_LED_TOTAL; + return led_idx < RGB_MATRIX_LED_COUNT; #endif } diff --git a/quantum/rgb_matrix/rgb_matrix_drivers.c b/quantum/rgb_matrix/rgb_matrix_drivers.c index 99151e5a924..e75b2c6c9de 100644 --- a/quantum/rgb_matrix/rgb_matrix_drivers.c +++ b/quantum/rgb_matrix/rgb_matrix_drivers.c @@ -106,7 +106,7 @@ static void init(void) { # endif # endif - for (int index = 0; index < DRIVER_LED_TOTAL; index++) { + for (int index = 0; index < RGB_MATRIX_LED_COUNT; index++) { bool enabled = true; // This only caches it for later @@ -336,13 +336,13 @@ const rgb_matrix_driver_t rgb_matrix_driver = { # endif // LED color buffer -LED_TYPE rgb_matrix_ws2812_array[DRIVER_LED_TOTAL]; +LED_TYPE rgb_matrix_ws2812_array[RGB_MATRIX_LED_COUNT]; static void init(void) {} static void flush(void) { // Assumes use of RGB_DI_PIN - ws2812_setleds(rgb_matrix_ws2812_array, DRIVER_LED_TOTAL); + ws2812_setleds(rgb_matrix_ws2812_array, RGB_MATRIX_LED_COUNT); } // Set an led in the buffer to a color diff --git a/quantum/rgb_matrix/rgb_matrix_types.h b/quantum/rgb_matrix/rgb_matrix_types.h index d0ac4e4466f..eea603c41c9 100644 --- a/quantum/rgb_matrix/rgb_matrix_types.h +++ b/quantum/rgb_matrix/rgb_matrix_types.h @@ -78,8 +78,8 @@ typedef struct PACKED { typedef struct PACKED { uint8_t matrix_co[MATRIX_ROWS][MATRIX_COLS]; - led_point_t point[DRIVER_LED_TOTAL]; - uint8_t flags[DRIVER_LED_TOTAL]; + led_point_t point[RGB_MATRIX_LED_COUNT]; + uint8_t flags[RGB_MATRIX_LED_COUNT]; } led_config_t; typedef union { diff --git a/quantum/rgblight/rgblight.c b/quantum/rgblight/rgblight.c index e5d3a98bea5..73b352cea8d 100644 --- a/quantum/rgblight/rgblight.c +++ b/quantum/rgblight/rgblight.c @@ -16,7 +16,6 @@ #include #include #include -#include "wait.h" #include "progmem.h" #include "sync_timer.h" #include "rgblight.h" @@ -410,7 +409,6 @@ void rgblight_disable(void) { dprintf("rgblight disable [EEPROM]: rgblight_config.enable = %u\n", rgblight_config.enable); rgblight_timer_disable(); RGBLIGHT_SPLIT_SET_CHANGE_MODE; - wait_ms(50); rgblight_set(); } @@ -419,7 +417,6 @@ void rgblight_disable_noeeprom(void) { dprintf("rgblight disable [NOEEPROM]: rgblight_config.enable = %u\n", rgblight_config.enable); rgblight_timer_disable(); RGBLIGHT_SPLIT_SET_CHANGE_MODE; - wait_ms(50); rgblight_set(); } @@ -704,7 +701,6 @@ void rgblight_setrgb_range(uint8_t r, uint8_t g, uint8_t b, uint8_t start, uint8 #endif } rgblight_set(); - wait_ms(1); } void rgblight_sethsv_range(uint8_t hue, uint8_t sat, uint8_t val, uint8_t start, uint8_t end) { diff --git a/quantum/unicode/unicode.c b/quantum/unicode/unicode.c index f9f429e7afb..3f934c9277f 100644 --- a/quantum/unicode/unicode.c +++ b/quantum/unicode/unicode.c @@ -324,19 +324,26 @@ void register_hex(uint16_t hex) { } void register_hex32(uint32_t hex) { - bool onzerostart = true; + bool first_digit = true; + bool needs_leading_zero = (unicode_config.input_mode == UC_WINC); for (int i = 7; i >= 0; i--) { - if (i <= 3) { - onzerostart = false; - } + // Work out the digit we're going to transmit uint8_t digit = ((hex >> (i * 4)) & 0xF); - if (digit == 0) { - if (!onzerostart) { - send_nibble_wrapper(digit); - } - } else { + + // If we're still searching for the first digit, and found one + // that needs a leading zero sent out, send the zero. + if (first_digit && needs_leading_zero && digit > 9) { + send_nibble_wrapper(0); + } + + // Always send digits (including zero) if we're down to the last + // two bytes of nibbles. + bool must_send = i < 4; + + // If we've found a digit worth transmitting, do so. + if (digit != 0 || !first_digit || must_send) { send_nibble_wrapper(digit); - onzerostart = false; + first_digit = false; } } } diff --git a/tests/tap_hold_configurations/default_mod_tap/test_tap_hold.cpp b/tests/tap_hold_configurations/default_mod_tap/test_tap_hold.cpp index e7982656233..b70efe4aeda 100644 --- a/tests/tap_hold_configurations/default_mod_tap/test_tap_hold.cpp +++ b/tests/tap_hold_configurations/default_mod_tap/test_tap_hold.cpp @@ -213,7 +213,7 @@ TEST_F(DefaultTapHold, tap_and_hold_mod_tap_hold_key) { set_keymap({mod_tap_hold_key}); /* Press mod-tap-hold key. */ - EXPECT_REPORT(driver, (KC_LSHIFT)); + EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); mod_tap_hold_key.press(); idle_for(TAPPING_TERM + 1); testing::Mock::VerifyAndClearExpectations(&driver); diff --git a/tests/tap_hold_configurations/permissive_hold/test_tap_hold.cpp b/tests/tap_hold_configurations/permissive_hold/test_tap_hold.cpp index ef8d9a9c7f3..74e81f347f6 100644 --- a/tests/tap_hold_configurations/permissive_hold/test_tap_hold.cpp +++ b/tests/tap_hold_configurations/permissive_hold/test_tap_hold.cpp @@ -46,9 +46,9 @@ TEST_F(PermissiveHold, tap_regular_key_while_mod_tap_key_is_held) { testing::Mock::VerifyAndClearExpectations(&driver); /* Release regular key */ - EXPECT_REPORT(driver, (KC_LSHIFT)); - EXPECT_REPORT(driver, (KC_LSHIFT, regular_key.report_code)); - EXPECT_REPORT(driver, (KC_LSHIFT)); + EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); + EXPECT_REPORT(driver, (KC_LEFT_SHIFT, regular_key.report_code)); + EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); regular_key.release(); run_one_scan_loop(); testing::Mock::VerifyAndClearExpectations(&driver); @@ -81,9 +81,9 @@ TEST_F(PermissiveHold, tap_mod_tap_key_while_mod_tap_key_is_held) { testing::Mock::VerifyAndClearExpectations(&driver); /* Release second mod-tap-hold key */ - EXPECT_REPORT(driver, (KC_LSHIFT)); - EXPECT_REPORT(driver, (KC_LSHIFT, second_mod_tap_hold_key.report_code)); - EXPECT_REPORT(driver, (KC_LSHIFT)); + EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); + EXPECT_REPORT(driver, (KC_LEFT_SHIFT, second_mod_tap_hold_key.report_code)); + EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); second_mod_tap_hold_key.release(); run_one_scan_loop(); testing::Mock::VerifyAndClearExpectations(&driver); diff --git a/tests/tap_hold_configurations/retro_tapping/test_tap_hold.cpp b/tests/tap_hold_configurations/retro_tapping/test_tap_hold.cpp index dc0de0e44db..e08c600dbd0 100644 --- a/tests/tap_hold_configurations/retro_tapping/test_tap_hold.cpp +++ b/tests/tap_hold_configurations/retro_tapping/test_tap_hold.cpp @@ -42,7 +42,7 @@ TEST_F(RetroTapping, tap_and_hold_mod_tap_hold_key) { /* Release mod-tap-hold key. */ /* TODO: Why is LSHIFT send at all? */ - EXPECT_REPORT(driver, (KC_LSHIFT)); + EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); EXPECT_EMPTY_REPORT(driver); EXPECT_REPORT(driver, (KC_P)); EXPECT_EMPTY_REPORT(driver); diff --git a/tests/tap_hold_configurations/tapping_force_hold/test_tap_hold.cpp b/tests/tap_hold_configurations/tapping_force_hold/test_tap_hold.cpp index 2671862f2d8..604f9a4a544 100644 --- a/tests/tap_hold_configurations/tapping_force_hold/test_tap_hold.cpp +++ b/tests/tap_hold_configurations/tapping_force_hold/test_tap_hold.cpp @@ -205,7 +205,7 @@ TEST_F(TappingForceHold, tap_mod_tap_hold_key_twice_and_hold_on_second_time) { testing::Mock::VerifyAndClearExpectations(&driver); /* Release mod-tap-hold key. */ - EXPECT_REPORT(driver, (KC_LSHIFT)); + EXPECT_REPORT(driver, (KC_LEFT_SHIFT)); EXPECT_EMPTY_REPORT(driver); mod_tap_hold_key.release(); run_one_scan_loop(); diff --git a/users/brandonschlack/rgb_bs.c b/users/brandonschlack/rgb_bs.c index 94842021cd7..6b88503f412 100644 --- a/users/brandonschlack/rgb_bs.c +++ b/users/brandonschlack/rgb_bs.c @@ -98,7 +98,7 @@ void rgb_theme_layer(layer_state_t state) { #ifdef RGB_MATRIX_ENABLE void rgb_matrix_layer_helper (uint8_t red, uint8_t green, uint8_t blue, uint8_t led_type) { - for (int i = 0; i < DRIVER_LED_TOTAL; i++) { + for (int i = 0; i < RGB_MATRIX_LED_COUNT; i++) { if (!HAS_ANY_FLAGS(g_led_config.flags[i], led_type)) { rgb_matrix_set_color( i, red, green, blue ); } diff --git a/users/byungyoonc/saturated_solid_multisplash.h b/users/byungyoonc/saturated_solid_multisplash.h index f3023485247..c6850a78733 100644 --- a/users/byungyoonc/saturated_solid_multisplash.h +++ b/users/byungyoonc/saturated_solid_multisplash.h @@ -43,7 +43,7 @@ static bool saturated_solid_multisplash(effect_params_t* params) { RGB rgb = rgb_matrix_hsv_to_rgb(hsv); rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); } - return led_max < DRIVER_LED_TOTAL; + return led_max < RGB_MATRIX_LED_COUNT; } # endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS diff --git a/users/curry/rgb_matrix_user.c b/users/curry/rgb_matrix_user.c index 96f1f1d4f37..053226ab609 100644 --- a/users/curry/rgb_matrix_user.c +++ b/users/curry/rgb_matrix_user.c @@ -131,7 +131,7 @@ void rgb_matrix_layer_helper(uint8_t hue, uint8_t sat, uint8_t val, uint8_t mode uint16_t time = scale16by8(RGBLED_NUM, speed / 8); hsv.v = scale8(abs8(sin8(time) - 128) * 2, hsv.v); RGB rgb = hsv_to_rgb(hsv); - for (uint8_t i = 0; i < DRIVER_LED_TOTAL; i++) { + for (uint8_t i = 0; i < RGB_MATRIX_LED_COUNT; i++) { if (HAS_FLAGS(g_led_config.flags[i], led_type)) { rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); } @@ -141,7 +141,7 @@ void rgb_matrix_layer_helper(uint8_t hue, uint8_t sat, uint8_t val, uint8_t mode default: // Solid Color { RGB rgb = hsv_to_rgb(hsv); - for (uint8_t i = 0; i < DRIVER_LED_TOTAL; i++) { + for (uint8_t i = 0; i < RGB_MATRIX_LED_COUNT; i++) { if (HAS_FLAGS(g_led_config.flags[i], led_type)) { rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); } diff --git a/users/drashna/rgb/rgb_matrix_stuff.c b/users/drashna/rgb/rgb_matrix_stuff.c index 2c23c297846..64549d8fae5 100644 --- a/users/drashna/rgb/rgb_matrix_stuff.c +++ b/users/drashna/rgb/rgb_matrix_stuff.c @@ -20,7 +20,7 @@ void rgb_matrix_layer_helper(uint8_t hue, uint8_t sat, uint8_t val, uint8_t mode uint16_t time = scale16by8(g_rgb_timer, speed / 8); hsv.v = scale8(abs8(sin8(time) - 128) * 2, hsv.v); RGB rgb = hsv_to_rgb(hsv); - for (uint8_t i = 0; i < DRIVER_LED_TOTAL; i++) { + for (uint8_t i = 0; i < RGB_MATRIX_LED_COUNT; i++) { if (HAS_FLAGS(g_led_config.flags[i], led_type)) { RGB_MATRIX_INDICATOR_SET_COLOR(i, rgb.r, rgb.g, rgb.b); } @@ -30,7 +30,7 @@ void rgb_matrix_layer_helper(uint8_t hue, uint8_t sat, uint8_t val, uint8_t mode default: // Solid Color { RGB rgb = hsv_to_rgb(hsv); - for (uint8_t i = 0; i < DRIVER_LED_TOTAL; i++) { + for (uint8_t i = 0; i < RGB_MATRIX_LED_COUNT; i++) { if (HAS_FLAGS(g_led_config.flags[i], led_type)) { RGB_MATRIX_INDICATOR_SET_COLOR(i, rgb.r, rgb.g, rgb.b); } diff --git a/users/dshields/dshields.h b/users/dshields/dshields.h index 54268210c9a..34544b02600 100644 --- a/users/dshields/dshields.h +++ b/users/dshields/dshields.h @@ -17,6 +17,14 @@ #define MT_SPC SFT_T(KC_SPC) #define MT_BSPC SFT_T(KC_BSPC) #define MT_ESC LGUI_T(KC_ESC) +#define MT_A LGUI_T(KC_A) +#define MT_S LALT_T(KC_S) +#define MT_D LSFT_T(KC_D) +#define MT_F LCTL_T(KC_F) +#define MT_J RCTL_T(KC_J) +#define MT_K RSFT_T(KC_K) +#define MT_L RALT_T(KC_L) +#define MT_SCLN RGUI_T(KC_SCLN) // LED/RGB controls #ifdef KEYBOARD_planck_light diff --git a/users/jonavin/jonavin.h b/users/jonavin/jonavin.h index c3e383bd3a6..97f72c1248d 100644 --- a/users/jonavin/jonavin.h +++ b/users/jonavin/jonavin.h @@ -17,6 +17,10 @@ along with this program. If not, see . #pragma once +// DEFINE MACROS +#ifndef ARRAYSIZE +#define ARRAYSIZE(arr) sizeof(arr)/sizeof(arr[0]) +#endif // !ARRAYSIZE // LAYERS enum custom_user_layers { diff --git a/users/tominabox1/config.h b/users/tominabox1/config.h index f853e18605a..5fd8ba3a74b 100644 --- a/users/tominabox1/config.h +++ b/users/tominabox1/config.h @@ -22,7 +22,7 @@ #ifdef RGB_MATRIX_ENABLE #undef RGBLED_NUM #define RGBLED_NUM 50 - #define DRIVER_LED_TOTAL RGBLED_NUM + #define RGB_MATRIX_LED_COUNT RGBLED_NUM #endif // RGBL_MATRIX_ENABLE #endif // KEYBOARD_lazydesigners_dimple diff --git a/users/tominabox1/dimple_rgb.c b/users/tominabox1/dimple_rgb.c index 49d95eb43a9..299dc830f12 100644 --- a/users/tominabox1/dimple_rgb.c +++ b/users/tominabox1/dimple_rgb.c @@ -1,7 +1,7 @@ #include "dz60rgb.h" #include "config.h" #if defined (dzrgb60_iso) -const is31_led g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led g_is31_leds[RGB_MATRIX_LED_COUNT] = { {0, K_14, J_14, L_14}, {0, K_13, J_13, L_13}, {0, K_12, J_12, L_12}, @@ -86,7 +86,7 @@ led_config_t g_led_config = { { } }; #elif defined (dzrgb60_hhkb) -const is31_led g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led g_is31_leds[RGB_MATRIX_LED_COUNT] = { {0, H_15, G_15, I_15}, {0, K_14, J_14, L_14}, {0, K_13, J_13, L_13}, @@ -172,7 +172,7 @@ led_config_t g_led_config = { { } }; #elif defined (dzrgb60_hhkb_iso) -const is31_led g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led g_is31_leds[RGB_MATRIX_LED_COUNT] = { {0, H_15, G_15, I_15}, {0, K_14, J_14, L_14}, {0, K_13, J_13, L_13}, @@ -258,7 +258,7 @@ led_config_t g_led_config = { { } }; #elif defined (dzrgb60_ansi) -const is31_led g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led g_is31_leds[RGB_MATRIX_LED_COUNT] = { {0, K_14, J_14, L_14}, {0, K_13, J_13, L_13}, {0, K_12, J_12, L_12}, @@ -343,7 +343,7 @@ led_config_t g_led_config = { { } }; #else -const is31_led g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led g_is31_leds[RGB_MATRIX_LED_COUNT] = { {0, K_14, J_14, L_14}, {0, K_13, J_13, L_13}, {0, K_12, J_12, L_12}, diff --git a/users/tominabox1/tominabox1.c b/users/tominabox1/tominabox1.c index b4ec224d072..999222fa67b 100644 --- a/users/tominabox1/tominabox1.c +++ b/users/tominabox1/tominabox1.c @@ -58,7 +58,7 @@ void rgb_matrix_layer_helper(uint8_t hue, uint8_t sat, uint8_t val, uint8_t mode uint16_t time = scale16by8(g_rgb_counters.tick, speed / 8); hsv.v = scale8(abs8(sin8(time) - 128) * 2, hsv.v); RGB rgb = hsv_to_rgb(hsv); - for (uint8_t i = 0; i < DRIVER_LED_TOTAL; i++) { + for (uint8_t i = 0; i < RGB_MATRIX_LED_COUNT; i++) { if (HAS_FLAGS(g_led_config.flags[i], led_type)) { rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); } @@ -68,7 +68,7 @@ void rgb_matrix_layer_helper(uint8_t hue, uint8_t sat, uint8_t val, uint8_t mode default: // Solid Color { RGB rgb = hsv_to_rgb(hsv); - for (uint8_t i = 0; i < DRIVER_LED_TOTAL; i++) { + for (uint8_t i = 0; i < RGB_MATRIX_LED_COUNT; i++) { if (HAS_FLAGS(g_led_config.flags[i], led_type)) { rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); }