diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md deleted file mode 100644 index 81561eaba61..00000000000 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ /dev/null @@ -1,36 +0,0 @@ ---- -name: Bug report -about: Create a report to help us improve QMK Firmware. -title: "[Bug] " -labels: bug, help wanted -assignees: '' - ---- - - - - - - -## Describe the Bug - - - -## System Information - -**Keyboard:** -**Revision (if applicable):** -**Operating system:** -**`qmk doctor` output:** -``` -(Paste output here) -``` - -**Any keyboard related software installed?** - - [ ] AutoHotKey (Windows) - - [ ] Karabiner (macOS) - - [ ] Other: - -## Additional Context - - diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 00000000000..a5d185e1dd3 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,41 @@ +name: Bug report +description: Create a report to help us improve QMK Firmware. +title: "[Bug] " +labels: ["bug", "help wanted"] +body: + - type: markdown + attributes: + value: | + Provide a general summary of the bug in the title above. + - type: textarea + attributes: + label: Describe the Bug + description: A clear and concise description of what the bug is. + - type: input + attributes: + label: Keyboard Used + description: The name of the keyboard from the `make` or `qmk compile`/`qmk flash` commands, eg. `planck/rev6`. + - type: input + attributes: + label: Link to product page (if applicable) + - type: input + attributes: + label: Operating System + - type: textarea + attributes: + label: qmk doctor Output + description: Output from running the `qmk doctor` command. + render: text + - type: checkboxes + attributes: + label: Is AutoHotKey / Karabiner installed + options: + - label: AutoHotKey (Windows) + - label: Karabiner (macOS) + - type: input + attributes: + label: Other keyboard-related software installed + - type: textarea + attributes: + label: Additional Context + description: Add any other relevant information about the problem here. \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md deleted file mode 100644 index 18768342473..00000000000 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -name: Feature request -about: Suggest a new feature or changes to existing features. -title: "[Feature Request] " -labels: enhancement, help wanted -assignees: '' - ---- - - - - - - -## Feature Request Type - -- [ ] Core functionality -- [ ] Add-on hardware support (eg. audio, RGB, OLED screen, etc.) -- [ ] Alteration (enhancement/optimization) of existing feature(s) -- [ ] New behavior - -## Description - - diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml new file mode 100644 index 00000000000..585bcf2e6f8 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -0,0 +1,21 @@ +name: Feature request +description: Suggest a new feature or changes to existing features. +title: "[Feature Request] " +labels: ["enhancement", "help wanted"] +body: + - type: markdown + attributes: + value: | + Provide a general summary of the changes you want in the title above. + - type: checkboxes + attributes: + label: Feature Request Type + options: + - label: Core functionality + - label: Add-on hardware support (eg. audio, RGB, OLED screen, etc.) + - label: Alteration (enhancement/optimization) of existing feature(s) + - label: New behavior + - type: textarea + attributes: + label: Description + description: A few sentences describing what it is that you'd like to see in QMK. Additional information (such as links to spec sheets, licensing info, other related issues or PRs, etc) would be helpful. \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/other_issues.md b/.github/ISSUE_TEMPLATE/other_issues.md deleted file mode 100644 index befeeb165a2..00000000000 --- a/.github/ISSUE_TEMPLATE/other_issues.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -name: Other issues -about: Anything else that doesn't fall into the above categories. -title: '' -labels: help wanted, question -assignees: '' - ---- - - - - - - diff --git a/.github/ISSUE_TEMPLATE/other_issues.yml b/.github/ISSUE_TEMPLATE/other_issues.yml new file mode 100644 index 00000000000..7c4fbeb23cc --- /dev/null +++ b/.github/ISSUE_TEMPLATE/other_issues.yml @@ -0,0 +1,16 @@ +name: Other issues +description: Anything else that doesn't fall into the above categories. +labels: ["help wanted", "question"] +body: + - type: markdown + attributes: + value: | + Provide a general summary of the changes you want in the title above. + - type: markdown + attributes: + value: | + Please check [https://docs.qmk.fm/#/support](https://docs.qmk.fm/#/support) for additional resources first. If that doesn't answer your question, choose the bug report template instead, as that may be more appropriate. + - type: textarea + attributes: + label: Issue Description + description: Describe your issue in as much detail as possible. \ No newline at end of file diff --git a/.github/workflows/auto_tag.yml b/.github/workflows/auto_tag.yml index 6205dbe11cc..b858d492a6e 100644 --- a/.github/workflows/auto_tag.yml +++ b/.github/workflows/auto_tag.yml @@ -27,7 +27,7 @@ jobs: fetch-depth: 0 - name: Bump version and push tag - uses: anothrNick/github-tag-action@1.46.0 + uses: anothrNick/github-tag-action@1.52.0 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} DEFAULT_BUMP: 'patch' diff --git a/Makefile b/Makefile index a418576c073..4a9bba603f8 100644 --- a/Makefile +++ b/Makefile @@ -264,7 +264,7 @@ define PARSE_KEYMAP # The rest of the rule is the target # Remove the leading ":" from the target, as it acts as a separator MAKE_TARGET := $$(patsubst :%,%,$$(RULE)) - # We need to generate an unique indentifer to append to the COMMANDS list + # We need to generate an unique identifier to append to the COMMANDS list CURRENT_KB_UNDER := $$(subst /,_,$$(CURRENT_KB)) COMMAND := COMMAND_KEYBOARD_$$(CURRENT_KB_UNDER)_KEYMAP_$$(CURRENT_KM) # If we are compiling a keyboard without a subproject, we want to display just the name diff --git a/builddefs/build_full_test.mk b/builddefs/build_full_test.mk index 4e4b4e4bfd6..35f0a05b993 100644 --- a/builddefs/build_full_test.mk +++ b/builddefs/build_full_test.mk @@ -20,7 +20,7 @@ $(TEST)_SRC := \ $(TMK_COMMON_SRC) \ $(QUANTUM_SRC) \ $(SRC) \ - tests/test_common/keymap.c \ + $(QUANTUM_PATH)/keymap_introspection.c \ tests/test_common/matrix.c \ tests/test_common/test_driver.cpp \ tests/test_common/keyboard_report_util.cpp \ @@ -29,7 +29,7 @@ $(TEST)_SRC := \ tests/test_common/test_logger.cpp \ $(patsubst $(ROOTDIR)/%,%,$(wildcard $(TEST_PATH)/*.cpp)) -$(TEST)_DEFS := $(TMK_COMMON_DEFS) $(OPT_DEFS) +$(TEST)_DEFS := $(TMK_COMMON_DEFS) $(OPT_DEFS) "-DKEYMAP_C=\"keymap.c\"" $(TEST)_CONFIG := $(TEST_PATH)/config.h diff --git a/builddefs/build_keyboard.mk b/builddefs/build_keyboard.mk index 91cd851ef66..c137639eac5 100644 --- a/builddefs/build_keyboard.mk +++ b/builddefs/build_keyboard.mk @@ -124,26 +124,26 @@ include $(BUILDDEFS_PATH)/build_json.mk # Pull in keymap level rules.mk ifeq ("$(wildcard $(KEYMAP_PATH))", "") # Look through the possible keymap folders until we find a matching keymap.c - ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_5)/keymap.c)","") - -include $(MAIN_KEYMAP_PATH_5)/rules.mk - KEYMAP_C := $(MAIN_KEYMAP_PATH_5)/keymap.c - KEYMAP_PATH := $(MAIN_KEYMAP_PATH_5) - else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_4)/keymap.c)","") - -include $(MAIN_KEYMAP_PATH_4)/rules.mk - KEYMAP_C := $(MAIN_KEYMAP_PATH_4)/keymap.c - KEYMAP_PATH := $(MAIN_KEYMAP_PATH_4) - else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_3)/keymap.c)","") - -include $(MAIN_KEYMAP_PATH_3)/rules.mk - KEYMAP_C := $(MAIN_KEYMAP_PATH_3)/keymap.c - KEYMAP_PATH := $(MAIN_KEYMAP_PATH_3) + ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_1)/keymap.c)","") + -include $(MAIN_KEYMAP_PATH_1)/rules.mk + KEYMAP_C := $(MAIN_KEYMAP_PATH_1)/keymap.c + KEYMAP_PATH := $(MAIN_KEYMAP_PATH_1) else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_2)/keymap.c)","") -include $(MAIN_KEYMAP_PATH_2)/rules.mk KEYMAP_C := $(MAIN_KEYMAP_PATH_2)/keymap.c KEYMAP_PATH := $(MAIN_KEYMAP_PATH_2) - else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_1)/keymap.c)","") - -include $(MAIN_KEYMAP_PATH_1)/rules.mk - KEYMAP_C := $(MAIN_KEYMAP_PATH_1)/keymap.c - KEYMAP_PATH := $(MAIN_KEYMAP_PATH_1) + else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_3)/keymap.c)","") + -include $(MAIN_KEYMAP_PATH_3)/rules.mk + KEYMAP_C := $(MAIN_KEYMAP_PATH_3)/keymap.c + KEYMAP_PATH := $(MAIN_KEYMAP_PATH_3) + else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_4)/keymap.c)","") + -include $(MAIN_KEYMAP_PATH_4)/rules.mk + KEYMAP_C := $(MAIN_KEYMAP_PATH_4)/keymap.c + KEYMAP_PATH := $(MAIN_KEYMAP_PATH_4) + else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_5)/keymap.c)","") + -include $(MAIN_KEYMAP_PATH_5)/rules.mk + KEYMAP_C := $(MAIN_KEYMAP_PATH_5)/keymap.c + KEYMAP_PATH := $(MAIN_KEYMAP_PATH_5) else ifneq ($(LAYOUTS),) # If we haven't found a keymap yet fall back to community layouts include $(BUILDDEFS_PATH)/build_layout.mk @@ -236,7 +236,7 @@ endif # that the same keymap may be used on multiple keyboards. # # We grab the most top-level include file that we can. That file should -# use #ifdef statements to include all the neccesary subfolder includes, +# use #ifdef statements to include all the necessary subfolder includes, # as described here: # # https://docs.qmk.fm/#/feature_layouts?id=tips-for-making-layouts-keyboard-agnostic diff --git a/builddefs/common_features.mk b/builddefs/common_features.mk index 0e9e45220fe..7f07be5144d 100644 --- a/builddefs/common_features.mk +++ b/builddefs/common_features.mk @@ -272,7 +272,7 @@ ifneq ($(strip $(WEAR_LEVELING_DRIVER)),none) POST_CONFIG_H += $(DRIVER_PATH)/wear_leveling/wear_leveling_flash_spi_config.h else ifeq ($(strip $(WEAR_LEVELING_DRIVER)), rp2040_flash) SRC += wear_leveling_rp2040_flash.c - POST_CONFIG_H += $(DRIVER_PATH)/wear_leveling/wear_leveling_rp2040_flash_config.h + POST_CONFIG_H += $(PLATFORM_PATH)/$(PLATFORM_KEY)/$(DRIVER_PATH)/wear_leveling/wear_leveling_rp2040_flash_config.h else ifeq ($(strip $(WEAR_LEVELING_DRIVER)), legacy) COMMON_VPATH += $(PLATFORM_PATH)/$(PLATFORM_KEY)/$(DRIVER_DIR)/flash SRC += flash_stm32.c wear_leveling_legacy.c @@ -882,7 +882,7 @@ ifeq ($(strip $(BLUETOOTH_ENABLE)), yes) OPT_DEFS += -DBLUETOOTH_ENABLE NO_USB_STARTUP_CHECK := yes COMMON_VPATH += $(DRIVER_PATH)/bluetooth - SRC += outputselect.c + SRC += outputselect.c bluetooth.c ifeq ($(strip $(BLUETOOTH_DRIVER)), BluefruitLE) OPT_DEFS += -DBLUETOOTH_BLUEFRUIT_LE -DHAL_USE_SPI=TRUE diff --git a/builddefs/common_rules.mk b/builddefs/common_rules.mk index c8816639f80..22746b92a39 100644 --- a/builddefs/common_rules.mk +++ b/builddefs/common_rules.mk @@ -1,7 +1,7 @@ # Hey Emacs, this is a -*- makefile -*- #---------------------------------------------------------------------------- -# Enable vpath seraching for source files only +# Enable vpath searching for source files only # Without this, output files, could be read from the wrong .build directories VPATH_SRC := $(VPATH) vpath %.c $(VPATH_SRC) @@ -85,7 +85,7 @@ ifeq ($(strip $(DEBUG_ENABLE)),yes) endif CXXFLAGS += $(CXXDEFS) CXXFLAGS += -O$(OPT) -# to supress "warning: only initialized variables can be placed into program memory area" +# to suppress "warning: only initialized variables can be placed into program memory area" CXXFLAGS += -w CXXFLAGS += -Wall CXXFLAGS += -Wundef diff --git a/data/mappings/info_config.json b/data/mappings/info_config.json index b27081e0378..28567c0d015 100644 --- a/data/mappings/info_config.json +++ b/data/mappings/info_config.json @@ -41,6 +41,7 @@ "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_TIMEOUT": {"info_key": "led_matrix.timeout", "value_type": "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"}, @@ -64,16 +65,6 @@ "RGB_DI_PIN": {"info_key": "rgblight.pin"}, "RGBLED_NUM": {"info_key": "rgblight.led_count", "value_type": "int"}, "RGBLED_SPLIT": {"info_key": "rgblight.split_count", "value_type": "array.int"}, - "RGBLIGHT_EFFECT_ALTERNATING": {"info_key": "rgblight.animations.alternating", "value_type": "bool"}, - "RGBLIGHT_EFFECT_BREATHING": {"info_key": "rgblight.animations.breathing", "value_type": "bool"}, - "RGBLIGHT_EFFECT_CHRISTMAS": {"info_key": "rgblight.animations.christmas", "value_type": "bool"}, - "RGBLIGHT_EFFECT_KNIGHT": {"info_key": "rgblight.animations.knight", "value_type": "bool"}, - "RGBLIGHT_EFFECT_RAINBOW_MOOD": {"info_key": "rgblight.animations.rainbow_mood", "value_type": "bool"}, - "RGBLIGHT_EFFECT_RAINBOW_SWIRL": {"info_key": "rgblight.animations.rainbow_swirl", "value_type": "bool"}, - "RGBLIGHT_EFFECT_RGB_TEST": {"info_key": "rgblight.animations.rgb_test", "value_type": "bool"}, - "RGBLIGHT_EFFECT_SNAKE": {"info_key": "rgblight.animations.snake", "value_type": "bool"}, - "RGBLIGHT_EFFECT_STATIC_GRADIENT": {"info_key": "rgblight.animations.static_gradient", "value_type": "bool"}, - "RGBLIGHT_EFFECT_TWINKLE": {"info_key": "rgblight.animations.twinkle"}, "RGBLIGHT_LAYER_BLINK": {"info_key": "rgblight.layers.blink", "value_type": "bool"}, "RGBLIGHT_LAYERS": {"info_key": "rgblight.layers.enabled", "value_type": "bool"}, "RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF": {"info_key": "rgblight.layers.override_rgb", "value_type": "bool"}, @@ -87,6 +78,7 @@ "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_TIMEOUT": {"info_key": "rgb_matrix.timeout", "value_type": "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"}, @@ -108,6 +100,8 @@ "SPLIT_USB_DETECT": {"info_key": "split.usb_detect.enabled", "value_type": "bool"}, "SPLIT_USB_TIMEOUT": {"info_key": "split.usb_detect.timeout", "value_type": "int"}, "SPLIT_USB_TIMEOUT_POLL": {"info_key": "split.usb_detect.polling_interval", "value_type": "int"}, + "SPLIT_WATCHDOG_ENABLE": {"info_key": "split.transport.watchdog", "value_type": "bool"}, + "SPLIT_WATCHDOG_TIMEOUT": {"info_key": "split.transport.watchdog_timeout", "value_type": "int"}, "SOFT_SERIAL_PIN": {"info_key": "split.soft_serial_pin"}, "SOFT_SERIAL_SPEED": {"info_key": "split.soft_serial_speed"}, "TAP_CODE_DELAY": {"info_key": "qmk.tap_keycode_delay", "value_type": "int"}, diff --git a/data/schemas/keyboard.jsonschema b/data/schemas/keyboard.jsonschema index ff5163e7371..de23005c1e7 100644 --- a/data/schemas/keyboard.jsonschema +++ b/data/schemas/keyboard.jsonschema @@ -264,6 +264,12 @@ "led_matrix": { "type": "object", "properties": { + "animations": { + "type": "object", + "additionalProperties": { + "type": "boolean" + } + }, "driver": {"type": "string"}, "center_point": { "type": "array", @@ -272,6 +278,7 @@ "items": {"$ref": "qmk.definitions.v1#/unsigned_int_8"} }, "max_brightness": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}, + "timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"}, "hue_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"}, "sat_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"}, "val_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"}, @@ -308,6 +315,12 @@ "rgb_matrix": { "type": "object", "properties": { + "animations": { + "type": "object", + "additionalProperties": { + "type": "boolean" + } + }, "driver": {"type": "string"}, "center_point": { "type": "array", @@ -316,6 +329,7 @@ "items": {"$ref": "qmk.definitions.v1#/unsigned_int_8"} }, "max_brightness": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}, + "timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"}, "hue_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"}, "sat_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"}, "val_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"}, @@ -494,7 +508,9 @@ "enum": ["custom", "i2c", "serial", "serial_usart"] }, "sync_matrix_state": {"type": "boolean"}, - "sync_modifiers": {"type": "boolean"} + "sync_modifiers": {"type": "boolean"}, + "watchdog": {"type": "boolean"}, + "watchdog_timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"} } }, "usb_detect": { diff --git a/docs/api_docs.md b/docs/api_docs.md index e2f970f3ab4..237b02fed27 100644 --- a/docs/api_docs.md +++ b/docs/api_docs.md @@ -21,7 +21,7 @@ This service is an asynchronous API for compiling custom keymaps. You POST some } ``` -As you can see the payload describes all aspects of a keyboard necessary to create and generate a firmware. Each layer is a single list of QMK keycodes the same length as the keyboard's `LAYOUT` macro. If a keyboard supports mulitple `LAYOUT` macros you can specify which macro to use. +As you can see the payload describes all aspects of a keyboard necessary to create and generate a firmware. Each layer is a single list of QMK keycodes the same length as the keyboard's `LAYOUT` macro. If a keyboard supports multiple `LAYOUT` macros you can specify which macro to use. ## Submitting a Compile Job diff --git a/docs/cli_commands.md b/docs/cli_commands.md index 4608ed85b62..019447075b4 100644 --- a/docs/cli_commands.md +++ b/docs/cli_commands.md @@ -223,7 +223,7 @@ Check your environment and report problems only: ## `qmk format-json` -Formats a JSON file in a (mostly) human-friendly way. Will usually correctly detect the format of the JSON (info.json or keymap.json) but you can override this with `--format` if neccesary. +Formats a JSON file in a (mostly) human-friendly way. Will usually correctly detect the format of the JSON (info.json or keymap.json) but you can override this with `--format` if necessary. **Usage**: diff --git a/docs/cli_development.md b/docs/cli_development.md index 17370a732a2..d878deff17c 100644 --- a/docs/cli_development.md +++ b/docs/cli_development.md @@ -162,7 +162,7 @@ del(cli.config.
.) ## Writing The Configuration File -The configuration is not written out when it is changed. Most commands do not need to do this. We prefer to have the user change their configuration deliberitely using `qmk config`. +The configuration is not written out when it is changed. Most commands do not need to do this. We prefer to have the user change their configuration deliberately using `qmk config`. You can use `cli.save_config()` to write out the configuration. diff --git a/docs/coding_conventions_c.md b/docs/coding_conventions_c.md index c4bace66cc0..3f44da713d4 100644 --- a/docs/coding_conventions_c.md +++ b/docs/coding_conventions_c.md @@ -24,7 +24,7 @@ Most of our style is pretty easy to pick up on, but right now it's not entirely * Readability is more important than consistency. * Follow the file's existing style. If the file is mixed, follow the style that makes sense for the section you are modifying. * When indenting, keep the hash at the start of the line and add whitespace between `#` and `if`, starting with 4 spaces after the `#`. - * You can follow the indention level of the surrounding C code, or preprocessor directives can have their own indentation levels. Choose the style that best communicates the intent of your code. + * You can follow the indentation level of the surrounding C code, or preprocessor directives can have their own indentation levels. Choose the style that best communicates the intent of your code. Here is an example for easy reference: diff --git a/docs/coding_conventions_python.md b/docs/coding_conventions_python.md index 960b9cb49e9..2b687034487 100644 --- a/docs/coding_conventions_python.md +++ b/docs/coding_conventions_python.md @@ -2,7 +2,7 @@ Most of our style follows PEP8 with some local modifications to make things less nit-picky. -* We target Python 3.7 for compatability with all supported platforms. +* We target Python 3.7 for compatibility with all supported platforms. * We indent using four (4) spaces (soft tabs) * We encourage liberal use of comments * Think of them as a story describing the feature @@ -21,7 +21,7 @@ You can use [yapf](https://github.com/google/yapf) to style your code. We provid We don't have a hard and fast rule for when to use `import ...` vs `from ... import ...`. Understandability and maintainability is our ultimate goal. -Generally we prefer to import specific function and class names from a module to keep code shorter and easier to understand. Sometimes this results in a name that is ambiguous, and in such cases we prefer to import the module instead. You should avoid using the "as" keyword when importing, unless you are importing a compatability module. +Generally we prefer to import specific function and class names from a module to keep code shorter and easier to understand. Sometimes this results in a name that is ambiguous, and in such cases we prefer to import the module instead. You should avoid using the "as" keyword when importing, unless you are importing a compatibility module. Imports should be one line per module. We group import statements together using the standard python rules- system, 3rd party, local. diff --git a/docs/config_options.md b/docs/config_options.md index 05e27a835c0..a6ceb199de5 100644 --- a/docs/config_options.md +++ b/docs/config_options.md @@ -2,7 +2,17 @@ QMK is nearly infinitely configurable. Wherever possible we err on the side of allowing users to customize their keyboard, even at the expense of code size. That level of flexibility makes for a daunting configuration experience, however. -There are two main types of configuration files in QMK- `config.h` and `rules.mk`. These files exist at various levels in QMK and all files of the same type are combined to build the final configuration. The levels, from lowest priority to highest priority, are: +There are three main types of configuration files in QMK: + +* `config.h`, which contains various preprocessor directives (`#define`, `#ifdef`) +* `rules.mk`, which contains additional variables +* `info.json`, which is utilized for [data-driven configuration](https://docs.qmk.fm/#/data_driven_config) + +This page will only discuss the first two types, `config.h` and `rules.mk`. + +?> While not all settings have data-driven equivalents yet, keyboard makers are encouraged to utilize the `info.json` file to set the metadata for their boards when possible. See the [`info.json` Format](https://docs.qmk.fm/#/reference_info_json) page for more details. + +These files exist at various levels in QMK and all files of the same type are combined to build the final configuration. The levels, from lowest priority to highest priority, are: * QMK Default * Keyboard @@ -185,7 +195,7 @@ If you define these options you will enable the associated feature, which may in * `#define COMBO_TERM 200` * how long for the Combo keys to be detected. Defaults to `TAPPING_TERM` if not defined. * `#define COMBO_MUST_HOLD_MODS` - * Flag for enabling extending timeout on Combos containing modifers + * Flag for enabling extending timeout on Combos containing modifiers * `#define COMBO_MOD_TERM 200` * Allows for extending COMBO_TERM for mod keys while mid-combo. * `#define COMBO_MUST_HOLD_PER_COMBO` @@ -315,6 +325,13 @@ There are a few different ways to set handedness for split keyboards (listed in * `#define SPLIT_USB_TIMEOUT_POLL 10` * Poll frequency when detecting master/slave when using `SPLIT_USB_DETECT` + +* `#define SPLIT_WATCHDOG_ENABLE` + * Reboot slave if no communication from master within timeout. + * Helps resolve issue where both sides detect as slave using `SPLIT_USB_DETECT` + +* `#define SPLIT_WATCHDOG_TIMEOUT 3000` + * Maximum slave timeout when waiting for communication from master when using `SPLIT_WATCHDOG_ENABLE` * `#define FORCED_SYNC_THROTTLE_MS 100` * Deadline for synchronizing data from master to slave when using the QMK-provided split transport. diff --git a/docs/faq_debug.md b/docs/faq_debug.md index 4a359972221..b639b7ea041 100644 --- a/docs/faq_debug.md +++ b/docs/faq_debug.md @@ -133,3 +133,4 @@ Check: - Set `debug_enable=true`. See [Debugging](#debugging) - Try using `print` function instead of debug print. See **common/print.h**. - Disconnect other devices with console function. See [Issue #97](https://github.com/tmk/tmk_keyboard/issues/97). +- Ensure all strings end with a newline character (`\n`). QMK Toolbox prints console output on a per-line basis. diff --git a/docs/feature_caps_word.md b/docs/feature_caps_word.md index 283f0f52889..507ea637b2f 100644 --- a/docs/feature_caps_word.md +++ b/docs/feature_caps_word.md @@ -4,7 +4,10 @@ It is often useful to type a single word in all capitals, for instance abbreviations like "QMK", or in code, identifiers like `KC_SPC`. "Caps Word" is a modern alternative to Caps Lock: -* Letters are capitalized while active, and Caps Word automatically disables +* While active, letters are capitalized and `-` becomes `_`. The `_` makes it easier + to type constant names (eg 'PROGRAM\_CONSTANTS'). + +* Caps Word automatically disables itself at the end of the word. That is, it stops by default once a space or any key other than `KC_A`--`KC_Z`, `KC_0`--`KC_9`, `KC_MINS`, `KC_UNDS`, `KC_DELETE`, or `KC_BACKSPACE` is pressed. Caps Word also disables itself if diff --git a/docs/feature_joystick.md b/docs/feature_joystick.md index 2635298587d..a82192bfe11 100644 --- a/docs/feature_joystick.md +++ b/docs/feature_joystick.md @@ -70,71 +70,44 @@ When the ADC reads 900 or higher, the returned axis value will be -127, whereas In this example, the first axis will be read from the `A4` pin while `B0` is set high and `A7` is set low, using `analogReadPin()`, whereas the second axis will not be read. -In order to give a value to the second axis, you can do so in any customizable entry point: as an action, in `process_record_user()` or in `matrix_scan_user()`, or even in `joystick_task()` which is called even when no key has been pressed. -You assign a value by writing to `joystick_status.axes[axis_index]` a signed 8-bit value (ranging from -127 to 127). Then it is necessary to assign the flag `JS_UPDATED` to `joystick_status.status` in order for an updated HID report to be sent. +#### Virtual Axes -The following example writes two axes based on keypad presses, with `KC_P5` as a precision modifier: +To give a value to virtual axes, call `joystick_set_axis(axis, value)`. + +The following example adjusts two virtual axes (X and Y) based on keypad presses, with `KC_P5` as a precision modifier: ```c -#ifdef ANALOG_JOYSTICK_ENABLE -static uint8_t precision_val = 70; -static uint8_t axesFlags = 0; -enum axes { - Precision = 1, - Axis1High = 2, - Axis1Low = 4, - Axis2High = 8, - Axis2Low = 16 +joystick_config_t joystick_axes[JOYSTICK_AXES_COUNT] = { + [0] = JOYSTICK_AXIS_VIRTUAL, // x + [1] = JOYSTICK_AXIS_VIRTUAL // y }; -#endif + +static bool precision = false; +static uint16_t precision_mod = 64; +static uint16_t axis_val = 127; bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch(keycode) { -#ifdef ANALOG_JOYSTICK_ENABLE - // virtual joystick -# if JOYSTICK_AXES_COUNT > 1 + int16_t precision_val = axis_val; + if (precision) { + precision_val -= precision_mod; + } + + switch (keycode) { case KC_P8: - if (record->event.pressed) { - axesFlags |= Axis2Low; - } else { - axesFlags &= ~Axis2Low; - } - joystick_status.status |= JS_UPDATED; - break; + joystick_set_axis(1, record->event.pressed ? -precision_val : 0); + return false; case KC_P2: - if (record->event.pressed) { - axesFlags |= Axis2High; - } else { - axesFlags &= ~Axis2High; - } - joystick_status.status |= JS_UPDATED; - break; -# endif + joystick_set_axis(1, record->event.pressed ? precision_val : 0); + return false; case KC_P4: - if (record->event.pressed) { - axesFlags |= Axis1Low; - } else { - axesFlags &= ~Axis1Low; - } - joystick_status.status |= JS_UPDATED; - break; + joystick_set_axis(0, record->event.pressed ? -precision_val : 0); + return false; case KC_P6: - if (record->event.pressed) { - axesFlags |= Axis1High; - } else { - axesFlags &= ~Axis1High; - } - joystick_status.status |= JS_UPDATED; - break; + joystick_set_axis(0, record->event.pressed ? precision_val : 0); + return false; case KC_P5: - if (record->event.pressed) { - axesFlags |= Precision; - } else { - axesFlags &= ~Precision; - } - joystick_status.status |= JS_UPDATED; - break; -#endif + precision = record->event.pressed; + return false; } return true; } diff --git a/docs/feature_led_indicators.md b/docs/feature_led_indicators.md index a2a2e17c6f1..d89562a377c 100644 --- a/docs/feature_led_indicators.md +++ b/docs/feature_led_indicators.md @@ -101,6 +101,13 @@ The `host_keyboard_led_state()` function will report the LED state returned from bool caps = host_keyboard_led_state().caps_lock; ``` +## `led_update_ports()` + +This function writes the LED state to the actual hardware. Call it manually +from your `led_update_*()` callbacks to modify the handling of the standard +keyboard LEDs. +For example when repurposing a standard LED indicator as layer indicator. + ## Setting Physical LED State Some keyboard implementations provide convenient methods for setting the state of the physical LEDs. diff --git a/docs/feature_led_matrix.md b/docs/feature_led_matrix.md index cc036eb80f7..280db2a383c 100644 --- a/docs/feature_led_matrix.md +++ b/docs/feature_led_matrix.md @@ -364,8 +364,7 @@ For inspiration and examples, check out the built-in effects under `quantum/led_ #define LED_MATRIX_KEYPRESSES // reacts to keypresses #define LED_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses) #define LED_MATRIX_FRAMEBUFFER_EFFECTS // enable framebuffer effects -#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_MATRIX_TIMEOUT 0 // number of milliseconds to wait until led automatically turns off #define LED_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended #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) @@ -442,8 +441,12 @@ Where `28` is an unused index from `eeconfig.h`. If you want to set custom indicators, such as an LED for Caps Lock, or layer indication, you can use the `led_matrix_indicators_kb` or `led_matrix_indicators_user` function for that: ```c -void led_matrix_indicators_kb(void) { +bool led_matrix_indicators_kb(void) { + if (!led_matrix_indicators_user()) { + return false; + } led_matrix_set_value(index, value); + return true; } ``` @@ -452,5 +455,6 @@ In addition, there are the advanced indicator functions. These are aimed at tho ```c void led_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { LED_MATRIX_INDICATOR_SET_VALUE(index, value); + return false; } ``` diff --git a/docs/feature_macros.md b/docs/feature_macros.md index f5bd5be41bd..63b7223db9a 100644 --- a/docs/feature_macros.md +++ b/docs/feature_macros.md @@ -374,7 +374,7 @@ This will clear all keys besides the mods currently pressed. This macro will register `KC_LALT` and tap `KC_TAB`, then wait for 1000ms. If the key is tapped again, it will send another `KC_TAB`; if there is no tap, `KC_LALT` will be unregistered, thus allowing you to cycle through windows. ```c -bool is_alt_tab_active = false; // ADD this near the begining of keymap.c +bool is_alt_tab_active = false; // ADD this near the beginning of keymap.c uint16_t alt_tab_timer = 0; // we will be using them soon. enum custom_keycodes { // Make sure have the awesome keycode ready diff --git a/docs/feature_oled_driver.md b/docs/feature_oled_driver.md index f73909f486e..b7451f17df7 100644 --- a/docs/feature_oled_driver.md +++ b/docs/feature_oled_driver.md @@ -259,12 +259,12 @@ void oled_render(void); void oled_set_cursor(uint8_t col, uint8_t line); // Advances the cursor to the next page, writing ' ' if true -// Wraps to the begining when out of bounds +// Wraps to the beginning when out of bounds void oled_advance_page(bool clearPageRemainder); // Moves the cursor forward 1 character length // Advance page if there is not enough room for the next character -// Wraps to the begining when out of bounds +// Wraps to the beginning when out of bounds void oled_advance_char(void); // Writes a single character to the buffer at current cursor position diff --git a/docs/feature_rgb_matrix.md b/docs/feature_rgb_matrix.md index 11b9b1c5bc1..669f88e0a92 100644 --- a/docs/feature_rgb_matrix.md +++ b/docs/feature_rgb_matrix.md @@ -270,7 +270,7 @@ Configure the hardware via your `config.h`: | `ISSI_CONFIGURATION` | (Optional) Configuration for the Configuration Register | | | `ISSI_GLOBALCURRENT` | (Optional) Configuration for the Global Current Register | 0xFF | | `ISSI_PULLDOWNUP` | (Optional) Configuration for the Pull Up & Pull Down Register | | -| `ISSI_TEMP` | (Optional) Configuration for the Tempature Register | | +| `ISSI_TEMP` | (Optional) Configuration for the Temperature Register | | | `ISSI_PWM_ENABLE` | (Optional) Configuration for the PWM Enable Register | | | `ISSI_PWM_SET` | (Optional) Configuration for the PWM Setting Register | | | `ISSI_SCAL_RED` | (Optional) Configuration for the RED LEDs in Scaling Registers | 0xFF | @@ -791,8 +791,7 @@ These are defined in [`color.h`](https://github.com/qmk/qmk_firmware/blob/master #define RGB_MATRIX_KEYPRESSES // reacts to keypresses #define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses) #define RGB_MATRIX_FRAMEBUFFER_EFFECTS // enable framebuffer effects -#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_MATRIX_TIMEOUT 0 // number of milliseconds to wait until rgb automatically turns off #define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended #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) @@ -889,16 +888,21 @@ Where `28` is an unused index from `eeconfig.h`. If you want to set custom indicators, such as an LED for Caps Lock, or layer indication, you can use the `rgb_matrix_indicators_kb` or `rgb_matrix_indicators_user` function for that: ```c -void rgb_matrix_indicators_kb(void) { +bool rgb_matrix_indicators_kb(void) { + if (!rgb_matrix_indicators_user()) { + return false; + } rgb_matrix_set_color(index, red, green, blue); + return true; } ``` In addition, there are the advanced indicator functions. These are aimed at those with heavily customized displays, where rendering every LED per cycle is expensive. Such as some of the "drashna" layouts. This includes a special macro to help make this easier to use: `RGB_MATRIX_INDICATOR_SET_COLOR(i, r, g, b)`. ```c -void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { +bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { RGB_MATRIX_INDICATOR_SET_COLOR(index, red, green, blue); + return false; } ``` @@ -906,7 +910,7 @@ void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { Caps Lock indicator on alphanumeric flagged keys: ```c -void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { +bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { if (host_keyboard_led_state().caps_lock) { for (uint8_t i = led_min; i <= led_max; i++) { if (g_led_config.flags[i] & LED_FLAG_KEYLIGHT) { @@ -914,12 +918,13 @@ void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { } } } + return false; } ``` Layer indicator on all keys: ```c -void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { +bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { for (uint8_t i = led_min; i <= led_max; i++) { switch(get_highest_layer(layer_state|default_layer_state)) { case 2: @@ -932,12 +937,13 @@ void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { break; } } + return false; } ``` Layer indicator only on keys with configured keycodes: ```c -void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { +bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { if (get_highest_layer(layer_state) > 0) { uint8_t layer = get_highest_layer(layer_state); @@ -952,6 +958,7 @@ void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { } } } + return false; } ``` @@ -962,7 +969,7 @@ void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { This example sets the modifiers to be a specific color based on the layer state. You can use a switch case here, instead, if you would like. This uses HSV and then converts to RGB, because this allows the brightness to be limited (important when using the WS2812 driver). ```c -void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { +bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { HSV hsv = {0, 255, 255}; if (layer_state_is(layer_state, 2)) { @@ -981,18 +988,20 @@ void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); } } + return false; } ``` If you want to indicate a Host LED status (caps lock, num lock, etc), you can use something like this to light up the caps lock key: ```c -void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { +bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { if (host_keyboard_led_state().caps_lock) { RGB_MATRIX_INDICATOR_SET_COLOR(5, 255, 255, 255); // assuming caps lock is at led #5 } else { RGB_MATRIX_INDICATOR_SET_COLOR(5, 0, 0, 0); } + return false; } ``` diff --git a/docs/feature_split_keyboard.md b/docs/feature_split_keyboard.md index e53b3525cbe..7d194284d62 100644 --- a/docs/feature_split_keyboard.md +++ b/docs/feature_split_keyboard.md @@ -422,6 +422,17 @@ This sets the maximum timeout when detecting master/slave when using `SPLIT_USB_ ``` This sets the poll frequency when detecting master/slave when using `SPLIT_USB_DETECT` +```c +#define SPLIT_WATCHDOG_ENABLE +``` + +This will enable a software watchdog on any side delegated as slave and will reboot the keyboard if no successful communication occurs within `SPLIT_WATCHDOG_TIMEOUT`. This can be particularly helpful when `SPLIT_USB_DETECT` delegates both sides as slave in some circumstances. + +```c +#define SPLIT_WATCHDOG_TIMEOUT 3000 +``` +This set the maximum slave timeout when waiting for communication from master when using `SPLIT_WATCHDOG_ENABLE` + ## Hardware Considerations and Mods Master/slave delegation is made either by detecting voltage on VBUS connection or waiting for USB communication (`SPLIT_USB_DETECT`). Pro Micro boards can use VBUS detection out of the box and be used with or without `SPLIT_USB_DETECT`. diff --git a/docs/feature_tap_dance.md b/docs/feature_tap_dance.md index f3c203232b7..cbee4d0c34b 100644 --- a/docs/feature_tap_dance.md +++ b/docs/feature_tap_dance.md @@ -42,7 +42,7 @@ For more complicated cases, like blink the LEDs, fiddle with the backlighting, a Well, that's the bulk of it! You should now be able to work through the examples below, and to develop your own Tap Dance functionality. But if you want a deeper understanding of what's going on behind the scenes, then read on for the explanation of how it all works! -Let's go over the three functions mentioned in `ACTION_TAP_DANCE_FN_ADVANCED` in a little more detail. They all receive the same too arguments: a pointer to a structure that holds all dance related state information, and a pointer to a use case specific state variable. The three functions differ in when they are called. The first, `on_each_tap_fn()`, is called every time the tap dance key is *pressed*. Before it is called, the counter is incremented and the timer is reset. The second function, `on_dance_finished_fn()`, is called when the tap dance is interrupted or ends because `TAPPING_TERM` milliseconds have passed since the last tap. When the `finished` field of the dance state structure is set to `true`, the `on_dance_finished_fn()` is skipped. After `on_dance_finished_fn()` was called or would have been called, but no sooner than when the tap dance key is *released*, `on_dance_reset_fn()` is called. It is possible to end a tap dance immediately, skipping `on_dance_finished_fn()`, but not `on_dance_reset_fn`, by calling `reset_tap_dance(state)`. +Let's go over the three functions mentioned in `ACTION_TAP_DANCE_FN_ADVANCED` in a little more detail. They all receive the same two arguments: a pointer to a structure that holds all dance related state information, and a pointer to a use case specific state variable. The three functions differ in when they are called. The first, `on_each_tap_fn()`, is called every time the tap dance key is *pressed*. Before it is called, the counter is incremented and the timer is reset. The second function, `on_dance_finished_fn()`, is called when the tap dance is interrupted or ends because `TAPPING_TERM` milliseconds have passed since the last tap. When the `finished` field of the dance state structure is set to `true`, the `on_dance_finished_fn()` is skipped. After `on_dance_finished_fn()` was called or would have been called, but no sooner than when the tap dance key is *released*, `on_dance_reset_fn()` is called. It is possible to end a tap dance immediately, skipping `on_dance_finished_fn()`, but not `on_dance_reset_fn`, by calling `reset_tap_dance(state)`. To accomplish this logic, the tap dance mechanics use three entry points. The main entry point is `process_tap_dance()`, called from `process_record_quantum()` *after* `process_record_kb()` and `process_record_user()`. This function is responsible for calling `on_each_tap_fn()` and `on_dance_reset_fn()`. In order to handle interruptions of a tap dance, another entry point, `preprocess_tap_dance()` is run right at the beginning of `process_record_quantum()`. This function checks whether the key pressed is a tap-dance key. If it is not, and a tap-dance was in action, we handle that first, and enqueue the newly pressed key. If it is a tap-dance key, then we check if it is the same as the already active one (if there's one active, that is). If it is not, we fire off the old one first, then register the new one. Finally, `tap_dance_task()` periodically checks whether `TAPPING_TERM` has passed since the last key press and finishes a tap dance if that is the case. diff --git a/docs/newbs_building_firmware.md b/docs/newbs_building_firmware.md index c4ce9fd9f3d..6163c6b02e5 100644 --- a/docs/newbs_building_firmware.md +++ b/docs/newbs_building_firmware.md @@ -40,7 +40,7 @@ Open your `keymap.c` file in your text editor. Inside this file you'll find the This line indicates where the list of Layers begins. Below that you'll find lines containing `LAYOUT`, and these lines indicate the start of a layer. Below that line is the list of keys that comprise a particular layer. -!> When editing your keymap file be careful not to add or remove any commas. If you do you will prevent your firmware from compiling and it may not be easy to figure out where the extra, or missing, comma is. +!> When editing your keymap file be careful not to add or remove any commas. If you do, you will prevent your firmware from compiling and it may not be easy to figure out where the extra, or missing, comma is. ## Customize The Layout To Your Liking diff --git a/docs/platformdev_rp2040.md b/docs/platformdev_rp2040.md index d690ebebf87..65055ef07ae 100644 --- a/docs/platformdev_rp2040.md +++ b/docs/platformdev_rp2040.md @@ -6,6 +6,7 @@ The following table shows the current driver status for peripherals on RP2040 MC | ---------------------------------------------------------------- | ---------------------------------------------- | | [ADC driver](adc_driver.md) | Support planned (no ETA) | | [Audio](audio_driver.md) | Support planned (no ETA) | +| [Backlight](feature_backlight.md) | :heavy_check_mark: | | [I2C driver](i2c_driver.md) | :heavy_check_mark: | | [SPI driver](spi_driver.md) | :heavy_check_mark: | | [WS2812 driver](ws2812_driver.md) | :heavy_check_mark: using `PIO` driver | @@ -58,7 +59,7 @@ The double-tap reset mechanism is an alternate way in QMK to enter the embedded ```c #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET // Activates the double-tap behavior #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 200U // Timeout window in ms in which the double tap can occur. -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_LED_MASK 0U // Specify a optional status led which blinks when entering the bootloader +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_LED GP17 // Specify a optional status led by GPIO number which blinks when entering the bootloader ``` ## Pre-defined RP2040 boards diff --git a/docs/pr_checklist.md b/docs/pr_checklist.md index 6d74e246a86..ed2b466de32 100644 --- a/docs/pr_checklist.md +++ b/docs/pr_checklist.md @@ -113,7 +113,7 @@ https://github.com/qmk/qmk_firmware/pulls?q=is%3Apr+is%3Aclosed+label%3Akeyboard - 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. - - 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. + - For instance, only `wilba_tech` boards shall include `keyboards/wilba_tech/wt_main.c` and `keyboards/wilba_tech/wt_rgb_backlight.c`. But including `drivers/sensors/pmw3360.c` is absolutely fine for any and all boards. - Code that needs to be used by multiple boards is a candidate for core code changes, and should be separated out. Also, specific to ChibiOS: diff --git a/docs/reference_info_json.md b/docs/reference_info_json.md index 52f16b44012..05d4ef11133 100644 --- a/docs/reference_info_json.md +++ b/docs/reference_info_json.md @@ -1,12 +1,12 @@ # `info.json` -This file is used by the [QMK API](https://github.com/qmk/qmk_api). It contains the information [QMK Configurator](https://config.qmk.fm/) needs to display a representation of your keyboard. You can also set metadata here. +The information contained in `info.json` is combined with the `config.h` and `rules.mk` files, dynamically generating the necessary configuration for your keyboard at compile time. It is also used by the [QMK API](https://github.com/qmk/qmk_api), and contains the information [QMK Configurator](https://config.qmk.fm/) needs to display a representation of your keyboard. -You can create `info.json` files at every level under `qmk_firmware/keyboards/` to specify this metadata. These files are combined, with more specific files overriding keys in less specific files. This means you do not need to duplicate your metadata information. For example, `qmk_firmware/keyboards/clueboard/info.json` specifies `manufacturer` and `maintainer`, while `qmk_firmware/keyboards/clueboard/66/info.json` specifies more specific information about Clueboard 66%. +You can create `info.json` files at every level under `qmk_firmware/keyboards/`. These files are combined, with more specific files overriding keys in less specific files. This means you do not need to duplicate your metadata information. For example, `qmk_firmware/keyboards/clueboard/info.json` specifies `manufacturer` and `maintainer`, while `qmk_firmware/keyboards/clueboard/66/info.json` specifies more specific information about Clueboard 66%. ## `info.json` Format -The `info.json` file is a JSON formatted dictionary with the following keys available to be set. You do not have to set all of them, merely the keys that apply to your keyboard. +The `info.json` file is a JSON formatted dictionary. The first six keys noted here must be defined in `info.json`, or your keyboard will not be accepted into the QMK repository. * `keyboard_name` * A free-form text string describing the keyboard. @@ -20,6 +20,11 @@ The `info.json` file is a JSON formatted dictionary with the following keys avai * `maintainer` * GitHub username of the maintainer, or `qmk` for community maintained boards. * Example: `skullydazed` +* `usb` + * Configure USB VID, PID, and device version. See the [USB](#USB) section for more detail. + +There are many more optional keys, some of which are described below. Others may be found by examining `data/schemas`. + * `debounce` * The amount of time in milliseconds to wait for debounce to happen. * Default: `5` @@ -33,8 +38,6 @@ The `info.json` file is a JSON formatted dictionary with the following keys avai * Configure the pins corresponding to columns and rows, or direct pins. See the [Matrix Pins](#matrix-pins) section for more detail. * `rgblight` * Configure the [RGB Lighting feature](feature_rgblight.md). See the [RGB Lighting](#rgb-lighting) section for more detail. -* `usb` - * Configure USB VID, PID, and other parameters. See the [USB](#USB) section for more detail. ### Layout Format @@ -45,7 +48,7 @@ Within our `info.json` file the `layouts` portion of the dictionary contains sev ### Key Dictionary Format -Each Key Dictionary in a layout describes the physical properties of a key. If you are familiar with the Raw Code for you will find many of the concepts the same. We re-use the same key names and layout choices wherever possible, but unlike keyboard-layout-editor each key is stateless, inheriting no properties from the keys that came before it. +Each Key Dictionary in a layout describes the physical properties of a key. If you are familiar with the Raw Data for you will find many of the concepts the same. We re-use the same key names and layout choices wherever possible, but unlike keyboard-layout-editor each key is stateless, inheriting no properties from the keys that came before it. All key positions and rotations are specified in relation to the top-left corner of the keyboard, and the top-left corner of each key. @@ -91,6 +94,8 @@ Direct pins are when you connect one side of the switch to GND and the other sid When specifying direct pins you need to arrange them in nested arrays. The outer array consists of rows, while the inner array uses text strings to identify the pins used in each row. You can use `null` to indicate an empty spot in the matrix. +Notice that when using direct pins, `diode_direction` is left undefined. + Example: ```json @@ -113,6 +118,14 @@ Example: This section controls basic 2-pin LEDs, which typically pass through keyswitches and are soldered into the PCB, or are placed in PCB sockets. ### Backlight +Enable by setting + +```json + "features": { + "backlight": true + } +``` + * `breathing` * Enable backlight breathing, if supported * `breathing_period` @@ -145,6 +158,13 @@ Used for indicating Num Lock, Caps Lock, and Scroll Lock. May be soldered in-swi * The pin that controls the `Caps Lock` LED * `scroll_lock` * The pin that controls the `Scroll Lock` LED +* `compose` + * The pin that controls the `Compose` LED +* `kana` + * The pin that controls the `Kana` LED +* `on_state` + * The state of the indicator pins when the LED is "on" - `1` for high, `0` for low + * Default: `1` Example: @@ -177,8 +197,9 @@ The following items can be set. Not every value is required. * Set to `true` to enable synchronization functionality between split halves * `split_count` * For split keyboards, the number of LEDs on each side + * Example `[ 10 , 10 ]` * `max_brightness` - * (0-255) What the maxmimum brightness (value) level is + * What the maximum brightness (value) level is (0-255) * `hue_steps` * How many steps of adjustment to have for hue * `saturation_steps` @@ -197,7 +218,8 @@ Example: "saturation_steps": 17, "brightness_steps": 17, "animations": { - "all": true + "knight": true, + "rainbow_swirl": true } } } @@ -243,6 +265,14 @@ The device version is a BCD (binary coded decimal) value, in the format `MMmr`, This section controls the basic [rotary encoder](feature_encoders.md) support. +Enable by setting + +```json + "features": { + "encoder": true + } +``` + The following items can be set. Not every value is required. * `pin_a` diff --git a/drivers/bluetooth/bluefruit_le.cpp b/drivers/bluetooth/bluefruit_le.cpp index 50170b83fe8..39c14ddd13c 100644 --- a/drivers/bluetooth/bluefruit_le.cpp +++ b/drivers/bluetooth/bluefruit_le.cpp @@ -5,7 +5,7 @@ #include #include "debug.h" #include "timer.h" -#include "action_util.h" +#include "gpio.h" #include "ringbuffer.hpp" #include #include "spi_master.h" @@ -288,7 +288,7 @@ static void resp_buf_wait(const char *cmd) { } } -static bool ble_init(void) { +void bluefruit_le_init(void) { state.initialized = false; state.configured = false; state.is_connected = false; @@ -307,7 +307,6 @@ static bool ble_init(void) { wait_ms(1000); // Give it a second to initialize state.initialized = true; - return state.initialized; } static inline uint8_t min(uint8_t a, uint8_t b) { @@ -431,7 +430,7 @@ bool bluefruit_le_is_connected(void) { bool bluefruit_le_enable_keyboard(void) { char resbuf[128]; - if (!state.initialized && !ble_init()) { + if (!state.initialized) { return false; } @@ -613,41 +612,24 @@ static bool process_queue_item(struct queue_item *item, uint16_t timeout) { } } -void bluefruit_le_send_keys(uint8_t hid_modifier_mask, uint8_t *keys, uint8_t nkeys) { +void bluefruit_le_send_keyboard(report_keyboard_t *report) { struct queue_item item; - bool didWait = false; item.queue_type = QTKeyReport; - item.key.modifier = hid_modifier_mask; - item.added = timer_read(); + item.key.modifier = report->mods; + item.key.keys[0] = report->keys[0]; + item.key.keys[1] = report->keys[1]; + item.key.keys[2] = report->keys[2]; + item.key.keys[3] = report->keys[3]; + item.key.keys[4] = report->keys[4]; + item.key.keys[5] = report->keys[5]; - while (nkeys >= 0) { - item.key.keys[0] = keys[0]; - item.key.keys[1] = nkeys >= 1 ? keys[1] : 0; - item.key.keys[2] = nkeys >= 2 ? keys[2] : 0; - item.key.keys[3] = nkeys >= 3 ? keys[3] : 0; - item.key.keys[4] = nkeys >= 4 ? keys[4] : 0; - item.key.keys[5] = nkeys >= 5 ? keys[5] : 0; - - if (!send_buf.enqueue(item)) { - if (!didWait) { - dprint("wait for buf space\n"); - didWait = true; - } - send_buf_send_one(); - continue; - } - - if (nkeys <= 6) { - return; - } - - nkeys -= 6; - keys += 6; + while (!send_buf.enqueue(item)) { + send_buf_send_one(); } } -void bluefruit_le_send_consumer_key(uint16_t usage) { +void bluefruit_le_send_consumer(uint16_t usage) { struct queue_item item; item.queue_type = QTConsumer; @@ -658,15 +640,15 @@ void bluefruit_le_send_consumer_key(uint16_t usage) { } } -void bluefruit_le_send_mouse_move(int8_t x, int8_t y, int8_t scroll, int8_t pan, uint8_t buttons) { +void bluefruit_le_send_mouse(report_mouse_t *report) { struct queue_item item; item.queue_type = QTMouseMove; - item.mousemove.x = x; - item.mousemove.y = y; - item.mousemove.scroll = scroll; - item.mousemove.pan = pan; - item.mousemove.buttons = buttons; + item.mousemove.x = report->x; + item.mousemove.y = report->y; + item.mousemove.scroll = report->v; + item.mousemove.pan = report->h; + item.mousemove.buttons = report->buttons; while (!send_buf.enqueue(item)) { send_buf_send_one(); diff --git a/drivers/bluetooth/bluefruit_le.h b/drivers/bluetooth/bluefruit_le.h index 731ba2e3704..a3de03c35c3 100644 --- a/drivers/bluetooth/bluefruit_le.h +++ b/drivers/bluetooth/bluefruit_le.h @@ -7,9 +7,7 @@ #include #include -#include - -#include "config_common.h" +#include "report.h" #ifdef __cplusplus extern "C" { @@ -26,6 +24,8 @@ extern bool bluefruit_le_query_is_connected(void); * calling ble_task() periodically. */ extern bool bluefruit_le_is_connected(void); +extern void bluefruit_le_init(void); + /* Call this periodically to process BLE-originated things */ extern void bluefruit_le_task(void); @@ -34,16 +34,16 @@ extern void bluefruit_le_task(void); * this set of keys. * Also sends a key release indicator, so that the keys do not remain * held down. */ -extern void bluefruit_le_send_keys(uint8_t hid_modifier_mask, uint8_t *keys, uint8_t nkeys); +extern void bluefruit_le_send_keyboard(report_keyboard_t *report); /* Send a consumer usage. * (milliseconds) */ -extern void bluefruit_le_send_consumer_key(uint16_t usage); +extern void bluefruit_le_send_consumer(uint16_t usage); /* Send a mouse/wheel movement report. * The parameters are signed and indicate positive or negative direction * change. */ -extern void bluefruit_le_send_mouse_move(int8_t x, int8_t y, int8_t scroll, int8_t pan, uint8_t buttons); +extern void bluefruit_le_send_mouse(report_mouse_t *report); /* Compute battery voltage by reading an analog pin. * Returns the integer number of millivolts */ diff --git a/drivers/bluetooth/bluetooth.c b/drivers/bluetooth/bluetooth.c new file mode 100644 index 00000000000..d5382401e7e --- /dev/null +++ b/drivers/bluetooth/bluetooth.c @@ -0,0 +1,62 @@ +/* + * Copyright 2022 + * + * 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 "bluetooth.h" + +#if defined(BLUETOOTH_BLUEFRUIT_LE) +# include "bluefruit_le.h" +#elif defined(BLUETOOTH_RN42) +# include "rn42.h" +#endif + +void bluetooth_init(void) { +#if defined(BLUETOOTH_BLUEFRUIT_LE) + bluefruit_le_init(); +#elif defined(BLUETOOTH_RN42) + rn42_init(); +#endif +} + +void bluetooth_task(void) { +#if defined(BLUETOOTH_BLUEFRUIT_LE) + bluefruit_le_task(); +#endif +} + +void bluetooth_send_keyboard(report_keyboard_t *report) { +#if defined(BLUETOOTH_BLUEFRUIT_LE) + bluefruit_le_send_keyboard(report); +#elif defined(BLUETOOTH_RN42) + rn42_send_keyboard(report); +#endif +} + +void bluetooth_send_mouse(report_mouse_t *report) { +#if defined(BLUETOOTH_BLUEFRUIT_LE) + bluefruit_le_send_mouse(report); +#elif defined(BLUETOOTH_RN42) + rn42_send_mouse(report); +#endif +} + +void bluetooth_send_consumer(uint16_t usage) { +#if defined(BLUETOOTH_BLUEFRUIT_LE) + bluefruit_le_send_consumer(usage); +#elif defined(BLUETOOTH_RN42) + rn42_send_consumer(usage); +#endif +} diff --git a/drivers/bluetooth/bluetooth.h b/drivers/bluetooth/bluetooth.h new file mode 100644 index 00000000000..2e4d0df5381 --- /dev/null +++ b/drivers/bluetooth/bluetooth.h @@ -0,0 +1,52 @@ +/* + * Copyright 2022 + * + * 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 "report.h" + +/** + * \brief Initialize the Bluetooth system. + */ +void bluetooth_init(void); + +/** + * \brief Perform housekeeping tasks. + */ +void bluetooth_task(void); + +/** + * \brief Send a keyboard report. + * + * \param report The keyboard report to send. + */ +void bluetooth_send_keyboard(report_keyboard_t *report); + +/** + * \brief Send a mouse report. + * + * \param report The mouse report to send. + */ +void bluetooth_send_mouse(report_mouse_t *report); + +/** + * \brief Send a consumer usage. + * + * \param usage The consumer usage to send. + */ +void bluetooth_send_consumer(uint16_t usage); diff --git a/drivers/oled/oled_driver.h b/drivers/oled/oled_driver.h index 918b837f07e..e9b8c5b4e87 100644 --- a/drivers/oled/oled_driver.h +++ b/drivers/oled/oled_driver.h @@ -260,7 +260,7 @@ void oled_write_ln_P(const char *data, bool invert); void oled_write_raw_P(const char *data, uint16_t size); #else # define oled_write_P(data, invert) oled_write(data, invert) -# define oled_write_ln_P(data, invert) oled_write(data, invert) +# define oled_write_ln_P(data, invert) oled_write_ln(data, invert) # define oled_write_raw_P(data, size) oled_write_raw(data, size) #endif // defined(__AVR__) diff --git a/drivers/ps2/ps2_interrupt.c b/drivers/ps2/ps2_interrupt.c index c9a9f1e1ec5..2810a0f1267 100644 --- a/drivers/ps2/ps2_interrupt.c +++ b/drivers/ps2/ps2_interrupt.c @@ -76,17 +76,18 @@ void palCallback(void *arg) { } # define PS2_INT_INIT() \ - { palSetLineMode(PS2_CLOCK_PIN, PAL_MODE_INPUT); } \ - while (0) + do { \ + palSetLineMode(PS2_CLOCK_PIN, PAL_MODE_INPUT); \ + } while (0) # define PS2_INT_ON() \ - { \ + do { \ palEnableLineEvent(PS2_CLOCK_PIN, PAL_EVENT_MODE_FALLING_EDGE); \ palSetLineCallback(PS2_CLOCK_PIN, palCallback, NULL); \ - } \ - while (0) + } while (0) # define PS2_INT_OFF() \ - { palDisableLineEvent(PS2_CLOCK_PIN); } \ - while (0) + do { \ + palDisableLineEvent(PS2_CLOCK_PIN); \ + } while (0) #endif // PROTOCOL_CHIBIOS void ps2_host_init(void) { diff --git a/keyboards/1upkeyboards/pi60_hse/config.h b/keyboards/1upkeyboards/pi60_hse/config.h new file mode 100644 index 00000000000..0a6d6274a81 --- /dev/null +++ b/keyboards/1upkeyboards/pi60_hse/config.h @@ -0,0 +1,71 @@ +// Copyright 2022 ziptyze (@ziptyze) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "config_common.h" + +#define DYNAMIC_KEYMAP_LAYER_COUNT 10 +#define RGB_DI_PIN GP15 +#define RGB_MATRIX_LED_COUNT 16 +#define RGBLED_NUM 16 +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS +#define RGB_MATRIX_KEYPRESSES +#define RGB_DISABLE_WHEN_USB_SUSPENDED +// 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 + +/* 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 + +/* Bootmagic Lite key configuration */ +#define BOOTMAGIC_LITE_ROW 0 +#define BOOTMAGIC_LITE_COLUMN 0 \ No newline at end of file diff --git a/keyboards/1upkeyboards/pi60_hse/info.json b/keyboards/1upkeyboards/pi60_hse/info.json new file mode 100644 index 00000000000..012d6698a66 --- /dev/null +++ b/keyboards/1upkeyboards/pi60_hse/info.json @@ -0,0 +1,124 @@ +{ + "manufacturer": "1upkeyboards", + "keyboard_name": "pi60_hse", + "maintainer": "ziptyze", + "processor": "RP2040", + "bootloader": "rp2040", + "board": "GENERIC_RP_RP2040", + "usb": { + "device_version": "1.0.0", + "pid": "0x5603", + "vid": "0x6F75" + }, + "debounce": 5, + "diode_direction": "COL2ROW", + "features": { + "audio": false, + "backlight": false, + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": false, + "rgb_matrix": true, + "rgblight": false + }, + "matrix_pins": { + "cols": ["GP9", "GP8", "GP6", "GP5", "GP14", "GP20", "GP13", "GP12", "GP11", "GP16", "GP17", "GP10", "GP19", "GP18"], + "rows": ["GP4", "GP3", "GP2", "GP1", "GP0", "GP21"] + }, + "rgb_matrix": { + "driver": "WS2812", + "layout": [ + { "flags": 2, "x": 98, "y": 51 }, + { "flags": 2, "x": 68, "y": 51 }, + { "flags": 2, "x": 41, "y": 51 }, + { "flags": 2, "x": 12, "y": 51 }, + { "flags": 2, "x": 12, "y": 13 }, + { "flags": 2, "x": 41, "y": 13 }, + { "flags": 2, "x": 69, "y": 13 }, + { "flags": 2, "x": 98, "y": 13 }, + { "flags": 2, "x": 126, "y": 13 }, + { "flags": 2, "x": 155, "y": 13 }, + { "flags": 2, "x": 183, "y": 13 }, + { "flags": 2, "x": 212, "y": 13 }, + { "flags": 2, "x": 208, "y": 51 }, + { "flags": 2, "x": 183, "y": 51 }, + { "flags": 2, "x": 157, "y": 51 }, + { "flags": 2, "x": 126, "y": 51 } + ] + }, + "community_layouts": [ + "60_ansi_split_bs_rshift" + ], + "layouts": { + "LAYOUT_60_ansi_split_bs_rshift": { + "layout": [ + { "label": "Esc", "matrix": [0, 0], "w": 1, "x": 0, "y": 0 }, + { "label": "1", "matrix": [0, 1], "w": 1, "x": 1, "y": 0 }, + { "label": "2", "matrix": [0, 2], "w": 1, "x": 2, "y": 0 }, + { "label": "3", "matrix": [0, 3], "w": 1, "x": 3, "y": 0 }, + { "label": "4", "matrix": [0, 4], "w": 1, "x": 4, "y": 0 }, + { "label": "5", "matrix": [0, 5], "w": 1, "x": 5, "y": 0 }, + { "label": "6", "matrix": [0, 6], "w": 1, "x": 6, "y": 0 }, + { "label": "7", "matrix": [0, 7], "w": 1, "x": 7, "y": 0 }, + { "label": "8", "matrix": [0, 8], "w": 1, "x": 8, "y": 0 }, + { "label": "9", "matrix": [0, 9], "w": 1, "x": 9, "y": 0 }, + { "label": "0", "matrix": [0, 10], "w": 1, "x": 10, "y": 0 }, + { "label": "-", "matrix": [0, 11], "w": 1, "x": 11, "y": 0 }, + { "label": "=", "matrix": [0, 12], "w": 1, "x": 12, "y": 0 }, + { "label": "BS", "matrix": [0, 13], "w": 1, "x": 13, "y": 0 }, + { "label": "~", "matrix": [1, 13], "w": 1, "x": 14, "y": 0 }, + { "label": "Tab", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "label": "Q", "matrix": [1, 1], "w": 1, "x": 1.5, "y": 1 }, + { "label": "W", "matrix": [1, 2], "w": 1, "x": 2.5, "y": 1 }, + { "label": "E", "matrix": [1, 3], "w": 1, "x": 3.5, "y": 1 }, + { "label": "R", "matrix": [1, 4], "w": 1, "x": 4.5, "y": 1 }, + { "label": "T", "matrix": [1, 5], "w": 1, "x": 5.5, "y": 1 }, + { "label": "Y", "matrix": [1, 6], "w": 1, "x": 6.5, "y": 1 }, + { "label": "U", "matrix": [1, 7], "w": 1, "x": 7.5, "y": 1 }, + { "label": "I", "matrix": [1, 8], "w": 1, "x": 8.5, "y": 1 }, + { "label": "O", "matrix": [1, 9], "w": 1, "x": 9.5, "y": 1 }, + { "label": "P", "matrix": [1, 10], "w": 1, "x": 10.5, "y": 1 }, + { "label": "[", "matrix": [1, 11], "w": 1, "x": 11.5, "y": 1 }, + { "label": "]", "matrix": [1, 12], "w": 1, "x": 12.5, "y": 1 }, + { "label": "|", "matrix": [2, 12], "w": 1.5, "x": 13.5, "y": 1 }, + { "label": "Caps", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "label": "A", "matrix": [2, 1], "w": 1, "x": 1.75, "y": 2 }, + { "label": "S", "matrix": [2, 2], "w": 1, "x": 2.75, "y": 2 }, + { "label": "D", "matrix": [2, 3], "w": 1, "x": 3.75, "y": 2 }, + { "label": "F", "matrix": [2, 4], "w": 1, "x": 4.75, "y": 2 }, + { "label": "G", "matrix": [2, 5], "w": 1, "x": 5.75, "y": 2 }, + { "label": "H", "matrix": [2, 6], "w": 1, "x": 6.75, "y": 2 }, + { "label": "J", "matrix": [2, 7], "w": 1, "x": 7.75, "y": 2 }, + { "label": "K", "matrix": [2, 8], "w": 1, "x": 8.75, "y": 2 }, + { "label": "L", "matrix": [2, 9], "w": 1, "x": 9.75, "y": 2 }, + { "label": ";", "matrix": [2, 10], "w": 1, "x": 10.75, "y": 2 }, + { "label": "'", "matrix": [2, 11], "w": 1, "x": 11.75, "y": 2 }, + { "label": "Enter", "matrix": [2, 13], "w": 2.25, "x": 12.75, "y": 2 }, + { "label": "LShift", "matrix": [3, 0], "w": 2.25, "x": 0, "y": 3 }, + { "label": "Z", "matrix": [3, 1], "w": 1, "x": 2.25, "y": 3 }, + { "label": "X", "matrix": [3, 2], "w": 1, "x": 3.25, "y": 3 }, + { "label": "C", "matrix": [3, 3], "w": 1, "x": 4.25, "y": 3 }, + { "label": "V", "matrix": [3, 4], "w": 1, "x": 5.25, "y": 3 }, + { "label": "B", "matrix": [3, 5], "w": 1, "x": 6.25, "y": 3 }, + { "label": "N", "matrix": [3, 6], "w": 1, "x": 7.25, "y": 3 }, + { "label": "M", "matrix": [3, 7], "w": 1, "x": 8.25, "y": 3 }, + { "label": ",", "matrix": [3, 8], "w": 1, "x": 9.25, "y": 3 }, + { "label": ".", "matrix": [3, 9], "w": 1, "x": 10.25, "y": 3 }, + { "label": "/", "matrix": [3, 10], "w": 1, "x": 11.25, "y": 3 }, + { "label": "RShift", "matrix": [3, 12], "w": 1.75, "x": 12.25, "y": 3 }, + { "label": "FN", "matrix": [3, 13], "w": 1, "x": 14, "y": 3 }, + { "label": "LCtrl", "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4 }, + { "label": "LGui", "matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4 }, + { "label": "LAlt", "matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4 }, + { "label": "Space", "matrix": [5, 5], "w": 6.25, "x": 3.75, "y": 4 }, + { "label": "RAlt", "matrix": [5, 9], "w": 1.25, "x": 10, "y": 4 }, + { "label": "RGui", "matrix": [5, 10], "w": 1.25, "x": 11.25, "y": 4 }, + { "label": "Menu", "matrix": [5, 12], "w": 1.25, "x": 12.5, "y": 4 }, + { "label": "RCtrl", "matrix": [5, 13], "w": 1.25, "x": 13.75, "y": 4 } + ] + } + } +} \ No newline at end of file diff --git a/keyboards/1upkeyboards/pi60_hse/keymaps/default/keymap.c b/keyboards/1upkeyboards/pi60_hse/keymaps/default/keymap.c new file mode 100644 index 00000000000..5548adb7ba3 --- /dev/null +++ b/keyboards/1upkeyboards/pi60_hse/keymaps/default/keymap.c @@ -0,0 +1,44 @@ +/* Copyright 2022 ziptyze + * + * 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_60_ansi_split_bs_rshift( + 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_GRV, + 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(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL + ), + + [1] = LAYOUT_60_ansi_split_bs_rshift( + 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_TRNS, + KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_TRNS, + KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_HOME, KC_PGUP, KC_TRNS, + KC_TRNS, KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_PGDN, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(2), KC_TRNS, KC_TRNS + ), + + [2] = LAYOUT_60_ansi_split_bs_rshift( + 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, + RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW,KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_RMOD,RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, RGB_M_SN,RGB_M_K, RGB_M_X, RGB_M_G, 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/1upkeyboards/pi60_hse/keymaps/via/keymap.c b/keyboards/1upkeyboards/pi60_hse/keymaps/via/keymap.c new file mode 100644 index 00000000000..1f38a7c4c13 --- /dev/null +++ b/keyboards/1upkeyboards/pi60_hse/keymaps/via/keymap.c @@ -0,0 +1,100 @@ +/* Copyright 2022 ziptyze + * + * 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_60_ansi_split_bs_rshift( + 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_GRV, + 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(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL + ), + + [1] = LAYOUT_60_ansi_split_bs_rshift( + 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_TRNS, + KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_TRNS, + KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_HOME, KC_PGUP, KC_TRNS, + KC_TRNS, KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_PGDN, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(2), KC_TRNS, KC_TRNS + ), + + [2] = LAYOUT_60_ansi_split_bs_rshift( + 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, + RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW,KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_RMOD,RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, RGB_M_SN,RGB_M_K, RGB_M_X, RGB_M_G, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [3] = LAYOUT_60_ansi_split_bs_rshift( + 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 + ), + + [4] = LAYOUT_60_ansi_split_bs_rshift( + 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 + ), + + [5] = LAYOUT_60_ansi_split_bs_rshift( + 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 + ), + + [6] = LAYOUT_60_ansi_split_bs_rshift( + 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 + ), + + [7] = LAYOUT_60_ansi_split_bs_rshift( + 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 + ), + + [8] = LAYOUT_60_ansi_split_bs_rshift( + 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 + ), + + [9] = LAYOUT_60_ansi_split_bs_rshift( + 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/mechlovin/infinity87/keymaps/via/rules.mk b/keyboards/1upkeyboards/pi60_hse/keymaps/via/rules.mk similarity index 100% rename from keyboards/mechlovin/infinity87/keymaps/via/rules.mk rename to keyboards/1upkeyboards/pi60_hse/keymaps/via/rules.mk diff --git a/keyboards/1upkeyboards/pi60_hse/readme.md b/keyboards/1upkeyboards/pi60_hse/readme.md new file mode 100644 index 00000000000..cc6ee8812f1 --- /dev/null +++ b/keyboards/1upkeyboards/pi60_hse/readme.md @@ -0,0 +1,23 @@ +# pi60_hse + +The pi60 HSE is the update to the original 1up Keyboards 60% HSE. This keyboard features a multi layout hot swap PCB with options for split backspace, split right shift, and 6.25u and 7u space bottom rows. The controller is a Raspberry Pi rp2040 microcontroller. + +* Keyboard Maintainer: [ziptyze](https://github.com/ziptyze) +* Hardware Availability: (https://1upkeyboards.com/shop/controllers/1upkeyboards-pi60hse-60-pcb/) + +Make example for this keyboard (after setting up your build environment): + + make 1upkeyboards/pi60_hse:default + +Flashing example for this keyboard: + + make 1upkeyboards/pi60_hse: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 2 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 +* **Bootloader button**: Hold the button on the back of the PCB and plug in the keyboard diff --git a/keyboards/1upkeyboards/pi60_hse/rules.mk b/keyboards/1upkeyboards/pi60_hse/rules.mk new file mode 100644 index 00000000000..997fce7e65c --- /dev/null +++ b/keyboards/1upkeyboards/pi60_hse/rules.mk @@ -0,0 +1 @@ +WS2812_DRIVER = vendor diff --git a/keyboards/1upkeyboards/sweet16/v2/promicro/config.h b/keyboards/1upkeyboards/sweet16/v2/promicro/config.h deleted file mode 100644 index 8bacff2f6e5..00000000000 --- a/keyboards/1upkeyboards/sweet16/v2/promicro/config.h +++ /dev/null @@ -1,26 +0,0 @@ -#pragma once - -#include "config_common.h" - -/* key matrix pins */ -#define MATRIX_ROW_PINS { D4, D1, E6, B5 } -#define MATRIX_COL_PINS { F7, F6, D2, D3 } - -/* COL2ROW or ROW2COL */ -#define DIODE_DIRECTION ROW2COL - -/* Set 0 if debouncing isn't needed */ -#define DEBOUNCE 5 - -/* Encoder pins */ -#define ENCODERS_PAD_A { F4 } -#define ENCODERS_PAD_B { F5 } -#define ENCODER_RESOLUTION 4 - -/* Underglow options */ -#define RGB_DI_PIN F4 -#define RGBLIGHT_ANIMATIONS -#define RGBLED_NUM 1 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/1upkeyboards/sweet16/v2/promicro/info.json b/keyboards/1upkeyboards/sweet16/v2/promicro/info.json deleted file mode 100644 index bed6579e824..00000000000 --- a/keyboards/1upkeyboards/sweet16/v2/promicro/info.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "usb": { - "pid": "0x0162", - "device_version": "0.0.1" - } -} diff --git a/keyboards/1upkeyboards/sweet16/v2/promicro/promicro.c b/keyboards/1upkeyboards/sweet16/v2/promicro/promicro.c deleted file mode 100644 index d850a3b5c61..00000000000 --- a/keyboards/1upkeyboards/sweet16/v2/promicro/promicro.c +++ /dev/null @@ -1,8 +0,0 @@ -#include "promicro.h" -#include "encoder.h" - -#ifdef ENCODER_ENABLED -bool encoder_update_kb(uint8_t index, bool clockwise) { - return encoder_update_user(index, clockwise); -} -#endif diff --git a/keyboards/1upkeyboards/sweet16/v2/promicro/promicro.h b/keyboards/1upkeyboards/sweet16/v2/promicro/promicro.h deleted file mode 100644 index 7320ccd9e07..00000000000 --- a/keyboards/1upkeyboards/sweet16/v2/promicro/promicro.h +++ /dev/null @@ -1,30 +0,0 @@ -#pragma once - -#include "quantum.h" - -// Any changes to the layout names and/or definitions must also be made to info.json - -#define LAYOUT_ortho_4x4( \ - K00, K01, K02, K03, \ - K10, K11, K12, K13, \ - K20, K21, K22, K23, \ - K30, K31, K32, K33 \ -) { \ - { K00, K01, K02, K03 }, \ - { K10, K11, K12, K13 }, \ - { K20, K21, K22, K23 }, \ - { K30, K31, K32, K33 } \ -} - -#define LAYOUT_numpad_4x4( \ - K00, K01, K02, K03, \ - K10, K11, K12, \ - K20, K21, K22, K23, \ - K31, K32 \ -) { \ - { K00, K01, K02, K03 }, \ - { K10, K11, K12, KC_NO }, \ - { K20, K21, K22, K23 }, \ - { KC_NO, K31, K32, KC_NO } \ -} - diff --git a/keyboards/1upkeyboards/sweet16/v2/promicro/readme.md b/keyboards/1upkeyboards/sweet16/v2/promicro/readme.md deleted file mode 100644 index 584b446511d..00000000000 --- a/keyboards/1upkeyboards/sweet16/v2/promicro/readme.md +++ /dev/null @@ -1,13 +0,0 @@ -# Sweet16 V2 (Pro Micro) - -A 4x4 numpad/macro pad sold by 1up Keyboards - designed by Clueboard - -* Keyboard Maintainer: skullydazed -* Hardware Supported: Sweet16 V2 PCB, Pro Micro -* Hardware Availability: [1up Keyboards](https://1upkeyboards.com/) - -Make example for this keyboard (after setting up your build environment): - - make 1upkeyboards/sweet16/v2/promicro:default - -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/1upkeyboards/sweet16/v2/promicro/rules.mk b/keyboards/1upkeyboards/sweet16/v2/promicro/rules.mk deleted file mode 100644 index a8249511bce..00000000000 --- a/keyboards/1upkeyboards/sweet16/v2/promicro/rules.mk +++ /dev/null @@ -1,14 +0,0 @@ -# MCU name -MCU = atmega32u4 - -# Bootloader selection -BOOTLOADER = caterina - -## Features -CONSOLE_ENABLE = yes - -## On a Pro Micro you have to choose between underglow and the rotary encoder. -RGBLIGHT_ENABLE = no -ENCODER_ENABLE = yes - -LTO_ENABLE = yes diff --git a/keyboards/1upkeyboards/sweet16/v2/proton_c/config.h b/keyboards/1upkeyboards/sweet16/v2/proton_c/config.h deleted file mode 100644 index e1d66894b3d..00000000000 --- a/keyboards/1upkeyboards/sweet16/v2/proton_c/config.h +++ /dev/null @@ -1,19 +0,0 @@ -#pragma once - -#include "config_common.h" - -/* key matrix pins */ -#define MATRIX_ROW_PINS { B5, B7, B2, B0 } -#define MATRIX_COL_PINS { B8, A0, A10, A9 } - -/* COL2ROW or ROW2COL */ -#define DIODE_DIRECTION ROW2COL - -/* Encoder pins */ -#define ENCODERS_PAD_A { A2 } -#define ENCODERS_PAD_B { A1 } -#define ENCODER_RESOLUTION 4 - -#define AUDIO_PIN A5 -#define AUDIO_PIN_ALT A4 -#define AUDIO_PIN_ALT_AS_NEGATIVE diff --git a/keyboards/1upkeyboards/sweet16/v2/proton_c/info.json b/keyboards/1upkeyboards/sweet16/v2/proton_c/info.json deleted file mode 100644 index bed6579e824..00000000000 --- a/keyboards/1upkeyboards/sweet16/v2/proton_c/info.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "usb": { - "pid": "0x0162", - "device_version": "0.0.1" - } -} diff --git a/keyboards/1upkeyboards/sweet16/v2/proton_c/proton_c.c b/keyboards/1upkeyboards/sweet16/v2/proton_c/proton_c.c deleted file mode 100644 index b08e33e81b0..00000000000 --- a/keyboards/1upkeyboards/sweet16/v2/proton_c/proton_c.c +++ /dev/null @@ -1 +0,0 @@ -#include "proton_c.h" diff --git a/keyboards/1upkeyboards/sweet16/v2/proton_c/proton_c.h b/keyboards/1upkeyboards/sweet16/v2/proton_c/proton_c.h deleted file mode 100644 index 7320ccd9e07..00000000000 --- a/keyboards/1upkeyboards/sweet16/v2/proton_c/proton_c.h +++ /dev/null @@ -1,30 +0,0 @@ -#pragma once - -#include "quantum.h" - -// Any changes to the layout names and/or definitions must also be made to info.json - -#define LAYOUT_ortho_4x4( \ - K00, K01, K02, K03, \ - K10, K11, K12, K13, \ - K20, K21, K22, K23, \ - K30, K31, K32, K33 \ -) { \ - { K00, K01, K02, K03 }, \ - { K10, K11, K12, K13 }, \ - { K20, K21, K22, K23 }, \ - { K30, K31, K32, K33 } \ -} - -#define LAYOUT_numpad_4x4( \ - K00, K01, K02, K03, \ - K10, K11, K12, \ - K20, K21, K22, K23, \ - K31, K32 \ -) { \ - { K00, K01, K02, K03 }, \ - { K10, K11, K12, KC_NO }, \ - { K20, K21, K22, K23 }, \ - { KC_NO, K31, K32, KC_NO } \ -} - diff --git a/keyboards/1upkeyboards/sweet16/v2/proton_c/readme.md b/keyboards/1upkeyboards/sweet16/v2/proton_c/readme.md deleted file mode 100644 index 6806cc5739e..00000000000 --- a/keyboards/1upkeyboards/sweet16/v2/proton_c/readme.md +++ /dev/null @@ -1,13 +0,0 @@ -# Sweet16 V2 (Proton C) - -A 4x4 numpad/macro pad sold by 1up Keyboards - designed by Clueboard - -* Keyboard Maintainer: skullydazed -* Hardware Supported: Sweet16 V2 PCB, Proton C -* Hardware Availability: [1up Keyboards](https://1upkeyboards.com/) - -Make example for this keyboard (after setting up your build environment): - - make 1upkeyboards/sweet16/v2/proton_c:default - -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/1upkeyboards/sweet16/v2/proton_c/rules.mk b/keyboards/1upkeyboards/sweet16/v2/proton_c/rules.mk deleted file mode 100644 index fcfa05c3a1f..00000000000 --- a/keyboards/1upkeyboards/sweet16/v2/proton_c/rules.mk +++ /dev/null @@ -1,11 +0,0 @@ -# MCU name -MCU = STM32F303 -BOARD = QMK_PROTON_C - -# Bootloader selection -BOOTLOADER = stm32-dfu - -## Features -CONSOLE_ENABLE = yes -ENCODER_ENABLE = yes -AUDIO_ENABLE = yes diff --git a/keyboards/1upkeyboards/sweet16v2/kb2040/config.h b/keyboards/1upkeyboards/sweet16v2/kb2040/config.h new file mode 100644 index 00000000000..3b0a332c429 --- /dev/null +++ b/keyboards/1upkeyboards/sweet16v2/kb2040/config.h @@ -0,0 +1,84 @@ +/* Copyright 2022 ziptyze + * + * 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" + +#define DYNAMIC_KEYMAP_LAYER_COUNT 10 +#define RGB_DI_PIN GP6 +#define RGB_MATRIX_LED_COUNT 20 +#define RGBLED_NUM 20 +#define RGB_MATRIX_KEYPRESSES +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS +#define RGB_DISABLE_WHEN_USB_SUSPENDED +// 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 + +/* 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 + +/* Bootmagic Lite key configuration */ +#define BOOTMAGIC_LITE_ROW 0 +#define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/1upkeyboards/sweet16v2/kb2040/info.json b/keyboards/1upkeyboards/sweet16v2/kb2040/info.json new file mode 100644 index 00000000000..91fa5803547 --- /dev/null +++ b/keyboards/1upkeyboards/sweet16v2/kb2040/info.json @@ -0,0 +1,95 @@ +{ + "manufacturer": "1upkeyboards", + "keyboard_name": "sweet16v2", + "url": "1upkeyboards.com/shop/keyboard-kits/macro-pads/sweet-16-v2-macropad-kit/", + "maintainer": "ziptyze", + "processor": "RP2040", + "bootloader": "rp2040", + "board": "GENERIC_RP_RP2040", + "usb": { + "device_version": "1.0.0", + "pid": "0x5518", + "vid": "0x6F75" + }, + "features": { + "audio": false, + "backlight": false, + "bootmagic": true, + "command": false, + "console": false, + "encoder": true, + "extrakey": true, + "mousekey": true, + "nkro": false, + "rgb_matrix": true, + "rgblight": false + }, + "matrix_pins": { + "cols": ["GP2", "GP9", "GP8", "GP7"], + "rows": ["GP26", "GP1", "GP18", "GP5"] + }, + "diode_direction": "COL2ROW", + "encoder": { + "enabled": true, + "rotary": [ + { + "pin_a": "GP27", + "pin_b": "GP28" + }, + { + "pin_a": "GP4", + "pin_b": "GP3" + } + ] + }, + "rgb_matrix": { + "driver": "WS2812", + "layout": [ + { "flags": 4, "matrix": [0, 0], "x": 28, "y": 12 }, + { "flags": 4, "matrix": [0, 1], "x": 84, "y": 12 }, + { "flags": 4, "matrix": [0, 2], "x": 140, "y": 12 }, + { "flags": 4, "matrix": [0, 3], "x": 196, "y": 12 }, + { "flags": 2, "x": 196, "y": 17 }, + { "flags": 4, "matrix": [1, 3], "x": 196, "y": 28 }, + { "flags": 4, "matrix": [1, 2], "x": 140, "y": 28 }, + { "flags": 4, "matrix": [1, 1], "x": 84, "y": 28 }, + { "flags": 2, "x": 28, "y": 17 }, + { "flags": 4, "matrix": [1, 0], "x": 28, "y": 28 }, + { "flags": 4, "matrix": [2, 0], "x": 28, "y": 44 }, + { "flags": 4, "matrix": [2, 1], "x": 84, "y": 44 }, + { "flags": 4, "matrix": [2, 2], "x": 140, "y": 44 }, + { "flags": 4, "matrix": [2, 3], "x": 196, "y": 44 }, + { "flags": 2, "x": 196, "y": 47 }, + { "flags": 4, "matrix": [3, 3], "x": 196, "y": 60 }, + { "flags": 4, "matrix": [3, 2], "x": 140, "y": 60 }, + { "flags": 4, "matrix": [3, 1], "x": 84, "y": 60 }, + { "flags": 2, "x": 28, "y": 47 }, + { "flags": 4, "matrix": [3, 0], "x": 28, "y": 60 } + ] + }, + "community_layouts": [ + "ortho_4x4" + ], + "layouts": { + "LAYOUT_ortho_4x4": { + "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": [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": [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": [3, 0], "x": 0, "y": 3 }, + { "matrix": [3, 1], "x": 1, "y": 3 }, + { "matrix": [3, 2], "x": 2, "y": 3 }, + { "matrix": [3, 3], "x": 3, "y": 3 } + ] + } + } +} \ No newline at end of file diff --git a/keyboards/1upkeyboards/sweet16v2/kb2040/rules.mk b/keyboards/1upkeyboards/sweet16v2/kb2040/rules.mk new file mode 100644 index 00000000000..997fce7e65c --- /dev/null +++ b/keyboards/1upkeyboards/sweet16v2/kb2040/rules.mk @@ -0,0 +1 @@ +WS2812_DRIVER = vendor diff --git a/keyboards/1upkeyboards/sweet16v2/keymaps/default/keymap.c b/keyboards/1upkeyboards/sweet16v2/keymaps/default/keymap.c new file mode 100644 index 00000000000..1994a5bde1e --- /dev/null +++ b/keyboards/1upkeyboards/sweet16v2/keymaps/default/keymap.c @@ -0,0 +1,41 @@ +/* Copyright 2022 ziptyze + * + * 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_ortho_4x4( + KC_P7, KC_P8, KC_P9, KC_PMNS, + KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_P1, KC_P2, KC_P3, KC_PSLS, + MO(1), KC_P0, KC_PDOT, KC_PENT + ), + + [1] = LAYOUT_ortho_4x4( + RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, + RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, + RGB_SPD, RGB_SPI, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT + ) +}; + + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(RGB_VAD, RGB_VAI) }, + [1] = { 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/1upkeyboards/sweet16v2/keymaps/default/readme.md b/keyboards/1upkeyboards/sweet16v2/keymaps/default/readme.md new file mode 100644 index 00000000000..fcf8c872348 --- /dev/null +++ b/keyboards/1upkeyboards/sweet16v2/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for Sweet 16 V2 diff --git a/keyboards/1upkeyboards/sweet16v2/keymaps/via/keymap.c b/keyboards/1upkeyboards/sweet16v2/keymaps/via/keymap.c new file mode 100644 index 00000000000..8bb0368d098 --- /dev/null +++ b/keyboards/1upkeyboards/sweet16v2/keymaps/via/keymap.c @@ -0,0 +1,105 @@ +/* Copyright 2022 ziptyze + * + * 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_ortho_4x4( + KC_P7, KC_P8, KC_P9, KC_PMNS, + KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_P1, KC_P2, KC_P3, KC_PSLS, + MO(1), KC_P0, KC_PDOT, KC_PENT + ), + + [1] = LAYOUT_ortho_4x4( + RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, + RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, + RGB_SPD, RGB_SPI, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT + ), + + [2] = LAYOUT_ortho_4x4( + 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_ortho_4x4( + 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 + ), + + [4] = LAYOUT_ortho_4x4( + 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] = LAYOUT_ortho_4x4( + 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] = LAYOUT_ortho_4x4( + 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 + ), + + [7] = LAYOUT_ortho_4x4( + 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] = LAYOUT_ortho_4x4( + 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 + ), + + [9] = LAYOUT_ortho_4x4( + 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 + ), +}; + + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [4] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [5] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [6] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [7] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [8] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [9] = { 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/1upkeyboards/sweet16v2/keymaps/via/readme.md b/keyboards/1upkeyboards/sweet16v2/keymaps/via/readme.md new file mode 100644 index 00000000000..b0fba0bdd91 --- /dev/null +++ b/keyboards/1upkeyboards/sweet16v2/keymaps/via/readme.md @@ -0,0 +1 @@ +# The default keymap for via on the Sweet 16 V2 diff --git a/keyboards/1upkeyboards/sweet16v2/keymaps/via/rules.mk b/keyboards/1upkeyboards/sweet16v2/keymaps/via/rules.mk new file mode 100644 index 00000000000..1189f4ad192 --- /dev/null +++ b/keyboards/1upkeyboards/sweet16v2/keymaps/via/rules.mk @@ -0,0 +1,3 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/1upkeyboards/sweet16v2/pro_micro/config.h b/keyboards/1upkeyboards/sweet16v2/pro_micro/config.h new file mode 100644 index 00000000000..2e7f7b36ff2 --- /dev/null +++ b/keyboards/1upkeyboards/sweet16v2/pro_micro/config.h @@ -0,0 +1,84 @@ +/* Copyright 2022 ziptyze + * + * 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" + +#define DYNAMIC_KEYMAP_LAYER_COUNT 10 + +#define RGB_DI_PIN D7 +#define RGB_MATRIX_LED_COUNT 20 +#define RGB_MATRIX_KEYPRESSES +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS +#define RGB_DISABLE_WHEN_USB_SUSPENDED +// 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 + +/* 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 + +/* Bootmagic Lite key configuration */ +#define BOOTMAGIC_LITE_ROW 0 +#define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/1upkeyboards/sweet16v2/pro_micro/info.json b/keyboards/1upkeyboards/sweet16v2/pro_micro/info.json new file mode 100644 index 00000000000..efdb94cd741 --- /dev/null +++ b/keyboards/1upkeyboards/sweet16v2/pro_micro/info.json @@ -0,0 +1,94 @@ +{ + "manufacturer": "1upkeyboards", + "keyboard_name": "sweet16v2", + "url": "1upkeyboards.com/shop/keyboard-kits/macro-pads/sweet-16-v2-macropad-kit/", + "maintainer": "ziptyze", + "bootloader": "atmel-dfu", + "processor": "atmega32u4", + "usb": { + "device_version": "1.0.0", + "pid": "0x5518", + "vid": "0x6F75" + }, + "features": { + "audio": false, + "backlight": false, + "bootmagic": true, + "command": false, + "console": false, + "encoder": true, + "extrakey": true, + "mousekey": true, + "nkro": false, + "rgb_matrix": true, + "rgblight": false + }, + "matrix_pins": { + "cols": ["F7", "D2", "B1", "C6"], + "rows": ["D1", "B5", "B4", "E6"] + }, + "diode_direction": "COL2ROW", + "encoder": { + "enabled": true, + "rotary": [ + { + "pin_a": "F6", + "pin_b": "F5" + }, + { + "pin_a": "D4", + "pin_b": "D0" + } + ] + }, + "rgb_matrix": { + "driver": "WS2812", + "layout": [ + { "flags": 4, "matrix": [0, 0], "x": 28, "y": 12 }, + { "flags": 4, "matrix": [0, 1], "x": 84, "y": 12 }, + { "flags": 4, "matrix": [0, 2], "x": 140, "y": 12 }, + { "flags": 4, "matrix": [0, 3], "x": 196, "y": 12 }, + { "flags": 2, "x": 196, "y": 17 }, + { "flags": 4, "matrix": [1, 3], "x": 196, "y": 28 }, + { "flags": 4, "matrix": [1, 2], "x": 140, "y": 28 }, + { "flags": 4, "matrix": [1, 1], "x": 84, "y": 28 }, + { "flags": 2, "x": 28, "y": 17 }, + { "flags": 4, "matrix": [1, 0], "x": 28, "y": 28 }, + { "flags": 4, "matrix": [2, 0], "x": 28, "y": 44 }, + { "flags": 4, "matrix": [2, 1], "x": 84, "y": 44 }, + { "flags": 4, "matrix": [2, 2], "x": 140, "y": 44 }, + { "flags": 4, "matrix": [2, 3], "x": 196, "y": 44 }, + { "flags": 2, "x": 196, "y": 47 }, + { "flags": 4, "matrix": [3, 3], "x": 196, "y": 60 }, + { "flags": 4, "matrix": [3, 2], "x": 140, "y": 60 }, + { "flags": 4, "matrix": [3, 1], "x": 84, "y": 60 }, + { "flags": 2, "x": 28, "y": 47 }, + { "flags": 4, "matrix": [3, 0], "x": 28, "y": 60 } + ] + }, + "community_layouts": [ + "ortho_4x4" + ], + "layouts": { + "LAYOUT_ortho_4x4": { + "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": [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": [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": [3, 0], "x": 0, "y": 3 }, + { "matrix": [3, 1], "x": 1, "y": 3 }, + { "matrix": [3, 2], "x": 2, "y": 3 }, + { "matrix": [3, 3], "x": 3, "y": 3 } + ] + } + } +} \ No newline at end of file diff --git a/keyboards/keebio/sinc/.noci b/keyboards/1upkeyboards/sweet16v2/pro_micro/rules.mk similarity index 100% rename from keyboards/keebio/sinc/.noci rename to keyboards/1upkeyboards/sweet16v2/pro_micro/rules.mk diff --git a/keyboards/1upkeyboards/sweet16v2/readme.md b/keyboards/1upkeyboards/sweet16v2/readme.md new file mode 100644 index 00000000000..e3f5859f961 --- /dev/null +++ b/keyboards/1upkeyboards/sweet16v2/readme.md @@ -0,0 +1,39 @@ +# sweet16v2 + +A 4x4 macropad with RGB inswitch lighting and underglow. + +* Keyboard Maintainer: [ziptyze](https://github.com/ziptyze) +* Hardware Supported: 1upkeyboards Sweet 16 v2 +* Hardware Availability: [1upkeyboards](https://1upkeyboards.com/) + +Make example for this keyboard using an atmel-based controller (after setting up your build environment): + + make 1upkeyboards/sweet16v2/promicro:default + +Flashing example for this keyboard using an atmel-based controller: + + make 1upkeyboards/sweet16v2/promicro:default:flash + +Make example for this keyboard using an rp2040-based controller (after setting up your build environment): + + make 1upkeyboards/sweet16v2/kb2040:default + +Flashing example for this keyboard using an rp2040-based controller: + + make 1upkeyboards/sweet16v2/kb2040: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 for atmel-based controllers: + +* **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 `RESET` if it is available + + +Enter the bootloader in 2 ways for rp2040-based controllers: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Bootsel button**: Hold the bootsel button on controller and plug in the keyboard \ No newline at end of file diff --git a/keyboards/40percentclub/mf68/keymaps/delivrance/keymap.c b/keyboards/40percentclub/mf68/keymaps/delivrance/keymap.c index 011d03deba5..18343067f84 100644 --- a/keyboards/40percentclub/mf68/keymaps/delivrance/keymap.c +++ b/keyboards/40percentclub/mf68/keymaps/delivrance/keymap.c @@ -26,7 +26,6 @@ #define KC_BLUP BL_INC // Backlight increase #define KC_BLDN BL_DEC // Backlight decrease #define KC_BLTOG BL_TOGG // Backlight toggle -#define KC_TERM TERM_ON // Terminal mode on #define KC_REC1 DM_REC1 // Record macro 1 #define KC_PLY1 DM_PLY1 // Play macro 1 #define KC_REC2 DM_REC2 // Record macro 2 @@ -71,7 +70,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ┣Esc ┻ 1! ┻ 2@ ┻ 3# ┻ 4$ ┻ 5% ┻ 6^ ┻ 7& ┻ 8* ┻ 9( ┻ 0) ┻ -_ ┻ =+ ┻━┳━ ←─ ━┫ ┣Ins ╋PgUp┫ */ _______ ,KC_PLY1,KC_PLY2,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_7 , KC_8 , KC_9 ,KC_BLDN,KC_BLUP,KC_BLTOG ,KC_TRNS ,KC_END , /* ┣ Tab ━┻ Q ━┻ W ━┻ E ━┻ R ━┻ T ━┻ Y ━┻ U ━┻ I ━┻ O ━┻ P ━┻ [{ ┻ ]} ┻━ \| ━┫ ┗Del ┻PgDn┛ */ - _______ ,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_4 , KC_5 , KC_6 ,KC_TRNS, KC_TERM , /* + _______ ,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_4 , KC_5 , KC_6 ,KC_TRNS, KC_TRNS , /* ┣━ Caps ━┻ A ━┻ S ━┻ D ━┻ F ━┻ G ━┻ H ━┻ J ━┻ K ━┻ L ━┻ ;: ┻ '" ┻━ Enter ━┫ ┏━━━━┓ */ _______ ,KC_REC1,KC_REC2,KC_TRNS,KC_TRNS,KC_MSTP,KC_TRNS,KC_MUTE, KC_1 , KC_2 , KC_3 ,KC_TRNS , KC_VOLU, /* ┣━━ Shift ━┻ Z ━┻ X ━┻ C ━┻ V ━┻ B ━┻ N ━┻ M ━┻ ,< ┻ .> ╋ /? ┻┳━━ Shift ━━┻━╋ ↑ ━╋━━━━┓ */ diff --git a/keyboards/4pplet/perk60_iso/rev_a/rev_a.c b/keyboards/4pplet/perk60_iso/rev_a/rev_a.c index 72446d39be7..814a8f95d46 100644 --- a/keyboards/4pplet/perk60_iso/rev_a/rev_a.c +++ b/keyboards/4pplet/perk60_iso/rev_a/rev_a.c @@ -114,7 +114,11 @@ led_config_t g_led_config = { } }; -__attribute__((weak)) void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { +bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { + if (!rgb_matrix_indicators_advanced_user(led_min, led_max)) { + return false; + } + if (host_keyboard_led_state().caps_lock && CAPS_LOCK_ENABLE) { for (uint8_t i = led_min; i <= led_max; i++) { if (g_led_config.flags[i] & CAPS_LED_GROUP) { @@ -122,5 +126,7 @@ __attribute__((weak)) void rgb_matrix_indicators_advanced_user(uint8_t led_min, } } } + + return true; } #endif diff --git a/keyboards/4pplet/waffling60/info.json b/keyboards/4pplet/waffling60/info.json deleted file mode 100644 index 9e4f081ddc7..00000000000 --- a/keyboards/4pplet/waffling60/info.json +++ /dev/null @@ -1,80 +0,0 @@ -{ - "manufacturer": "4pplet", - "url": "https://github.com/4pplet/waffling60", - "maintainer": "4pplet", - "usb": { - "vid": "0x4444" - }, - "layouts": { - "LAYOUT_all": { - "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": "|", "x": 13, "y": 0 }, - { "label": "~", "x": 14, "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": "Backsp.", "x": 13.5, "y": 1, "w": 1.5 }, - { "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": "Shift", "x": 0, "y": 3, "w": 1.25 }, - { "label": "|", "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": "<", "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": "Fn", "x": 14, "y": 3, "w": 1 }, - { "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 }, - { "label": "Space1", "x": 3.75, "y": 4, "w": 2.25 }, - { "label": "Space2", "x": 6, "y": 4, "w": 1.25 }, - { "label": "Space3", "x": 7.25, "y": 4, "w": 2.75 }, - { "label": "Alt", "x": 10, "y": 4, "w": 1.25 }, - { "label": "Menu", "x": 11.25, "y": 4, "w": 1.25 }, - { "label": "Win", "x": 12.5, "y": 4, "w": 1.25 }, - { "label": "Ctrl", "x": 13.75, "y": 4, "w": 1.25 } - ] - } - } -} diff --git a/keyboards/4pplet/waffling60/readme.md b/keyboards/4pplet/waffling60/readme.md index 374b56ffba6..acfa174eab9 100644 --- a/keyboards/4pplet/waffling60/readme.md +++ b/keyboards/4pplet/waffling60/readme.md @@ -12,6 +12,10 @@ Make example for this keyboard (after setting up your build environment): make 4pplet/waffling60/rev_a:default make 4pplet/waffling60/rev_b:default make 4pplet/waffling60/rev_c:default + + make 4pplet/waffling60/rev_d:default + make 4pplet/waffling60/rev_d_ansi:default + make 4pplet/waffling60/rev_d_iso:default 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/4pplet/waffling60/rev_a/config.h b/keyboards/4pplet/waffling60/rev_a/config.h index 5b5066859c4..628acb2a9ca 100644 --- a/keyboards/4pplet/waffling60/rev_a/config.h +++ b/keyboards/4pplet/waffling60/rev_a/config.h @@ -1,3 +1,19 @@ +/* +Copyright 2022 Stefan Sundin "4pplet" + +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" diff --git a/keyboards/4pplet/waffling60/rev_a/info.json b/keyboards/4pplet/waffling60/rev_a/info.json index 6d4bf31f320..ecbffb1e177 100644 --- a/keyboards/4pplet/waffling60/rev_a/info.json +++ b/keyboards/4pplet/waffling60/rev_a/info.json @@ -1,7 +1,16 @@ { "keyboard_name": "Waffling60 Rev A", + "manufacturer": "4pplet", + "url": "https://github.com/4pplet/waffling60", + "maintainer": "4pplet", "usb": { + "vid": "0x4444", "pid": "0x0003", "device_version": "0.0.1" + }, + "layouts": { + "LAYOUT": { + "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":"|", "x":13, "y":0}, {"label":"~", "x":14, "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":"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":"Shift", "x":0, "y":3, "w":1.25}, {"label":"ISO", "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":"<", "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":"Fn", "x":14, "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":2.25}, {"x":6, "y":4, "w":1.25}, {"x":7.25, "y":4, "w":2.75}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}] + } } } diff --git a/keyboards/4pplet/waffling60/keymaps/default/keymap.c b/keyboards/4pplet/waffling60/rev_a/keymaps/default/keymap.c similarity index 98% rename from keyboards/4pplet/waffling60/keymaps/default/keymap.c rename to keyboards/4pplet/waffling60/rev_a/keymaps/default/keymap.c index ae3a8406106..6310f09749c 100644 --- a/keyboards/4pplet/waffling60/keymaps/default/keymap.c +++ b/keyboards/4pplet/waffling60/rev_a/keymaps/default/keymap.c @@ -18,14 +18,14 @@ along with this program. If not, see . const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // main layer -[0] = LAYOUT_all( +[0] = LAYOUT( 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_NO, KC_BSPC, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, MO(1)), // basic function layer -[1] = LAYOUT_all( +[1] = LAYOUT( QK_BOOT, 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_UP, 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_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, diff --git a/keyboards/4pplet/waffling60/keymaps/via/keymap.c b/keyboards/4pplet/waffling60/rev_a/keymaps/via/keymap.c similarity index 98% rename from keyboards/4pplet/waffling60/keymaps/via/keymap.c rename to keyboards/4pplet/waffling60/rev_a/keymaps/via/keymap.c index a1d4c9c940f..0560eb8c0c6 100644 --- a/keyboards/4pplet/waffling60/keymaps/via/keymap.c +++ b/keyboards/4pplet/waffling60/rev_a/keymaps/via/keymap.c @@ -18,28 +18,28 @@ along with this program. If not, see . const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // main layer -[0] = LAYOUT_all( +[0] = LAYOUT( 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_BSLS, KC_BSPC, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, MO(1)), // basic function layer -[1] = LAYOUT_all( +[1] = LAYOUT( QK_BOOT, 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_UP, 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_LEFT, KC_DOWN, KC_RIGHT, 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), // extra layer for VIA -[2] = LAYOUT_all( +[2] = 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, 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), // extra layer for VIA -[3] = LAYOUT_all( +[3] = 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, diff --git a/keyboards/4pplet/waffling60/keymaps/via/rules.mk b/keyboards/4pplet/waffling60/rev_a/keymaps/via/rules.mk similarity index 100% rename from keyboards/4pplet/waffling60/keymaps/via/rules.mk rename to keyboards/4pplet/waffling60/rev_a/keymaps/via/rules.mk diff --git a/keyboards/4pplet/waffling60/rev_a/rev_a.c b/keyboards/4pplet/waffling60/rev_a/rev_a.c index d3db08ad193..dc6c727fb7a 100644 --- a/keyboards/4pplet/waffling60/rev_a/rev_a.c +++ b/keyboards/4pplet/waffling60/rev_a/rev_a.c @@ -1 +1,17 @@ +/* +Copyright 2022 Stefan Sundin "4pplet" + +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 "rev_a.h" diff --git a/keyboards/4pplet/waffling60/rev_a/rev_a.h b/keyboards/4pplet/waffling60/rev_a/rev_a.h index 3ac29687797..92384b4840b 100644 --- a/keyboards/4pplet/waffling60/rev_a/rev_a.h +++ b/keyboards/4pplet/waffling60/rev_a/rev_a.h @@ -1,9 +1,25 @@ +/* +Copyright 2022 Stefan Sundin "4pplet" + +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" // k -#define LAYOUT_all( \ +#define LAYOUT( \ k00, k01, k11, k02, k03, k04, k05, k15, k06, k07, k08, k18, k09, k0a, k1a, \ k10, k21, k12, k22, k13, k14, k25, k35, k16, k17, k28, k19, k29, k2a, \ k20, k31, k32, k23, k33, k24, k45, k26, k36, k27, k38, k39, k3a, \ diff --git a/keyboards/4pplet/waffling60/rev_b/config.h b/keyboards/4pplet/waffling60/rev_b/config.h index 69d9a485c5a..abf6a286f51 100644 --- a/keyboards/4pplet/waffling60/rev_b/config.h +++ b/keyboards/4pplet/waffling60/rev_b/config.h @@ -45,4 +45,13 @@ along with this program. If not, see . #define RGBLIGHT_HUE_STEP 8 #define RGBLIGHT_SAT_STEP 8 #define RGBLIGHT_VAL_STEP 8 -#define RGBLIGHT_ANIMATIONS +#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/4pplet/waffling60/rev_b/info.json b/keyboards/4pplet/waffling60/rev_b/info.json index 1e0075d47bf..1c2af5598f8 100644 --- a/keyboards/4pplet/waffling60/rev_b/info.json +++ b/keyboards/4pplet/waffling60/rev_b/info.json @@ -1,7 +1,16 @@ { "keyboard_name": "Waffling60 Rev B", + "manufacturer": "4pplet", + "url": "https://github.com/4pplet/waffling60", + "maintainer": "4pplet", "usb": { + "vid": "0x4444", "pid": "0x0005", "device_version": "0.0.2" + }, + "layouts": { + "LAYOUT": { + "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":"|", "x":13, "y":0}, {"label":"~", "x":14, "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":"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":"Shift", "x":0, "y":3, "w":1.25}, {"label":"ISO", "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":"<", "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":"Fn", "x":14, "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":2.25}, {"x":6, "y":4, "w":1.25}, {"x":7.25, "y":4, "w":2.75}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}] + } } } diff --git a/keyboards/4pplet/waffling60/rev_b/keymaps/default/keymap.c b/keyboards/4pplet/waffling60/rev_b/keymaps/default/keymap.c new file mode 100644 index 00000000000..6310f09749c --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_b/keymaps/default/keymap.c @@ -0,0 +1,34 @@ +/* +Copyright 2020 Stefan Sundin "4pplet" <4pplet@protonmail.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 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +// main layer +[0] = LAYOUT( + 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_NO, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, MO(1)), +// basic function layer +[1] = LAYOUT( + QK_BOOT, 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_UP, 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_LEFT, KC_DOWN, KC_RIGHT, 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/4pplet/waffling60/rev_b/keymaps/via/keymap.c b/keyboards/4pplet/waffling60/rev_b/keymaps/via/keymap.c new file mode 100644 index 00000000000..0560eb8c0c6 --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_b/keymaps/via/keymap.c @@ -0,0 +1,48 @@ +/* +Copyright 2020 Stefan Sundin "4pplet" <4pplet@protonmail.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 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +// main layer +[0] = LAYOUT( + 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_BSLS, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, MO(1)), +// basic function layer +[1] = LAYOUT( + QK_BOOT, 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_UP, 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_LEFT, KC_DOWN, KC_RIGHT, 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), +// extra layer for VIA +[2] = 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, 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), +// extra layer for VIA +[3] = 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, 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/durgod/k3x0/keymaps/via/rules.mk b/keyboards/4pplet/waffling60/rev_b/keymaps/via/rules.mk similarity index 100% rename from keyboards/durgod/k3x0/keymaps/via/rules.mk rename to keyboards/4pplet/waffling60/rev_b/keymaps/via/rules.mk diff --git a/keyboards/4pplet/waffling60/rev_b/rev_b.h b/keyboards/4pplet/waffling60/rev_b/rev_b.h index e54e020354b..b3949012e94 100644 --- a/keyboards/4pplet/waffling60/rev_b/rev_b.h +++ b/keyboards/4pplet/waffling60/rev_b/rev_b.h @@ -21,7 +21,7 @@ along with this program. If not, see . #include "quantum.h" -#define LAYOUT_all( \ +#define LAYOUT( \ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k1d, \ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k2c, \ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2d, \ diff --git a/keyboards/4pplet/waffling60/rev_c/info.json b/keyboards/4pplet/waffling60/rev_c/info.json index 5af681f27a8..1e464574a1d 100644 --- a/keyboards/4pplet/waffling60/rev_c/info.json +++ b/keyboards/4pplet/waffling60/rev_c/info.json @@ -1,7 +1,16 @@ { "keyboard_name": "Waffling60 Rev C", + "manufacturer": "4pplet", + "url": "https://github.com/4pplet/waffling60", + "maintainer": "4pplet", "usb": { + "vid": "0x4444", "pid": "0x0008", "device_version": "0.0.3" + }, + "layouts": { + "LAYOUT": { + "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":"|", "x":13, "y":0}, {"label":"~", "x":14, "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":"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":"Shift", "x":0, "y":3, "w":1.25}, {"label":"ISO", "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":"<", "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":"Fn", "x":14, "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":2.25}, {"x":6, "y":4, "w":1.25}, {"x":7.25, "y":4, "w":2.75}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}] + } } } diff --git a/keyboards/4pplet/waffling60/rev_c/keymaps/default/keymap.c b/keyboards/4pplet/waffling60/rev_c/keymaps/default/keymap.c new file mode 100644 index 00000000000..6310f09749c --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_c/keymaps/default/keymap.c @@ -0,0 +1,34 @@ +/* +Copyright 2020 Stefan Sundin "4pplet" <4pplet@protonmail.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 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +// main layer +[0] = LAYOUT( + 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_NO, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, MO(1)), +// basic function layer +[1] = LAYOUT( + QK_BOOT, 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_UP, 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_LEFT, KC_DOWN, KC_RIGHT, 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/4pplet/waffling60/rev_c/keymaps/via/keymap.c b/keyboards/4pplet/waffling60/rev_c/keymaps/via/keymap.c new file mode 100644 index 00000000000..0560eb8c0c6 --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_c/keymaps/via/keymap.c @@ -0,0 +1,48 @@ +/* +Copyright 2020 Stefan Sundin "4pplet" <4pplet@protonmail.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 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +// main layer +[0] = LAYOUT( + 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_BSLS, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, MO(1)), +// basic function layer +[1] = LAYOUT( + QK_BOOT, 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_UP, 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_LEFT, KC_DOWN, KC_RIGHT, 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), +// extra layer for VIA +[2] = 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, 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), +// extra layer for VIA +[3] = 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, 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/4pplet/waffling60/rev_c/keymaps/via/rules.mk b/keyboards/4pplet/waffling60/rev_c/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_c/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/4pplet/waffling60/rev_c/rev_c.h b/keyboards/4pplet/waffling60/rev_c/rev_c.h index 701098df1f6..c57c0f29c27 100644 --- a/keyboards/4pplet/waffling60/rev_c/rev_c.h +++ b/keyboards/4pplet/waffling60/rev_c/rev_c.h @@ -21,7 +21,7 @@ along with this program. If not, see . #include "quantum.h" -#define LAYOUT_all( \ +#define LAYOUT( \ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k1d, \ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k2c, \ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2d, \ diff --git a/keyboards/4pplet/waffling60/rev_d/config.h b/keyboards/4pplet/waffling60/rev_d/config.h new file mode 100644 index 00000000000..cfb2ed37e89 --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_d/config.h @@ -0,0 +1,46 @@ +/* +Copyright 2022 Stefan Sundin "4pplet" + +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 5 +#define MATRIX_COLS 14 +// ROWS: Top to bottom, COLS: Left to right + +#define MATRIX_ROW_PINS {B14,A9,B6,B5,B4} +#define MATRIX_COL_PINS {B2,A4,A3,A2,F1,F0,C15,C14,C13,B9,B8,B7,A15,B3} + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +#define QMK_ESC_OUTPUT B2 // usually COL +#define QMK_ESC_INPUT B14 // usually ROW + +#define RGBLED_NUM 1 +#define WS2812_EXTERNAL_PULLUP +#define RGB_DI_PIN A8 + +#define BACKLIGHT_LEVELS 5 + +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/4pplet/waffling60/rev_d/info.json b/keyboards/4pplet/waffling60/rev_d/info.json new file mode 100644 index 00000000000..ea5b142c257 --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_d/info.json @@ -0,0 +1,16 @@ +{ + "keyboard_name": "waffling60 Rev D", + "manufacturer": "4pplet", + "url": "https://github.com/4pplet/waffling60", + "maintainer": "4pplet", + "usb": { + "vid": "0x4444", + "pid": "0x000E", + "device_version": "0.0.4" + }, + "layouts": { + "LAYOUT": { + "layout": [{"label":"~", "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}, {"x":13, "y":0}, {"x":14, "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":"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":"ISO", "x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":2, "w":1.25}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"label":"ISO", "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":"<", "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":"Fn", "x":14, "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":2.25}, {"x":6, "y":4, "w":1.25}, {"x":7.25, "y":4, "w":2.75}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}] + } + } +} diff --git a/keyboards/4pplet/waffling60/rev_d/keymaps/default/keymap.c b/keyboards/4pplet/waffling60/rev_d/keymaps/default/keymap.c new file mode 100644 index 00000000000..9c567a0e3e5 --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_d/keymaps/default/keymap.c @@ -0,0 +1,34 @@ +/* +Copyright 2020 Stefan Sundin "4pplet" <4pplet@protonmail.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 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +// main layer +[0] = LAYOUT( + 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_NO, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_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, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, MO(1)), +// basic function layer +[1] = LAYOUT( + QK_BOOT, 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_UP, 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_LEFT, KC_DOWN, KC_RIGHT, 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/4pplet/waffling60/rev_d/keymaps/via/keymap.c b/keyboards/4pplet/waffling60/rev_d/keymaps/via/keymap.c new file mode 100644 index 00000000000..c24c5f27d1c --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_d/keymaps/via/keymap.c @@ -0,0 +1,48 @@ +/* +Copyright 2020 Stefan Sundin "4pplet" <4pplet@protonmail.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 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +// main layer +[0] = LAYOUT( + 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_BSLS, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_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, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, MO(1)), +// basic function layer +[1] = LAYOUT( + QK_BOOT, 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_UP, 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_LEFT, KC_DOWN, KC_RIGHT, 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), +// extra layer for VIA +[2] = 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, 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), +// extra layer for VIA +[3] = 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, 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/4pplet/waffling60/rev_d/keymaps/via/rules.mk b/keyboards/4pplet/waffling60/rev_d/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_d/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/4pplet/waffling60/rev_d/readme.md b/keyboards/4pplet/waffling60/rev_d/readme.md new file mode 100644 index 00000000000..3b6b9c94f2d --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_d/readme.md @@ -0,0 +1,20 @@ +# waffling60 + +A 60% PCB for MX switches, one hot swap and one solder-pcb version with decent layout support. + +More info: https://geekhack.org/index.php?topic=103531.0 + +* Keyboard Maintainer: [4pplet](https://github.com/4pplet) +* Hardware Supported: [waffling60](https://github.com/4pplet/waffling60) + +Make example for this keyboard (after setting up your build environment): + + make 4pplet/waffling60/rev_c:default + +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). + +How to enter bootloader (DFU): +* Tap the physical reset button or short the reset-header (labled RESET) on tha back of the PCB for keyboard to enter DFU. When in DFU, it's ready to flash the firmware. + +Alternative option if the firmware is already pre-flashed: +* Unplug your keyboard, hold down the Spacebar and B at the same time, plug in your keyboard and wait a second before releasing the keys. The keyboard will enter DFU and is ready to flash the firmware. diff --git a/keyboards/4pplet/waffling60/rev_d/rev_d.c b/keyboards/4pplet/waffling60/rev_d/rev_d.c new file mode 100644 index 00000000000..2e0511459d7 --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_d/rev_d.c @@ -0,0 +1,34 @@ +/* +Copyright 2022 Stefan Sundin "4pplet" + +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 "rev_d.h" + +bool led_update_kb(led_t led_state) { + bool res = led_update_user(led_state); + if (CAPS_LOCK_ENABLE && res) { + if(led_state.caps_lock) { + #ifdef CAPS_LOCK_COLOR + rgblight_sethsv_at(CAPS_LOCK_COLOR, 0); + #else + rgblight_sethsv_at(rgblight_get_hue(),rgblight_get_sat(),rgblight_get_val(), 0); + #endif + } + else{ + rgblight_sethsv_at(HSV_OFF, 0); + } + } + return res; +} diff --git a/keyboards/4pplet/waffling60/rev_d/rev_d.h b/keyboards/4pplet/waffling60/rev_d/rev_d.h new file mode 100644 index 00000000000..88b7fab4ab3 --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_d/rev_d.h @@ -0,0 +1,37 @@ +/* +Copyright 2022 Stefan Sundin "4pplet" + +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 CAPS_LOCK_ENABLE true +//#define CAPS_LOCK_COLOR HSV_ORANGE + +#include "quantum.h" + +#define LAYOUT( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k1d, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k2c, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2d, k3d, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k4d, \ + k40, k41, k42, k44, k46, k48, k49, k4a, k4b, k4c \ +) \ +{ \ + {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d}, \ + {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d}, \ + {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d}, \ + {k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d}, \ + {k40, k41, k42, KC_NO, k44, KC_NO, k46, KC_NO, k48, k49, k4a, k4b, k4c, k4d}, \ +} diff --git a/keyboards/4pplet/waffling60/rev_d/rules.mk b/keyboards/4pplet/waffling60/rev_d/rules.mk new file mode 100644 index 00000000000..8dc60fa527c --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_d/rules.mk @@ -0,0 +1,24 @@ +# MCU name +MCU = STM32F072 + +# 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 N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output + +# Wildcard to allow APM32 MCU +DFU_SUFFIX_ARGS = -p FFFF -v FFFF + +# Enter lower-power sleep mode when on the ChibiOS idle thread +OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/4pplet/waffling60/rev_d_ansi/config.h b/keyboards/4pplet/waffling60/rev_d_ansi/config.h new file mode 100644 index 00000000000..9c4ac8885e9 --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_d_ansi/config.h @@ -0,0 +1,36 @@ +/* +Copyright 2022 Stefan Sundin "4pplet" <4pplet@protonmail.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 "config_common.h" + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 14 +// ROWS: Top to bottom, COLS: Left to right + +#define MATRIX_ROW_PINS {B14,A9,B6,B5,B4} +#define MATRIX_COL_PINS {B2,A4,A3,A2,F1,F0,C15,C14,C13,B9,B8,B7,A15,B3} + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +#define QMK_ESC_OUTPUT B2 // usually COL +#define QMK_ESC_INPUT B14 // usually ROW diff --git a/keyboards/4pplet/waffling60/rev_d_ansi/info.json b/keyboards/4pplet/waffling60/rev_d_ansi/info.json new file mode 100644 index 00000000000..ba198ef935b --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_d_ansi/info.json @@ -0,0 +1,16 @@ +{ + "keyboard_name": "Waffling60 Rev D ANSI", + "manufacturer": "4pplet", + "url": "https://github.com/4pplet/waffling60", + "maintainer": "4pplet", + "usb": { + "vid": "0x4444", + "pid": "0x000D", + "device_version": "0.0.4" + }, + "layouts": { + "LAYOUT": { + "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":"|", "x":13, "y":0}, {"label":"~", "x":14, "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":"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":"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":"Fn", "x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.5}, {"label":"Win", "x":1.5, "y":4}, {"label":"Alt", "x":2.5, "y":4, "w":1.5}, {"label":"3U", "x":4, "y":4, "w":3}, {"label":"1U", "x":7, "y":4}, {"label":"3U", "x":8, "y":4, "w":3}, {"label":"Alt", "x":11, "y":4, "w":1.5}, {"label":"Win", "x":12.5, "y":4}, {"label":"Ctrl", "x":13.5, "y":4, "w":1.5}] + } + } +} diff --git a/keyboards/4pplet/waffling60/rev_d_ansi/keymaps/default/keymap.c b/keyboards/4pplet/waffling60/rev_d_ansi/keymaps/default/keymap.c new file mode 100644 index 00000000000..6b4b4a7566b --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_d_ansi/keymaps/default/keymap.c @@ -0,0 +1,34 @@ +/* +Copyright 2022 Stefan Sundin "4pplet" <4pplet@protonmail.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 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +// main layer +[0] = LAYOUT( + 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_BSLS, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL), +// basic function layer +[1] = LAYOUT( + QK_BOOT, 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_DEL, + KC_TRNS, KC_TRNS, KC_UP, 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_LEFT, KC_DOWN, KC_RIGHT, 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/4pplet/waffling60/rev_d_ansi/keymaps/via/keymap.c b/keyboards/4pplet/waffling60/rev_d_ansi/keymaps/via/keymap.c new file mode 100644 index 00000000000..29299cac6a3 --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_d_ansi/keymaps/via/keymap.c @@ -0,0 +1,48 @@ +/* +Copyright 2022 Stefan Sundin "4pplet" <4pplet@protonmail.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 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +// main layer +[0] = LAYOUT( + 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_BSLS, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL), +// basic function layer +[1] = LAYOUT( + QK_BOOT, 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_DEL, + KC_TRNS, KC_TRNS, KC_UP, 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_LEFT, KC_DOWN, KC_RIGHT, 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), +// extra layer for VIA +[2] = 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, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), +// extra layer for VIA +[3] = 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, 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/4pplet/waffling60/rev_d_ansi/keymaps/via/rules.mk b/keyboards/4pplet/waffling60/rev_d_ansi/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_d_ansi/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/4pplet/waffling60/rev_d_ansi/readme.md b/keyboards/4pplet/waffling60/rev_d_ansi/readme.md new file mode 100644 index 00000000000..f134a40521f --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_d_ansi/readme.md @@ -0,0 +1,22 @@ +# waffling60 + +A 60% PCB for MX and alps switches, available in different configurations and layout supports. + +More info: https://geekhack.org/index.php?topic=103531.0 + +* Keyboard Maintainer: [4pplet](https://github.com/4pplet) +* Hardware Supported: [waffling60](https://github.com/4pplet/waffling60) + +Make example for this keyboard (after setting up your build environment): + + make 4pplet/waffling60/rev_d_ansi:default + +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). + +How to enter bootloader (DFU): +* Press and hold the button on the keyboard (the small one on the same side as the MCU) for more than 1 second. The keyboard will then enter bootloader (DFU) mode and it's ready to flash the firmware. + +* Note: If holding the button a shorter time, the keyboard will just reset. If you want to exit bootloader mode without flashing a firmware, dissconnect the keyboard from your PC and reconnect it or tap the reset button. + +Alternative option if the firmware is already pre-flashed: +* Unplug your keyboard, hold down the Esc key, plug in your keyboard and wait a second before releasing the keys. Bootmagic lite is enabled by default. diff --git a/keyboards/4pplet/waffling60/rev_d_ansi/rev_d_ansi.c b/keyboards/4pplet/waffling60/rev_d_ansi/rev_d_ansi.c new file mode 100644 index 00000000000..2568bd5650f --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_d_ansi/rev_d_ansi.c @@ -0,0 +1,17 @@ +/* +Copyright 2022 Stefan Sundin "4pplet" <4pplet@protonmail.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 "rev_d_ansi.h" diff --git a/keyboards/4pplet/waffling60/rev_d_ansi/rev_d_ansi.h b/keyboards/4pplet/waffling60/rev_d_ansi/rev_d_ansi.h new file mode 100644 index 00000000000..aaa60a1f339 --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_d_ansi/rev_d_ansi.h @@ -0,0 +1,35 @@ +/* +Copyright 2022 Stefan Sundin "4pplet" <4pplet@protonmail.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" + +// k +#define LAYOUT( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k1d, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k2c, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2d, \ + k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \ + k40, k41, k42, k44, k46, k48, k4b, k4c, k4d \ +) \ +{ \ + {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d}, \ + {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d}, \ + {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d}, \ + {k30, KC_NO, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d}, \ + {k40, k41, k42, KC_NO, k44, KC_NO, k46, KC_NO, k48, KC_NO, KC_NO, k4b, k4c, k4d} \ +} diff --git a/keyboards/4pplet/waffling60/rev_d_ansi/rules.mk b/keyboards/4pplet/waffling60/rev_d_ansi/rules.mk new file mode 100644 index 00000000000..df10992a489 --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_d_ansi/rules.mk @@ -0,0 +1,24 @@ +# MCU name +MCU = STM32F072 + +# 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 N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output + +# Wildcard to allow APM32 MCU +DFU_SUFFIX_ARGS = -p FFFF -v FFFF + +# Enter lower-power sleep mode when on the ChibiOS idle thread +OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/4pplet/waffling60/rev_d_iso/config.h b/keyboards/4pplet/waffling60/rev_d_iso/config.h new file mode 100644 index 00000000000..dafc6287032 --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_d_iso/config.h @@ -0,0 +1,36 @@ +/* +Copyright 2022 Stefan Sundin "4pplet" + +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 5 +#define MATRIX_COLS 14 +// ROWS: Top to bottom, COLS: Left to right + +#define MATRIX_ROW_PINS {B14,A9,B6,B5,B4} +#define MATRIX_COL_PINS {B2,A4,A3,A2,F1,F0,C15,C14,C13,B9,B8,B7,A15,B3} + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +#define QMK_ESC_OUTPUT B2 // usually COL +#define QMK_ESC_INPUT B14 // usually ROW diff --git a/keyboards/durgod/k3x0/k310/base/config.h b/keyboards/4pplet/waffling60/rev_d_iso/halconf.h similarity index 92% rename from keyboards/durgod/k3x0/k310/base/config.h rename to keyboards/4pplet/waffling60/rev_d_iso/halconf.h index 2ccb2f2f0c8..c656a7d6c31 100644 --- a/keyboards/durgod/k3x0/k310/base/config.h +++ b/keyboards/4pplet/waffling60/rev_d_iso/halconf.h @@ -1,4 +1,4 @@ -/* Copyright 2021 Don Kjer +/* Copyright 2022 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 @@ -16,4 +16,4 @@ #pragma once -#include "config_common.h" +#include_next diff --git a/keyboards/4pplet/waffling60/rev_d_iso/info.json b/keyboards/4pplet/waffling60/rev_d_iso/info.json new file mode 100644 index 00000000000..3712a5c0552 --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_d_iso/info.json @@ -0,0 +1,16 @@ +{ + "keyboard_name": "Waffling60 Rev D ISO", + "manufacturer": "4pplet", + "url": "https://github.com/4pplet/waffling60", + "maintainer": "4pplet", + "usb": { + "vid": "0x4444", + "pid": "0x000C", + "device_version": "0.0.1" + }, + "layouts": { + "LAYOUT": { + "layout": [{"label":"\u00ac", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"\"", "x":2, "y":0}, {"label":"\u00a3", "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}, {"x":14, "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":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, {"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":"~", "x":12.75, "y":2}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"label":"|", "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":"<", "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}, {"x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.5}, {"label":"Win", "x":1.5, "y":4}, {"label":"Alt", "x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":3}, {"x":7, "y":4}, {"x":8, "y":4, "w":3}, {"label":"Win", "x":11, "y":4, "w":1.5}, {"label":"Menu", "x":12.5, "y":4}, {"label":"Ctrl", "x":13.5, "y":4, "w":1.5}] + } + } +} diff --git a/keyboards/4pplet/waffling60/rev_d_iso/keymaps/default/keymap.c b/keyboards/4pplet/waffling60/rev_d_iso/keymaps/default/keymap.c new file mode 100644 index 00000000000..563c3838d10 --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_d_iso/keymaps/default/keymap.c @@ -0,0 +1,34 @@ +/* +Copyright 2022 Stefan Sundin "4pplet" <4pplet@protonmail.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 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +// main layer +[0] = LAYOUT( + 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_NO, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_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, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL), +// basic function layer +[1] = LAYOUT( + QK_BOOT, 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_DEL, + KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NUHS, 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/4pplet/waffling60/rev_d_iso/keymaps/via/keymap.c b/keyboards/4pplet/waffling60/rev_d_iso/keymaps/via/keymap.c new file mode 100644 index 00000000000..18c29122690 --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_d_iso/keymaps/via/keymap.c @@ -0,0 +1,48 @@ +/* +Copyright 2022 Stefan Sundin "4pplet" <4pplet@protonmail.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 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +// main layer +[0] = LAYOUT( + 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_BSLS, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_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, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL), +// basic function layer +[1] = LAYOUT( + QK_BOOT, 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_DEL, + KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, 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), +// extra layer for VIA +[2] = 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, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), +// extra layer for VIA +[3] = 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, 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/4pplet/waffling60/rev_d_iso/keymaps/via/rules.mk b/keyboards/4pplet/waffling60/rev_d_iso/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_d_iso/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/4pplet/waffling60/rev_d_iso/mcuconf.h b/keyboards/4pplet/waffling60/rev_d_iso/mcuconf.h new file mode 100644 index 00000000000..1357c51f590 --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_d_iso/mcuconf.h @@ -0,0 +1,25 @@ +/* Copyright 2022 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 . + */ + +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/acheron/austin/mcuconf.h -r platforms/chibios/GENERIC_STM32_F072XB/configs/mcuconf.h` + */ + +#pragma once + +#include_next + diff --git a/keyboards/4pplet/waffling60/rev_d_iso/readme.md b/keyboards/4pplet/waffling60/rev_d_iso/readme.md new file mode 100644 index 00000000000..e8a87862a66 --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_d_iso/readme.md @@ -0,0 +1,21 @@ +# waffling60 + +A 60% PCB for MX switches, one hot swap and one solder-pcb version with decent layout support. + +More info: https://geekhack.org/index.php?topic=103531.0 + +* Keyboard Maintainer: [4pplet](https://github.com/4pplet) +* Hardware Supported: [waffling60](https://github.com/4pplet/waffling60) + +Make example for this keyboard (after setting up your build environment): + + make 4pplet/waffling60/rev_d_iso:default + +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). + +How to enter bootloader (DFU): +* Press and hold the button on the keyboard (the small one on the same side as the MCU) for more than 1 second. The keyboard will then enter bootloader (DFU) mode and it's ready to flash the firmware. +* Note: If holding the button a shorter time, the keyboard will just reset. If you want to exit bootloader mode without flashing a firmware, dissconnect the keyboard from your PC and reconnect it or tap the reset button. + +Alternative option if the firmware is already pre-flashed: +* Unplug your keyboard, hold down the Esc key, plug in your keyboard and wait a second before releasing the keys. Bootmagic lite is enabled by default. diff --git a/keyboards/4pplet/waffling60/rev_d_iso/rev_d_iso.c b/keyboards/4pplet/waffling60/rev_d_iso/rev_d_iso.c new file mode 100644 index 00000000000..8efa86152e3 --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_d_iso/rev_d_iso.c @@ -0,0 +1,17 @@ +/* +Copyright 2022 Stefan Sundin "4pplet" + +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 "rev_d_iso.h" diff --git a/keyboards/4pplet/waffling60/rev_d_iso/rev_d_iso.h b/keyboards/4pplet/waffling60/rev_d_iso/rev_d_iso.h new file mode 100644 index 00000000000..46f0ec65ff8 --- /dev/null +++ b/keyboards/4pplet/waffling60/rev_d_iso/rev_d_iso.h @@ -0,0 +1,35 @@ +/* +Copyright 2022 Stefan Sundin "4pplet" + +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" + +// k +#define LAYOUT( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k1d, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \ + k40, k41, k42, k44, k46, k48, k4b, k4c, k4d \ +) \ +{ \ + {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d}, \ + {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d}, \ + {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d}, \ + {k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d}, \ + {k40, k41, k42, KC_NO, k44, KC_NO, k46, KC_NO, k48, KC_NO, KC_NO, k4b, k4c, k4d} \ +} diff --git a/keyboards/durgod/k3x0/rules.mk b/keyboards/4pplet/waffling60/rev_d_iso/rules.mk similarity index 71% rename from keyboards/durgod/k3x0/rules.mk rename to keyboards/4pplet/waffling60/rev_d_iso/rules.mk index bccaec46b3f..d9584ba09d7 100644 --- a/keyboards/durgod/k3x0/rules.mk +++ b/keyboards/4pplet/waffling60/rev_d_iso/rules.mk @@ -1,10 +1,5 @@ -# Default to K310 variant, since it will also work on a K320 -DEFAULT_FOLDER=durgod/k3x0/k310 - # MCU name -# Actually F070, but close enough MCU = STM32F072 -BOARD = DURGOD_STM32_F070 # Bootloader selection BOOTLOADER = stm32-dfu @@ -17,8 +12,13 @@ MOUSEKEY_ENABLE = no # 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 +NKRO_ENABLE = no # Enable N-Key Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output -LTO_ENABLE = yes + +# Wildcard to allow APM32 MCU +DFU_SUFFIX_ARGS = -p FFFF -v FFFF + +# Enter lower-power sleep mode when on the ChibiOS idle thread +OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/4pplet/waffling80/rev_b/config.h b/keyboards/4pplet/waffling80/rev_b/config.h new file mode 100644 index 00000000000..843c9918e2c --- /dev/null +++ b/keyboards/4pplet/waffling80/rev_b/config.h @@ -0,0 +1,47 @@ +/* +Copyright 2022 Stefan Sundin "4pplet" + +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 12 +#define MATRIX_COLS 8 + +// ROWS: Top to bottom, COLS: Left to right +#define MATRIX_ROW_PINS {B13,B12,A5,A4,A2,A1,F0,C15,C13,C14,F1,A0} +#define MATRIX_COL_PINS {B2,B1,B0,A7,A6,A3,B9,B8} + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +#define QMK_ESC_OUTPUT B2 // usually COL +#define QMK_ESC_INPUT B13 // usually ROW + +#define RGBLED_NUM 2 +#define WS2812_EXTERNAL_PULLUP +#define RGB_DI_PIN A8 + +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/4pplet/waffling80/rev_b/info.json b/keyboards/4pplet/waffling80/rev_b/info.json new file mode 100644 index 00000000000..88a5cdf0a94 --- /dev/null +++ b/keyboards/4pplet/waffling80/rev_b/info.json @@ -0,0 +1,16 @@ +{ + "keyboard_name": "waffling80 Rev B", + "manufacturer": "4pplet", + "url": "", + "maintainer": "4pplet", + "usb": { + "vid": "0x4444", + "pid": "0x000F", + "device_version": "0.0.2" + }, + "layouts": { + "LAYOUT_all": { + "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1.25, "y":0}, {"label":"F2", "x":2.25, "y":0}, {"label":"F3", "x":3.25, "y":0}, {"label":"F4", "x":4.25, "y":0}, {"label":"F5", "x":5.5, "y":0}, {"label":"F6", "x":6.5, "y":0}, {"label":"F7", "x":7.5, "y":0}, {"label":"F8", "x":8.5, "y":0}, {"label":"F9", "x":9.75, "y":0}, {"label":"F10", "x":10.75, "y":0}, {"label":"F11", "x":11.75, "y":0}, {"label":"F12", "x":12.75, "y":0}, {"label":"F13", "x":14, "y":0}, {"label":"PrtSc", "x":15.25, "y":0}, {"label":"Scroll Lock", "x":16.25, "y":0}, {"label":"Pause", "x":17.25, "y":0}, {"label":"~", "x":0, "y":1.5}, {"label":"!", "x":1, "y":1.5}, {"label":"@", "x":2, "y":1.5}, {"label":"#", "x":3, "y":1.5}, {"label":"$", "x":4, "y":1.5}, {"label":"%", "x":5, "y":1.5}, {"label":"^", "x":6, "y":1.5}, {"label":"&", "x":7, "y":1.5}, {"label":"*", "x":8, "y":1.5}, {"label":"(", "x":9, "y":1.5}, {"label":")", "x":10, "y":1.5}, {"label":"_", "x":11, "y":1.5}, {"label":"+", "x":12, "y":1.5}, {"label":"|", "x":13, "y":1.5}, {"label":"~", "x":14, "y":1.5}, {"label":"Insert", "x":15.25, "y":1.5}, {"label":"Home", "x":16.25, "y":1.5}, {"label":"PgUp", "x":17.25, "y":1.5}, {"label":"Tab", "x":0, "y":2.5, "w":1.5}, {"label":"Q", "x":1.5, "y":2.5}, {"label":"W", "x":2.5, "y":2.5}, {"label":"E", "x":3.5, "y":2.5}, {"label":"R", "x":4.5, "y":2.5}, {"label":"T", "x":5.5, "y":2.5}, {"label":"Y", "x":6.5, "y":2.5}, {"label":"U", "x":7.5, "y":2.5}, {"label":"I", "x":8.5, "y":2.5}, {"label":"O", "x":9.5, "y":2.5}, {"label":"P", "x":10.5, "y":2.5}, {"label":"{", "x":11.5, "y":2.5}, {"label":"}", "x":12.5, "y":2.5}, {"label":"|", "x":13.5, "y":2.5, "w":1.5}, {"label":"Delete", "x":15.25, "y":2.5}, {"label":"End", "x":16.25, "y":2.5}, {"label":"PgDn", "x":17.25, "y":2.5}, {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, {"label":"A", "x":1.75, "y":3.5}, {"label":"S", "x":2.75, "y":3.5}, {"label":"D", "x":3.75, "y":3.5}, {"label":"F", "x":4.75, "y":3.5}, {"label":"G", "x":5.75, "y":3.5}, {"label":"H", "x":6.75, "y":3.5}, {"label":"J", "x":7.75, "y":3.5}, {"label":"K", "x":8.75, "y":3.5}, {"label":"L", "x":9.75, "y":3.5}, {"label":":", "x":10.75, "y":3.5}, {"label":"\"", "x":11.75, "y":3.5}, {"label":"~", "x":12.75, "y":3.5}, {"label":"Enter", "x":13.75, "y":3.5, "w":1.25}, {"x":15.25, "y":3.5}, {"x":17.25, "y":3.5}, {"label":"Shift", "x":0, "y":4.5, "w":1.25}, {"label":"|", "x":1.25, "y":4.5}, {"label":"Z", "x":2.25, "y":4.5}, {"label":"X", "x":3.25, "y":4.5}, {"label":"C", "x":4.25, "y":4.5}, {"label":"V", "x":5.25, "y":4.5}, {"label":"B", "x":6.25, "y":4.5}, {"label":"N", "x":7.25, "y":4.5}, {"label":"M", "x":8.25, "y":4.5}, {"label":"<", "x":9.25, "y":4.5}, {"label":">", "x":10.25, "y":4.5}, {"label":"?", "x":11.25, "y":4.5}, {"label":"Shift", "x":12.25, "y":4.5, "w":1.75}, {"label":"Fn", "x":14, "y":4.5}, {"label":"\u2191", "x":16.25, "y":4.5}, {"label":"Ctrl", "x":0, "y":5.5, "w":1.25}, {"label":"Win", "x":1.25, "y":5.5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5.5, "w":1.25}, {"x":3.75, "y":5.5, "w":2.25}, {"x":6, "y":5.5, "w":1.25}, {"x":7.25, "y":5.5, "w":2.75}, {"label":"AltGr", "x":10, "y":5.5, "w":1.25}, {"label":"Menu", "x":11.25, "y":5.5, "w":1.25}, {"label":"Win", "x":12.5, "y":5.5, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":5.5, "w":1.25}, {"label":"\u2190", "x":15.25, "y":5.5}, {"label":"\u2193", "x":16.25, "y":5.5}, {"label":"\u2192", "x":17.25, "y":5.5}] + } + } +} diff --git a/keyboards/4pplet/waffling80/rev_b/readme.md b/keyboards/4pplet/waffling80/rev_b/readme.md new file mode 100644 index 00000000000..ddfece5b53a --- /dev/null +++ b/keyboards/4pplet/waffling80/rev_b/readme.md @@ -0,0 +1,18 @@ +# waffling80 + +A TKL PCB attempting a87 and a88 compatibility with different switch and layout-options. + +* Keyboard Maintainer: [4pplet](https://github.com/4pplet) +* Hardware Supported: [waffling80](https://github.com/4pplet/waffling80) + +Make example for this keyboard (after setting up your build environment): + + make 4pplet/waffling80/rev_b:default + +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). + +How to enter bootloader (DFU): +* Hold the reset-header for a few seconds on the back of the PCB for keyboard to enter DFU. When in DFU, it's ready to flash the firmware. + +Alternative option if the firmware is already pre-flashed: +* Unplug your keyboard, hold down the Esc key, plug in your keyboard and wait a second before releasing the keys. The keyboard will enter DFU and is ready to flash the firmware. diff --git a/keyboards/4pplet/waffling80/rev_b/rev_b.c b/keyboards/4pplet/waffling80/rev_b/rev_b.c new file mode 100644 index 00000000000..15e44b93a13 --- /dev/null +++ b/keyboards/4pplet/waffling80/rev_b/rev_b.c @@ -0,0 +1,47 @@ +/* +Copyright 2022 Stefan Sundin "4pplet" + +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 "rev_b.h" + +bool led_update_kb(led_t led_state) { + bool res = led_update_user(led_state); + if (SCROLL_LOCK_ENABLE && res) { + if(led_state.scroll_lock) { + #ifdef SCROLL_LOCK_COLOR + rgblight_sethsv_at(SCROLL_LOCK_COLOR, 0); + #else + rgblight_sethsv_at(rgblight_get_hue(),rgblight_get_sat(),rgblight_get_val(), 0); + #endif + } + else { + rgblight_sethsv_at(HSV_OFF, 0); + } + } + if (CAPS_LOCK_ENABLE && res) { + if(led_state.caps_lock) { + #ifdef CAPS_LOCK_COLOR + rgblight_sethsv_at(CAPS_LOCK_COLOR, 1); + #else + rgblight_sethsv_at(rgblight_get_hue(),rgblight_get_sat(),rgblight_get_val(), 1); + #endif + } + else{ + rgblight_sethsv_at(HSV_OFF, 1); + } + } + return res; +} + diff --git a/keyboards/4pplet/waffling80/rev_b/rev_b.h b/keyboards/4pplet/waffling80/rev_b/rev_b.h new file mode 100644 index 00000000000..42a550f192b --- /dev/null +++ b/keyboards/4pplet/waffling80/rev_b/rev_b.h @@ -0,0 +1,50 @@ +/* +Copyright 2022 Stefan Sundin "4pplet" + +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 CAPS_LOCK_ENABLE 1 +#define SCROLL_LOCK_ENABLE 1 + +// If colors are defined, they will be static. If not defined, color for incicators can be set in VIA. +//#define CAPS_LOCK_COLOR HSV_GREEN +//#define SCROLL_LOCK_COLOR HSV_GREEN + +#include "quantum.h" + +#define LAYOUT_all( \ + k00, k10, k01, k11, k02, k12, k03, k13, k04, k14, k05, k15, k06, k16, k07, k17, k37, \ + k20, k30, k21, k31, k22, k32, k23, k33, k24, k34, k25, k35, k26, k36, k67, k27, k57, k97, \ + k40, k50, k41, k51, k42, k52, k43, k53, k44, k54, k45, k55, k46, k56, k47, k77, kb7, \ + k60, k70, k61, k71, k62, k72, k63, k73, k64, k74, k65, k75, k66, k76, \ + k80, k90, k81, k91, k82, k92, k83, k93, k84, k94, k85, k95, k86, k96, k87, \ + ka0, kb1, ka1, kb2, ka3, kb3, ka4, kb4, ka5, kb5, ka6, kb6, ka7, \ + kb0, ka2 \ +) \ +{ \ + {k00, k01, k02, k03, k04, k05, k06, k07}, \ + {k10, k11, k12, k13, k14, k15, k16, k17}, \ + {k20, k21, k22, k23, k24, k25, k26, k27}, \ + {k30, k31, k32, k33, k34, k35, k36, k37}, \ + {k40, k41, k42, k43, k44, k45, k46, k47}, \ + {k50, k51, k52, k53, k54, k55, k56, k57}, \ + {k60, k61, k62, k63, k64, k65, k66, k67}, \ + {k70, k71, k72, k73, k74, k75, k76, k77}, \ + {k80, k81, k82, k83, k84, k85, k86, k87}, \ + {k90, k91, k92, k93, k94, k95, k96, k97}, \ + {ka0, ka1, ka2, ka3, ka4, ka5, ka6, ka7}, \ + {kb0, kb1, kb2, kb3, kb4, kb5, kb6, kb7} \ +} diff --git a/keyboards/4pplet/waffling80/rev_b/rules.mk b/keyboards/4pplet/waffling80/rev_b/rules.mk new file mode 100644 index 00000000000..8dc60fa527c --- /dev/null +++ b/keyboards/4pplet/waffling80/rev_b/rules.mk @@ -0,0 +1,24 @@ +# MCU name +MCU = STM32F072 + +# 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 N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output + +# Wildcard to allow APM32 MCU +DFU_SUFFIX_ARGS = -p FFFF -v FFFF + +# Enter lower-power sleep mode when on the ChibiOS idle thread +OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/abatskeyboardclub/nayeon/info.json b/keyboards/abatskeyboardclub/nayeon/info.json index 8cafe5aebf5..ace6b22f086 100644 --- a/keyboards/abatskeyboardclub/nayeon/info.json +++ b/keyboards/abatskeyboardclub/nayeon/info.json @@ -16,7 +16,7 @@ "nkro": false }, "usb": { - "vid": "0x4B47", + "vid": "0xABA7", "pid": "0x0001", "device_version": "2.0.0" }, diff --git a/keyboards/abatskeyboardclub/nayeon/nayeon.c b/keyboards/abatskeyboardclub/nayeon/nayeon.c index 6f367d3ed6f..f4c17966c9e 100644 --- a/keyboards/abatskeyboardclub/nayeon/nayeon.c +++ b/keyboards/abatskeyboardclub/nayeon/nayeon.c @@ -32,7 +32,10 @@ led_config_t g_led_config = {{ LED_FLAG_INDICATOR, LED_FLAG_INDICATOR }}; -void rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { +bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { + if (!rgb_matrix_indicators_advanced_user(led_min, led_max)) { + return false; + } if (!host_keyboard_led_state().caps_lock) { RGB_MATRIX_INDICATOR_SET_COLOR(0, 0, 0, 0); } @@ -40,5 +43,5 @@ void rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { RGB_MATRIX_INDICATOR_SET_COLOR(1, 0, 0, 0); } - rgb_matrix_indicators_advanced_user(led_min, led_max); + return true; } diff --git a/keyboards/adafruit/macropad/config.h b/keyboards/adafruit/macropad/config.h index 568020eec8f..99f44779903 100644 --- a/keyboards/adafruit/macropad/config.h +++ b/keyboards/adafruit/macropad/config.h @@ -61,7 +61,7 @@ #define DEBOUNCE 5 /* Bootmagic lite */ -/* (Press the key bellow the encoder button while plugging the keyboard to enter the bootloader and clear flash) */ +/* (Press the key below the encoder button while plugging the keyboard to enter the bootloader and clear flash) */ #define BOOTMAGIC_LITE_ROW 1 #define BOOTMAGIC_LITE_COLUMN 2 diff --git a/keyboards/adafruit/macropad/readme.md b/keyboards/adafruit/macropad/readme.md index 09c8657902e..019883f9531 100644 --- a/keyboards/adafruit/macropad/readme.md +++ b/keyboards/adafruit/macropad/readme.md @@ -32,7 +32,7 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to Enter the bootloader in 4 ways: -* **Bootmagic reset**: Hold down the key just bellow the rotary encoder push-button on power-up. +* **Bootmagic reset**: Hold down the key just below the rotary encoder push-button on power-up. * **Physical reset button**: Press twice the button on the side while the board is connected. * **BOOT button** Hold down the rotary encoder push-button on power-up or reset. * **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. diff --git a/keyboards/adpenrose/kintsugi/config.h b/keyboards/adpenrose/kintsugi/config.h index d4e3dcc729e..1985c257518 100644 --- a/keyboards/adpenrose/kintsugi/config.h +++ b/keyboards/adpenrose/kintsugi/config.h @@ -1,5 +1,5 @@ /* -Copyright 2021 adpenrose +Copyright 2022 adpenrose 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 @@ -56,9 +56,6 @@ increase the value. If you need 2 clicks for 1 keycode, decrease*/ # define RGBLIGHT_VAL_STEP 8 # define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ # define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ -/*== all animations enable ==*/ -// # define RGBLIGHT_ANIMATIONS -/*== or choose animations ==*/ # define RGBLIGHT_EFFECT_BREATHING # define RGBLIGHT_EFFECT_RAINBOW_MOOD # define RGBLIGHT_EFFECT_RAINBOW_SWIRL @@ -79,56 +76,6 @@ increase the value. If you need 2 clicks for 1 keycode, decrease*/ /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ #define DEBOUNCE 5 -/* define if matrix has ghost (lacks anti-ghosting diodes) */ -//#define MATRIX_HAS_GHOST - -/* 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 - -/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. - * This is useful for the Windows task manager shortcut (ctrl+shift+esc). - */ -//#define GRAVE_ESC_CTRL_OVERRIDE - -/* - * Force NKRO - * - * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved - * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the - * makefile for this to work.) - * - * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) - * until the next keyboard reset. - * - * NKRO may prevent your keystrokes from being detected in the BIOS, but it is - * fully operational during normal computer usage. - * - * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) - * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by - * bootmagic, NKRO mode will always be enabled until it is toggled again during a - * power-up. - * - */ -//#define FORCE_NKRO - -/* - * Feature disable options - * These options are also useful to firmware size reduction. - */ - -/* disable debug print */ -//#define NO_DEBUG - -/* disable print */ -//#define NO_PRINT - -/* disable action features */ -//#define NO_ACTION_LAYER -//#define NO_ACTION_TAPPING -//#define NO_ACTION_ONESHOT - /* Bootmagic Lite key configuration */ #define BOOTMAGIC_LITE_ROW 0 #define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/adpenrose/kintsugi/info.json b/keyboards/adpenrose/kintsugi/info.json index db9952af294..c305d871ea3 100644 --- a/keyboards/adpenrose/kintsugi/info.json +++ b/keyboards/adpenrose/kintsugi/info.json @@ -1,15 +1,15 @@ { "keyboard_name": "Kintsugi", - "manufacturer": "adpenrose", + "manufacturer": "ADPenrose", "url": "https://github.com/ADPenrose/kintsugi_keeb", - "maintainer": "adpenrose", + "maintainer": "Arturo Avila", "usb": { "vid": "0x4450", "pid": "0x0001", - "device_version": "0.0.1" + "device_version": "1.0.0" }, "layouts": { - "LAYOUT_65_ansi_blocker": { + "LAYOUT": { "layout": [ {"label":"Esc", "x":0, "y":0}, {"label":"1", "x":1, "y":0}, diff --git a/keyboards/adpenrose/kintsugi/keymaps/default/keymap.c b/keyboards/adpenrose/kintsugi/keymaps/default/keymap.c index 19d3880b778..f7f960e4b07 100644 --- a/keyboards/adpenrose/kintsugi/keymaps/default/keymap.c +++ b/keyboards/adpenrose/kintsugi/keymaps/default/keymap.c @@ -1,4 +1,4 @@ -/* Copyright 2021 adpenrose +/* Copyright 2022 adpenrose * * 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 @@ -23,26 +23,33 @@ * |---------------------------------------------------------------------| * |Caps |A |S |D |F |G |H |J |K |L |; |' | Enter | ENC | * |---------------------------------------------------------------------| - * |Shft |Z |X |C |V |B |N |M |, |. |/ |Shift |Up| M1 | + * |Shft |Z |X |C |V |B |N |M |, |. |/ |Shift |Up| M0(3) | * |---------------------------------------------------------------------| - * |Ctrl|GUI |Alt | Space |Alt |MO(1)| |Lt |Dn |Rt | + * |Ctrl|GUI |Alt | Space |MO(1) |MO(2)| |Lt |Dn |Rt | * `---------------------------------------------------------------------|' */ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Base */ - [0] = LAYOUT_65_ansi_blocker( + [0] = LAYOUT( KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_TAB, KC_A, 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_MUTE, - 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_DEL, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT + 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, MO(3), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), MO(2), KC_LEFT, KC_DOWN, KC_RIGHT ), - [1] = LAYOUT_65_ansi_blocker( + [1] = LAYOUT( _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, - _______, RGB_TOG, RGB_VAI, RGB_VAD, RGB_MODE_FORWARD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, KC_SPC, _______, _______, _______, _______, _______ + _______, _______, _______, _______, _______, _______, _______, _______, _______ ), }; + +#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_TRNS, KC_TRNS) } +}; +#endif diff --git a/keyboards/adpenrose/kintsugi/keymaps/default/rules.mk b/keyboards/adpenrose/kintsugi/keymaps/default/rules.mk new file mode 100644 index 00000000000..ee325681483 --- /dev/null +++ b/keyboards/adpenrose/kintsugi/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/adpenrose/kintsugi/keymaps/oled_bongocat/animation_frames.h b/keyboards/adpenrose/kintsugi/keymaps/oled_bongocat/animation_frames.h new file mode 100644 index 00000000000..4a97accdde5 --- /dev/null +++ b/keyboards/adpenrose/kintsugi/keymaps/oled_bongocat/animation_frames.h @@ -0,0 +1,405 @@ +/* Copyright 2022 adpenrose + * + * 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 +#ifdef OLED_ENABLE + +// Enable OLED bitmpa compression selectively. +#define USE_OLED_BITMAP_COMPRESSION + +#define NUM_IDLE_FRAMES 5 +#define NUM_TAP_FRAMES 2 +#define NUM_OLED_BYTES 512 + +#ifdef USE_OLED_BITMAP_COMPRESSION + +static const char PROGMEM idle_1_block_map[] = { //IDLE_1 and IDLE_2 flipped + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x7f, 0x00, 0xf0, 0xb0, 0xc1, 0x07, + 0xf0, 0xcf, 0x00, 0x1c, 0x00, 0xb8, 0x8f, 0x3f, 0x00, 0x98, 0xff, 0x00, 0x00, 0xf0, 0x03, 0x00, + 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0xc0, 0x01 +}; + +static const char PROGMEM idle_2_block_map[] = { //IDLE_3 flipped + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x00, 0xf0, 0xd8, 0xe0, 0x03, + 0xf0, 0x6f, 0x00, 0x3e, 0x00, 0xf8, 0xc7, 0x7f, 0x00, 0x98, 0x7f, 0x00, 0x00, 0xf0, 0x03, 0x00, + 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0xc0, 0x01 +}; + +static const char PROGMEM idle_3_block_map[] = { //IDLE_4 flipped + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x01, 0xf0, 0xb0, 0xc1, 0x07, + 0xf0, 0xcf, 0x00, 0x7c, 0x00, 0xb8, 0x8f, 0xff, 0x00, 0x98, 0xff, 0x00, 0x00, 0xf0, 0x03, 0x00, + 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0xc0, 0x01 +}; + +static const char PROGMEM idle_4_block_map[] = { //IDLE_5 flipped + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x00, 0xf0, 0xb0, 0xc1, 0x07, + 0xf0, 0xcf, 0x00, 0x3c, 0x00, 0xb8, 0x8f, 0x7f, 0x00, 0x98, 0xff, 0x00, 0x00, 0xf0, 0x03, 0x00, + 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0xc0, 0x01 +}; + +static const char PROGMEM tap_1_block_map[] = { //TAP_1 flipped + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x01, 0x80, 0xff, 0xc1, 0x07, + 0x00, 0xce, 0x00, 0x7c, 0x00, 0xb8, 0x8d, 0xff, 0x00, 0x98, 0xff, 0x1f, 0xc0, 0xff, 0xff, 0x1f, + 0x00, 0x3f, 0xfe, 0x01, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0xc0, 0x01 +}; + +static const char PROGMEM tap_2_block_map[] = { //TAP_2 flipped + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0xde, 0xff, 0xff, 0x01, 0xfc, 0x80, 0xc1, 0x07, + 0xf1, 0xcf, 0x00, 0x7c, 0x00, 0xb8, 0x8d, 0xff, 0x00, 0xe0, 0xff, 0x00, 0x00, 0x80, 0x3f, 0x00, + 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0xc0, 0x01 +}; + +static const char PROGMEM idle_1_block_list[] = { //IDLE_1 and IDLE_2 flipped + 0x3e, 0xc0, 0x07, 0xf8, 0x1f, 0xe0, 0x03, 0x7c, 0x80, 0x07, 0xf9, 0x01, 0x01, 0x02, 0x02, 0x02, + 0x04, 0x08, 0x08, 0x08, 0x04, 0x04, 0x02, 0x02, 0x04, 0xf8, 0xe0, 0x18, 0x06, 0x01, 0x78, 0x78, + 0xc0, 0xc0, 0x01, 0x02, 0x04, 0x18, 0xe0, 0x03, 0x04, 0x04, 0x04, 0x04, 0x02, 0x1c, 0xe0, 0x30, + 0xc8, 0x01, 0x3e, 0xc0, 0x01, 0x3e, 0xc0, 0x03, 0xc2, 0xc0, 0x18, 0x18, 0x80, 0x40, 0x20, 0x10, + 0x10, 0x08, 0x07, 0xfc, 0x03, 0x80, 0x83, 0x43, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x01, 0x01, + 0x01, 0x07, 0x78, 0x80, 0x07, 0x78, 0x80, 0x07, 0xf8, 0x1f, 0xe0, 0x01, 0x1e, 0xe0 +}; + +static const char PROGMEM idle_2_block_list[] = { //IDLE_3 flipped + 0x3e, 0xc0, 0x07, 0xf8, 0x1f, 0xe0, 0x03, 0x7c, 0x80, 0x07, 0xf9, 0x01, 0x02, 0x02, 0x06, 0x04, + 0x08, 0x08, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x82, 0x64, 0x18, 0xe0, 0x18, 0x06, 0x01, 0x78, + 0x78, 0xc0, 0xc0, 0x01, 0x02, 0x04, 0x18, 0xe0, 0x03, 0x04, 0x04, 0x04, 0x04, 0x02, 0x1c, 0xe0, + 0x30, 0xc8, 0x01, 0x1e, 0x20, 0x40, 0x80, 0x01, 0x3e, 0xc0, 0x03, 0xc2, 0xc0, 0x18, 0x18, 0x80, + 0x40, 0x20, 0x10, 0x10, 0x08, 0x08, 0x04, 0x03, 0xfc, 0x03, 0x83, 0x43, 0x20, 0x10, 0x08, 0x04, + 0x02, 0x01, 0x01, 0x01, 0x01, 0x07, 0x78, 0x80, 0x07, 0x78, 0x80, 0x07, 0xf8, 0x1f, 0xe0, 0x01, + 0x1e, 0xe0 +}; + +static const char PROGMEM idle_3_block_list[] = { //IDLE_4 flipped + 0x3e, 0xc0, 0x07, 0xf8, 0x1f, 0xe0, 0x03, 0x7c, 0x80, 0x07, 0xf9, 0x01, 0x02, 0x02, 0x02, 0x04, + 0x04, 0x08, 0x08, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x82, 0x64, 0x18, 0xe0, 0x18, 0x06, 0x01, + 0x78, 0x78, 0xc0, 0xc0, 0x01, 0x02, 0x04, 0x18, 0xe0, 0x03, 0x04, 0x04, 0x04, 0x04, 0x02, 0x1c, + 0xe0, 0x30, 0xc8, 0x01, 0x1e, 0x20, 0x40, 0x80, 0x01, 0x3e, 0xc0, 0x03, 0xc2, 0xc0, 0x18, 0x18, + 0x80, 0x40, 0x20, 0x10, 0x10, 0x08, 0x08, 0x04, 0x03, 0xfc, 0x03, 0x80, 0x83, 0x43, 0x20, 0x10, + 0x08, 0x04, 0x02, 0x01, 0x01, 0x01, 0x01, 0x07, 0x78, 0x80, 0x07, 0x78, 0x80, 0x07, 0xf8, 0x1f, + 0xe0, 0x01, 0x1e, 0xe0 +}; + +static const char PROGMEM idle_4_block_list[] = { //IDLE_5 flipped + 0x3e, 0xc0, 0x07, 0xf8, 0x1f, 0xe0, 0x03, 0x7c, 0x80, 0x07, 0xf9, 0x01, 0x02, 0x02, 0x02, 0x04, + 0x04, 0x08, 0x08, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0xe4, 0x18, 0xe0, 0x18, 0x06, 0x01, 0x78, + 0x78, 0xc0, 0xc0, 0x01, 0x02, 0x04, 0x18, 0xe0, 0x03, 0x04, 0x04, 0x04, 0x04, 0x02, 0x1c, 0xe0, + 0x30, 0xc8, 0x01, 0x1e, 0x60, 0x80, 0x01, 0x3e, 0xc0, 0x03, 0xc2, 0xc0, 0x18, 0x18, 0x80, 0x40, + 0x20, 0x10, 0x10, 0x10, 0x08, 0x07, 0xfc, 0x03, 0x80, 0x83, 0x43, 0x20, 0x10, 0x08, 0x04, 0x02, + 0x01, 0x01, 0x01, 0x01, 0x07, 0x78, 0x80, 0x07, 0x78, 0x80, 0x07, 0xf8, 0x1f, 0xe0, 0x01, 0x1e, + 0xe0 +}; + +static const char PROGMEM tap_1_block_list[] = { //TAP_1 flipped + 0x3e, 0xc0, 0x07, 0xf8, 0x1f, 0xe0, 0x03, 0x7c, 0x80, 0x07, 0xf9, 0x01, 0x02, 0x02, 0x42, 0x44, + 0x84, 0x88, 0x08, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x82, 0x64, 0x18, 0x01, 0x0e, 0xf0, 0x20, + 0x26, 0x26, 0x29, 0x10, 0xd5, 0xce, 0x01, 0x02, 0x04, 0x18, 0xe0, 0x03, 0x1c, 0xe0, 0x30, 0xc8, + 0x01, 0x1e, 0x20, 0x40, 0x80, 0x01, 0x3e, 0xc0, 0x03, 0x02, 0x18, 0x18, 0x80, 0x40, 0x20, 0x10, + 0x10, 0x08, 0x08, 0x04, 0x03, 0xfc, 0x03, 0x80, 0x80, 0x40, 0x20, 0x10, 0x08, 0x84, 0xc2, 0xc1, + 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xe0, 0xf0, 0xf8, 0xfc, 0xfc, 0xfd, 0xfd, 0x01, 0x07, 0x78, + 0x80, 0x38, 0xf8, 0xf8, 0xf1, 0xe1, 0xc3, 0x83, 0x03, 0x03, 0x03, 0x03, 0x01, 0x01, 0x03, 0x03, + 0x07, 0x07, 0x07, 0x78, 0x81, 0x07, 0x07, 0x03, 0x03, 0x01, 0x07, 0xf8, 0x1f, 0xe0, 0x01, 0x1e, + 0xe0 +}; + +static const char PROGMEM tap_2_block_list[] = { //TAP_2 flipped + 0x3e, 0xc0, 0x07, 0xf8, 0x1f, 0xe0, 0x03, 0x7c, 0x80, 0x7e, 0xfe, 0xfe, 0xfe, 0x07, 0xf9, 0x01, + 0x02, 0x02, 0x02, 0x04, 0x04, 0x08, 0x08, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x82, 0x64, 0x18, + 0x01, 0x01, 0xe0, 0x18, 0x06, 0x01, 0xc0, 0xc0, 0x01, 0x02, 0x04, 0x18, 0xe0, 0x0f, 0x03, 0x04, + 0x04, 0x04, 0x04, 0x02, 0x1c, 0xe0, 0x30, 0xc8, 0x01, 0x1e, 0x20, 0x40, 0x80, 0x01, 0x3e, 0xc0, + 0x03, 0x02, 0x18, 0x18, 0x80, 0x40, 0x20, 0x10, 0x10, 0x08, 0x08, 0x04, 0x03, 0x0f, 0x70, 0x80, + 0x81, 0x01, 0x31, 0x32, 0x8a, 0x24, 0x86, 0x79, 0x07, 0x78, 0x81, 0x01, 0x01, 0x01, 0x01, 0x07, + 0x78, 0x80, 0x07, 0xf8, 0x1f, 0xe0, 0x01, 0x1e, 0xe0 +}; + +// idle_1 and idle_2 are identical, so share them and save some space +const char* idle_frames[NUM_IDLE_FRAMES] = { + idle_1_block_list, + idle_1_block_list, + idle_2_block_list, + idle_3_block_list, + idle_4_block_list +}; + +const char* tap_frames[NUM_TAP_FRAMES] = { + tap_1_block_list, + tap_2_block_list +}; + +// idle_1 and idle_2 are identical, so save some space +const char* idle_block_map[NUM_IDLE_FRAMES] = { + idle_1_block_map, + idle_1_block_map, + idle_2_block_map, + idle_3_block_map, + idle_4_block_map +}; + +const char* tap_block_map[NUM_TAP_FRAMES] = { + tap_1_block_map, + tap_2_block_map +}; + +#else + +static const char PROGMEM idle_frames[NUM_IDLE_FRAMES][NUM_OLED_BYTES] = { + { // IDLE 1 flipped + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3e, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x07, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x03, 0x7c, 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, 0x07, 0xf9, 0x01, 0x01, 0x02, 0x02, 0x02, 0x04, 0x08, 0x08, + 0x08, 0x04, 0x04, 0x02, 0x02, 0x04, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x78, 0x78, 0x00, 0xc0, + 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x18, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x03, 0x04, 0x04, 0x04, 0x04, 0x02, 0x1c, 0xe0, 0x00, 0x00, 0x30, 0xc8, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x3e, 0xc0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x3e, 0xc0, 0x00, 0x03, + 0xc2, 0xc0, 0x18, 0x18, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x10, 0x10, 0x08, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, 0x00, 0x00, 0x80, + 0x83, 0x43, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x07, + 0x78, 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, 0x07, 0x78, 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, 0x07, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x1e, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }, + { //IDLE 2 flipped + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3e, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x07, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x03, 0x7c, 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, 0x07, 0xf9, 0x01, 0x01, 0x02, 0x02, 0x02, 0x04, 0x08, 0x08, + 0x08, 0x04, 0x04, 0x02, 0x02, 0x04, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x78, 0x78, 0x00, 0xc0, + 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x18, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x03, 0x04, 0x04, 0x04, 0x04, 0x02, 0x1c, 0xe0, 0x00, 0x00, 0x30, 0xc8, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x3e, 0xc0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x3e, 0xc0, 0x00, 0x03, + 0xc2, 0xc0, 0x18, 0x18, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x10, 0x10, 0x08, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, 0x00, 0x00, 0x80, + 0x83, 0x43, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x07, + 0x78, 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, 0x07, 0x78, 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, 0x07, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x1e, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }, + { //IDLE 3 flipped + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3e, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x07, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x03, 0x7c, 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, 0x07, 0xf9, 0x01, 0x02, 0x02, 0x06, 0x04, 0x08, 0x08, 0x04, + 0x04, 0x04, 0x02, 0x02, 0x02, 0x82, 0x64, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x78, 0x78, 0x00, 0xc0, 0xc0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x18, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x03, 0x04, 0x04, 0x04, 0x04, 0x02, 0x1c, 0xe0, 0x00, 0x30, 0xc8, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1e, 0x20, 0x40, 0x80, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x3e, 0xc0, 0x03, 0xc2, + 0xc0, 0x18, 0x18, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x10, 0x10, 0x08, 0x08, 0x04, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, 0x00, 0x00, 0x83, + 0x43, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x07, + 0x78, 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, 0x07, 0x78, 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, 0x07, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x1e, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }, + { //IDLE 4 flipped + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3e, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x07, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x03, 0x7c, 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, 0x07, 0xf9, 0x01, 0x02, 0x02, 0x02, 0x04, 0x04, 0x08, 0x08, + 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x82, 0x64, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x78, 0x78, 0x00, 0xc0, + 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x18, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x03, 0x04, 0x04, 0x04, 0x04, 0x02, 0x1c, 0xe0, 0x00, 0x00, 0x30, 0xc8, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1e, 0x20, 0x40, 0x80, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x3e, 0xc0, 0x00, 0x03, + 0xc2, 0xc0, 0x18, 0x18, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x10, 0x10, 0x08, 0x08, 0x04, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, 0x00, 0x00, 0x80, + 0x83, 0x43, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x07, + 0x78, 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, 0x07, 0x78, 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, 0x07, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x1e, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }, + { //IDLE 5 flipped + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3e, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x07, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x03, 0x7c, 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, 0x07, 0xf9, 0x01, 0x02, 0x02, 0x02, 0x04, 0x04, 0x08, 0x08, + 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0xe4, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x78, 0x78, 0x00, 0xc0, + 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x18, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x03, 0x04, 0x04, 0x04, 0x04, 0x02, 0x1c, 0xe0, 0x00, 0x00, 0x30, 0xc8, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1e, 0x60, 0x80, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x3e, 0xc0, 0x00, 0x03, + 0xc2, 0xc0, 0x18, 0x18, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x10, 0x10, 0x10, 0x08, 0x07, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, 0x00, 0x00, 0x80, + 0x83, 0x43, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x07, + 0x78, 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, 0x07, 0x78, 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, 0x07, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x1e, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + } + }; +static const char PROGMEM tap_frames[NUM_TAP_FRAMES][NUM_OLED_BYTES] = { + { //Tap 1 flipped + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3e, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x07, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x03, 0x7c, 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, 0x07, 0xf9, 0x01, 0x02, 0x02, 0x42, 0x44, 0x84, 0x88, 0x08, + 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x82, 0x64, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0xf0, 0x20, 0x26, 0x26, 0x29, 0x10, 0xd5, + 0xce, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x18, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x1c, 0xe0, 0x00, 0x00, 0x30, 0xc8, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1e, 0x20, 0x40, 0x80, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x3e, 0xc0, 0x00, 0x03, + 0x02, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x10, 0x10, 0x08, 0x08, 0x04, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, 0x00, 0x00, 0x80, + 0x80, 0x40, 0x20, 0x10, 0x08, 0x84, 0xc2, 0xc1, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0xf0, 0xf8, 0xfc, 0xfc, 0xfd, 0xfd, 0x01, 0x07, + 0x78, 0x80, 0x38, 0xf8, 0xf8, 0xf1, 0xe1, 0xc3, 0x83, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x03, 0x03, 0x07, 0x07, 0x00, 0x00, + 0x00, 0x07, 0x78, 0x81, 0x07, 0x07, 0x03, 0x03, 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, 0x07, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x1e, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }, + { //Tap 2 flipped + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3e, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x07, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x03, 0x7c, 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, 0x7e, 0xfe, 0xfe, 0xfe, 0x00, 0x07, 0xf9, 0x01, 0x02, 0x02, 0x02, 0x04, 0x04, 0x08, 0x08, + 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x82, 0x64, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x01, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, + 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x18, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0f, 0x00, 0x00, 0x00, 0x03, 0x04, 0x04, 0x04, 0x04, 0x02, 0x1c, 0xe0, 0x00, 0x00, 0x30, 0xc8, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1e, 0x20, 0x40, 0x80, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x3e, 0xc0, 0x00, 0x03, + 0x02, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x10, 0x10, 0x08, 0x08, 0x04, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x70, 0x80, + 0x81, 0x01, 0x31, 0x32, 0x8a, 0x24, 0x86, 0x79, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, + 0x78, 0x81, 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, 0x07, 0x78, 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, 0x07, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x1e, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }, + }; +#endif //USE_BITMAP_COMPRESSION +#endif //OLED_ENABLE diff --git a/keyboards/adpenrose/kintsugi/keymaps/oled_bongocat/keymap.c b/keyboards/adpenrose/kintsugi/keymaps/oled_bongocat/keymap.c new file mode 100644 index 00000000000..2db96a11c26 --- /dev/null +++ b/keyboards/adpenrose/kintsugi/keymaps/oled_bongocat/keymap.c @@ -0,0 +1,181 @@ +/* Copyright 2022 adpenrose + * + * 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 "animation_frames.h" + +/* Base layout: + * ,---------------------------------------------------------------------| + * |` |1 |2 |3 |4 |5 |6 |7 |8 |9 |0 |- |= |Backspace| OLED| + * |--------------------------------------------------------------- | + * |Tab |Q |W |E |R |T |Y |U |I |O |P |[ | ] | \ OLED| + * |---------------------------------------------------------------------| + * |Caps |A |S |D |F |G |H |J |K |L |; |' | Enter | ENC | + * |---------------------------------------------------------------------| + * |Shft |Z |X |C |V |B |N |M |, |. |/ |Shift |Up| M0(3) | + * |---------------------------------------------------------------------| + * |Ctrl|GUI |Alt | Space |MO(1) |MO(2)| |Lt |Dn |Rt | + * `---------------------------------------------------------------------|' + */ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [0] = LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_MUTE, + 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, MO(3), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), MO(2), KC_LEFT, KC_DOWN, KC_RIGHT + ), + [1] = LAYOUT( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [2] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [3] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; + +/* Encoder */ +#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_TRNS, KC_TRNS) }, + [2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) } +}; +#endif + +#ifdef OLED_ENABLE +#define IDLE_FRAME_DURATION 200 // Idle animation iteration rate in ms + +oled_rotation_t oled_init_user(oled_rotation_t rotation) { return OLED_ROTATION_270; } + +uint32_t anim_timer = 0; +uint32_t anim_sleep = 0; +uint8_t current_idle_frame = 0; + +bool tap_anim = false; +bool tap_anim_toggle = false; + + +// Decompress and write a precompressed bitmap frame to the OLED. +// Documentation and python compression script available at: +// https://github.com/nullbitsco/squeez-o +#ifdef USE_OLED_BITMAP_COMPRESSION +static void oled_write_compressed_P(const char* input_block_map, const char* input_block_list) { + uint16_t block_index = 0; + for (uint16_t i=0; i IDLE_FRAME_DURATION) { + anim_timer = timer_read32(); + animation_phase(); + } + anim_sleep = timer_read32(); + } else { // Turn off screen when timer threshold elapsed or reset time since last input + if (timer_elapsed32(anim_sleep) > OLED_TIMEOUT) { + oled_off(); + } else { + if (timer_elapsed32(anim_timer) > IDLE_FRAME_DURATION) { + anim_timer = timer_read32(); + animation_phase(); + } + } + } +} + +bool oled_task_user(void) { + render_anim(); + oled_set_cursor(0, 0); + + uint8_t n = get_current_wpm(); + char wpm_counter[6]; + wpm_counter[5] = '\0'; + wpm_counter[4] = '0' + n % 10; + wpm_counter[3] = '0' + (n /= 10) % 10; + wpm_counter[2] = '0' + n / 10 ; + wpm_counter[1] = '0'; + wpm_counter[0] = '>'; + oled_write_ln(wpm_counter, false); + + return false; +} +#endif + +// Animate tap +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + #ifdef OLED_ENABLE + // Check if non-mod + if ((keycode >= KC_A && keycode <= KC_0) || (keycode >= KC_TAB && keycode <= KC_SLASH)) { + if (record->event.pressed) { + // Display tap frames + tap_anim_toggle = !tap_anim_toggle; + #ifdef USE_OLED_BITMAP_COMPRESSION + oled_write_compressed_P(tap_block_map[tap_anim_toggle], tap_frames[tap_anim_toggle]); + #else + oled_write_raw_P(tap_frames[tap_anim_toggle], NUM_OLED_BYTES); + #endif + } + } + #endif + + return true; + +} diff --git a/keyboards/adpenrose/kintsugi/keymaps/oled_bongocat/rules.mk b/keyboards/adpenrose/kintsugi/keymaps/oled_bongocat/rules.mk new file mode 100644 index 00000000000..24719cefb25 --- /dev/null +++ b/keyboards/adpenrose/kintsugi/keymaps/oled_bongocat/rules.mk @@ -0,0 +1,6 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes +WPM_ENABLE = yes +SPACE_CADET_ENABLE = no +MAGIC_ENABLE = no +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/adpenrose/kintsugi/keymaps/snailmap_port/keymap.c b/keyboards/adpenrose/kintsugi/keymaps/snailmap_port/keymap.c index 4930d5bc68e..59955d33bd3 100644 --- a/keyboards/adpenrose/kintsugi/keymaps/snailmap_port/keymap.c +++ b/keyboards/adpenrose/kintsugi/keymaps/snailmap_port/keymap.c @@ -1,4 +1,4 @@ -/* Copyright 2021 adpenrose +/* Copyright 2022 adpenrose * * 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 @@ -23,105 +23,52 @@ * |---------------------------------------------------------------------| * |Caps |A |S |D |F |G |H |J |K |L |; |' | Enter | ENC | * |---------------------------------------------------------------------| - * |Shft |Z |X |C |V |B |N |M |, |. |/ |Shift |Up| M1 | + * |Shft |Z |X |C |V |B |N |M |, |. |/ |Shift |Up| M0(3) | * |---------------------------------------------------------------------| - * |Ctrl|GUI |Alt | Space |MO(2) |MO(3)| |Lt |Dn |Rt | + * |Ctrl|GUI |Alt | Space |MO(1) |MO(2)| |Lt |Dn |Rt | * `---------------------------------------------------------------------|' */ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Base */ - [0] = LAYOUT_65_ansi_blocker( + [0] = LAYOUT( KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_MUTE, - 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_DEL, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(2), MO(3), KC_LEFT, KC_DOWN, KC_RIGHT + 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, MO(3), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), MO(2), KC_LEFT, KC_DOWN, KC_RIGHT ), - [1] = LAYOUT_65_ansi_blocker( + [1] = LAYOUT( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), - [2] = LAYOUT_65_ansi_blocker( + [2] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), - [3] = LAYOUT_65_ansi_blocker( - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, + [3] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), }; /* Encoder */ -#ifdef ENCODER_ENABLE -bool encoder_update_user(uint8_t index, bool clockwise) { - /* Used to change the layer using the encoder. */ - static int8_t selected_layer = 0; - - if (clockwise){ - /* Check if left shift is pressed: */ - if (selected_layer < 4 && get_mods() & MOD_BIT(KC_LSFT)){ - selected_layer ++; - /* If already on the last layer, jumps back to the first layer: */ - if (selected_layer == 4) { - selected_layer = 0; - } - /* Move to the selected layer. */ - layer_move(selected_layer); - } else if (get_mods() & MOD_BIT(KC_RSFT)){ /* Check if right shift is pressed: */ - switch (get_highest_layer(layer_state)){ - default: - /* Go to the next track. */ - tap_code(KC_MNXT); - break; - } - } else { - /* If shift isn't pressed, encoder will do this stuff: */ - switch (get_highest_layer(layer_state)){ - default: - /* Turn up the volume of the system. */ - tap_code(KC_VOLU); - break; - } - } - } else { - /* Check if left shift is pressed: */ - if (selected_layer > -1 && get_mods() & MOD_BIT(KC_LSFT)){ - selected_layer --; - /* If already on the first layer, jumps up to the last layer: */ - if (selected_layer == -1) { - selected_layer = 3; - } - /* Move to the selected layer. */ - layer_move(selected_layer); - } else if (get_mods() & MOD_BIT(KC_RSFT)){ /* Check if right shift is pressed: */ - switch (get_highest_layer(layer_state)){ - default: - /* Go to the previous track. */ - tap_code(KC_MPRV); - break; - } - } else { - /* If shift isn't pressed, encoder will do this stuff: */ - switch (get_highest_layer(layer_state)){ - default: - /* Turn down the volume of the system. */ - tap_code(KC_VOLD); - break; - } - } - } - return false; -} +#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_TRNS, KC_TRNS) }, + [2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) } +}; #endif #ifdef OLED_ENABLE @@ -134,9 +81,9 @@ int icon_med_wpm = 50; // WPM required to display the medium sn int icon_fast_wpm = 72; // WPM required to display the fast snail // Layer names: Should be exactly 5 characters in length if vertical display, or 6 characters if horizontal #define MA_LAYER_NAME "QWRTY" // Layer 0 name -#define L1_LAYER_NAME "KICAD" // Layer 1 name +#define L1_LAYER_NAME "FUNCT" // Layer 1 name #define L2_LAYER_NAME "NMPAD" // Layer 2 name -#define L3_LAYER_NAME "FUNCT" // Layer 3 name +#define L3_LAYER_NAME "RANDM" // Layer 3 name // Constants required for the background render, the graph render and the WPM counter. THESE VALUES SHOULD NOT BE CHANGED. bool first_loop = true; int timer = 0; diff --git a/keyboards/adpenrose/kintsugi/keymaps/snailmap_port/rules.mk b/keyboards/adpenrose/kintsugi/keymaps/snailmap_port/rules.mk index 8058dc57fce..24719cefb25 100644 --- a/keyboards/adpenrose/kintsugi/keymaps/snailmap_port/rules.mk +++ b/keyboards/adpenrose/kintsugi/keymaps/snailmap_port/rules.mk @@ -3,3 +3,4 @@ LTO_ENABLE = yes WPM_ENABLE = yes SPACE_CADET_ENABLE = no MAGIC_ENABLE = no +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/adpenrose/kintsugi/keymaps/via/keymap.c b/keyboards/adpenrose/kintsugi/keymaps/via/keymap.c index ea0b06070d2..5a42fa9b2fe 100644 --- a/keyboards/adpenrose/kintsugi/keymaps/via/keymap.c +++ b/keyboards/adpenrose/kintsugi/keymaps/via/keymap.c @@ -1,4 +1,4 @@ -/* Copyright 2021 adpenrose +/* Copyright 2022 adpenrose * * 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 @@ -23,36 +23,36 @@ * |---------------------------------------------------------------------| * |Caps |A |S |D |F |G |H |J |K |L |; |' | Enter | ENC | * |---------------------------------------------------------------------| - * |Shft |Z |X |C |V |B |N |M |, |. |/ |Shift |Up| M1 | + * |Shft |Z |X |C |V |B |N |M |, |. |/ |Shift |Up| M0(3) | * |---------------------------------------------------------------------| - * |Ctrl|GUI |Alt | Space |MO(2) |MO(3)| |Lt |Dn |Rt | + * |Ctrl|GUI |Alt | Space |MO(1) |MO(2)| |Lt |Dn |Rt | * `---------------------------------------------------------------------|' */ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Base */ - [0] = LAYOUT_65_ansi_blocker( + [0] = LAYOUT( KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_MUTE, - 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_DEL, + 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, MO(3), KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), MO(2), KC_LEFT, KC_DOWN, KC_RIGHT ), - [1] = LAYOUT_65_ansi_blocker( - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, + [1] = LAYOUT( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, KC_SPC, _______, _______, _______, _______, _______ + _______, _______, _______, _______, _______, _______, _______, _______, _______ ), - [2] = LAYOUT_65_ansi_blocker( + [2] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), - [3] = LAYOUT_65_ansi_blocker( + [3] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, @@ -60,3 +60,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______ ), }; + +#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_TRNS, KC_TRNS) }, + [2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) } +}; +#endif diff --git a/keyboards/adpenrose/kintsugi/keymaps/via/rules.mk b/keyboards/adpenrose/kintsugi/keymaps/via/rules.mk index 36b7ba9cbc9..1189f4ad192 100644 --- a/keyboards/adpenrose/kintsugi/keymaps/via/rules.mk +++ b/keyboards/adpenrose/kintsugi/keymaps/via/rules.mk @@ -1,2 +1,3 @@ VIA_ENABLE = yes LTO_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/adpenrose/kintsugi/kintsugi.c b/keyboards/adpenrose/kintsugi/kintsugi.c index ff62858377b..59e7d79b55f 100644 --- a/keyboards/adpenrose/kintsugi/kintsugi.c +++ b/keyboards/adpenrose/kintsugi/kintsugi.c @@ -1,4 +1,4 @@ -/* Copyright 2021 adpenrose +/* Copyright 2022 adpenrose * * 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,34 +16,6 @@ #include "kintsugi.h" -/* Encoder */ -#ifdef ENCODER_ENABLE -bool encoder_update_kb(uint8_t index, bool clockwise) { - if (!encoder_update_user(index, clockwise)) { - return false; - } else { -/* The switch case allows for different encoder mappings on different layers, "default" map gets applied for all unspecified layers */ - switch(get_highest_layer(layer_state)){ - case 1: - if (clockwise) { - tap_code(KC_MNXT); - } else { - tap_code(KC_MPRV); - } - break; - default: - if (clockwise){ - tap_code(KC_VOLU); - } else{ - tap_code(KC_VOLD); - } - break; - } - } - return true; -} -#endif - #ifdef OLED_ENABLE oled_rotation_t oled_init_kb(oled_rotation_t rotation) { return OLED_ROTATION_270; diff --git a/keyboards/adpenrose/kintsugi/kintsugi.h b/keyboards/adpenrose/kintsugi/kintsugi.h index 37ce6cc6e56..728ef72d0a0 100644 --- a/keyboards/adpenrose/kintsugi/kintsugi.h +++ b/keyboards/adpenrose/kintsugi/kintsugi.h @@ -1,4 +1,4 @@ -/* Copyright 2021 adpenrose +/* Copyright 2022 adpenrose * * 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 @@ -26,7 +26,7 @@ * The second converts the arguments into a two-dimensional array which * represents the switch matrix. */ -#define LAYOUT_65_ansi_blocker( \ +#define LAYOUT( \ K00, K01, K02, K03, K04, K05, K06, K50, K51, K52, K53, K54, K55, K56, \ K10, K11, K12, K13, K14, K15, K16, K60, K61, K62, K63, K64, K65, K66, \ K20, K21, K22, K23, K24, K25, K26, K70, K71, K72, K73, K74, K75, K76, \ diff --git a/keyboards/adpenrose/kintsugi/readme.md b/keyboards/adpenrose/kintsugi/readme.md index 708dc16699b..9c0ccd1a1a8 100644 --- a/keyboards/adpenrose/kintsugi/readme.md +++ b/keyboards/adpenrose/kintsugi/readme.md @@ -15,7 +15,7 @@ A 65%-ish keyboard with some extra features. ## General info * Keyboard Maintainer: [Arturo Avila](https://github.com/ADPenrose) -* Hardware Supported: Kintsugi V1 PCB +* Hardware Supported: Kintsugi v1 PCB * Hardware Availability: [Arturo Avila](https://github.com/ADPenrose) Make example for this keyboard (after setting up your build environment): diff --git a/keyboards/adpenrose/kintsugi/rules.mk b/keyboards/adpenrose/kintsugi/rules.mk index fe95a9b72b1..6a0aca4700a 100644 --- a/keyboards/adpenrose/kintsugi/rules.mk +++ b/keyboards/adpenrose/kintsugi/rules.mk @@ -16,6 +16,6 @@ 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 # Encoder functionality +ENCODER_ENABLE = yes # Encoder functionality OLED_ENABLE = yes # OLED functionality OLED_DRIVER = SSD1306 diff --git a/keyboards/adpenrose/obi/config.h b/keyboards/adpenrose/obi/config.h new file mode 100644 index 00000000000..c1c5ea9f30d --- /dev/null +++ b/keyboards/adpenrose/obi/config.h @@ -0,0 +1,68 @@ +// Copyright 2022 Arturo Avila (@ADPenrose) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "config_common.h" + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 14 + +/* + * 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) + * + */ +#define MATRIX_ROW_PINS { F4, F5, C7, C6 } +#define MATRIX_COL_PINS { F6, B7, B6, B4, B5, D6, D5, D3, D7, D4, D2, D1, D0, B0 } + +/* COL2ROW, ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/*Rotary encoder - set the resolution fitting your encoder. +Most will need a value of 4. If 1 encoder click results in 2 keycodes sent +increase the value. If you need 2 clicks for 1 keycode, decrease*/ +#define ENCODER_RESOLUTION 4 +#define ENCODERS_PAD_A { F1 } +#define ENCODERS_PAD_B { F0 } +#define TAP_CODE_DELAY 10 + +/* Underglow options: */ +#define RGB_DI_PIN F7 +#ifdef RGB_DI_PIN +# define RGBLED_NUM 16 +# define RGBLIGHT_HUE_STEP 8 +# define RGBLIGHT_SAT_STEP 8 +# define RGBLIGHT_VAL_STEP 8 +# define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ +# define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ +# 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 +/*== customize breathing effect ==*/ +/*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/ +//# define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64 +/*==== use exp() and sin() ====*/ +//# define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7 +//# define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255 +#endif + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* Bootmagic Lite key configuration */ +#define BOOTMAGIC_LITE_ROW 0 +#define BOOTMAGIC_LITE_COLUMN 0 + diff --git a/keyboards/adpenrose/obi/info.json b/keyboards/adpenrose/obi/info.json new file mode 100644 index 00000000000..b1afa0bc0df --- /dev/null +++ b/keyboards/adpenrose/obi/info.json @@ -0,0 +1,70 @@ +{ + "manufacturer": "ADPenrose", + "keyboard_name": "Obi", + "maintainer": "Arturo Avila", + "usb": { + "device_version": "1.0.0", + "pid": "0x0002", + "vid": "0x4450" + }, + "layouts": { + "LAYOUT_all": { + "layout": [ + {"label":"F1", "x":0, "y":0}, + {"label":"Tab", "x":1.25, "y":0, "w":1.5}, + {"label":"Q", "x":2.75, "y":0}, + {"label":"W", "x":3.75, "y":0}, + {"label":"E", "x":4.75, "y":0}, + {"label":"R", "x":5.75, "y":0}, + {"label":"T", "x":6.75, "y":0}, + {"label":"Y", "x":7.75, "y":0}, + {"label":"U", "x":8.75, "y":0}, + {"label":"I", "x":9.75, "y":0}, + {"label":"O", "x":10.75, "y":0}, + {"label":"P", "x":11.75, "y":0}, + {"label":"{", "x":12.75, "y":0}, + {"label":"Backspace", "x":13.75, "y":0, "w":1.5}, + + {"label":"F2", "x":0, "y":1}, + {"label":"Caps Lock", "x":1.25, "y":1, "w":1.75}, + {"label":"A", "x":3, "y":1}, + {"label":"S", "x":4, "y":1}, + {"label":"D", "x":5, "y":1}, + {"label":"F", "x":6, "y":1}, + {"label":"G", "x":7, "y":1}, + {"label":"H", "x":8, "y":1}, + {"label":"J", "x":9, "y":1}, + {"label":"K", "x":10, "y":1}, + {"label":"L", "x":11, "y":1}, + {"label":":", "x":12, "y":1}, + {"label":"Enter", "x":13, "y":1, "w":2.25}, + + {"label":"F3", "x":0, "y":2}, + {"label":"Shift", "x":1.25, "y":2, "w":2.25}, + {"label":"Z", "x":3.5, "y":2}, + {"label":"X", "x":4.5, "y":2}, + {"label":"C", "x":5.5, "y":2}, + {"label":"V", "x":6.5, "y":2}, + {"label":"B", "x":7.5, "y":2}, + {"label":"N", "x":8.5, "y":2}, + {"label":"M", "x":9.5, "y":2}, + {"label":"<", "x":10.5, "y":2}, + {"label":"Shift", "x":11.5, "y":2, "w":1.75}, + {"label":"Up", "x":13.25, "y":2}, + {"label":"?", "x":14.25, "y":2}, + + {"label":"F4", "x":0, "y":3}, + {"label":"Ctrl", "x":1.25, "y":3, "w":1.25}, + {"label":"Win", "x":2.5, "y":3}, + {"label":"Alt", "x":3.5, "y":3, "w":1.25}, + {"label":"Spacebar", "x":4.75, "y":3, "w":2.25}, + {"label":"Spacebar", "x":7, "y":3, "w":1.25}, + {"label":"Spacebar", "x":8.25, "y":3, "w":2.75}, + {"label":"Alt", "x":11, "y":3, "w":1.25}, + {"label":"Left", "x":12.25, "y":3}, + {"label":"Down", "x":13.25, "y":3}, + {"label":"Right", "x":14.25, "y":3} + ] + } + } +} diff --git a/keyboards/adpenrose/obi/keymaps/default/keymap.c b/keyboards/adpenrose/obi/keymaps/default/keymap.c new file mode 100644 index 00000000000..6d55dc73fb2 --- /dev/null +++ b/keyboards/adpenrose/obi/keymaps/default/keymap.c @@ -0,0 +1,41 @@ +// Copyright 2022 Arturo Avila (@ADPenrose) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [0] = LAYOUT_all( + KC_ESC, 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_BSPC, + KC_MUTE, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, + KC_VOLU, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_RSFT, KC_UP, KC_SLSH, + KC_VOLD, KC_LCTL, KC_LGUI, KC_LALT, MO(1), KC_SPC, KC_SPC, MO(2), KC_LEFT, KC_DOWN, KC_RIGHT + ), + [1] = LAYOUT_all( + KC_DEL, KC_TRNS, 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_MPLY, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_QUOT, KC_BSLS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DOT, 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] = LAYOUT_all( + KC_TILD, 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_RBRC, + 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, 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 + ) +}; + +#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_TRNS, KC_TRNS) }, + [2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) } +}; +#endif diff --git a/keyboards/adpenrose/obi/keymaps/default/rules.mk b/keyboards/adpenrose/obi/keymaps/default/rules.mk new file mode 100644 index 00000000000..ee325681483 --- /dev/null +++ b/keyboards/adpenrose/obi/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/adpenrose/obi/keymaps/via/keymap.c b/keyboards/adpenrose/obi/keymaps/via/keymap.c new file mode 100644 index 00000000000..efede949b86 --- /dev/null +++ b/keyboards/adpenrose/obi/keymaps/via/keymap.c @@ -0,0 +1,41 @@ +// Copyright 2022 Arturo Avila (@ADPenrose) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [0] = LAYOUT_all( + KC_ESC, 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_BSPC, + KC_MUTE, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, + KC_VOLU, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_RSFT, KC_UP, KC_SLSH, + KC_VOLD, KC_LCTL, KC_LGUI, KC_LALT, MO(1), KC_SPC, KC_SPC, MO(2), KC_LEFT, KC_DOWN, KC_RIGHT + ), + [1] = LAYOUT_all( + KC_DEL, KC_TRNS, 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_MPLY, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_QUOT, KC_BSLS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DOT, 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] = LAYOUT_all( + KC_TILD, 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_RBRC, + 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, 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 + ) +}; + +#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_TRNS, KC_TRNS) }, + [2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) } +}; +#endif diff --git a/keyboards/adpenrose/obi/keymaps/via/rules.mk b/keyboards/adpenrose/obi/keymaps/via/rules.mk new file mode 100644 index 00000000000..1189f4ad192 --- /dev/null +++ b/keyboards/adpenrose/obi/keymaps/via/rules.mk @@ -0,0 +1,3 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/adpenrose/obi/obi.c b/keyboards/adpenrose/obi/obi.c new file mode 100644 index 00000000000..2efd4eba472 --- /dev/null +++ b/keyboards/adpenrose/obi/obi.c @@ -0,0 +1,5 @@ +// Copyright 2022 Arturo Avila (@ADPenrose) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "obi.h" + diff --git a/keyboards/adpenrose/obi/obi.h b/keyboards/adpenrose/obi/obi.h new file mode 100644 index 00000000000..09bf9b29fcd --- /dev/null +++ b/keyboards/adpenrose/obi/obi.h @@ -0,0 +1,26 @@ +// Copyright 2022 Arturo Avila (@ADPenrose) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "quantum.h" + +/* This is 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. + */ +#define LAYOUT_all( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1D, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2C, K2D, \ + K30, K31, K32, K33, K35, K36, K37, K3A, K3B, K3C, K3D \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, KC_NO, K1D }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, KC_NO, K2C, K2D }, \ + { K30, K31, K32, K33, KC_NO, K35, K36, K37, KC_NO, KC_NO, K3A, K3B, K3C, K3D } \ +} diff --git a/keyboards/adpenrose/obi/readme.md b/keyboards/adpenrose/obi/readme.md new file mode 100644 index 00000000000..59c0b796ae4 --- /dev/null +++ b/keyboards/adpenrose/obi/readme.md @@ -0,0 +1,29 @@ +# Obi + +![obi](https://i.imgur.com/btQPol1h.png) + +A 40% keyboard inspired by the TMOv2 and Nightmare boards. + +# General info + +* Keyboard Maintainer: [Arturo Avila](https://github.com/ADPenrose) +* Hardware Supported: Obi v1 PCB +* Hardware Availability: [Arturo Avila](https://github.com/ADPenrose) + +Make example for this keyboard (after setting up your build environment): + + make adpenrose/obi:default + +Flashing example for this keyboard: + + make adpenrose/obi: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/adpenrose/obi/rules.mk b/keyboards/adpenrose/obi/rules.mk new file mode 100644 index 00000000000..94ce0d7a665 --- /dev/null +++ b/keyboards/adpenrose/obi/rules.mk @@ -0,0 +1,19 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = no # 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 # Encoder functionality diff --git a/keyboards/ai03/lunar/keymaps/zyber/keymap.c b/keyboards/ai03/lunar/keymaps/zyber/keymap.c new file mode 100644 index 00000000000..5ab7bde3e3a --- /dev/null +++ b/keyboards/ai03/lunar/keymaps/zyber/keymap.c @@ -0,0 +1,23 @@ +// Copyright 2022 ZyBeR (@ZyberSE) +// SPDX-License-Identifier: GPL-2.0 + +#include "zyber.h" + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( /* Base */ + KC_ESC, KC_1, KC_2, KC_3, TD(SSHT), 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, TD(LBRC), KC_RBRC, KC_BSLS, KC_PGDN, + L1_EXPL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, TD(SCLN), TD(QUOT), KC_ENT, KC_DEL, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_UP, MO(1), + KC_LCTL, ROPT_SRH,KC_LCMD, _______, LCMD_T(KC_SPC), _______, ROPT_SRH, KC_GRV, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT( /* FN */ + QK_BOOT, 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_PAUS, + C_BLK, _______, KC_UP, _______, _______, _______, KC_NLCK, KC_P7, KC_P8, KC_P9, KC_MPRV, KC_MPLY, KC_MNXT, _______, KC_SLCK, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, KC_VOLD, KC_VOLU, KC_P4, KC_P5, KC_P6, _______, _______, _______, _______, + _______, KC_RCTL, KC_RGUI, KC_RALT, _______, _______, KC_P0, KC_P1, KC_P2, KC_P3, _______, _______, KC_PGUP, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END + ) +}; + diff --git a/keyboards/alps64/keymaps/zyber/keymap.c b/keyboards/alps64/keymaps/zyber/keymap.c new file mode 100644 index 00000000000..1110b641657 --- /dev/null +++ b/keyboards/alps64/keymaps/zyber/keymap.c @@ -0,0 +1,33 @@ +// Copyright 2022 ZyBeR (@ZyberSE) +// SPDX-License-Identifier: GPL-2.0 + +#include "zyber.h" + +enum keyboard_layers { + _BL = 0, + _FL +}; + +// Custom #defined keycodes (shorter macros for readability) +#define KC_CTES CTL_T(KC_ESC) +#define KC_RSUP RSFT_T(KC_UP) +#define KC_FNDN LT(_FL, KC_DOWN) +#define KC_RGLT RCMD_T(KC_LEFT) +#define KC_RCRT RCTL_T(KC_RIGHT) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BL] = LAYOUT_aek_103( + 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_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, TD(LBRC), KC_RBRC, KC_BSLS, + CTRL_C_UP, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, TD(SCLN), TD(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_RSUP, + MO(_FL), KC_LALT, KC_LGUI, KC_SPC, KC_RGLT, KC_FNDN, KC_RCRT + ), + [_FL] = LAYOUT_aek_103( + 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_HOME, KC_UP, KC_END, _______, _______, _______, _______, KC_MUTE, _______, _______, KC_PGDN, KC_PGUP, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_SLCK, KC_VOLD, KC_VOLU, KC_PAUS, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, QK_BOOT, _______, _______, _______ + ) +}; diff --git a/keyboards/an_achronism/tetromino/keymaps/indicators/keymap.c b/keyboards/an_achronism/tetromino/keymaps/indicators/keymap.c index 8f56c41be60..17d83860895 100644 --- a/keyboards/an_achronism/tetromino/keymaps/indicators/keymap.c +++ b/keyboards/an_achronism/tetromino/keymaps/indicators/keymap.c @@ -68,7 +68,7 @@ void keyboard_post_init_user(void) { }; // Custom RGB indicator behaviour: -void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { +bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { uint8_t led_processed_count = 0; for (uint8_t row = 0; row < MATRIX_ROWS; ++row) { for (uint8_t col = 0; col < MATRIX_COLS; ++col) { @@ -115,10 +115,11 @@ void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { break; default: break; - } + } } } } } } + return false; } diff --git a/keyboards/annepro2/annepro2.h b/keyboards/annepro2/annepro2.h index 393d9b47317..617c6414d26 100644 --- a/keyboards/annepro2/annepro2.h +++ b/keyboards/annepro2/annepro2.h @@ -42,6 +42,20 @@ extern ble_capslock_t ble_capslock; /* ROW4 */ { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KC_NO}, \ /* ROW5 */ { K40, KC_NO, K42, K43, KC_NO, KC_NO, K46, KC_NO, KC_NO, K49, K4A, K4B, K4C, KC_NO}, \ } +#define LAYOUT_60_iso( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \ + K40, K42, K43, K46, K49, K4A, K4B, K4C \ +) { \ + /* COL1 COL2 COL3 COL4 COL5 COL6 COL7 COL8 COL9 COL10 COL11 COL12 COL13 COL14*/ \ + /* ROW1 */ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \ + /* ROW2 */ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K2D }, \ + /* ROW3 */ { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, KC_NO}, \ + /* ROW4 */ { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KC_NO}, \ + /* ROW5 */ { K40, KC_NO, K42, K43, KC_NO, KC_NO, K46, KC_NO, KC_NO, K49, K4A, K4B, K4C, KC_NO}, \ +} // clang-format on enum AP2KeyCodes { diff --git a/keyboards/annepro2/c18/rules.mk b/keyboards/annepro2/c18/rules.mk index b1c7208f8b9..752324fc2c3 100644 --- a/keyboards/annepro2/c18/rules.mk +++ b/keyboards/annepro2/c18/rules.mk @@ -44,7 +44,7 @@ MIDI_ENABLE = no VIRTSER_ENABLE = no COMBO_ENABLE = no -LAYOUTS = 60_ansi +LAYOUTS = 60_ansi 60_iso # Anne Pro 2 SRC = \ diff --git a/keyboards/annepro2/info.json b/keyboards/annepro2/info.json index d2ddae40537..52282c0ad8f 100644 --- a/keyboards/annepro2/info.json +++ b/keyboards/annepro2/info.json @@ -66,6 +66,76 @@ {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.75}, + {"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":"Alt", "x":10, "y":4, "w":1.25}, + {"label":"Win", "x":11.25, "y":4, "w":1.25}, + {"label":"Menu", "x":12.5, "y":4, "w":1.25}, + {"label":"Ctrl", "x":13.75, "y":4, "w":1.25} + ] + } + "LAYOUT_60_iso": { + "layout": [ + {"label":"~", "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":"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":"Enter", "x":13.5, "y":1, "h":2}, + + {"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":"#", "x":12.75, "y":2}, + + {"label":"Shift", "x":0, "y":3, "w":1.25}, + {"label":"<", "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":"<", "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":2.75}, + {"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}, diff --git a/keyboards/annepro2/keymaps/iso_default/config.h b/keyboards/annepro2/keymaps/iso_default/config.h new file mode 100644 index 00000000000..5b9f0ebdda2 --- /dev/null +++ b/keyboards/annepro2/keymaps/iso_default/config.h @@ -0,0 +1,20 @@ + /* Copyright 2022 OpenAnnePro community + * + * 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 + +#undef PRODUCT +// C18 is a macro +#define PRODUCT Anne Pro 2 c18-iso (QMK) diff --git a/keyboards/annepro2/keymaps/iso_default/keymap.c b/keyboards/annepro2/keymaps/iso_default/keymap.c new file mode 100644 index 00000000000..4c1b259504e --- /dev/null +++ b/keyboards/annepro2/keymaps/iso_default/keymap.c @@ -0,0 +1,106 @@ + /* Copyright 2021 OpenAnnePro community + * + * 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 anne_pro_layers { + BASE, + FN1, + FN2, +}; + +// clang-format off +// Key symbols are based on QMK. Use them to remap your keyboard +/* +* Layer BASE +* ,-----------------------------------------------------------------------------------------. +* | esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | Bksp | +* |-----------------------------------------------------------------------------------------+ +* | Tab | q | w | e | r | t | y | u | i | o | p | [ | ] | | +* |---------------------------------------------------------------------------------- Enter | +* | FN1 | a | s | d | f | g | h | j | k | l | ; | ' | # | | +* |-----------------------------------------------------------------------------------------+ +* | Shift| \ | z | x | c | v | b | n | m | , | . | / | Shift | +* |-----------------------------------------------------------------------------------------+ +* | Ctrl | Win | Alt | space | Alt | FN1 | FN2 | Ctrl | +* \-----------------------------------------------------------------------------------------/ +* Layer TAP in BASE +* ,-----------------------------------------------------------------------------------------. +* | | | | | | | | | | | | | | | +* |-----------------------------------------------------------------------------------------+ +* | | | | | | | | | | | | | | | +* |---------------------------------------------------------------------------------- | +* | Caps | | | | | | | | | | | | | | +* |-----------------------------------------------------------------------------------------+ +* | | | | | | | | | | | | | UP | +* |-----------------------------------------------------------------------------------------+ +* | | | | | | LEFT | DOWN | RIGHT | +* \-----------------------------------------------------------------------------------------/ +*/ + const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [BASE] = LAYOUT_60_iso( /* Base */ + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, + LT(FN1, 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, RSFT_T(KC_UP), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, LT(FN1, KC_LEFT), LT(FN2, KC_DOWN), RCTL_T(KC_RGHT) +), + /* + * Layer FN1 + * ,-----------------------------------------------------------------------------------------. + * | ` | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | DELETE | + * |-----------------------------------------------------------------------------------------+ + * | Tab | q | UP | e | r | t | y | u | i | o | PS | HOME | END | | + * |---------------------------------------------------------------------------------- | + * | FN1 |LEFT |DOWN |RIGHT| f | g | h | j | k | l | PGUP|PGDN | # | | + * |-----------------------------------------------------------------------------------------+ + * | Shift| \ |V-UP |V-DWN|MUTE | v | b | n | m | , |INSRT| DEL | Shift | + * |-----------------------------------------------------------------------------------------+ + * | Ctrl | Win | Alt | space | Alt | FN1 | FN2 | Ctrl | + * \-----------------------------------------------------------------------------------------/ + * + */ + [FN1] = LAYOUT_60_iso( /* FN1 */ + 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_UP, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_HOME, KC_END, + MO(FN1), KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, KC_PGUP, KC_PGDN, _______, _______, + _______, _______, KC_VOLU, KC_VOLD, KC_MUTE, _______, _______, _______, _______, _______, KC_INS, KC_DEL, _______, + _______, _______, _______, _______, KC_APP, MO(FN1), MO(FN2), _______ +), + /* + * Layer FN2 + * ,-----------------------------------------------------------------------------------------. + * | ~ | BT1 | BT2 | BT3 | BT4 | F5 | F6 | F7 | F8 | MOD | TOG | BRI- | BRI+ | Bksp | + * |-----------------------------------------------------------------------------------------+ + * | Tab | q | UP | e | r | t | y | u | i | o | PS | HOME | END | | + * |---------------------------------------------------------------------------------- Enter + + * | FN1 |LEFT |DOWN |RIGHT| f | g | h | j | k | l | PGUP|PGDN | # | | + * |-----------------------------------------------------------------------------------------+ + * | Shift| \ | y | x | c | v | b | n | m | , |INSRT| DEL | Shift | + * |-----------------------------------------------------------------------------------------+ + * | Ctrl | L1 | Alt | space | APP | FN1 | FN2 | Ctrl | + * \-----------------------------------------------------------------------------------------/ + * + */ + [FN2] = LAYOUT_60_iso( /* FN2 */ + _______, KC_AP2_BT1, KC_AP2_BT2, KC_AP2_BT3, KC_AP2_BT4, _______, _______, _______, _______, KC_AP_RGB_MOD, KC_AP_RGB_TOG, KC_AP_RGB_VAD, KC_AP_RGB_VAI, _______, + _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_HOME, KC_END, + MO(FN1), KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, KC_PGUP, KC_PGDN, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS, KC_DEL, _______, + _______, _______, _______, _______, KC_APP, MO(FN1), MO(FN2), _______ + ), +}; +// clang-format on diff --git a/keyboards/ask55/config.h b/keyboards/ask55/config.h new file mode 100644 index 00000000000..0dc8301c654 --- /dev/null +++ b/keyboards/ask55/config.h @@ -0,0 +1,40 @@ +/* +Copyright 2022 Yiancar / Keyboard-Magpie + +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" + +/*== customize breathing effect ==*/ + /*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/ + #define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64 + /*==== use exp() and sin() ====*/ + #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7 + #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255 + + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* 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 + +/* Bootmagic Lite key configuration */ +#define BOOTMAGIC_LITE_ROW 0 +#define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/ask55/info.json b/keyboards/ask55/info.json new file mode 100644 index 00000000000..50804f2262c --- /dev/null +++ b/keyboards/ask55/info.json @@ -0,0 +1,123 @@ +{ + "manufacturer": "Yiancar-Designs", + "keyboard_name": "ASK55", + "maintainer": "qmk", + "development_board": "promicro", + "debounce": 5, + "diode_direction": "COL2ROW", + "features": { + "audio": false, + "backlight": false, + "bluetooth": false, + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgblight": true, + "sleep_led": false, + "unicode": false + }, + "matrix_pins": { + "cols": ["E6", "D0", "D2", "D3", "D5", "D4", "D6", "D7", "B4", "B5", "B6", "C6", "C7", "F7"], + "rows": ["B0", "B1", "D1", "F6", "F5"] + }, + "rgblight": { + "animations": { + "alternating": true, + "breathing": true, + "christmas": true, + "knight": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "rgb_test": true, + "snake": true, + "static_gradient": true + }, + "brightness_steps": 8, + "hue_steps": 8, + "led_count": 8, + "max_brightness": 255, + "pin": "F4", + "saturation_steps": 8, + "sleep": true + }, + "usb": { + "device_version": "0.0.1", + "pid": "0x3535", + "vid": "0x8968" + }, + "layouts": { + "LAYOUT": { + "layout": [ + { "label": "k00", "matrix": [0, 0], "w": 1, "x": 0, "y": 0 }, + { "label": "k01", "matrix": [0, 1], "w": 1, "x": 1, "y": 0 }, + { "label": "k02", "matrix": [0, 2], "w": 1, "x": 2, "y": 0 }, + { "label": "k03", "matrix": [0, 3], "w": 1, "x": 3, "y": 0 }, + { "label": "k04", "matrix": [0, 4], "w": 1, "x": 4, "y": 0 }, + { "label": "k05", "matrix": [0, 5], "w": 1, "x": 5, "y": 0 }, + { "label": "k06", "matrix": [0, 6], "w": 1, "x": 6, "y": 0 }, + { "label": "k07", "matrix": [0, 7], "w": 1, "x": 7, "y": 0 }, + { "label": "k08", "matrix": [0, 8], "w": 1, "x": 8, "y": 0 }, + { "label": "k09", "matrix": [0, 9], "w": 1, "x": 9, "y": 0 }, + { "label": "k0a", "matrix": [0, 10], "w": 1, "x": 10, "y": 0 }, + { "label": "k0b", "matrix": [0, 11], "w": 1, "x": 11, "y": 0 }, + { "label": "k0c", "matrix": [0, 12], "w": 1, "x": 12, "y": 0 }, + { "label": "k0d", "matrix": [0, 13], "w": 1, "x": 13, "y": 0 }, + { "label": "k10", "matrix": [1, 0], "w": 1, "x": 14, "y": 0 }, + { "label": "k11", "matrix": [1, 1], "w": 1, "x": 15, "y": 0 }, + { "label": "k12", "matrix": [1, 2], "w": 1, "x": 16, "y": 0 }, + { "label": "k13", "matrix": [1, 3], "w": 1, "x": 17, "y": 0 }, + { "label": "k14", "matrix": [1, 4], "w": 1, "x": 18, "y": 0 }, + { "label": "k15", "matrix": [1, 5], "w": 1, "x": 19, "y": 0 }, + { "label": "k16", "matrix": [1, 6], "w": 1, "x": 20, "y": 0 }, + { "label": "k17", "matrix": [1, 7], "w": 1, "x": 21, "y": 0 }, + { "label": "k18", "matrix": [1, 8], "w": 1, "x": 22, "y": 0 }, + { "label": "k19", "matrix": [1, 9], "w": 1, "x": 23, "y": 0 }, + { "label": "k1a", "matrix": [1, 10], "w": 1, "x": 24, "y": 0 }, + { "label": "k1b", "matrix": [1, 11], "w": 1, "x": 25, "y": 0 }, + { "label": "k1c", "matrix": [1, 12], "w": 1, "x": 26, "y": 0 }, + { "label": "k1d", "matrix": [1, 13], "w": 1, "x": 27, "y": 0 }, + { "label": "k20", "matrix": [2, 0], "w": 1, "x": 28, "y": 0 }, + { "label": "k21", "matrix": [2, 1], "w": 1, "x": 29, "y": 0 }, + { "label": "k22", "matrix": [2, 2], "w": 1, "x": 30, "y": 0 }, + { "label": "k23", "matrix": [2, 3], "w": 1, "x": 31, "y": 0 }, + { "label": "k24", "matrix": [2, 4], "w": 1, "x": 32, "y": 0 }, + { "label": "k25", "matrix": [2, 5], "w": 1, "x": 33, "y": 0 }, + { "label": "k26", "matrix": [2, 6], "w": 1, "x": 34, "y": 0 }, + { "label": "k27", "matrix": [2, 7], "w": 1, "x": 35, "y": 0 }, + { "label": "k28", "matrix": [2, 8], "w": 1, "x": 36, "y": 0 }, + { "label": "k29", "matrix": [2, 9], "w": 1, "x": 37, "y": 0 }, + { "label": "k2a", "matrix": [2, 10], "w": 1, "x": 38, "y": 0 }, + { "label": "k2b", "matrix": [2, 11], "w": 1, "x": 39, "y": 0 }, + { "label": "k2c", "matrix": [2, 12], "w": 1, "x": 40, "y": 0 }, + { "label": "k2d", "matrix": [2, 13], "w": 1, "x": 41, "y": 0 }, + { "label": "k30", "matrix": [3, 0], "w": 1, "x": 42, "y": 0 }, + { "label": "k31", "matrix": [3, 1], "w": 1, "x": 43, "y": 0 }, + { "label": "k32", "matrix": [3, 2], "w": 1, "x": 44, "y": 0 }, + { "label": "k33", "matrix": [3, 3], "w": 1, "x": 45, "y": 0 }, + { "label": "k34", "matrix": [3, 4], "w": 1, "x": 46, "y": 0 }, + { "label": "k35", "matrix": [3, 5], "w": 1, "x": 47, "y": 0 }, + { "label": "k36", "matrix": [3, 6], "w": 1, "x": 48, "y": 0 }, + { "label": "k37", "matrix": [3, 7], "w": 1, "x": 49, "y": 0 }, + { "label": "k38", "matrix": [3, 8], "w": 1, "x": 50, "y": 0 }, + { "label": "k39", "matrix": [3, 9], "w": 1, "x": 51, "y": 0 }, + { "label": "k3a", "matrix": [3, 10], "w": 1, "x": 52, "y": 0 }, + { "label": "k3b", "matrix": [3, 11], "w": 1, "x": 53, "y": 0 }, + { "label": "k3c", "matrix": [3, 12], "w": 1, "x": 54, "y": 0 }, + { "label": "k3d", "matrix": [3, 13], "w": 1, "x": 55, "y": 0 }, + { "label": "k40", "matrix": [4, 0], "w": 1, "x": 56, "y": 0 }, + { "label": "k41", "matrix": [4, 1], "w": 1, "x": 57, "y": 0 }, + { "label": "k42", "matrix": [4, 2], "w": 1, "x": 58, "y": 0 }, + { "label": "k43", "matrix": [4, 3], "w": 1, "x": 59, "y": 0 }, + { "label": "k46", "matrix": [4, 6], "w": 1, "x": 60, "y": 0 }, + { "label": "k49", "matrix": [4, 9], "w": 1, "x": 61, "y": 0 }, + { "label": "k4a", "matrix": [4, 10], "w": 1, "x": 62, "y": 0 }, + { "label": "k4b", "matrix": [4, 11], "w": 1, "x": 63, "y": 0 }, + { "label": "k4c", "matrix": [4, 12], "w": 1, "x": 64, "y": 0 }, + { "label": "k4d", "matrix": [4, 13], "w": 1, "x": 65, "y": 0 } + ] + } + } +} \ No newline at end of file diff --git a/keyboards/ask55/keymaps/default/keymap.c b/keyboards/ask55/keymaps/default/keymap.c new file mode 100644 index 00000000000..e767e25b634 --- /dev/null +++ b/keyboards/ask55/keymaps/default/keymap.c @@ -0,0 +1,34 @@ +/* Copyright 2022 Yiancar / Keyboard-Magpie + * + * 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( /* Base */ + LT(1,KC_ESC),KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_LCTL, 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_RSFT, + KC_LCAP, KC_LALT, KC_LGUI, KC_GRV, KC_SPC, KC_NUBS, KC_LEFT, KC_RGHT, KC_DOWN, KC_UP +), + [1] = LAYOUT( /* Momentary Layer 1 */ + 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,RGB_TOG, + 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/ask55/keymaps/default/readme.md b/keyboards/ask55/keymaps/default/readme.md new file mode 100644 index 00000000000..7e0a6bd73aa --- /dev/null +++ b/keyboards/ask55/keymaps/default/readme.md @@ -0,0 +1 @@ +# The M0116, M0330 and IIc Plus (default) keymap for the ASK55 \ No newline at end of file diff --git a/keyboards/ask55/keymaps/iic/keymap.c b/keyboards/ask55/keymaps/iic/keymap.c new file mode 100644 index 00000000000..5784307af9f --- /dev/null +++ b/keyboards/ask55/keymaps/iic/keymap.c @@ -0,0 +1,33 @@ +/* Copyright 2022 Yiancar / Keyboard-Magpie + * + * 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( /* Base */ + LT(1,KC_ESC),KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_NUBS, + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_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_RSFT, + KC_LCAP, KC_GRV, KC_LGUI, KC_LALT, KC_SPC, KC_LGUI, KC_LEFT, KC_RGHT, KC_DOWN, KC_UP +), + [1] = LAYOUT( /* Momentary Layer 1 */ + 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,RGB_TOG, + 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/ask55/keymaps/iic/readme.md b/keyboards/ask55/keymaps/iic/readme.md new file mode 100644 index 00000000000..e9300cc04db --- /dev/null +++ b/keyboards/ask55/keymaps/iic/readme.md @@ -0,0 +1 @@ +# The IIc keymap for the ASK55 \ No newline at end of file diff --git a/keyboards/ask55/keymaps/m0118/keymap.c b/keyboards/ask55/keymaps/m0118/keymap.c new file mode 100644 index 00000000000..541944f5d6f --- /dev/null +++ b/keyboards/ask55/keymaps/m0118/keymap.c @@ -0,0 +1,33 @@ +/* Copyright 2022 Yiancar / Keyboard-Magpie + * + * 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( /* Base */ + LT(1,KC_ESC),KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_ENT, + KC_LCAP, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUBS, KC_TRNS, + KC_LSFT, KC_GRV, 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_LALT, KC_LGUI, KC_LGUI, KC_SPC, KC_RGUI, KC_RGUI, KC_LEFT, KC_RGHT, KC_DOWN +), + [1] = LAYOUT( /* Momentary Layer 1 */ + 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,RGB_TOG, + 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/ask55/keymaps/m0118/readme.md b/keyboards/ask55/keymaps/m0118/readme.md new file mode 100644 index 00000000000..1bf1a90266e --- /dev/null +++ b/keyboards/ask55/keymaps/m0118/readme.md @@ -0,0 +1 @@ +# The M0118 keymap for the ASK55 \ No newline at end of file diff --git a/keyboards/ask55/keymaps/mac-portable/keymap.c b/keyboards/ask55/keymaps/mac-portable/keymap.c new file mode 100644 index 00000000000..056d0aee5a9 --- /dev/null +++ b/keyboards/ask55/keymaps/mac-portable/keymap.c @@ -0,0 +1,33 @@ +/* Copyright 2022 Yiancar / Keyboard-Magpie + * + * 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( /* Base */ + LT(1,KC_ESC),KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_NUBS, + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_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_RSFT, + KC_LCAP, KC_LALT, KC_LGUI, KC_GRV, KC_SPC, KC_ENT, KC_LEFT, KC_RGHT, KC_DOWN, KC_UP +), + [1] = LAYOUT( /* Momentary Layer 1 */ + 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,RGB_TOG, + 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/ask55/keymaps/mac-portable/readme.md b/keyboards/ask55/keymaps/mac-portable/readme.md new file mode 100644 index 00000000000..9c24da47362 --- /dev/null +++ b/keyboards/ask55/keymaps/mac-portable/readme.md @@ -0,0 +1 @@ +# The Mac Portable keymap for the ASK55 diff --git a/keyboards/ask55/keymaps/next/keymap.c b/keyboards/ask55/keymaps/next/keymap.c new file mode 100644 index 00000000000..ea095ed7959 --- /dev/null +++ b/keyboards/ask55/keymaps/next/keymap.c @@ -0,0 +1,33 @@ +/* Copyright 2022 Yiancar / Keyboard-Magpie + * + * 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( /* Base */ + LT(1,KC_ESC),KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_NUBS, + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_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_RSFT, + KC_LALT, KC_LGUI, KC_TRNS, KC_TRNS, KC_SPC, KC_TRNS, KC_TRNS, KC_RGUI, KC_RGUI, KC_RALT +), + [1] = LAYOUT( /* Momentary Layer 1 */ + 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,RGB_TOG, + 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/ask55/keymaps/next/readme.md b/keyboards/ask55/keymaps/next/readme.md new file mode 100644 index 00000000000..5cb6d33d1b6 --- /dev/null +++ b/keyboards/ask55/keymaps/next/readme.md @@ -0,0 +1 @@ +# The NeXT (both) keymaps for the ASK55 \ No newline at end of file diff --git a/keyboards/ask55/readme.md b/keyboards/ask55/readme.md new file mode 100644 index 00000000000..50128fef7d0 --- /dev/null +++ b/keyboards/ask55/readme.md @@ -0,0 +1,15 @@ +# ASK55 + +The ASK55 is a 14.5u, Alps-compatible PCB available from Paradigm. + +* Keyboard Maintainer: [yiancar](https://github.com/yiancar) / [keyboard-magpie](https://github.com/keyboard-magpie) +* Hardware Supported: Paradigm ASK55 PCB +* Hardware Availability: Paradigm GB + +Make example for this keyboard (after setting up your build environment): + + make ask55:default + +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). + +To enter bootloader mode, double-press the reset button on the back of the PCB (yes, it's caterina for now, sorry!), or press and hold escape (top left key) when plugging in the board. diff --git a/keyboards/ask55/rules.mk b/keyboards/ask55/rules.mk new file mode 100644 index 00000000000..7ff128fa692 --- /dev/null +++ b/keyboards/ask55/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank \ No newline at end of file diff --git a/keyboards/axolstudio/yeti/hotswap/config.h b/keyboards/axolstudio/yeti/hotswap/config.h index da4085588bd..439ca0d512a 100644 --- a/keyboards/axolstudio/yeti/hotswap/config.h +++ b/keyboards/axolstudio/yeti/hotswap/config.h @@ -74,7 +74,6 @@ along with this program. If not, see . # define ENABLE_RGB_MATRIX_MULTISPLASH # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH # define RGB_MATRIX_LED_FLUSH_LIMIT 16 // 16 is equivalent to limiting to 60fps -# 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 DRIVER_ADDR_1 0b1010000 # define DRIVER_COUNT 1 diff --git a/keyboards/axolstudio/yeti/hotswap/hotswap.c b/keyboards/axolstudio/yeti/hotswap/hotswap.c index a8ccf7fc439..9d5efc208d2 100644 --- a/keyboards/axolstudio/yeti/hotswap/hotswap.c +++ b/keyboards/axolstudio/yeti/hotswap/hotswap.c @@ -21,20 +21,20 @@ 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 }, - { 0, B_4, A_4, C_4 }, - { 0, B_5, A_5, C_5 }, - { 0, B_6, A_6, C_6 }, - { 0, B_7, A_7, C_7 }, - { 0, B_8, A_8, C_8 }, - { 0, B_9, A_9, C_9 }, - { 0, B_10, A_10, C_10 }, - { 0, B_11, A_11, C_11 }, - { 0, B_12, A_12, C_12 }, - { 0, B_13, A_13, C_13 }, + { 0, B_4, A_4, C_4 }, + { 0, B_5, A_5, C_5 }, + { 0, B_6, A_6, C_6 }, + { 0, B_7, A_7, C_7 }, + { 0, B_8, A_8, C_8 }, + { 0, B_9, A_9, C_9 }, + { 0, B_10, A_10, C_10 }, + { 0, B_11, A_11, C_11 }, + { 0, B_12, A_12, C_12 }, + { 0, B_13, A_13, C_13 }, { 0, B_14, A_14, C_14 }, { 0, B_15, A_15, C_15 }, - - { 0, E_1, D_1, F_1 }, + + { 0, E_1, D_1, F_1 }, { 0, E_2, D_2, F_2 }, { 0, E_3, D_3, F_3 }, { 0, E_4, D_4, F_4 }, @@ -46,13 +46,13 @@ const is31_led g_is31_leds[RGB_MATRIX_LED_COUNT] = { { 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_13, D_13, F_13 }, + { 0, E_14, D_14, F_14 }, { 0, E_15, D_15, F_15 }, - - { 0, H_1, G_1, I_1 }, - { 0, H_2, G_2, I_2 }, - { 0, H_3, G_3, I_3 }, + + { 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 }, @@ -67,25 +67,25 @@ const is31_led g_is31_leds[RGB_MATRIX_LED_COUNT] = { { 0, K_2, J_2, L_2 }, { 0, K_3, J_3, L_3 }, - { 0, K_4, J_4, L_4 }, + { 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_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_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_1, J_1, L_1 }, { 0, K_16, J_16, L_16 }, { 0, H_16, G_16, I_16 }, - { 0, E_16, D_16, F_16 }, - { 0, B_16, A_16, C_16 }, + { 0, E_16, D_16, F_16 }, + { 0, B_16, A_16, C_16 }, { 0, H_15, G_15, I_15 }, - { 0, K_15, J_15, L_15 }, + { 0, K_15, J_15, L_15 }, }; led_config_t g_led_config = { @@ -102,7 +102,7 @@ led_config_t g_led_config = { {16,48},{32,48},{48,48},{64,48},{80,48},{96,48},{112,48},{128,48},{144,48},{160,48},{176,48},{192,48},{224,48}, {16,64},{48,64},{80,64},{96,64},{128,64},{160,64},{224,64} }, { - 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, + 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, @@ -110,9 +110,12 @@ led_config_t g_led_config = { } }; #endif -__attribute__ ((weak)) -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_kb(void) { + if (!rgb_matrix_indicators_user()) { + return false; + } if (host_keyboard_led_state().caps_lock) { rgb_matrix_set_color(31, 0xFF, 0xFF, 0xFF); } + return true; } diff --git a/keyboards/bandominedoni/keymaps/led/keymap.c b/keyboards/bandominedoni/keymaps/led/keymap.c index 8659697a919..7f43d65d22d 100644 --- a/keyboards/bandominedoni/keymaps/led/keymap.c +++ b/keyboards/bandominedoni/keymaps/led/keymap.c @@ -205,7 +205,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } #ifdef RGB_MATRIX_ENABLE -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_user(void) { if (rgb_matrix_is_enabled()) { // turn the lights on when it is enabled. uint8_t layer = get_highest_layer(layer_state); switch (layer) { @@ -250,5 +250,6 @@ void rgb_matrix_indicators_user(void) { break; } } + return false; } #endif diff --git a/keyboards/bandominedoni/keymaps/lednotg/keymap.c b/keyboards/bandominedoni/keymaps/lednotg/keymap.c index ba25c1d55fa..43ad28040fe 100644 --- a/keyboards/bandominedoni/keymaps/lednotg/keymap.c +++ b/keyboards/bandominedoni/keymaps/lednotg/keymap.c @@ -205,7 +205,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } #ifdef RGB_MATRIX_ENABLE -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_user(void) { if (rgb_matrix_is_enabled()) { // turn the lights on when it is enabled. uint8_t layer = biton32(layer_state); switch (layer) { @@ -250,5 +250,6 @@ void rgb_matrix_indicators_user(void) { break; } } + return false; } #endif diff --git a/keyboards/bandominedoni/keymaps/via/keymap.c b/keyboards/bandominedoni/keymaps/via/keymap.c index aa668af154e..2fd2f9092c6 100644 --- a/keyboards/bandominedoni/keymaps/via/keymap.c +++ b/keyboards/bandominedoni/keymaps/via/keymap.c @@ -141,7 +141,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } #ifdef RGB_MATRIX_ENABLE -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_user(void) { if (rgb_matrix_is_enabled()) { // turn the lights on when it is enabled. uint8_t layer = get_highest_layer(layer_state); switch (layer) { @@ -177,5 +177,6 @@ void rgb_matrix_indicators_user(void) { break; } } + return false; } #endif diff --git a/keyboards/basekeys/trifecta/config.h b/keyboards/basekeys/trifecta/config.h index 4d71a3ea532..014f59a2195 100644 --- a/keyboards/basekeys/trifecta/config.h +++ b/keyboards/basekeys/trifecta/config.h @@ -72,7 +72,6 @@ #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_FRAMEBUFFER_EFFECTS # 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) diff --git a/keyboards/bastardkb/charybdis/3x5/keymaps/drashna/rules.mk b/keyboards/bastardkb/charybdis/3x5/keymaps/drashna/rules.mk index 1369213cf2d..dc0395c800a 100644 --- a/keyboards/bastardkb/charybdis/3x5/keymaps/drashna/rules.mk +++ b/keyboards/bastardkb/charybdis/3x5/keymaps/drashna/rules.mk @@ -23,6 +23,6 @@ MOUSEKEY_ENABLE = yes NKRO_ENABLE = yes CONSOLE_ENABLE = yes -AUTOCORRECTION_ENABLE = yes +AUTOCORRECT_ENABLE = yes DEBOUNCE_TYPE = asym_eager_defer_pk diff --git a/keyboards/bastardkb/charybdis/4x6/keymaps/drashna/rules.mk b/keyboards/bastardkb/charybdis/4x6/keymaps/drashna/rules.mk index 336750bc904..d655fbd5dc1 100644 --- a/keyboards/bastardkb/charybdis/4x6/keymaps/drashna/rules.mk +++ b/keyboards/bastardkb/charybdis/4x6/keymaps/drashna/rules.mk @@ -24,7 +24,7 @@ SERIAL_DRIVER = usart AUDIO_DRIVER = pwm_hardware BACKLIGHT_DRIVER = pwm -AUTOCORRECTION_ENABLE = yes +AUTOCORRECT_ENABLE = yes CAPS_WORD_ENABLE = yes SWAP_HANDS_ENABLE = yes TAP_DANCE_ENABLE = yes diff --git a/keyboards/bastardkb/charybdis/charybdis.c b/keyboards/bastardkb/charybdis/charybdis.c index 60bca936e77..2000641f9ac 100644 --- a/keyboards/bastardkb/charybdis/charybdis.c +++ b/keyboards/bastardkb/charybdis/charybdis.c @@ -303,16 +303,6 @@ bool process_record_kb(uint16_t keycode, keyrecord_t* record) { break; } # endif // !NO_CHARYBDIS_KEYCODES -# ifndef MOUSEKEY_ENABLE - // Simulate mouse keys if full support is not enabled (reduces firmware size - // while maintaining support for mouse keys). - if (IS_MOUSEKEY_BUTTON(keycode)) { - report_mouse_t mouse_report = pointing_device_get_report(); - mouse_report.buttons = pointing_device_handle_buttons(mouse_report.buttons, record->event.pressed, keycode - KC_MS_BTN1); - pointing_device_set_report(mouse_report); - pointing_device_send(); - } -# endif // !MOUSEKEY_ENABLE # endif // POINTING_DEVICE_ENABLE if ((keycode >= POINTER_DEFAULT_DPI_FORWARD && keycode < CHARYBDIS_SAFE_RANGE) || IS_MOUSEKEY(keycode)) { debug_charybdis_config_to_console(&g_charybdis_config); diff --git a/keyboards/bastardkb/dilemma/keymaps/drashna/rules.mk b/keyboards/bastardkb/dilemma/keymaps/drashna/rules.mk index 5f4afb7259b..41d73bc49ae 100644 --- a/keyboards/bastardkb/dilemma/keymaps/drashna/rules.mk +++ b/keyboards/bastardkb/dilemma/keymaps/drashna/rules.mk @@ -1,5 +1,5 @@ SWAP_HANDS_ENABLE = no -AUTOCORRECTION_ENABLE = yes +AUTOCORRECT_ENABLE = yes CAPS_WORD_ENABLE = yes CONSOLE_ENABLE = yes KEYLOGGER_ENABLE = no diff --git a/keyboards/bastardkb/tbk/keymaps/xyverz/readme.md b/keyboards/bastardkb/tbk/keymaps/xyverz/readme.md index 9359e6ad9c9..b806bd265a9 100644 --- a/keyboards/bastardkb/tbk/keymaps/xyverz/readme.md +++ b/keyboards/bastardkb/tbk/keymaps/xyverz/readme.md @@ -17,6 +17,6 @@ See the [keyboard build instructions](https://docs.bastardkb.com) ## Important information regarding the reset -If you modify this firmware, make sure to always have a RESET key that can be triggered using only the master side ! This way you ensure that you can always flash the keyboard, even if you mess up. +If you modify this firmware, make sure to always have a `QK_BOOT` key that can be triggered using only the master side ! This way you ensure that you can always flash the keyboard, even if you mess up. Otherwise if you're stuck, open the case and reset manually by shorting Gnd and Rst, or pressing the RST button. diff --git a/keyboards/blockboy/ac980mini/config.h b/keyboards/blockboy/ac980mini/config.h index 4275ffa19e7..bb87f724ebb 100644 --- a/keyboards/blockboy/ac980mini/config.h +++ b/keyboards/blockboy/ac980mini/config.h @@ -14,7 +14,6 @@ #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_FRAMEBUFFER_EFFECTS // # 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) diff --git a/keyboards/boardsource/the_mark/keymaps/stanrc85/keymap.c b/keyboards/boardsource/the_mark/keymaps/stanrc85/keymap.c index 0d958b883a0..5b37bb66677 100644 --- a/keyboards/boardsource/the_mark/keymaps/stanrc85/keymap.c +++ b/keyboards/boardsource/the_mark/keymaps/stanrc85/keymap.c @@ -19,17 +19,17 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Base */ [_QWERTY] = 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, KC_MPLY, - 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, CA_SCLN, - KC_CTLE, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, CA_QUOT, - KC_LSFT, 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_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_MPLY, + 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, CA_SCLN, + KC_CTLE, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, CA_QUOT, + KC_LSFT, 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, LT_SPCF, LT_SPCF, LT_SPCF, TD_TWIN, MO(_FN2_60), KC_GRV, KC_LEFT, KC_DOWN, KC_RGHT ), [_DEFAULT] = 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, KC_MPLY, - 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, CA_SCLN, - KC_CTLE, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, CA_QUOT, - KC_LSFT, 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_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_MPLY, + 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, CA_SCLN, + KC_CTLE, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, CA_QUOT, + KC_LSFT, 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, LT_SPCF, LT_SPCF, LT_SPCF, TD_TWIN, MO(_FN2_60), KC_GRV, KC_LEFT, KC_DOWN, KC_RGHT ), [_FN1_60] = LAYOUT_all( @@ -43,24 +43,24 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { RGB_TOG, RGB_MOD, RGB_VAD, RGB_VAI, RGB_SAI, RGB_HUD, RGB_HUI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MAKE, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, TG(_DEFAULT) ) }; -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_user(void) { uint8_t layer = get_highest_layer(layer_state); switch (layer) { case _FN1_60: - rgb_matrix_set_color(10, 0, 0, 255); + rgb_matrix_set_color(10, 0, 0, 255); break; case _FN2_60: - rgb_matrix_set_color(10, 255, 255, 255); + rgb_matrix_set_color(10, 255, 255, 255); break; case _DEFAULT: - rgb_matrix_set_color(10, 0, 255, 0); + rgb_matrix_set_color(10, 0, 255, 0); break; default: break; @@ -68,6 +68,7 @@ void rgb_matrix_indicators_user(void) { if (host_keyboard_led_state().caps_lock) { rgb_matrix_set_color(10, 255, 0, 0); } + return false; } void matrix_init_kb(void){ diff --git a/keyboards/canary/canary60rgb/canary60rgb.c b/keyboards/canary/canary60rgb/canary60rgb.c index c6aca130324..00e929e952a 100644 --- a/keyboards/canary/canary60rgb/canary60rgb.c +++ b/keyboards/canary/canary60rgb/canary60rgb.c @@ -108,10 +108,13 @@ led_config_t g_led_config = { } }; -__attribute__ ((weak)) -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_kb(void) { + if (!rgb_matrix_indicators_user()) { + return false; + } if (host_keyboard_led_state().caps_lock) { rgb_matrix_set_color(40, 0xFF, 0xFF, 0xFF); } + return true; } #endif diff --git a/keyboards/canary/canary60rgb/v1/config.h b/keyboards/canary/canary60rgb/v1/config.h index 186cf189aed..45239fc6974 100644 --- a/keyboards/canary/canary60rgb/v1/config.h +++ b/keyboards/canary/canary60rgb/v1/config.h @@ -58,7 +58,6 @@ #define DEBOUNCE 5 #ifdef RGB_MATRIX_ENABLE -# 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_KEYPRESSES # define RGB_MATRIX_FRAMEBUFFER_EFFECTS diff --git a/keyboards/cannonkeys/moment/config.h b/keyboards/cannonkeys/moment/config.h new file mode 100644 index 00000000000..8236eb17d96 --- /dev/null +++ b/keyboards/cannonkeys/moment/config.h @@ -0,0 +1,20 @@ +/* Copyright 2022 Andrew Kannan + * + * 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 BACKLIGHT_PWM_DRIVER PWMD3 +#define BACKLIGHT_PWM_CHANNEL 1 +#define BACKLIGHT_PAL_MODE 1 diff --git a/keyboards/durgod/k3x0/k320/config.h b/keyboards/cannonkeys/moment/halconf.h similarity index 74% rename from keyboards/durgod/k3x0/k320/config.h rename to keyboards/cannonkeys/moment/halconf.h index 2ea9b37fdf7..4bec05bd69a 100644 --- a/keyboards/durgod/k3x0/k320/config.h +++ b/keyboards/cannonkeys/moment/halconf.h @@ -1,5 +1,4 @@ -/* Copyright 2021 Don Kjer and Tyler Tidman - * Copyright 2021 Simon Arlott +/* 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 @@ -15,11 +14,14 @@ * along with this program. If not, see . */ +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/cannonkeys/an_c/halconf.h -r platforms/chibios/common/configs/halconf.h` + */ + #pragma once -#include "config_common.h" +#define HAL_USE_PWM TRUE -/* key matrix size (cols in generic keyboard config) */ -#define MATRIX_ROWS 7 +#include_next -#define MATRIX_ROW_PINS { A0, A1, A2, A3, A4, A5, A6 } diff --git a/keyboards/cannonkeys/moment/info.json b/keyboards/cannonkeys/moment/info.json new file mode 100644 index 00000000000..1ef45f4d8a8 --- /dev/null +++ b/keyboards/cannonkeys/moment/info.json @@ -0,0 +1,107 @@ +{ + "manufacturer": "CannonKeys", + "keyboard_name": "Moment", + "maintainer": "awkannan", + "bootloader": "stm32-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "backlight": 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"] + }, + "backlight": { + "breathing": true, + "breathing_period": 5, + "levels": 15, + "pin": "A6" + }, + "indicators": { + "caps_lock": "A3", + "on_state": 0 + }, + "processor": "STM32F072", + "url": "https://cannonkeys.com/", + "usb": { + "device_version": "1.0.0", + "vid": "0xCA04", + "pid": "0x0014" + }, + "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, 13], "x": 13.0, "y": 0.0 }, + { "label": "Del", "matrix": [0, 14], "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": "\\", "matrix": [2, 12], "x": 12.75, "y": 2.0 }, + { "label": "Enter", "matrix": [2, 14], "w": 1.25, "x": 13.75, "y": 2.0 }, + { "label": "Shift", "matrix": [3, 0], "w": 1.25, "x": 0.0, "y": 3.0 }, + { "label": "|", "matrix": [3, 1], "x": 1.25, "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/keymaps/default/keymap.c b/keyboards/cannonkeys/moment/keymaps/default/keymap.c new file mode 100644 index 00000000000..307776a9d13 --- /dev/null +++ b/keyboards/cannonkeys/moment/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_BSLS, KC_ENT, + KC_LSFT, KC_BSLS, 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_DEC, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, QK_BOOT + ), + + [_FN2] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______ + ), + + [_FN3] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/cannonkeys/moment/keymaps/via/keymap.c b/keyboards/cannonkeys/moment/keymaps/via/keymap.c new file mode 100644 index 00000000000..307776a9d13 --- /dev/null +++ b/keyboards/cannonkeys/moment/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_BSLS, KC_ENT, + KC_LSFT, KC_BSLS, 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_DEC, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, QK_BOOT + ), + + [_FN2] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______ + ), + + [_FN3] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/cannonkeys/moment/keymaps/via/rules.mk b/keyboards/cannonkeys/moment/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/cannonkeys/moment/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/cannonkeys/moment/mcuconf.h b/keyboards/cannonkeys/moment/mcuconf.h new file mode 100644 index 00000000000..45f6a54cd15 --- /dev/null +++ b/keyboards/cannonkeys/moment/mcuconf.h @@ -0,0 +1,28 @@ +/* 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 . + */ + +/* + * This file was auto-generated by: + * `qmk chibios-confmigrate -i keyboards/cannonkeys/an_c/mcuconf.h -r platforms/chibios/GENERIC_STM32_F072XB/configs/mcuconf.h` + */ + +#pragma once + +#include_next + +#undef STM32_PWM_USE_TIM3 +#define STM32_PWM_USE_TIM3 TRUE + diff --git a/keyboards/cannonkeys/moment/readme.md b/keyboards/cannonkeys/moment/readme.md new file mode 100644 index 00000000000..8418fb37a84 --- /dev/null +++ b/keyboards/cannonkeys/moment/readme.md @@ -0,0 +1,25 @@ +# Moment + +*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:default + +Flashing example for this keyboard: + + make cannonkeys/moment: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/rules.mk b/keyboards/cannonkeys/moment/rules.mk new file mode 100644 index 00000000000..0ab54aaaf71 --- /dev/null +++ b/keyboards/cannonkeys/moment/rules.mk @@ -0,0 +1,2 @@ +# Wildcard to allow APM32 MCU +DFU_SUFFIX_ARGS = -v FFFF -p FFFF diff --git a/keyboards/cannonkeys/moment_hs/keymaps/default/keymap.c b/keyboards/cannonkeys/moment_hs/keymaps/default/keymap.c index daab0435071..d9878144f49 100644 --- a/keyboards/cannonkeys/moment_hs/keymaps/default/keymap.c +++ b/keyboards/cannonkeys/moment_hs/keymaps/default/keymap.c @@ -24,7 +24,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { RGB_TOG, RGB_MOD, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, BL_BRTG, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, BL_INC, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, RESET + _______, _______, _______, _______, _______, _______, QK_BOOT ), [_FN2] = LAYOUT_all( diff --git a/keyboards/cannonkeys/moment_hs/keymaps/via/keymap.c b/keyboards/cannonkeys/moment_hs/keymaps/via/keymap.c index be5d800341f..ccb2fcf4184 100644 --- a/keyboards/cannonkeys/moment_hs/keymaps/via/keymap.c +++ b/keyboards/cannonkeys/moment_hs/keymaps/via/keymap.c @@ -24,7 +24,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, RESET + _______, _______, _______, _______, _______, _______, QK_BOOT ), [_FN2] = LAYOUT_all( diff --git a/keyboards/cannonkeys/vector/keymaps/default/keymap.c b/keyboards/cannonkeys/vector/keymaps/default/keymap.c index 7def0bb31d3..b5afbd2e4b4 100644 --- a/keyboards/cannonkeys/vector/keymaps/default/keymap.c +++ b/keyboards/cannonkeys/vector/keymaps/default/keymap.c @@ -24,7 +24,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { RGB_TOG, RGB_MOD, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, BL_BRTG, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, BL_INC, BL_DEC, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, RESET + _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT ), [_FN2] = LAYOUT_all( diff --git a/keyboards/cannonkeys/vector/keymaps/via/keymap.c b/keyboards/cannonkeys/vector/keymaps/via/keymap.c index 28b3492f0e4..877e364f3a5 100644 --- a/keyboards/cannonkeys/vector/keymaps/via/keymap.c +++ b/keyboards/cannonkeys/vector/keymaps/via/keymap.c @@ -24,7 +24,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, RESET + _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT ), [_FN2] = LAYOUT_all( diff --git a/keyboards/capsunlocked/cu80/v2_ansi/v2_ansi.c b/keyboards/capsunlocked/cu80/v2_ansi/v2_ansi.c index ef920474bb7..3c26c5d5805 100644 --- a/keyboards/capsunlocked/cu80/v2_ansi/v2_ansi.c +++ b/keyboards/capsunlocked/cu80/v2_ansi/v2_ansi.c @@ -25,13 +25,17 @@ void matrix_init_kb(void) { } /* Set LED 62 (Caps Lock) and LED 14 (Scroll Lock) when key active */ -void rgb_matrix_indicators_kb(void) { +bool rgb_matrix_indicators_kb(void) { + if (!rgb_matrix_indicators_user()) { + return false; + } if (host_keyboard_led_state().caps_lock) { rgb_matrix_set_color(62, 255, 255, 255); } if (host_keyboard_led_state().scroll_lock) { rgb_matrix_set_color(14, 255, 255, 255); } + return true; } /* Leds on the CU80 go ltr > rtl > ltr > rlt > Ltr > rtl */ diff --git a/keyboards/capsunlocked/cu80/v2_iso/v2_iso.c b/keyboards/capsunlocked/cu80/v2_iso/v2_iso.c index 2caef36bc7c..caa13cfa817 100644 --- a/keyboards/capsunlocked/cu80/v2_iso/v2_iso.c +++ b/keyboards/capsunlocked/cu80/v2_iso/v2_iso.c @@ -24,13 +24,17 @@ void matrix_init_kb(void) { } /* Set LED 62 (Caps Lock) and LED 14 (Scroll Lock) when key active */ -void rgb_matrix_indicators_kb(void) { +bool rgb_matrix_indicators_kb(void) { + if (!rgb_matrix_indicators_user()) { + return false; + } if (host_keyboard_led_state().caps_lock) { rgb_matrix_set_color(62, 255, 255, 255); } if (host_keyboard_led_state().scroll_lock) { rgb_matrix_set_color(14, 255, 255, 255); } + return true; } /* Leds on the CU80 go ltr > rtl > ltr > rlt > Ltr > rtl */ diff --git a/keyboards/checkerboards/quark/keymaps/pezhore/keymap.c b/keyboards/checkerboards/quark/keymaps/pezhore/keymap.c index 528bc2cc00e..67ec80f3044 100644 --- a/keyboards/checkerboards/quark/keymaps/pezhore/keymap.c +++ b/keyboards/checkerboards/quark/keymaps/pezhore/keymap.c @@ -123,7 +123,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------' */ [_ADJUST] = LAYOUT_ortho_4x12( - _______, QK_BOOT, DEBUG, _______, _______, _______, _______, TERM_ON, TERM_OFF, _______, _______, KC_DEL, + _______, QK_BOOT, DEBUG, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ @@ -192,4 +192,4 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { break; } return true; -}; \ No newline at end of file +}; diff --git a/keyboards/cherrybstudio/cb87rgb/cb87rgb.c b/keyboards/cherrybstudio/cb87rgb/cb87rgb.c index 362a9916528..6c9d30c6ef2 100644 --- a/keyboards/cherrybstudio/cb87rgb/cb87rgb.c +++ b/keyboards/cherrybstudio/cb87rgb/cb87rgb.c @@ -48,13 +48,16 @@ led_config_t g_led_config = { { } }; -__attribute__ ((weak)) -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_kb(void) { + if (!rgb_matrix_indicators_user()) { + return false; + } if (host_keyboard_led_state().caps_lock) { rgb_matrix_set_color(51, 255, 255, 255); } if (host_keyboard_led_state().scroll_lock) { rgb_matrix_set_color(14, 255, 255, 255); } + return true; } #endif diff --git a/keyboards/chromatonemini/chromatonemini.c b/keyboards/chromatonemini/chromatonemini.c index 91caab7980a..d7dc33a0e0d 100644 --- a/keyboards/chromatonemini/chromatonemini.c +++ b/keyboards/chromatonemini/chromatonemini.c @@ -154,55 +154,3 @@ uint8_t shift_led_indicator_right(uint8_t scale_indicator_col){ } return scale_indicator_col; } - -#ifdef ENCODER_ENABLE -# ifdef ENCODERS -static uint8_t encoder_state[ENCODERS] = {0}; -static keypos_t encoder_cw[ENCODERS] = ENCODERS_CW_KEY; -static keypos_t encoder_ccw[ENCODERS] = ENCODERS_CCW_KEY; -# endif - -void encoder_action_unregister(void) { -# ifdef ENCODERS - for (int index = 0; index < ENCODERS; ++index) { - if (encoder_state[index]) { - keyevent_t encoder_event = (keyevent_t) { - .key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index], - .pressed = false, - .time = (timer_read() | 1) - }; - encoder_state[index] = 0; - action_exec(encoder_event); - } - } -# endif -} - -void encoder_action_register(uint8_t index, bool clockwise) { -# ifdef ENCODERS - keyevent_t encoder_event = (keyevent_t) { - .key = clockwise ? encoder_cw[index] : encoder_ccw[index], - .pressed = true, - .time = (timer_read() | 1) - }; - encoder_state[index] = (clockwise ^ 1) | (clockwise << 1); -# ifdef CONSOLE_ENABLE - uprintf("encoder_action_register index = %u, clockwise = %u, row = %u, col = %u\n", index, clockwise, encoder_event.key.row, encoder_event.key.col); -# endif - action_exec(encoder_event); -# endif -} - -void matrix_scan_kb(void) { - encoder_action_unregister(); - matrix_scan_user(); -} - -bool encoder_update_kb(uint8_t index, bool clockwise) { - encoder_action_register(index, clockwise); - // don't return user actions, because they are in the keymap - // encoder_update_user(index, clockwise); - return true; -}; - -#endif diff --git a/keyboards/chromatonemini/chromatonemini.h b/keyboards/chromatonemini/chromatonemini.h index 83838be73e2..d42ee500ce8 100644 --- a/keyboards/chromatonemini/chromatonemini.h +++ b/keyboards/chromatonemini/chromatonemini.h @@ -27,14 +27,14 @@ * represents the switch matrix. */ #define LAYOUT( \ - enc, sustain, ccw, cw, \ + enc, sustain, \ up, \ left, right, k01, k03, k05, k07, k09, k11, k13, k15, k17, k19, k21, k23, k25, k27, k29, k31, k33, k35, k37, \ down, k02, k04, k06, k08, k10, k12, k14, k16, k18, k20, k22, k24, k26, k28, k30, k32, k34, k36 \ ) { \ { enc, down, left, right, up, k01, k02, sustain }, \ - { k03, k04, k05, k06, k07, k08, k09, ccw }, \ - { k10, k11, k12, k13, k14, k15, k16, cw }, \ + { k03, k04, k05, k06, k07, k08, k09, KC_NO }, \ + { k10, k11, k12, k13, k14, k15, k16, KC_NO }, \ { k17, k18, k19, k20, k21, k22, k23, KC_NO }, \ { k24, k25, k26, k27, k28, k29, k30, KC_NO }, \ { k31, k32, k33, k34, k35, k36, k37, KC_NO } \ @@ -117,6 +117,3 @@ extern MidiDevice midi_device; uint8_t shift_led_indicator_left(uint8_t scale_indicator_col); uint8_t shift_led_indicator_right(uint8_t scale_indicator_col); -void encoder_action_unregister(void); - -void encoder_action_register(uint8_t index, bool clockwise); diff --git a/keyboards/chromatonemini/config.h b/keyboards/chromatonemini/config.h index e92f84ba872..5bb55f8797c 100644 --- a/keyboards/chromatonemini/config.h +++ b/keyboards/chromatonemini/config.h @@ -19,27 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* key matrix size */ -#define MATRIX_ROWS 6 -#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) - * - */ -#define MATRIX_ROW_PINS { E6, D7, C6, D4, D0, D1 } -#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2, B6 } -#define UNUSED_PINS - -/* COL2ROW, ROW2COL */ -#define DIODE_DIRECTION COL2ROW - /* * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN. */ @@ -171,63 +150,6 @@ along with this program. If not, see . # endif // CONSOLE_ENABLE #endif // RGB_MATRIX_ENABLE -/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ -#define DEBOUNCE 5 - -/* define if matrix has ghost (lacks anti-ghosting diodes) */ -//#define MATRIX_HAS_GHOST - -// /* 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 - -/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. - * This is useful for the Windows task manager shortcut (ctrl+shift+esc). - */ -//#define GRAVE_ESC_CTRL_OVERRIDE - -/* - * Force NKRO - * - * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved - * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the - * makefile for this to work.) - * - * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) - * until the next keyboard reset. - * - * NKRO may prevent your keystrokes from being detected in the BIOS, but it is - * fully operational during normal computer usage. - * - * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) - * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by - * bootmagic, NKRO mode will always be enabled until it is toggled again during a - * power-up. - * - */ -//#define FORCE_NKRO - -/* - * Feature disable options - * These options are also useful to firmware size reduction. - */ - -/* disable debug print */ -//#define NO_DEBUG - -/* disable print */ -//#define NO_PRINT - -/* disable action features */ -//#define NO_ACTION_LAYER -//#define NO_ACTION_TAPPING -//#define NO_ACTION_ONESHOT - -/* Bootmagic Lite key configuration */ -//#define BOOTMAGIC_LITE_ROW 0 -//#define BOOTMAGIC_LITE_COLUMN 0 - /* Audio */ #ifdef AUDIO_ENABLE # define AUDIO_PIN B6 // use PB6 = PIN10 as Audio output @@ -262,19 +184,9 @@ along with this program. If not, see . # define MIDI_INITIAL_VELOCITY 117 #endif // MIDI_ENABLE -/* - * Encoder options - */ -#ifdef ENCODER_ENABLE -# define ENCODERS_PAD_A { B5 } -# define ENCODERS_PAD_B { B4 } -# define ENCODER_RESOLUTION 4 -# define TAP_CODE_DELAY 10 - -#define ENCODERS 1 -#define ENCODERS_CW_KEY { {7, 2} } -#define ENCODERS_CCW_KEY { {7, 1} } -#endif // ENCODER_ENABLE +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING /* 2021/01/22 added to shrink firmware size */ // NO_ACTION_TAPPING -1964 bytes, however, this disables Layer mods... diff --git a/keyboards/chromatonemini/info.json b/keyboards/chromatonemini/info.json index 5f77db05ee6..7d33f4ed20a 100644 --- a/keyboards/chromatonemini/info.json +++ b/keyboards/chromatonemini/info.json @@ -3,6 +3,26 @@ "manufacturer": "3araht", "url": "https://github.com/3araht/chromatonemini", "maintainer": "3araht", + "bootloader": "caterina", + "processor": "atmega32u4", + "features": { + "midi": true, + "extrakey": true, + "encoder": true, + "via": true, + "bootmagic": false, + "console": false, + "mousekey": false, + "nkro": false, + "rgblight": false, + "audio": false + }, + "diode_direction": "COL2ROW", + "matrix_pins": { + "cols": [ "F4", "F5", "F6", "F7", "B1", "B3", "B2", "B6" ], + "rows": [ "E6", "D7", "C6", "D4", "D0", "D1" ] + }, + "debounce": 5, "usb": { "vid": "0xFEED", "pid": "0xF4B4", @@ -13,8 +33,6 @@ "layout": [ {"label":"enc", "x":0.5, "y":0}, {"label":"sustain", "x":1.5, "y":0}, - {"label":"ccw", "x":2.5, "y":0}, - {"label":"cw", "x":3.5, "y":0}, {"label":"up", "x":0.5, "y":1.5}, {"label":"left", "x":0, "y":2.5}, {"label":"right", "x":1, "y":2.5}, @@ -57,5 +75,10 @@ {"label":"k34", "x":19, "y":3.5}, {"label":"k36", "x":20, "y":3.5}] } + }, + "encoder": { + "rotary": [ + { "pin_a": "B5", "pin_b": "B4", "resolution": 4 } + ] } } diff --git a/keyboards/chromatonemini/keymaps/default/keymap.c b/keyboards/chromatonemini/keymaps/default/keymap.c index 102aba930a6..4527065c3b1 100644 --- a/keyboards/chromatonemini/keymaps/default/keymap.c +++ b/keyboards/chromatonemini/keymaps/default/keymap.c @@ -39,7 +39,7 @@ extern midi_config_t midi_config; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Base */ [_BASE] = LAYOUT( - FN_MUTE, MI_SUS, KC_VOLD, KC_VOLU, + FN_MUTE, MI_SUS, MI_BENDU, MI_TRNSD, MI_TRNSU, MI_C_2, MI_D_2, MI_E_2, MI_Fs_2, MI_Ab_2, MI_Bb_2, MI_C_3, MI_D_3, MI_E_3, MI_Fs_3, MI_Ab_3, MI_Bb_3, MI_C_4, MI_D_4, MI_E_4, MI_Fs_4, MI_Ab_4, MI_Bb_4, MI_C_5, MI_BENDD, MI_Db_2, MI_Eb_2, MI_F_2, MI_G_2, MI_A_2, MI_B_2, MI_Db_3, MI_Eb_3, MI_F_3, MI_G_3, MI_A_3, MI_B_3, MI_Db_4, MI_Eb_4, MI_F_4, MI_G_4, MI_A_4, MI_B_4 @@ -47,20 +47,28 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* RESERVE */ [_RESERVE] = LAYOUT( - _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), [_FN] = LAYOUT( - _______, XXXXXXX, XXXXXXX, XXXXXXX, + _______, XXXXXXX, MI_VELU, MI_OCTD, MI_OCTU, L_BASE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, VERSION, XXXXXXX, XXXXXXX, MI_VELD, L_RESERVE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, EEP_RST, XXXXXXX, XXXXXXX ) }; +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [_RESERVE] = { ENCODER_CCW_CW(_______, _______) }, + [_FN] = { ENCODER_CCW_CW(_______, _______) }, +}; +#endif + // commom codes called from eeconfig_init_user() and keyboard_post_init_user(). void my_init(void){ // Set octave to MI_OCT_1 diff --git a/keyboards/chromatonemini/keymaps/default/rules.mk b/keyboards/chromatonemini/keymaps/default/rules.mk new file mode 100644 index 00000000000..8006608ea92 --- /dev/null +++ b/keyboards/chromatonemini/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes # replacing ENCODERS_CW_KEY method to this on 2022/08/31. diff --git a/keyboards/chromatonemini/keymaps/led/keymap.c b/keyboards/chromatonemini/keymaps/led/keymap.c index 99da8ed0c91..6d7d07cdaf3 100644 --- a/keyboards/chromatonemini/keymaps/led/keymap.c +++ b/keyboards/chromatonemini/keymaps/led/keymap.c @@ -215,7 +215,7 @@ static uint8_t key_separator_col = _KEY01; // (_KEY01 .. _KEY37). By defau const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Base */ [_BASE] = LAYOUT( - FN_MUTE, MI_SUS, KC_VOLD, KC_VOLU, + FN_MUTE, MI_SUS, MI_BENDU, SHIFT_L, SHIFT_R, MI_C_2, MI_D_2, MI_E_2, MI_Fs_2, MI_Ab_2, MI_Bb_2, MI_C_3, MI_D_3, MI_E_3, MI_Fs_3, MI_Ab_3, MI_Bb_3, MI_C_4, MI_D_4, MI_E_4, MI_Fs_4, MI_Ab_4, MI_Bb_4, MI_C_5, MI_BENDD, MI_Db_2, MI_Eb_2, MI_F_2, MI_G_2, MI_A_2, MI_B_2, MI_Db_3, MI_Eb_3, MI_F_3, MI_G_3, MI_A_3, MI_B_3, MI_Db_4, MI_Eb_4, MI_F_4, MI_G_4, MI_A_4, MI_B_4 @@ -223,7 +223,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* 1 octave on the left side is ch2, others are ch1 (normal) */ [_SEPALEFTOCT] = LAYOUT( - _______, _______, _______, _______, + _______, _______, _______, SHIFT_L, SHIFT_R, YM_C_2, YM_D_2, YM_E_2, YM_Fs_2, YM_Ab_2, YM_Bb_2, MI_C_3, MI_D_3, MI_E_3, MI_Fs_3, MI_Ab_3, MI_Bb_3, MI_C_4, MI_D_4, MI_E_4, MI_Fs_4, MI_Ab_4, MI_Bb_4, MI_C_5, _______, YM_Db_2, YM_Eb_2, YM_F_2, YM_G_2, YM_A_2, YM_B_2, MI_Db_3, MI_Eb_3, MI_F_3, MI_G_3, MI_A_3, MI_B_3, MI_Db_4, MI_Eb_4, MI_F_4, MI_G_4, MI_A_4, MI_B_4 @@ -231,7 +231,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Half ch2, half ch1 (normal) */ [_SEPAHALF] = LAYOUT( - _______, _______, _______, _______, + _______, _______, _______, SHIFT_L, SHIFT_R, YM_C_2, YM_D_2, YM_E_2, YM_Fs_2, YM_Ab_2, YM_Bb_2, YM_C_3, YM_D_3, YM_E_3, MI_Fs_3, MI_Ab_3, MI_Bb_3, MI_C_4, MI_D_4, MI_E_4, MI_Fs_4, MI_Ab_4, MI_Bb_4, MI_C_5, _______, YM_Db_2, YM_Eb_2, YM_F_2, YM_G_2, YM_A_2, YM_B_2, YM_Db_3, YM_Eb_3, YM_F_3, MI_G_3, MI_A_3, MI_B_3, MI_Db_4, MI_Eb_4, MI_F_4, MI_G_4, MI_A_4, MI_B_4 @@ -239,7 +239,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* 2 octave on the left side is ch2, others are ch1 (normal) */ [_SEPARIGHTOCT] = LAYOUT( - _______, _______, _______, _______, + _______, _______, _______, SHIFT_L, SHIFT_R, YM_C_2, YM_D_2, YM_E_2, YM_Fs_2, YM_Ab_2, YM_Bb_2, YM_C_3, YM_D_3, YM_E_3, YM_Fs_3, YM_Ab_3, YM_Bb_3, MI_C_4, MI_D_4, MI_E_4, MI_Fs_4, MI_Ab_4, MI_Bb_4, MI_C_5, _______, YM_Db_2, YM_Eb_2, YM_F_2, YM_G_2, YM_A_2, YM_B_2, YM_Db_3, YM_Eb_3, YM_F_3, YM_G_3, YM_A_3, YM_B_3, MI_Db_4, MI_Eb_4, MI_F_4, MI_G_4, MI_A_4, MI_B_4 @@ -247,7 +247,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* TRANS This layer must locate 1 layer below _FN layer. */ [_TRANS] = LAYOUT( - _______, _______, _______, _______, + _______, _______, _______, MI_TRNSD, MI_TRNSU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ @@ -255,7 +255,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Flip Base SFIFTUP and SHIFT_L are swapped. */ [_FLIPBASE] = LAYOUT( - FN_MUTE, MI_SUS, KC_VOLD, KC_VOLU, + FN_MUTE, MI_SUS, MI_BENDU, SHIFT_L, SHIFT_R, MI_C_5, MI_Bb_4, MI_Ab_4, MI_Fs_4, MI_E_4, MI_D_4, MI_C_4, MI_Bb_3, MI_Ab_3, MI_Fs_3, MI_E_3, MI_D_3, MI_C_3, MI_Bb_2, MI_Ab_2, MI_Fs_2, MI_E_2, MI_D_2, MI_C_2, MI_BENDD, MI_B_4, MI_A_4, MI_G_4, MI_F_4, MI_Eb_4, MI_Db_4, MI_B_3, MI_A_3, MI_G_3, MI_F_3, MI_Eb_3, MI_Db_3, MI_B_2, MI_A_2, MI_G_2, MI_F_2, MI_Eb_2, MI_Db_2 @@ -263,20 +263,33 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Flip Trans This layer must locate 1 layer above _FLIPBASE layer. MI_TRNSU and MI_TRNSD are swapped. */ [_FLIPTRANS] = LAYOUT( - _______, _______, _______, _______, + _______, _______, _______, MI_TRNSU, MI_TRNSD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), [_FN] = LAYOUT( - _______, XXXXXXX, RGB_RMOD, RGB_MOD, + _______, XXXXXXX, MI_VELU, MI_OCTD, MI_OCTU, B_BASE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, B_LEFT, XXXXXXX, XXXXXXX, B_CENTER, XXXXXXX, XXXXXXX, B_RIGHT, XXXXXXX, XXXXXXX, XXXXXXX, VERSION, XXXXXXX, B_FLIP, MI_VELD, TGLINTR, TGLTRNS, TGLCHGR, XXXXXXX, XXXXXXX, RGB_SAD, RGB_SAI, RGB_HUD, RGB_HUI, RGB_SPD, RGB_SPI, RGB_VAD, RGB_VAI, RGB_RMOD, RGB_MOD, EEP_RST, TGLINDI, RGB_TOG ) }; +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [_SEPALEFTOCT] = { ENCODER_CCW_CW(_______, _______) }, + [_SEPAHALF] = { ENCODER_CCW_CW(_______, _______) }, + [_SEPARIGHTOCT] = { ENCODER_CCW_CW(_______, _______) }, + [_TRANS] = { ENCODER_CCW_CW(_______, _______) }, + [_FLIPBASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [_FLIPTRANS] = { ENCODER_CCW_CW(_______, _______) }, + [_FN] = { ENCODER_CCW_CW(RGB_RMOD, RGB_MOD) }, +}; +#endif + // commom codes called from eeconfig_init_user() and keyboard_post_init_user(). void my_init(void){ // Set octave to MI_OCT_1 @@ -578,7 +591,7 @@ void set_led_scale_indicator(uint8_t r, uint8_t g, uint8_t b) { } } -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_user(void) { // uint32_t mode = rgblight_get_mode(); if (rgb_matrix_is_enabled()) { // turn the lights on when it is enabled. @@ -678,5 +691,6 @@ void rgb_matrix_indicators_user(void) { break; } } + return false; } #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/chromatonemini/keymaps/led/rules.mk b/keyboards/chromatonemini/keymaps/led/rules.mk index 2e67e806750..eb13370b823 100644 --- a/keyboards/chromatonemini/keymaps/led/rules.mk +++ b/keyboards/chromatonemini/keymaps/led/rules.mk @@ -1,3 +1,5 @@ RGB_MATRIX_ENABLE = yes # Use RGB matrix (Don't enable this when RGBLIGHT_ENABLE is used.) RGB_MATRIX_CUSTOM_KB = yes # VIA_ENABLE = no # too many layers to use VIA... + +ENCODER_MAP_ENABLE = yes # replacing ENCODERS_CW_KEY method to this on 2022/08/31. diff --git a/keyboards/chromatonemini/keymaps/party/keymap.c b/keyboards/chromatonemini/keymaps/party/keymap.c index 258bfe55c1e..c92ed2494c6 100644 --- a/keyboards/chromatonemini/keymaps/party/keymap.c +++ b/keyboards/chromatonemini/keymaps/party/keymap.c @@ -215,7 +215,7 @@ static uint8_t key_separator_col = _KEY01; // (_KEY01 .. _KEY37). By defau const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Base */ [_BASE] = LAYOUT( - FN_MUTE, MI_SUS, KC_VOLD, KC_VOLU, + FN_MUTE, MI_SUS, MI_BENDU, SHIFT_L, SHIFT_R, MI_C_2, MI_D_2, MI_E_2, MI_Fs_2, MI_Ab_2, MI_Bb_2, MI_C_3, MI_D_3, MI_E_3, MI_Fs_3, MI_Ab_3, MI_Bb_3, MI_C_4, MI_D_4, MI_E_4, MI_Fs_4, MI_Ab_4, MI_Bb_4, MI_C_5, MI_BENDD, MI_Db_2, MI_Eb_2, MI_F_2, MI_G_2, MI_A_2, MI_B_2, MI_Db_3, MI_Eb_3, MI_F_3, MI_G_3, MI_A_3, MI_B_3, MI_Db_4, MI_Eb_4, MI_F_4, MI_G_4, MI_A_4, MI_B_4 @@ -223,7 +223,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* 1 octave on the left side is ch2, others are ch1 (normal) */ [_SEPALEFTOCT] = LAYOUT( - _______, _______, _______, _______, + _______, _______, _______, SHIFT_L, SHIFT_R, YM_C_2, YM_D_2, YM_E_2, YM_Fs_2, YM_Ab_2, YM_Bb_2, MI_C_3, MI_D_3, MI_E_3, MI_Fs_3, MI_Ab_3, MI_Bb_3, MI_C_4, MI_D_4, MI_E_4, MI_Fs_4, MI_Ab_4, MI_Bb_4, MI_C_5, _______, YM_Db_2, YM_Eb_2, YM_F_2, YM_G_2, YM_A_2, YM_B_2, MI_Db_3, MI_Eb_3, MI_F_3, MI_G_3, MI_A_3, MI_B_3, MI_Db_4, MI_Eb_4, MI_F_4, MI_G_4, MI_A_4, MI_B_4 @@ -231,7 +231,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Half ch2, half ch1 (normal) */ [_SEPAHALF] = LAYOUT( - _______, _______, _______, _______, + _______, _______, _______, SHIFT_L, SHIFT_R, YM_C_2, YM_D_2, YM_E_2, YM_Fs_2, YM_Ab_2, YM_Bb_2, YM_C_3, YM_D_3, YM_E_3, MI_Fs_3, MI_Ab_3, MI_Bb_3, MI_C_4, MI_D_4, MI_E_4, MI_Fs_4, MI_Ab_4, MI_Bb_4, MI_C_5, _______, YM_Db_2, YM_Eb_2, YM_F_2, YM_G_2, YM_A_2, YM_B_2, YM_Db_3, YM_Eb_3, YM_F_3, MI_G_3, MI_A_3, MI_B_3, MI_Db_4, MI_Eb_4, MI_F_4, MI_G_4, MI_A_4, MI_B_4 @@ -239,7 +239,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* 2 octave on the left side is ch2, others are ch1 (normal) */ [_SEPARIGHTOCT] = LAYOUT( - _______, _______, _______, _______, + _______, _______, _______, SHIFT_L, SHIFT_R, YM_C_2, YM_D_2, YM_E_2, YM_Fs_2, YM_Ab_2, YM_Bb_2, YM_C_3, YM_D_3, YM_E_3, YM_Fs_3, YM_Ab_3, YM_Bb_3, MI_C_4, MI_D_4, MI_E_4, MI_Fs_4, MI_Ab_4, MI_Bb_4, MI_C_5, _______, YM_Db_2, YM_Eb_2, YM_F_2, YM_G_2, YM_A_2, YM_B_2, YM_Db_3, YM_Eb_3, YM_F_3, YM_G_3, YM_A_3, YM_B_3, MI_Db_4, MI_Eb_4, MI_F_4, MI_G_4, MI_A_4, MI_B_4 @@ -247,7 +247,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* TRANS This layer must locate 1 layer below _FN layer. */ [_TRANS] = LAYOUT( - _______, _______, _______, _______, + _______, _______, _______, MI_TRNSD, MI_TRNSU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ @@ -255,7 +255,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Flip Base SFIFTUP and SHIFT_L are swapped. */ [_FLIPBASE] = LAYOUT( - FN_MUTE, MI_SUS, KC_VOLD, KC_VOLU, + FN_MUTE, MI_SUS, MI_BENDU, SHIFT_L, SHIFT_R, MI_C_5, MI_Bb_4, MI_Ab_4, MI_Fs_4, MI_E_4, MI_D_4, MI_C_4, MI_Bb_3, MI_Ab_3, MI_Fs_3, MI_E_3, MI_D_3, MI_C_3, MI_Bb_2, MI_Ab_2, MI_Fs_2, MI_E_2, MI_D_2, MI_C_2, MI_BENDD, MI_B_4, MI_A_4, MI_G_4, MI_F_4, MI_Eb_4, MI_Db_4, MI_B_3, MI_A_3, MI_G_3, MI_F_3, MI_Eb_3, MI_Db_3, MI_B_2, MI_A_2, MI_G_2, MI_F_2, MI_Eb_2, MI_Db_2 @@ -263,20 +263,34 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Flip Trans This layer must locate 1 layer above _FLIPBASE layer. MI_TRNSU and MI_TRNSD are swapped. */ [_FLIPTRANS] = LAYOUT( - _______, _______, _______, _______, + _______, _______, _______, MI_TRNSU, MI_TRNSD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), [_FN] = LAYOUT( - _______, XXXXXXX, RGB_RMOD, RGB_MOD, + _______, XXXXXXX, MI_VELU, MI_OCTD, MI_OCTU, B_BASE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, B_LEFT, XXXXXXX, XXXXXXX, B_CENTER, XXXXXXX, XXXXXXX, B_RIGHT, XXXXXXX, XXXXXXX, XXXXXXX, VERSION, XXXXXXX, B_FLIP, MI_VELD, TGLINTR, TGLTRNS, TGLCHGR, XXXXXXX, XXXXXXX, RGB_SAD, RGB_SAI, RGB_HUD, RGB_HUI, RGB_SPD, RGB_SPI, RGB_VAD, RGB_VAI, RGB_RMOD, RGB_MOD, EEP_RST, TGLINDI, RGB_TOG ) }; +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [_SEPALEFTOCT] = { ENCODER_CCW_CW(_______, _______) }, + [_SEPAHALF] = { ENCODER_CCW_CW(_______, _______) }, + [_SEPARIGHTOCT] = { ENCODER_CCW_CW(_______, _______) }, + [_TRANS] = { ENCODER_CCW_CW(_______, _______) }, + [_FLIPBASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [_FLIPTRANS] = { ENCODER_CCW_CW(_______, _______) }, + [_FN] = { ENCODER_CCW_CW(RGB_RMOD, RGB_MOD) }, +}; +#endif + + // commom codes called from eeconfig_init_user() and keyboard_post_init_user(). void my_init(void){ // Set octave to MI_OCT_1 @@ -580,7 +594,7 @@ void set_led_scale_indicator(uint8_t r, uint8_t g, uint8_t b) { } } -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_user(void) { // uint32_t mode = rgblight_get_mode(); if (rgb_matrix_is_enabled()) { // turn the lights on when it is enabled. @@ -680,5 +694,6 @@ void rgb_matrix_indicators_user(void) { break; } } + return false; } #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/chromatonemini/keymaps/party/rules.mk b/keyboards/chromatonemini/keymaps/party/rules.mk index 2e67e806750..eb13370b823 100644 --- a/keyboards/chromatonemini/keymaps/party/rules.mk +++ b/keyboards/chromatonemini/keymaps/party/rules.mk @@ -1,3 +1,5 @@ RGB_MATRIX_ENABLE = yes # Use RGB matrix (Don't enable this when RGBLIGHT_ENABLE is used.) RGB_MATRIX_CUSTOM_KB = yes # VIA_ENABLE = no # too many layers to use VIA... + +ENCODER_MAP_ENABLE = yes # replacing ENCODERS_CW_KEY method to this on 2022/08/31. diff --git a/keyboards/chromatonemini/keymaps/via/config.h b/keyboards/chromatonemini/keymaps/via/config.h deleted file mode 100644 index b5ee0ac04b9..00000000000 --- a/keyboards/chromatonemini/keymaps/via/config.h +++ /dev/null @@ -1,4 +0,0 @@ -#pragma once - -// How many layers to use with VIA / Remap. -#define DYNAMIC_KEYMAP_LAYER_COUNT 4 // default:4 diff --git a/keyboards/chromatonemini/keymaps/via/keymap.c b/keyboards/chromatonemini/keymaps/via/keymap.c index 08613515db1..e477e1b8a59 100644 --- a/keyboards/chromatonemini/keymaps/via/keymap.c +++ b/keyboards/chromatonemini/keymaps/via/keymap.c @@ -61,7 +61,7 @@ static bool is_trans_mode = false; // By default, shift mode is chosen. const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Base */ [_BASE] = LAYOUT( - FN_MUTE, MI_SUS, KC_VOLD, KC_VOLU, + FN_MUTE, MI_SUS, MI_BENDU, SHIFT_L, SHIFT_R, MI_C_2, MI_D_2, MI_E_2, MI_Fs_2, MI_Ab_2, MI_Bb_2, MI_C_3, MI_D_3, MI_E_3, MI_Fs_3, MI_Ab_3, MI_Bb_3, MI_C_4, MI_D_4, MI_E_4, MI_Fs_4, MI_Ab_4, MI_Bb_4, MI_C_5, MI_BENDD, MI_Db_2, MI_Eb_2, MI_F_2, MI_G_2, MI_A_2, MI_B_2, MI_Db_3, MI_Eb_3, MI_F_3, MI_G_3, MI_A_3, MI_B_3, MI_Db_4, MI_Eb_4, MI_F_4, MI_G_4, MI_A_4, MI_B_4 @@ -69,7 +69,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* TRANS This layer must locate 1 layer below _FN layer. */ [_TRANS] = LAYOUT( - _______, _______, _______, _______, + _______, _______, _______, MI_TRNSD, MI_TRNSU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ @@ -77,20 +77,29 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* RESERVE */ [_RESERVE] = LAYOUT( - _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), [_FN] = LAYOUT( - _______, XXXXXXX, RGB_RMOD, RGB_MOD, + _______, XXXXXXX, MI_VELU, MI_OCTD, MI_OCTU, B_BASE, DF(_RESERVE), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, VERSION, XXXXXXX, XXXXXXX, MI_VELD, TGLINTR, TGLTRNS, XXXXXXX, XXXXXXX, XXXXXXX, RGB_SAD, RGB_SAI, RGB_HUD, RGB_HUI, RGB_SPD, RGB_SPI, RGB_VAD, RGB_VAI, RGB_RMOD, RGB_MOD, EEP_RST, TGLINDI, RGB_TOG ) }; +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [_TRANS] = { ENCODER_CCW_CW(_______, _______) }, + [_RESERVE] = { ENCODER_CCW_CW(_______, _______) }, + [_FN] = { ENCODER_CCW_CW(RGB_RMOD, RGB_MOD) }, +}; +#endif + // commom codes called from eeconfig_init_user() and keyboard_post_init_user(). void my_init(void){ // Set octave to MI_OCT_1 @@ -236,7 +245,7 @@ void set_led_scale_indicator(uint8_t r, uint8_t g, uint8_t b) { } } -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_user(void) { // uint32_t mode = rgblight_get_mode(); if (rgb_matrix_is_enabled()) { // turn the lights on when it is enabled. @@ -271,5 +280,6 @@ void rgb_matrix_indicators_user(void) { break; } } + return false; } #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/chromatonemini/keymaps/via/rules.mk b/keyboards/chromatonemini/keymaps/via/rules.mk index 3de88c90c81..b4d2b42885d 100644 --- a/keyboards/chromatonemini/keymaps/via/rules.mk +++ b/keyboards/chromatonemini/keymaps/via/rules.mk @@ -1,3 +1,5 @@ RGB_MATRIX_ENABLE = yes # Use RGB matrix (Don't enable this when RGBLIGHT_ENABLE is used.) RGB_MATRIX_CUSTOM_KB = yes # VIA_ENABLE = yes + +ENCODER_MAP_ENABLE = yes # replacing ENCODERS_CW_KEY method to this on 2022/08/31. diff --git a/keyboards/chromatonemini/readme.md b/keyboards/chromatonemini/readme.md index 4c018d01a9b..34ba7e6f14f 100644 --- a/keyboards/chromatonemini/readme.md +++ b/keyboards/chromatonemini/readme.md @@ -1,6 +1,6 @@ # chromatonemini -![chromatonemini](https://github.com/3araht/chromatonemini/blob/main/pictures/chromatonemini_toppage.jpg) +![chromatonemini](https://i.imgur.com/SuXzf9Dh.jpg) chromatonemini keyboard is a simple-design Chromatone mini MIDI keyboard that covers 3 octaves (37 notes). diff --git a/keyboards/chromatonemini/rules.mk b/keyboards/chromatonemini/rules.mk index 29cfc35dafe..0e94fdb0d78 100644 --- a/keyboards/chromatonemini/rules.mk +++ b/keyboards/chromatonemini/rules.mk @@ -1,22 +1,2 @@ -# MCU name -MCU = atmega32u4 - -# Bootloader selection -BOOTLOADER = caterina - -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite -MOUSEKEY_ENABLE = no # 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 -AUDIO_ENABLE = no # Audio output -MIDI_ENABLE = yes # MIDI support -ENCODER_ENABLE = yes # encoder on mute button RGB_MATRIX_DRIVER = WS2812 # LTO_ENABLE = yes diff --git a/keyboards/contra/keymaps/alper/keymap.c b/keyboards/contra/keymaps/alper/keymap.c index af81040b588..7f00697d66e 100644 --- a/keyboards/contra/keymaps/alper/keymap.c +++ b/keyboards/contra/keymaps/alper/keymap.c @@ -139,7 +139,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_ADJUST] = LAYOUT_planck_mit( _______, 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, _______, _______, - _______, 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/controllerworks/mini42/config.h b/keyboards/controllerworks/mini42/config.h new file mode 100644 index 00000000000..420e616ad29 --- /dev/null +++ b/keyboards/controllerworks/mini42/config.h @@ -0,0 +1,45 @@ +/* + * Copyright 2022 Kevin Gee + * + * 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 WS2812_PIO_USE_PIO1 +#define RGBLED_NUM 54 +#define RGB_MATRIX_LED_COUNT RGBLED_NUM + +#define SPLIT_TRANSPORT_MIRROR +#define SPLIT_LAYER_STATE_ENABLE +#define SPLIT_LED_STATE_ENABLE +#define SPLIT_MODS_ENABLE + +#undef I2C_DRIVER +#define I2C_DRIVER I2CD1 +#undef I2C1_SCL_PIN +#define I2C1_SCL_PIN GP25 +#undef I2C1_SDA_PIN +#define I2C1_SDA_PIN GP24 + +/* #define EE_HANDS */ +/* #define MASTER_LEFT */ +/* #define MASTER_RIGHT */ + +/* Top left key on left half */ +#define BOOTMAGIC_LITE_ROW 0 +#define BOOTMAGIC_LITE_COLUMN 0 +/* Top right key on right half */ +#define BOOTMAGIC_LITE_ROW_RIGHT 0 +#define BOOTMAGIC_LITE_COLUMN_RIGHT 0 diff --git a/keyboards/controllerworks/mini42/halconf.h b/keyboards/controllerworks/mini42/halconf.h new file mode 100644 index 00000000000..1664802d6c8 --- /dev/null +++ b/keyboards/controllerworks/mini42/halconf.h @@ -0,0 +1,22 @@ +/* + * Copyright 2022 Kevin Gee + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define HAL_USE_I2C TRUE + +#include_next "halconf.h" diff --git a/keyboards/controllerworks/mini42/info.json b/keyboards/controllerworks/mini42/info.json new file mode 100644 index 00000000000..b18747c62c9 --- /dev/null +++ b/keyboards/controllerworks/mini42/info.json @@ -0,0 +1,166 @@ +{ + "manufacturer": "Controller Works", + "keyboard_name": "mini42", + "maintainer": "controller-works", + "processor": "RP2040", + "url": "https://controller.works/products/mini42-low-profile-ergonomic-keyboard", + "tags": ["split", "RP2040", "choc v1", "choc spaced" ], + "usb": { + "device_version": "1.0.0", + "pid": "0x0003", + "vid": "0x4357" + }, + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "build": { + "lto":true + }, + "matrix_pins": { + "direct": [ + ["GP2", "GP3", "GP4","GP5", "GP6", "GP7"], + ["GP8", "GP9", "GP10", "GP11", "GP12", "GP13"], + ["GP14", "GP15", "GP16", "GP17", "GP18", "GP19"], + ["GP20", "GP21", "GP22", null, null, null] + ] + }, + "rgblight": { + "pin": "GP0" + }, + "split": { + "enabled": true, + "main": "left", + "matrix_pins": { + "right": { + "direct": [ + ["GP7", "GP6", "GP5","GP4", "GP3", "GP2"], + ["GP13", "GP12", "GP11", "GP10", "GP9", "GP8"], + ["GP19", "GP18", "GP17", "GP16", "GP15", "GP14"], + ["GP22", "GP21", "GP20", null, null, null] + ] + } + }, + "soft_serial_pin": "GP1", + "transport": { + "protocol": "serial" + } + }, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true, + "oled": true + }, + "rgb_matrix": { + "driver": "WS2812", + "split_count": [27, 27], + "layout": [ + { "flags": 2, "x": 75, "y": 4 }, + { "flags": 2, "x": 40, "y": 2 }, + { "flags": 2, "x": 8, "y": 8 }, + { "flags": 2, "x": 8, "y": 43 }, + { "flags": 2, "x": 49, "y": 51 }, + { "flags": 2, "x": 95, "y": 55 }, + { "flags": 1, "matrix": [3, 2], "x": 92, "y": 64 }, + { "flags": 4, "matrix": [2, 5], "x": 82, "y": 39 }, + { "flags": 4, "matrix": [1, 5], "x": 82, "y": 22 }, + { "flags": 4, "matrix": [0, 5], "x": 82, "y": 5 }, + { "flags": 4, "matrix": [0, 4], "x": 65, "y": 2 }, + { "flags": 4, "matrix": [1, 4], "x": 65, "y": 14 }, + { "flags": 4, "matrix": [2, 4], "x": 65, "y": 37 }, + { "flags": 1, "matrix": [3, 1], "x": 78, "y": 58 }, + { "flags": 1, "matrix": [3, 0], "x": 58, "y": 55 }, + { "flags": 4, "matrix": [2, 3], "x": 49, "y": 34 }, + { "flags": 4, "matrix": [1, 3], "x": 49, "y": 17 }, + { "flags": 4, "matrix": [0, 3], "x": 49, "y": 0 }, + { "flags": 4, "matrix": [0, 2], "x": 33, "y": 2 }, + { "flags": 4, "matrix": [1, 2], "x": 33, "y": 19 }, + { "flags": 4, "matrix": [2, 2], "x": 33, "y": 37 }, + { "flags": 4, "matrix": [2, 1], "x": 16, "y": 41 }, + { "flags": 4, "matrix": [1, 1], "x": 16, "y": 24 }, + { "flags": 4, "matrix": [0, 1], "x": 16, "y": 7 }, + { "flags": 1, "matrix": [0, 0], "x": 0, "y": 7 }, + { "flags": 1, "matrix": [1, 0], "x": 17, "y": 24 }, + { "flags": 1, "matrix": [2, 0], "x": 34, "y": 41 }, + { "flags": 2, "x": 149, "y": 4 }, + { "flags": 2, "x": 184, "y": 2 }, + { "flags": 2, "x": 216, "y": 8 }, + { "flags": 2, "x": 216, "y": 43 }, + { "flags": 2, "x": 175, "y": 51 }, + { "flags": 2, "x": 129, "y": 55 }, + { "flags": 1, "matrix": [7, 0], "x": 132, "y": 64 }, + { "flags": 4, "matrix": [6, 0], "x": 142, "y": 39 }, + { "flags": 4, "matrix": [5, 0], "x": 142, "y": 22 }, + { "flags": 4, "matrix": [4, 0], "x": 142, "y": 5 }, + { "flags": 4, "matrix": [4, 1], "x": 159, "y": 2 }, + { "flags": 4, "matrix": [5, 1], "x": 159, "y": 19 }, + { "flags": 4, "matrix": [6, 1], "x": 159, "y": 37 }, + { "flags": 1, "matrix": [7, 1], "x": 146, "y": 58 }, + { "flags": 1, "matrix": [7, 2], "x": 166, "y": 55 }, + { "flags": 4, "matrix": [6, 2], "x": 175, "y": 34 }, + { "flags": 4, "matrix": [5, 2], "x": 175, "y": 17 }, + { "flags": 4, "matrix": [4, 2], "x": 175, "y": 0 }, + { "flags": 4, "matrix": [4, 3], "x": 191, "y": 2 }, + { "flags": 4, "matrix": [5, 3], "x": 191, "y": 19 }, + { "flags": 4, "matrix": [6, 3], "x": 191, "y": 37 }, + { "flags": 4, "matrix": [6, 4], "x": 208, "y": 41 }, + { "flags": 4, "matrix": [5, 4], "x": 208, "y": 24 }, + { "flags": 4, "matrix": [4, 4], "x": 208, "y": 7 }, + { "flags": 1, "matrix": [4, 5], "x": 224, "y": 7 }, + { "flags": 1, "matrix": [5, 5], "x": 224, "y": 24 }, + { "flags": 1, "matrix": [6, 5], "x": 224, "y": 41 } + ] + }, + "community_layouts": ["split_3x6_3"], + "layouts": { + "LAYOUT_split_3x6_3": { + "layout": [ + { "matrix": [0, 0], "x": 0, "y": 0.25 }, + { "matrix": [0, 1], "x": 1, "y": 0.25 }, + { "matrix": [0, 2], "x": 2, "y": 0.125 }, + { "matrix": [0, 3], "x": 3, "y": 0 }, + { "matrix": [0, 4], "x": 4, "y": 0.125 }, + { "matrix": [0, 5], "x": 5, "y": 0.25 }, + { "matrix": [4, 0], "x": 8, "y": 0.25 }, + { "matrix": [4, 1], "x": 9, "y": 0.125 }, + { "matrix": [4, 2], "x": 10, "y": 0 }, + { "matrix": [4, 3], "x": 11, "y": 0.125 }, + { "matrix": [4, 4], "x": 12, "y": 0.25 }, + { "matrix": [4, 5], "x": 13, "y": 0.25 }, + { "matrix": [1, 0], "x": 0, "y": 1.25 }, + { "matrix": [1, 1], "x": 1, "y": 1.25 }, + { "matrix": [1, 2], "x": 2, "y": 1.125 }, + { "matrix": [1, 3], "x": 3, "y": 1 }, + { "matrix": [1, 4], "x": 4, "y": 1.125 }, + { "matrix": [1, 5], "x": 5, "y": 1.25 }, + { "matrix": [5, 0], "x": 8, "y": 1.25 }, + { "matrix": [5, 1], "x": 9, "y": 1.125 }, + { "matrix": [5, 2], "x": 10, "y": 1 }, + { "matrix": [5, 3], "x": 11, "y": 1.125 }, + { "matrix": [5, 4], "x": 12, "y": 1.25 }, + { "matrix": [5, 5], "x": 13, "y": 1.25 }, + { "matrix": [2, 0], "x": 0, "y": 2.25 }, + { "matrix": [2, 1], "x": 1, "y": 2.25 }, + { "matrix": [2, 2], "x": 2, "y": 2.125 }, + { "matrix": [2, 3], "x": 3, "y": 2 }, + { "matrix": [2, 4], "x": 4, "y": 2.125 }, + { "matrix": [2, 5], "x": 5, "y": 2.25 }, + { "matrix": [6, 0], "x": 8, "y": 2.25 }, + { "matrix": [6, 1], "x": 9, "y": 2.125 }, + { "matrix": [6, 2], "x": 10, "y": 2 }, + { "matrix": [6, 3], "x": 11, "y": 2.125 }, + { "matrix": [6, 4], "x": 12, "y": 2.25 }, + { "matrix": [6, 5], "x": 13, "y": 2.25 }, + { "matrix": [3, 0], "x": 3.5, "y": 3.25 }, + { "matrix": [3, 1], "x": 4.5, "y": 3.5 }, + { "matrix": [3, 2], "x": 5.5, "y": 3.75, "h":1.5 }, + { "matrix": [7, 0], "x": 7.5, "y": 3.75, "h":1.5 }, + { "matrix": [7, 1], "x": 8.5, "y": 3.5 }, + { "matrix": [7, 2], "x": 9.5, "y": 3.25 } + ] + } + } +} diff --git a/keyboards/controllerworks/mini42/keymaps/default/config.h b/keyboards/controllerworks/mini42/keymaps/default/config.h new file mode 100644 index 00000000000..e1d162ef3ee --- /dev/null +++ b/keyboards/controllerworks/mini42/keymaps/default/config.h @@ -0,0 +1,79 @@ +/* + * Copyright 2022 Kevin Gee + * + * 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 +#ifdef RGB_MATRIX_ENABLE +//# define SPLIT_TRANSPORT_MIRROR +# 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_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 +# define RGB_MATRIX_SAT_STEP 8 +# define RGB_MATRIX_VAL_STEP 8 +# define RGB_MATRIX_SPD_STEP 10 + +# 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 +#endif \ No newline at end of file diff --git a/keyboards/controllerworks/mini42/keymaps/default/keymap.c b/keyboards/controllerworks/mini42/keymaps/default/keymap.c new file mode 100644 index 00000000000..af9a62b4004 --- /dev/null +++ b/keyboards/controllerworks/mini42/keymaps/default/keymap.c @@ -0,0 +1,68 @@ +/* + * Copyright 2022 Kevin Gee + * + * 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_split_3x6_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + KC_TAB, 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, 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_SLSH, RSFT_T(KC_ENT), + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_LGUI, MO(1), KC_SPC, KC_SPC, MO(2), KC_RALT + //`--------------------------' `--------------------------' + + ), + + [1] = LAYOUT_split_3x6_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + KC_TAB, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LCTL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PGUP, XXXXXXX, KC_UP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LSFT, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, KC_PGDN, KC_LEFT, KC_DOWN, KC_RIGHT, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_LGUI, _______, KC_ESC, KC_ENT, MO(3), KC_RALT + //`--------------------------' `--------------------------' + ), + + [2] = LAYOUT_split_3x6_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + KC_TAB, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LCTL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, KC_GRV, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LSFT, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, KC_TILD, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_LGUI, MO(3), KC_ESC, KC_DEL, _______, KC_RALT + //`--------------------------' `--------------------------' + ), + + [3] = LAYOUT_split_3x6_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_NUM, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_LGUI, _______, KC_SPC, KC_ENT, _______, KC_RALT + //`--------------------------' `--------------------------' + ) +}; diff --git a/keyboards/controllerworks/mini42/keymaps/via/config.h b/keyboards/controllerworks/mini42/keymaps/via/config.h new file mode 100644 index 00000000000..94eb482c86f --- /dev/null +++ b/keyboards/controllerworks/mini42/keymaps/via/config.h @@ -0,0 +1,82 @@ +/* + * Copyright 2022 Kevin Gee + * + * 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 +#ifdef RGB_MATRIX_ENABLE +# define RGBLED_NUM 54 // Number of LEDs +# define DRIVER_LED_TOTAL RGBLED_NUM +# define RGB_MATRIX_SPLIT \ + { 27, 27 } +//# define SPLIT_TRANSPORT_MIRROR +# 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_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 +# define RGB_MATRIX_SAT_STEP 8 +# define RGB_MATRIX_VAL_STEP 8 +# define RGB_MATRIX_SPD_STEP 10 + +# 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 +#endif \ No newline at end of file diff --git a/keyboards/controllerworks/mini42/keymaps/via/keymap.c b/keyboards/controllerworks/mini42/keymaps/via/keymap.c new file mode 100644 index 00000000000..af9a62b4004 --- /dev/null +++ b/keyboards/controllerworks/mini42/keymaps/via/keymap.c @@ -0,0 +1,68 @@ +/* + * Copyright 2022 Kevin Gee + * + * 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_split_3x6_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + KC_TAB, 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, 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_SLSH, RSFT_T(KC_ENT), + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_LGUI, MO(1), KC_SPC, KC_SPC, MO(2), KC_RALT + //`--------------------------' `--------------------------' + + ), + + [1] = LAYOUT_split_3x6_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + KC_TAB, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LCTL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PGUP, XXXXXXX, KC_UP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LSFT, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, KC_PGDN, KC_LEFT, KC_DOWN, KC_RIGHT, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_LGUI, _______, KC_ESC, KC_ENT, MO(3), KC_RALT + //`--------------------------' `--------------------------' + ), + + [2] = LAYOUT_split_3x6_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + KC_TAB, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LCTL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, KC_GRV, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LSFT, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, KC_TILD, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_LGUI, MO(3), KC_ESC, KC_DEL, _______, KC_RALT + //`--------------------------' `--------------------------' + ), + + [3] = LAYOUT_split_3x6_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_NUM, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_LGUI, _______, KC_SPC, KC_ENT, _______, KC_RALT + //`--------------------------' `--------------------------' + ) +}; diff --git a/keyboards/controllerworks/mini42/keymaps/via/rules.mk b/keyboards/controllerworks/mini42/keymaps/via/rules.mk new file mode 100644 index 00000000000..036bd6d1c3e --- /dev/null +++ b/keyboards/controllerworks/mini42/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/controllerworks/mini42/mcuconf.h b/keyboards/controllerworks/mini42/mcuconf.h new file mode 100644 index 00000000000..7f0840c7a7d --- /dev/null +++ b/keyboards/controllerworks/mini42/mcuconf.h @@ -0,0 +1,23 @@ +/* + * Copyright 2022 Kevin Gee + * + * 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 "mcuconf.h" + +#undef RP_I2C_USE_I2C0 +#define RP_I2C_USE_I2C0 TRUE \ No newline at end of file diff --git a/keyboards/controllerworks/mini42/mini42.c b/keyboards/controllerworks/mini42/mini42.c new file mode 100644 index 00000000000..be16d1400a4 --- /dev/null +++ b/keyboards/controllerworks/mini42/mini42.c @@ -0,0 +1,83 @@ +/* + * Copyright 2022 Kevin Gee + * + * 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 OLED_ENABLE + +static void render_logo(void) { + static const char PROGMEM raw_logo[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0,128,192, 96, 48, 24, 12,254,254, 0, 0, 0, 0, 0, 0, 48, 24, 12, 6, 6, 6, 6, 6, 6, 12, 24,240,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,252, 6, 3, 3, 3, 3, 7,254,252, 6, 3, 3, 3, 3, 6,252,248, 0, 0, 0, 0, 0, 0,255,255, 0, 0, 0, 0, 0, 0,248,252, 6, 3, 3, 3, 3, 3, 3, 6,252,248, 0, 0, 0, 0, 0, 0,255,255, 0, 0, 0, 0, 24, 28, 30, 27, 25, 24, 24, 24, 24, 24,255,255, 24, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,192, 96, 48, 24, 15, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,127,127, 0, 0, 0, 0, 0, 0,127,127, 0, 0, 0, 0, 0, 0,127,127, 0, 0, 0, 0, 0, 0,127,127, 0, 0, 0, 0, 0, 0,127,127, 0, 0, 0, 0, 0, 0, 0, 0,127,127, 0, 0, 0, 0, 0, 0,127,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,127,127, 0, 0, 0, 0, 0, 0, 96,112,120,108,102, 99, 97, 96, 96, 96, 96, 96, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }; + oled_write_raw_P(raw_logo, sizeof(raw_logo)); +} + +oled_rotation_t oled_init_kb(oled_rotation_t rotation) { + if (!is_keyboard_master()) { + return OLED_ROTATION_180; // flips the display 180 degrees if offhand + } + + return rotation; +} + +bool render_status(void) { + // Host Keyboard Layer Status + oled_write_P(PSTR("Layer: "), false); + + switch (get_highest_layer(layer_state)) { + case 0: + oled_write_P(PSTR("BASE\n"), false); + break; + case 1: + oled_write_P(PSTR("LOWER\n"), false); + break; + case 2: + oled_write_P(PSTR("RAISE\n"), false); + break; + case 3: + oled_write_P(PSTR("ADJUST\n"), false); + break; + default: + // Or use the write_ln shortcut over adding '\n' to the end of your string + oled_write_ln_P(PSTR("Undefined"), false); + } + + // Host Keyboard LED Status + led_t led_state = host_keyboard_led_state(); + oled_write_P(led_state.num_lock ? PSTR("NUM ") : PSTR(" "), false); + oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR(" "), false); + oled_write_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false); + + return false; +} + +bool oled_task_kb(void) { + if (!oled_task_user()) { + return false; + } + if (is_keyboard_master()) { + render_status(); // Renders the current keyboard state (layer, lock, caps, scroll, etc) + } else { + render_logo(); // Renders a static logo + oled_scroll_left(); // Turns on scrolling + } + return false; +} + +#endif diff --git a/keyboards/controllerworks/mini42/readme.md b/keyboards/controllerworks/mini42/readme.md new file mode 100644 index 00000000000..67b04b09fe2 --- /dev/null +++ b/keyboards/controllerworks/mini42/readme.md @@ -0,0 +1,77 @@ +# mini42 + +![mini42](https://i.imgur.com/xrSKhqRh.png) +![mini42PCB](https://i.imgur.com/R7u1KB8h.png) + +*A pre-built, low profile, split mechanical keyboard based on the RP2040 processor* + +* Keyboard Maintainer: [Kevin Gee](https://github.com/controller-works) +* Hardware Supported: *mini42 split ergonomic keyboard* +* Hardware Availability: *https://controller.works/products/mini42-low-profile-ergonomic-keyboard* Hardware is available as pre-built units only. + +Make example for this keyboard (after setting up your build environment): + +```sh + make controllerworks/mini42:default +``` + +Flashing example for this keyboard: + +```sh + make controllerworks/mini42: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). + +## Features +- Highly integrated design with microcontroller, USB and TRRS connectors, and OLED all integrated on the main board with no secondary modules +- RP2040 processor by Raspberry Pi Foundation running at 130 MHz with 16MB flash memory +- CNC milled aluminum case with only 8mm thickness +- "PCB art" shine through back plate with gold surface finish +- 128x32 OLED on each keyboard half +- 42 per-key RGB LEDs and 12 backlight RGB LEDS are individually addressable +- ESD and over-current protection on USB and TRRS connectors +- Reset and boot tactile switches +- USB C host connection +- Hot swap connectors for Kailh Chocolate PG1350 switches +- Chocolate key spacing (18mm horizontal x 17mm vertical) +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the upper left key on the left hand keyboard half or the upper right key on the right hand keyboard half while plugging in USB +* **Physical reset button**: Press the RST button twice, rapidly +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available + +## Pin Assignment +| Name | Pin | Left Row | Left Column | Right Row | **Right Column | +|--------|------|-----------|-------------|-----------|--------------| +| LED | GP0 | | | | | +| DATA | GP1 | | | | | +| DATA2* | GP28 | | | | | +| KEY0 | GP2 | 0 | 0 | 4 | 0 | +| KEY1 | GP3 | 0 | 1 | 4 | 1 | +| KEY2 | GP4 | 0 | 2 | 4 | 2 | +| KEY3 | GP5 | 0 | 3 | 4 | 3 | +| KEY4 | GP6 | 0 | 4 | 4 | 4 | +| KEY5 | GP7 | 0 | 5 | 4 | 5 | +| KEY6 | GP8 | 1 | 0 | 5 | 0 | +| KEY7 | GP9 | 1 | 1 | 5 | 1 | +| KEY8 | GP10 | 1 | 2 | 5 | 2 | +| KEY9 | GP11 | 1 | 3 | 5 | 3 | +| KEY10 | GP12 | 1 | 4 | 5 | 4 | +| KEY11 | GP13 | 1 | 5 | 5 | 5 | +| KEY12 | GP14 | 2 | 0 | 6 | 0 | +| KEY13 | GP15 | 2 | 1 | 6 | 1 | +| KEY14 | GP16 | 2 | 2 | 6 | 2 | +| KEY15 | GP17 | 2 | 3 | 6 | 3 | +| KEY16 | GP18 | 2 | 4 | 6 | 4 | +| KEY17 | GP19 | 2 | 5 | 6 | 5 | +| KEY18 | GP20 | 3 | 0 | 7 | 0 | +| KEY19 | GP21 | 3 | 1 | 7 | 1 | +| KEY20 | GP22 | 3 | 2 | 7 | 2 | +| SDA | GP24 | | | | | +| SCL | GP25 | | | | | + +\*DATA2 on production units, not connected on prototype units + +\** Right Column numbers run right (pinky position) to left (thumb position) \ No newline at end of file diff --git a/keyboards/controllerworks/mini42/rules.mk b/keyboards/controllerworks/mini42/rules.mk new file mode 100644 index 00000000000..6e32bfc897e --- /dev/null +++ b/keyboards/controllerworks/mini42/rules.mk @@ -0,0 +1,3 @@ +SERIAL_DRIVER = vendor +WS2812_DRIVER = vendor +OLED_DRIVER = SSD1306 diff --git a/keyboards/converter/adb_usb/keymaps/zyber/keymap.c b/keyboards/converter/adb_usb/keymaps/zyber/keymap.c new file mode 100644 index 00000000000..c725a4853b0 --- /dev/null +++ b/keyboards/converter/adb_usb/keymaps/zyber/keymap.c @@ -0,0 +1,15 @@ +// Copyright 2022 ZyBeR (@ZyberSE) +// SPDX-License-Identifier: GPL-2.0 + +#include "zyber.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + LAYOUT_ext_ansi( + 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_SLCK,KC_PAUS, KC_EJCT, + KC_GRV, KC_1, KC_2, KC_3, TD(SSHT), 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_NLCK, KC_EQL, KC_PSLS, KC_PAST, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, TD(LBRC), KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PMNS, + KC_LCAP, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, TD(SCLN), TD(QUOT), KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS, + 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_P1, KC_P2, KC_P3, + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT + ), +}; diff --git a/keyboards/converter/m0110_usb/keymaps/zyber/keymap.c b/keyboards/converter/m0110_usb/keymaps/zyber/keymap.c new file mode 100644 index 00000000000..f3a16b99550 --- /dev/null +++ b/keyboards/converter/m0110_usb/keymaps/zyber/keymap.c @@ -0,0 +1,76 @@ +// Copyright 2022 ZyBeR (@ZyberSE) +// SPDX-License-Identifier: GPL-2.0 + +#include "zyber.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* Default: + * M0110 M0120 + * ,---------------------------------------------------------. ,---------------. + * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backs| |Nlk| =| /| *| + * |---------------------------------------------------------| |---------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| Å| ¨|Ent| | 7| 8| 9| -| + * |------------------------------------------------------| e| |---------------| + * |Ctrl | A| S| D| F| G| H| J| K| L| Ö| Ä| '| r| | 4| 5| 6| +| + * |---------------------------------------------------------| |---------------| + * |Shft| §| Z| X| C| V| B| N| M| ,| .| /| -|Shft| | 1| 2| 3| | + * `---------------------------------------------------------' |-----------|Ent| + * |Opt|Mac | Space |Fn |Opt| | 0| .| | + * `-----------------------------------------------' `---------------' + * M0110A + * ,---------------------------------------------------------. ,---------------. + * | `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backs| |Nlk| =| /| *| + * |---------------------------------------------------------| |---------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| | | 7| 8| 9| -| + * |-----------------------------------------------------' | |---------------| + * |Caps | A| S| D| F| G| H| J| K| L| ;| '|Return| | 4| 5| 6| +| + * |---------------------------------------------------------| |---------------| + * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shft|Up | | 1| 2| 3| | + * |---------------------------------------------------------| |-----------|Ent| + * |Opt |Mac | Space | \|Lft|Rgt|Dn | | 0| .| | + * `---------------------------------------------------------' `---------------' + */ + + [0] = LAYOUT_iso( + 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_NLCK, KC_EQL, KC_PSLS, KC_PAST, \ + 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_ENT, KC_P7, KC_P8, KC_P9, KC_PMNS, \ + CTRL_C_UP, 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_P4, KC_P5, KC_P6, KC_PPLS, \ + 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_P1, KC_P2, KC_P3, KC_PENT, \ + KC_LALT, KC_LGUI, KC_SPC, MO(1), LT(1, KC_BSLASH), KC_DOWN), + + + /* Cursor Layer: + * M0110 M0120 + * ,---------------------------------------------------------. ,---------------. + * |RES| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Delet| |Nlk| =| /| *| + * |---------------------------------------------------------| |---------------| + * |Tab |Hom| Up|PgU|Rst| | | |Psc|Slk|Pau|Up |INS| | | 7| 8| 9| -| + * |---------------------------------------------------------| |---------------| + * |Ctrl |Lef|Dow|Rig| | | | |Hom|PgU|Lef|Rig|Return| | 4| 5| 6| +| + * |---------------------------------------------------------| |---------------| + * |Shift |End| |PgD| | | | |End|PgD|Dow|Shift | | 1| 2| 3| | + * `---------------------------------------------------------' |-----------|Ent| + * |Opt|Mac | Space |Fn |Opt| | 0| .| | + * `-----------------------------------------------' `---------------' + * M0110A + * ,---------------------------------------------------------. ,---------------. + * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Delet| |Nlk| =| /| *| + * |---------------------------------------------------------| |---------------| + * |Tab |Hom| Up|PgU| | | | |Psc|Slk|Pau|Up |INS| | | 7| 8| 9| -| + * |-----------------------------------------------------' | |---------------| + * |Caps |Lef|Dow|Rig| | | | |Hom|PgU|Lef|Rig|Return| | 4| 5| 6| +| + * |---------------------------------------------------------| |---------------| + * |Ctrl |End| |PgD| | | | |End|PgD|Dow|Shft|PgU| | 1| 2| 3| | + * |---------------------------------------------------------| |-----------|Ent| + * |Opt |Mac | Space | \|Hom|End|PgD| | 0| .| | + * `---------------------------------------------------------' `---------------' + */ + + [1] = LAYOUT_iso( + QK_BOOT, 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_UP, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______), +}; diff --git a/keyboards/converter/m0110_usb/keymaps/zyber/rules.mk b/keyboards/converter/m0110_usb/keymaps/zyber/rules.mk new file mode 100644 index 00000000000..adaa1b5696d --- /dev/null +++ b/keyboards/converter/m0110_usb/keymaps/zyber/rules.mk @@ -0,0 +1,3 @@ +F_CPU = 16000000 +BOOTLOADER = atmel-dfu +CONSOLE_ENABLE = no diff --git a/keyboards/cradio/info.json b/keyboards/cradio/info.json index 0b9cbb1fed2..c4e3b421f13 100644 --- a/keyboards/cradio/info.json +++ b/keyboards/cradio/info.json @@ -1,7 +1,7 @@ { "keyboard_name": "Cradio", "manufacturer": "DPB", - "url": "https://github.com/davidphilipbarr/Sweep", + "url": "https://github.com/davidphilipbarr/hypergolic", "maintainer": "@davidphilipbarr", "usb": { "vid": "0xC88B", @@ -9,7 +9,8 @@ "device_version": "0.0.1" }, "processor": "atmega32u4", - "protocol": "atmel-dfu", + "bootloader": "atmel-dfu", + "pin_compatible": "promicro", "debounce": 5, "features": { "bootmagic": true, @@ -57,33 +58,33 @@ { "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": "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": "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": "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": "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": "L16", "matrix": [3, 0], "w": 1, "x": 4, "y": 3.9 }, + { "label": "L17", "matrix": [3, 1], "w": 1, "x": 5, "y": 3.7 }, { "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/crkbd/keymaps/ajarov/config.h b/keyboards/crkbd/keymaps/ajarov/config.h new file mode 100644 index 00000000000..4c408112bd4 --- /dev/null +++ b/keyboards/crkbd/keymaps/ajarov/config.h @@ -0,0 +1,50 @@ +/* +This is the c configuration file for the keymap + +Copyright 2012 Jun Wako +Copyright 2015 Jack Humbert + +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 + + +/* Select hand configuration */ + +#define MASTER_LEFT +// #define MASTER_RIGHT +// #define EE_HANDS + +//#define TAPPING_FORCE_HOLD +//#define TAPPING_TERM 100 + +#ifdef RGBLIGHT_ENABLE +# 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 RGBLIGHT_LIMIT_VAL 120 +# define RGBLIGHT_HUE_STEP 10 +# define RGBLIGHT_SAT_STEP 17 +# define RGBLIGHT_VAL_STEP 17 +#endif + +#define OLED_FONT_H "keyboards/crkbd/lib/glcdfont.c" diff --git a/keyboards/crkbd/keymaps/ajarov/keymap.c b/keyboards/crkbd/keymaps/ajarov/keymap.c new file mode 100644 index 00000000000..5931dc56358 --- /dev/null +++ b/keyboards/crkbd/keymaps/ajarov/keymap.c @@ -0,0 +1,150 @@ +/* +Copyright 2019 @foostan +Copyright 2020 Drashna Jaelre <@drashna> +Copyright 2022 Alejandro Jarovisky <@ajarov> + +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 "keymap_spanish.h" + +enum layers { + L_BASE, + L_UPPER, + L_RIGHT, + L_UPPER_RIGHT, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [L_BASE] = LAYOUT_split_3x6_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + KC_TAB, ES_Q, ES_W, ES_E, ES_R, ES_T, ES_Y, ES_U, ES_I, ES_O, ES_P, KC_BSPC, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LCTL, ES_A, ES_S, ES_D, ES_F, ES_G, ES_H, ES_J, ES_K, ES_L, ES_NTIL, ES_ACUT, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LSFT, ES_Z, ES_X, ES_C, ES_V, ES_B, ES_N, ES_M, ES_COMM, ES_DOT, ES_MINS, KC_RSFT, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_LGUI, MO(1), KC_SPC, KC_ENT, MO(2), KC_LALT + //`--------------------------' `--------------------------' + ), + + [L_UPPER] = LAYOUT_split_3x6_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_APP, KC_INS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_BSPC, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LCTL, KC_F5, KC_F6, KC_F7, KC_F8, KC_PSCR, KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, ES_DIAE, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LSFT, KC_F9, KC_F10, KC_F11, KC_F12, KC_PAUS, XXXXXXX, XXXXXXX, ES_SCLN, ES_COLN, ES_UNDS, KC_RSFT, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_LGUI, _______, KC_SPC, KC_ENT, _______, KC_LALT + //`--------------------------' `--------------------------' + ), + + [L_RIGHT] = LAYOUT_split_3x6_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + KC_CAPS, ES_EXLM, ES_DQUO, ES_HASH, ES_CIRC, XXXXXXX, ES_ASTR, ES_7, ES_8, ES_9, ES_MINS, KC_BSPC, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LCTL, ES_LCBR, ES_RCBR, ES_LPRN, ES_RPRN, ES_QUES, ES_SLSH, ES_4, ES_5, ES_6, ES_PLUS, ES_QUOT, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LSFT, ES_LBRC, ES_RBRC, ES_LABK, ES_RABK, ES_EQL, ES_0, ES_1, ES_2, ES_3, ES_DOT, KC_RSFT, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_LGUI, _______, KC_SPC, KC_ENT, _______, KC_LALT + //`--------------------------' `--------------------------' + ), + + [L_UPPER_RIGHT] = LAYOUT_split_3x6_3( + //,-----------------------------------------------------. ,-----------------------------------------------------. + XXXXXXX, ES_IEXL, ES_AT, ES_EURO, ES_DLR, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, ES_MORD, XXXXXXX, KC_BSPC, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LCTL, ES_FORD, ES_AMPR, ES_PIPE, ES_BSLS, ES_IQUE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, ES_TILD, ES_GRV, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LSFT, XXXXXXX, ES_NOT, ES_CCED, ES_PERC, XXXXXXX, RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, KC_RSFT, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_LGUI, _______, KC_SPC, KC_ENT, _______, KC_LALT + //`--------------------------' `--------------------------' + ) +}; + +layer_state_t layer_state_set_user(layer_state_t state) { + return update_tri_layer_state(state, L_UPPER, L_RIGHT, L_UPPER_RIGHT); +} + +#ifdef OLED_ENABLE +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + if (!is_keyboard_master()) { + return OLED_ROTATION_180; // flips the display 180 degrees if offhand + } + return rotation; +} + +void oled_render_layer_state(void) { + // Host Keyboard Layer Status + oled_write_P(PSTR("Layer: "), false); + switch (get_highest_layer(layer_state)) { + case L_BASE: + oled_write_ln_P(PSTR("Default"), false); + break; + case L_UPPER: + oled_write_ln_P(PSTR("Upper"), false); + break; + case L_RIGHT: + oled_write_ln_P(PSTR("Right"), false); + break; + case L_UPPER_RIGHT: + oled_write_ln_P(PSTR("Upper Right"), false); + break; + default: + oled_write_ln_P(PSTR("Undefined"), false); + } + + // Host Keyboard LED Status + led_t led_state = host_keyboard_led_state(); + oled_write_ln_P(PSTR(""), false); + oled_write_ln_P(led_state.caps_lock ? PSTR("CAPS LOCK") : PSTR(" "), false); +} + +void render_bootmagic_status(bool status) { + /* Show Ctrl-Gui Swap options */ + static const char PROGMEM logo[][2][3] = { + {{0x97, 0x98, 0}, {0xb7, 0xb8, 0}}, + {{0x95, 0x96, 0}, {0xb5, 0xb6, 0}}, + }; + if (status) { + oled_write_ln_P(logo[0][0], false); + oled_write_ln_P(logo[0][1], false); + } else { + oled_write_ln_P(logo[1][0], false); + oled_write_ln_P(logo[1][1], false); + } +} + +void oled_render_logo(void) { + static const char PROGMEM crkbd_logo[] = { + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, + 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, + 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, + 0}; + oled_write_P(crkbd_logo, false); +} + +bool oled_task_user(void) { + if (is_keyboard_master()) { + oled_render_layer_state(); + } else { + oled_render_logo(); + } + return false; +} +#endif // OLED_ENABLE diff --git a/keyboards/crkbd/keymaps/ajarov/readme.md b/keyboards/crkbd/keymaps/ajarov/readme.md new file mode 100644 index 00000000000..7a51a35e6e9 --- /dev/null +++ b/keyboards/crkbd/keymaps/ajarov/readme.md @@ -0,0 +1,13 @@ +# Corne Spanish layout by ajarov + +![Layout](https://user-images.githubusercontent.com/1832140/178291869-ea3c070b-2c0d-45f9-aeb8-00ac6942e847.png) + +The OS keyboard layout should be set to Spanish so the above image matches the actual keys. + +Some ideas that shaped this layout: +* There are 4 layers: Base, Upper (`△`), Right (`▷`), and Upper Right (`△` + `▷`). +* The base layer is almost the same as the one on the default Corne layout when the keyboard is set to Spanish on the OS (the only differences being `RShift` instead of `Esc`, and `LAlt` instead of `Alt Gr`). +* When the Upper layer (`△`) is selected, the right hand resting position matches the one on the arrow keys on a traditional keyboard. +* The right half of the keyboard can be used as a numpad with only the right hand by selecting the Right layer (`▷`). +* The only keys missing from a full-size (105 keys) Spanish keyboard are the interpunct (`·` or `Shift` + `3`), `Scroll Lock`, and `Num Lock`. I never use them (does anybody?) and I'd rather not include them and risk toggling Scroll/Num Lock by accident. +* Media keys are not present because I find it better to use keyboard + mouse shortcuts with [AutoHotkey](https://www.autohotkey.com/) (e.g: `Ctrl` + `Shift` + `Wheel Up`/`Wheel Down` increases/decreases the volume). diff --git a/keyboards/crkbd/keymaps/ajarov/rules.mk b/keyboards/crkbd/keymaps/ajarov/rules.mk new file mode 100644 index 00000000000..3e637d11da4 --- /dev/null +++ b/keyboards/crkbd/keymaps/ajarov/rules.mk @@ -0,0 +1,5 @@ +MOUSEKEY_ENABLE = yes +RGBLIGHT_ENABLE = yes +OLED_ENABLE = yes +OLED_DRIVER = SSD1306 +LTO_ENABLE = yes diff --git a/keyboards/crkbd/keymaps/benrestech/config.h b/keyboards/crkbd/keymaps/benrestech/config.h new file mode 100644 index 00000000000..b112aed743b --- /dev/null +++ b/keyboards/crkbd/keymaps/benrestech/config.h @@ -0,0 +1,48 @@ +/* +This is the c configuration file for the keymap + +Copyright 2012 Jun Wako +Copyright 2015 Jack Humbert + +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 USE_MATRIX_I2C + +/* Select hand configuration */ + +// #define MASTER_LEFT +// #define MASTER_RIGHT +#define EE_HANDS + +#define TAPPING_FORCE_HOLD +#define TAPPING_TERM 175 +#define PERMISSIVE_HOLD +#define IGNORE_MOD_TAP_INTERRUPT + +#ifdef RGBLIGHT_ENABLE + #undef RGBLED_NUM + #define RGBLED_NUM 27 + #define RGBLIGHT_SLEEP + #define RGBLIGHT_SPLIT + #define RGBLIGHT_LIMIT_VAL 120 + #define RGBLIGHT_HUE_STEP 10 + #define RGBLIGHT_SAT_STEP 17 + #define RGBLIGHT_VAL_STEP 17 + #define RGBLIGHT_LAYERS +#endif + +#define OLED_FONT_H "keyboards/crkbd/lib/glcdfont.c" diff --git a/keyboards/crkbd/keymaps/benrestech/keymap.c b/keyboards/crkbd/keymaps/benrestech/keymap.c new file mode 100644 index 00000000000..8cea92be067 --- /dev/null +++ b/keyboards/crkbd/keymaps/benrestech/keymap.c @@ -0,0 +1,151 @@ +/* +Copyright 2019 @foostan +Copyright 2020 Drashna Jaelre <@drashna> +Copyright 2022 Ben Allen <@benrestech> + +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 + +#define KC_NP KC_NO // key is not present +#define KC_NA KC_NO // present but not available for use +#define KC_NU KC_NO // available but not used + + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +enum crkbd_layers { + BASE, + MEDR, + NAVR, + MOUR, + NSSL, + NSL, + FUNL, + GAME +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [BASE] = LAYOUT_split_3x6_3( + TO(NSSL), KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_QUOT, TO(MOUR), + TO(NSL), LGUI_T(KC_A), LALT_T(KC_R), LCTL_T(KC_S), LSFT_T(KC_T), KC_G, KC_M, LSFT_T(KC_N), LCTL_T(KC_E), LALT_T(KC_I), LGUI_T(KC_O), TO(NAVR), + TO(FUNL), KC_Z, ALGR_T(KC_X), KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, ALGR_T(KC_DOT), KC_SLSH, TO(MEDR), + LT(MEDR, KC_ESC), LT(NAVR, KC_SPC), LT(MOUR, KC_TAB), LT(NSSL, KC_ENT), LT(NSL, KC_BSPC), LT(FUNL, KC_DEL) + ), + [NAVR] = LAYOUT_split_3x6_3( + TO(NSSL), QK_BOOT, KC_NA, KC_NA, KC_NA, KC_NA, KC_AGIN, KC_UNDO, KC_CUT, KC_COPY, KC_PSTE, TO(MOUR), + TO(NSL), KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, KC_NA, KC_CAPS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, TO(BASE), + TO(FUNL), KC_NA, KC_ALGR, KC_NA, KC_NA, KC_NA, KC_INS, KC_HOME, KC_PGDN, KC_PGUP, KC_END, TO(MEDR), + KC_NA, KC_NA, KC_NA, KC_ENT, KC_BSPC, KC_DEL + ), + [MOUR] = LAYOUT_split_3x6_3( + TO(NSSL), QK_BOOT, KC_NA, KC_NA, KC_NA, KC_NA, KC_NU, KC_NU, KC_NU, KC_NU, KC_NU, TO(BASE), + TO(NSL), KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, KC_NA, KC_NU, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, TO(NAVR), + TO(FUNL), KC_NA, KC_ALGR, KC_NA, KC_NA, KC_NA, KC_NU, KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R, TO(MEDR), + KC_NA, KC_NA, KC_NA, KC_BTN1, KC_BTN3, KC_BTN2 + ), + [MEDR] = LAYOUT_split_3x6_3( + TO(NSSL), QK_BOOT, KC_NA, KC_NA, KC_NA, KC_NA, RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, TO(MOUR), + TO(NSL), KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, KC_NA, KC_NU, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT, TO(NAVR), + TO(FUNL), KC_NA, KC_ALGR, KC_NA, KC_NA, KC_NA, KC_NU, KC_NU, KC_NU, KC_NU, KC_NU, TO(BASE), + KC_NA, KC_NA, KC_NA, KC_MSTP, KC_MPLY, KC_MUTE + ), + [FUNL] = LAYOUT_split_3x6_3( + TO(NSSL), KC_F12, KC_F7, KC_F8, KC_F9, KC_PSCR, KC_NA, KC_NA, KC_NA, KC_NA, QK_BOOT, TO(MOUR), + TO(NSL), KC_F11, KC_F4, KC_F5, KC_F6, KC_SLCK, KC_NA, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI, TO(NAVR), + TO(BASE), KC_F10, KC_F1, KC_F2, KC_F3, KC_PAUS, KC_NA, KC_NA, KC_NA, KC_ALGR, KC_NA, TO(MEDR), + KC_APP, KC_SPC, KC_TAB, KC_NA, KC_NA, KC_NA + ), + [NSL] = LAYOUT_split_3x6_3( + TO(NSSL), KC_LBRC, KC_7, KC_8, KC_9, KC_RBRC, KC_NA, KC_NA, KC_NA, KC_NA, QK_BOOT, TO(MOUR), + TO(BASE), KC_SCLN, KC_4, KC_5, KC_6, KC_EQL, KC_NA, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI, TO(NAVR), + TO(FUNL), KC_GRV, KC_1, KC_2, KC_3, KC_BSLS, KC_NA, KC_NA, KC_NA, KC_ALGR, KC_NA, TO(MEDR), + KC_DOT, KC_0, KC_MINS, TO(GAME), KC_NA, KC_NA + ), + [NSSL] = LAYOUT_split_3x6_3( + TO(BASE), KC_LCBR, KC_AMPR, KC_ASTR, KC_LPRN, KC_RCBR, KC_NA, KC_NA, KC_NA, KC_NA, QK_BOOT, TO(MOUR), + TO(NSL), KC_COLN, KC_DLR, KC_PERC, KC_CIRC, KC_PLUS, KC_NA, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI, TO(NAVR), + TO(FUNL), KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_PIPE, KC_NA, KC_NA, KC_NA, KC_ALGR, KC_NA, TO(MEDR), + KC_GT, KC_RPRN, KC_UNDS, KC_NA, KC_NA, KC_NA + ), + [GAME] = LAYOUT_split_3x6_3( + KC_NA, KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_QUOT, TO(BASE), + KC_NA, KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, LSFT_T(KC_N), LCTL_T(KC_E), LALT_T(KC_I), LGUI_T(KC_O), TO(BASE), + KC_NA, KC_Z, KC_X, KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, ALGR_T(KC_DOT), KC_SLSH, TO(BASE), + KC_ESC, KC_SPC, KC_TAB, LT(NSSL, KC_ENT), LT(NSL, KC_BSPC), LT(FUNL, KC_DEL) + ) +}; + +// Default (BASE) lighting layer is HSV_GREEN. +// MEDR lighting layer. +const rgblight_segment_t PROGMEM medr_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 53, HSV_PINK} // Light all LEDs +); +// NAVR lighting layer. +const rgblight_segment_t PROGMEM navr_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 53, HSV_CYAN} // Light all LEDs +); +// MOUR lighting layer. +const rgblight_segment_t PROGMEM mour_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 53, HSV_YELLOW} // Light all LEDs +); +// NSSL lighting layer. +const rgblight_segment_t PROGMEM nssl_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 53, HSV_SPRINGGREEN} // Light all LEDs +); +// NSL lighting layer. +const rgblight_segment_t PROGMEM nsl_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 53, HSV_BLUE} // Light all LEDs +); +// FUNL lighting layer. +const rgblight_segment_t PROGMEM funl_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 53, HSV_RED} // Light all LEDs +); +// GAME lighting layer. +const rgblight_segment_t PROGMEM game_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 53, HSV_PURPLE} // Light all LEDs +); + +// Now define the array of layers. Later layers take precedence +const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST( + medr_layer, + navr_layer, + mour_layer, + nssl_layer, + nsl_layer, + funl_layer, + game_layer +); + +void keyboard_post_init_user(void) { + // Enable the LED layers + rgblight_layers = my_rgb_layers; + rgblight_sethsv(HSV_GREEN); +} + +layer_state_t layer_state_set_user(layer_state_t state) { + rgblight_set_layer_state(0, layer_state_cmp(state, MEDR)); + rgblight_set_layer_state(1, layer_state_cmp(state, NAVR)); + rgblight_set_layer_state(2, layer_state_cmp(state, MOUR)); + rgblight_set_layer_state(3, layer_state_cmp(state, NSSL)); + rgblight_set_layer_state(4, layer_state_cmp(state, NSL)); + rgblight_set_layer_state(5, layer_state_cmp(state, FUNL)); + rgblight_set_layer_state(6, layer_state_cmp(state, GAME)); + return state; +} + + diff --git a/keyboards/crkbd/keymaps/benrestech/rules.mk b/keyboards/crkbd/keymaps/benrestech/rules.mk new file mode 100644 index 00000000000..c177a33cf52 --- /dev/null +++ b/keyboards/crkbd/keymaps/benrestech/rules.mk @@ -0,0 +1,3 @@ +RGBLIGHT_ENABLE = yes +OLED_ENABLE = yes +OLED_DRIVER = SSD1306 diff --git a/keyboards/crkbd/keymaps/bermeo/config.h b/keyboards/crkbd/keymaps/bermeo/config.h index cc83148d870..cadb3978340 100644 --- a/keyboards/crkbd/keymaps/bermeo/config.h +++ b/keyboards/crkbd/keymaps/bermeo/config.h @@ -74,7 +74,6 @@ along with this program. If not, see . #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_FRAMEBUFFER_EFFECTS # 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) diff --git a/keyboards/crkbd/keymaps/bermeo/keymap.c b/keyboards/crkbd/keymaps/bermeo/keymap.c index 8c3d368ca0b..3b3e6d0abe6 100644 --- a/keyboards/crkbd/keymaps/bermeo/keymap.c +++ b/keyboards/crkbd/keymaps/bermeo/keymap.c @@ -8,10 +8,10 @@ // The underscores don't mean anything - you can have a layer called STUFF or any other name. // Layer names don't all need to be of the same length, obviously, and you can also skip them // entirely and just use numbers. -enum layers { - _QWERTY, - _LOWER, - _RAISE, +enum layers { + _QWERTY, + _LOWER, + _RAISE, _NUMP, }; @@ -81,7 +81,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {[_QWERTY] = LAYOUT )}; //Per key lights -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_user(void) { #ifdef RGB_MATRIX_ENABLE switch (get_highest_layer(layer_state)) { case _QWERTY: @@ -179,7 +179,7 @@ void rgb_matrix_indicators_user(void) { case 15: // C key off case 20: // X key off case 21: // Z key off - + case 26: // shift key off case 52 ... 53: // right column off rgb_matrix_set_color(i, 0, 0, 0); // off @@ -256,6 +256,7 @@ void rgb_matrix_indicators_user(void) { rgb_matrix_set_color(14, 0, 255, 0); // Green layer active } } + return false; }; #endif @@ -273,7 +274,6 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation) { # define ANIM_SIZE 96 // number of bytes in array. If you change sprites, minimize for adequate firmware size. max is 1024 /* timers */ uint32_t anim_timer = 0; -uint32_t anim_sleep = 0; /* current frame */ uint8_t current_frame = 0; /* status variables */ @@ -351,19 +351,19 @@ static void render_luna(int LUNA_X, int LUNA_Y) { current_frame = (current_frame + 1) % 2; /* draw */ if (isBarking) { - oled_write_raw_P(bark[abs(1 - current_frame)], ANIM_SIZE); + oled_write_raw_P(bark[current_frame], ANIM_SIZE); } else if (isSneaking) { - oled_write_raw_P(sneak[abs(1 - current_frame)], ANIM_SIZE); + oled_write_raw_P(sneak[current_frame], ANIM_SIZE); } else if (current_wpm <= MIN_WALK_SPEED) { - oled_write_raw_P(sit[abs(1 - current_frame)], ANIM_SIZE); + oled_write_raw_P(sit[current_frame], ANIM_SIZE); } else if (current_wpm <= MIN_RUN_SPEED) { - oled_write_raw_P(walk[abs(1 - current_frame)], ANIM_SIZE); + oled_write_raw_P(walk[current_frame], ANIM_SIZE); } else { - oled_write_raw_P(run[abs(1 - current_frame)], ANIM_SIZE); + oled_write_raw_P(run[current_frame], ANIM_SIZE); } } /* animation timer */ diff --git a/keyboards/crkbd/keymaps/crkdves/config.h b/keyboards/crkbd/keymaps/crkdves/config.h index 31d23fdff7f..52d4fdd93a6 100644 --- a/keyboards/crkbd/keymaps/crkdves/config.h +++ b/keyboards/crkbd/keymaps/crkdves/config.h @@ -53,7 +53,6 @@ along with this program. If not, see . #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_FRAMEBUFFER_EFFECTS # 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) diff --git a/keyboards/crkbd/keymaps/crkqwes/config.h b/keyboards/crkbd/keymaps/crkqwes/config.h index 7c97ea0831b..a095f08760b 100644 --- a/keyboards/crkbd/keymaps/crkqwes/config.h +++ b/keyboards/crkbd/keymaps/crkqwes/config.h @@ -62,7 +62,6 @@ along with this program. If not, see . #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_FRAMEBUFFER_EFFECTS # 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) diff --git a/keyboards/crkbd/keymaps/davidrambo/config.h b/keyboards/crkbd/keymaps/davidrambo/config.h index 969ce07c8d1..9fb4348802d 100644 --- a/keyboards/crkbd/keymaps/davidrambo/config.h +++ b/keyboards/crkbd/keymaps/davidrambo/config.h @@ -38,7 +38,6 @@ along with this program. If not, see . #define RGB_MATRIX_KEYPRESSES // reacts to keypresses #define RGB_MATRIX_TYPING_MEATMAP_DECREASE_DELAY_MS 50 // # 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 (RGB_MATRIX_LED_COUNT + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) diff --git a/keyboards/crkbd/keymaps/devdev/config.h b/keyboards/crkbd/keymaps/devdev/config.h index c3db01f145e..8261ef62682 100644 --- a/keyboards/crkbd/keymaps/devdev/config.h +++ b/keyboards/crkbd/keymaps/devdev/config.h @@ -70,7 +70,6 @@ along with this program. If not, see . #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_FRAMEBUFFER_EFFECTS // # 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) diff --git a/keyboards/crkbd/keymaps/kidbrazil/config.h b/keyboards/crkbd/keymaps/kidbrazil/config.h index b82e4c9344d..03bdbf51bab 100644 --- a/keyboards/crkbd/keymaps/kidbrazil/config.h +++ b/keyboards/crkbd/keymaps/kidbrazil/config.h @@ -50,7 +50,6 @@ along with this program. If not, see . #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_FRAMEBUFFER_EFFECTS // # 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) diff --git a/keyboards/crkbd/keymaps/nimishgautam/config.h b/keyboards/crkbd/keymaps/nimishgautam/config.h new file mode 100644 index 00000000000..d237727091d --- /dev/null +++ b/keyboards/crkbd/keymaps/nimishgautam/config.h @@ -0,0 +1,92 @@ +// Copyright 2022 Nimish Gåtam (@nimishgautam) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +// OS-specific stuff +//#define UNICODE_SELECTED_MODES UC_MAC + +/* Select hand configuration */ +//#define MASTER_LEFT +#define MASTER_RIGHT +// #define EE_HANDS +#define SPLIT_LAYER_STATE_ENABLE +#define SPLIT_MODS_ENABLE + + +// combo +#define COMBO_COUNT 7 +#define EXTRA_SHORT_COMBOS + +//Tapping values +//#define TAPPING_FORCE_HOLD +#define TAPPING_TERM 200 +#define IGNORE_MOD_TAP_INTERRUPT +#define PERMISSIVE_HOLD_PER_KEY + + +// Try to save some memory +#define NO_ACTION_ONESHOT +#undef LOCKING_SUPPORT_ENABLE +#undef LOCKING_RESYNC_ENABLE +#define LAYER_STATE_8BIT //8 layers max + + +// which lighting effects to include (less saves memory) +#ifdef RGBLIGHT_ENABLE + #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 RGBLIGHT_LIMIT_VAL 120 + #define RGBLIGHT_HUE_STEP 10 + #define RGBLIGHT_SAT_STEP 17 + #define RGBLIGHT_VAL_STEP 17 + +#endif + +// rgb matrix, cooler effects than lighting above +#ifdef RGB_MATRIX_ENABLE + #define RGB_MATRIX_KEYPRESSES + #define RGB_MATRIX_FRAMEBUFFER_EFFECTS + #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 + #define RGB_MATRIX_HUE_STEP 8 + #define RGB_MATRIX_SAT_STEP 8 + #define RGB_MATRIX_VAL_STEP 8 + #define RGB_MATRIX_SPD_STEP 10 + #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_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 ENABLE_RGB_MATRIX_SOLID_SPLASH + + // NOTE: the below effects are super cool but they go absolutely nuts if you manually set hsv colors (eg with layers) + + //#define ENABLE_RGB_MATRIX_TYPING_HEATMAP + //#define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH + //#define ENABLE_RGB_MATRIX_SOLID_REACTIVE +#endif + +//autoshift +/* +#define NO_AUTO_SHIFT_NUMERIC +#define NO_AUTO_SHIFT_SPECIAL +#define RETRO_SHIFT 400 +#define AUTO_SHIFT_TIMEOUT 175 +#define AUTO_SHIFT_ENABLED +#define AUTO_SHIFT_TIMEOUT_PER_KEY +*/ + + +// oled font (for logo etc) +#define OLED_FONT_H "keyboards/crkbd/lib/glcdfont.c" + +// mouse keys go at a constant speed instead of accelerating +#define MK_3_SPEED +#define MK_MOMENTARY_ACCEL diff --git a/keyboards/crkbd/keymaps/nimishgautam/keymap.c b/keyboards/crkbd/keymaps/nimishgautam/keymap.c new file mode 100644 index 00000000000..42891d60d8f --- /dev/null +++ b/keyboards/crkbd/keymaps/nimishgautam/keymap.c @@ -0,0 +1,585 @@ +// Copyright 2022 Nimish Gåtam (@nimishgautam) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +enum custom_key_codes { + SHOW_WIN_LEFT = SAFE_RANGE, // show windows on tap, move active window left on hold + NUMERIC_WIN_RIGHT, // lock to numeric layer on press, move active window right on hold + DEL_WORD, //delete a word + SELECT_LEFT_WD, // select word left of cursor + SELECT_RIGHT_WD, // select word right of cursor + SELECT_LEFT_LINE, // select all from left of cursor to beginning of line + SELECT_RIGHT_LINE, // select all from right of cursor to end of line + MOVE_LEFT_WD, // move one word to the left + MOVE_RIGHT_WD, // move one word to the right + MOVE_LEFT_LINE, // move to beginning of line + MOVE_RIGHT_LINE, // move to end of line + PASTE_NOSTYLE, // paste without formatting + MOVE_BEGIN_LINE_TERMINAL, // move to the beginning of the line in the terminal + MOVE_END_LINE_TERMINAL, // move to the end of the line in the terminal + /* macros */ + PASTE_VIM, // paste in vim from system register + ACIRCLE, // å + ADOT, // ä + ODOT, // ö + COMPOSE_MACRO, // compose key for mac or linux + SCREENSHOT, // This is theoretically reprogrammable on Linux, but Gui(Shift(4)) or Gui(4) is reserved for '4th item on favorite menu' and doesn't remap so well +}; + +//Tap Dance Declarations +enum { + TD_MOVE_BEGIN_LINE = 0, // tap-dance, on single press move to beginning of the line, on double, output ^(vim character for beginning of line nonwhitespace char) + TD_MOVE_END_LINE, // tap-dance, on single press move to end of the line, on double, output $ (vim character for last nonblank char on a line) + TD_PERIOD_COMMA, // period on single press, comma on second press +}; + +// Mac-specific definitions of these functions +// I've changed Linux to accept these defaults + +#define FINDER LGUI(LALT(KC_SPACE)) //open the search bar for finding apps, docs in-computer, etc +#define COMPOSE_KEY KC_SCRL //manually set on linux, to create chars via .Xcompose () +#define COMPOSE_MAC KC_F13 //manually set on mac using some tricks +#define X_COMPOSE_KEY X_SCROLLLOCK //for use with macros +#define SHOW_WINDOWS LCTL(KC_UP) //'Expose' on Mac, overview on linux. Just all the windows +#define WINDOW_LEFT LCTL(LGUI(LSFT(KC_LEFT))) //custom shortcut for this feature -- make window take up 50% left screen (using gui and ctl to make it os agnostic) +#define WINDOW_RIGHT LCTL(LGUI(LSFT(KC_RIGHT))) //custom shortcut for this feature -- make window take up 50% right screen (using gui and ctl to make it os agnostic)/fully custom shortcut, using ctl and gui keys so will need them both irrespective of os +#define SHOW_APP_WINDOWS LCTL(KC_DOWN) +#define LOCK_SCREEN LCTL(LGUI(KC_Q)) //manually set this on linux to match osx default +#define EURO LALT(LSFT(KC_2)) +#define EMOJI_KBD LCTL(LGUI(KC_SPACE)) //manually set this on linux to match osx default, with 'emote' on linux and a custom shortcut (probably better to use compose feature) +#define APP_LEFT LGUI(KC_TAB) +#define APP_RIGHT RSFT(LGUI(KC_TAB)) +#define CALCULATOR RSFT(LGUI(LCTL(KC_SLASH))) // arbitrary shortcut + +#define MOVE_LEFT_TERMINAL LALT(KC_LEFT) //move cursor one word left on the terminal... does not work if .inputrc is set to use vim bindings! +#define MOVE_RIGHT_TERMINAL LALT(KC_RIGHT) //move cursor one word left on the terminal... does not work if .inputrc is set to use vim bindings! +#define DEL_WORD_TERMINAL LALT(KC_BSPACE) // delete one word back on terminal ... does not work if .inputrc is set to use vim bindings! + +enum custom_layers { + _BASE, + _NUMS, + _NUM_MASK, + _TEXT_NAV, + _ADJUST, + _FN_KEYS, +}; + +// combo - press space and backspace together to get 'scroll lock', used as the compose key on my custom linux +const uint16_t PROGMEM compose_combo[] = {KC_BSPACE, KC_SPACE, COMBO_END}; + +// combo - press the 2 larger keys on the inner part of the corne to get the search window ('finder' as I'm calling it) +const uint16_t PROGMEM search_combo[] = {LT(_FN_KEYS, KC_ENTER),LT(_TEXT_NAV, KC_PAST), COMBO_END}; + +// combo - press ,. to paste in vim +const uint16_t PROGMEM vim_paste_combo[] = {KC_COMM, KC_DOT, COMBO_END}; + +// combo - press () to launch calculator +const uint16_t PROGMEM calculator_combo[] = {LT(_NUMS,KC_LPRN), LT(_NUMS,KC_RPRN), COMBO_END}; + +// combo - press combo+ a to get å +const uint16_t PROGMEM acircle_combo[] = { KC_BSPACE, KC_SPACE, MT(MOD_LCTL, KC_A),COMBO_END}; + +// combo - press combo+ l to get ä +const uint16_t PROGMEM adot_combo[] = {KC_BSPACE, KC_SPACE, MT(MOD_RALT,KC_L), COMBO_END}; + +// combo - press combo+ ; to get ö +const uint16_t PROGMEM odot_combo[] = {KC_BSPACE, KC_SPACE, MT(MOD_LCTL,KC_SCLN),COMBO_END}; + +combo_t key_combos[COMBO_COUNT] = { + COMBO(compose_combo, COMPOSE_MACRO), + COMBO(search_combo, FINDER), + COMBO(calculator_combo, CALCULATOR), + /* macros */ + COMBO(vim_paste_combo, PASTE_VIM), + COMBO(acircle_combo, ACIRCLE), + COMBO(adot_combo, ADOT), + COMBO(odot_combo, ODOT) +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_split_3x6_3( //basic + //,-----------------------------------------------------. ,-----------------------------------------------------. + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MINUS, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_ESCAPE, MT(MOD_LCTL, KC_A), MT(MOD_LALT,KC_S), MT(MOD_RSFT,KC_D), MT(MOD_LGUI, KC_F), KC_G, KC_H, MT(MOD_RGUI,KC_J), MT(MOD_RSFT,KC_K), MT(MOD_RALT,KC_L), MT(MOD_LCTL,KC_SCLN), KC_QUOT, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + LT(0, SHOW_WIN_LEFT), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLASH, LT(0, NUMERIC_WIN_RIGHT), + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + LT(_NUMS,KC_LPRN), KC_BSPACE, LT(_FN_KEYS, KC_ENTER), LT(_TEXT_NAV, KC_PAST), KC_SPACE, LT(_NUMS,KC_RPRN) + //`--------------------------' `--------------------------' + + ), + + [_NUMS] = LAYOUT_split_3x6_3( //numbers + //,-----------------------------------------------------. ,-----------------------------------------------------. + SCREENSHOT, KC_EXCLAIM,KC_AT, KC_HASH, KC_DOLLAR,KC_PERCENT, KC_CIRCUMFLEX, KC_7, KC_8, KC_9, KC_TRANSPARENT, KC_PIPE, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + TO(_BASE), KC_LCTL, KC_LALT, KC_RSFT, KC_LGUI,KC_PLUS, KC_EQL, KC_4, KC_5, KC_6, KC_BSLASH, KC_TRANSPARENT, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LCBR, KC_LBRACKET, KC_GRAVE, KC_TILD, PASTE_NOSTYLE, KC_AMPERSAND, TD(TD_PERIOD_COMMA), KC_1, KC_2, KC_3, KC_RBRACKET, KC_RCBR, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+-C```-------+--------+--------| + KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT , KC_TRANSPARENT , KC_UNDS, KC_0 + //`--------------------------' `--------------------------' + ), + + [_NUM_MASK] = LAYOUT_split_3x6_3( //NUM MASK, so I can still have backspace/enter/tab etc but with the nums, arrows and formatters too + //,-----------------------------------------------------. ,-----------------------------------------------------. + KC_TRANSPARENT, KC_TRANSPARENT,KC_TRANSPARENT, KC_UP, KC_TRANSPARENT,KC_TRANSPARENT, KC_TRANSPARENT, KC_7, KC_8, KC_9, KC_TRANSPARENT, KC_TRANSPARENT, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + TO(_BASE), KC_TRANSPARENT, KC_LEFT, KC_DOWN, KC_RIGHT,KC_TRANSPARENT, KC_TRANSPARENT, KC_4, KC_5, KC_6, KC_TRANSPARENT, KC_TRANSPARENT, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_TRANSPARENT, KC_TRANSPARENT,KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, TD(TD_PERIOD_COMMA), KC_1, KC_2, KC_3,KC_TRANSPARENT, KC_NLCK, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT , KC_TRANSPARENT , KC_TRANSPARENT, KC_0 + //`--------------------------' `--------------------------' + ), + + [_TEXT_NAV] = LAYOUT_split_3x6_3( //text nav and special navigation (lock screen, adjust layer, etc) + //,-----------------------------------------------------. ,-----------------------------------------------------. + LOCK_SCREEN, KC_PSCR, SELECT_LEFT_LINE, KC_UP, SELECT_RIGHT_LINE, TD(TD_MOVE_BEGIN_LINE), TD(TD_MOVE_END_LINE), KC_MS_WH_UP, EMOJI_KBD, KC_TRANSPARENT, KC_TRANSPARENT, RESET, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + TO(_BASE), SELECT_LEFT_WD, KC_LEFT, KC_DOWN, KC_RIGHT,SELECT_RIGHT_WD, KC_MS_WH_LEFT, KC_RGUI, KC_RSFT, KC_RALT,KC_RCTRL, KC_CAPS, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_INSERT, KC_TRANSPARENT, MOVE_LEFT_WD,KC_PAGE_DOWN,MOVE_RIGHT_WD, KC_PAGE_UP, KC_MS_WH_RIGHT, KC_MS_WH_DOWN, KC_HOME, KC_END,KC_TRANSPARENT, TO(_ADJUST), + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_DELETE, DEL_WORD, KC_TRANSPARENT , KC_TRANSPARENT , KC_TRANSPARENT, KC_TRANSPARENT + //`--------------------------' `--------------------------' + ), + + [_ADJUST] = LAYOUT_split_3x6_3( // adjust things + //,-----------------------------------------------------. ,-----------------------------------------------------. + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + TO(_BASE), RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LSFT, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + CG_TOGG, XXXXXXX, XXXXXXX , XXXXXXX, XXXXXXX, XXXXXXX + //`--------------------------' `--------------------------' + ), // CG_TOGG toggles gui and Ctrl (switching from mac to windows/linux) + // the RGB buttons go backwards if shift is held when they're pressed, so shift is included + // RGB MOD changes the mode, it's the most important one + // right side mostly no-op so I can play with the visualization + + [_FN_KEYS] = LAYOUT_split_3x6_3( //fn keys, terminal text navigation keys + //,-----------------------------------------------------. ,-----------------------------------------------------. + KC_TRANSPARENT, KC_LCBR,KC_LBRACKET, KC_RBRACKET, KC_RCBR, MOVE_BEGIN_LINE_TERMINAL, MOVE_END_LINE_TERMINAL, KC_F7, KC_F8, KC_F9, KC_F11, KC_TRANSPARENT, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + TO(_BASE), KC_LCTL, KC_LALT, KC_RSFT, KC_LGUI, KC_TRANSPARENT, KC_TRANSPARENT, KC_F4, KC_F5, KC_F6, KC_F12, KC_TRANSPARENT, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_TRANSPARENT, KC_TRANSPARENT, MOVE_LEFT_TERMINAL, DEL_WORD_TERMINAL, MOVE_RIGHT_TERMINAL, KC_TRANSPARENT, KC_TRANSPARENT, KC_F1, KC_F2, KC_F3, KC_TRANSPARENT, KC_TRANSPARENT, + //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------| + KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT , KC_HASH , KC_TRANSPARENT, KC_F10 + //`--------------------------' `--------------------------' + ) + +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + + + switch (keycode) { + + // as of this writing, you can't do a layer tap (LT) + // and also send a shifted code, like left parens + // If you call such a function, it'll do the layer shift but + // it'll ignore the key code on tap... this is the workaround + + case LT(_NUMS,KC_LPRN): // Shift to _NUMS layer on hold, but send left paren on press + if (record->tap.count && record->event.pressed) { + tap_code16(KC_LPRN); + return false; + } + break; + case LT(_NUMS,KC_RPRN): // Shift to _NUMS on hold, send right parens on press + if (record->tap.count && record->event.pressed) { + tap_code16(KC_RPRN); + return false; + } + break; + + case LT(0,SHOW_WIN_LEFT): + if (record->tap.count && record->event.pressed) { + tap_code16(SHOW_WINDOWS); // Intercept tap function + } else if (record->event.pressed) { + tap_code16(WINDOW_LEFT); // Intercept hold function + } + return false; + break; + + case LT(0, NUMERIC_WIN_RIGHT): + if (record->tap.count && record->event.pressed) { + layer_on(_NUM_MASK);// Intercept tap function + } else if (record->event.pressed) { + tap_code16(WINDOW_RIGHT); // Intercept hold function + } + return false; + break; + + case PASTE_VIM: + if (record->event.pressed){ + SEND_STRING(SS_TAP(X_ESCAPE)"\"+pi"); + } + return false; + break; + + //only read the keymap config if it's one of the below cases (instead of every time) + case DEL_WORD: + case SELECT_LEFT_WD: + case SELECT_RIGHT_WD: + case SELECT_LEFT_LINE: + case SELECT_RIGHT_LINE: + case MOVE_LEFT_WD: + case MOVE_RIGHT_WD: + case MOVE_LEFT_LINE: + case MOVE_RIGHT_LINE: + case PASTE_NOSTYLE: + case MOVE_BEGIN_LINE_TERMINAL: + case MOVE_END_LINE_TERMINAL: + case ACIRCLE: + case ADOT: + case ODOT: + case COMPOSE_MACRO: + case SCREENSHOT: + + if(record->event.pressed) { + keymap_config.raw = eeconfig_read_keymap(); + switch (keycode){ + case DEL_WORD: + if(keymap_config.swap_lctl_lgui){ //Linux + tap_code16(LCTL(KC_BSPACE)); + } else { //osx + tap_code16(LALT(KC_BSPACE)); + } + break; + case SELECT_LEFT_WD: + if(keymap_config.swap_lctl_lgui){ //Linux + tap_code16(RSFT(LCTL(KC_LEFT))); + } else { //osx + tap_code16(RSFT(LALT(KC_LEFT))); + } + break; + case SELECT_RIGHT_WD: + if(keymap_config.swap_lctl_lgui){ //Linux + tap_code16(RSFT(LCTL(KC_RIGHT))); + } else { //osx + tap_code16(RSFT(LALT(KC_RIGHT))); + } + break; + case SELECT_LEFT_LINE: + if(keymap_config.swap_lctl_lgui){ //Linux + tap_code16(RSFT(KC_HOME)); + } else { //osx + tap_code16(RSFT(LCTL(KC_LEFT))); + } + break; + case SELECT_RIGHT_LINE: + if(keymap_config.swap_lctl_lgui){ //Linux + tap_code16(RSFT(KC_END)); + } else { //osx + tap_code16(RSFT(LCTL(KC_RIGHT))); + } + break; + case MOVE_LEFT_WD: + if(keymap_config.swap_lctl_lgui){ //Linux + tap_code16(LCTL(KC_LEFT)); + } else { //osx + tap_code16(LALT(KC_LEFT)); + } + break; + case MOVE_RIGHT_WD: + if(keymap_config.swap_lctl_lgui){ //Linux + tap_code16(LCTL(KC_RIGHT)); + } else { //osx + tap_code16(LALT(KC_RIGHT)); + } + break; + case MOVE_LEFT_LINE: + if(keymap_config.swap_lctl_lgui){ //Linux + tap_code16(KC_HOME); + } else { //osx + tap_code16(LGUI(KC_LEFT)); //GUI for move, shift-ctl for highlight... thanks mac! + } + break; + case MOVE_RIGHT_LINE: + if(keymap_config.swap_lctl_lgui){ //Linux + tap_code16(KC_END); + } else { //osx + tap_code16(LGUI(KC_RIGHT)); //GUI for move, shift-ctl for highlight... thanks mac! + } + break; + case PASTE_NOSTYLE: + if(keymap_config.swap_lctl_lgui){ //Linux + tap_code16(LCTL(RSFT(KC_V))); + } else { //osx + tap_code16(LGUI(LALT(LSFT(KC_V)))); + } + break; + case MOVE_BEGIN_LINE_TERMINAL: + if(keymap_config.swap_lctl_lgui){ //Linux + tap_code16(KC_HOME); + } else { //osx + tap_code16(LSFT(KC_HOME)); + } + break; + case MOVE_END_LINE_TERMINAL: + if(keymap_config.swap_lctl_lgui){ //Linux + tap_code16(KC_END); + } else { //osx + tap_code16(LSFT(KC_END)); + } + break; + case ACIRCLE: // å + if(keymap_config.swap_lctl_lgui){ //Linux + SEND_STRING(SS_TAP(X_COMPOSE_KEY)"aa"); + } else { //osx + tap_code16(LALT(KC_A)); + } + break; + case ADOT: // ä + if(keymap_config.swap_lctl_lgui){ //Linux + SEND_STRING(SS_TAP(X_COMPOSE_KEY)"a\""); + } else { //osx + SEND_STRING(SS_LALT("u")"a"); + } + break; + case ODOT: // ö + if(keymap_config.swap_lctl_lgui){ //Linux + SEND_STRING(SS_TAP(X_COMPOSE_KEY)"o\""); + } else { //osx + SEND_STRING(SS_LALT("u")"o"); + } + break; + case COMPOSE_MACRO: + if(keymap_config.swap_lctl_lgui){ //Linux + tap_code16(COMPOSE_KEY); + } else { //osx + tap_code16(COMPOSE_MAC); + } + break; + case SCREENSHOT: + if(keymap_config.swap_lctl_lgui){ //Linux + tap_code16(KC_PSCR); + } else { //osx + tap_code16(LGUI(LSFT(KC_4))); + } + break; + } + } + + return false; + break; + + } + return true; +} + +void dance_left_finished (qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 1) { //1 tap, move to line left + keymap_config.raw = eeconfig_read_keymap(); + if(keymap_config.swap_lctl_lgui){ //Linux + tap_code16(KC_HOME); + } else { //osx + tap_code16(LGUI(KC_LEFT)); + } + } else { //2 taps, make a circumflex + tap_code16(KC_CIRC); + } +} + +void dance_right_finished (qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 1) { // 1 tap, move line right + keymap_config.raw = eeconfig_read_keymap(); + if(keymap_config.swap_lctl_lgui){ //Linux + tap_code16(KC_END); + } else { //osx + tap_code16(LGUI(KC_RIGHT)); + } + } else { //2 taps, dollar + tap_code16(KC_DOLLAR); + } +} + +//Tap Dance Definitions +qk_tap_dance_action_t tap_dance_actions[] = { + [TD_MOVE_BEGIN_LINE] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_left_finished, NULL), + [TD_MOVE_END_LINE] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_right_finished, NULL), + [TD_PERIOD_COMMA] = ACTION_TAP_DANCE_DOUBLE(KC_DOT, KC_COMMA), +}; + +bool get_permissive_hold(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case MT(MOD_RSFT,KC_D): // for modtap shift, otherwise lots of mis-firings + case MT(MOD_RSFT,KC_K): + // Immediately select the hold action when another key is tapped. + return true; + default: + // Do not select the hold action when another key is tapped. + return false; + } +} + +// yeah, should be layer_state_set_user but that one doesn't update the mods +void set_lighting_user(void) { + uint8_t layer = get_highest_layer(layer_state); + switch(layer){ + case _BASE: + rgblight_sethsv_noeeprom(HSV_WHITE); + led_t led_state = host_keyboard_led_state(); + if(led_state.caps_lock){ + rgblight_sethsv_noeeprom(HSV_RED); + } + //rgblight_sethsv(HSV_OFF); + break; + case _NUMS: + rgblight_sethsv_noeeprom(HSV_GREEN); + break; + case _NUM_MASK: + rgblight_sethsv_noeeprom(HSV_PINK); + break; + case _TEXT_NAV: + rgblight_sethsv_noeeprom(HSV_BLUE); + break; + case _ADJUST: + rgblight_sethsv_noeeprom(HSV_ORANGE); + break; + case _FN_KEYS: + rgblight_sethsv_noeeprom(HSV_PURPLE); + break; + default: + break; + } + // override color with mods + + if(get_mods() & MOD_MASK_SHIFT){ + rgblight_sethsv_noeeprom(HSV_RED); + } + if(get_mods() & MOD_MASK_CTRL){ + rgblight_sethsv_noeeprom(HSV_MAGENTA); + } + if(get_mods() & MOD_MASK_ALT){ + rgblight_sethsv_noeeprom(HSV_YELLOW); + } + if(get_mods() & MOD_MASK_GUI){ + rgblight_sethsv_noeeprom(HSV_TEAL); + } + // return state; +} + +#ifdef OLED_ENABLE +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + return OLED_ROTATION_270; +} + +void oled_render_general_state(void){ + set_lighting_user(); + + keymap_config.raw = eeconfig_read_keymap(); + if(keymap_config.swap_lctl_lgui){ + oled_write_ln_P(PSTR("Linux"), false); + } + else { + oled_write_ln_P(PSTR("OSX"), false); + } + + //oled_write_ln(get_u8_str(get_current_wpm(), '0'), false); + /* + led_t led_state = host_keyboard_led_state(); + if(led_state.caps_lock){ + rgblight_sethsv(HSV_RED); + }*/ + //Layer color has to be handled by master + + + // led state doesn't have to be handled by master, but + // the keyboard will freeze if you type too fast + // and have this handled on the slave side + + led_t led_state = host_keyboard_led_state(); + if(led_state.caps_lock){ + oled_write_ln_P(PSTR("CAPS"), false); + } else { + oled_write_ln_P(PSTR(" "), false); + } + if(led_state.num_lock){ + oled_write_ln_P(PSTR("NumLk"), false); + } else { + oled_write_ln_P(PSTR(" "), false); + } + if(led_state.scroll_lock){ + oled_write_ln_P(PSTR("Scrol"), false); + } else { + oled_write_ln_P(PSTR(" "), false); + } + if(led_state.compose){ + oled_write_ln_P(PSTR("comp"), false); + } else { + oled_write_ln_P(PSTR(" "), false); + } +} + +void oled_render_layer_mod_state(void) { + //Layer + uint8_t layer = get_highest_layer(layer_state); + switch (layer) { + case _BASE: + oled_write_ln_P(PSTR("Base"), false); + //rgblight_sethsv(HSV_OFF); + break; + case _NUMS: + oled_write_ln_P(PSTR("Symb"), false); + break; + case _NUM_MASK: + oled_write_ln_P(PSTR("NumX"), false); + break; + case _TEXT_NAV: + oled_write_ln_P(PSTR("Text"), false); + break; + case _ADJUST: + oled_write_ln_P(PSTR("Adj"), false); + break; + case _FN_KEYS: + oled_write_ln_P(PSTR("Fn"), false); + break; + default: + break; + } + oled_write_ln_P(PSTR(" "), false); + // mods + if(get_mods() & MOD_MASK_SHIFT){ + oled_write_ln_P(PSTR("SHIFT"), false); + } + if(get_mods() & MOD_MASK_CTRL){ + oled_write_ln_P(PSTR("ctrl"), false); + } + if(get_mods() & MOD_MASK_ALT){ + oled_write_ln_P(PSTR("alt"), false); + } + if(get_mods() & MOD_MASK_GUI){ + oled_write_ln_P(PSTR("GUI"), false); + } + if(!get_mods()){ + oled_write_ln_P(PSTR(" "), false); + oled_write_ln_P(PSTR(" "), false); + oled_write_ln_P(PSTR(" "), false); + oled_write_ln_P(PSTR(" "), false); + } +} + + +/* https://joric.github.io/qle/ - font */ + + +// render general state on master, a little bit of info on slave side +bool oled_task_user(void) { + if (is_keyboard_master()) { + oled_render_general_state(); + } + else { + oled_render_layer_mod_state(); + } + return false; +} + +#endif diff --git a/keyboards/crkbd/keymaps/nimishgautam/readme.md b/keyboards/crkbd/keymaps/nimishgautam/readme.md new file mode 100644 index 00000000000..98906afa100 --- /dev/null +++ b/keyboards/crkbd/keymaps/nimishgautam/readme.md @@ -0,0 +1,47 @@ +# Full-featured Corne layout for Linux and MacOS + +This is a generic layout for Corne, especially for someone who: + +* has to type in English +* occasionally has to type in Swedish +* Switches regularly between Linux and MacOS +* Prioritizes text navigation + * This includes selecting whole lines and deleting words +* uses VIM or VIM bindings for text navigation +* uses the 'compose' feature in Linux and uses the 'mac user dictionary' trick for getting compose features +* Home row modifiers for optimal ergo (hopefully optimal) + +This also features: +* OLED displays: + * indicating OS and LED status (scroll lock, numlock, caps, compose) on the master side + * layer and modifiers on the slave side +* LED lights: + * color changes to indicate layer and modifier status + * LED matrix effects around keypresses + +## Major notes + +### OS 'detection' +* I assume MacOS as the default. Using the ctrl/gui swap magic keycode switches everything to Linux + * Most of the Linux codes should work in Windows + * Yes, there are lots of if-statements around which key code to send here... this isn't the most sustainable way to do it, but is the most memory-efficient way I could come up with + +### RGB matrix effects +* Not all RGB matrix effects are compatible with changing the color on layer/mod change. Some of them get caught in a loop and freeze half of the keyboard, so beware of which ones you activate +* Some RGB settings are stored in eeprom (despite me using the `noeeprom()` version of functions) If something is weird, try clearing eeprom +* The color-changing function probably _should_ be in the `layer_state_set_user` function, except that function doesn't give the state of the modifiers. So instead I have it done in a call that updates the OLEDs + +### LED state explicitly not shared +* For some reason, sharing the LED state (as a split keyboard function) will cause the slave side of the keyboard to freeze up if you type too fast. Don't do it! + +### Windowing shortcuts +* Again, MacOS is assumed to be the default so I changed as many Linux shortcuts as I could to make them compatible with MacOS. Some of them don't have default shortcuts defined (such as 'move window left' or 'launch calculator') so I just made those as needed + +### Right-shift preferred +* At the time of this writing, left-shift wasn't always being registered as a modifier key when checking modmasks, so I stuck with everything using right-shift as it had the expected effects + +### Compose key +* I used [macos compose](https://github.com/Granitosaurus/macos-compose) + + + diff --git a/keyboards/crkbd/keymaps/nimishgautam/rules.mk b/keyboards/crkbd/keymaps/nimishgautam/rules.mk new file mode 100644 index 00000000000..84ae6248cbd --- /dev/null +++ b/keyboards/crkbd/keymaps/nimishgautam/rules.mk @@ -0,0 +1,12 @@ +RGB_MATRIX_ENABLE = yes +OLED_ENABLE = yes +OLED_DRIVER = SSD1306 +COMBO_ENABLE = yes +TAP_DANCE_ENABLE = yes # enable tap dance features +EXTRAKEY_ENABLE = no +GRAVE_ESC_ENABLE = no +SPACE_CADET_ENABLE = no +#WPM_ENABLE = yes +#CAPS_WORD_ENABLE = yes # if you hold down both shifts, you get lshift enabled for 1 word, but only works with KC shift, not MOD shift :( +#AUTO_SHIFT_ENABLE = yes +#UNICODE_ENABLE = yes # enable unicode diff --git a/keyboards/crkbd/keymaps/ollyhayes/config.h b/keyboards/crkbd/keymaps/ollyhayes/config.h index d302c0b4eff..734d41d084a 100644 --- a/keyboards/crkbd/keymaps/ollyhayes/config.h +++ b/keyboards/crkbd/keymaps/ollyhayes/config.h @@ -30,7 +30,6 @@ #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_FRAMEBUFFER_EFFECTS // # 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) diff --git a/keyboards/crkbd/keymaps/rmeli/keymap.c b/keyboards/crkbd/keymaps/rmeli/keymap.c index f8d298bbddb..3dcd0b3ed9d 100644 --- a/keyboards/crkbd/keymaps/rmeli/keymap.c +++ b/keyboards/crkbd/keymaps/rmeli/keymap.c @@ -29,12 +29,13 @@ along with this program. If not, see . // https://github.com/foostan/crkbd/blob/main/corne-classic/doc/buildguide_en.md // Change LED color to red when CAPS LOCK is active -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_user(void) { if (host_keyboard_led_state().caps_lock) { rgb_matrix_set_color(26, 255, 0, 0); // Only works with SPLIT_LED_STATE_ENABLE rgb_matrix_set_color(53, 255, 0, 0); } + return false; } // + ---- + @@ -128,4 +129,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______ //|--------------------------| |--------------------------| ) -}; \ No newline at end of file +}; diff --git a/keyboards/crkbd/keymaps/rpbaptist/keymap.c b/keyboards/crkbd/keymaps/rpbaptist/keymap.c index cdd0a5dacb1..c96adfcc0b6 100644 --- a/keyboards/crkbd/keymaps/rpbaptist/keymap.c +++ b/keyboards/crkbd/keymaps/rpbaptist/keymap.c @@ -342,7 +342,7 @@ void check_default_layer(uint8_t type) { } } -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_user(void) { if ( user_config.rgb_layer_change && rgb_matrix_config.enable && (!user_config.rgb_matrix_idle_anim || rgb_matrix_get_mode() != user_config.rgb_matrix_idle_mode) @@ -370,6 +370,7 @@ void rgb_matrix_indicators_user(void) { } } } + return false; } void rgb_matrix_update_current_mode(uint8_t mode, uint8_t speed) { diff --git a/keyboards/crkbd/keymaps/soundmonster/config.h b/keyboards/crkbd/keymaps/soundmonster/config.h index bafd3461119..07b3a9db121 100644 --- a/keyboards/crkbd/keymaps/soundmonster/config.h +++ b/keyboards/crkbd/keymaps/soundmonster/config.h @@ -58,7 +58,6 @@ along with this program. If not, see . #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_FRAMEBUFFER_EFFECTS # 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) diff --git a/keyboards/crkbd/keymaps/toinux/config.h b/keyboards/crkbd/keymaps/toinux/config.h index 2cd1363a4d0..2ee5a4e182d 100644 --- a/keyboards/crkbd/keymaps/toinux/config.h +++ b/keyboards/crkbd/keymaps/toinux/config.h @@ -51,7 +51,6 @@ along with this program. If not, see . #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_FRAMEBUFFER_EFFECTS // # 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) diff --git a/keyboards/crkbd/keymaps/toinux/rgb.c b/keyboards/crkbd/keymaps/toinux/rgb.c index 2c5de3b0a7b..9a7feabad93 100644 --- a/keyboards/crkbd/keymaps/toinux/rgb.c +++ b/keyboards/crkbd/keymaps/toinux/rgb.c @@ -24,7 +24,7 @@ static const char nav_leds[] = {38, 43, 44, 46}; static const char fun_leds[] = {45, 44, 37, 46, 43, 38, 47, 42, 39, 40}; static const char mouse_leds[] = {11, 16, 17, 19}; -void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { +bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { if (host_keyboard_led_state().caps_lock) { rgb_matrix_set_color(26, RGB_RED); } @@ -65,4 +65,5 @@ void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { break; } + return false; } diff --git a/keyboards/crkbd/readme.md b/keyboards/crkbd/readme.md index 3e8d8f8ba47..75267463b29 100644 --- a/keyboards/crkbd/readme.md +++ b/keyboards/crkbd/readme.md @@ -43,7 +43,6 @@ And in your `config.h` file, add the following: #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_FRAMEBUFFER_EFFECTS // # 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) diff --git a/keyboards/cutie_club/borsdorf/keymaps/zyber/keymap.c b/keyboards/cutie_club/borsdorf/keymaps/zyber/keymap.c new file mode 100644 index 00000000000..468a16f92d9 --- /dev/null +++ b/keyboards/cutie_club/borsdorf/keymaps/zyber/keymap.c @@ -0,0 +1,35 @@ +/* Copyright 2020 Cutie Club + * + * 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 "zyber.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [0] = LAYOUT_rshift( + 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, LGUI(KC_LEFT), + 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, LGUI(KC_RIGHT), + L1_EXPL, 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_LALT, KC_LGUI, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT + ), + [1] = LAYOUT_rshift( + QK_BOOT, 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_VOLU, + KC_GRV, 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_VOLD, + 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/dekunukem/duckypad/keymaps/default/config.h b/keyboards/dekunukem/duckypad/keymaps/default/config.h index 9d26b711622..2fe4c6f15b4 100644 --- a/keyboards/dekunukem/duckypad/keymaps/default/config.h +++ b/keyboards/dekunukem/duckypad/keymaps/default/config.h @@ -24,7 +24,7 @@ along with this program. If not, see . #define NO_ACTION_ONESHOT #define OLED_TIMEOUT 90000 -#define RGB_DISABLE_TIMEOUT 90000 +#define RGB_MATRIX_TIMEOUT 90000 #define MT_0_0 " 1 " #define MT_0_1 " 2 " diff --git a/keyboards/dekunukem/duckypad/keymaps/m4cs/config.h b/keyboards/dekunukem/duckypad/keymaps/m4cs/config.h index 7d0bbb1341c..bb66e1b754e 100644 --- a/keyboards/dekunukem/duckypad/keymaps/m4cs/config.h +++ b/keyboards/dekunukem/duckypad/keymaps/m4cs/config.h @@ -24,7 +24,7 @@ along with this program. If not, see . #define NO_ACTION_ONESHOT #define OLED_TIMEOUT 90000 -#define RGB_DISABLE_TIMEOUT 90000 +#define RGB_MATRIX_TIMEOUT 90000 #define MT_0_0 " prev " #define MT_0_1 " pl/pa" diff --git a/keyboards/dm9records/plaid/keymaps/brickbots/keymap.c b/keyboards/dm9records/plaid/keymaps/brickbots/keymap.c index 0442c930fe8..e1ed2c0749c 100644 --- a/keyboards/dm9records/plaid/keymaps/brickbots/keymap.c +++ b/keyboards/dm9records/plaid/keymaps/brickbots/keymap.c @@ -196,7 +196,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_ADJUST] = LAYOUT_plaid_grid( QK_BOOT,LED_1, LED_2, LED_3, LED_4, LED_5,LED_6, LED_7, LED_8, LED_9, LED_0,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/dm9records/plaid/keymaps/gipsy-king/keymap.c b/keyboards/dm9records/plaid/keymaps/gipsy-king/keymap.c index f31b79c2c7c..8327fe685d1 100644 --- a/keyboards/dm9records/plaid/keymaps/gipsy-king/keymap.c +++ b/keyboards/dm9records/plaid/keymaps/gipsy-king/keymap.c @@ -93,7 +93,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_LOWER] = LAYOUT_plaid_grid( // F, media keys, reset KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, _______, _______, MU_MOD, AU_ON, AU_OFF, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, QK_BOOT, - _______, 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, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, _______, AUTOCLICK ) }; diff --git a/keyboards/doro67/multi/keymaps/zyber/keymap.c b/keyboards/doro67/multi/keymaps/zyber/keymap.c new file mode 100644 index 00000000000..367a6484363 --- /dev/null +++ b/keyboards/doro67/multi/keymaps/zyber/keymap.c @@ -0,0 +1,36 @@ +/* Copyright 2019 ShadeDream + * + * 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 "zyber.h" + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_multi( + 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_F2, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, TD(LBRC), KC_RBRC, KC_BSLS, KC_PGUP, + LCTL(KC_UP), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, TD(SCLN), TD(QUOT), KC_ENT, KC_PGDN, + KC_LSFT, KC_GRV, 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_HOME, + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), KC_NO, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_multi( + QK_BOOT, 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, , + BL_TOGG, BL_STEP, BL_DEC, BL_INC, 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_END, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + +}; \ No newline at end of file diff --git a/keyboards/drop/sense75/keymaps/default/keymap.c b/keyboards/drop/sense75/keymaps/default/keymap.c index 05b351f8659..a9711953dec 100644 --- a/keyboards/drop/sense75/keymaps/default/keymap.c +++ b/keyboards/drop/sense75/keymaps/default/keymap.c @@ -45,8 +45,9 @@ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { }; #endif -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_user(void) { if (host_keyboard_led_state().caps_lock) { rgb_matrix_set_color(62, RGB_WHITE); } + return false; } diff --git a/keyboards/drop/sense75/keymaps/default_md/keymap.c b/keyboards/drop/sense75/keymaps/default_md/keymap.c index eb8b6b1f4be..cb25f5cc2d5 100644 --- a/keyboards/drop/sense75/keymaps/default_md/keymap.c +++ b/keyboards/drop/sense75/keymaps/default_md/keymap.c @@ -107,7 +107,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return true; }; -void rgb_matrix_indicators_user(void) { +bool 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) { @@ -133,4 +133,5 @@ void rgb_matrix_indicators_user(void) { rgb_matrix_set_color(55, RGB_OFF); rgb_matrix_set_color(59, RGB_OFF); } + return false; } diff --git a/keyboards/dtisaac/dosa40rgb/config.h b/keyboards/dtisaac/dosa40rgb/config.h index 60e5b1fcf32..72ff80088fc 100644 --- a/keyboards/dtisaac/dosa40rgb/config.h +++ b/keyboards/dtisaac/dosa40rgb/config.h @@ -45,7 +45,6 @@ along with this program. If not, see . #define RGB_MATRIX_KEYPRESSES // reacts to keypresses #define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses) #define RGB_MATRIX_FRAMEBUFFER_EFFECTS -#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) #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/dtisaac/dosa40rgb/keymaps/default/keymap.c b/keyboards/dtisaac/dosa40rgb/keymaps/default/keymap.c index c01d4ac7c84..9c27225bc26 100644 --- a/keyboards/dtisaac/dosa40rgb/keymaps/default/keymap.c +++ b/keyboards/dtisaac/dosa40rgb/keymaps/default/keymap.c @@ -52,23 +52,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), }; -void rgb_matrix_indicators_user(void) -{ - if (host_keyboard_led_state().caps_lock) - { - rgb_matrix_set_color(22, 200, 200, 200); - } - if (IS_LAYER_ON(_L1)) - { - rgb_matrix_set_color(35, 0, 200, 200); - } - if (IS_LAYER_ON(_L2)) - { - rgb_matrix_set_color(22, 200, 0, 200); - } +bool rgb_matrix_indicators_user(void) { + if (host_keyboard_led_state().caps_lock) { + rgb_matrix_set_color(22, 200, 200, 200); + } + if (IS_LAYER_ON(_L1)) { + rgb_matrix_set_color(35, 0, 200, 200); + } + if (IS_LAYER_ON(_L2)) { + rgb_matrix_set_color(22, 200, 0, 200); + } + return false; } void keyboard_pre_init_user(void) { setPinOutput(B5); writePinLow(B5); -} \ No newline at end of file +} diff --git a/keyboards/durgod/dgk6x/dgk6x.c b/keyboards/durgod/dgk6x/dgk6x.c index d7e871327aa..49496689f22 100644 --- a/keyboards/durgod/dgk6x/dgk6x.c +++ b/keyboards/durgod/dgk6x/dgk6x.c @@ -1,4 +1,4 @@ -/* Copyright 2021 Jessica Sullivan and Don Kjer +/* Copyright 2021 Jessica Sullivan and Don Kjer * * 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 @@ -60,14 +60,14 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { #ifdef RGB_MATRIX_ENABLE -__attribute__ ((weak)) -void rgb_matrix_indicators_user(void) -{ - if (host_keyboard_led_state().caps_lock) - { +bool rgb_matrix_indicators_kb(void) { + if (!rgb_matrix_indicators_user()) { + return false; + } + + if (host_keyboard_led_state().caps_lock) { rgb_matrix_set_color(CAPS_LED, 0xFF, 0xFF, 0xFF); } + return true; } #endif /* RGB_MATRIX_ENABLE */ - - diff --git a/keyboards/durgod/k310/base/config.h b/keyboards/durgod/k310/base/config.h new file mode 100644 index 00000000000..018afb342d6 --- /dev/null +++ b/keyboards/durgod/k310/base/config.h @@ -0,0 +1,56 @@ +/* Copyright 2021 kuenhlee, Don Kjer, Tyler Tidman + * Copyright 2021 Simon Arlott + * + * 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" + +#define WAIT_US_TIMER GPTD3 + +/* key matrix size */ +#define MATRIX_ROWS 8 +#define MATRIX_COLS 16 + +#define MATRIX_ROW_PINS { A0, A1, A2, A3, A4, A5, A6, A7 } +#define MATRIX_COL_PINS { C4, C5, B0, B1, B2, B10, B11, B12, B13, B14, B15, C6, C7, C10, C11, C12 } + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION ROW2COL + +// Dynamic EEPROM +// Something sensible or else VIA may crash +// Users may enable more if they wish +#define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 4095 + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* Bootmagic Lite key configuration */ +#define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE +#define BOOTMAGIC_LITE_ROW 0 +#define BOOTMAGIC_LITE_COLUMN 0 + +/* LED indicator pins */ +#define LED_NUM_LOCK_PIN C8 +#define LED_CAPS_LOCK_PIN C9 +#define LED_SCROLL_LOCK_PIN A8 +#define LED_WIN_LOCK_PIN A9 +#define LED_MR_LOCK_PIN A10 +#define LED_PIN_ON_STATE 0 + +/* Original hardware "reset" button on pin D2 */ +#define HARDWARE_RESET_PIN D2 diff --git a/keyboards/durgod/k310/base/readme.md b/keyboards/durgod/k310/base/readme.md deleted file mode 100644 index 1f818dacc9c..00000000000 --- a/keyboards/durgod/k310/base/readme.md +++ /dev/null @@ -1,6 +0,0 @@ -# Taurus K310 - -Base Model - no backlight leds - -See: [K310](../../k3x0/k310/base/readme.md) - diff --git a/keyboards/durgod/k310/base/rules.mk b/keyboards/durgod/k310/base/rules.mk index ff432cc4aa1..5c07a0fa711 100644 --- a/keyboards/durgod/k310/base/rules.mk +++ b/keyboards/durgod/k310/base/rules.mk @@ -1 +1,23 @@ -DEFAULT_FOLDER=durgod/k3x0/k310/base +# MCU name +# Actually F070, but close enough +MCU = STM32F072 +BOARD = DURGOD_STM32_F070 + +# Bootloader selection +BOOTLOADER = stm32-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = no # 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 = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output +LTO_ENABLE = yes + +LAYOUTS = fullsize_ansi fullsize_iso diff --git a/keyboards/durgod/k3x0/halconf.h b/keyboards/durgod/k310/halconf.h similarity index 100% rename from keyboards/durgod/k3x0/halconf.h rename to keyboards/durgod/k310/halconf.h diff --git a/keyboards/durgod/k3x0/k310/info.json b/keyboards/durgod/k310/info.json similarity index 100% rename from keyboards/durgod/k3x0/k310/info.json rename to keyboards/durgod/k310/info.json diff --git a/keyboards/durgod/k3x0/k3x0.c b/keyboards/durgod/k310/k310.c similarity index 99% rename from keyboards/durgod/k3x0/k3x0.c rename to keyboards/durgod/k310/k310.c index d12b46bc51b..fc41ee5657c 100644 --- a/keyboards/durgod/k3x0/k3x0.c +++ b/keyboards/durgod/k310/k310.c @@ -15,7 +15,7 @@ * along with this program. If not, see . */ -#include "k3x0.h" +#include "k310.h" #include #include diff --git a/keyboards/durgod/k3x0/k310/k310.h b/keyboards/durgod/k310/k310.h similarity index 92% rename from keyboards/durgod/k3x0/k310/k310.h rename to keyboards/durgod/k310/k310.h index 2d82ee15501..e106c8dbe6d 100644 --- a/keyboards/durgod/k3x0/k310/k310.h +++ b/keyboards/durgod/k310/k310.h @@ -17,6 +17,8 @@ #pragma once +#include "quantum.h" + #define XXX KC_NO // This a shortcut to help you visually see your layout. @@ -76,3 +78,23 @@ { XXX, XXX, XXX, XXX, XXX, XXX, XXX, K77, K78, K79, K7A, K7B, K7C, K7D, K7E, K7F } \ } + +#ifndef WINLOCK_DISABLED +// Define the TGUI key here so it is available in QMK configurator +enum K3x0_keycodes { +#ifdef VIA_ENABLE + KC_TGUI = USER00, // Toggle between GUI Lock or Unlock + NEW_SAFE_RANGE = SAFE_RANGE +#else + KC_TGUI = SAFE_RANGE, // Toggle between GUI Lock or Unlock + NEW_SAFE_RANGE +#endif +}; + +#undef SAFE_RANGE +#define SAFE_RANGE NEW_SAFE_RANGE +#endif /* WINLOCK_DISABLED */ + +/* Function Prototype */ +void off_all_leds(void); +void on_all_leds(void); diff --git a/keyboards/durgod/k3x0/keymaps/chimera/keymap.c b/keyboards/durgod/k310/keymaps/chimera/keymap.c similarity index 100% rename from keyboards/durgod/k3x0/keymaps/chimera/keymap.c rename to keyboards/durgod/k310/keymaps/chimera/keymap.c diff --git a/keyboards/durgod/k3x0/keymaps/chimera/readme.md b/keyboards/durgod/k310/keymaps/chimera/readme.md similarity index 100% rename from keyboards/durgod/k3x0/keymaps/chimera/readme.md rename to keyboards/durgod/k310/keymaps/chimera/readme.md diff --git a/keyboards/durgod/k3x0/keymaps/chimera/rules.mk b/keyboards/durgod/k310/keymaps/chimera/rules.mk similarity index 100% rename from keyboards/durgod/k3x0/keymaps/chimera/rules.mk rename to keyboards/durgod/k310/keymaps/chimera/rules.mk diff --git a/keyboards/durgod/k3x0/keymaps/default/keymap.json b/keyboards/durgod/k310/keymaps/default/keymap.json similarity index 98% rename from keyboards/durgod/k3x0/keymaps/default/keymap.json rename to keyboards/durgod/k310/keymaps/default/keymap.json index 507b5c909cb..bd017f0e9dd 100644 --- a/keyboards/durgod/k3x0/keymaps/default/keymap.json +++ b/keyboards/durgod/k310/keymaps/default/keymap.json @@ -1,5 +1,5 @@ { - "keyboard": "durgod/k3x0", + "keyboard": "durgod/k310/base", "keymap": "default", "layout": "LAYOUT_all", "layers": [ diff --git a/keyboards/durgod/k3x0/keymaps/default/readme.md b/keyboards/durgod/k310/keymaps/default/readme.md similarity index 100% rename from keyboards/durgod/k3x0/keymaps/default/readme.md rename to keyboards/durgod/k310/keymaps/default/readme.md diff --git a/keyboards/durgod/k3x0/keymaps/default_mac/keymap.json b/keyboards/durgod/k310/keymaps/default_mac/keymap.json similarity index 98% rename from keyboards/durgod/k3x0/keymaps/default_mac/keymap.json rename to keyboards/durgod/k310/keymaps/default_mac/keymap.json index acf221935e5..26f8aea7f17 100644 --- a/keyboards/durgod/k3x0/keymaps/default_mac/keymap.json +++ b/keyboards/durgod/k310/keymaps/default_mac/keymap.json @@ -1,5 +1,5 @@ { - "keyboard": "durgod/k3x0", + "keyboard": "durgod/k310/base", "keymap": "default_mac", "layout": "LAYOUT_all", "layers": [ diff --git a/keyboards/durgod/k3x0/keymaps/default_mac/readme.md b/keyboards/durgod/k310/keymaps/default_mac/readme.md similarity index 100% rename from keyboards/durgod/k3x0/keymaps/default_mac/readme.md rename to keyboards/durgod/k310/keymaps/default_mac/readme.md diff --git a/keyboards/durgod/k3x0/keymaps/typhon/keymap.c b/keyboards/durgod/k310/keymaps/typhon/keymap.c similarity index 100% rename from keyboards/durgod/k3x0/keymaps/typhon/keymap.c rename to keyboards/durgod/k310/keymaps/typhon/keymap.c diff --git a/keyboards/durgod/k3x0/keymaps/typhon/readme.md b/keyboards/durgod/k310/keymaps/typhon/readme.md similarity index 100% rename from keyboards/durgod/k3x0/keymaps/typhon/readme.md rename to keyboards/durgod/k310/keymaps/typhon/readme.md diff --git a/keyboards/durgod/k3x0/keymaps/typhon/rules.mk b/keyboards/durgod/k310/keymaps/typhon/rules.mk similarity index 100% rename from keyboards/durgod/k3x0/keymaps/typhon/rules.mk rename to keyboards/durgod/k310/keymaps/typhon/rules.mk diff --git a/keyboards/durgod/k3x0/keymaps/via/keymap.c b/keyboards/durgod/k310/keymaps/via/keymap.c similarity index 100% rename from keyboards/durgod/k3x0/keymaps/via/keymap.c rename to keyboards/durgod/k310/keymaps/via/keymap.c diff --git a/keyboards/durgod/k3x0/keymaps/via/readme.md b/keyboards/durgod/k310/keymaps/via/readme.md similarity index 100% rename from keyboards/durgod/k3x0/keymaps/via/readme.md rename to keyboards/durgod/k310/keymaps/via/readme.md diff --git a/keyboards/durgod/k310/keymaps/via/rules.mk b/keyboards/durgod/k310/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/durgod/k310/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/durgod/k310/readme.md b/keyboards/durgod/k310/readme.md index 234fcc875d6..1f39f79513c 100644 --- a/keyboards/durgod/k310/readme.md +++ b/keyboards/durgod/k310/readme.md @@ -1,4 +1,29 @@ -# K310 +# Taurus K310 -See: [K310](../k3x0/k310/readme.md) +This code is shared between all K310 variants. Currently only the base model with no backlight is supported. +This is a standard off-the-shelf Durgod Taurus K310 full-sized 104/105-key +keyboard without backlight. This supports both the ANSI and ISO variants. + +* Keyboard Maintainers: [dkjer](https://github.com/dkjer) and [tylert](https://github.com/tylert) +* Hardware Supported: [Durgod Taurus K310 board with STM32F070RBT6](https://www.durgod.com/page9?product_id=53&_l=en "Durgod.com Product Page") +* Hardware Availability: [Amazon.com](https://www.amazon.com/Durgod-Taurus-K310-Mechanical-Keyboard/dp/B07TXB4XF3) + +## Instructions + +### Build + +Make command example for this keyboard (after setting up your build environment): + + make durgod/k310/base:default + +Flashing example for this keyboard: + + make durgod/k310/base: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). + +### Initial Flash + +Instructions for Flashing from initial Stock Firmware: +* [Initial Flashing](../k3x0/readme.md#initial-flash) diff --git a/keyboards/durgod/k310/rules.mk b/keyboards/durgod/k310/rules.mk deleted file mode 100644 index e200539b260..00000000000 --- a/keyboards/durgod/k310/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER=durgod/k3x0/k310 diff --git a/keyboards/durgod/k3x0/config.h b/keyboards/durgod/k320/base/config.h similarity index 94% rename from keyboards/durgod/k3x0/config.h rename to keyboards/durgod/k320/base/config.h index 0f2e01cfc19..5f64a04f9a6 100644 --- a/keyboards/durgod/k3x0/config.h +++ b/keyboards/durgod/k320/base/config.h @@ -21,9 +21,11 @@ #define WAIT_US_TIMER GPTD3 -/* key matrix size (rows in specific keyboard variant) */ +/* key matrix size */ +#define MATRIX_ROWS 7 #define MATRIX_COLS 16 +#define MATRIX_ROW_PINS { A0, A1, A2, A3, A4, A5, A6 } #define MATRIX_COL_PINS { C4, C5, B0, B1, B2, B10, B11, B12, B13, B14, B15, C6, C7, C10, C11, C12 } /* COL2ROW, ROW2COL*/ diff --git a/keyboards/durgod/k320/base/readme.md b/keyboards/durgod/k320/base/readme.md deleted file mode 100644 index 8b74e28e54c..00000000000 --- a/keyboards/durgod/k320/base/readme.md +++ /dev/null @@ -1,6 +0,0 @@ -# Taurus K320 - -Base Model - no backlight leds - -See: [K320](../../k3x0/k320/base/readme.md) - diff --git a/keyboards/durgod/k320/base/rules.mk b/keyboards/durgod/k320/base/rules.mk index de33470cc00..37896a20ce1 100644 --- a/keyboards/durgod/k320/base/rules.mk +++ b/keyboards/durgod/k320/base/rules.mk @@ -1 +1,23 @@ -DEFAULT_FOLDER=durgod/k3x0/k320/base +# MCU name +# Actually F070, but close enough +MCU = STM32F072 +BOARD = DURGOD_STM32_F070 + +# Bootloader selection +BOOTLOADER = stm32-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = no # 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 = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output +LTO_ENABLE = yes + +LAYOUTS = tkl_ansi tkl_iso diff --git a/keyboards/durgod/k320/halconf.h b/keyboards/durgod/k320/halconf.h new file mode 100644 index 00000000000..d2a9d8c7c0b --- /dev/null +++ b/keyboards/durgod/k320/halconf.h @@ -0,0 +1,24 @@ +/* Copyright 2021 Simon Arlott + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define HAL_USE_PAL TRUE +#define PAL_USE_CALLBACKS TRUE + +#define HAL_USE_GPT TRUE + +#include_next diff --git a/keyboards/durgod/k3x0/k320/info.json b/keyboards/durgod/k320/info.json similarity index 71% rename from keyboards/durgod/k3x0/k320/info.json rename to keyboards/durgod/k320/info.json index 0386ef77094..4d239e05ace 100644 --- a/keyboards/durgod/k3x0/k320/info.json +++ b/keyboards/durgod/k320/info.json @@ -202,7 +202,7 @@ { "label": "\u2192", "x": 17.25, "y": 5.5 } ] }, - "LAYOUT_tkl": { + "LAYOUT_all": { "layout": [ { "label": "Esc", "x": 0, "y": 0 }, { "label": "F1", "x": 2, "y": 0 }, @@ -299,121 +299,6 @@ { "label": "\u2193", "x": 16.25, "y": 5.5 }, { "label": "\u2192", "x": 17.25, "y": 5.5 } ] - }, - "LAYOUT_all": { - "layout": [ - { "label": "Esc", "x": 0, "y": 0 }, - { "label": "F1", "x": 2, "y": 0 }, - { "label": "F2", "x": 3, "y": 0 }, - { "label": "F3", "x": 4, "y": 0 }, - { "label": "F4", "x": 5, "y": 0 }, - { "label": "F5", "x": 6.5, "y": 0 }, - { "label": "F6", "x": 7.5, "y": 0 }, - { "label": "F7", "x": 8.5, "y": 0 }, - { "label": "F8", "x": 9.5, "y": 0 }, - { "label": "F9", "x": 11, "y": 0 }, - { "label": "F10", "x": 12, "y": 0 }, - { "label": "F11", "x": 13, "y": 0 }, - { "label": "F12", "x": 14, "y": 0 }, - { "label": "PrtSc", "x": 15.25, "y": 0 }, - { "label": "Scroll Lock", "x": 16.25, "y": 0 }, - { "label": "Pause", "x": 17.25, "y": 0 }, - - { "label": "~", "x": 0, "y": 1.5 }, - { "label": "!", "x": 1, "y": 1.5 }, - { "label": "@", "x": 2, "y": 1.5 }, - { "label": "#", "x": 3, "y": 1.5 }, - { "label": "$", "x": 4, "y": 1.5 }, - { "label": "%", "x": 5, "y": 1.5 }, - { "label": "^", "x": 6, "y": 1.5 }, - { "label": "&", "x": 7, "y": 1.5 }, - { "label": "*", "x": 8, "y": 1.5 }, - { "label": "(", "x": 9, "y": 1.5 }, - { "label": ")", "x": 10, "y": 1.5 }, - { "label": "_", "x": 11, "y": 1.5 }, - { "label": "+", "x": 12, "y": 1.5 }, - { "label": "Backspace", "x": 13, "y": 1.5, "w": 2 }, - { "label": "Insert", "x": 15.25, "y": 1.5 }, - { "label": "Home", "x": 16.25, "y": 1.5 }, - { "label": "PgUp", "x": 17.25, "y": 1.5 }, - { "label": "Num Lock", "x": 18.5, "y": 1.5 }, - { "label": "/", "x": 19.5, "y": 1.5 }, - { "label": "*", "x": 20.5, "y": 1.5 }, - { "label": "-", "x": 21.5, "y": 1.5 }, - - { "label": "Tab", "x": 0, "y": 2.5, "w": 1.5 }, - { "label": "Q", "x": 1.5, "y": 2.5 }, - { "label": "W", "x": 2.5, "y": 2.5 }, - { "label": "E", "x": 3.5, "y": 2.5 }, - { "label": "R", "x": 4.5, "y": 2.5 }, - { "label": "T", "x": 5.5, "y": 2.5 }, - { "label": "Y", "x": 6.5, "y": 2.5 }, - { "label": "U", "x": 7.5, "y": 2.5 }, - { "label": "I", "x": 8.5, "y": 2.5 }, - { "label": "O", "x": 9.5, "y": 2.5 }, - { "label": "P", "x": 10.5, "y": 2.5 }, - { "label": "{", "x": 11.5, "y": 2.5 }, - { "label": "}", "x": 12.5, "y": 2.5 }, - { "label": "|", "x": 13.5, "y": 2.5, "w": 1.5 }, - { "label": "Delete", "x": 15.25, "y": 2.5 }, - { "label": "End", "x": 16.25, "y": 2.5 }, - { "label": "PgDn", "x": 17.25, "y": 2.5 }, - { "label": "7", "x": 18.5, "y": 2.5 }, - { "label": "8", "x": 19.5, "y": 2.5 }, - { "label": "9", "x": 20.5, "y": 2.5 }, - { "label": "+", "x": 21.5, "y": 2.5, "h": 2 }, - - { "label": "Caps Lock", "x": 0, "y": 3.5, "w": 1.75 }, - { "label": "A", "x": 1.75, "y": 3.5 }, - { "label": "S", "x": 2.75, "y": 3.5 }, - { "label": "D", "x": 3.75, "y": 3.5 }, - { "label": "F", "x": 4.75, "y": 3.5 }, - { "label": "G", "x": 5.75, "y": 3.5 }, - { "label": "H", "x": 6.75, "y": 3.5 }, - { "label": "J", "x": 7.75, "y": 3.5 }, - { "label": "K", "x": 8.75, "y": 3.5 }, - { "label": "L", "x": 9.75, "y": 3.5 }, - { "label": ":", "x": 10.75, "y": 3.5 }, - { "label": "\"", "x": 11.75, "y": 3.5 }, - { "label": "#", "x": 12.75, "y": 3.5 }, - { "label": "Enter", "x": 13.75, "y": 3.5, "w": 1.25 }, - { "label": "4", "x": 18.5, "y": 3.5 }, - { "label": "5", "x": 19.5, "y": 3.5 }, - { "label": "6", "x": 20.5, "y": 3.5 }, - - { "label": "Shift", "x": 0, "y": 4.5, "w": 1.25 }, - { "label": "\\", "x": 1.25, "y": 4.5 }, - { "label": "Z", "x": 2.25, "y": 4.5 }, - { "label": "X", "x": 3.25, "y": 4.5 }, - { "label": "C", "x": 4.25, "y": 4.5 }, - { "label": "V", "x": 5.25, "y": 4.5 }, - { "label": "B", "x": 6.25, "y": 4.5 }, - { "label": "N", "x": 7.25, "y": 4.5 }, - { "label": "M", "x": 8.25, "y": 4.5 }, - { "label": "<", "x": 9.25, "y": 4.5 }, - { "label": ">", "x": 10.25, "y": 4.5 }, - { "label": "?", "x": 11.25, "y": 4.5 }, - { "label": "Shift", "x": 12.25, "y": 4.5, "w": 2.75 }, - { "label": "\u2191", "x": 16.25, "y": 4.5 }, - { "label": "1", "x": 18.5, "y": 4.5 }, - { "label": "2", "x": 19.5, "y": 4.5 }, - { "label": "3", "x": 20.5, "y": 4.5 }, - { "label": "Enter", "x": 21.5, "y": 4.5, "h": 2 }, - - { "label": "Ctrl", "x": 0, "y": 5.5, "w": 1.25 }, - { "label": "Win", "x": 1.25, "y": 5.5, "w": 1.25 }, - { "label": "Alt", "x": 2.5, "y": 5.5, "w": 1.25 }, - { "x": 3.75, "y": 5.5, "w": 6.25 }, - { "label": "Alt", "x": 10, "y": 5.5, "w": 1.25 }, - { "label": "Fn", "x": 11.25, "y": 5.5, "w": 1.25 }, - { "label": "Menu", "x": 12.5, "y": 5.5, "w": 1.25 }, - { "label": "Ctrl", "x": 13.75, "y": 5.5, "w": 1.25 }, - { "label": "\u2190", "x": 15.25, "y": 5.5 }, - { "label": "\u2193", "x": 16.25, "y": 5.5 }, - { "label": "\u2192", "x": 17.25, "y": 5.5 }, - { "label": "0", "x": 18.5, "y": 5.5, "w": 2 }, - { "label": ".", "x": 20.5, "y": 5.5 } - ] } } } diff --git a/keyboards/durgod/k320/k320.c b/keyboards/durgod/k320/k320.c new file mode 100644 index 00000000000..3cb2fd7d67d --- /dev/null +++ b/keyboards/durgod/k320/k320.c @@ -0,0 +1,96 @@ +/* Copyright 2021 kuenhlee, Don Kjer, Tyler Tidman + * Copyright 2021 Simon Arlott + * + * 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 "k320.h" +#include +#include + +/* Private Functions */ +void off_all_leds(void) { +#ifdef LED_NUM_LOCK_PIN + writePinHigh(LED_NUM_LOCK_PIN); +#endif + writePinHigh(LED_CAPS_LOCK_PIN); + writePinHigh(LED_SCROLL_LOCK_PIN); + writePinHigh(LED_WIN_LOCK_PIN); + writePinHigh(LED_MR_LOCK_PIN); +} + +void on_all_leds(void) { +#ifdef LED_NUM_LOCK_PIN + writePinLow(LED_NUM_LOCK_PIN); +#endif + writePinLow(LED_CAPS_LOCK_PIN); + writePinLow(LED_SCROLL_LOCK_PIN); + writePinLow(LED_WIN_LOCK_PIN); + writePinLow(LED_MR_LOCK_PIN); +} + +/* WinLock and MR LEDs are non-standard. Need to override led init */ +void led_init_ports(void) { +#ifdef LED_NUM_LOCK_PIN + setPinOutput(LED_NUM_LOCK_PIN); +#endif + setPinOutput(LED_CAPS_LOCK_PIN); + setPinOutput(LED_SCROLL_LOCK_PIN); + setPinOutput(LED_WIN_LOCK_PIN); + setPinOutput(LED_MR_LOCK_PIN); + off_all_leds(); +} + +#ifndef WINLOCK_DISABLED +static bool win_key_locked = false; + +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case KC_TGUI: + if (record->event.pressed) { + // Toggle GUI lock on key press + win_key_locked = !win_key_locked; + writePin(LED_WIN_LOCK_PIN, !win_key_locked); + } + break; + case KC_LGUI: + if (win_key_locked) { return false; } + break; + } + return process_record_user(keycode, record); +} +#endif /* WINLOCK_DISABLED */ + +#ifndef HW_RESET_PIN_DISABLED +static void hardware_reset_cb(void *arg) { + chSysLockFromISR(); + bootloader_jump(); + chSysUnlockFromISR(); +} +#endif + +void keyboard_pre_init_kb(void) { + setPinInputHigh(HARDWARE_RESET_PIN); + +#ifndef HW_RESET_PIN_DISABLED + /* Jump to bootloader when the hardware reset button is pressed */ + palEnablePadEvent(PAL_PORT(HARDWARE_RESET_PIN), PAL_PAD(HARDWARE_RESET_PIN), PAL_EVENT_MODE_FALLING_EDGE); + palSetPadCallback(PAL_PORT(HARDWARE_RESET_PIN), PAL_PAD(HARDWARE_RESET_PIN), hardware_reset_cb, NULL); + + /* The interrupt is edge-triggered so check that it's not already pressed */ + if (!readPin(HARDWARE_RESET_PIN)) { + bootloader_jump(); + } +#endif +} diff --git a/keyboards/durgod/k3x0/k320/k320.h b/keyboards/durgod/k320/k320.h similarity index 76% rename from keyboards/durgod/k3x0/k320/k320.h rename to keyboards/durgod/k320/k320.h index 23b48d0f392..67f0f5f2147 100644 --- a/keyboards/durgod/k3x0/k320/k320.h +++ b/keyboards/durgod/k320/k320.h @@ -17,6 +17,8 @@ #pragma once +#include "quantum.h" + #define XXX KC_NO // This a shortcut to help you visually see your layout. @@ -56,7 +58,7 @@ } // This a shortcut to help you visually see your layout. -#define LAYOUT_tkl( \ +#define LAYOUT_all( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, K2E, K2F, K1F, \ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K3D, K3E, K3F, \ @@ -73,20 +75,23 @@ { XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, K6F } \ } -// This a shortcut to help you visually see your layout. -#define LAYOUT_all( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, K2E, K2F, K1F, K6A, K69, K68, K67, \ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K3D, K3E, K3F, K7A, K79, K78, K6B, \ - K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K4E, K7E, K7D, K7C, \ - K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4D, K4F, K6E, K6D, K6C, K7B, \ - K50, K51, K52, K56, K5A, K5B, K5C, K5D, K5E, K5F, K6F, K7F, K77 \ -) { \ - { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \ - { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, XXX, K1E, K1F }, \ - { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F }, \ - { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F }, \ - { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, XXX, K4D, K4E, K4F }, \ - { K50, K51, K52, XXX, XXX, XXX, K56, XXX, XXX, XXX, K5A, K5B, K5C, K5D, K5E, K5F }, \ - { XXX, XXX, XXX, XXX, XXX, XXX, XXX, K67, K68, K69, K6A, K6B, K6C, K6D, K6E, K6F } \ -} + +#ifndef WINLOCK_DISABLED +// Define the TGUI key here so it is available in QMK configurator +enum K3x0_keycodes { +#ifdef VIA_ENABLE + KC_TGUI = USER00, // Toggle between GUI Lock or Unlock + NEW_SAFE_RANGE = SAFE_RANGE +#else + KC_TGUI = SAFE_RANGE, // Toggle between GUI Lock or Unlock + NEW_SAFE_RANGE +#endif +}; + +#undef SAFE_RANGE +#define SAFE_RANGE NEW_SAFE_RANGE +#endif /* WINLOCK_DISABLED */ + +/* Function Prototype */ +void off_all_leds(void); +void on_all_leds(void); diff --git a/keyboards/durgod/k320/keymaps/default/keymap.json b/keyboards/durgod/k320/keymaps/default/keymap.json new file mode 100644 index 00000000000..3dab704bcdb --- /dev/null +++ b/keyboards/durgod/k320/keymaps/default/keymap.json @@ -0,0 +1,26 @@ +{ + "keyboard": "durgod/k320/base", + "keymap": "default", + "layout": "LAYOUT_all", + "layers": [ + [ + "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_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_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", "MO(1)", "KC_APP", "KC_RCTL", "KC_LEFT", "KC_DOWN", "KC_RGHT" + ], + [ + "_______", "KC_MPLY", "KC_MSTP", "KC_MPRV", "KC_MNXT", "KC_MUTE", "KC_VOLD", "KC_VOLU", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", + "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", + "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", + "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", + "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", + "_______", "KC_TGUI", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______" + ] + ], + "author": "tylert", + "notes": "", + "version": 1 +} diff --git a/keyboards/durgod/k320/keymaps/default/readme.md b/keyboards/durgod/k320/keymaps/default/readme.md new file mode 100644 index 00000000000..952b1912ce0 --- /dev/null +++ b/keyboards/durgod/k320/keymaps/default/readme.md @@ -0,0 +1,16 @@ +# The default keymap for Durgod Taurus K3X0 (K310, K320, etc.) without backlight + +Supports both ANSI and ISO layouts. + +Layer 0 : Standard layout (Windows) + +Layer 1 : Media control and Windows lock key +- Reusing Durgod's Original Media Control for Fn + F1 ~ Fn + F7 +- Fn + Windows to toggle Windows lock key functionality + +## Windows key lock + +You can hold down Fn + Windows key to disable the Windows key while in locked mode. +The 'Lock' LED indicates if the Windows key is locked. + +This is similar to the stock K310/K320 Windows key lock functionality. diff --git a/keyboards/durgod/k320/keymaps/default_mac/keymap.json b/keyboards/durgod/k320/keymaps/default_mac/keymap.json new file mode 100644 index 00000000000..a0e83def369 --- /dev/null +++ b/keyboards/durgod/k320/keymaps/default_mac/keymap.json @@ -0,0 +1,26 @@ +{ + "keyboard": "durgod/k310/base", + "keymap": "default_mac", + "layout": "LAYOUT_all", + "layers": [ + [ + "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_F14", "KC_F15", + "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_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_LALT", "KC_LGUI", "KC_SPC", "KC_RGUI", "KC_RALT", "MO(1)", "KC_RCTL", "KC_LEFT", "KC_DOWN", "KC_RGHT" + ], + [ + "KC_TRNS", "KC_MPLY", "KC_MSTP", "KC_MPRV", "KC_MNXT", "KC_MUTE", "KC_VOLD", "KC_VOLU", "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", + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS" + ] + ], + "author":"AlCutter", + "notes":"", + "version":1 +} diff --git a/keyboards/durgod/k320/keymaps/default_mac/readme.md b/keyboards/durgod/k320/keymaps/default_mac/readme.md new file mode 100644 index 00000000000..2765f14f906 --- /dev/null +++ b/keyboards/durgod/k320/keymaps/default_mac/readme.md @@ -0,0 +1,8 @@ +# The default (Mac) keymap for Durgod Taurus K320. + +Supports both ANSI and ISO layouts. + +Layer 0 : Standard 87/88 keys TKL layout (Mac) + +Layer 1 : Media control +- Reusing Durgod's Original Media Control for Fn + F1 ~ Fn + F7 diff --git a/keyboards/durgod/k3x0/k320/keymaps/kuenhlee/keymap.c b/keyboards/durgod/k320/keymaps/kuenhlee/keymap.c similarity index 100% rename from keyboards/durgod/k3x0/k320/keymaps/kuenhlee/keymap.c rename to keyboards/durgod/k320/keymaps/kuenhlee/keymap.c diff --git a/keyboards/durgod/k3x0/k320/keymaps/kuenhlee/readme.md b/keyboards/durgod/k320/keymaps/kuenhlee/readme.md similarity index 100% rename from keyboards/durgod/k3x0/k320/keymaps/kuenhlee/readme.md rename to keyboards/durgod/k320/keymaps/kuenhlee/readme.md diff --git a/keyboards/durgod/k3x0/k320/keymaps/kuenhlee/rules.mk b/keyboards/durgod/k320/keymaps/kuenhlee/rules.mk similarity index 100% rename from keyboards/durgod/k3x0/k320/keymaps/kuenhlee/rules.mk rename to keyboards/durgod/k320/keymaps/kuenhlee/rules.mk diff --git a/keyboards/durgod/k320/keymaps/via/keymap.c b/keyboards/durgod/k320/keymaps/via/keymap.c new file mode 100644 index 00000000000..993cbd8c227 --- /dev/null +++ b/keyboards/durgod/k320/keymaps/via/keymap.c @@ -0,0 +1,92 @@ +/* Copyright 2021 Maxime Coirault, Don Kjer, Tyler Tidman + * + * 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 + +// Layer shorthand +enum _layer { + _BASE, + _FN, + _LAYER3, + _LAYER4 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap _BASE: Base Layer (Default Layer) + * ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ + * │Esc│ │F1 │F2 │F3 │F4 │ │F5 │F6 │F7 │F8 │ │F9 │F10│F11│F12│ │PSc│Slk│Pse│ + * └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ + * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│ │Ins│Hom│PgU│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ │Del│End│PgD│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬────┤ └───┴───┴───┘ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ # │Entr│ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤ ┌───┐ + * │Shft│ \ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift │ │ ↑ │ + * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ + * │Ctrl│GUI │Alt │ │ Alt│Func│ App│Ctrl│ │ ← │ ↓ │ → │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ + */ + [_BASE] = LAYOUT_all( /* Base Layer */ + 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_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_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, MO(_FN), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + /* Keymap _FN: Function Layer + * ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ + * │ │ │Ply│Stp│Prv│Nxt│ │Mut│Vo+│Vo-│ │ │ │ │ │ │ │ │ │ │ + * └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬────┤ └───┴───┴───┘ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤ ┌───┐ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ + * │ │Lock│ │ │ │Func│ Sys│ │ │ │ │ │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ + */ + [_FN] = LAYOUT_all( /* Function Layer */ + _______, KC_MPLY, KC_MSTP, KC_MPRV, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_TGUI, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [_LAYER3] = LAYOUT_all( /* Layer 3 */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [_LAYER4] = LAYOUT_all( /* Layer 4 */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/durgod/k320/keymaps/via/readme.md b/keyboards/durgod/k320/keymaps/via/readme.md new file mode 100644 index 00000000000..ffa1c4ce0a2 --- /dev/null +++ b/keyboards/durgod/k320/keymaps/via/readme.md @@ -0,0 +1,6 @@ +# The via keymap for Durgod Taurus K310/K320. + +Layer 0 : Standard layout + +Layer 1 : Media control +- Reusing Durgod's Original Media Control for Fn + F1 ~ Fn + F7 diff --git a/keyboards/durgod/k320/keymaps/via/rules.mk b/keyboards/durgod/k320/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/durgod/k320/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/durgod/k320/readme.md b/keyboards/durgod/k320/readme.md index b8ca5b6da1a..ce5ae3211d3 100644 --- a/keyboards/durgod/k320/readme.md +++ b/keyboards/durgod/k320/readme.md @@ -1,4 +1,29 @@ -# K320 +# Taurus K320 -See: [K320](../k3x0/k320/readme.md) +This code is shared between all K320 variants. Currently only the base model with no backlight is supported. +This is a standard off-the-shelf Durgod Taurus K320 TKL (87/88-key) +keyboard without backlight. This supports both the ANSI and ISO variants. + +* Keyboard Maintainers: [dkjer](https://github.com/dkjer) and [tylert](https://github.com/tylert) +* Hardware Supported: [Durgod Taurus K320 board with STM32F070RBT6](https://www.durgod.com/page9?product_id=47&_l=en "Durgod.com Product Page") +* Hardware Availability: [Amazon.com](https://www.amazon.com/Durgod-Taurus-Corona-Mechanical-Keyboard/dp/B078H3WPHM) + +## Instructions + +### Build + +Make command example for this keyboard (after setting up your build environment): + + make durgod/k3x0/k320/base:default + +Flashing example for this keyboard: + + make durgod/k3x0/k320/base: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). + +### Initial Flash + +Instructions for Flashing from initial Stock Firmware: +* [Initial Flashing](../k3x0/readme.md#initial-flash) diff --git a/keyboards/durgod/k320/rules.mk b/keyboards/durgod/k320/rules.mk deleted file mode 100644 index d3f7b11945c..00000000000 --- a/keyboards/durgod/k320/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER=durgod/k3x0/k320 diff --git a/keyboards/durgod/k3x0/k310/base/readme.md b/keyboards/durgod/k3x0/k310/base/readme.md deleted file mode 100644 index 9f465404366..00000000000 --- a/keyboards/durgod/k3x0/k310/base/readme.md +++ /dev/null @@ -1,27 +0,0 @@ -# K310 - -This is a standard off-the-shelf Durgod Taurus K310 full-sized 104/105-key -keyboard without backlight. This supports both the ANSI and ISO variants. - -* Keyboard Maintainers: [dkjer](https://github.com/dkjer) and [tylert](https://github.com/tylert) -* Hardware Supported: Durgod Taurus K310 board with STM32F070RBT6 -* Hardware Availability: K310 https://www.durgod.com/page9?product_id=53&_l=en - -## Instructions - -### Build - -Make command example for this keyboard (after setting up your build environment): - - make durgod/k310:default - -Flashing example for this keyboard: - - make durgod/k310: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). - -### Initial Flash - -Instructions for Flashing from initial Stock Firmware: -* [Initial Flashing](../../readme.md#initial-flash) diff --git a/keyboards/durgod/k3x0/k310/base/rules.mk b/keyboards/durgod/k3x0/k310/base/rules.mk deleted file mode 100644 index 323c12fc6e0..00000000000 --- a/keyboards/durgod/k3x0/k310/base/rules.mk +++ /dev/null @@ -1 +0,0 @@ -# see common rules.mk diff --git a/keyboards/durgod/k3x0/k310/readme.md b/keyboards/durgod/k3x0/k310/readme.md deleted file mode 100644 index bee903b88f7..00000000000 --- a/keyboards/durgod/k3x0/k310/readme.md +++ /dev/null @@ -1,10 +0,0 @@ -# Taurus K310 - -This code is shared between all K310 variants. Currently only the base model with no backlight is supported. - -* Keyboard Maintainers: [dkjer](https://github.com/dkjer) and [tylert](https://github.com/tylert) -* Hardware Supported: Durgod Taurus K310 board with STM32F070RBT6 -* Hardware Availability: Base https://www.durgod.com/page9?product_id=53&_l=en - -Instructions for building the K310 firmware can be found here: -* [No Backlight](base/readme.md) diff --git a/keyboards/durgod/k3x0/k310/rules.mk b/keyboards/durgod/k3x0/k310/rules.mk deleted file mode 100644 index 2df1aff9c80..00000000000 --- a/keyboards/durgod/k3x0/k310/rules.mk +++ /dev/null @@ -1,4 +0,0 @@ -# Default to the base model -DEFAULT_FOLDER=durgod/k3x0/k310/base - -LAYOUTS = fullsize_ansi fullsize_iso diff --git a/keyboards/durgod/k3x0/k320/base/readme.md b/keyboards/durgod/k3x0/k320/base/readme.md deleted file mode 100644 index 8f46cc122ce..00000000000 --- a/keyboards/durgod/k3x0/k320/base/readme.md +++ /dev/null @@ -1,27 +0,0 @@ -# K320 - -This is a standard off-the-shelf Durgod Taurus K320 TKL (87/88-key) -keyboard without backlight. This supports both the ANSI and ISO variants. - -* Keyboard Maintainers: [dkjer](https://github.com/dkjer) and [tylert](https://github.com/tylert) -* Hardware Supported: Durgod Taurus K320 board with STM32F070RBT6 -* Hardware Availability: https://www.durgod.com/page9?product_id=47&_l=en - -## Instructions - -### Build - -Make command example for this keyboard (after setting up your build environment): - - make durgod/k320:default - -Flashing example for this keyboard: - - make durgod/k320: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). - -### Initial Flash - -Instructions for Flashing from initial Stock Firmware: -* [Initial Flashing](../../readme.md#initial-flash) diff --git a/keyboards/durgod/k3x0/k320/base/rules.mk b/keyboards/durgod/k3x0/k320/base/rules.mk deleted file mode 100644 index 323c12fc6e0..00000000000 --- a/keyboards/durgod/k3x0/k320/base/rules.mk +++ /dev/null @@ -1 +0,0 @@ -# see common rules.mk diff --git a/keyboards/durgod/k3x0/k320/readme.md b/keyboards/durgod/k3x0/k320/readme.md deleted file mode 100644 index e584bd18746..00000000000 --- a/keyboards/durgod/k3x0/k320/readme.md +++ /dev/null @@ -1,10 +0,0 @@ -# Taurus K320 - -This code is shared between all K320 variants. Currently only the base model with no backlight is supported. - -* Keyboard Maintainers: [dkjer](https://github.com/dkjer) and [tylert](https://github.com/tylert) -* Hardware Supported: Durgod Taurus K320 board with STM32F070RBT6 -* Hardware Availability: Base https://www.amazon.com/Durgod-Taurus-Corona-Mechanical-Keyboard/dp/B078H3WPHM - -Instructions for building the K320 firmware can be found here: -* [No Backlight](base/readme.md) diff --git a/keyboards/durgod/k3x0/k320/rules.mk b/keyboards/durgod/k3x0/k320/rules.mk deleted file mode 100644 index fabc0854ff3..00000000000 --- a/keyboards/durgod/k3x0/k320/rules.mk +++ /dev/null @@ -1,4 +0,0 @@ -# Default to the base model -DEFAULT_FOLDER=durgod/k3x0/k320/base - -LAYOUTS = tkl_ansi tkl_iso diff --git a/keyboards/durgod/k3x0/k3x0.h b/keyboards/durgod/k3x0/k3x0.h deleted file mode 100644 index 93740a5512f..00000000000 --- a/keyboards/durgod/k3x0/k3x0.h +++ /dev/null @@ -1,47 +0,0 @@ -/* Copyright 2021 kuenhlee, Don Kjer, Tyler Tidman - * Copyright 2021 Simon Arlott - * - * 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" - -#ifdef KEYBOARD_durgod_k3x0_k310 -# include "k310.h" -#elif KEYBOARD_durgod_k3x0_k320 -# include "k320.h" -#endif - -#ifndef WINLOCK_DISABLED -// Define the TGUI key here so it is available in QMK configurator -enum K3x0_keycodes { -#ifdef VIA_ENABLE - KC_TGUI = USER00, // Toggle between GUI Lock or Unlock - NEW_SAFE_RANGE = SAFE_RANGE -#else - KC_TGUI = SAFE_RANGE, // Toggle between GUI Lock or Unlock - NEW_SAFE_RANGE -#endif -}; - -#undef SAFE_RANGE -#define SAFE_RANGE NEW_SAFE_RANGE -#endif /* WINLOCK_DISABLED */ - -/* Function Prototype */ -void off_all_leds(void); -void on_all_leds(void); - diff --git a/keyboards/durgod/k3x0/readme.md b/keyboards/durgod/k3x0/readme.md index 62bb97d7ec3..90e9602e717 100644 --- a/keyboards/durgod/k3x0/readme.md +++ b/keyboards/durgod/k3x0/readme.md @@ -4,9 +4,12 @@ This K3X0 code is shared between both the ANSI and ISO variants of both the K310 full-sized 104/105-key and K320 TKL 87/88-key keyboards. * Keyboard Maintainers: [dkjer](https://github.com/dkjer) and [tylert](https://github.com/tylert) -* Hardware Supported: Durgod Taurus K310 or K320 board with STM32F070RBT6 -* Hardware Availability: K310 https://www.durgod.com/page9?product_id=53&_l=en - and K320 https://www.durgod.com/page9?product_id=47&_l=en +* Hardware Supported: + * [Durgod Taurus K310 with STM32F070RBT6](https://www.durgod.com/page9?product_id=53&_l=en "Taurus K310 Product Page | Durgod.com") + * [Durgod Taurus K320 with STM32F070RBT6](https://www.durgod.com/page9?product_id=47&_l=en "Taurus K320 Product Page | Durgod.com") +* Hardware Availability: + * [K310 on Amazon.com](https://www.amazon.com/Durgod-Taurus-K310-Mechanical-Keyboard/dp/B07TXB4XF3) + * [K320 on Amazon.com](https://www.amazon.com/Durgod-Taurus-Corona-Mechanical-Keyboard/dp/B078H3WPHM) ## Instructions diff --git a/keyboards/dztech/dz60rgb/dz60rgb.c b/keyboards/dztech/dz60rgb/dz60rgb.c index 0a7a2adfc64..cfefd2833dd 100644 --- a/keyboards/dztech/dz60rgb/dz60rgb.c +++ b/keyboards/dztech/dz60rgb/dz60rgb.c @@ -93,20 +93,13 @@ led_config_t g_led_config = { } }; -void suspend_power_down_kb(void) { - rgb_matrix_set_suspend_state(true); - suspend_power_down_user(); -} - -void suspend_wakeup_init_kb(void) { - rgb_matrix_set_suspend_state(false); - suspend_wakeup_init_user(); -} - -__attribute__ ((weak)) -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_kb(void) { + if (!rgb_matrix_indicators_user()) { + return false; + } if (host_keyboard_led_state().caps_lock) { rgb_matrix_set_color(40, 0xFF, 0xFF, 0xFF); } + return true; } #endif diff --git a/keyboards/dztech/dz60rgb/keymaps/matthewrobo/keymap.c b/keyboards/dztech/dz60rgb/keymaps/matthewrobo/keymap.c index 287496e17ff..3552864e8cf 100644 --- a/keyboards/dztech/dz60rgb/keymaps/matthewrobo/keymap.c +++ b/keyboards/dztech/dz60rgb/keymaps/matthewrobo/keymap.c @@ -91,8 +91,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ }; -void rgb_matrix_indicators_user(void) -{ +bool rgb_matrix_indicators_user(void) { uint8_t this_led = host_keyboard_leds(); if (!g_suspend_state && rgb_matrix_config.enable) { @@ -218,6 +217,7 @@ void rgb_matrix_indicators_user(void) if (this_led & (1 << USB_LED_CAPS_LOCK)) { rgb_matrix_set_color(40, 0xFF, 0xFF, 0xFF); } + return false; } void matrix_init_user(void) diff --git a/keyboards/dztech/dz60rgb/keymaps/mekanist/keymap.c b/keyboards/dztech/dz60rgb/keymaps/mekanist/keymap.c index d2905af49fe..efed4494ef0 100644 --- a/keyboards/dztech/dz60rgb/keymaps/mekanist/keymap.c +++ b/keyboards/dztech/dz60rgb/keymaps/mekanist/keymap.c @@ -57,8 +57,7 @@ void rgb_matrix_layer_helper (uint8_t red, uint8_t green, uint8_t blue) { } } -void rgb_matrix_indicators_user(void) -{ +bool rgb_matrix_indicators_user(void) { uint8_t this_led = host_keyboard_leds(); if (!g_suspend_state && rgb_matrix_config.enable) { @@ -151,6 +150,7 @@ void rgb_matrix_indicators_user(void) rgb_matrix_set_color(62, 0x00, 0x00, 0x00); break; } + return false; } diff --git a/keyboards/dztech/dz60rgb/keymaps/perseid/keymap.c b/keyboards/dztech/dz60rgb/keymaps/perseid/keymap.c index 191789199ac..841617e2c92 100644 --- a/keyboards/dztech/dz60rgb/keymaps/perseid/keymap.c +++ b/keyboards/dztech/dz60rgb/keymaps/perseid/keymap.c @@ -34,8 +34,7 @@ void rgb_matrix_layer_helper (uint8_t red, uint8_t green, uint8_t blue) { } } -void rgb_matrix_indicators_user(void) -{ +bool rgb_matrix_indicators_user(void) { if (!g_suspend_state) { switch (get_highest_layer(layer_state)) { case _QWERTY: @@ -113,6 +112,7 @@ void rgb_matrix_indicators_user(void) rgb_matrix_set_color(62, 0x00, 0x00, 0x00); break; } + return false; } diff --git a/keyboards/dztech/dz60rgb/keymaps/piv3rt/keymap.c b/keyboards/dztech/dz60rgb/keymaps/piv3rt/keymap.c index b6644ed14b0..4b4a4e2877d 100644 --- a/keyboards/dztech/dz60rgb/keymaps/piv3rt/keymap.c +++ b/keyboards/dztech/dz60rgb/keymaps/piv3rt/keymap.c @@ -157,7 +157,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return true; }; -void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { +bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { led_t led_state = host_keyboard_led_state(); if (led_state.caps_lock) { @@ -227,4 +227,5 @@ void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { RGB_MATRIX_INDICATOR_SET_COLOR(25, 0x33, 0x66, 0x99); RGB_MATRIX_INDICATOR_SET_COLOR(26, 0x33, 0x66, 0x99); } + return false; } diff --git a/keyboards/dztech/dz60rgb/keymaps/xunz/keymap.c b/keyboards/dztech/dz60rgb/keymaps/xunz/keymap.c index 1de0d2632dd..25b6e4f4725 100644 --- a/keyboards/dztech/dz60rgb/keymaps/xunz/keymap.c +++ b/keyboards/dztech/dz60rgb/keymaps/xunz/keymap.c @@ -4,34 +4,19 @@ #define _LAYER2 2 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_LAYER0] = LAYOUT(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_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, RSFT_T(KC_SLSH), KC_UP, LT(2,KC_DEL), + [_LAYER0] = LAYOUT(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_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, RSFT_T(KC_SLSH), KC_UP, LT(2,KC_DEL), KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT), [_LAYER1] = LAYOUT(KC_TRNS, 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_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, QK_BOOT, - KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGUP, EEP_RST, + KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, QK_BOOT, + KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGUP, EEP_RST, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_PGDN, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_CALC, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT), - [_LAYER2] = LAYOUT(KC_TRNS, KC_P1, KC_P2, KC_P3, KC_P4, KC_P5, KC_P6, KC_P7, KC_P8, KC_P9, KC_P0, KC_PMNS, KC_PPLS, KC_DEL, - KC_TRNS, RGB_TOG, KC_TRNS, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_MOD, KC_TRNS, KC_PSLS, KC_PAST, QK_BOOT, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SPI, RGB_SPD, KC_TRNS, KC_TRNS, EEP_RST, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PDOT, KC_TRNS, KC_TRNS, KC_TRNS, + [_LAYER2] = LAYOUT(KC_TRNS, KC_P1, KC_P2, KC_P3, KC_P4, KC_P5, KC_P6, KC_P7, KC_P8, KC_P9, KC_P0, KC_PMNS, KC_PPLS, KC_DEL, + KC_TRNS, RGB_TOG, KC_TRNS, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_MOD, KC_TRNS, KC_PSLS, KC_PAST, QK_BOOT, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SPI, RGB_SPD, KC_TRNS, KC_TRNS, EEP_RST, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PDOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) }; - -void rgb_matrix_indicators_user(void) { -} - -void matrix_init_user(void) { - //user initialization -} - -void matrix_scan_user(void) { - //user matrix -} - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - return true; - } diff --git a/keyboards/dztech/dz60rgb/v1/config.h b/keyboards/dztech/dz60rgb/v1/config.h index 5933d23ea36..92ee0f31aeb 100644 --- a/keyboards/dztech/dz60rgb/v1/config.h +++ b/keyboards/dztech/dz60rgb/v1/config.h @@ -24,7 +24,6 @@ #define DEBOUNCE 3 #ifdef RGB_MATRIX_ENABLE -# 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_KEYPRESSES # define RGB_MATRIX_LED_PROCESS_LIMIT 4 diff --git a/keyboards/dztech/dz60rgb/v2/config.h b/keyboards/dztech/dz60rgb/v2/config.h index 296e68a8b4b..57749b4e553 100644 --- a/keyboards/dztech/dz60rgb/v2/config.h +++ b/keyboards/dztech/dz60rgb/v2/config.h @@ -24,7 +24,6 @@ #define DEBOUNCE 3 #ifdef RGB_MATRIX_ENABLE -# 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_KEYPRESSES # define RGB_MATRIX_FRAMEBUFFER_EFFECTS diff --git a/keyboards/dztech/dz60rgb/v2_1/config.h b/keyboards/dztech/dz60rgb/v2_1/config.h index ffbc547d38f..f7381175c85 100644 --- a/keyboards/dztech/dz60rgb/v2_1/config.h +++ b/keyboards/dztech/dz60rgb/v2_1/config.h @@ -40,7 +40,6 @@ #define DEBOUNCE 3 #ifdef RGB_MATRIX_ENABLE -# 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_KEYPRESSES # define RGB_MATRIX_FRAMEBUFFER_EFFECTS diff --git a/keyboards/dztech/dz60rgb_ansi/dz60rgb_ansi.c b/keyboards/dztech/dz60rgb_ansi/dz60rgb_ansi.c index ea4fa429acf..475c9cc4b56 100644 --- a/keyboards/dztech/dz60rgb_ansi/dz60rgb_ansi.c +++ b/keyboards/dztech/dz60rgb_ansi/dz60rgb_ansi.c @@ -91,20 +91,13 @@ led_config_t g_led_config = { } }; -void suspend_power_down_kb(void) { - rgb_matrix_set_suspend_state(true); - suspend_power_down_user(); -} - -void suspend_wakeup_init_kb(void) { - rgb_matrix_set_suspend_state(false); - suspend_wakeup_init_user(); -} - -__attribute__ ((weak)) -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_kb(void) { + if (!rgb_matrix_indicators_user()) { + return false; + } if (host_keyboard_led_state().caps_lock) { rgb_matrix_set_color(40, 0xFF, 0xFF, 0xFF); } + return true; } #endif diff --git a/keyboards/dztech/dz60rgb_ansi/keymaps/kuru/keymap.c b/keyboards/dztech/dz60rgb_ansi/keymaps/kuru/keymap.c index 20eaed8247c..7c6dd504476 100644 --- a/keyboards/dztech/dz60rgb_ansi/keymaps/kuru/keymap.c +++ b/keyboards/dztech/dz60rgb_ansi/keymaps/kuru/keymap.c @@ -84,7 +84,7 @@ void highlight_layer3(void){ rgb_matrix_set_color(46, 0x00, 0x99, 0x00); } -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_user(void) { uint8_t this_led = host_keyboard_leds(); if (!g_suspend_state) { switch (get_highest_layer(layer_state)) { @@ -97,4 +97,5 @@ void rgb_matrix_indicators_user(void) { if ( this_led & (1<. */ - + #include "dz64rgb.h" #ifdef RGB_MATRIX_ENABLE @@ -64,7 +64,7 @@ const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { { 0, B_14, A_14, C_14 }, { 0, B_13, A_13, C_13 }, - { 0, B_12, A_12, C_12 }, + { 0, B_12, A_12, C_12 }, { 0, B_11, A_11, C_11 }, { 0, B_10, A_10, C_10 }, { 0, B_9, A_9, C_9 }, @@ -111,11 +111,13 @@ led_config_t g_led_config = { }; -__attribute__ ((weak)) -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_kb(void) { + if (!rgb_matrix_indicators_user()) { + return false; + } if (host_keyboard_led_state().caps_lock) { rgb_matrix_set_color(40, 0xFF, 0xFF, 0xFF); } + return true; } #endif - diff --git a/keyboards/dztech/dz65rgb/keymaps/catrielmuller/keymap.c b/keyboards/dztech/dz65rgb/keymaps/catrielmuller/keymap.c index b85b582b391..2b455282084 100644 --- a/keyboards/dztech/dz65rgb/keymaps/catrielmuller/keymap.c +++ b/keyboards/dztech/dz65rgb/keymaps/catrielmuller/keymap.c @@ -230,7 +230,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), }; -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_user(void) { // CapsLock Light if (IS_HOST_LED_ON(USB_LED_CAPS_LOCK)) { @@ -239,4 +239,5 @@ void rgb_matrix_indicators_user(void) { // Show Selected Layer rgb_matrix_set_color(layers_leds_map[get_highest_layer(layer_state)], MAIN_COLOR[0], MAIN_COLOR[1], MAIN_COLOR[2]); + return false; } diff --git a/keyboards/dztech/dz65rgb/keymaps/drootz/keymap.c b/keyboards/dztech/dz65rgb/keymaps/drootz/keymap.c index 2ebbddcef77..8b9002f5218 100644 --- a/keyboards/dztech/dz65rgb/keymaps/drootz/keymap.c +++ b/keyboards/dztech/dz65rgb/keymaps/drootz/keymap.c @@ -134,7 +134,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //**************** MATRIX SCANS *********************// -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_user(void) { #ifdef RGB_MATRIX_ENABLE @@ -192,6 +192,7 @@ void rgb_matrix_indicators_user(void) { } #endif /* RGB_MATRIX */ + return false; } bool process_record_user(uint16_t keycode, keyrecord_t *record) { diff --git a/keyboards/dztech/dz65rgb/keymaps/matthewrobo/keymap.c b/keyboards/dztech/dz65rgb/keymaps/matthewrobo/keymap.c index 0c7bfbbb487..c6d42c777ef 100644 --- a/keyboards/dztech/dz65rgb/keymaps/matthewrobo/keymap.c +++ b/keyboards/dztech/dz65rgb/keymaps/matthewrobo/keymap.c @@ -82,8 +82,7 @@ CPS, A, S, D, F, G, H, J, K, L, COL, QOT, RETURN, + SFT, Z, X, C, V, B, N, M, COM, DOT, SLS, SHIFT, UP, 0 CTL, GUI, ALT, SPACEBAR, ALT, FN, CTL, LFT, DWN, RIT */ -void rgb_matrix_indicators_user(void) -{ +bool rgb_matrix_indicators_user(void) { if (IS_HOST_LED_ON(USB_LED_CAPS_LOCK)) { rgb_matrix_set_color(8, 0xFF, 0xFF, 0xFF); } @@ -208,16 +207,7 @@ void rgb_matrix_indicators_user(void) break; } } -} - -void matrix_init_user(void) -{ - //user initialization -} - -void matrix_scan_user(void) -{ - //user matrix + return false; } bool process_record_user(uint16_t keycode, keyrecord_t* record) diff --git a/keyboards/dztech/dz65rgb/keymaps/yuannan/keymap.c b/keyboards/dztech/dz65rgb/keymaps/yuannan/keymap.c index 5baf32a7e4f..61cb875b8a1 100644 --- a/keyboards/dztech/dz65rgb/keymaps/yuannan/keymap.c +++ b/keyboards/dztech/dz65rgb/keymaps/yuannan/keymap.c @@ -1,17 +1,17 @@ /* Copyright 2021 Yuannan (https://github.com/yuannan) - * - * 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 . + * + * 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 @@ -169,7 +169,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record){ } } break; - } + } return true; }; @@ -179,20 +179,21 @@ RGB get_inverted_RGB(void){ current_HSV.h = 255 - current_HSV.h; current_HSV.s = 255; current_HSV.v = 255; - + return hsv_to_rgb(current_HSV); } // Move Caps indicator to the ctrl key where it belongs -void rgb_matrix_indicators_user(void){ +bool rgb_matrix_indicators_user(void){ RGB inverted_RGB = get_inverted_RGB(); if (host_keyboard_led_state().caps_lock){ rgb_matrix_set_color(58, inverted_RGB.r, inverted_RGB.g, inverted_RGB.b); } + return false; } // show coloured indicator for layers with a keybind -void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max){ +bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max){ uint8_t layer = get_highest_layer(layer_state); if (layer > 0) { RGB inverted_RGB = get_inverted_RGB(); @@ -207,4 +208,5 @@ void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max){ } } } + return false; } diff --git a/keyboards/dztech/dz65rgb/v1/config.h b/keyboards/dztech/dz65rgb/v1/config.h index 09ae7b81f52..c28bcdecc27 100644 --- a/keyboards/dztech/dz65rgb/v1/config.h +++ b/keyboards/dztech/dz65rgb/v1/config.h @@ -39,7 +39,6 @@ # define RGB_MATRIX_LED_PROCESS_LIMIT 4 # define RGB_MATRIX_LED_FLUSH_LIMIT 26 # define DEBOUNCE 3 -# 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_KEYPRESSES // RGB Matrix Animation modes. Explicitly enabled diff --git a/keyboards/dztech/dz65rgb/v1/v1.c b/keyboards/dztech/dz65rgb/v1/v1.c index e0f12bb6cd8..0e52a3f9114 100644 --- a/keyboards/dztech/dz65rgb/v1/v1.c +++ b/keyboards/dztech/dz65rgb/v1/v1.c @@ -114,10 +114,13 @@ led_config_t g_led_config = { }; -__attribute__ ((weak)) -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_kb(void) { + if (!rgb_matrix_indicators_user()) { + return false; + } if (host_keyboard_led_state().caps_lock) { rgb_matrix_set_color(30, 0xFF, 0xFF, 0xFF); } + return true; } #endif diff --git a/keyboards/dztech/dz65rgb/v2/config.h b/keyboards/dztech/dz65rgb/v2/config.h index 043796456df..a470a7badd2 100644 --- a/keyboards/dztech/dz65rgb/v2/config.h +++ b/keyboards/dztech/dz65rgb/v2/config.h @@ -39,7 +39,6 @@ # define RGB_MATRIX_LED_PROCESS_LIMIT 4 # define RGB_MATRIX_LED_FLUSH_LIMIT 26 # define DEBOUNCE 3 -# 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_KEYPRESSES // RGB Matrix Animation modes. Explicitly enabled diff --git a/keyboards/dztech/dz65rgb/v2/v2.c b/keyboards/dztech/dz65rgb/v2/v2.c index f9833b2142e..43629e74da1 100644 --- a/keyboards/dztech/dz65rgb/v2/v2.c +++ b/keyboards/dztech/dz65rgb/v2/v2.c @@ -114,10 +114,13 @@ led_config_t g_led_config = { }; -__attribute__ ((weak)) -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_kb(void) { + if (!rgb_matrix_indicators_user()) { + return false; + } if (host_keyboard_led_state().caps_lock) { rgb_matrix_set_color(30, 0xFF, 0xFF, 0xFF); } + return true; } #endif diff --git a/keyboards/dztech/dz65rgb/v3/config.h b/keyboards/dztech/dz65rgb/v3/config.h index 04c813cad5d..9925c1bf6c7 100755 --- a/keyboards/dztech/dz65rgb/v3/config.h +++ b/keyboards/dztech/dz65rgb/v3/config.h @@ -31,7 +31,6 @@ #define DEBOUNCE 5 #ifdef RGB_MATRIX_ENABLE -#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 USB_SUSPEND_WAKEUP_DELAY 5000 # define RGB_MATRIX_KEYPRESSES diff --git a/keyboards/dztech/dz65rgb/v3/v3.c b/keyboards/dztech/dz65rgb/v3/v3.c index c3562c7c5d9..45cc5cb3bd8 100755 --- a/keyboards/dztech/dz65rgb/v3/v3.c +++ b/keyboards/dztech/dz65rgb/v3/v3.c @@ -21,77 +21,77 @@ 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}, - {0, CS21_SW4, CS20_SW4, CS19_SW4}, + {0, CS21_SW3, CS20_SW3, CS19_SW3}, + {0, CS21_SW4, CS20_SW4, CS19_SW4}, {0, CS21_SW5, CS20_SW5, CS19_SW5}, {0, CS21_SW6, CS20_SW6, CS19_SW6}, - {0, CS21_SW7, CS20_SW7, CS19_SW7}, - {0, CS21_SW8, CS20_SW8, CS19_SW8}, - {0, CS24_SW1, CS23_SW1, CS22_SW1}, - {0, CS24_SW2, CS23_SW2, CS22_SW2}, + {0, CS21_SW7, CS20_SW7, CS19_SW7}, + {0, CS21_SW8, CS20_SW8, CS19_SW8}, + {0, CS24_SW1, CS23_SW1, CS22_SW1}, + {0, CS24_SW2, CS23_SW2, CS22_SW2}, {0, CS24_SW3, CS23_SW3, CS22_SW3}, - {0, CS24_SW4, CS23_SW4, CS22_SW4}, + {0, CS24_SW4, CS23_SW4, CS22_SW4}, {0, CS24_SW5, CS23_SW5, CS22_SW5}, {0, CS24_SW6, CS23_SW6, CS22_SW6}, - {0, CS24_SW7, CS23_SW7, CS22_SW7}, - - {0, CS15_SW1, CS14_SW1, CS13_SW1}, + {0, CS24_SW7, CS23_SW7, CS22_SW7}, + + {0, CS15_SW1, CS14_SW1, CS13_SW1}, {0, CS15_SW2, CS14_SW2, CS13_SW2}, {0, CS15_SW3, CS14_SW3, CS13_SW3}, {0, CS15_SW4, CS14_SW4, CS13_SW4}, {0, CS15_SW5, CS14_SW5, CS13_SW5}, {0, CS15_SW6, CS14_SW6, CS13_SW6}, {0, CS15_SW7, CS14_SW7, CS13_SW7}, - {0, CS15_SW8, CS14_SW8, CS13_SW8}, - {0, CS30_SW1, CS29_SW1, CS28_SW1}, + {0, CS15_SW8, CS14_SW8, CS13_SW8}, + {0, CS30_SW1, CS29_SW1, CS28_SW1}, {0, CS30_SW2, CS29_SW2, CS28_SW2}, {0, CS30_SW3, CS29_SW3, CS28_SW3}, {0, CS30_SW4, CS29_SW4, CS28_SW4}, {0, CS30_SW5, CS29_SW5, CS28_SW5}, {0, CS30_SW6, CS29_SW6, CS28_SW6}, - {0, CS30_SW7, CS29_SW7, CS28_SW7}, - - {0, CS12_SW1, CS11_SW1, CS10_SW1}, - {0, CS12_SW2, CS11_SW2, CS10_SW2}, - {0, CS12_SW3, CS11_SW3, CS10_SW3}, - {0, CS12_SW4, CS11_SW4, CS10_SW4}, - {0, CS12_SW5, CS11_SW5, CS10_SW5}, - {0, CS12_SW6, CS11_SW6, CS10_SW6}, - {0, CS12_SW7, CS11_SW7, CS10_SW7}, - {0, CS12_SW8, CS11_SW8, CS10_SW8}, - {0, CS33_SW1, CS32_SW1, CS31_SW1}, - {0, CS33_SW2, CS32_SW2, CS31_SW2}, - {0, CS33_SW3, CS32_SW3, CS31_SW3}, - {0, CS33_SW4, CS32_SW4, CS31_SW4}, - {0, CS33_SW5, CS32_SW5, CS31_SW5}, - {0, CS33_SW7, CS32_SW7, CS31_SW7}, - - {0, CS9_SW1, CS8_SW1, CS7_SW1}, - {0, CS9_SW2, CS8_SW2, CS7_SW2}, - {0, CS9_SW3, CS8_SW3, CS7_SW3}, - {0, CS9_SW4, CS8_SW4, CS7_SW4}, - {0, CS9_SW5, CS8_SW5, CS7_SW5}, - {0, CS9_SW6, CS8_SW6, CS7_SW6}, - {0, CS9_SW7, CS8_SW7, CS7_SW7}, - {0, CS9_SW8, CS8_SW8, CS7_SW8}, + {0, CS30_SW7, CS29_SW7, CS28_SW7}, + + {0, CS12_SW1, CS11_SW1, CS10_SW1}, + {0, CS12_SW2, CS11_SW2, CS10_SW2}, + {0, CS12_SW3, CS11_SW3, CS10_SW3}, + {0, CS12_SW4, CS11_SW4, CS10_SW4}, + {0, CS12_SW5, CS11_SW5, CS10_SW5}, + {0, CS12_SW6, CS11_SW6, CS10_SW6}, + {0, CS12_SW7, CS11_SW7, CS10_SW7}, + {0, CS12_SW8, CS11_SW8, CS10_SW8}, + {0, CS33_SW1, CS32_SW1, CS31_SW1}, + {0, CS33_SW2, CS32_SW2, CS31_SW2}, + {0, CS33_SW3, CS32_SW3, CS31_SW3}, + {0, CS33_SW4, CS32_SW4, CS31_SW4}, + {0, CS33_SW5, CS32_SW5, CS31_SW5}, + {0, CS33_SW7, CS32_SW7, CS31_SW7}, + + {0, CS9_SW1, CS8_SW1, CS7_SW1}, + {0, CS9_SW2, CS8_SW2, CS7_SW2}, + {0, CS9_SW3, CS8_SW3, CS7_SW3}, + {0, CS9_SW4, CS8_SW4, CS7_SW4}, + {0, CS9_SW5, CS8_SW5, CS7_SW5}, + {0, CS9_SW6, CS8_SW6, CS7_SW6}, + {0, CS9_SW7, CS8_SW7, CS7_SW7}, + {0, CS9_SW8, CS8_SW8, CS7_SW8}, {0, CS36_SW1, CS35_SW1, CS34_SW1}, {0, CS36_SW2, CS35_SW2, CS34_SW2}, {0, CS36_SW3, CS35_SW3, CS34_SW3}, {0, CS36_SW4, CS35_SW4, CS34_SW4}, {0, CS36_SW5, CS35_SW5, CS34_SW5}, {0, CS36_SW7, CS35_SW7, CS34_SW7}, - + {0, CS3_SW1, CS2_SW1, CS1_SW1}, {0, CS3_SW2, CS2_SW2, CS1_SW2}, {0, CS3_SW3, CS2_SW3, CS1_SW3}, {0, CS3_SW6, CS2_SW6, CS1_SW6}, - {0, CS39_SW1, CS38_SW1, CS37_SW1}, + {0, CS39_SW1, CS38_SW1, CS37_SW1}, {0, CS39_SW2, CS38_SW2, CS37_SW2}, {0, CS39_SW3, CS38_SW3, CS37_SW3}, {0, CS39_SW4, CS38_SW4, CS37_SW4}, {0, CS39_SW5, CS38_SW5, CS37_SW5}, - {0, CS39_SW7, CS38_SW7, CS37_SW7} - + {0, CS39_SW7, CS38_SW7, CS37_SW7} + }; led_config_t g_led_config = { { { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, @@ -108,18 +108,20 @@ led_config_t g_led_config = { { }, { 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1 + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, + 1, 1, 1, 4, 1, 1, 1, 1, 1, 1 } }; -__attribute__ ((weak)) -void rgb_matrix_indicators_user(void) -{ +bool rgb_matrix_indicators_kb(void) { + if (!rgb_matrix_indicators_user()) { + return false; + } if (host_keyboard_led_state().caps_lock) { rgb_matrix_set_color(30, 0xFF, 0xFF, 0xFF); } + return true; } #endif diff --git a/keyboards/evyd13/atom47/rev5/rev5.c b/keyboards/evyd13/atom47/rev5/rev5.c index 4506a69aa74..3336d8cf8b4 100644 --- a/keyboards/evyd13/atom47/rev5/rev5.c +++ b/keyboards/evyd13/atom47/rev5/rev5.c @@ -144,10 +144,14 @@ led_config_t g_led_config = { { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 } }; -void rgb_matrix_indicators_kb(void) { +bool rgb_matrix_indicators_kb(void) { + if (!rgb_matrix_indicators_user()) { + return false; + } if (host_keyboard_led_state().caps_lock) { rgb_matrix_set_color(26, 255, 255, 255); } else { rgb_matrix_set_color(26, 0, 0, 0); } + return true; } diff --git a/keyboards/fc660c/keymaps/zyber/keymap.c b/keyboards/fc660c/keymaps/zyber/keymap.c new file mode 100644 index 00000000000..257a714d8c4 --- /dev/null +++ b/keyboards/fc660c/keymaps/zyber/keymap.c @@ -0,0 +1,47 @@ +// Copyright 2022 ZyBeR (@ZyberSE) +// SPDX-License-Identifier: GPL-2.0 + +#include "zyber.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* BASE layer: Default Layer + * ,--------------------------------------------------------------------------------------------------. + * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | Backspace | | ` | + * |-----------------------------------------------------------------------------------------+ +-----+ + * | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Bksp | | Del | + * |-----------------------------------------------------------------------------------------+ +-----+ + * | Explode | A | S | D | F | G | H | J | K | L | ; | ' | Enter | + * |--------------------------------------------------------------------------------------------+ + * | Shift | Z | X | C | V | B | N | M | , | . | / | Shift | Up | + * +--------------------------------------------------------------------------------------------+-----+ + * | Ctrl | Alt | Cmd | Space | Alt | Ctrl | Fn | Left| Down|Right| + * `--------------------------------------------------------------------------------------------------´ + */ + [0] = LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, TD(SSHT), KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_GRV, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, TD(LBRC), KC_RBRC, KC_BSLS, KC_DEL, + L1_EXPL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, TD(SCLN), TD(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, ROPT_SRH, KC_LGUI, KC_SPC, KC_RALT, KC_RCTL, MO(1), KC_LEFT,KC_DOWN,KC_RGHT + ), + /* FN layer + * ,--------------------------------------------------------------------------------------------------. + * | Esc| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | | |C_BLK| + * |-----------------------------------------------------------------------------------------+ +-----+ + * | | | | | | | | |PrtSc| Slck| Paus| | | | | | + * |-----------------------------------------------------------------------------------------+ +-----+ + * | | Vol-| Vol+| Mute|Eject| | | | Home| PgUp| | | | + * |--------------------------------------------------------------------------------------------+ + * | | Prev| Play| Next| | | | | End | PgDn| | | | + * +--------------------------------------------------------------------------------------------+-----+ + * | | | | | | | | | | | + * `--------------------------------------------------------------------------------------------------´ + */ + [1] = LAYOUT( + QK_BOOT,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, C_BLK, + _______,_______,_______,_______,_______,_______,_______,_______,KC_PSCR,KC_SLCK,KC_PAUS,_______,_______,_______, _______, + _______,KC_VOLD,KC_VOLU,KC_MUTE,KC_EJCT,_______,_______,_______,KC_HOME,KC_PGUP,_______,_______, _______, + _______,KC_MPRV,KC_MPLY,KC_MNXT,_______,_______,_______,_______,KC_END, KC_PGDN,_______,_______, _______, + _______,_______,_______, _______, _______,_______,MO(1), _______,_______,_______ + ) +}; diff --git a/keyboards/feker/ik75/keymaps/bkzshen/keymap.c b/keyboards/feker/ik75/keymaps/bkzshen/keymap.c index 95d41853f9c..5d5ebdc7717 100644 --- a/keyboards/feker/ik75/keymaps/bkzshen/keymap.c +++ b/keyboards/feker/ik75/keymaps/bkzshen/keymap.c @@ -190,7 +190,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return true; } -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_user(void) { rgb_matrix_set_color(46, 0, 0, 0); rgb_matrix_set_color(104, 0, 0, 0); @@ -212,6 +212,7 @@ void rgb_matrix_indicators_user(void) { } rgb_matrix_set_color(104, red, green, blue); } + return false; } #ifdef ENCODER_MAP_ENABLE diff --git a/keyboards/feker/ik75/keymaps/default/keymap.c b/keyboards/feker/ik75/keymaps/default/keymap.c index 582340650c7..944348a5b99 100644 --- a/keyboards/feker/ik75/keymaps/default/keymap.c +++ b/keyboards/feker/ik75/keymaps/default/keymap.c @@ -134,7 +134,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return true; } -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_user(void) { rgb_matrix_set_color(46, 0, 0, 0); rgb_matrix_set_color(104, 0, 0, 0); @@ -156,6 +156,7 @@ void rgb_matrix_indicators_user(void) { } rgb_matrix_set_color(104, red, green, blue); } + return false; } #ifdef ENCODER_MAP_ENABLE diff --git a/keyboards/feker/ik75/keymaps/via/keymap.c b/keyboards/feker/ik75/keymaps/via/keymap.c index 6f0c6890edb..3be5a606805 100644 --- a/keyboards/feker/ik75/keymaps/via/keymap.c +++ b/keyboards/feker/ik75/keymaps/via/keymap.c @@ -190,7 +190,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return true; } -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_user(void) { rgb_matrix_set_color(46, 0, 0, 0); rgb_matrix_set_color(104, 0, 0, 0); @@ -212,6 +212,7 @@ void rgb_matrix_indicators_user(void) { } rgb_matrix_set_color(104, red, green, blue); } + return false; } #ifdef ENCODER_MAP_ENABLE diff --git a/keyboards/geekboards/tester/config.h b/keyboards/geekboards/tester/config.h index aee0b1294f1..c8f3aa4977c 100644 --- a/keyboards/geekboards/tester/config.h +++ b/keyboards/geekboards/tester/config.h @@ -14,7 +14,6 @@ #define DEBOUNCE 3 #ifdef RGB_MATRIX_ENABLE -#define RGB_DISABLE_AFTER_TIMEOUT 0 #define RGB_DISABLE_WHEN_USB_SUSPENDED #define RGB_MATRIX_KEYPRESSES // RGB Matrix Animation modes. Explicitly enabled diff --git a/keyboards/ghs/jem/hotswap_ansi/info.json b/keyboards/ghs/jem/hotswap_ansi/info.json new file mode 100644 index 00000000000..a52e7e16089 --- /dev/null +++ b/keyboards/ghs/jem/hotswap_ansi/info.json @@ -0,0 +1,5 @@ +{ + "usb": { + "pid": "0x2003" + } +} diff --git a/keyboards/ghs/jem/hotswap_ansi/keymaps/default/keymap.c b/keyboards/ghs/jem/hotswap_ansi/keymaps/default/keymap.c new file mode 100644 index 00000000000..4433d46a34e --- /dev/null +++ b/keyboards/ghs/jem/hotswap_ansi/keymaps/default/keymap.c @@ -0,0 +1,33 @@ +/* Copyright 2021 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_ansi( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_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_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_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_ansi( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, _______, + RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD,RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/ghs/jem/hotswap_ansi/keymaps/via/keymap.c b/keyboards/ghs/jem/hotswap_ansi/keymaps/via/keymap.c new file mode 100644 index 00000000000..b46a48cdb4b --- /dev/null +++ b/keyboards/ghs/jem/hotswap_ansi/keymaps/via/keymap.c @@ -0,0 +1,47 @@ +/* Copyright 2021 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_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_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_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_NO, 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, KC_RCTL, 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_DEL, KC_DEL, _______, + RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD,RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [2] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [3] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/ghs/jem/hotswap_ansi/keymaps/via/rules.mk b/keyboards/ghs/jem/hotswap_ansi/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/ghs/jem/hotswap_ansi/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/ghs/jem/hotswap_ansi/rules.mk b/keyboards/ghs/jem/hotswap_ansi/rules.mk new file mode 100644 index 00000000000..17f0d87b7f4 --- /dev/null +++ b/keyboards/ghs/jem/hotswap_ansi/rules.mk @@ -0,0 +1 @@ +# This file left intentionally blank diff --git a/keyboards/ghs/jem/info.json b/keyboards/ghs/jem/info.json new file mode 100644 index 00000000000..d35f86c4dad --- /dev/null +++ b/keyboards/ghs/jem/info.json @@ -0,0 +1,276 @@ +{ + "keyboard_name": "GHS.JEM", + "manufacturer": "Gone Hacking Studio", + "url": "", + "maintainer": "ramonimbao", + "usb": { + "vid": "0x0645", + "device_version": "1.0.0" + }, + "bootloader": "atmel-dfu", + "processor": "atmega32u4", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "rgblight": true, + "nkro": true + }, + "diode_direction": "COL2ROW", + "matrix_pins": { + "cols": [ "E6", "B0", "D5", "D3", "D2", "D1", "D0", "C7", "C6", "B6", "B5", "B4", "D7", "D6", "D4"], + "rows": [ "F1", "F0", "F7", "F6", "F5" ] + }, + "indicators": { + "caps_lock": "B7" + }, + "rgblight": { + "led_count": 22, + "pin": "F4", + "hue_steps": 10, + "saturation_steps": 17, + "brightness_steps": 17, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "alternating": true + } + }, + "layouts": { + "LAYOUT_ansi": { + "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 }, + { "matrix": [0,10], "x":10, "y":0 }, + { "matrix": [0,11], "x":11, "y":0 }, + { "matrix": [0,12], "x":12, "y":0 }, + { "matrix": [0,13], "x":13, "y":0, "w":2 }, + { "matrix": [1,14], "x":15, "y":0 }, + + { "matrix": [1,0], "x":0, "y":1, "w":1.5 }, + { "matrix": [1,1], "x":1.5, "y":1 }, + { "matrix": [1,2], "x":2.5, "y":1 }, + { "matrix": [1,3], "x":3.5, "y":1 }, + { "matrix": [1,4], "x":4.5, "y":1 }, + { "matrix": [1,5], "x":5.5, "y":1 }, + { "matrix": [1,6], "x":6.5, "y":1 }, + { "matrix": [1,7], "x":7.5, "y":1 }, + { "matrix": [1,8], "x":8.5, "y":1 }, + { "matrix": [1,9], "x":9.5, "y":1 }, + { "matrix": [1,10], "x":10.5, "y":1 }, + { "matrix": [1,11], "x":11.5, "y":1 }, + { "matrix": [1,12], "x":12.5, "y":1 }, + { "matrix": [1,13], "x":13.5, "y":1, "w":1.5 }, + { "matrix": [2,14], "x":15, "y":1}, + + { "matrix": [2,0], "x":0, "y":2, "w":1.75 }, + { "matrix": [2,1], "x":1.75, "y":2 }, + { "matrix": [2,2], "x":2.75, "y":2 }, + { "matrix": [2,3], "x":3.75, "y":2 }, + { "matrix": [2,4], "x":4.75, "y":2 }, + { "matrix": [2,5], "x":5.75, "y":2 }, + { "matrix": [2,6], "x":6.75, "y":2 }, + { "matrix": [2,7], "x":7.75, "y":2 }, + { "matrix": [2,8], "x":8.75, "y":2 }, + { "matrix": [2,9], "x":9.75, "y":2 }, + { "matrix": [2,10], "x":10.75, "y":2 }, + { "matrix": [2,11], "x":11.75, "y":2 }, + { "matrix": [2,13], "x":12.75, "y":2, "w":2.25 }, + { "matrix": [3,14], "x":15, "y":2 }, + + { "matrix": [3,0], "x":0, "y":3, "w":2.25 }, + { "matrix": [3,2], "x":2.25, "y":3 }, + { "matrix": [3,3], "x":3.25, "y":3 }, + { "matrix": [3,4], "x":4.25, "y":3 }, + { "matrix": [3,5], "x":5.25, "y":3 }, + { "matrix": [3,6], "x":6.25, "y":3 }, + { "matrix": [3,7], "x":7.25, "y":3 }, + { "matrix": [3,8], "x":8.25, "y":3 }, + { "matrix": [3,9], "x":9.25, "y":3 }, + { "matrix": [3,10], "x":10.25, "y":3 }, + { "matrix": [3,11], "x":11.25, "y":3 }, + { "matrix": [3,12], "x":12.25, "y":3, "w":1.75 }, + { "matrix": [3,13], "x":14, "y":3 }, + { "matrix": [4,14], "x":15, "y":3 }, + + { "matrix": [4,0], "x":0, "y":4, "w":1.25 }, + { "matrix": [4,1], "x":1.25, "y":4, "w":1.25 }, + { "matrix": [4,2], "x":2.5, "y":4, "w":1.25 }, + { "matrix": [4,7], "x":3.75, "y":4, "w":6.25 }, + { "matrix": [4,9], "x":10, "y":4, "w":1.25 }, + { "matrix": [4,10], "x":11.25, "y":4, "w":1.25 }, + { "matrix": [4,11], "x":13, "y":4 }, + { "matrix": [4,12], "x":14, "y":4 }, + { "matrix": [4,13], "x":15, "y":4 } + ] + }, + "LAYOUT_iso": { + "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 }, + { "matrix": [0,10], "x":10, "y":0 }, + { "matrix": [0,11], "x":11, "y":0 }, + { "matrix": [0,12], "x":12, "y":0 }, + { "matrix": [0,13], "x":13, "y":0, "w":2 }, + { "matrix": [1,14], "x":15, "y":0 }, + + { "matrix": [1,0], "x":0, "y":1, "w":1.5 }, + { "matrix": [1,1], "x":1.5, "y":1 }, + { "matrix": [1,2], "x":2.5, "y":1 }, + { "matrix": [1,3], "x":3.5, "y":1 }, + { "matrix": [1,4], "x":4.5, "y":1 }, + { "matrix": [1,5], "x":5.5, "y":1 }, + { "matrix": [1,6], "x":6.5, "y":1 }, + { "matrix": [1,7], "x":7.5, "y":1 }, + { "matrix": [1,8], "x":8.5, "y":1 }, + { "matrix": [1,9], "x":9.5, "y":1 }, + { "matrix": [1,10], "x":10.5, "y":1 }, + { "matrix": [1,11], "x":11.5, "y":1 }, + { "matrix": [1,12], "x":12.5, "y":1 }, + { "matrix": [2,14], "x":15, "y":1}, + + { "matrix": [2,0], "x":0, "y":2, "w":1.75 }, + { "matrix": [2,1], "x":1.75, "y":2 }, + { "matrix": [2,2], "x":2.75, "y":2 }, + { "matrix": [2,3], "x":3.75, "y":2 }, + { "matrix": [2,4], "x":4.75, "y":2 }, + { "matrix": [2,5], "x":5.75, "y":2 }, + { "matrix": [2,6], "x":6.75, "y":2 }, + { "matrix": [2,7], "x":7.75, "y":2 }, + { "matrix": [2,8], "x":8.75, "y":2 }, + { "matrix": [2,9], "x":9.75, "y":2 }, + { "matrix": [2,10], "x":10.75, "y":2 }, + { "matrix": [2,11], "x":11.75, "y":2 }, + { "matrix": [2,13], "x":12.75, "y":2 }, + { "matrix": [1,13], "x":13.75, "y":1, "w":1.25, "h":2 }, + { "matrix": [3,14], "x":15, "y":2 }, + + { "matrix": [3,0], "x":0, "y":3, "w":1.25 }, + { "matrix": [3,1], "x":1.25, "y":3 }, + { "matrix": [3,2], "x":2.25, "y":3 }, + { "matrix": [3,3], "x":3.25, "y":3 }, + { "matrix": [3,4], "x":4.25, "y":3 }, + { "matrix": [3,5], "x":5.25, "y":3 }, + { "matrix": [3,6], "x":6.25, "y":3 }, + { "matrix": [3,7], "x":7.25, "y":3 }, + { "matrix": [3,8], "x":8.25, "y":3 }, + { "matrix": [3,9], "x":9.25, "y":3 }, + { "matrix": [3,10], "x":10.25, "y":3 }, + { "matrix": [3,11], "x":11.25, "y":3 }, + { "matrix": [3,12], "x":12.25, "y":3, "w":1.75 }, + { "matrix": [3,13], "x":14, "y":3 }, + { "matrix": [4,14], "x":15, "y":3 }, + + { "matrix": [4,0], "x":0, "y":4, "w":1.25 }, + { "matrix": [4,1], "x":1.25, "y":4, "w":1.25 }, + { "matrix": [4,2], "x":2.5, "y":4, "w":1.25 }, + { "matrix": [4,7], "x":3.75, "y":4, "w":6.25 }, + { "matrix": [4,9], "x":10, "y":4, "w":1.25 }, + { "matrix": [4,10], "x":11.25, "y":4, "w":1.25 }, + { "matrix": [4,11], "x":13, "y":4 }, + { "matrix": [4,12], "x":14, "y":4 }, + { "matrix": [4,13], "x":15, "y":4 } + ] + }, + "LAYOUT_all": { + "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 }, + { "matrix": [0,10], "x":10, "y":0 }, + { "matrix": [0,11], "x":11, "y":0 }, + { "matrix": [0,12], "x":12, "y":0 }, + { "matrix": [0,13], "x":13, "y":0 }, + { "matrix": [0,14], "x":14, "y":0 }, + { "matrix": [1,14], "x":15, "y":0 }, + + { "matrix": [1,0], "x":0, "y":1, "w":1.5 }, + { "matrix": [1,1], "x":1.5, "y":1 }, + { "matrix": [1,2], "x":2.5, "y":1 }, + { "matrix": [1,3], "x":3.5, "y":1 }, + { "matrix": [1,4], "x":4.5, "y":1 }, + { "matrix": [1,5], "x":5.5, "y":1 }, + { "matrix": [1,6], "x":6.5, "y":1 }, + { "matrix": [1,7], "x":7.5, "y":1 }, + { "matrix": [1,8], "x":8.5, "y":1 }, + { "matrix": [1,9], "x":9.5, "y":1 }, + { "matrix": [1,10], "x":10.5, "y":1 }, + { "matrix": [1,11], "x":11.5, "y":1 }, + { "matrix": [1,12], "x":12.5, "y":1 }, + { "matrix": [1,13], "x":13.5, "y":1, "w":1.5 }, + { "matrix": [2,14], "x":15, "y":1}, + + { "matrix": [2,0], "x":0, "y":2, "w":1.75 }, + { "matrix": [2,1], "x":1.75, "y":2 }, + { "matrix": [2,2], "x":2.75, "y":2 }, + { "matrix": [2,3], "x":3.75, "y":2 }, + { "matrix": [2,4], "x":4.75, "y":2 }, + { "matrix": [2,5], "x":5.75, "y":2 }, + { "matrix": [2,6], "x":6.75, "y":2 }, + { "matrix": [2,7], "x":7.75, "y":2 }, + { "matrix": [2,8], "x":8.75, "y":2 }, + { "matrix": [2,9], "x":9.75, "y":2 }, + { "matrix": [2,10], "x":10.75, "y":2 }, + { "matrix": [2,11], "x":11.75, "y":2 }, + { "matrix": [2,13], "x":12.75, "y":2, "w":2.25 }, + { "matrix": [3,14], "x":15, "y":2 }, + + { "matrix": [3,0], "x":0, "y":3, "w":1.25 }, + { "matrix": [3,1], "x":1.25, "y":3 }, + { "matrix": [3,2], "x":2.25, "y":3 }, + { "matrix": [3,3], "x":3.25, "y":3 }, + { "matrix": [3,4], "x":4.25, "y":3 }, + { "matrix": [3,5], "x":5.25, "y":3 }, + { "matrix": [3,6], "x":6.25, "y":3 }, + { "matrix": [3,7], "x":7.25, "y":3 }, + { "matrix": [3,8], "x":8.25, "y":3 }, + { "matrix": [3,9], "x":9.25, "y":3 }, + { "matrix": [3,10], "x":10.25, "y":3 }, + { "matrix": [3,11], "x":11.25, "y":3 }, + { "matrix": [3,12], "x":12.25, "y":3, "w":1.75 }, + { "matrix": [3,13], "x":14, "y":3 }, + { "matrix": [4,14], "x":15, "y":3 }, + + { "matrix": [4,0], "x":0, "y":4, "w":1.25 }, + { "matrix": [4,1], "x":1.25, "y":4, "w":1.25 }, + { "matrix": [4,2], "x":2.5, "y":4, "w":1.25 }, + { "matrix": [4,7], "x":3.75, "y":4, "w":6.25 }, + { "matrix": [4,9], "x":10, "y":4, "w":1.25 }, + { "matrix": [4,10], "x":11.25, "y":4, "w":1.25 }, + { "matrix": [4,11], "x":13, "y":4 }, + { "matrix": [4,12], "x":14, "y":4 }, + { "matrix": [4,13], "x":15, "y":4 } + ] + } + } +} diff --git a/keyboards/ghs/jem/readme.md b/keyboards/ghs/jem/readme.md new file mode 100644 index 00000000000..1d76f959ddc --- /dev/null +++ b/keyboards/ghs/jem/readme.md @@ -0,0 +1,21 @@ +# GHS.JEM + +![GHS.JEM](https://i.imgur.com/whcvQ01l.jpg) + +A 65% screwless seamless keyboard. + +* Keyboard Maintainer: [Ramon Imbao](https://github.com/ramonimbao) +* Hardware Supported: ATmega32u4 +* Hardware Availability: [Gone Hacking Studio][https://gonehacking.studio/] + +To access the bootloader, press the reset button located under the spacebar. You can then flash new firmware: + +Make example for this keyboard (after setting up your build environment): + + make ghs/jem:default + +Flashing example for this keyboard: + + make ghs/jem:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/ghs/jem/rules.mk b/keyboards/ghs/jem/rules.mk new file mode 100644 index 00000000000..e96c00e5c0a --- /dev/null +++ b/keyboards/ghs/jem/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER = ghs/jem/soldered diff --git a/keyboards/ghs/jem/soldered/info.json b/keyboards/ghs/jem/soldered/info.json new file mode 100644 index 00000000000..e3932360598 --- /dev/null +++ b/keyboards/ghs/jem/soldered/info.json @@ -0,0 +1,5 @@ +{ + "usb": { + "pid": "0x1003" + } +} diff --git a/keyboards/ghs/jem/soldered/keymaps/default/keymap.c b/keyboards/ghs/jem/soldered/keymaps/default/keymap.c new file mode 100644 index 00000000000..4433d46a34e --- /dev/null +++ b/keyboards/ghs/jem/soldered/keymaps/default/keymap.c @@ -0,0 +1,33 @@ +/* Copyright 2021 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_ansi( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_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_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_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_ansi( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, _______, + RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD,RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/ghs/jem/soldered/keymaps/iso/keymap.c b/keyboards/ghs/jem/soldered/keymaps/iso/keymap.c new file mode 100644 index 00000000000..de792b561f1 --- /dev/null +++ b/keyboards/ghs/jem/soldered/keymaps/iso/keymap.c @@ -0,0 +1,33 @@ +/* Copyright 2021 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_iso( + 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_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, + 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_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, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_iso( + 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, _______, + RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD,RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/ghs/jem/soldered/keymaps/via/keymap.c b/keyboards/ghs/jem/soldered/keymaps/via/keymap.c new file mode 100644 index 00000000000..b46a48cdb4b --- /dev/null +++ b/keyboards/ghs/jem/soldered/keymaps/via/keymap.c @@ -0,0 +1,47 @@ +/* Copyright 2021 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_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_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_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_NO, 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, KC_RCTL, 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_DEL, KC_DEL, _______, + RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD,RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [2] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [3] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/ghs/jem/soldered/keymaps/via/rules.mk b/keyboards/ghs/jem/soldered/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/ghs/jem/soldered/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/ghs/jem/soldered/rules.mk b/keyboards/ghs/jem/soldered/rules.mk new file mode 100644 index 00000000000..218d8921e51 --- /dev/null +++ b/keyboards/ghs/jem/soldered/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank. diff --git a/keyboards/giabalanai/keymaps/party/keymap.c b/keyboards/giabalanai/keymaps/party/keymap.c index 5a4361e5ae5..f7c47d9597c 100644 --- a/keyboards/giabalanai/keymaps/party/keymap.c +++ b/keyboards/giabalanai/keymaps/party/keymap.c @@ -475,7 +475,7 @@ void eeconfig_init_user(void) { } #ifdef RGB_MATRIX_ENABLE -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_user(void) { uint8_t i; // uint32_t mode = rgblight_get_mode(); @@ -525,6 +525,7 @@ void rgb_matrix_indicators_user(void) { break; } } + return false; } #endif diff --git a/keyboards/gizmo_engineering/gk6/keymaps/12x5/keymap.c b/keyboards/gizmo_engineering/gk6/keymaps/12x5/keymap.c index bb7b627ce43..1239a6a0496 100755 --- a/keyboards/gizmo_engineering/gk6/keymaps/12x5/keymap.c +++ b/keyboards/gizmo_engineering/gk6/keymaps/12x5/keymap.c @@ -93,11 +93,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; #ifdef RGB_MATRIX_ENABLE -void rgb_matrix_indicators_user(void) -{ +bool rgb_matrix_indicators_user(void) { rgb_matrix_set_color(25, 0, 0, 0); rgb_matrix_set_color(36, 0, 0, 0); rgb_matrix_set_color(42, 0, 0, 0); + return false; } void keyboard_pre_init_user(void) { diff --git a/keyboards/gizmo_engineering/gk6/keymaps/1x2u/keymap.c b/keyboards/gizmo_engineering/gk6/keymaps/1x2u/keymap.c index 41e3062dc27..09b69b907a0 100755 --- a/keyboards/gizmo_engineering/gk6/keymaps/1x2u/keymap.c +++ b/keyboards/gizmo_engineering/gk6/keymaps/1x2u/keymap.c @@ -93,12 +93,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; #ifdef RGB_MATRIX_ENABLE -void rgb_matrix_indicators_user(void) +bool rgb_matrix_indicators_user(void) { rgb_matrix_set_color(25, 0, 0, 0); rgb_matrix_set_color(30, 0, 0, 0); rgb_matrix_set_color(35, 0, 0, 0); rgb_matrix_set_color(42, 0, 0, 0); + return false; } void keyboard_pre_init_user(void) { diff --git a/keyboards/gizmo_engineering/gk6/keymaps/default/keymap.c b/keyboards/gizmo_engineering/gk6/keymaps/default/keymap.c index ad357648ac7..8b7832ba9f1 100755 --- a/keyboards/gizmo_engineering/gk6/keymaps/default/keymap.c +++ b/keyboards/gizmo_engineering/gk6/keymaps/default/keymap.c @@ -93,12 +93,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; #ifdef RGB_MATRIX_ENABLE -void rgb_matrix_indicators_user(void) -{ +bool rgb_matrix_indicators_user(void) { rgb_matrix_set_color(24, 0, 0, 0); rgb_matrix_set_color(30, 0, 0, 0); rgb_matrix_set_color(35, 0, 0, 0); rgb_matrix_set_color(36, 0, 0, 0); rgb_matrix_set_color(41, 0, 0, 0); + return false; } #endif diff --git a/keyboards/gl516/j73gl/keymaps/via_rgb_matrix/config.h b/keyboards/gl516/j73gl/keymaps/via_rgb_matrix/config.h index 75e321507d1..4a87c1b09c3 100644 --- a/keyboards/gl516/j73gl/keymaps/via_rgb_matrix/config.h +++ b/keyboards/gl516/j73gl/keymaps/via_rgb_matrix/config.h @@ -31,8 +31,6 @@ #define RGB_MATRIX_KEYPRESSES // reacts to keypresses // #define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses) // #define RGB_MATRIX_FRAMEBUFFER_EFFECTS // enable framebuffer effects -// #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 (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/gmmk/pro/rev1/ansi/keymaps/andrebrait/config.h b/keyboards/gmmk/pro/rev1/ansi/keymaps/andrebrait/config.h index dc943025306..5dda6f15bc5 100644 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/andrebrait/config.h +++ b/keyboards/gmmk/pro/rev1/ansi/keymaps/andrebrait/config.h @@ -17,6 +17,6 @@ #pragma once #ifdef RGB_MATRIX_ENABLE - #define RGB_DISABLE_TIMEOUT 1200000 // 20 minutes (20 * 60 * 1000ms) + #define RGB_MATRIX_TIMEOUT 1200000 // 20 minutes (20 * 60 * 1000ms) #define RGB_DISABLE_WHEN_USB_SUSPENDED #endif diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/andrebrait/keymap.c b/keyboards/gmmk/pro/rev1/ansi/keymaps/andrebrait/keymap.c index 5679a1c0d7c..ca39c392033 100644 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/andrebrait/keymap.c +++ b/keyboards/gmmk/pro/rev1/ansi/keymaps/andrebrait/keymap.c @@ -253,7 +253,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } #ifdef RGB_MATRIX_ENABLE -void rgb_matrix_indicators_user() { +bool rgb_matrix_indicators_user(void) { if (effect_started_time > 0) { /* Render blinking EFFECTS */ const uint16_t deltaTime = sync_timer_elapsed(effect_started_time); @@ -289,6 +289,7 @@ void rgb_matrix_indicators_user() { if (host_keyboard_led_state().caps_lock) { set_rgb_caps_leds(); } + return false; } static void start_effects() { diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/andrewcharnley/keymap.c b/keyboards/gmmk/pro/rev1/ansi/keymaps/andrewcharnley/keymap.c index 16f1acd68b7..52fd7a5a34f 100644 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/andrewcharnley/keymap.c +++ b/keyboards/gmmk/pro/rev1/ansi/keymaps/andrewcharnley/keymap.c @@ -76,7 +76,7 @@ void keyboard_post_init_user(void) { val = rgb_matrix_get_val(); } -void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { +bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { if (host_keyboard_led_state().caps_lock) { rgb_matrix_set_color_all(val,0,0); @@ -84,4 +84,5 @@ void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { rgb_matrix_set_color_all(val, val, val); val = rgb_matrix_get_val(); } + return false; } diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/benschaeff/keymap.c b/keyboards/gmmk/pro/rev1/ansi/keymaps/benschaeff/keymap.c index 86743acf73b..b536a8535a4 100644 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/benschaeff/keymap.c +++ b/keyboards/gmmk/pro/rev1/ansi/keymaps/benschaeff/keymap.c @@ -99,7 +99,7 @@ bool encoder_update_user(uint8_t index, bool clockwise) { return false; } -void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { +bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { switch(get_highest_layer(layer_state)) { // special handling per layer case 0: //layer one @@ -124,4 +124,5 @@ void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { default: break; } + return false; } diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/byungyoonc/keymap.c b/keyboards/gmmk/pro/rev1/ansi/keymaps/byungyoonc/keymap.c index b2cab6222fc..52f2011712a 100644 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/byungyoonc/keymap.c +++ b/keyboards/gmmk/pro/rev1/ansi/keymaps/byungyoonc/keymap.c @@ -111,7 +111,7 @@ static void set_rgb_wlck_leds() { rgb_matrix_set_color(92, 0x77, 0xFF, 0x77); // Right side LED 8 } -void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { +bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { if (IS_HOST_LED_ON(USB_LED_CAPS_LOCK)) { set_rgb_caps_leds(); } @@ -121,6 +121,7 @@ void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { if (keymap_config.no_gui) { set_rgb_wlck_leds(); } + return false; } void matrix_output_unselect_delay(uint8_t line, bool key_pressed) { diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/cedrikl/keymap.c b/keyboards/gmmk/pro/rev1/ansi/keymaps/cedrikl/keymap.c index 024700174b8..1ff0a28e4d2 100644 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/cedrikl/keymap.c +++ b/keyboards/gmmk/pro/rev1/ansi/keymaps/cedrikl/keymap.c @@ -107,7 +107,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { } // Capslock, Scroll lock and Numlock indicator on Left side lights. - void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { + bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { loop_colorset(LED_REGION_A, ARRAY_SIZE(LED_REGION_A), hsv_cl_blue); loop_colorset(LED_REGION_B, ARRAY_SIZE(LED_REGION_B), @@ -158,5 +158,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { loop_colorset(LED_REGION_CAPS, ARRAY_SIZE(LED_REGION_CAPS), hsv_cl_bad); } + return false; } #endif diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/default/keymap.c b/keyboards/gmmk/pro/rev1/ansi/keymaps/default/keymap.c index 6b48c6bcdf6..1294d64fe8d 100644 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/default/keymap.c +++ b/keyboards/gmmk/pro/rev1/ansi/keymaps/default/keymap.c @@ -59,3 +59,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; // clang-format on + +#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_TRNS, KC_TRNS) } +}; +#endif diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/default/rules.mk b/keyboards/gmmk/pro/rev1/ansi/keymaps/default/rules.mk new file mode 100644 index 00000000000..a40474b4d5c --- /dev/null +++ b/keyboards/gmmk/pro/rev1/ansi/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes \ No newline at end of file diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/gigahawk/keymap.c b/keyboards/gmmk/pro/rev1/ansi/keymaps/gigahawk/keymap.c index f8fe872dab1..c693bd90d85 100644 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/gigahawk/keymap.c +++ b/keyboards/gmmk/pro/rev1/ansi/keymaps/gigahawk/keymap.c @@ -56,7 +56,7 @@ bool encoder_update_user(uint8_t index, bool clockwise) { return false; } -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_user(void) { if (IS_LAYER_ON(_TRAN)) { rgb_matrix_set_color_all(_TRAN_COLOR_RGB); } else if (IS_LAYER_ON(_GAME)) { @@ -72,4 +72,5 @@ void rgb_matrix_indicators_user(void) { } } } + return false; } diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/keymap.c b/keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/keymap.c index 9b20399e002..5a45e4e3533 100644 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/keymap.c +++ b/keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/keymap.c @@ -242,7 +242,7 @@ void hurt_paddle(void) { #endif //GAME_ENABLE // Capslock, Scroll lock and Numlock indicator on Left side lights. -void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { +bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { if (get_rgb_nightmode()) rgb_matrix_set_color_all(RGB_OFF); // Scroll Lock RGB setup @@ -359,7 +359,7 @@ void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { #endif // GAME_ENABLE // System NumLock warning indicator RGB setup - #ifdef INVERT_NUMLOCK_INDICATOR + #ifdef INVERT_NUMLOCK_INDICATOR if (!IS_HOST_LED_ON(USB_LED_NUM_LOCK)) { // on if NUM lock is OFF to bring attention to overlay numpad not functional when enabled rgb_matrix_set_color(LED_N, RGB_ORANGE2); } @@ -431,7 +431,7 @@ void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { // Numpad & Mouse Keys overlay RGB case _NUMPADMOUSE: - #ifdef INVERT_NUMLOCK_INDICATOR + #ifdef INVERT_NUMLOCK_INDICATOR if (!IS_HOST_LED_ON(USB_LED_NUM_LOCK)) { // on if NUM lock is OFF to bring attention to overlay numpad not functional when enabled rgb_matrix_set_color(LED_N, RGB_ORANGE2); } @@ -699,6 +699,7 @@ void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { #endif //GAME_ENABLE break; } + return false; } #endif @@ -707,4 +708,4 @@ void keyboard_post_init_keymap(void) { #ifdef RGB_MATRIX_ENABLE activate_rgb_nightmode(false); // Set to true if you want to startup in nightmode, otherwise use Fn + Z to toggle #endif -} \ No newline at end of file +} diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/hachetman/config.h b/keyboards/gmmk/pro/rev1/ansi/keymaps/hachetman/config.h index 1438d317fbd..845262b7e85 100644 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/hachetman/config.h +++ b/keyboards/gmmk/pro/rev1/ansi/keymaps/hachetman/config.h @@ -17,6 +17,6 @@ #pragma once #ifdef RGB_MATRIX_ENABLE - #define RGB_DISABLE_TIMEOUT 1200000 // 20 minutes (20 * 60 * 1000ms) + #define RGB_MATRIX_TIMEOUT 1200000 // 20 minutes (20 * 60 * 1000ms) #define RGB_DISABLE_WHEN_USB_SUSPENDED #endif diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/hachetman/keymap.c b/keyboards/gmmk/pro/rev1/ansi/keymaps/hachetman/keymap.c index 6a7b2dd733d..aa1558fd071 100644 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/hachetman/keymap.c +++ b/keyboards/gmmk/pro/rev1/ansi/keymaps/hachetman/keymap.c @@ -220,7 +220,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } -void rgb_matrix_indicators_user() { +bool rgb_matrix_indicators_user() { #if RGB_CONFIRMATION_BLINKING_TIME > 0 if (effect_started_time > 0) { /* Render blinking EFFECTS */ @@ -258,6 +258,7 @@ void rgb_matrix_indicators_user() { if (host_keyboard_led_state().caps_lock) { set_rgb_caps_leds(); } + return false; } #if RGB_CONFIRMATION_BLINKING_TIME > 0 diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/jonavin/keymap.c b/keyboards/gmmk/pro/rev1/ansi/keymaps/jonavin/keymap.c index 6fd4f29e09f..c7947a66f61 100644 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/jonavin/keymap.c +++ b/keyboards/gmmk/pro/rev1/ansi/keymaps/jonavin/keymap.c @@ -119,7 +119,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #ifdef RGB_MATRIX_ENABLE // Capslock, Scroll lock and Numlock indicator on Left side lights. - void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { + bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { if (get_rgb_nightmode()) rgb_matrix_set_color_all(RGB_OFF); if (IS_HOST_LED_ON(USB_LED_SCROLL_LOCK)) { rgb_matrix_set_color(LED_L1, RGB_GREEN); @@ -188,14 +188,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { default: break; } - } - - void suspend_power_down_user(void) { - rgb_matrix_set_suspend_state(true); - } - - void suspend_wakeup_init_user(void) { - rgb_matrix_set_suspend_state(false); + return false; } #endif diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/lalitmaganti/keymap.c b/keyboards/gmmk/pro/rev1/ansi/keymaps/lalitmaganti/keymap.c index c87532990f9..bc20d46d3a4 100644 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/lalitmaganti/keymap.c +++ b/keyboards/gmmk/pro/rev1/ansi/keymaps/lalitmaganti/keymap.c @@ -80,12 +80,13 @@ static void set_rgb_side_leds() { rgb_matrix_set_color(92, RGB_WHITE); // Right side LED 8 } -void rgb_matrix_indicators_user() { +bool rgb_matrix_indicators_user() { rgb_matrix_set_color_all(0x0, 0x0, 0x0); if (IS_HOST_LED_ON(USB_LED_CAPS_LOCK)) { rgb_matrix_set_color(3, RGB_WHITE); // CAPS } set_rgb_side_leds(); + return false; } -#endif \ No newline at end of file +#endif diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/macos/config.h b/keyboards/gmmk/pro/rev1/ansi/keymaps/macos/config.h index 799c5d95932..a462b569f90 100644 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/macos/config.h +++ b/keyboards/gmmk/pro/rev1/ansi/keymaps/macos/config.h @@ -18,7 +18,7 @@ // At the time of this, there are 41 effects! That may be a bit too many to cycle through - keeping what I believe is the best. #ifdef RGB_MATRIX_ENABLE - #define RGB_DISABLE_TIMEOUT 1200000 // 20 minutes (20 * 60 * 1000ms) + #define RGB_MATRIX_TIMEOUT 1200000 // 20 minutes (20 * 60 * 1000ms) // #define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_SOLID_COLOR diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/macos/keymap.c b/keyboards/gmmk/pro/rev1/ansi/keymaps/macos/keymap.c index 3f39229b16b..8740bfe89c9 100644 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/macos/keymap.c +++ b/keyboards/gmmk/pro/rev1/ansi/keymaps/macos/keymap.c @@ -372,7 +372,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { } - void rgb_matrix_indicators_user() { + bool rgb_matrix_indicators_user(void) { #if RGB_CONFIRMATION_BLINKING_TIME > 0 if (effect_started_time > 0) { /* Render blinking EFFECTS */ @@ -410,6 +410,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { if (host_keyboard_led_state().caps_lock) { set_rgb_caps_leds(); } + return false; } #if RGB_CONFIRMATION_BLINKING_TIME > 0 diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/mattgauf/keymap.c b/keyboards/gmmk/pro/rev1/ansi/keymaps/mattgauf/keymap.c index 6e673a43737..b94c380e602 100644 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/mattgauf/keymap.c +++ b/keyboards/gmmk/pro/rev1/ansi/keymaps/mattgauf/keymap.c @@ -79,7 +79,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), }; // Runs constantly in the background, in a loop. -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_user(void) { if (rgb_matrix_get_flags() & (LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER)) { if (IS_LAYER_ON(_UTILITY)) { @@ -108,6 +108,7 @@ void rgb_matrix_indicators_user(void) { } } + return false; } diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/mike1808/config.h b/keyboards/gmmk/pro/rev1/ansi/keymaps/mike1808/config.h index 46719e3a781..da70d56b7bf 100644 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/mike1808/config.h +++ b/keyboards/gmmk/pro/rev1/ansi/keymaps/mike1808/config.h @@ -19,7 +19,7 @@ #define RGB_MATRIX_KEYPRESSES #define RGB_DISABLE_WHEN_USB_SUSPENDED -#define RGB_DISABLE_TIMEOUT 90000 +#define RGB_MATRIX_TIMEOUT 90000 #define MACRO_TIMER 5 diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/mike1808/fun.c b/keyboards/gmmk/pro/rev1/ansi/keymaps/mike1808/fun.c index f553874eb0c..cb47824c802 100644 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/mike1808/fun.c +++ b/keyboards/gmmk/pro/rev1/ansi/keymaps/mike1808/fun.c @@ -19,7 +19,7 @@ static bool wpm_rgb_enabled = false; static uint8_t rgb_mode; -void rgb_matrix_indicators_keymap(void) { +bool rgb_matrix_indicators_keymap(void) { if (wpm_rgb_enabled && rgb_matrix_is_enabled()) { uint8_t wpm = get_current_wpm(); dprintf("WPM = %d\n", wpm); @@ -28,6 +28,7 @@ void rgb_matrix_indicators_keymap(void) { RGB rgb = hsv_to_rgb(hsv); rgb_matrix_set_color_all(rgb.r, rgb.g, rgb.b); } + return false; } bool process_record_fun(uint16_t keycode, keyrecord_t *record) { diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/mike1808/mike1808.c b/keyboards/gmmk/pro/rev1/ansi/keymaps/mike1808/mike1808.c index dda68fda2f8..607606b3e72 100644 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/mike1808/mike1808.c +++ b/keyboards/gmmk/pro/rev1/ansi/keymaps/mike1808/mike1808.c @@ -51,7 +51,7 @@ void suspend_wakeup_init_user(void) { } #ifdef RGB_MATRIX_ENABLE -void rgb_matrix_indicators_advanced_keymap(uint8_t led_min, uint8_t led_max) { +bool rgb_matrix_indicators_advanced_keymap(uint8_t led_min, uint8_t led_max) { // Turn on sideglow when CAPS LOCK is activated if (host_keyboard_led_state().caps_lock) { HSV hsv = {CAPS_LOCK_COLOR}; @@ -64,5 +64,6 @@ void rgb_matrix_indicators_advanced_keymap(uint8_t led_min, uint8_t led_max) { } } } + return false; } #endif // RGB_MATRIX_ENABLE 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 d59b5cffc8e..0106d80c141 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 @@ -15,9 +15,9 @@ */ #include "rgb_matrix_ledmaps.h" -__attribute__((weak)) void rgb_matrix_indicators_keymap(void) { return; } -__attribute__((weak)) void rgb_matrix_indicators_advanced_keymap(uint8_t led_min, uint8_t led_max) { - return; +__attribute__((weak)) bool rgb_matrix_indicators_keymap(void) { return true; } +__attribute__((weak)) bool rgb_matrix_indicators_advanced_keymap(uint8_t led_min, uint8_t led_max) { + return true; } #ifdef RGB_MATRIX_LEDMAPS_ENABLED @@ -26,15 +26,15 @@ static bool enabled = true; #endif // RGB_MATRIX_LEDMAPS_ENABLED -void rgb_matrix_indicators_user(void) { rgb_matrix_indicators_keymap(); } -void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { +bool rgb_matrix_indicators_user(void) { return rgb_matrix_indicators_keymap(); } +bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { #ifdef RGB_MATRIX_LEDMAPS_ENABLED if (rgb_matrix_is_enabled() && enabled) { set_layer_rgb(led_min, led_max, get_highest_layer(layer_state | default_layer_state)); } #endif // RGB_MATRIX_LEDMAPS_ENABLED - rgb_matrix_indicators_advanced_keymap(led_min, led_max); + return rgb_matrix_indicators_advanced_keymap(led_min, led_max); } #ifdef RGB_MATRIX_LEDMAPS_ENABLED 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 b9b06309b2f..931dfa07040 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 @@ -96,5 +96,5 @@ void rgb_matrix_layers_disable(void); #endif // RGB_MATRIX_LEDMAPS_ENABLED -void rgb_matrix_indicators_keymap(void); -void rgb_matrix_indicators_advanced_keymap(uint8_t led_min, uint8_t led_max); +bool rgb_matrix_indicators_keymap(void); +bool rgb_matrix_indicators_advanced_keymap(uint8_t led_min, uint8_t led_max); diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/paddlegame/keymap.c b/keyboards/gmmk/pro/rev1/ansi/keymaps/paddlegame/keymap.c index 72b4e58df02..61f99e491b1 100644 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/paddlegame/keymap.c +++ b/keyboards/gmmk/pro/rev1/ansi/keymaps/paddlegame/keymap.c @@ -77,11 +77,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [_FN1] = LAYOUT( - KC_SLEP, KC_MYCM, KC_WHOM, KC_CALC, KC_MSEL, KC_MPRV, KC_MNXT, KC_MPLY, KC_MSTP, KC_PSCR, KC_SLCK, KC_PAUS, _______, KC_INS, _______, - RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, RGB_HUI, _______, RGB_M_P, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, TO(_MO2), RGB_SAD, RGB_SAI, QK_BOOT, RGB_M_B, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_MOD, _______, RGB_M_R, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, RGB_M_SW, + KC_SLEP, KC_MYCM, KC_WHOM, KC_CALC, KC_MSEL, KC_MPRV, KC_MNXT, KC_MPLY, KC_MSTP, KC_PSCR, KC_SLCK, KC_PAUS, _______, KC_INS, _______, + RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, RGB_HUI, _______, RGB_M_P, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, TO(_MO2), RGB_SAD, RGB_SAI, QK_BOOT, RGB_M_B, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_MOD, _______, RGB_M_R, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, RGB_M_SW, _______, KC_WINLK, _______, _______, _______, _______, _______, RGB_SPD, RGB_VAD, RGB_SPI ), @@ -180,7 +180,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { } // Capslock, Scroll lock and Numlock indicator on Left side lights. - void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { + bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { switch(get_highest_layer(layer_state)) { case _FN1: // Light up FN layer keys @@ -201,11 +201,11 @@ 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 - + 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 @@ -243,7 +243,7 @@ void hurt_paddle(void) { #endif //GAME_ENABLE // Capslock, Scroll lock and Numlock indicator on Left side lights. -void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { +bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { if (get_rgb_nightmode()) rgb_matrix_set_color_all(RGB_OFF); // Scroll Lock RGB setup @@ -367,7 +367,7 @@ void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { #endif // GAME_ENABLE // System NumLock warning indicator RGB setup - #ifdef INVERT_NUMLOCK_INDICATOR + #ifdef INVERT_NUMLOCK_INDICATOR if (!IS_HOST_LED_ON(USB_LED_NUM_LOCK)) { // on if NUM lock is OFF to bring attention to overlay numpad not functional when enabled rgb_matrix_set_color(LED_N, RGB_ORANGE2); } @@ -444,7 +444,7 @@ void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { // Numpad & Mouse Keys overlay RGB case _NUMPADMOUSE: - #ifdef INVERT_NUMLOCK_INDICATOR + #ifdef INVERT_NUMLOCK_INDICATOR if (!IS_HOST_LED_ON(USB_LED_NUM_LOCK)) { // on if NUM lock is OFF to bring attention to overlay numpad not functional when enabled rgb_matrix_set_color(LED_N, RGB_ORANGE2); } @@ -712,6 +712,7 @@ void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { #endif //GAME_ENABLE break; } + return false; } #endif @@ -720,4 +721,4 @@ void keyboard_post_init_keymap(void) { #ifdef RGB_MATRIX_ENABLE activate_rgb_nightmode(false); // Set to true if you want to startup in nightmode, otherwise use Fn + Z to toggle #endif -} \ No newline at end of file +} diff --git a/keyboards/gmmk/pro/rev1/iso/keymaps/jonavin/keymap.c b/keyboards/gmmk/pro/rev1/iso/keymaps/jonavin/keymap.c index 4084d3d2ebc..27ce76970a8 100644 --- a/keyboards/gmmk/pro/rev1/iso/keymaps/jonavin/keymap.c +++ b/keyboards/gmmk/pro/rev1/iso/keymaps/jonavin/keymap.c @@ -109,7 +109,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #ifdef RGB_MATRIX_ENABLE // Capslock, Scroll lock and Numlock indicator on Left side lights. - void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { + bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { if (get_rgb_nightmode()) rgb_matrix_set_color_all(RGB_OFF); if (IS_HOST_LED_ON(USB_LED_SCROLL_LOCK)) { rgb_matrix_set_color(LED_L1, RGB_GREEN); @@ -178,6 +178,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { default: break; } + return false; } #endif diff --git a/keyboards/gmmk/pro/rev1/iso/keymaps/via/keymap.c b/keyboards/gmmk/pro/rev1/iso/keymaps/via/keymap.c index 612eead8715..9a37242a4ef 100644 --- a/keyboards/gmmk/pro/rev1/iso/keymaps/via/keymap.c +++ b/keyboards/gmmk/pro/rev1/iso/keymaps/via/keymap.c @@ -78,3 +78,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; // clang-format on + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [0] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) }, + [1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) } +}; +#endif diff --git a/keyboards/gmmk/pro/rev1/iso/keymaps/via/rules.mk b/keyboards/gmmk/pro/rev1/iso/keymaps/via/rules.mk index 1e5b99807cb..4253f570f0b 100644 --- a/keyboards/gmmk/pro/rev1/iso/keymaps/via/rules.mk +++ b/keyboards/gmmk/pro/rev1/iso/keymaps/via/rules.mk @@ -1 +1,2 @@ VIA_ENABLE = yes +ENCODER_MAP_ENABLE = yes \ No newline at end of file diff --git a/keyboards/gmmk/pro/rev1/iso/keymaps/vitoni/config.h b/keyboards/gmmk/pro/rev1/iso/keymaps/vitoni/config.h index fd8f1d6859e..105efad9607 100644 --- a/keyboards/gmmk/pro/rev1/iso/keymaps/vitoni/config.h +++ b/keyboards/gmmk/pro/rev1/iso/keymaps/vitoni/config.h @@ -6,9 +6,9 @@ #if defined(RGB_MATRIX_ENABLE) #define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_SOLID_COLOR // number of milliseconds to wait until turning off RGB automatically - #define RGB_DISABLE_TIMEOUT 300000 // 300 seconds / 5 min + #define RGB_MATRIX_TIMEOUT 300000 // 300 seconds / 5 min // start fading out before getting disabled - // fading out is timed (depending on the rgb_matrix_config.speed) to have finished before reaching RGB_DISABLE_TIMEOUT + // fading out is timed (depending on the rgb_matrix_config.speed) to have finished before reaching RGB_MATRIX_TIMEOUT #define RGB_DISABLE_WITH_FADE_OUT #define RGB_DISABLE_WHEN_USB_SUSPENDED // number of milliseconds to wait until activating RGB idle effects diff --git a/keyboards/gmmk/pro/rev1/iso/keymaps/vitoni/readme.adoc b/keyboards/gmmk/pro/rev1/iso/keymaps/vitoni/readme.adoc index 38a74a568bf..c34887ebd24 100644 --- a/keyboards/gmmk/pro/rev1/iso/keymaps/vitoni/readme.adoc +++ b/keyboards/gmmk/pro/rev1/iso/keymaps/vitoni/readme.adoc @@ -63,11 +63,11 @@ The code customizing RGB light usage is decribed here: * link:../../../../../../users/vitoni/readme.adoc[/users/vitoni/readme.adoc] -When using `RGB_DISABLE_TIMEOUT` addtional options are available: +When using `RGB_MATRIX_TIMEOUT` addtional options are available: * `RGB_FADE_IN` makes the RGB lights fade in instead of setting the value/brightness to 100% (implicitly due to HSV including the brightness) when resuming after RGB lights have been turned off. Fade in occurs when the keyboard is initialized and when the RGB brightness has been changed (e.g. suspending, fade out, etc.). -* `RGB_DISABLE_WITH_FADE_OUT` activates fade out before the keyboard is disabled by `RGB_DISABLE_TIMEOUT`. +* `RGB_DISABLE_WITH_FADE_OUT` activates fade out before the keyboard is disabled by `RGB_MATRIX_TIMEOUT`. Parameters used to define the behavior are: [%header] diff --git a/keyboards/gmmk/pro/rev2/ansi/keymaps/default/keymap.c b/keyboards/gmmk/pro/rev2/ansi/keymaps/default/keymap.c index dc56a9ff8f7..30fd283d7d4 100644 --- a/keyboards/gmmk/pro/rev2/ansi/keymaps/default/keymap.c +++ b/keyboards/gmmk/pro/rev2/ansi/keymaps/default/keymap.c @@ -60,13 +60,9 @@ 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 +#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(RGB_VAD, RGB_VAI) } +}; +#endif \ No newline at end of file diff --git a/keyboards/gmmk/pro/rev2/ansi/keymaps/default/rules.mk b/keyboards/gmmk/pro/rev2/ansi/keymaps/default/rules.mk new file mode 100644 index 00000000000..a40474b4d5c --- /dev/null +++ b/keyboards/gmmk/pro/rev2/ansi/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes \ No newline at end of file diff --git a/keyboards/gmmk/pro/rev2/iso/keymaps/default/keymap.c b/keyboards/gmmk/pro/rev2/iso/keymaps/default/keymap.c index c44e4905d03..9da9bb2490d 100644 --- a/keyboards/gmmk/pro/rev2/iso/keymaps/default/keymap.c +++ b/keyboards/gmmk/pro/rev2/iso/keymaps/default/keymap.c @@ -60,13 +60,9 @@ 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; -} +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [0] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) }, + [1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) } +}; #endif diff --git a/keyboards/gmmk/pro/rev2/iso/keymaps/default/rules.mk b/keyboards/gmmk/pro/rev2/iso/keymaps/default/rules.mk new file mode 100644 index 00000000000..a40474b4d5c --- /dev/null +++ b/keyboards/gmmk/pro/rev2/iso/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes \ No newline at end of file diff --git a/keyboards/gopolar/gg86/keymaps/bongocat/keymap.c b/keyboards/gopolar/gg86/keymaps/bongocat/keymap.c index de1046c5d3d..9f233718311 100644 --- a/keyboards/gopolar/gg86/keymaps/bongocat/keymap.c +++ b/keyboards/gopolar/gg86/keymaps/bongocat/keymap.c @@ -181,7 +181,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return true; } -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_user(void) { HSV hsv = rgb_matrix_config.hsv; uint8_t time = scale16by8(g_rgb_timer, qadd8(32, 1)); hsv.h = time; @@ -206,6 +206,7 @@ void rgb_matrix_indicators_user(void) { rgb_matrix_set_color(73, 0, 0, 0); } } + return false; } #ifdef OLED_ENABLE diff --git a/keyboards/gopolar/gg86/keymaps/default/keymap.c b/keyboards/gopolar/gg86/keymaps/default/keymap.c index 070858c9586..3b0a6aa66c7 100644 --- a/keyboards/gopolar/gg86/keymaps/default/keymap.c +++ b/keyboards/gopolar/gg86/keymaps/default/keymap.c @@ -230,7 +230,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return true; } -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_user(void) { HSV hsv = rgb_matrix_config.hsv; uint8_t time = scale16by8(g_rgb_timer, qadd8(32, 1)); hsv.h = time; @@ -255,6 +255,7 @@ void rgb_matrix_indicators_user(void) { rgb_matrix_set_color(73, 0, 0, 0); } } + return false; } #ifdef OLED_ENABLE diff --git a/keyboards/gopolar/gg86/keymaps/horrortroll/keymap_stuff.h b/keyboards/gopolar/gg86/keymaps/horrortroll/keymap_stuff.h index e5f5c911517..9003cd5e6b0 100644 --- a/keyboards/gopolar/gg86/keymaps/horrortroll/keymap_stuff.h +++ b/keyboards/gopolar/gg86/keymaps/horrortroll/keymap_stuff.h @@ -75,7 +75,7 @@ enum layer_keycodes { G_PRE, //Gradient presets REF_G, //Toggle between linear and reflected gradient G_FLIP, //Flip the gradient colors - + //Custom led effect keycode RGB_C_E, //Cycle user effect }; @@ -276,7 +276,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return true; } -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_user(void) { HSV hsv = rgb_matrix_config.hsv; uint8_t time = scale16by8(g_rgb_timer, qadd8(32, 1)); hsv.h = time; @@ -301,4 +301,5 @@ void rgb_matrix_indicators_user(void) { rgb_matrix_set_color(73, 0, 0, 0); } } + return false; } diff --git a/keyboards/gopolar/gg86/keymaps/via/keymap.c b/keyboards/gopolar/gg86/keymaps/via/keymap.c index 070858c9586..3b0a6aa66c7 100644 --- a/keyboards/gopolar/gg86/keymaps/via/keymap.c +++ b/keyboards/gopolar/gg86/keymaps/via/keymap.c @@ -230,7 +230,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return true; } -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_user(void) { HSV hsv = rgb_matrix_config.hsv; uint8_t time = scale16by8(g_rgb_timer, qadd8(32, 1)); hsv.h = time; @@ -255,6 +255,7 @@ void rgb_matrix_indicators_user(void) { rgb_matrix_set_color(73, 0, 0, 0); } } + return false; } #ifdef OLED_ENABLE diff --git a/keyboards/handwired/colorlice/config.h b/keyboards/handwired/colorlice/config.h index 39ff7ffe173..2f4591b8ee3 100644 --- a/keyboards/handwired/colorlice/config.h +++ b/keyboards/handwired/colorlice/config.h @@ -40,7 +40,6 @@ along with this program. If not, see . /* RGB LEDs */ #define RGB_DI_PIN B1 -#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_KEYPRESSES #define RGB_MATRIX_FRAMEBUFFER_EFFECTS 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 6aa4f4817f7..1e6e6e58c6f 100644 --- a/keyboards/handwired/dactyl_manuform/3x5_3/keymaps/dlford/config.h +++ b/keyboards/handwired/dactyl_manuform/3x5_3/keymaps/dlford/config.h @@ -43,7 +43,7 @@ along with this program. If not, see . #define MOUSEKEY_ACCELERATED_SPEED 4800 #ifdef RGB_MATRIX_ENABLE -// # define RGB_DISABLE_TIMEOUT 300000 // number of milliseconds to wait until disabling effects +// # define RGB_MATRIX_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 (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/handwired/dactyl_manuform/3x5_3/keymaps/dlford/keymap.c b/keyboards/handwired/dactyl_manuform/3x5_3/keymaps/dlford/keymap.c index cbb1b42fca3..98dba608c59 100644 --- a/keyboards/handwired/dactyl_manuform/3x5_3/keymaps/dlford/keymap.c +++ b/keyboards/handwired/dactyl_manuform/3x5_3/keymaps/dlford/keymap.c @@ -243,7 +243,7 @@ void dynamic_macro_record_end_user(int8_t direction) { } // Indicators -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_user(void) { if (host_keyboard_led_state().caps_lock || caps_word_enabled) { // Left master rgb_matrix_set_color(3, RGB_RED); @@ -262,6 +262,7 @@ void rgb_matrix_indicators_user(void) { // Right master rgb_matrix_set_color(23, RGB_GREEN); } + return false; } // Quantum keys / Abbreviations diff --git a/keyboards/handwired/dygma/raise/ansi/ansi.c b/keyboards/handwired/dygma/raise/ansi/ansi.c index 466cdc523e6..c9e0cb288cb 100644 --- a/keyboards/handwired/dygma/raise/ansi/ansi.c +++ b/keyboards/handwired/dygma/raise/ansi/ansi.c @@ -28,7 +28,7 @@ const uint8_t led_map[RGB_MATRIX_LED_COUNT] = { 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, // right side - 36 keys includes LP - 0 + LPH, 1 + LPH, 2 + LPH, 3 + LPH, 4 + LPH, 5 + LPH, 6 + LPH, 15 + LPH, 8 + LPH, 9 + LPH, 10 + LPH, 11 + LPH, 12 + LPH, 13 + LPH, 14 + LPH, 7 + LPH, 16 + LPH, 17 + LPH, 18 + LPH, 19 + LPH, + 0 + LPH, 1 + LPH, 2 + LPH, 3 + LPH, 4 + LPH, 5 + LPH, 6 + LPH, 7 + LPH, 8 + LPH, 9 + LPH, 10 + LPH, 11 + LPH, 12 + LPH, 13 + LPH, 14 + LPH, 15 + LPH, 16 + LPH, 17 + LPH, 18 + LPH, 19 + LPH, 20 + LPH, 21 + LPH, 22 + LPH, 23 + LPH, 24 + LPH, 25 + LPH, 26 + LPH, 27 + LPH, 28 + LPH, 29 + LPH, 30 + LPH, 31 + LPH, 32 + LPH, 33 + LPH, 68 + LPH, 69 + LPH, // left under glow - 30 @@ -50,11 +50,11 @@ led_config_t g_led_config = { { { 26 , 27 , 28 , 29 , 30 , NO_LED , 31 , 32 } , // right hand - { NO_LED , 6 + LHK , 5 + LHK , 4 + LHK , 3 + LHK , 2 + LHK , 1 + LHK , 0 + LHK } , - { 14 + LHK , 13 + LHK , 12 + LHK , 11 + LHK , 10 + LHK , 9 + LHK , 8 + LHK , 7 + LHK } , - { NO_LED , 21 + LHK , 20 + LHK , 19 + LHK , 18 + LHK , 17 + LHK , 16 + LHK , 15 + LHK } , - { NO_LED , NO_LED , 27 + LHK , 26 + LHK , 25 + LHK , 24 + LHK , 23 + LHK , 22 + LHK } , - { 35 + LHK , 34 + LHK , 33 + LHK , 32 + LHK , 31 + LHK , 30 + LHK , 29 + LHK , 28 + LHK } + { 33 , 34 , 35 , 36 , 37 , 38 , 39 , NO_LED } , + { 40 , 41 , 42 , 43 , 44 , 45 , 46 , 47 } , + { 48 , 49 , 50 , 51 , 52 , 53 , 54 , NO_LED } , + { 55 , 56 , 57 , 58 , 59 , 60 , NO_LED , NO_LED } , + { 61 , 62 , 63 , 64 , 65 , 66 , 67 , 68 } }, { // generated from the svg image of the keyboard, see create-led-config.js {82, 3}, {88, 3}, {94, 3}, {100, 3}, {106, 3}, {112, 3}, {118, 3}, {84, 10}, {91, 10}, {97, 10}, {103, 10}, {109, 10}, @@ -72,7 +72,7 @@ led_config_t g_led_config = { { {173, 63}, {177, 59}, {178, 49}, {179, 40}, {179, 31}, {177, 25}, {175, 20}, {175, 15}, {123, 54} }, { 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 0, + 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, diff --git a/keyboards/handwired/dygma/raise/config.h b/keyboards/handwired/dygma/raise/config.h index 032875b67b9..1a4835cd577 100644 --- a/keyboards/handwired/dygma/raise/config.h +++ b/keyboards/handwired/dygma/raise/config.h @@ -25,3 +25,33 @@ #define DEBOUNCE 0 #define RGB_MATRIX_LED_COUNT 132 + +#ifdef RGB_MATRIX_ENABLE +// At the default flush limit of 16ms (~62.5 fps), the matrix scan rate is approximately +// ~140 scans per second under full load (when changes are being made to the LED state). +// Such a low scan rate will have impact the keyboard's accuracy for faster typists. +// +// With RGB completely disabled, the matrix scan rate is ~660 scans per second, and typing +// accuracy feels on par with the Dygma Raise Neuron. +// +// At 100ms (10 fps), the matrix scan rate is ~355 scans per second under full load, and typing +// accuracy is reasonably good. +#define RGB_MATRIX_LED_FLUSH_LIMIT 100 +#define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended + +#define RGB_MATRIX_KEYPRESSES +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS + +// 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 +#endif diff --git a/keyboards/handwired/dygma/raise/iso/iso.c b/keyboards/handwired/dygma/raise/iso/iso.c index 81c180b612f..48ba85bf902 100644 --- a/keyboards/handwired/dygma/raise/iso/iso.c +++ b/keyboards/handwired/dygma/raise/iso/iso.c @@ -50,21 +50,21 @@ led_config_t g_led_config = { { { 26 , 27 , 28 , 29 , 30 , NO_LED , 31 , 32 } , // right hand - { NO_LED , 6 + LHK , 5 + LHK , 4 + LHK , 3 + LHK , 2 + LHK , 1 + LHK , 0 + LHK } , - { 14 + LHK , 13 + LHK , 12 + LHK , 11 + LHK , 10 + LHK , 9 + LHK , 8 + LHK , 7 + LHK } , - { NO_LED , 21 + LHK , 20 + LHK , 19 + LHK , 18 + LHK , 17 + LHK , 16 + LHK , 15 + LHK } , - { NO_LED , NO_LED , 27 + LHK , 26 + LHK , 25 + LHK , 24 + LHK , 23 + LHK , 22 + LHK } , - { 35 + LHK , 34 + LHK , 33 + LHK , 32 + LHK , 31 + LHK , 30 + LHK , 29 + LHK , 28 + LHK } + { 33 , 34 , 35 , 36 , 37 , 38 , 39 , NO_LED } , + { 40 , 41 , 42 , 43 , 44 , 45 , 46 , 47 } , + { 48 , 49 , 50 , 51 , 52 , 53 , 54 , NO_LED } , + { 55 , 56 , 57 , 58 , 59 , 60 , NO_LED , NO_LED } , + { 61 , 62 , 63 , 64 , 65 , 66 , 67 , 68 } }, { // generated from the svg image of the keyboard, see create-led-config.js - {82, 3}, {88, 3}, {94, 3}, {100, 3}, {106, 3}, {112, 3}, {118, 3}, {84, 10}, {91, 10}, {97, 10}, {103, 10}, {109, 10}, + {82, 3}, {88, 3}, {94, 3}, {100, 3}, {106, 3}, {112, 3}, {118, 3}, {84, 10}, {91, 10}, {97, 10}, {103, 10}, {109, 10}, {115, 10}, {84, 16}, {92, 16}, {98, 16}, {104, 16}, {110, 16}, {116, 16}, {82, 22}, {88, 22}, {94, 22}, {100, 22}, {106, 22}, {112, 22}, {118, 22}, {83, 28}, {90, 28}, {98, 28}, {106, 28}, {116, 28}, {111, 34}, {118, 34}, {168, 3}, {159, 3}, {153, 3}, {147, 3}, {141, 3}, {135, 3}, {129, 3}, {170, 13}, {162, 10}, {156, 10}, {150, 10}, {144, 10}, - {139, 10}, {133, 10}, {127, 10}, {164, 16}, {158, 16}, {152, 16}, {146, 16}, {140, 16}, {134, 16}, {128, 16}, {166, 22}, + {139, 10}, {133, 10}, {127, 10}, {164, 16}, {158, 16}, {152, 16}, {146, 16}, {140, 16}, {134, 16}, {128, 16}, {166, 22}, {154, 22}, {148, 22}, {142, 22}, {136, 22}, {130, 22}, {170, 28}, {163, 28}, {156, 28}, {149, 28}, {140, 28}, {131, 28}, {136, 34}, {128, 34}, {78, 13}, {78, 6}, {80, 0}, {87, 0}, {95, 0}, {103, 0}, {111, 0}, {119, 0}, {122, 3}, {121, 9}, - {120, 15}, {122, 21}, {123, 27}, {123, 33}, {120, 38}, {116, 42}, {114, 48}, {112, 55}, {109, 61}, {103, 64}, {96, 64}, + {120, 15}, {122, 21}, {123, 27}, {123, 33}, {120, 38}, {116, 42}, {114, 48}, {112, 55}, {109, 61}, {103, 64}, {96, 64}, {88, 64}, {81, 63}, {76, 60}, {75, 52}, {75, 46}, {74, 38}, {74, 32}, {75, 27}, {77, 21}, {175, 10}, {175, 4}, {172, 0}, {164, 0}, {157, 0}, {149, 0}, {142, 0}, {134, 0}, {127, 0}, {123, 3}, {122, 8}, {122, 15}, {124, 21}, {124, 27}, {124, 33}, {126, 38}, {131, 42}, {134, 48}, {135, 55}, {137, 61}, {143, 63}, {150, 63}, {158, 63}, {166, 63}, {173, 63}, {177, 59}, diff --git a/keyboards/handwired/dygma/raise/leds.c b/keyboards/handwired/dygma/raise/leds.c index 4ff87ca9417..53fa3892069 100644 --- a/keyboards/handwired/dygma/raise/leds.c +++ b/keyboards/handwired/dygma/raise/leds.c @@ -24,16 +24,17 @@ #include "print.h" #include "leds.h" -struct __attribute__((packed)) cRGB { +// Color order of LEDs is Green, Red, Blue. +typedef struct PACKED { uint8_t r; uint8_t g; uint8_t b; -}; +} raiseRGB; #define LEDS_PER_HAND 72 #define LED_BANKS 9 #define LEDS_PER_BANK 8 -#define LED_BYTES_PER_BANK (sizeof(cRGB) * LEDS_PER_BANK) +#define LED_BYTES_PER_BANK (sizeof(raiseRGB) * LEDS_PER_BANK) // shifting << 1 is because drivers/chibios/i2c_master.h expects the address // shifted. @@ -44,37 +45,28 @@ struct __attribute__((packed)) cRGB { #define LEFT 0 #define RIGHT 1 -static cRGB led_state[2 * LEDS_PER_HAND]; - -void set_all_leds_to(uint8_t r, uint8_t g, uint8_t b) { - uint8_t buf[] = {TWI_CMD_LED_SET_ALL_TO, b, g, r}; - i2c_transmit(I2C_ADDR(LEFT), buf, sizeof(buf), I2C_TIMEOUT); - wait_us(10); - i2c_transmit(I2C_ADDR(RIGHT), buf, sizeof(buf), I2C_TIMEOUT); - wait_us(10); -} - -void set_led_to(int led, uint8_t r, uint8_t g, uint8_t b) { - int sled = led_map[led]; - uint8_t buf[] = {TWI_CMD_LED_SET_ONE_TO, sled & 0x1f, b, g, r}; - int hand = (sled >= LEDS_PER_HAND) ? RIGHT : LEFT; - i2c_transmit(I2C_ADDR(hand), buf, sizeof(buf), I2C_TIMEOUT); - wait_us(10); -} +static raiseRGB led_pending[2 * LEDS_PER_HAND]; +static raiseRGB led_state[2 * LEDS_PER_HAND]; static void set_color(int index, uint8_t r, uint8_t g, uint8_t b) { int sled = led_map[index]; - - led_state[sled].r = r; - led_state[sled].g = g; - led_state[sled].b = b; + // The red component of the LED is apparently stronger than the others. + // From: https://github.com/keyboardio/Kaleidoscope/blob/aba8c9ee66bbb5ded15135618d2b2964ee82b2cc/plugins/Kaleidoscope-Hardware-Dygma-Raise/src/kaleidoscope/device/dygma/raise/RaiseSide.cpp#L235-L242 + if (r >= 26) { + r -= 26; + } + led_pending[sled].r = r; + led_pending[sled].g = g; + led_pending[sled].b = b; } static void set_color_all(uint8_t r, uint8_t g, uint8_t b) { for (int i = 0; i < RGB_MATRIX_LED_COUNT; i++) set_color(i, r, g, b); } -static void init(void) {} +static void init(void) { + set_color_all(0,0,0); +} static void flush(void) { uint8_t command[1 + LED_BYTES_PER_BANK]; @@ -86,10 +78,17 @@ static void flush(void) { for (int hand = 0; hand < 2; hand++) { int addr = I2C_ADDR(hand); int i = (hand * LEDS_PER_HAND) + (bank * LEDS_PER_BANK); - uint8_t *bank_data = (uint8_t *)&led_state[i]; + + if (memcmp(&led_state[i], &led_pending[i], LED_BYTES_PER_BANK) == 0) { + // No change. + continue; + } + + // Update LED state + memcpy(&led_state[i], &led_pending[i], LED_BYTES_PER_BANK); command[0] = TWI_CMD_LED_BASE + bank; - memcpy(&command[1], bank_data, LED_BYTES_PER_BANK); + memcpy(&command[1], &led_pending[i], LED_BYTES_PER_BANK); i2c_transmit(addr, command, sizeof(command), I2C_TIMEOUT); // delay to prevent issues with the i2c bus diff --git a/keyboards/handwired/dygma/raise/post_rules.mk b/keyboards/handwired/dygma/raise/post_rules.mk new file mode 100644 index 00000000000..c6b77f75b31 --- /dev/null +++ b/keyboards/handwired/dygma/raise/post_rules.mk @@ -0,0 +1,3 @@ +ifeq ($(strip $(RGB_MATRIX_ENABLE)), yes) + SRC += leds.c +endif diff --git a/keyboards/handwired/dygma/raise/raise.c b/keyboards/handwired/dygma/raise/raise.c index d9023093b54..39e94e2e76f 100644 --- a/keyboards/handwired/dygma/raise/raise.c +++ b/keyboards/handwired/dygma/raise/raise.c @@ -17,6 +17,5 @@ #include "raise.h" void keyboard_post_init_kb(void) { - set_all_leds_to(0, 0, 0); keyboard_post_init_user(); } diff --git a/keyboards/handwired/dygma/raise/rules.mk b/keyboards/handwired/dygma/raise/rules.mk index b7ff577361a..ce7a89af8e0 100644 --- a/keyboards/handwired/dygma/raise/rules.mk +++ b/keyboards/handwired/dygma/raise/rules.mk @@ -10,7 +10,7 @@ BOOTLOADER = stm32-dfu # BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = no # Audio control and System control +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 @@ -28,6 +28,6 @@ CUSTOM_MATRIX = lite RAW_ENABLE = yes QUANTUM_LIB_SRC += i2c_master.c -SRC += leds.c matrix.c +SRC += matrix.c DEFAULT_FOLDER = handwired/dygma/raise/ansi diff --git a/keyboards/handwired/hnah108/keymaps/default/keymap.c b/keyboards/handwired/hnah108/keymaps/default/keymap.c index fd3aedc29dc..44d1e1bcebd 100644 --- a/keyboards/handwired/hnah108/keymaps/default/keymap.c +++ b/keyboards/handwired/hnah108/keymaps/default/keymap.c @@ -65,7 +65,7 @@ bool encoder_update_user(uint8_t index, bool clockwise) { return true; } -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_user(void) { led_t led_state = host_keyboard_led_state(); if (led_state.caps_lock) { @@ -77,4 +77,5 @@ void rgb_matrix_indicators_user(void) { } else { rgb_matrix_set_color(30, 0x00, 0x00, 0x00); } + return false; } diff --git a/keyboards/handwired/hnah40rgb/config.h b/keyboards/handwired/hnah40rgb/config.h index 85b5e0673fd..40c3daf5843 100644 --- a/keyboards/handwired/hnah40rgb/config.h +++ b/keyboards/handwired/hnah40rgb/config.h @@ -52,7 +52,6 @@ along with this program. If not, see . #define RGB_MATRIX_KEYPRESSES // reacts to keypresses #define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses) #define RGB_MATRIX_FRAMEBUFFER_EFFECTS -#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) #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 diff --git a/keyboards/handwired/hnah40rgb/keymaps/ansi/keymap.c b/keyboards/handwired/hnah40rgb/keymaps/ansi/keymap.c index 01676f93f83..d23ef8b00f2 100644 --- a/keyboards/handwired/hnah40rgb/keymaps/ansi/keymap.c +++ b/keyboards/handwired/hnah40rgb/keymaps/ansi/keymap.c @@ -50,8 +50,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TAB, KC_TRNS, KC_TRNS ), }; -void rgb_matrix_indicators_user(void) -{ +bool rgb_matrix_indicators_user(void) { if (IS_HOST_LED_ON(USB_LED_CAPS_LOCK)) { rgb_matrix_set_color(22, 255, 255, 255); @@ -64,4 +63,5 @@ void rgb_matrix_indicators_user(void) { rgb_matrix_set_color(45, 255, 255, 255); } -} \ No newline at end of file + return false; +} diff --git a/keyboards/handwired/hnah40rgb/keymaps/default/keymap.c b/keyboards/handwired/hnah40rgb/keymaps/default/keymap.c index 76101f704b8..7a0fcfd8df5 100644 --- a/keyboards/handwired/hnah40rgb/keymaps/default/keymap.c +++ b/keyboards/handwired/hnah40rgb/keymaps/default/keymap.c @@ -50,18 +50,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TAB, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), }; -void rgb_matrix_indicators_user(void) -{ - if (IS_HOST_LED_ON(USB_LED_CAPS_LOCK)) - { - rgb_matrix_set_color(22, 255, 255, 255); - } - if (IS_LAYER_ON(_L1)) - { - rgb_matrix_set_color(46, 255, 255, 255); - } - if (IS_LAYER_ON(_L2)) - { - rgb_matrix_set_color(45, 255, 255, 255); - } -} \ No newline at end of file +bool rgb_matrix_indicators_user(void) { + if (IS_HOST_LED_ON(USB_LED_CAPS_LOCK)) { + rgb_matrix_set_color(22, 255, 255, 255); + } + if (IS_LAYER_ON(_L1)) { + rgb_matrix_set_color(46, 255, 255, 255); + } + if (IS_LAYER_ON(_L2)) { + rgb_matrix_set_color(45, 255, 255, 255); + } + return false; +} diff --git a/keyboards/handwired/hwpm87/config.h b/keyboards/handwired/hwpm87/config.h new file mode 100644 index 00000000000..60ef15ab44e --- /dev/null +++ b/keyboards/handwired/hwpm87/config.h @@ -0,0 +1,29 @@ +// Copyright 2022 CAO THAI DUONG (@KD-MM2) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "config_common.h" + + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 18 + +/* + * 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) + * + */ +#define DIODE_DIRECTION ROW2COL + +#define MATRIX_ROW_PINS { B0, B1, B2, B3, B4, B5 } +#define MATRIX_COL_PINS { D3, D2, D1, D0, D4, C6, D7, E6, B7, F0, F1, D6, C7, B6, F7, F6, F5, F4 } + +#define LED_CAPS_LOCK_PIN D5 +#define LED_PIN_ON_STATE 0 diff --git a/keyboards/handwired/hwpm87/hwpm87.c b/keyboards/handwired/hwpm87/hwpm87.c new file mode 100644 index 00000000000..9edc09c9715 --- /dev/null +++ b/keyboards/handwired/hwpm87/hwpm87.c @@ -0,0 +1,4 @@ +// Copyright 2022 CAO THAI DUONG (@KD-MM2) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "hwpm87.h" diff --git a/keyboards/handwired/hwpm87/hwpm87.h b/keyboards/handwired/hwpm87/hwpm87.h new file mode 100644 index 00000000000..7de32eaa8c4 --- /dev/null +++ b/keyboards/handwired/hwpm87/hwpm87.h @@ -0,0 +1,24 @@ +// Copyright 2022 CAO THAI DUONG (@KD-MM2) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "quantum.h" + +#define XXX KC_NO + +#define LAYOUT( \ + K00, K02, K03, K04, K05, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, K0H, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, K1F, K1G, K1H, \ + K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, K2H, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \ + K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4D, K4G, \ + K50, K51, K53, K56, K5A, K5B, K5D, K5E, K5F, K5G, K5H \ +) { \ + { K00, XXX, K02, K03, K04, K05, XXX, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, K0H }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, XXX, K1E, K1F, K1G, K1H }, \ + { K20, XXX, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, K2H }, \ + { K30, XXX, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, XXX, XXX, XXX, XXX }, \ + { XXX, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, XXX, K4D, XXX, XXX, K4G, XXX }, \ + { K50, K51, XXX, K53, XXX, XXX, K56, XXX, XXX, XXX, K5A, K5B, XXX, K5D, K5E, K5F, K5G, K5H }, \ +} diff --git a/keyboards/handwired/hwpm87/info.json b/keyboards/handwired/hwpm87/info.json new file mode 100644 index 00000000000..90d8ad397cf --- /dev/null +++ b/keyboards/handwired/hwpm87/info.json @@ -0,0 +1,105 @@ +{ + "manufacturer": "KD-MM2", + "keyboard_name": "hwpm87", + "maintainer": "KD-MM2", + "url": "", + "usb": { + "vid": "0xFEED", + "pid": "0x0001", + "device_version": "0.0.1" + }, + "layouts": { + "LAYOUT": { + "layout": [ + { "label": "K00 (B0,D3)", "x": 0, "y": 0 }, + { "label": "K02 (B0,D1)", "x": 2, "y": 0 }, + { "label": "K03 (B0,D0)", "x": 3, "y": 0 }, + { "label": "K04 (B0,D4)", "x": 4, "y": 0 }, + { "label": "K05 (B0,C6)", "x": 5, "y": 0 }, + { "label": "K07 (B0,E6)", "x": 6.5, "y": 0 }, + { "label": "K08 (B0,B7)", "x": 7.5, "y": 0 }, + { "label": "K09 (B0,F0)", "x": 8.5, "y": 0 }, + { "label": "K0A (B0,F1)", "x": 9.5, "y": 0 }, + { "label": "K0B (B0,D5)", "x": 11, "y": 0 }, + { "label": "K0C (B0,D6)", "x": 12, "y": 0 }, + { "label": "K0D (B0,C7)", "x": 13, "y": 0 }, + { "label": "K0E (B0,E2)", "x": 14, "y": 0 }, + { "label": "K0F (B0,B6)", "x": 15.25, "y": 0 }, + { "label": "K0G (B0,F7)", "x": 16.25, "y": 0 }, + { "label": "K0H (B0,F6)", "x": 17.25, "y": 0 }, + { "label": "K10 (B1,D3)", "x": 0, "y": 1 }, + { "label": "K11 (B1,D2)", "x": 1, "y": 1 }, + { "label": "K12 (B1,D1)", "x": 2, "y": 1 }, + { "label": "K13 (B1,D0)", "x": 3, "y": 1 }, + { "label": "K14 (B1,D4)", "x": 4, "y": 1 }, + { "label": "K15 (B1,C6)", "x": 5, "y": 1 }, + { "label": "K16 (B1,D7)", "x": 6, "y": 1 }, + { "label": "K17 (B1,E6)", "x": 7, "y": 1 }, + { "label": "K18 (B1,B7)", "x": 8, "y": 1 }, + { "label": "K19 (B1,F0)", "x": 9, "y": 1 }, + { "label": "K1A (B1,F1)", "x": 10, "y": 1 }, + { "label": "K1B (B1,D5)", "x": 11, "y": 1 }, + { "label": "K1C (B1,D6)", "x": 12, "y": 1 }, + { "label": "K1E (B1,E2)", "x": 13, "y": 1, "w": 2 }, + { "label": "K1F (B1,B6)", "x": 15.25, "y": 1 }, + { "label": "K1G (B1,F7)", "x": 16.25, "y": 1 }, + { "label": "K1H (B1,F6)", "x": 17.25, "y": 1 }, + { "label": "K20 (B2,D3)", "x": 0, "y": 2, "w": 1.5 }, + { "label": "K22 (B2,D1)", "x": 1.5, "y": 2 }, + { "label": "K23 (B2,D0)", "x": 2.5, "y": 2 }, + { "label": "K24 (B2,D4)", "x": 3.5, "y": 2 }, + { "label": "K25 (B2,C6)", "x": 4.5, "y": 2 }, + { "label": "K26 (B2,D7)", "x": 5.5, "y": 2 }, + { "label": "K27 (B2,E6)", "x": 6.5, "y": 2 }, + { "label": "K28 (B2,B7)", "x": 7.5, "y": 2 }, + { "label": "K29 (B2,F0)", "x": 8.5, "y": 2 }, + { "label": "K2A (B2,F1)", "x": 9.5, "y": 2 }, + { "label": "K2B (B2,D5)", "x": 10.5, "y": 2 }, + { "label": "K2C (B2,D6)", "x": 11.5, "y": 2 }, + { "label": "K2D (B2,C7)", "x": 12.5, "y": 2 }, + { "label": "K2E (B2,E2)", "x": 13.5, "y": 2, "w": 1.5 }, + { "label": "K2F (B2,B6)", "x": 15.25, "y": 2 }, + { "label": "K2G (B2,F7)", "x": 16.25, "y": 2 }, + { "label": "K2H (B2,F6)", "x": 17.25, "y": 2 }, + { "label": "K30 (B3,D3)", "x": 0, "y": 3, "w": 1.75 }, + { "label": "K32 (B3,D1)", "x": 1.75, "y": 3 }, + { "label": "K33 (B3,D0)", "x": 2.75, "y": 3 }, + { "label": "K34 (B3,D4)", "x": 3.75, "y": 3 }, + { "label": "K35 (B3,C6)", "x": 4.75, "y": 3 }, + { "label": "K36 (B3,D7)", "x": 5.75, "y": 3 }, + { "label": "K37 (B3,E6)", "x": 6.75, "y": 3 }, + { "label": "K38 (B3,B7)", "x": 7.75, "y": 3 }, + { "label": "K39 (B3,F0)", "x": 8.75, "y": 3 }, + { "label": "K3A (B3,F1)", "x": 9.75, "y": 3 }, + { "label": "K3B (B3,D5)", "x": 10.75, "y": 3 }, + { "label": "K3C (B3,D6)", "x": 11.75, "y": 3 }, + { "label": "K3D (B3,C7)", "x": 12.75, "y": 3, "w": 2.25 }, + { "label": "K41 (B4,D2)", "x": 0, "y": 4, "w": 2.25 }, + { "label": "K42 (B4,D1)", "x": 2.25, "y": 4 }, + { "label": "K43 (B4,D0)", "x": 3.25, "y": 4 }, + { "label": "K44 (B4,D4)", "x": 4.25, "y": 4 }, + { "label": "K45 (B4,C6)", "x": 5.25, "y": 4 }, + { "label": "K46 (B4,D7)", "x": 6.25, "y": 4 }, + { "label": "K47 (B4,E6)", "x": 7.25, "y": 4 }, + { "label": "K48 (B4,B7)", "x": 8.25, "y": 4 }, + { "label": "K49 (B4,F0)", "x": 9.25, "y": 4 }, + { "label": "K4A (B4,F1)", "x": 10.25, "y": 4 }, + { "label": "K4B (B4,D5)", "x": 11.25, "y": 4 }, + { "label": "K4D (B4,C7)", "x": 12.25, "y": 4, "w": 2.75 }, + { "label": "K4G (B4,F7)", "x": 16.25, "y": 4 }, + { "label": "K50 (B5,D3)", "x": 0, "y": 5, "w": 1.25 }, + { "label": "K51 (B5,D2)", "x": 1.25, "y": 5, "w": 1.25 }, + { "label": "K53 (B5,D0)", "x": 2.5, "y": 5, "w": 1.25 }, + { "label": "K56 (B5,D7)", "x": 3.75, "y": 5, "w": 6.25 }, + { "label": "K5A (B5,F1)", "x": 10, "y": 5, "w": 1.25 }, + { "label": "K5B (B5,D5)", "x": 11.25, "y": 5, "w": 1.25 }, + { "label": "K5D (B5,C7)", "x": 12.5, "y": 5, "w": 1.25 }, + { "label": "K5E (B5,E2)", "x": 13.75, "y": 5, "w": 1.25 }, + { "label": "K5F (B5,B6)", "x": 15.25, "y": 5 }, + { "label": "K5G (B5,F7)", "x": 16.25, "y": 5 }, + { "label": "K5H (B5,F6)", "x": 17.25, "y": 5 } + ] + } + } + +} diff --git a/keyboards/handwired/hwpm87/keymaps/default/keymap.c b/keyboards/handwired/hwpm87/keymaps/default/keymap.c new file mode 100644 index 00000000000..850acd20250 --- /dev/null +++ b/keyboards/handwired/hwpm87/keymaps/default/keymap.c @@ -0,0 +1,26 @@ +// Copyright 2022 CAO THAI DUONG (@KD-MM2) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT( /* BASE Layer */ + 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_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, MO(1), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT( /* MO(Fn) Layer */ + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MPRV, KC_MNXT, KC_MPLY, KC_MSTP, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_LNG2, KC_LNG1, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO + ) + +}; diff --git a/keyboards/handwired/hwpm87/readme.md b/keyboards/handwired/hwpm87/readme.md new file mode 100644 index 00000000000..f0f4b3db2e7 --- /dev/null +++ b/keyboards/handwired/hwpm87/readme.md @@ -0,0 +1,35 @@ +# Handwired 87 keys + +![hwpm87](https://i.imgur.com/DLqdtAWh.jpeg) + +Repaired from 87 keys keyboard using a Pro Micro + +* Keyboard Maintainer: [KD-MM2](https://github.com/KD-MM2) +* Hardware Supported: Pro Micro(need to solder more pins) or any board with ATMega32u4 +* Hardware Availability: N/A (private board, might open source) + +First, if you have Pro Micro + Checkout these image for more: ![Pin map](https://i.imgur.com/SvZ9rGQ.jpeg) ![Usabled Pins](https://i.imgur.com/Nr4cWP5.jpeg) + Keymaps/Handwiring: ![Handwiring](https://i.imgur.com/G1izHd6.png) +If you have 25 GPIOs board, there is nothing to do. + +Second, if you are using a Capslock LED, define LED pin in: [config.h#34](https://github.com/KD-MM2/qmk_firmware/blob/hwpm87/keyboards/hwpm87/config.h#L34), +and check the LED_PIN_ON_STATE if you get reversed led state: [config.h#35](https://github.com/KD-MM2/qmk_firmware/blob/hwpm87/keyboards/hwpm87/config.h#L35) + +Make example for this keyboard (after setting up your build environment): + + make handwired/hwpm87:default + +Flashing example for this keyboard: + + make handwired/hwpm87: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**: Plug cable, open QMK Toolbox and short RST pin and GND pin, then you will see it in flashmode +* **Keycode in layout**: Press the key mapped to `RESET` if it is available diff --git a/keyboards/handwired/hwpm87/rules.mk b/keyboards/handwired/hwpm87/rules.mk new file mode 100644 index 00000000000..7f42dae592e --- /dev/null +++ b/keyboards/handwired/hwpm87/rules.mk @@ -0,0 +1,20 @@ +# 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 = no # 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 +AUDIO_ENABLE = no # Audio output + + diff --git a/keyboards/handwired/jscotto/scotto9/info.json b/keyboards/handwired/jscotto/scotto9/info.json new file mode 100644 index 00000000000..09ae9eea772 --- /dev/null +++ b/keyboards/handwired/jscotto/scotto9/info.json @@ -0,0 +1,48 @@ +{ + "manufacturer": "Joe Scotto", + "keyboard_name": "Scotto9", + "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 + "cols": ["D4", "C6", "D7"], + + // 15, 14, 16 + "rows": ["B1", "B3", "B2"] + }, + "processor": "atmega32u4", + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0x0000", + "vid": "0xFEED" + }, + "layouts": { + "LAYOUT_ortho_3x3": { + "layout": [ + { "matrix": [0, 0], "x": 0, "y": 0 }, + { "matrix": [0, 1], "x": 1, "y": 0 }, + { "matrix": [0, 2], "x": 2, "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 } + + // Row 3 + { "matrix": [2, 0], "x": 0, "y": 2 }, + { "matrix": [2, 1], "x": 1, "y": 2 }, + { "matrix": [2, 2], "x": 2, "y": 2 } + ] + } + } +} diff --git a/keyboards/handwired/jscotto/scotto9/keymaps/default/keymap.c b/keyboards/handwired/jscotto/scotto9/keymaps/default/keymap.c new file mode 100644 index 00000000000..eec8d684ada --- /dev/null +++ b/keyboards/handwired/jscotto/scotto9/keymaps/default/keymap.c @@ -0,0 +1,27 @@ +/* +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 + +// Keymap +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_ortho_3x3( + KC_1, KC_2, KC_3, + KC_4, KC_5, KC_6, + KC_7, KC_8, KC_9 + ) +}; diff --git a/keyboards/handwired/jscotto/scotto9/readme.md b/keyboards/handwired/jscotto/scotto9/readme.md new file mode 100644 index 00000000000..2e5291cba73 --- /dev/null +++ b/keyboards/handwired/jscotto/scotto9/readme.md @@ -0,0 +1,25 @@ +# Scotto9 + +![Scotto9](https://imgur.com/inbmNSEh.jpeg) + +A 9 key handwired macropad. 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/scotto9:default + +Flashing example for this keyboard: + + make handwired/jscotto/scotto9: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/scotto9/rules.mk b/keyboards/handwired/jscotto/scotto9/rules.mk new file mode 100644 index 00000000000..6e7633bfe01 --- /dev/null +++ b/keyboards/handwired/jscotto/scotto9/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/handwired/jscotto/scottocmd/config.h b/keyboards/handwired/jscotto/scottocmd/config.h new file mode 100644 index 00000000000..db72806f865 --- /dev/null +++ b/keyboards/handwired/jscotto/scottocmd/config.h @@ -0,0 +1,25 @@ +/* +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 tab key for boot magic +#define BOOTMAGIC_LITE_ROW 1 +#define BOOTMAGIC_LITE_COLUMN 0 + +// OLED +#define OLED_DISPLAY_128X64 \ No newline at end of file diff --git a/keyboards/handwired/jscotto/scottocmd/info.json b/keyboards/handwired/jscotto/scottocmd/info.json new file mode 100644 index 00000000000..b2040fb7ab7 --- /dev/null +++ b/keyboards/handwired/jscotto/scottocmd/info.json @@ -0,0 +1,96 @@ +{ + "manufacturer": "Joe Scotto", + "keyboard_name": "ScottoCMD", + "maintainer": "joe-scotto", + "bootloader": "caterina", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + // TX0, RX1, 4, 5, 6, 7, 8, 9, A3, A2, A1 + "cols": [ + "D3", + "D2", + "D4", + "C6", + "D7", + "E6", + "B4", + "B5", + "F4", + "F5", + "F6" + ], + + // A0, 15, 14, 16, 10 + "rows": ["F7", "B1", "B3", "B2", "B6"] + }, + "processor": "atmega32u4", + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0x0000", + "vid": "0xFEED" + }, + "layouts": { + "LAYOUT_ortho_4_3x10_4": { + "layout": [ + // Row 1 (Macros) + { "matrix": [0, 7], "x": 7, "y": 0 }, + { "matrix": [0, 8], "x": 8, "y": 0 }, + { "matrix": [0, 9], "x": 9, "y": 0 }, + { "matrix": [0, 10], "x": 10, "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 }, + { "matrix": [1, 10], "x": 10, "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 }, + { "matrix": [2, 10], "x": 10, "y": 2 }, + + // Row 4 + { "matrix": [3, 1], "x": 1, "y": 3 }, + { "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 }, + { "matrix": [3, 8], "x": 8, "y": 3 }, + { "matrix": [3, 9], "x": 9, "y": 3 }, + { "matrix": [3, 10], "x": 10, "y": 3 }, + + // Row 5 + { "matrix": [4, 1], "x": 1, "y": 4 }, + { "matrix": [4, 5], "x": 5, "y": 4 }, + { "matrix": [4, 9], "x": 9, "y": 4 }, + { "matrix": [4, 10], "x": 10, "y": 4 } + ] + } + } +} diff --git a/keyboards/handwired/jscotto/scottocmd/keymaps/default/config.h b/keyboards/handwired/jscotto/scottocmd/keymaps/default/config.h new file mode 100644 index 00000000000..8723c294cb5 --- /dev/null +++ b/keyboards/handwired/jscotto/scottocmd/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/scottocmd/keymaps/default/keymap.c b/keyboards/handwired/jscotto/scottocmd/keymaps/default/keymap.c new file mode 100644 index 00000000000..398178bf5be --- /dev/null +++ b/keyboards/handwired/jscotto/scottocmd/keymaps/default/keymap.c @@ -0,0 +1,515 @@ +/* +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_4_3x10_4( + KC_LCTL, KC_2, KC_3, TD(TD_ESC_SPOTLIGHT_EMOJI), + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_BSPC, + KC_ENT, 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, LGUI_T(KC_SPC), LT(1, KC_TAB), LT(2, KC_ENT) + ), + [1] = LAYOUT_ortho_4_3x10_4( + KC_LCTL, KC_2, KC_3, TD(TD_ESC_SPOTLIGHT_EMOJI), + KC_TAB, KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL, + KC_ENT, 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, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS + ), + [2] = LAYOUT_ortho_4_3x10_4( + KC_LCTL, KC_2, KC_3, TD(TD_ESC_SPOTLIGHT_EMOJI), + KC_TAB, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC, + KC_ENT, 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_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS + ), + [3] = LAYOUT_ortho_4_3x10_4( + KC_LCTL, KC_2, KC_3, TD(TD_ESC_SPOTLIGHT_EMOJI), + KC_TAB, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(4), + KC_ENT, 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, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS + ), + [4] = LAYOUT_ortho_4_3x10_4( + KC_1, KC_2, KC_3, TD(TD_ESC_WINDOWS_EMOJI), + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_BSPC, + KC_ENT, 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_SPC, LT(5, KC_TAB), LT(6, KC_ENT) + ), + [5] = LAYOUT_ortho_4_3x10_4( + KC_1, KC_2, KC_3, TD(TD_ESC_WINDOWS_EMOJI), + KC_TAB, KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL, + KC_ENT, 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_SPC, KC_TRNS, KC_TRNS + ), + [6] = LAYOUT_ortho_4_3x10_4( + KC_1, KC_2, KC_3, TD(TD_ESC_WINDOWS_EMOJI), + KC_TAB, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC, + KC_ENT, 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_LCTL, KC_SPC, KC_TRNS, KC_TRNS + ), + [7] = LAYOUT_ortho_4_3x10_4( + KC_1, KC_2, KC_3, TD(TD_ESC_WINDOWS_EMOJI), + KC_TAB, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(0), + KC_ENT, 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_SPC, KC_TRNS, KC_TRNS + ) +}; + +// OLED +#ifdef OLED_ENABLE +// WPM responsiveness +#define IDLE_FRAMES 5 // How many idle frames in animation +#define IDLE_SPEED 20 // Speed at which animation idles +#define TAP_FRAMES 2 // How many tapping frames +#define TAP_SPEED 40 // WPM to trigger Bongo +#define ANIMATION_FRAME_DURATION 200 // MS duration of each frame +#define ANIMATION_SIZE 256 // Number of bytes per animation frame + +uint32_t anim_timer = 0; +uint32_t anim_sleep = 0; +uint8_t current_idle_frame = 0; +uint8_t current_tap_frame = 0; + +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + return OLED_ROTATION_90; // flips the display 180 degrees if offhand +} + +static void render_animation(void) { + static const char PROGMEM idle[IDLE_FRAMES][ANIMATION_SIZE] = { + { + 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, 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, + 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, + 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, 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, 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, + 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, + 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, 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, 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, + 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, + 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, 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, 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, + 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, + 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, 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, 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, + 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, + 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 + } + }; + static const char PROGMEM prep[][ANIMATION_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, 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, 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, + 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, + 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 + } + }; + static const char PROGMEM tap[TAP_FRAMES][ANIMATION_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, 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, 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, + 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, + 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, 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, 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, + 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, + 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 + } + }; + + void animation_phase(void) { + // Set cursor to draw from the bottom up + oled_set_cursor(128, 0); + + 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)], ANIMATION_SIZE); + } + + // Start prep image + if (get_current_wpm() > IDLE_SPEED && get_current_wpm() < TAP_SPEED) { + oled_write_raw_P(prep[0], ANIMATION_SIZE); + } + + // Start tap animation + 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)], ANIMATION_SIZE); + } + } + if (get_current_wpm() != 000) { + oled_on(); // Enables OLED on any alpha keypress + + if (timer_elapsed32(anim_timer) > ANIMATION_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) > ANIMATION_FRAME_DURATION) { + anim_timer = timer_read32(); + animation_phase(); + } + } + } +} + +// Draw to OLED +bool oled_task_user() { + // Caps lock text + led_t led_state = host_keyboard_led_state(); + oled_set_cursor(0,1); + oled_write_P(led_state.caps_lock ? PSTR(" Caps Lock "): PSTR(" ScottoCMD "), false); + + //WPM text + oled_set_cursor(0, 9); + oled_write(get_u8_str(get_current_wpm(), '0'), false); + oled_write_P(PSTR(" WPM"), false); + + static const char PROGMEM logos[][256] = { + // Apple + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x70, 0x78, 0x7c, 0x3e, 0x1f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xf0, 0xfc, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, + 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3e, 0x0e, 0x04, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xc0, 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, 0x03, 0x0f, 0x1f, 0x7f, 0x7f, 0xff, 0xff, 0xff, 0x7f, 0x7f, 0x7f, + 0x7f, 0x7f, 0x7f, 0x7f, 0xff, 0xff, 0xff, 0x7f, 0x7f, 0x3f, 0x0f, 0x07, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + + }, + + // Windows + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xf0, 0xf8, 0xf8, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, + 0xf8, 0xf8, 0x00, 0x80, 0xe0, 0xc0, 0xc0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0xc0, 0x40, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xb8, 0x9f, 0x9f, 0x9f, 0x9f, 0x8f, 0x9f, 0x9f, 0x9f, 0x1f, 0x3f, 0x3f, + 0x07, 0xc0, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x07, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x03, 0xe0, + 0xfc, 0xfc, 0xf9, 0xf9, 0xf9, 0xf3, 0xf3, 0xf3, 0xfb, 0xfb, 0xf9, 0x19, 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, + 0x02, 0x03, 0x03, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x03, 0x03, 0x07, 0x01, 0x00, 0x1e, 0x1f, + 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x1f, 0x1f, 0x0f, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + + }, + + // Code + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xc0, 0xe0, 0xf0, 0x78, 0x3c, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, + 0xf8, 0xfc, 0x3f, 0x0f, 0x03, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x3c, 0x78, 0xf0, 0xe0, 0xc0, 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, + 0x01, 0x03, 0x07, 0x0f, 0x3e, 0x3c, 0x38, 0x00, 0x00, 0x00, 0xc0, 0xf0, 0xfc, 0x7e, 0x1f, 0x07, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x3c, 0x3e, 0x0f, 0x07, 0x03, 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 + }, + + // Number + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0x1f, + 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x1e, 0x1e, 0x1e, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x1e, + 0x1e, 0x1e, 0xbe, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x1e, 0x1e, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x78, 0x78, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x78, 0x78, + 0x78, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x78, 0x78, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, + 0xc0, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + + }, + + // Function + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xf0, + 0xf8, 0xfc, 0xfe, 0xfe, 0xff, 0x9f, 0x0f, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x80, 0xc0, 0xc0, 0x8f, 0x3f, + 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfc, 0xf8, 0xf8, 0xfc, 0xfe, 0x7f, 0x3f, 0x0f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xc0, 0xe0, 0xf0, 0xf8, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x3e, + 0x1e, 0x0c, 0x01, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 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, + 0x78, 0xfc, 0xff, 0xff, 0xff, 0x7f, 0x7f, 0x3f, 0x1f, 0x0f, 0x07, 0x03, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }, + + // Caps Lock + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0xc0, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, + 0xc0, 0xc0, 0xc0, 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, + 0xe0, 0xf8, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfc, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x03, 0x03, 0x07, 0x07, 0x0f, 0x0f, 0x1f, 0x1f, 0x3f, 0x3f, 0x3f, 0x7f, 0x7f, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xf8, 0xf8, 0xf0, 0xe0, 0xe0, 0xc0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x03, 0x03, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x03, 0x03, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + } + }; + + // Layer images + oled_set_cursor(32, 0); + switch (get_highest_layer(layer_state)) { + case _MAC_DEFAULT : + oled_write_raw_P(logos[0], sizeof(logos[0])); + break; + case _WIN_DEFAULT : + oled_write_raw_P(logos[1], sizeof(logos[1])); + break; + case _MAC_CODE : + case _WIN_CODE : + oled_write_raw_P(logos[2], sizeof(logos[2])); + break; + case _MAC_NUM : + case _WIN_NUM : + oled_write_raw_P(logos[3], sizeof(logos[3])); + break; + case _MAC_FUNC : + case _WIN_FUNC : + oled_write_raw_P(logos[4], sizeof(logos[4])); + break; + } + + // Render Bongo Cat + render_animation(); + + return false; +} +#endif diff --git a/keyboards/handwired/jscotto/scottocmd/keymaps/default/rules.mk b/keyboards/handwired/jscotto/scottocmd/keymaps/default/rules.mk new file mode 100644 index 00000000000..bcee933e75e --- /dev/null +++ b/keyboards/handwired/jscotto/scottocmd/keymaps/default/rules.mk @@ -0,0 +1,2 @@ +WPM_ENABLE = yes +TAP_DANCE_ENABLE = yes diff --git a/keyboards/handwired/jscotto/scottocmd/readme.md b/keyboards/handwired/jscotto/scottocmd/readme.md new file mode 100644 index 00000000000..b08d02d678e --- /dev/null +++ b/keyboards/handwired/jscotto/scottocmd/readme.md @@ -0,0 +1,25 @@ +# ScottoCMD + +![ScottoCMD](https://i.imgur.com/rxiMZNnh.jpg) + +A 40 key handwired ortholinear keyboard with non-ortho bottom row. Featuring a 128x64 OLED display along with a 6.25u spacebar. 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/scottocmd:default + +Flashing example for this keyboard: + + make handwired/jscotto/scottocmd:default + +# Bootloader + +Uses [bootmagic](https://github.com/qmk/qmk_firmware/blob/master/docs/feature_bootmagic.md) allowing you to hold the top left key (1, 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/scottocmd/rules.mk b/keyboards/handwired/jscotto/scottocmd/rules.mk new file mode 100644 index 00000000000..9f00574d5d0 --- /dev/null +++ b/keyboards/handwired/jscotto/scottocmd/rules.mk @@ -0,0 +1,2 @@ +OLED_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/handwired/onekey/blackpill_f401/config.h b/keyboards/handwired/onekey/blackpill_f401/config.h index 2554e2207c2..05f3f077639 100644 --- a/keyboards/handwired/onekey/blackpill_f401/config.h +++ b/keyboards/handwired/onekey/blackpill_f401/config.h @@ -18,13 +18,10 @@ #include "config_common.h" -#define MATRIX_COL_PINS { B0 } -#define MATRIX_ROW_PINS { A7 } - -#define BACKLIGHT_PIN A0 #define BACKLIGHT_PWM_DRIVER PWMD5 #define BACKLIGHT_PWM_CHANNEL 1 - -#define RGB_DI_PIN A1 +#define BACKLIGHT_PAL_MODE 2 #define ADC_PIN A0 + +#define RGB_CI_PIN A2 diff --git a/keyboards/handwired/onekey/blackpill_f401/halconf.h b/keyboards/handwired/onekey/blackpill_f401/halconf.h index 020a7722f0d..4982bb5b49a 100644 --- a/keyboards/handwired/onekey/blackpill_f401/halconf.h +++ b/keyboards/handwired/onekey/blackpill_f401/halconf.h @@ -21,6 +21,8 @@ #pragma once +#define HAL_USE_ADC TRUE + #define HAL_USE_I2C TRUE #define HAL_USE_PWM TRUE diff --git a/keyboards/handwired/onekey/blackpill_f401/info.json b/keyboards/handwired/onekey/blackpill_f401/info.json index 50afb4b9b0a..b79b17b0009 100644 --- a/keyboards/handwired/onekey/blackpill_f401/info.json +++ b/keyboards/handwired/onekey/blackpill_f401/info.json @@ -1,3 +1,14 @@ { - "keyboard_name": "Onekey Blackpill STM32F401" + "keyboard_name": "Onekey Blackpill STM32F401", + "development_board": "blackpill_f401", + "matrix_pins": { + "cols": ["B0"], + "rows": ["A7"] + }, + "backlight": { + "pin": "A0" + }, + "rgblight": { + "pin": "A1" + } } diff --git a/keyboards/handwired/onekey/blackpill_f401/mcuconf.h b/keyboards/handwired/onekey/blackpill_f401/mcuconf.h index e614a9dfa93..1aa0fe4ce7d 100644 --- a/keyboards/handwired/onekey/blackpill_f401/mcuconf.h +++ b/keyboards/handwired/onekey/blackpill_f401/mcuconf.h @@ -18,6 +18,9 @@ #include_next "mcuconf.h" +#undef STM32_ADC_USE_ADC1 +#define STM32_ADC_USE_ADC1 TRUE + #undef STM32_I2C_USE_I2C1 #define STM32_I2C_USE_I2C1 TRUE diff --git a/keyboards/handwired/onekey/blackpill_f401/rules.mk b/keyboards/handwired/onekey/blackpill_f401/rules.mk index 1fec226e9b3..1071cf62ee3 100644 --- a/keyboards/handwired/onekey/blackpill_f401/rules.mk +++ b/keyboards/handwired/onekey/blackpill_f401/rules.mk @@ -1,8 +1 @@ -# MCU name -MCU = STM32F401 -BOARD = BLACKPILL_STM32_F401 - -# Bootloader selection -BOOTLOADER = stm32-dfu - KEYBOARD_SHARED_EP = yes diff --git a/keyboards/handwired/onekey/blackpill_f411/config.h b/keyboards/handwired/onekey/blackpill_f411/config.h index 9e9737fbf5e..c890043b099 100644 --- a/keyboards/handwired/onekey/blackpill_f411/config.h +++ b/keyboards/handwired/onekey/blackpill_f411/config.h @@ -18,17 +18,14 @@ #include "config_common.h" -#define MATRIX_COL_PINS { B0 } -#define MATRIX_ROW_PINS { A7 } - -#define BACKLIGHT_PIN A0 #define BACKLIGHT_PWM_DRIVER PWMD5 #define BACKLIGHT_PWM_CHANNEL 1 - -#define RGB_DI_PIN A1 +#define BACKLIGHT_PAL_MODE 2 #define ADC_PIN A0 +#define RGB_CI_PIN A2 + #define SOLENOID_PIN B12 #define SOLENOID_PINS { B12, B13, B14, B15 } #define SOLENOID_PINS_ACTIVE_STATE { high, high, low } diff --git a/keyboards/handwired/onekey/blackpill_f411/halconf.h b/keyboards/handwired/onekey/blackpill_f411/halconf.h index 4a0da20890c..8225cc72088 100644 --- a/keyboards/handwired/onekey/blackpill_f411/halconf.h +++ b/keyboards/handwired/onekey/blackpill_f411/halconf.h @@ -21,6 +21,8 @@ #pragma once +#define HAL_USE_ADC TRUE + #define HAL_USE_I2C TRUE #define HAL_USE_PWM TRUE diff --git a/keyboards/handwired/onekey/blackpill_f411/info.json b/keyboards/handwired/onekey/blackpill_f411/info.json index 0b2c14d5b98..19c6cbfed97 100644 --- a/keyboards/handwired/onekey/blackpill_f411/info.json +++ b/keyboards/handwired/onekey/blackpill_f411/info.json @@ -1,3 +1,14 @@ { - "keyboard_name": "Onekey Blackpill STM32F411" + "keyboard_name": "Onekey Blackpill STM32F411", + "development_board": "blackpill_f411", + "matrix_pins": { + "cols": ["B0"], + "rows": ["A7"] + }, + "backlight": { + "pin": "A0" + }, + "rgblight": { + "pin": "A1" + } } diff --git a/keyboards/handwired/onekey/blackpill_f411/mcuconf.h b/keyboards/handwired/onekey/blackpill_f411/mcuconf.h index e614a9dfa93..1aa0fe4ce7d 100644 --- a/keyboards/handwired/onekey/blackpill_f411/mcuconf.h +++ b/keyboards/handwired/onekey/blackpill_f411/mcuconf.h @@ -18,6 +18,9 @@ #include_next "mcuconf.h" +#undef STM32_ADC_USE_ADC1 +#define STM32_ADC_USE_ADC1 TRUE + #undef STM32_I2C_USE_I2C1 #define STM32_I2C_USE_I2C1 TRUE diff --git a/keyboards/handwired/onekey/blackpill_f411/rules.mk b/keyboards/handwired/onekey/blackpill_f411/rules.mk index cd1657335d9..1071cf62ee3 100644 --- a/keyboards/handwired/onekey/blackpill_f411/rules.mk +++ b/keyboards/handwired/onekey/blackpill_f411/rules.mk @@ -1,8 +1 @@ -# MCU name -MCU = STM32F411 -BOARD = BLACKPILL_STM32_F411 - -# Bootloader selection -BOOTLOADER = stm32-dfu - KEYBOARD_SHARED_EP = yes diff --git a/keyboards/handwired/onekey/blackpill_f411_tinyuf2/config.h b/keyboards/handwired/onekey/blackpill_f411_tinyuf2/config.h index f4b589c6d29..2b60320fc10 100755 --- a/keyboards/handwired/onekey/blackpill_f411_tinyuf2/config.h +++ b/keyboards/handwired/onekey/blackpill_f411_tinyuf2/config.h @@ -18,13 +18,10 @@ #include "config_common.h" -#define MATRIX_COL_PINS { B0 } -#define MATRIX_ROW_PINS { A7 } - -#define BACKLIGHT_PIN A0 #define BACKLIGHT_PWM_DRIVER PWMD5 #define BACKLIGHT_PWM_CHANNEL 1 - -#define RGB_DI_PIN A1 +#define BACKLIGHT_PAL_MODE 2 #define ADC_PIN A0 + +#define RGB_CI_PIN A2 diff --git a/keyboards/handwired/onekey/blackpill_f411_tinyuf2/halconf.h b/keyboards/handwired/onekey/blackpill_f411_tinyuf2/halconf.h index e15870984f3..00aca25c36a 100644 --- a/keyboards/handwired/onekey/blackpill_f411_tinyuf2/halconf.h +++ b/keyboards/handwired/onekey/blackpill_f411_tinyuf2/halconf.h @@ -16,7 +16,10 @@ #pragma once +#define HAL_USE_ADC TRUE + #define HAL_USE_I2C TRUE + #define HAL_USE_PWM TRUE #include_next diff --git a/keyboards/handwired/onekey/blackpill_f411_tinyuf2/info.json b/keyboards/handwired/onekey/blackpill_f411_tinyuf2/info.json index 59cdec59f7e..3acccb7148e 100644 --- a/keyboards/handwired/onekey/blackpill_f411_tinyuf2/info.json +++ b/keyboards/handwired/onekey/blackpill_f411_tinyuf2/info.json @@ -1,3 +1,16 @@ { - "keyboard_name": "Onekey Blackpill STM32F411 TinyUF2" + "keyboard_name": "Onekey Blackpill STM32F411 TinyUF2", + "processor": "STM32F411", + "bootloader": "tinyuf2", + "board": "BLACKPILL_STM32_F411", + "matrix_pins": { + "cols": ["B0"], + "rows": ["A7"] + }, + "backlight": { + "pin": "A0" + }, + "rgblight": { + "pin": "A1" + } } diff --git a/keyboards/handwired/onekey/blackpill_f411_tinyuf2/mcuconf.h b/keyboards/handwired/onekey/blackpill_f411_tinyuf2/mcuconf.h index d003af03e56..fcb7d84f969 100755 --- a/keyboards/handwired/onekey/blackpill_f411_tinyuf2/mcuconf.h +++ b/keyboards/handwired/onekey/blackpill_f411_tinyuf2/mcuconf.h @@ -18,6 +18,9 @@ #include_next "mcuconf.h" +#undef STM32_ADC_USE_ADC1 +#define STM32_ADC_USE_ADC1 TRUE + #undef STM32_I2C_USE_I2C1 #define STM32_I2C_USE_I2C1 TRUE diff --git a/keyboards/handwired/onekey/blackpill_f411_tinyuf2/rules.mk b/keyboards/handwired/onekey/blackpill_f411_tinyuf2/rules.mk index 2c38e9b580b..1071cf62ee3 100755 --- a/keyboards/handwired/onekey/blackpill_f411_tinyuf2/rules.mk +++ b/keyboards/handwired/onekey/blackpill_f411_tinyuf2/rules.mk @@ -1,8 +1 @@ -# MCU name -MCU = STM32F411 -BOARD = BLACKPILL_STM32_F411 - -# Bootloader selection -BOOTLOADER = tinyuf2 - KEYBOARD_SHARED_EP = yes diff --git a/keyboards/handwired/onekey/bluepill/config.h b/keyboards/handwired/onekey/bluepill/config.h index 0f85ad91c75..79fa79595a4 100644 --- a/keyboards/handwired/onekey/bluepill/config.h +++ b/keyboards/handwired/onekey/bluepill/config.h @@ -18,13 +18,9 @@ #include "config_common.h" -#define MATRIX_COL_PINS { B0 } -#define MATRIX_ROW_PINS { A7 } - -#define BACKLIGHT_PIN A0 #define BACKLIGHT_PWM_DRIVER PWMD2 #define BACKLIGHT_PWM_CHANNEL 1 -#define RGB_DI_PIN A1 - #define ADC_PIN A0 + +#define RGB_CI_PIN A2 diff --git a/keyboards/handwired/onekey/bluepill/halconf.h b/keyboards/handwired/onekey/bluepill/halconf.h index 923b4e52d24..dbc3e82a79a 100644 --- a/keyboards/handwired/onekey/bluepill/halconf.h +++ b/keyboards/handwired/onekey/bluepill/halconf.h @@ -21,6 +21,8 @@ #pragma once +#define HAL_USE_ADC TRUE + #define HAL_USE_PWM TRUE #include_next diff --git a/keyboards/handwired/onekey/bluepill/info.json b/keyboards/handwired/onekey/bluepill/info.json index 2126c62b053..7bef2db1708 100644 --- a/keyboards/handwired/onekey/bluepill/info.json +++ b/keyboards/handwired/onekey/bluepill/info.json @@ -1,3 +1,14 @@ { - "keyboard_name": "Onekey Bluepill STM32F103" + "keyboard_name": "Onekey Bluepill STM32F103", + "development_board": "bluepill", + "matrix_pins": { + "cols": ["B0"], + "rows": ["A7"] + }, + "backlight": { + "pin": "A0" + }, + "rgblight": { + "pin": "A1" + } } diff --git a/keyboards/handwired/onekey/bluepill/mcuconf.h b/keyboards/handwired/onekey/bluepill/mcuconf.h index 5e94a97e21e..39834c135b6 100644 --- a/keyboards/handwired/onekey/bluepill/mcuconf.h +++ b/keyboards/handwired/onekey/bluepill/mcuconf.h @@ -23,6 +23,9 @@ #include_next +#undef STM32_ADC_USE_ADC1 +#define STM32_ADC_USE_ADC1 TRUE + #undef STM32_PWM_USE_TIM2 #define STM32_PWM_USE_TIM2 TRUE diff --git a/keyboards/handwired/onekey/bluepill/rules.mk b/keyboards/handwired/onekey/bluepill/rules.mk index 019b1130d99..a92b0993283 100644 --- a/keyboards/handwired/onekey/bluepill/rules.mk +++ b/keyboards/handwired/onekey/bluepill/rules.mk @@ -1,8 +1,2 @@ -# MCU name -MCU = STM32F103 - -# Bootloader selection -BOOTLOADER = stm32duino - # Enter lower-power sleep mode when on the ChibiOS idle thread OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/handwired/onekey/bluepill_f103c6/config.h b/keyboards/handwired/onekey/bluepill_f103c6/config.h index 903277bd3bb..8b62ed86f23 100644 --- a/keyboards/handwired/onekey/bluepill_f103c6/config.h +++ b/keyboards/handwired/onekey/bluepill_f103c6/config.h @@ -18,18 +18,13 @@ #include "config_common.h" -#define MATRIX_COL_PINS { B0 } -#define MATRIX_ROW_PINS { A7 } -#define UNUSED_PINS - -#define BACKLIGHT_PIN A0 #define BACKLIGHT_PWM_DRIVER PWMD2 #define BACKLIGHT_PWM_CHANNEL 1 -#define RGB_DI_PIN A1 - #define ADC_PIN A0 +#define RGB_CI_PIN A2 + // This code does not fit into the really small flash of STM32F103x6 together // with CONSOLE_ENABLE=yes, and the debugging console is probably more // important for the "okeney" testing firmware. In a real firmware you may be diff --git a/keyboards/handwired/onekey/bluepill_f103c6/halconf.h b/keyboards/handwired/onekey/bluepill_f103c6/halconf.h index 923b4e52d24..dbc3e82a79a 100644 --- a/keyboards/handwired/onekey/bluepill_f103c6/halconf.h +++ b/keyboards/handwired/onekey/bluepill_f103c6/halconf.h @@ -21,6 +21,8 @@ #pragma once +#define HAL_USE_ADC TRUE + #define HAL_USE_PWM TRUE #include_next diff --git a/keyboards/handwired/onekey/bluepill_f103c6/info.json b/keyboards/handwired/onekey/bluepill_f103c6/info.json index 0ef180f6ec0..353f074d922 100644 --- a/keyboards/handwired/onekey/bluepill_f103c6/info.json +++ b/keyboards/handwired/onekey/bluepill_f103c6/info.json @@ -1,3 +1,15 @@ { - "keyboard_name": "Onekey Bluepill STM32F103C6" + "keyboard_name": "Onekey Bluepill STM32F103C6", + "processor": "STM32F103", + "board": "STM32_F103_STM32DUINO", + "matrix_pins": { + "cols": ["B0"], + "rows": ["A7"] + }, + "backlight": { + "pin": "A0" + }, + "rgblight": { + "pin": "A1" + } } diff --git a/keyboards/handwired/onekey/bluepill_f103c6/mcuconf.h b/keyboards/handwired/onekey/bluepill_f103c6/mcuconf.h index 5e94a97e21e..39834c135b6 100644 --- a/keyboards/handwired/onekey/bluepill_f103c6/mcuconf.h +++ b/keyboards/handwired/onekey/bluepill_f103c6/mcuconf.h @@ -23,6 +23,9 @@ #include_next +#undef STM32_ADC_USE_ADC1 +#define STM32_ADC_USE_ADC1 TRUE + #undef STM32_PWM_USE_TIM2 #define STM32_PWM_USE_TIM2 TRUE diff --git a/keyboards/handwired/onekey/bluepill_f103c6/rules.mk b/keyboards/handwired/onekey/bluepill_f103c6/rules.mk index f2280a1a597..c76a8ebe6ec 100644 --- a/keyboards/handwired/onekey/bluepill_f103c6/rules.mk +++ b/keyboards/handwired/onekey/bluepill_f103c6/rules.mk @@ -1,12 +1,8 @@ -# MCU name -MCU = STM32F103 - # Bootloader selection # Cannot use `BOOTLOADER = stm32duino` due to the need to override # `MCU_LDSCRIPT`, therefore all parameters need to be specified here manually. OPT_DEFS += -DBOOTLOADER_STM32DUINO MCU_LDSCRIPT = STM32F103x6_stm32duino_bootloader -BOARD = STM32_F103_STM32DUINO BOOTLOADER_TYPE = stm32duino DFU_ARGS = -d 1EAF:0003 -a 2 -R DFU_SUFFIX_ARGS = -v 1EAF -p 0003 diff --git a/keyboards/handwired/onekey/config.h b/keyboards/handwired/onekey/config.h index f1ce6d94914..9fcd881321f 100644 --- a/keyboards/handwired/onekey/config.h +++ b/keyboards/handwired/onekey/config.h @@ -17,16 +17,6 @@ along with this program. If not, see . #pragma once -/* key matrix size */ -#define MATRIX_ROWS 1 -#define MATRIX_COLS 1 - -/* COL2ROW, ROW2COL */ -#define DIODE_DIRECTION COL2ROW - -/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ -#define DEBOUNCE 5 - /* define if matrix has ghost (lacks anti-ghosting diodes) */ //#define MATRIX_HAS_GHOST diff --git a/keyboards/handwired/onekey/elite_c/config.h b/keyboards/handwired/onekey/elite_c/config.h index 83eded68de6..473cfdfbda8 100644 --- a/keyboards/handwired/onekey/elite_c/config.h +++ b/keyboards/handwired/onekey/elite_c/config.h @@ -18,12 +18,6 @@ #include "config_common.h" -#define MATRIX_COL_PINS { F4 } -#define MATRIX_ROW_PINS { F5 } - -#define BACKLIGHT_PIN B6 - -#define RGB_DI_PIN F6 #define RGB_CI_PIN B1 #define ADC_PIN F6 diff --git a/keyboards/handwired/onekey/elite_c/info.json b/keyboards/handwired/onekey/elite_c/info.json index d86f8b43954..15485610416 100644 --- a/keyboards/handwired/onekey/elite_c/info.json +++ b/keyboards/handwired/onekey/elite_c/info.json @@ -1,3 +1,14 @@ { - "keyboard_name": "Onekey Elite-C" + "keyboard_name": "Onekey Elite-C", + "development_board": "elite_c", + "matrix_pins": { + "cols": ["F4"], + "rows": ["F5"] + }, + "backlight": { + "pin": "B6" + }, + "rgblight": { + "pin": "F6" + } } diff --git a/keyboards/handwired/onekey/elite_c/rules.mk b/keyboards/handwired/onekey/elite_c/rules.mk index e8326bcf099..e69de29bb2d 100644 --- a/keyboards/handwired/onekey/elite_c/rules.mk +++ b/keyboards/handwired/onekey/elite_c/rules.mk @@ -1,5 +0,0 @@ -# MCU name -MCU = atmega32u4 - -# Bootloader selection -BOOTLOADER = atmel-dfu diff --git a/keyboards/handwired/onekey/evb_wb32f3g71/config.h b/keyboards/handwired/onekey/evb_wb32f3g71/config.h deleted file mode 100644 index 722aa598217..00000000000 --- a/keyboards/handwired/onekey/evb_wb32f3g71/config.h +++ /dev/null @@ -1,8 +0,0 @@ -// Copyright 2021 Nick Brassel (@tzarc) -// SPDX-License-Identifier: GPL-2.0-or-later -#pragma once - -#include "config_common.h" - -#define MATRIX_COL_PINS { B12 } -#define MATRIX_ROW_PINS { B13 } diff --git a/keyboards/handwired/onekey/evb_wb32f3g71/info.json b/keyboards/handwired/onekey/evb_wb32f3g71/info.json index c4d9d317e54..6287cdc34a3 100644 --- a/keyboards/handwired/onekey/evb_wb32f3g71/info.json +++ b/keyboards/handwired/onekey/evb_wb32f3g71/info.json @@ -1,3 +1,9 @@ { - "keyboard_name": "Onekey WB32F3G71 Eval" + "keyboard_name": "Onekey WB32F3G71 Eval", + "processor": "WB32F3G71", + "bootloader": "wb32-dfu", + "matrix_pins": { + "cols": ["B12"], + "rows": ["B13"] + } } diff --git a/keyboards/handwired/onekey/evb_wb32f3g71/rules.mk b/keyboards/handwired/onekey/evb_wb32f3g71/rules.mk index 9f64c6683f5..033dd66aa4a 100644 --- a/keyboards/handwired/onekey/evb_wb32f3g71/rules.mk +++ b/keyboards/handwired/onekey/evb_wb32f3g71/rules.mk @@ -1,9 +1,3 @@ -# MCU name -MCU = WB32F3G71 - -# Bootloader selection -BOOTLOADER = wb32-dfu - MOUSEKEY_ENABLE = no # Mouse keys EXTRAKEY_ENABLE = no # Audio control and System control NKRO_ENABLE = no # Enable N-Key Rollover diff --git a/keyboards/handwired/onekey/evb_wb32fq95/config.h b/keyboards/handwired/onekey/evb_wb32fq95/config.h deleted file mode 100644 index 722aa598217..00000000000 --- a/keyboards/handwired/onekey/evb_wb32fq95/config.h +++ /dev/null @@ -1,8 +0,0 @@ -// Copyright 2021 Nick Brassel (@tzarc) -// SPDX-License-Identifier: GPL-2.0-or-later -#pragma once - -#include "config_common.h" - -#define MATRIX_COL_PINS { B12 } -#define MATRIX_ROW_PINS { B13 } diff --git a/keyboards/handwired/onekey/evb_wb32fq95/info.json b/keyboards/handwired/onekey/evb_wb32fq95/info.json index ccc65b2e703..3fc1c886572 100644 --- a/keyboards/handwired/onekey/evb_wb32fq95/info.json +++ b/keyboards/handwired/onekey/evb_wb32fq95/info.json @@ -1,3 +1,9 @@ { - "keyboard_name": "Onekey WB32FQ95 Eval" + "keyboard_name": "Onekey WB32FQ95 Eval", + "processor": "WB32FQ95", + "bootloader": "wb32-dfu", + "matrix_pins": { + "cols": ["B12"], + "rows": ["B13"] + } } diff --git a/keyboards/handwired/onekey/evb_wb32fq95/rules.mk b/keyboards/handwired/onekey/evb_wb32fq95/rules.mk index d0dcd16292e..033dd66aa4a 100644 --- a/keyboards/handwired/onekey/evb_wb32fq95/rules.mk +++ b/keyboards/handwired/onekey/evb_wb32fq95/rules.mk @@ -1,9 +1,3 @@ -# MCU name -MCU = WB32FQ95 - -# Bootloader selection -BOOTLOADER = wb32-dfu - MOUSEKEY_ENABLE = no # Mouse keys EXTRAKEY_ENABLE = no # Audio control and System control NKRO_ENABLE = no # Enable N-Key Rollover diff --git a/keyboards/handwired/onekey/info.json b/keyboards/handwired/onekey/info.json index 46cdc828274..605e73e7260 100644 --- a/keyboards/handwired/onekey/info.json +++ b/keyboards/handwired/onekey/info.json @@ -7,10 +7,23 @@ "pid": "0x6465", "device_version": "0.0.1" }, + "diode_direction": "COL2ROW", + "features": { + "bootmagic": false, + "mousekey": true, + "extrakey": true, + "console": true, + "command": false, + "nkro": true, + "backlight": false, + "rgblight": false, + "audio": false + }, + "community_layouts": ["ortho_1x1"], "layouts": { "LAYOUT_ortho_1x1": { "layout": [ - {"x": 0, "y": 0} + {"x": 0, "y": 0, "matrix": [0, 0]} ] } } diff --git a/keyboards/handwired/onekey/kb2040/config.h b/keyboards/handwired/onekey/kb2040/config.h index 0bf7adf37f4..c6c6dbe2cf8 100644 --- a/keyboards/handwired/onekey/kb2040/config.h +++ b/keyboards/handwired/onekey/kb2040/config.h @@ -5,10 +5,6 @@ #include "config_common.h" -#define MATRIX_COL_PINS \ - { GP4 } -#define MATRIX_ROW_PINS \ - { GP5 } #define DEBUG_MATRIX_SCAN_RATE #define QMK_WAITING_TEST_BUSY_PIN GP8 @@ -18,8 +14,6 @@ #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_LED GP25 #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U -#define RGB_DI_PIN A1 - // settings for the oled keyboard demo with Adafruit 0.91" OLED display on the Stemma QT port #define OLED_DISPLAY_128X32 #define I2C_DRIVER I2CD1 diff --git a/keyboards/handwired/onekey/kb2040/info.json b/keyboards/handwired/onekey/kb2040/info.json index 696b772142c..7982db46782 100644 --- a/keyboards/handwired/onekey/kb2040/info.json +++ b/keyboards/handwired/onekey/kb2040/info.json @@ -1,3 +1,11 @@ { - "keyboard_name": "Onekey KB2040" + "keyboard_name": "Onekey KB2040", + "development_board": "kb2040", + "matrix_pins": { + "cols": ["GP4"], + "rows": ["GP5"] + }, + "rgblight": { + "pin": "A1" + } } diff --git a/keyboards/handwired/onekey/kb2040/rules.mk b/keyboards/handwired/onekey/kb2040/rules.mk index 624b331bf87..a5429ba9935 100644 --- a/keyboards/handwired/onekey/kb2040/rules.mk +++ b/keyboards/handwired/onekey/kb2040/rules.mk @@ -1,9 +1,4 @@ -# MCU name -MCU = RP2040 -BOOTLOADER = rp2040 - OLED_ENABLE = yes OLED_DRIVER = SSD1306 OPT_DEFS += -DHAL_USE_I2C=TRUE - diff --git a/keyboards/handwired/onekey/keymaps/joystick/keymap.c b/keyboards/handwired/onekey/keymaps/joystick/keymap.c index 7a2f138b28b..c74707e931d 100644 --- a/keyboards/handwired/onekey/keymaps/joystick/keymap.c +++ b/keyboards/handwired/onekey/keymaps/joystick/keymap.c @@ -10,11 +10,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { void matrix_scan_user() { int16_t val = (((uint32_t)timer_read() % 5000 - 2500) * 255) / 5000; - - if (val != joystick_status.axes[1]) { - joystick_status.axes[1] = val; - joystick_status.status |= JS_UPDATED; - } + joystick_set_axis(1, val); } // Joystick config diff --git a/keyboards/handwired/onekey/keymaps/quine/keymap.c b/keyboards/handwired/onekey/keymaps/quine/keymap.c index e7c1e6d0644..5f1416c77ed 100644 --- a/keyboards/handwired/onekey/keymaps/quine/keymap.c +++ b/keyboards/handwired/onekey/keymaps/quine/keymap.c @@ -1,7 +1,7 @@ -#include +#include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { LAYOUT_ortho_1x1(KC_A) }; const char *buf[30] = { -"#include ", +"#include QMK_KEYBOARD_H", "const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { LAYOUT_ortho_1x1(KC_A) };", "const char *buf[30] = {", "", @@ -57,4 +57,3 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return true; }; - diff --git a/keyboards/handwired/onekey/nucleo_l432kc/config.h b/keyboards/handwired/onekey/nucleo_l432kc/config.h index b6b36c4cee5..24b136fe2ad 100644 --- a/keyboards/handwired/onekey/nucleo_l432kc/config.h +++ b/keyboards/handwired/onekey/nucleo_l432kc/config.h @@ -4,15 +4,10 @@ #include "config_common.h" -#define MATRIX_COL_PINS { A2 } -#define MATRIX_ROW_PINS { A1 } - -#define BACKLIGHT_PIN B8 #define BACKLIGHT_PWM_DRIVER PWMD4 #define BACKLIGHT_PWM_CHANNEL 3 #define BACKLIGHT_PAL_MODE 2 -#define RGB_DI_PIN A0 #define RGB_CI_PIN B13 #define ADC_PIN A0 diff --git a/keyboards/handwired/onekey/nucleo_l432kc/info.json b/keyboards/handwired/onekey/nucleo_l432kc/info.json index 3f497fc80ab..a6e65110400 100644 --- a/keyboards/handwired/onekey/nucleo_l432kc/info.json +++ b/keyboards/handwired/onekey/nucleo_l432kc/info.json @@ -1,3 +1,15 @@ { - "keyboard_name": "Onekey Nucleo L432KC" + "keyboard_name": "Onekey Nucleo L432KC", + "processor": "STM32L432", + "bootloader": "stm32-dfu", + "matrix_pins": { + "cols": ["A2"], + "rows": ["A1"] + }, + "backlight": { + "pin": "B8" + }, + "rgblight": { + "pin": "A0" + } } diff --git a/keyboards/handwired/onekey/nucleo_l432kc/rules.mk b/keyboards/handwired/onekey/nucleo_l432kc/rules.mk index 64dae7746ed..e69de29bb2d 100644 --- a/keyboards/handwired/onekey/nucleo_l432kc/rules.mk +++ b/keyboards/handwired/onekey/nucleo_l432kc/rules.mk @@ -1,5 +0,0 @@ -# MCU name -MCU = STM32L432 - -# Bootloader selection -BOOTLOADER = stm32-dfu diff --git a/keyboards/handwired/onekey/onekey.c b/keyboards/handwired/onekey/onekey.c index a29f9ea6d0f..14c7697328c 100644 --- a/keyboards/handwired/onekey/onekey.c +++ b/keyboards/handwired/onekey/onekey.c @@ -1,7 +1,7 @@ // Copyright 2022 QMK // SPDX-License-Identifier: GPL-2.0-or-later -#include "onekey.h" +#include "quantum.h" void keyboard_post_init_kb(void) { debug_enable = true; diff --git a/keyboards/handwired/onekey/promicro/config.h b/keyboards/handwired/onekey/promicro/config.h index 83eded68de6..473cfdfbda8 100644 --- a/keyboards/handwired/onekey/promicro/config.h +++ b/keyboards/handwired/onekey/promicro/config.h @@ -18,12 +18,6 @@ #include "config_common.h" -#define MATRIX_COL_PINS { F4 } -#define MATRIX_ROW_PINS { F5 } - -#define BACKLIGHT_PIN B6 - -#define RGB_DI_PIN F6 #define RGB_CI_PIN B1 #define ADC_PIN F6 diff --git a/keyboards/handwired/onekey/promicro/info.json b/keyboards/handwired/onekey/promicro/info.json index 6b35da4d750..efefd8d45c0 100644 --- a/keyboards/handwired/onekey/promicro/info.json +++ b/keyboards/handwired/onekey/promicro/info.json @@ -1,3 +1,14 @@ { - "keyboard_name": "Onekey Pro Micro" + "keyboard_name": "Onekey Pro Micro", + "development_board": "promicro", + "matrix_pins": { + "cols": ["F4"], + "rows": ["F5"] + }, + "backlight": { + "pin": "B6" + }, + "rgblight": { + "pin": "F6" + } } diff --git a/keyboards/handwired/onekey/promicro/rules.mk b/keyboards/handwired/onekey/promicro/rules.mk index cf663a7ed6a..e69de29bb2d 100644 --- a/keyboards/handwired/onekey/promicro/rules.mk +++ b/keyboards/handwired/onekey/promicro/rules.mk @@ -1,5 +0,0 @@ -# MCU name -MCU = atmega32u4 - -# Bootloader selection -BOOTLOADER = caterina diff --git a/keyboards/handwired/onekey/proton_c/config.h b/keyboards/handwired/onekey/proton_c/config.h index 6e8e28edb45..776c4223984 100644 --- a/keyboards/handwired/onekey/proton_c/config.h +++ b/keyboards/handwired/onekey/proton_c/config.h @@ -18,15 +18,10 @@ #include "config_common.h" -#define MATRIX_COL_PINS { A2 } -#define MATRIX_ROW_PINS { A1 } - -#define BACKLIGHT_PIN B8 #define BACKLIGHT_PWM_DRIVER PWMD4 #define BACKLIGHT_PWM_CHANNEL 3 #define BACKLIGHT_PAL_MODE 2 -#define RGB_DI_PIN A0 #define RGB_CI_PIN B13 #define ADC_PIN A0 diff --git a/keyboards/handwired/onekey/proton_c/info.json b/keyboards/handwired/onekey/proton_c/info.json index 47ac089f7a3..5292d025678 100644 --- a/keyboards/handwired/onekey/proton_c/info.json +++ b/keyboards/handwired/onekey/proton_c/info.json @@ -1,3 +1,14 @@ { - "keyboard_name": "Onekey Proton-C" + "keyboard_name": "Onekey Proton-C", + "development_board": "proton_c", + "matrix_pins": { + "cols": ["A2"], + "rows": ["A1"] + }, + "backlight": { + "pin": "B8" + }, + "rgblight": { + "pin": "A0" + } } diff --git a/keyboards/handwired/onekey/proton_c/rules.mk b/keyboards/handwired/onekey/proton_c/rules.mk index 7a846816d1b..e69de29bb2d 100644 --- a/keyboards/handwired/onekey/proton_c/rules.mk +++ b/keyboards/handwired/onekey/proton_c/rules.mk @@ -1,6 +0,0 @@ -# MCU name -MCU = STM32F303 -BOARD = QMK_PROTON_C - -# Bootloader selection -BOOTLOADER = stm32-dfu diff --git a/keyboards/handwired/onekey/rp2040/config.h b/keyboards/handwired/onekey/rp2040/config.h index c0ef468aa9f..82c5592dc98 100644 --- a/keyboards/handwired/onekey/rp2040/config.h +++ b/keyboards/handwired/onekey/rp2040/config.h @@ -5,10 +5,6 @@ #include "config_common.h" -#define MATRIX_COL_PINS \ - { GP4 } -#define MATRIX_ROW_PINS \ - { GP5 } #define DEBUG_MATRIX_SCAN_RATE #define QMK_WAITING_TEST_BUSY_PIN GP8 @@ -18,4 +14,5 @@ #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_LED GP25 #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U -#define RGB_DI_PIN A1 +#define BACKLIGHT_PWM_DRIVER PWMD4 +#define BACKLIGHT_PWM_CHANNEL RP2040_PWM_CHANNEL_B diff --git a/keyboards/handwired/onekey/rp2040/halconf.h b/keyboards/handwired/onekey/rp2040/halconf.h new file mode 100644 index 00000000000..5890122e5ee --- /dev/null +++ b/keyboards/handwired/onekey/rp2040/halconf.h @@ -0,0 +1,9 @@ +// Copyright 2022 Stefan Kerkmann +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define HAL_USE_I2C TRUE +#define HAL_USE_PWM TRUE + +#include_next diff --git a/keyboards/handwired/onekey/rp2040/info.json b/keyboards/handwired/onekey/rp2040/info.json index 696b021dc17..32bde911bb6 100644 --- a/keyboards/handwired/onekey/rp2040/info.json +++ b/keyboards/handwired/onekey/rp2040/info.json @@ -1,3 +1,15 @@ { - "keyboard_name": "Onekey RP2040" + "keyboard_name": "Onekey RP2040", + "processor": "RP2040", + "bootloader": "rp2040", + "matrix_pins": { + "cols": ["GP4"], + "rows": ["GP5"] + }, + "backlight": { + "pin": "GP25" + }, + "rgblight": { + "pin": "GP25" + } } diff --git a/keyboards/handwired/onekey/rp2040/mcuconf.h b/keyboards/handwired/onekey/rp2040/mcuconf.h new file mode 100644 index 00000000000..86f821640f1 --- /dev/null +++ b/keyboards/handwired/onekey/rp2040/mcuconf.h @@ -0,0 +1,9 @@ +// Copyright 2022 Stefan Kerkmann +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include_next "mcuconf.h" + +#undef RP_PWM_USE_PWM4 +#define RP_PWM_USE_PWM4 TRUE diff --git a/keyboards/handwired/onekey/rp2040/rules.mk b/keyboards/handwired/onekey/rp2040/rules.mk index 646402d0bb5..e69de29bb2d 100644 --- a/keyboards/handwired/onekey/rp2040/rules.mk +++ b/keyboards/handwired/onekey/rp2040/rules.mk @@ -1,3 +0,0 @@ -# MCU name -MCU = RP2040 -BOOTLOADER = rp2040 diff --git a/keyboards/handwired/onekey/rules.mk b/keyboards/handwired/onekey/rules.mk index 98a145f714d..2094801ed91 100644 --- a/keyboards/handwired/onekey/rules.mk +++ b/keyboards/handwired/onekey/rules.mk @@ -1,16 +1 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = yes # 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 = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output - DEFAULT_FOLDER = handwired/onekey/promicro - -LAYOUTS = ortho_1x1 diff --git a/keyboards/handwired/onekey/sipeed_longan_nano/config.h b/keyboards/handwired/onekey/sipeed_longan_nano/config.h index 6f97baf57f2..74ae76f594d 100644 --- a/keyboards/handwired/onekey/sipeed_longan_nano/config.h +++ b/keyboards/handwired/onekey/sipeed_longan_nano/config.h @@ -18,16 +18,9 @@ #include "config_common.h" -#define MATRIX_COL_PINS \ - { B0 } -#define MATRIX_ROW_PINS \ - { A7 } - -#define BACKLIGHT_PIN A1 /* Green LED. */ #define BACKLIGHT_PWM_DRIVER PWMD5 /* GD32 numbering scheme starts from 0, TIMER4 on GD32 boards is TIMER5 on STM32 boards. */ #define BACKLIGHT_PWM_CHANNEL 2 /* GD32 numbering scheme starts from 0, Channel 1 on GD32 boards is Channel 2 on STM32 boards. */ -#define RGB_DI_PIN A2 #define RGB_CI_PIN B13 #define ADC_PIN A0 diff --git a/keyboards/handwired/onekey/sipeed_longan_nano/info.json b/keyboards/handwired/onekey/sipeed_longan_nano/info.json index 10f661c3d97..d14928139ba 100644 --- a/keyboards/handwired/onekey/sipeed_longan_nano/info.json +++ b/keyboards/handwired/onekey/sipeed_longan_nano/info.json @@ -1,3 +1,16 @@ { - "keyboard_name": "Onekey Sipeed Longan Nano" + "keyboard_name": "Onekey Sipeed Longan Nano", + "processor": "GD32VF103", + "bootloader": "gd32v-dfu", + "board": "SIPEED_LONGAN_NANO", + "matrix_pins": { + "cols": ["B0"], + "rows": ["A7"] + }, + "backlight": { + "pin": "A1" + }, + "rgblight": { + "pin": "A2" + } } diff --git a/keyboards/handwired/onekey/sipeed_longan_nano/rules.mk b/keyboards/handwired/onekey/sipeed_longan_nano/rules.mk index aef4fee6b22..1071cf62ee3 100644 --- a/keyboards/handwired/onekey/sipeed_longan_nano/rules.mk +++ b/keyboards/handwired/onekey/sipeed_longan_nano/rules.mk @@ -1,11 +1 @@ -# MCU name -MCU = GD32VF103 -BOARD = SIPEED_LONGAN_NANO - -# Bootloader selection -BOOTLOADER = gd32v-dfu - -# Build Options -# change yes to no to disable -# KEYBOARD_SHARED_EP = yes diff --git a/keyboards/handwired/onekey/stm32f0_disco/config.h b/keyboards/handwired/onekey/stm32f0_disco/config.h index 373f1c943a9..7d23fb9307e 100644 --- a/keyboards/handwired/onekey/stm32f0_disco/config.h +++ b/keyboards/handwired/onekey/stm32f0_disco/config.h @@ -18,14 +18,10 @@ #include "config_common.h" -#define MATRIX_COL_PINS { B4 } -#define MATRIX_ROW_PINS { B5 } - -#define BACKLIGHT_PIN C8 #define BACKLIGHT_PWM_DRIVER PWMD3 #define BACKLIGHT_PWM_CHANNEL 3 #define BACKLIGHT_PAL_MODE 0 -#define RGB_DI_PIN B15 - #define ADC_PIN A0 + +#define RGB_CI_PIN B13 diff --git a/keyboards/handwired/onekey/stm32f0_disco/halconf.h b/keyboards/handwired/onekey/stm32f0_disco/halconf.h index 78ed6586c84..432c43c6cca 100644 --- a/keyboards/handwired/onekey/stm32f0_disco/halconf.h +++ b/keyboards/handwired/onekey/stm32f0_disco/halconf.h @@ -21,6 +21,8 @@ #pragma once +#define HAL_USE_ADC TRUE + #define HAL_USE_PWM TRUE #include_next diff --git a/keyboards/handwired/onekey/stm32f0_disco/info.json b/keyboards/handwired/onekey/stm32f0_disco/info.json index ef4312059b8..c76bd731732 100644 --- a/keyboards/handwired/onekey/stm32f0_disco/info.json +++ b/keyboards/handwired/onekey/stm32f0_disco/info.json @@ -1,3 +1,15 @@ { - "keyboard_name": "Onekey STM32F072 Discovery" + "keyboard_name": "Onekey STM32F072 Discovery", + "processor": "STM32F072", + "bootloader": "stm32-dfu", + "matrix_pins": { + "cols": ["B4"], + "rows": ["B5"] + }, + "backlight": { + "pin": "C8" + }, + "rgblight": { + "pin": "B15" + } } diff --git a/keyboards/handwired/onekey/stm32f0_disco/mcuconf.h b/keyboards/handwired/onekey/stm32f0_disco/mcuconf.h index ea4f9373a0f..0bb4f4d6431 100644 --- a/keyboards/handwired/onekey/stm32f0_disco/mcuconf.h +++ b/keyboards/handwired/onekey/stm32f0_disco/mcuconf.h @@ -23,5 +23,8 @@ #include_next +#undef STM32_ADC_USE_ADC1 +#define STM32_ADC_USE_ADC1 TRUE + #undef STM32_PWM_USE_TIM3 #define STM32_PWM_USE_TIM3 TRUE diff --git a/keyboards/handwired/onekey/stm32f0_disco/rules.mk b/keyboards/handwired/onekey/stm32f0_disco/rules.mk index 6b379283278..a92b0993283 100644 --- a/keyboards/handwired/onekey/stm32f0_disco/rules.mk +++ b/keyboards/handwired/onekey/stm32f0_disco/rules.mk @@ -1,8 +1,2 @@ -# MCU name -MCU = STM32F072 - -# Bootloader selection -BOOTLOADER = stm32-dfu - # Enter lower-power sleep mode when on the ChibiOS idle thread OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/handwired/onekey/stm32f405_feather/info.json b/keyboards/handwired/onekey/stm32f405_feather/info.json index 410ddbdd323..51358735761 100644 --- a/keyboards/handwired/onekey/stm32f405_feather/info.json +++ b/keyboards/handwired/onekey/stm32f405_feather/info.json @@ -1,3 +1,9 @@ { - "keyboard_name": "Onekey Adafruit Feather STM32F405" + "keyboard_name": "Onekey Adafruit Feather STM32F405", + "processor": "STM32F405", + "bootloader": "stm32-dfu", + "matrix_pins": { + "cols": ["C2"], + "rows": ["C3"], + } } diff --git a/keyboards/handwired/onekey/stm32f405_feather/rules.mk b/keyboards/handwired/onekey/stm32f405_feather/rules.mk index bff7a7e2973..a92b0993283 100644 --- a/keyboards/handwired/onekey/stm32f405_feather/rules.mk +++ b/keyboards/handwired/onekey/stm32f405_feather/rules.mk @@ -1,8 +1,2 @@ -# MCU name -MCU = STM32F405 - -# Bootloader selection -BOOTLOADER = stm32-dfu - # Enter lower-power sleep mode when on the ChibiOS idle thread OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/handwired/onekey/teensy_2/config.h b/keyboards/handwired/onekey/teensy_2/config.h index fb775a06b01..a2a2a648354 100644 --- a/keyboards/handwired/onekey/teensy_2/config.h +++ b/keyboards/handwired/onekey/teensy_2/config.h @@ -18,14 +18,9 @@ #include "config_common.h" -#define MATRIX_COL_PINS { F4 } -#define MATRIX_ROW_PINS { F5 } - -#define BACKLIGHT_PIN B6 - -#define RGB_DI_PIN F6 - #define ADC_PIN F6 +#define RGB_CI_PIN F7 + #define QMK_WAITING_TEST_BUSY_PIN F6 #define QMK_WAITING_TEST_YIELD_PIN F7 diff --git a/keyboards/handwired/onekey/teensy_2/info.json b/keyboards/handwired/onekey/teensy_2/info.json index f081d3a25c4..24251684622 100644 --- a/keyboards/handwired/onekey/teensy_2/info.json +++ b/keyboards/handwired/onekey/teensy_2/info.json @@ -1,3 +1,15 @@ { - "keyboard_name": "Onekey Teensy 2.0" + "keyboard_name": "Onekey Teensy 2.0", + "processor": "atmega32u4", + "bootloader": "halfkay", + "matrix_pins": { + "cols": ["F4"], + "rows": ["F5"] + }, + "backlight": { + "pin": "B6" + }, + "rgblight": { + "pin": "F6" + } } diff --git a/keyboards/handwired/onekey/teensy_2/rules.mk b/keyboards/handwired/onekey/teensy_2/rules.mk index 320633f80f3..e69de29bb2d 100644 --- a/keyboards/handwired/onekey/teensy_2/rules.mk +++ b/keyboards/handwired/onekey/teensy_2/rules.mk @@ -1,5 +0,0 @@ -# MCU name -MCU = atmega32u4 - -# Bootloader selection -BOOTLOADER = halfkay diff --git a/keyboards/handwired/onekey/teensy_2pp/config.h b/keyboards/handwired/onekey/teensy_2pp/config.h index fb775a06b01..a2a2a648354 100644 --- a/keyboards/handwired/onekey/teensy_2pp/config.h +++ b/keyboards/handwired/onekey/teensy_2pp/config.h @@ -18,14 +18,9 @@ #include "config_common.h" -#define MATRIX_COL_PINS { F4 } -#define MATRIX_ROW_PINS { F5 } - -#define BACKLIGHT_PIN B6 - -#define RGB_DI_PIN F6 - #define ADC_PIN F6 +#define RGB_CI_PIN F7 + #define QMK_WAITING_TEST_BUSY_PIN F6 #define QMK_WAITING_TEST_YIELD_PIN F7 diff --git a/keyboards/handwired/onekey/teensy_2pp/info.json b/keyboards/handwired/onekey/teensy_2pp/info.json index bec94fa3dcc..ba7281ce1bd 100644 --- a/keyboards/handwired/onekey/teensy_2pp/info.json +++ b/keyboards/handwired/onekey/teensy_2pp/info.json @@ -1,3 +1,15 @@ { - "keyboard_name": "Onekey Teensy 2.0++" + "keyboard_name": "Onekey Teensy 2.0++", + "processor": "at90usb1286", + "bootloader": "halfkay", + "matrix_pins": { + "cols": ["F4"], + "rows": ["F5"] + }, + "backlight": { + "pin": "B6" + }, + "rgblight": { + "pin": "F6" + } } diff --git a/keyboards/handwired/onekey/teensy_2pp/rules.mk b/keyboards/handwired/onekey/teensy_2pp/rules.mk index 149471682df..e69de29bb2d 100644 --- a/keyboards/handwired/onekey/teensy_2pp/rules.mk +++ b/keyboards/handwired/onekey/teensy_2pp/rules.mk @@ -1,5 +0,0 @@ -# MCU name -MCU = at90usb1286 - -# Bootloader selection -BOOTLOADER = halfkay diff --git a/keyboards/handwired/onekey/teensy_32/config.h b/keyboards/handwired/onekey/teensy_32/config.h index 3444cca67f1..e01cfa3c8c3 100644 --- a/keyboards/handwired/onekey/teensy_32/config.h +++ b/keyboards/handwired/onekey/teensy_32/config.h @@ -19,9 +19,6 @@ // TODO: including this causes "error: expected identifier before '(' token" errors //#include "config_common.h" -#define MATRIX_COL_PINS { D5 } -#define MATRIX_ROW_PINS { B2 } - // i2c_master defines #define I2C1_SCL_PIN B0 // A2 on pinout = B0 #define I2C1_SDA_PIN B1 // A3 on pinout = B1 diff --git a/keyboards/handwired/onekey/teensy_32/info.json b/keyboards/handwired/onekey/teensy_32/info.json index 213b4ea153a..6d82d300ba2 100644 --- a/keyboards/handwired/onekey/teensy_32/info.json +++ b/keyboards/handwired/onekey/teensy_32/info.json @@ -1,3 +1,9 @@ { - "keyboard_name": "Onekey Teensy 3.2" + "keyboard_name": "Onekey Teensy 3.2", + "processor": "MK20DX256", + "bootloader": "halfkay", + "matrix_pins": { + "cols": ["D5"], + "rows": ["B2"] + } } diff --git a/keyboards/handwired/onekey/teensy_32/rules.mk b/keyboards/handwired/onekey/teensy_32/rules.mk index 937c9d5103a..a92b0993283 100644 --- a/keyboards/handwired/onekey/teensy_32/rules.mk +++ b/keyboards/handwired/onekey/teensy_32/rules.mk @@ -1,8 +1,2 @@ -# MCU name -MCU = MK20DX256 - -# Bootloader selection -BOOTLOADER = halfkay - # Enter lower-power sleep mode when on the ChibiOS idle thread OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/handwired/onekey/teensy_35/config.h b/keyboards/handwired/onekey/teensy_35/config.h index 13eaf1a4f67..0f15fc87d88 100644 --- a/keyboards/handwired/onekey/teensy_35/config.h +++ b/keyboards/handwired/onekey/teensy_35/config.h @@ -19,9 +19,6 @@ // TODO: including this causes "error: expected identifier before '(' token" errors //#include "config_common.h" -#define MATRIX_COL_PINS { D5 } // 20/A6 -#define MATRIX_ROW_PINS { B2 } // 19/A5 - // i2c_master defines #define I2C1_SCL_PIN B0 // 16/A2 on pinout #define I2C1_SDA_PIN B1 // 17/A3 on pinout diff --git a/keyboards/handwired/onekey/teensy_35/info.json b/keyboards/handwired/onekey/teensy_35/info.json index 99b6a236c5e..59cc1decdc2 100644 --- a/keyboards/handwired/onekey/teensy_35/info.json +++ b/keyboards/handwired/onekey/teensy_35/info.json @@ -1,3 +1,9 @@ { - "keyboard_name": "Onekey Teensy 3.5" + "keyboard_name": "Onekey Teensy 3.5", + "processor": "MK64FX512", + "bootloader": "halfkay", + "matrix_pins": { + "cols": ["D5"], // 20/A6 + "rows": ["B2"] // 19/A5 + } } diff --git a/keyboards/handwired/onekey/teensy_35/rules.mk b/keyboards/handwired/onekey/teensy_35/rules.mk index 8ebefd03f50..a92b0993283 100644 --- a/keyboards/handwired/onekey/teensy_35/rules.mk +++ b/keyboards/handwired/onekey/teensy_35/rules.mk @@ -1,8 +1,2 @@ -# MCU name -MCU = MK64FX512 - -# Bootloader selection -BOOTLOADER = halfkay - # Enter lower-power sleep mode when on the ChibiOS idle thread OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/handwired/onekey/teensy_lc/config.h b/keyboards/handwired/onekey/teensy_lc/config.h index 3444cca67f1..e01cfa3c8c3 100644 --- a/keyboards/handwired/onekey/teensy_lc/config.h +++ b/keyboards/handwired/onekey/teensy_lc/config.h @@ -19,9 +19,6 @@ // TODO: including this causes "error: expected identifier before '(' token" errors //#include "config_common.h" -#define MATRIX_COL_PINS { D5 } -#define MATRIX_ROW_PINS { B2 } - // i2c_master defines #define I2C1_SCL_PIN B0 // A2 on pinout = B0 #define I2C1_SDA_PIN B1 // A3 on pinout = B1 diff --git a/keyboards/handwired/onekey/teensy_lc/info.json b/keyboards/handwired/onekey/teensy_lc/info.json index 68eea922350..a81b90fa8a5 100644 --- a/keyboards/handwired/onekey/teensy_lc/info.json +++ b/keyboards/handwired/onekey/teensy_lc/info.json @@ -1,3 +1,9 @@ { - "keyboard_name": "Onekey Teensy LC" + "keyboard_name": "Onekey Teensy LC", + "processor": "MKL26Z64", + "bootloader": "halfkay", + "matrix_pins": { + "cols": ["D5"], + "rows": ["B2"] + } } diff --git a/keyboards/handwired/onekey/teensy_lc/rules.mk b/keyboards/handwired/onekey/teensy_lc/rules.mk index 0e3c7edf7a0..9803d8cc703 100644 --- a/keyboards/handwired/onekey/teensy_lc/rules.mk +++ b/keyboards/handwired/onekey/teensy_lc/rules.mk @@ -1,9 +1,4 @@ -# MCU name -MCU = MKL26Z64 USE_CHIBIOS_CONTRIB = yes -# Bootloader selection -BOOTLOADER = halfkay - # Enter lower-power sleep mode when on the ChibiOS idle thread OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/handwired/ortho_brass/keymaps/default/keymap.c b/keyboards/handwired/ortho_brass/keymaps/default/keymap.c index f32529b6a7c..93d4082305a 100644 --- a/keyboards/handwired/ortho_brass/keymaps/default/keymap.c +++ b/keyboards/handwired/ortho_brass/keymaps/default/keymap.c @@ -154,7 +154,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------+------+------+------+------+------+------| * | | |MUSmod|Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak|Plover| | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof|TermOn|TermOf| | | | + * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' diff --git a/keyboards/handwired/osborne1/config.h b/keyboards/handwired/osborne1/config.h new file mode 100644 index 00000000000..1e21a30db07 --- /dev/null +++ b/keyboards/handwired/osborne1/config.h @@ -0,0 +1,24 @@ +// Copyright 2022 Nick Lopez +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT + +#define BLUEFRUIT_LE_RST_PIN D4 +#define BLUEFRUIT_LE_CS_PIN B4 +#define BLUEFRUIT_LE_IRQ_PIN E6 diff --git a/keyboards/handwired/osborne1/info.json b/keyboards/handwired/osborne1/info.json new file mode 100644 index 00000000000..e9a2de95528 --- /dev/null +++ b/keyboards/handwired/osborne1/info.json @@ -0,0 +1,88 @@ +{ + "manufacturer": "crackmonkey", + "keyboard_name": "osborne1", + "maintainer": "crackmonkey", + "bootloader": "atmel-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": true, + "extrakey": false, + "mousekey": false, + "nkro": false + }, + "matrix_pins": { + "cols": ["D3", "D2", "F0", "F1", "F4", "F5", "F6", "F7"], + "rows": ["D0", "B7", "B5", "C6", "D1", "B6", "D7", "D6"] + }, + "processor": "atmega32u4", + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0x239A", + "vid": "0x800C" + }, + "layouts": { + "LAYOUT_64_ansi": { + "layout": [ + { "matrix": [0, 0], "label": "ESC", "x": 0, "y": 0 }, + { "matrix": [1, 0], "label": "1", "x": 1, "y": 0 }, + { "matrix": [1, 1], "label": "2", "x": 2, "y": 0 }, + { "matrix": [1, 2], "label": "3", "x": 3, "y": 0 }, + { "matrix": [1, 3], "label": "4", "x": 4, "y": 0 }, + { "matrix": [1, 4], "label": "5", "x": 5, "y": 0 }, + { "matrix": [1, 5], "label": "6", "x": 6, "y": 0 }, + { "matrix": [1, 6], "label": "7", "x": 7, "y": 0 }, + { "matrix": [1, 7], "label": "8", "x": 8, "y": 0 }, + { "matrix": [5, 7], "label": "9", "x": 9, "y": 0 }, + { "matrix": [5, 2], "label": "0", "x": 10, "y": 0 }, + { "matrix": [6, 2], "label": "-", "x": 11, "y": 0 }, + { "matrix": [6, 7], "label": "=", "x": 12, "y": 0 }, + { "matrix": [0, 7], "label": "[", "x": 13, "y": 0 }, + { "matrix": [5, 0], "label": "Up", "x": 14, "y": 0 }, + { "matrix": [0, 1], "label": "TAB", "x": 0, "y": 1 }, + { "matrix": [2, 0], "label": "Q", "x": 1, "y": 1 }, + { "matrix": [2, 1], "label": "W", "x": 2, "y": 1 }, + { "matrix": [2, 2], "label": "E", "x": 3, "y": 1 }, + { "matrix": [2, 3], "label": "R", "x": 4, "y": 1 }, + { "matrix": [2, 4], "label": "T", "x": 5, "y": 1 }, + { "matrix": [2, 5], "label": "Y", "x": 6, "y": 1 }, + { "matrix": [2, 6], "label": "U", "x": 7, "y": 1 }, + { "matrix": [2, 7], "label": "I", "x": 8, "y": 1 }, + { "matrix": [5, 6], "label": "O", "x": 9, "y": 1 }, + { "matrix": [5, 5], "label": "P", "x": 10, "y": 1 }, + { "matrix": [6, 5], "label": "Backslash", "x": 11, "y": 1 }, + { "matrix": [0, 6], "label": "Quote", "x": 12, "y": 1 }, + { "matrix": [5, 1], "label": "Left", "x": 13, "y": 1 }, + { "matrix": [6, 0], "label": "Right", "x": 14, "y": 1 }, + { "matrix": [0, 2], "label": "Control", "x": 0, "y": 2 }, + { "matrix": [7, 3], "label": "Capslock", "x": 1, "y": 2 }, + { "matrix": [3, 0], "label": "A", "x": 2, "y": 2 }, + { "matrix": [3, 1], "label": "S", "x": 3, "y": 2 }, + { "matrix": [3, 2], "label": "D", "x": 4, "y": 2 }, + { "matrix": [3, 3], "label": "F", "x": 5, "y": 2 }, + { "matrix": [3, 4], "label": "G", "x": 6, "y": 2 }, + { "matrix": [3, 5], "label": "H", "x": 7, "y": 2 }, + { "matrix": [3, 6], "label": "J", "x": 8, "y": 2 }, + { "matrix": [3, 7], "label": "K", "x": 9, "y": 2 }, + { "matrix": [6, 6], "label": "L", "x": 10, "y": 2 }, + { "matrix": [6, 4], "label": "Semicolon", "x": 11, "y": 2 }, + { "matrix": [0, 5], "label": "Return", "x": 12, "y": 2 }, + { "matrix": [6, 1], "label": "Down", "x": 13, "y": 2 }, + { "matrix": [0, 4], "label": "LShift", "x": 0, "y": 3 }, + { "matrix": [4, 0], "label": "Z", "x": 1, "y": 3 }, + { "matrix": [4, 1], "label": "X", "x": 2, "y": 3 }, + { "matrix": [4, 2], "label": "C", "x": 3, "y": 3 }, + { "matrix": [4, 3], "label": "V", "x": 4, "y": 3 }, + { "matrix": [4, 4], "label": "B", "x": 5, "y": 3 }, + { "matrix": [4, 5], "label": "N", "x": 6, "y": 3 }, + { "matrix": [4, 6], "label": "M", "x": 7, "y": 3 }, + { "matrix": [4, 7], "label": "Comma", "x": 8, "y": 3 }, + { "matrix": [5, 4], "label": "Period", "x": 9, "y": 3 }, + { "matrix": [6, 3], "label": "Slash", "x": 10, "y": 3 }, + { "matrix": [5, 3], "label": "Space", "x": 0, "y": 4 } + ] + } + } +} diff --git a/keyboards/handwired/osborne1/keymaps/default/keymap.c b/keyboards/handwired/osborne1/keymaps/default/keymap.c new file mode 100644 index 00000000000..53b71cfc0b3 --- /dev/null +++ b/keyboards/handwired/osborne1/keymaps/default/keymap.c @@ -0,0 +1,36 @@ +/* Copyright 2020 Nick Lopez + * + * 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_64_ansi( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_LBRC, KC_UP, + 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_QUOT, KC_LEFT, KC_RGHT, + KC_LCTL, MO(1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, KC_DOWN, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, + KC_SPC + ), + [1] = LAYOUT_64_ansi( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_BSPC, KC_DEL, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGDN, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______ + ) +}; + + diff --git a/keyboards/handwired/osborne1/readme.md b/keyboards/handwired/osborne1/readme.md new file mode 100644 index 00000000000..db8c161549b --- /dev/null +++ b/keyboards/handwired/osborne1/readme.md @@ -0,0 +1,25 @@ +# osborne1 + +![osborne1](https://i.imgur.com/221nQ5Eh.jpeg) + +The Osborne keyboard doesn't contain any electronics, so the pins of the 8x8 keyboard matrix are easily available right on the normal connector. 17 jumper wires and a Feather BlueFruit is all the additional hardware needed. + +* Keyboard Maintainer: [crackmonkey](https://github.com/crackmonkey) +* Hardware Supported: Adafruit Feather BlueFruit 32u4 +* Hardware Availability: E-waste + +Make example for this keyboard (after setting up your build environment): + + make osborne1:default + +Flashing example for this keyboard: + + make osborne1: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: + +* **Physical reset button**: Briefly press the button on the Feather diff --git a/keyboards/handwired/osborne1/rules.mk b/keyboards/handwired/osborne1/rules.mk new file mode 100644 index 00000000000..2bf3fe5811e --- /dev/null +++ b/keyboards/handwired/osborne1/rules.mk @@ -0,0 +1,2 @@ +BLUETOOTH_ENABLE = yes +BLUETOOTH_DRIVER = BluefruitLE diff --git a/keyboards/handwired/p65rgb/config.h b/keyboards/handwired/p65rgb/config.h index 384b0bc547e..8f94c7a7025 100644 --- a/keyboards/handwired/p65rgb/config.h +++ b/keyboards/handwired/p65rgb/config.h @@ -31,7 +31,6 @@ along with this program. If not, see . #define DIODE_DIRECTION COL2ROW #define RGB_DI_PIN B4 -#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_KEYPRESSES #define RGB_MATRIX_FRAMEBUFFER_EFFECTS diff --git a/keyboards/handwired/terminus_mini/keymaps/default/keymap.c b/keyboards/handwired/terminus_mini/keymaps/default/keymap.c index 8d0631072fe..413314e836d 100644 --- a/keyboards/handwired/terminus_mini/keymaps/default/keymap.c +++ b/keyboards/handwired/terminus_mini/keymaps/default/keymap.c @@ -182,7 +182,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Adjust (Lower + Raise) * ,-----------------------------------------------------------------------------------. - * | | | | | |QK_BOOT | |TermOn|TermOf| | | Del | + * | | | | | |QK_BOOT | | | | | | Del | * |------+------+------+------+------+-------------+------+------+------+------+------| * | | | | | | | |Qwerty|Colemk|Dvorak| | | * |------+------+------+------+------+-------------+------+------+------+------+------| diff --git a/keyboards/handwired/terminus_mini/keymaps/default/readme.md b/keyboards/handwired/terminus_mini/keymaps/default/readme.md index 4c04aa01700..e5718fc1a2c 100644 --- a/keyboards/handwired/terminus_mini/keymaps/default/readme.md +++ b/keyboards/handwired/terminus_mini/keymaps/default/readme.md @@ -149,7 +149,7 @@ keys. ### ADJUST - Keyboard Settings: Primarily used to change the base layer at this stage ``` ,----------------------------------------------------------------------------------. -| | | | | |QK_BOOT | |TermOn|TermOf| | | Del | +| | | | | |QK_BOOT | | | | | | Del | |------+------+------+------+------+------+-----+------+------+------+------+------| | | | | | | | |Qwerty|Colemk|Dvorak| | | |------+------+------+------+------+------+-----+------+------+------+------+------| diff --git a/keyboards/handwired/tkk/info.json b/keyboards/handwired/tkk/info.json new file mode 100644 index 00000000000..032b2c10f75 --- /dev/null +++ b/keyboards/handwired/tkk/info.json @@ -0,0 +1,42 @@ +{ + "manufacturer": "Joe Fass", + "keyboard_name": "tkk", + "maintainer": "jfass", + "bootloader": "halfkay", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "direct": [ + ["B0", "B1", "B2", "B3", "B7", "D0", "D1", "D2", "D3", "C6"] + ] + }, + "processor": "atmega32u4", + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0x0000", + "vid": "0xFEED" + }, + "layouts": { + "LAYOUT_all": { + "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 } + ] + } + } +} diff --git a/keyboards/handwired/tkk/keymaps/default/keymap.c b/keyboards/handwired/tkk/keymaps/default/keymap.c new file mode 100644 index 00000000000..14367413da9 --- /dev/null +++ b/keyboards/handwired/tkk/keymaps/default/keymap.c @@ -0,0 +1,53 @@ +// Copyright 2022 Joe Fass (@jfass) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * L = left, R = right + * T = thumb, I = index, M = middle, R = ring, P = pinky + * + * LP, LR, LM, LI, LT, RT, RI, RM, RR, RP + * + */ + [0] = LAYOUT_all( + LT(8, KC_A), LT(7, KC_O), LT(6, KC_E), LT(5, KC_U), LT(10,KC_BSPC), LT(9, KC_SPC), LT(1, KC_H), LT(2, KC_T), LT(3, KC_N), LT(4, KC_S) + ), + [1] = LAYOUT_all( + KC_Q, KC_K, KC_J, KC_I, KC_ESC, KC_TAB, KC_NO, KC_RGUI, KC_RGUI, KC_RGUI + ), + [2] = LAYOUT_all( + KC_Z, KC_Y, KC_X, KC_P, KC_NO, KC_NO, KC_RCTL, KC_NO, KC_RCTL, KC_RCTL + ), + [3] = LAYOUT_all( + KC_QUOT, KC_COMM, KC_DOT, KC_F, KC_NO, KC_NO, KC_RALT, KC_RALT, KC_NO, KC_RALT + ), + [4] = LAYOUT_all( + KC_SCLN, KC_LPRN, KC_RPRN, KC_GRV, KC_NO, MO(11), KC_RSFT, KC_RSFT, KC_RSFT, KC_NO + ), + [5] = LAYOUT_all( + KC_LGUI, KC_LGUI, KC_LGUI, KC_NO, LGUI(KC_GRV), LGUI(KC_TAB), KC_D, KC_G, KC_C, KC_ENT + ), + [6] = LAYOUT_all( + KC_LCTL, KC_LCTL, KC_NO, KC_LCTL, KC_NO, KC_NO, KC_M, KC_B, KC_V, KC_W + ), + [7] = LAYOUT_all( + KC_LALT, KC_NO, KC_LALT, KC_LALT, KC_NO, KC_NO, KC_SLSH, KC_L, KC_R, KC_BSLS + ), + [8] = LAYOUT_all( + KC_NO, KC_LSFT, KC_LSFT, KC_LSFT, MO(11), KC_NO, KC_MINS, KC_LBRC, KC_RBRC, KC_EQL + ), + [9] = LAYOUT_all( + KC_1, KC_2, KC_3, KC_4, KC_5, KC_NO, KC_LEFT, KC_RGHT, KC_UP, KC_DOWN + ), + [10] = LAYOUT_all( + KC_PGDN, KC_PGUP, KC_HOME, KC_END, KC_NO, KC_6, KC_7, KC_8, KC_9, KC_0 + ), + [11] = LAYOUT_all( + KC_WH_D, KC_WH_U, KC_WH_L, KC_WH_R, KC_BTN2, KC_BTN1, KC_MS_L, KC_MS_R, KC_MS_U, KC_MS_D + ) +}; + + + diff --git a/keyboards/handwired/tkk/readme.md b/keyboards/handwired/tkk/readme.md new file mode 100644 index 00000000000..2693565f84c --- /dev/null +++ b/keyboards/handwired/tkk/readme.md @@ -0,0 +1,34 @@ +# tkk + +![tkk](https://i.imgur.com/gXAjt3Oh.jpeg) + +This is 'tkk', a ten key split keyboard wired as a single "row," ten "column" diode-less numpad. I've been dreaming of my own ten key layout since before discovering [ASETIOP](https://asetniop.com/), and [gboard's Ginny](https://www.gboards.ca/) ... but I'm too new to QMK and too rusty with C to figure out how to modify the Ginny's layout / chording engine. So here we are. The tkk [layout](https://imgur.com/a/eQzhSgw) is built around a vaguely DVORAK-ish letter layout (with some adjustments meant to aid memorization), with "modules" for numbers, movement, modifiers, and even mouse keys. + +* Keyboard Maintainer: [Joe Fass](https://github.com/jfass) +* Hardware Supported: hand-wired, ten switch diode-less keyboard, using a Teensy 2.0 +* Hardware Availability: (forget where I bought the parts, but easy to find) + +Make example for this keyboard (after setting up your build environment): + + make handwired/tkk:default + +Or: + + qmk compile -kb handwired/tkk -km default + +In my build environment (Ubuntu), I needed to unset quite a few environment variables like CONDA\_BACKUP\_LDFLAGS that contained hardware options qmk didn't like, before this succeeded. + +Flashing example for this keyboard: + + make handwired/tkk: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 `RESET` if it is available + diff --git a/keyboards/handwired/tkk/rules.mk b/keyboards/handwired/tkk/rules.mk new file mode 100644 index 00000000000..6e7633bfe01 --- /dev/null +++ b/keyboards/handwired/tkk/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/5x6_right.h b/keyboards/handwired/tractyl_manuform/5x6_right/5x6_right.h index f171d411814..10b87670560 100644 --- a/keyboards/handwired/tractyl_manuform/5x6_right/5x6_right.h +++ b/keyboards/handwired/tractyl_manuform/5x6_right/5x6_right.h @@ -26,6 +26,8 @@ # include "teensy2pp.h" #elif defined(KEYBOARD_handwired_tractyl_manuform_5x6_right_elite_c) # include "elite_c.h" +#elif defined(KEYBOARD_handwired_tractyl_manuform_5x6_right_arduinomicro) +# include "arduinomicro.h" #endif #include "quantum.h" diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/arduinomicro/arduinomicro.h b/keyboards/handwired/tractyl_manuform/5x6_right/arduinomicro/arduinomicro.h new file mode 100644 index 00000000000..525b0378b46 --- /dev/null +++ b/keyboards/handwired/tractyl_manuform/5x6_right/arduinomicro/arduinomicro.h @@ -0,0 +1,19 @@ +/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) + * + * 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 "5x6_right.h" diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/arduinomicro/config.h b/keyboards/handwired/tractyl_manuform/5x6_right/arduinomicro/config.h new file mode 100644 index 00000000000..e43361cf643 --- /dev/null +++ b/keyboards/handwired/tractyl_manuform/5x6_right/arduinomicro/config.h @@ -0,0 +1,44 @@ +/* +Copyright 2012 Jun Wako +Copyright 2015 Jack Humbert + +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 PRODUCT "Tractyl Manuform(5x6) Aruino Micro (r)/ Pro Micro (l)" + +/* key matrix size */ +// Rows are doubled-up +#define MATRIX_ROWS 12 +#define MATRIX_COLS 6 + +// wiring of each half +// left +#define MATRIX_COL_PINS { D4, C6, D7, E6, B4, B5 } +#define MATRIX_ROW_PINS { F6, F7, B1, B3, B2, B6 } +// right +#define MATRIX_COL_PINS_RIGHT { D6, D7, B4, D3, C6, C7 } +#define MATRIX_ROW_PINS_RIGHT { D4, B7, F7, B6, B5, F6 } + +#define DIODE_DIRECTION COL2ROW + +/* serial.c configuration for split keyboard */ +//#undef USE_I2C +#define SOFT_SERIAL_PIN D0 +#define MASTER_RIGHT + +/* PMW3360 Settings */ +#define POINTING_DEVICE_CS_PIN B0 diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/arduinomicro/rules.mk b/keyboards/handwired/tractyl_manuform/5x6_right/arduinomicro/rules.mk new file mode 100644 index 00000000000..cf663a7ed6a --- /dev/null +++ b/keyboards/handwired/tractyl_manuform/5x6_right/arduinomicro/rules.mk @@ -0,0 +1,5 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/keymaps/drashna/rules.mk b/keyboards/handwired/tractyl_manuform/5x6_right/keymaps/drashna/rules.mk index 72824cf055f..8b227d4cbdd 100644 --- a/keyboards/handwired/tractyl_manuform/5x6_right/keymaps/drashna/rules.mk +++ b/keyboards/handwired/tractyl_manuform/5x6_right/keymaps/drashna/rules.mk @@ -8,7 +8,7 @@ OLED_ENABLE = yes WPM_ENABLE = yes ENCODER_ENABLE = yes ENCODER_MAP_ENABLE = yes -AUTOCORRECTION_ENABLE = yes +AUTOCORRECT_ENABLE = yes CAPS_WORD_ENABLE = yes DEFERRED_EXEC_ENABLE = yes @@ -20,7 +20,7 @@ ifeq ($(strip $(KEYBOARD)), handwired/tractyl_manuform/5x6_right/elite_c) OLED_ENABLE = no WPM_ENABLE = no ENCODER_ENABLE = no - AUTOCORRECTION_ENABLE = no + AUTOCORRECT_ENABLE = no LTO_SUPPORTED = yes SWAP_HANDS_ENABLE = no CUSTOM_UNICODE_ENABLE = no @@ -29,7 +29,7 @@ ifeq ($(strip $(KEYBOARD)), handwired/tractyl_manuform/5x6_right/elite_c) BOOTLOADER_SIZE = 512 endif ifeq ($(strip $(KEYBOARD)), handwired/tractyl_manuform/5x6_right/teensy2pp) - AUTOCORRECTION_ENABLE = no + AUTOCORRECT_ENABLE = no CAPS_WORD_ENABLE = yes endif ifeq ($(strip $(KEYBOARD)), handwired/tractyl_manuform/5x6_right/f411) diff --git a/keyboards/handwired/tractyl_manuform/tractyl_manuform.c b/keyboards/handwired/tractyl_manuform/tractyl_manuform.c index d3e2e029753..7ded835a6e1 100644 --- a/keyboards/handwired/tractyl_manuform/tractyl_manuform.c +++ b/keyboards/handwired/tractyl_manuform/tractyl_manuform.c @@ -308,16 +308,6 @@ bool process_record_kb(uint16_t keycode, keyrecord_t* record) { break; } # endif // !NO_CHARYBDIS_KEYCODES -# ifndef MOUSEKEY_ENABLE - // Simulate mouse keys if full support is not enabled (reduces firmware size - // while maintaining support for mouse keys). - if (IS_MOUSEKEY_BUTTON(keycode)) { - report_mouse_t mouse_report = pointing_device_get_report(); - mouse_report.buttons = pointing_device_handle_buttons(mouse_report.buttons, record->event.pressed, keycode - KC_MS_BTN1); - pointing_device_set_report(mouse_report); - pointing_device_send(); - } -# endif // !MOUSEKEY_ENABLE return true; } diff --git a/keyboards/handwired/twig/twig50/config.h b/keyboards/handwired/twig/twig50/config.h new file mode 100644 index 00000000000..ecdf7bf9fb2 --- /dev/null +++ b/keyboards/handwired/twig/twig50/config.h @@ -0,0 +1,28 @@ +// Copyright 2022 Takeshi Noda (nodatk@gmail.com) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "config_common.h" + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 14 + +#define MATRIX_ROW_PINS { B7, B6, B5, B4 } +#define MATRIX_COL_PINS { A2, A1, A0, B8 , B13, B14, B15, B9, B10, B11, B3, B2, B1, B0} + +#define DIODE_DIRECTION COL2ROW + +#define DEBOUNCE 8 +#define TAPPING_TERM 150 + +#define FORCE_NKRO + +#ifdef AUDIO_ENABLE + #define AUDIO_PIN A5 + #define AUDIO_PIN_ALT A4 + #define AUDIO_PIN_ALT_AS_NEGATIVE + #define STARTUP_SONG SONG(STARTUP_SOUND) + #define AUDIO_INIT_DELAY +#endif diff --git a/keyboards/handwired/twig/twig50/info.json b/keyboards/handwired/twig/twig50/info.json new file mode 100644 index 00000000000..12b2e397b16 --- /dev/null +++ b/keyboards/handwired/twig/twig50/info.json @@ -0,0 +1,20 @@ +{ + "keyboard_name": "twig50", + "manufacturer": "Twig", + "url": "", + "maintainer": "nodatk", + "usb": { + "vid": "0xFEED", + "pid": "0x6060", + "device_version": "0.2.1" + }, + "layouts": { + "LAYOUT_diag_4x14": { + "layout": [ +{"x":0, "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":0, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":4, "y":1}, {"x":5, "y":1}, {"x":6, "y":1}, {"x":7, "y":1}, {"x":8, "y":1}, {"x":9, "y":1}, {"x":10, "y":1}, {"x":11, "y":1}, {"x":12, "y":1}, {"x":13, "y":1}, +{"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":4, "y":2}, {"x":5, "y":2}, {"x":6, "y":2}, {"x":7, "y":2}, {"x":8, "y":2}, {"x":9, "y":2}, {"x":10, "y":2}, {"x":11, "y":2}, {"x":13, "y":2}, +{"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":4, "y":3}, {"x":5, "y":3}, {"x":7, "y":3}, {"x":8, "y":3}, {"x":9, "y":3}, {"x":10, "y":3}, {"x":11, "y":3}, {"x":13, "y":3}] + } + } + } diff --git a/keyboards/handwired/twig/twig50/keymaps/default/keymap.c b/keyboards/handwired/twig/twig50/keymaps/default/keymap.c new file mode 100644 index 00000000000..7270773a931 --- /dev/null +++ b/keyboards/handwired/twig/twig50/keymaps/default/keymap.c @@ -0,0 +1,79 @@ +// Copyright 2022 Takeshi Noda (nodatk@gmail.com) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "twig50.h" + +#define LAL_NCV LALT_T(KC_LANG2) +#define RAL_CNV RALT_T(KC_LANG1) +#define LGU_NCV LGUI_T(KC_LANG2) +#define RGU_ENT RGUI_T(KC_ENT) +#define RGU_IN8 RGUI_T(KC_INT8) + +#define RSF_SCL RSFT_T(KC_SCLN) +#define RCT_ESC RCTL_T(KC_ESC) +#define RCT_IN7 RCTL_T(KC_INT7) + +#define LT1_SPC LT(1, KC_SPC) +#define LT2_F LT(2, KC_F) +#define LT2_N LT(2, KC_N) +#define LT3_BS LT(3, KC_BSPC) +#define LT3_V LT(3, KC_V) +#define LT3_QOT LT(3, KC_QUOT) +#define TG4 TG(4) + +#define SFT_1 RSFT(KC_1) +#define SFT_2 RSFT(KC_2) +#define SFT_3 RSFT(KC_3) +#define SFT_4 RSFT(KC_4) +#define SFT_5 RSFT(KC_5) +#define SFT_6 LSFT(KC_6) +#define SFT_7 LSFT(KC_7) +#define SFT_8 LSFT(KC_8) +#define SFT_9 LSFT(KC_9) +#define SFT_0 LSFT(KC_0) +#define SFT_LBR LSFT(KC_LBRC) + +#define OSM_LSF OSM(MOD_LSFT) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + // Layer 0, Base layer + LAYOUT_diag_4x14( + 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_BSPC, + KC_LCTL, KC_A, KC_S, KC_D, LT2_F, KC_G, KC_H, KC_J, KC_K, KC_L, RSF_SCL, LT3_QOT, KC_ENT, + KC_LSFT, TG4, KC_Z, KC_X, KC_C, LT3_V, KC_B, LT2_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_BTN1, KC_BTN2, KC_LALT, LGU_NCV, LT1_SPC, RCT_ESC, RGU_ENT, RAL_CNV, KC_INT1, KC_DEL, MU_TOG + ), + + // Layer 1, Space-modifiers: Basic keys + LAYOUT_diag_4x14( + RESET, KC_EXEC, KC_HELP, KC_MENU, KC_SLCT, KC_STOP, KC_BTN2, KC_INT1, KC_MINS, KC_EQL, KC_INT3, SFT_LBR, KC_TRNS, + KC_TRNS, KC_AGIN, KC_FIND, KC_PGUP, KC_PGDN, KC_F19, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_ENT, SFT_7, SFT_2, + KC_TRNS, KC_TRNS, KC_UNDO, KC_CUT, KC_COPY, KC_PSTE, KC_APP, KC_BSPC, KC_DEL, KC_RBRC, KC_BSLS, KC_HOME, KC_END, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RCT_IN7, RGU_IN8, KC_TRNS, KC_INT2, KC_INT4, MU_MOD + ), + + // Layer 2, F,N-modifiers: Number keys and symbols + LAYOUT_diag_4x14( + KC_TRNS, SFT_1, SFT_2, SFT_3, SFT_4, SFT_5, SFT_6, SFT_7, SFT_8, SFT_9, KC_COMM, KC_DOT, KC_QUOT, + KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, SFT_1, SFT_2, + KC_TRNS, KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, KC_MINS, SFT_4, SFT_5, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_4, KC_5, KC_TRNS, KC_TRNS, KC_INT5, KC_INT6, KC_TRNS + ), + + // Layer 3, V,:-modifiers: Functions and mouse keys + LAYOUT_diag_4x14( + 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_MPLY, KC_MRWD, KC_MFFD, KC_MUTE, KC_VOLD, KC_VOLU, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_BTN3, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, + KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN2, KC_BTN1, KC_WH_D, KC_WH_U, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + // Layer 4, Toggles: One handed mode + LAYOUT_diag_4x14( + KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_LSFT, KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_RSFT, KC_TRNS, KC_TRNS, + KC_TRNS, TG4, KC_TRNS, KC_TRNS, KC_PGUP, KC_PGDN, KC_TRNS, KC_PGDN, KC_PGUP, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, + KC_TRNS, KC_TRNS, KC_LALT, KC_LGUI, KC_LCTL, KC_RCTL, KC_RGUI, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT + ) +}; diff --git a/keyboards/handwired/twig/twig50/readme.md b/keyboards/handwired/twig/twig50/readme.md new file mode 100644 index 00000000000..ae3692c1a08 --- /dev/null +++ b/keyboards/handwired/twig/twig50/readme.md @@ -0,0 +1,29 @@ +# Twig50 + +![Twig50](https://user-images.githubusercontent.com/12627081/185365257-03a4904b-8432-445b-9eca-67f2aff57cd9.jpg "Sample build") + +Handwired 50 key with Proton C. + +* Keyboard Maintainer: [Takeshi Noda](https://github.com/nodatk) +* Hardware Supported: Proton C +* Hardware Availability: Sorry, not available for now + +Layout data is available [here](http://www.keyboard-layout-editor.com/#/gists/8df4caf51c8d57e4069e2ae19965f02c). + +Make example for this keyboard (after setting up your build environment): + + make handwired/twig/twig50:default + +Flashing example for this keyboard: + + make handwired/twig/twig50: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 `RESET` if it is available diff --git a/keyboards/handwired/twig/twig50/rules.mk b/keyboards/handwired/twig/twig50/rules.mk new file mode 100644 index 00000000000..137022d6727 --- /dev/null +++ b/keyboards/handwired/twig/twig50/rules.mk @@ -0,0 +1,19 @@ +# MCU name +MCU = STM32F303 +BOARD = QMK_PROTON_C + +# 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 N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = yes # Audio output diff --git a/keyboards/handwired/twig/twig50/twig50.c b/keyboards/handwired/twig/twig50/twig50.c new file mode 100644 index 00000000000..7c4c8572f82 --- /dev/null +++ b/keyboards/handwired/twig/twig50/twig50.c @@ -0,0 +1,4 @@ +// Copyright 2022 Takeshi Noda (nodatk@gmail.com) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "twig50.h" diff --git a/keyboards/handwired/twig/twig50/twig50.h b/keyboards/handwired/twig/twig50/twig50.h new file mode 100644 index 00000000000..771f13e0518 --- /dev/null +++ b/keyboards/handwired/twig/twig50/twig50.h @@ -0,0 +1,20 @@ +// Copyright 2022 Takeshi Noda (nodatk@gmail.com) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "quantum.h" + +#define ___ KC_NO + +#define LAYOUT_diag_4x14( \ + K00, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \ + K10, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \ + K30, K31, K32, K34, K35, K37, K38, K39, K3A, K3B, K3D \ +) { \ + { K00, ___, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \ + { K10, ___, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, ___, K2D }, \ + { K30, K31, K32, ___, K34, K35, ___, K37, K38, K39, K3A, K3B, ___, K3D } \ +} diff --git a/keyboards/helix/rev3_4rows/config.h b/keyboards/helix/rev3_4rows/config.h index e5f49d7788a..0dd1a504007 100644 --- a/keyboards/helix/rev3_4rows/config.h +++ b/keyboards/helix/rev3_4rows/config.h @@ -59,7 +59,6 @@ along with this program. If not, see . #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 (RGB_MATRIX_LED_COUNT + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) diff --git a/keyboards/helix/rev3_5rows/config.h b/keyboards/helix/rev3_5rows/config.h index 8838bd6bde3..68578c3947a 100644 --- a/keyboards/helix/rev3_5rows/config.h +++ b/keyboards/helix/rev3_5rows/config.h @@ -59,7 +59,6 @@ along with this program. If not, see . #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 (RGB_MATRIX_LED_COUNT + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) diff --git a/keyboards/hidtech/bastyl/keymaps/xyverz/readme.md b/keyboards/hidtech/bastyl/keymaps/xyverz/readme.md index f21f030a89c..89d11347d2a 100644 --- a/keyboards/hidtech/bastyl/keymaps/xyverz/readme.md +++ b/keyboards/hidtech/bastyl/keymaps/xyverz/readme.md @@ -17,6 +17,6 @@ See the [keyboard build instructions](https://hid-technologies.github.io/Bastyl- ## Important information regarding the reset -If you modify this firmware, make sure to always have a RESET key that can be triggered using only the master side ! This way you ensure that you can always flash the keyboard, even if you mess up. +If you modify this firmware, make sure to always have a `QK_BOOT` key that can be triggered using only the master side ! This way you ensure that you can always flash the keyboard, even if you mess up. Otherwise if you're stuck, open the case and reset manually by shorting Gnd and Rst, or pressing the RST button. diff --git a/keyboards/horrortroll/chinese_pcb/devil68_pro/keymaps/default/keymap.c b/keyboards/horrortroll/chinese_pcb/devil68_pro/keymaps/default/keymap.c index 3a914945364..f1f3aa3cea0 100644 --- a/keyboards/horrortroll/chinese_pcb/devil68_pro/keymaps/default/keymap.c +++ b/keyboards/horrortroll/chinese_pcb/devil68_pro/keymaps/default/keymap.c @@ -167,7 +167,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return true; } -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_user(void) { HSV hsv = rgb_matrix_config.hsv; uint8_t time = scale16by8(g_rgb_timer, qadd8(32, 1)); hsv.h = time; @@ -184,4 +184,5 @@ void rgb_matrix_indicators_user(void) { rgb_matrix_set_color(30, 0, 0, 0); } } + return false; } diff --git a/keyboards/horrortroll/chinese_pcb/devil68_pro/keymaps/via/keymap.c b/keyboards/horrortroll/chinese_pcb/devil68_pro/keymaps/via/keymap.c index 3a914945364..f1f3aa3cea0 100644 --- a/keyboards/horrortroll/chinese_pcb/devil68_pro/keymaps/via/keymap.c +++ b/keyboards/horrortroll/chinese_pcb/devil68_pro/keymaps/via/keymap.c @@ -167,7 +167,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return true; } -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_user(void) { HSV hsv = rgb_matrix_config.hsv; uint8_t time = scale16by8(g_rgb_timer, qadd8(32, 1)); hsv.h = time; @@ -184,4 +184,5 @@ void rgb_matrix_indicators_user(void) { rgb_matrix_set_color(30, 0, 0, 0); } } + return false; } diff --git a/keyboards/horrortroll/handwired_k552/keymaps/default/keymap_stuff.h b/keyboards/horrortroll/handwired_k552/keymaps/default/keymap_stuff.h index 8c4f9d0d4b5..5d854b93965 100644 --- a/keyboards/horrortroll/handwired_k552/keymaps/default/keymap_stuff.h +++ b/keyboards/horrortroll/handwired_k552/keymaps/default/keymap_stuff.h @@ -75,7 +75,7 @@ enum layer_keycodes { G_PRE, //Gradient presets REF_G, //Toggle between linear and reflected gradient G_FLIP, //Flip the gradient colors - + //Custom led effect keycode RGB_C_E, //Cycle user effect }; @@ -252,7 +252,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return true; } -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_user(void) { uint8_t side_leds_left[3] = {17, 18, 19}; uint8_t side_leds_right[3] = { 4, 5, 6}; HSV hsv = rgb_matrix_config.hsv; @@ -297,4 +297,5 @@ void rgb_matrix_indicators_user(void) { } } } + return false; } diff --git a/keyboards/horrortroll/handwired_k552/keymaps/via/keymap_stuff.h b/keyboards/horrortroll/handwired_k552/keymaps/via/keymap_stuff.h index 8c4f9d0d4b5..5d854b93965 100644 --- a/keyboards/horrortroll/handwired_k552/keymaps/via/keymap_stuff.h +++ b/keyboards/horrortroll/handwired_k552/keymaps/via/keymap_stuff.h @@ -75,7 +75,7 @@ enum layer_keycodes { G_PRE, //Gradient presets REF_G, //Toggle between linear and reflected gradient G_FLIP, //Flip the gradient colors - + //Custom led effect keycode RGB_C_E, //Cycle user effect }; @@ -252,7 +252,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return true; } -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_user(void) { uint8_t side_leds_left[3] = {17, 18, 19}; uint8_t side_leds_right[3] = { 4, 5, 6}; HSV hsv = rgb_matrix_config.hsv; @@ -297,4 +297,5 @@ void rgb_matrix_indicators_user(void) { } } } + return false; } diff --git a/keyboards/hs60/v1/config.h b/keyboards/hs60/v1/config.h index 6c942680f56..f92010cb316 100644 --- a/keyboards/hs60/v1/config.h +++ b/keyboards/hs60/v1/config.h @@ -109,7 +109,6 @@ along with this program. If not, see . //This is experimental do not enable yet //#define RGB_MATRIX_KEYPRESSES // reacts to keypresses (will slow down matrix scan by a lot) -#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_MAXIMUM_BRIGHTNESS 215 diff --git a/keyboards/idobao/id63/keymaps/idobao/keymap.c b/keyboards/idobao/id63/keymaps/idobao/keymap.c index f49304fb243..df40dfa5a38 100644 --- a/keyboards/idobao/id63/keymaps/idobao/keymap.c +++ b/keyboards/idobao/id63/keymaps/idobao/keymap.c @@ -196,7 +196,7 @@ void eeconfig_init_user(void) { id63_update_rgb_mode(); } -void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { +bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { // Caps Lock key stuff if (host_keyboard_led_state().caps_lock) { @@ -214,6 +214,7 @@ void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { } else if (user_config.rgb_disable_perkey) { rgb_matrix_set_color(ID63_CAPS_LOCK_KEY_INDEX, HSV_OFF); // off } + return false; } #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/idobao/id67/keymaps/idobao/keymap.c b/keyboards/idobao/id67/keymaps/idobao/keymap.c index 55ff6e57303..aadad80fb21 100644 --- a/keyboards/idobao/id67/keymaps/idobao/keymap.c +++ b/keyboards/idobao/id67/keymaps/idobao/keymap.c @@ -198,7 +198,7 @@ void eeconfig_init_user(void) { id67_update_rgb_mode(); } -void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { +bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { // Caps Lock key stuff if (host_keyboard_led_state().caps_lock) { @@ -216,6 +216,7 @@ void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { } else if (user_config.rgb_disable_perkey) { rgb_matrix_set_color(ID67_CAPS_LOCK_KEY_INDEX, HSV_OFF); // off } + return false; } #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/idobao/id67/keymaps/vinorodrigues/keymap.c b/keyboards/idobao/id67/keymaps/vinorodrigues/keymap.c index c0b79631d21..c90f1bf4713 100644 --- a/keyboards/idobao/id67/keymaps/vinorodrigues/keymap.c +++ b/keyboards/idobao/id67/keymaps/vinorodrigues/keymap.c @@ -154,11 +154,7 @@ void keyboard_post_init_user(void) { isRGBOff = false; } -void rgb_matrix_indicators_user(void) { - // do nothing, override base <> function to disable it -} - -void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { +bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { uint8_t v = MIN( rgblight_get_val() + RGB_BRIGHTER_BY, 0xFF ); uint8_t current_layer = get_highest_layer(layer_state); @@ -239,18 +235,7 @@ void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { } break; } -} - -/* - * Sleep mode stuff (untested) - */ - -void suspend_power_down_user(void) { - rgb_matrix_set_suspend_state(true); -} - -void suspend_wakeup_init_user(void) { - rgb_matrix_set_suspend_state(false); + return false; } #endif diff --git a/keyboards/idobao/id80/v3/ansi/keymaps/idobao/keymap.c b/keyboards/idobao/id80/v3/ansi/keymaps/idobao/keymap.c index e0d786e5e22..947863653c9 100644 --- a/keyboards/idobao/id80/v3/ansi/keymaps/idobao/keymap.c +++ b/keyboards/idobao/id80/v3/ansi/keymaps/idobao/keymap.c @@ -196,7 +196,7 @@ void eeconfig_init_user(void) { id80_update_rgb_mode(); } -void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { +bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { // Caps Lock key stuff if (host_keyboard_led_state().caps_lock) { @@ -214,6 +214,7 @@ void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { } else if (user_config.rgb_disable_perkey) { rgb_matrix_set_color(ID80_CAPS_LOCK_KEY_INDEX, HSV_OFF); // off } + return false; } #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/idobao/id87/v2/keymaps/idobao/keymap.c b/keyboards/idobao/id87/v2/keymaps/idobao/keymap.c index 59b60b7e1d5..31787a2e425 100644 --- a/keyboards/idobao/id87/v2/keymaps/idobao/keymap.c +++ b/keyboards/idobao/id87/v2/keymaps/idobao/keymap.c @@ -180,7 +180,7 @@ void eeconfig_init_user(void) { id87_update_rgb_mode(); } -void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { +bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { // Caps Lock key stuff if (host_keyboard_led_state().caps_lock) { @@ -198,6 +198,7 @@ void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { } else if (user_config.rgb_disable_perkey) { rgb_matrix_set_color(ID87_CAPS_LOCK_KEY_INDEX, HSV_OFF); // off } + return false; } #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/ilumkb/simpler61/config.h b/keyboards/ilumkb/simpler61/config.h index ee26a0ff23c..4e952e27753 100644 --- a/keyboards/ilumkb/simpler61/config.h +++ b/keyboards/ilumkb/simpler61/config.h @@ -31,7 +31,6 @@ /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ #define DEBOUNCE 3 -#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_KEYPRESSES #define RGB_MATRIX_LED_PROCESS_LIMIT 4 diff --git a/keyboards/ilumkb/simpler64/config.h b/keyboards/ilumkb/simpler64/config.h index 463f94aeaed..565e4126caf 100644 --- a/keyboards/ilumkb/simpler64/config.h +++ b/keyboards/ilumkb/simpler64/config.h @@ -31,7 +31,6 @@ /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ #define DEBOUNCE 3 -#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_KEYPRESSES #define RGB_MATRIX_LED_PROCESS_LIMIT 4 diff --git a/keyboards/inett_studio/sqx/hotswap/hotswap.c b/keyboards/inett_studio/sqx/hotswap/hotswap.c index 055e918f6dd..7f5e298c4c7 100644 --- a/keyboards/inett_studio/sqx/hotswap/hotswap.c +++ b/keyboards/inett_studio/sqx/hotswap/hotswap.c @@ -152,11 +152,14 @@ led_config_t g_led_config = { } }; -__attribute__ ((weak)) -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_kb(void) { + if (!rgb_matrix_indicators_user()) { + return false; + } if (host_keyboard_led_state().caps_lock) { rgb_matrix_set_color(8, 0xFF, 0x0, 0x0); } + return true; } #endif //RGB_MATRIX_ENABLE diff --git a/keyboards/inett_studio/sqx/universal/universal.c b/keyboards/inett_studio/sqx/universal/universal.c index e03d7395e5e..9715f28b78b 100644 --- a/keyboards/inett_studio/sqx/universal/universal.c +++ b/keyboards/inett_studio/sqx/universal/universal.c @@ -156,11 +156,14 @@ led_config_t g_led_config = { } }; -__attribute__ ((weak)) -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_kb(void) { + if (!rgb_matrix_indicators_user()) { + return false; + } if (host_keyboard_led_state().caps_lock) { rgb_matrix_set_color(8, 0xFF, 0x0, 0x0); } + return true; } #endif //RGB_MATRIX_ENABLE diff --git a/keyboards/input_club/ergodox_infinity/keymaps/dudeofawesome/keymap.c b/keyboards/input_club/ergodox_infinity/keymaps/dudeofawesome/keymap.c index 266194de357..f2611150556 100644 --- a/keyboards/input_club/ergodox_infinity/keymaps/dudeofawesome/keymap.c +++ b/keyboards/input_club/ergodox_infinity/keymaps/dudeofawesome/keymap.c @@ -322,7 +322,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // right hand _______, _______, _______, _______, _______, _______, _______, - _______, _______, TERM_ON, TERM_OFF, _______, _______, KC_DEL, + _______, _______, _______, _______, _______, _______, KC_DEL, AG_SWAP, QWERTY, WORKMAN, DVORAK, COLEMAK, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/jadookb/jkb65/config.h b/keyboards/jadookb/jkb65/config.h index c82b44b482e..206b971aa3c 100644 --- a/keyboards/jadookb/jkb65/config.h +++ b/keyboards/jadookb/jkb65/config.h @@ -30,7 +30,7 @@ #define RGB_DISABLE_WHEN_USB_SUSPENDED #define RGB_MATRIX_FRAMEBUFFER_EFFECTS #define RGB_MATRIX_KEYPRESSES -#define RGB_DISABLE_TIMEOUT 90000 +#define RGB_MATRIX_TIMEOUT 90000 #define RGB_MATRIX_LED_PROCESS_LIMIT 4 #define RGB_MATRIX_LED_FLUSH_LIMIT 26 #define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_ALL diff --git a/keyboards/jadookb/jkb65/jkb65.c b/keyboards/jadookb/jkb65/jkb65.c index aabdce7d208..1ce62e241a8 100644 --- a/keyboards/jadookb/jkb65/jkb65.c +++ b/keyboards/jadookb/jkb65/jkb65.c @@ -44,10 +44,13 @@ led_config_t g_led_config = { { } }; -__attribute__ ((weak)) -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_kb(void) { + if (!rgb_matrix_indicators_user()) { + return false; + } if (host_keyboard_led_state().caps_lock) { rgb_matrix_set_color(30, 0xFF, 0xFF, 0xFF); } + return true; } #endif diff --git a/keyboards/kbdfans/baguette66/rgb/rgb.c b/keyboards/kbdfans/baguette66/rgb/rgb.c index def3e10c975..5f4f3a634df 100644 --- a/keyboards/kbdfans/baguette66/rgb/rgb.c +++ b/keyboards/kbdfans/baguette66/rgb/rgb.c @@ -32,17 +32,19 @@ led_config_t g_led_config = { { }, { 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1 } }; -__attribute__ ((weak)) -void rgb_matrix_indicators_user(void) -{ +bool rgb_matrix_indicators_kb(void) { + if (!rgb_matrix_indicators_user()) { + return false; + } if (host_keyboard_led_state().caps_lock) { rgb_matrix_set_color(31, 0xFF, 0xFF, 0xFF); } + return true; } #endif diff --git a/keyboards/kbdfans/bella/rgb/config.h b/keyboards/kbdfans/bella/rgb/config.h index 326f1fe19fa..9cfc6702b40 100644 --- a/keyboards/kbdfans/bella/rgb/config.h +++ b/keyboards/kbdfans/bella/rgb/config.h @@ -28,7 +28,6 @@ #define DEBOUNCE 5 #ifdef RGB_MATRIX_ENABLE -#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_KEYPRESSES #define RGB_MATRIX_FRAMEBUFFER_EFFECTS diff --git a/keyboards/kbdfans/bella/rgb/rgb.c b/keyboards/kbdfans/bella/rgb/rgb.c index 90bbda0f7f6..e8c2cc0282b 100644 --- a/keyboards/kbdfans/bella/rgb/rgb.c +++ b/keyboards/kbdfans/bella/rgb/rgb.c @@ -128,15 +128,15 @@ led_config_t g_led_config = { { 58, NO_LED, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, NO_LED, 70, NO_LED, }, /* R4 */ { 71, 72, 73, NO_LED, NO_LED, NO_LED, 74, NO_LED, NO_LED, NO_LED, 75, 76, 77, NO_LED, 78, 79, }, /* R5 */ }, { - {0, 0}, {29, 0}, {44, 0}, {59, 0}, {73, 0}, {95, 0}, {110, 0}, {125, 0}, {140, 0}, {161, 0}, {176, 0}, {191, 0}, {206, 0}, {224, 0}, - {0, 17}, {15, 17}, {29, 17}, {44, 17}, {59, 17}, {73, 17}, {88, 17}, {102, 17}, {117, 17}, {132, 17}, {147, 17}, {161, 17}, {176, 17}, {198, 17}, {224, 17}, + {0, 0}, {29, 0}, {44, 0}, {59, 0}, {73, 0}, {95, 0}, {110, 0}, {125, 0}, {140, 0}, {161, 0}, {176, 0}, {191, 0}, {206, 0}, {224, 0}, + {0, 17}, {15, 17}, {29, 17}, {44, 17}, {59, 17}, {73, 17}, {88, 17}, {102, 17}, {117, 17}, {132, 17}, {147, 17}, {161, 17}, {176, 17}, {198, 17}, {224, 17}, {4, 29}, {22, 29}, {37, 29}, {51, 29}, {66, 29}, {81, 29}, {95, 29}, {110, 29}, {125, 29}, {140, 29}, {154, 29}, {169, 29}, {184, 29}, {202, 29}, {224, 29}, {5, 41}, {26, 41}, {40, 41}, {55, 41}, {70, 41}, {84, 41}, {99, 41}, {114, 41}, {129, 41}, {143, 41}, {158, 41}, {172, 41}, {196, 41}, {224, 41}, {9, 52}, {33, 52}, {48, 52}, {62, 52}, {77, 52}, {92, 52}, {106, 52}, {121, 52}, {136, 52}, {150, 52}, {165, 52}, {185, 52}, {209, 52}, - {2, 64}, {20, 64}, {38, 64}, {94, 64}, {150, 64}, {172, 64}, {195, 64}, {209, 64}, {224, 64}, - {0, 0}, {45, 0}, {90, 0}, {134, 0}, {179, 0}, {224, 0}, - {0, 32}, {224,32}, - {0, 64}, {45, 64}, {90, 64}, {134, 64}, {179, 64}, {224, 64}, + {2, 64}, {20, 64}, {38, 64}, {94, 64}, {150, 64}, {172, 64}, {195, 64}, {209, 64}, {224, 64}, + {0, 0}, {45, 0}, {90, 0}, {134, 0}, {179, 0}, {224, 0}, + {0, 32}, {224,32}, + {0, 64}, {45, 64}, {90, 64}, {134, 64}, {179, 64}, {224, 64}, }, { 4,1,1,1,1,1,1,1,1,1,1,1,1,4, 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, @@ -148,22 +148,14 @@ led_config_t g_led_config = { } }; -void suspend_power_down_kb(void) { - rgb_matrix_set_suspend_state(true); - suspend_power_down_user(); -} - -void suspend_wakeup_init_kb(void) { - rgb_matrix_set_suspend_state(false); - suspend_wakeup_init_user(); -} - -__attribute__ ((weak)) -void rgb_matrix_indicators_user(void) -{ +bool rgb_matrix_indicators_kb(void) { + if (!rgb_matrix_indicators_user()) { + return false; + } if (host_keyboard_led_state().caps_lock) { rgb_matrix_set_color(44, 0xFF, 0xFF, 0xFF); } + return true; } #endif diff --git a/keyboards/kbdfans/bella/rgb_iso/config.h b/keyboards/kbdfans/bella/rgb_iso/config.h index 78ae4f21e15..3dc2f28b506 100644 --- a/keyboards/kbdfans/bella/rgb_iso/config.h +++ b/keyboards/kbdfans/bella/rgb_iso/config.h @@ -28,7 +28,6 @@ #define DEBOUNCE 5 #ifdef RGB_MATRIX_ENABLE -#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_KEYPRESSES #define RGB_MATRIX_FRAMEBUFFER_EFFECTS diff --git a/keyboards/kbdfans/bella/rgb_iso/rgb_iso.c b/keyboards/kbdfans/bella/rgb_iso/rgb_iso.c index 417c76cca60..3e356faa91b 100644 --- a/keyboards/kbdfans/bella/rgb_iso/rgb_iso.c +++ b/keyboards/kbdfans/bella/rgb_iso/rgb_iso.c @@ -129,15 +129,15 @@ led_config_t g_led_config = { { 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, NO_LED, 71, NO_LED, }, /* R4 */ { 72, 73, 74, NO_LED, NO_LED, NO_LED, 75, NO_LED, NO_LED, NO_LED, 76, 77, 78, NO_LED, 79, 80, }, /* R5 */ }, { - {0, 0}, {29, 0}, {44, 0}, {59, 0}, {73, 0}, {95, 0}, {110, 0}, {125, 0}, {140, 0}, {161, 0}, {176, 0}, {191, 0}, {206, 0}, {224, 0}, - {0, 17}, {15, 17}, {29, 17}, {44, 17}, {59, 17}, {73, 17}, {88, 17}, {102, 17}, {117, 17}, {132, 17}, {147, 17}, {161, 17}, {176, 17}, {198, 17}, {224, 17}, + {0, 0}, {29, 0}, {44, 0}, {59, 0}, {73, 0}, {95, 0}, {110, 0}, {125, 0}, {140, 0}, {161, 0}, {176, 0}, {191, 0}, {206, 0}, {224, 0}, + {0, 17}, {15, 17}, {29, 17}, {44, 17}, {59, 17}, {73, 17}, {88, 17}, {102, 17}, {117, 17}, {132, 17}, {147, 17}, {161, 17}, {176, 17}, {198, 17}, {224, 17}, {4, 29}, {22, 29}, {37, 29}, {51, 29}, {66, 29}, {81, 29}, {95, 29}, {110, 29}, {125, 29}, {140, 29}, {154, 29}, {169, 29}, {184, 29}, {200, 35}, {224, 29}, {5, 41}, {26, 41}, {40, 41}, {55, 41}, {70, 41}, {84, 41}, {99, 41}, {114, 41}, {129, 41}, {143, 41}, {158, 41}, {172, 41}, {187, 41}, {224, 41}, {2, 52}, {18, 52}, {33, 52}, {48, 52}, {62, 52}, {77, 52}, {92, 52}, {106, 52}, {121, 52}, {136, 52}, {150, 52}, {165, 52}, {185, 52}, {209, 52}, - {2, 64}, {20, 64}, {38, 64}, {94, 64}, {150, 64}, {172, 64}, {195, 64}, {209, 64}, {224, 64}, - {0, 0}, {45, 0}, {90, 0}, {134, 0}, {179, 0}, {224, 0}, - {0, 32}, {224,32}, - {0, 64}, {45, 64}, {90, 64}, {134, 64}, {179, 64}, {224, 64}, + {2, 64}, {20, 64}, {38, 64}, {94, 64}, {150, 64}, {172, 64}, {195, 64}, {209, 64}, {224, 64}, + {0, 0}, {45, 0}, {90, 0}, {134, 0}, {179, 0}, {224, 0}, + {0, 32}, {224,32}, + {0, 64}, {45, 64}, {90, 64}, {134, 64}, {179, 64}, {224, 64}, }, { 4,1,1,1,1,1,1,1,1,1,1,1,1,4, 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, @@ -148,23 +148,14 @@ led_config_t g_led_config = { 2,2,2,2,2,2,2,2,2,2,2,2,2,2, } }; -void suspend_power_down_kb(void) { - rgb_matrix_set_suspend_state(true); - suspend_power_down_user(); -} -void suspend_wakeup_init_kb(void) { - rgb_matrix_set_suspend_state(false); - suspend_wakeup_init_user(); -} - - -__attribute__ ((weak)) -void rgb_matrix_indicators_user(void) -{ - if (host_keyboard_led_state().caps_lock) - { +bool rgb_matrix_indicators_kb(void) { + if (!rgb_matrix_indicators_user()) { + return false; + } + if (host_keyboard_led_state().caps_lock) { rgb_matrix_set_color(44, 0xFF, 0xFF, 0xFF); } + return true; } #endif diff --git a/keyboards/kbdfans/boop65/rgb/config.h b/keyboards/kbdfans/boop65/rgb/config.h index fea42a4266e..63100696e94 100644 --- a/keyboards/kbdfans/boop65/rgb/config.h +++ b/keyboards/kbdfans/boop65/rgb/config.h @@ -33,7 +33,6 @@ #define USB_SUSPEND_WAKEUP_DELAY 5000 #ifdef RGB_MATRIX_ENABLE -# 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_KEYPRESSES # define RGB_MATRIX_LED_PROCESS_LIMIT 4 diff --git a/keyboards/kbdfans/boop65/rgb/rgb.c b/keyboards/kbdfans/boop65/rgb/rgb.c index a0a1778fd80..19645b6b837 100644 --- a/keyboards/kbdfans/boop65/rgb/rgb.c +++ b/keyboards/kbdfans/boop65/rgb/rgb.c @@ -21,66 +21,66 @@ 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}, - {0, CS21_SW4, CS20_SW4, CS19_SW4}, + {0, CS21_SW3, CS20_SW3, CS19_SW3}, + {0, CS21_SW4, CS20_SW4, CS19_SW4}, {0, CS21_SW5, CS20_SW5, CS19_SW5}, {0, CS21_SW6, CS20_SW6, CS19_SW6}, - {0, CS21_SW7, CS20_SW7, CS19_SW7}, - {0, CS21_SW8, CS20_SW8, CS19_SW8}, - {0, CS24_SW1, CS23_SW1, CS22_SW1}, - {0, CS24_SW2, CS23_SW2, CS22_SW2}, + {0, CS21_SW7, CS20_SW7, CS19_SW7}, + {0, CS21_SW8, CS20_SW8, CS19_SW8}, + {0, CS24_SW1, CS23_SW1, CS22_SW1}, + {0, CS24_SW2, CS23_SW2, CS22_SW2}, {0, CS24_SW3, CS23_SW3, CS22_SW3}, - {0, CS24_SW4, CS23_SW4, CS22_SW4}, + {0, CS24_SW4, CS23_SW4, CS22_SW4}, {0, CS24_SW5, CS23_SW5, CS22_SW5}, {0, CS24_SW6, CS23_SW6, CS22_SW6}, - {0, CS24_SW7, CS23_SW7, CS22_SW7}, - - {0, CS15_SW1, CS14_SW1, CS13_SW1}, + {0, CS24_SW7, CS23_SW7, CS22_SW7}, + + {0, CS15_SW1, CS14_SW1, CS13_SW1}, {0, CS15_SW2, CS14_SW2, CS13_SW2}, {0, CS15_SW3, CS14_SW3, CS13_SW3}, {0, CS15_SW4, CS14_SW4, CS13_SW4}, {0, CS15_SW5, CS14_SW5, CS13_SW5}, {0, CS15_SW6, CS14_SW6, CS13_SW6}, {0, CS15_SW7, CS14_SW7, CS13_SW7}, - {0, CS15_SW8, CS14_SW8, CS13_SW8}, - {0, CS30_SW1, CS29_SW1, CS28_SW1}, + {0, CS15_SW8, CS14_SW8, CS13_SW8}, + {0, CS30_SW1, CS29_SW1, CS28_SW1}, {0, CS30_SW2, CS29_SW2, CS28_SW2}, {0, CS30_SW3, CS29_SW3, CS28_SW3}, {0, CS30_SW4, CS29_SW4, CS28_SW4}, {0, CS30_SW5, CS29_SW5, CS28_SW5}, {0, CS30_SW6, CS29_SW6, CS28_SW6}, - {0, CS30_SW7, CS29_SW7, CS28_SW7}, - - {0, CS12_SW1, CS11_SW1, CS10_SW1}, - {0, CS12_SW2, CS11_SW2, CS10_SW2}, - {0, CS12_SW3, CS11_SW3, CS10_SW3}, - {0, CS12_SW4, CS11_SW4, CS10_SW4}, - {0, CS12_SW5, CS11_SW5, CS10_SW5}, - {0, CS12_SW6, CS11_SW6, CS10_SW6}, - {0, CS12_SW7, CS11_SW7, CS10_SW7}, - {0, CS12_SW8, CS11_SW8, CS10_SW8}, - {0, CS33_SW1, CS32_SW1, CS31_SW1}, - {0, CS33_SW2, CS32_SW2, CS31_SW2}, - {0, CS33_SW3, CS32_SW3, CS31_SW3}, - {0, CS33_SW4, CS32_SW4, CS31_SW4}, - {0, CS33_SW5, CS32_SW5, CS31_SW5}, - {0, CS33_SW7, CS32_SW7, CS31_SW7}, - - {0, CS9_SW1, CS8_SW1, CS7_SW1}, - {0, CS9_SW2, CS8_SW2, CS7_SW2}, - {0, CS9_SW3, CS8_SW3, CS7_SW3}, - {0, CS9_SW4, CS8_SW4, CS7_SW4}, - {0, CS9_SW5, CS8_SW5, CS7_SW5}, - {0, CS9_SW6, CS8_SW6, CS7_SW6}, - {0, CS9_SW7, CS8_SW7, CS7_SW7}, - {0, CS9_SW8, CS8_SW8, CS7_SW8}, + {0, CS30_SW7, CS29_SW7, CS28_SW7}, + + {0, CS12_SW1, CS11_SW1, CS10_SW1}, + {0, CS12_SW2, CS11_SW2, CS10_SW2}, + {0, CS12_SW3, CS11_SW3, CS10_SW3}, + {0, CS12_SW4, CS11_SW4, CS10_SW4}, + {0, CS12_SW5, CS11_SW5, CS10_SW5}, + {0, CS12_SW6, CS11_SW6, CS10_SW6}, + {0, CS12_SW7, CS11_SW7, CS10_SW7}, + {0, CS12_SW8, CS11_SW8, CS10_SW8}, + {0, CS33_SW1, CS32_SW1, CS31_SW1}, + {0, CS33_SW2, CS32_SW2, CS31_SW2}, + {0, CS33_SW3, CS32_SW3, CS31_SW3}, + {0, CS33_SW4, CS32_SW4, CS31_SW4}, + {0, CS33_SW5, CS32_SW5, CS31_SW5}, + {0, CS33_SW7, CS32_SW7, CS31_SW7}, + + {0, CS9_SW1, CS8_SW1, CS7_SW1}, + {0, CS9_SW2, CS8_SW2, CS7_SW2}, + {0, CS9_SW3, CS8_SW3, CS7_SW3}, + {0, CS9_SW4, CS8_SW4, CS7_SW4}, + {0, CS9_SW5, CS8_SW5, CS7_SW5}, + {0, CS9_SW6, CS8_SW6, CS7_SW6}, + {0, CS9_SW7, CS8_SW7, CS7_SW7}, + {0, CS9_SW8, CS8_SW8, CS7_SW8}, {0, CS36_SW1, CS35_SW1, CS34_SW1}, {0, CS36_SW2, CS35_SW2, CS34_SW2}, {0, CS36_SW3, CS35_SW3, CS34_SW3}, {0, CS36_SW4, CS35_SW4, CS34_SW4}, {0, CS36_SW5, CS35_SW5, CS34_SW5}, {0, CS36_SW7, CS35_SW7, CS34_SW7}, - + {0, CS3_SW1, CS2_SW1, CS1_SW1}, {0, CS3_SW2, CS2_SW2, CS1_SW2}, {0, CS3_SW3, CS2_SW3, CS1_SW3}, @@ -90,27 +90,27 @@ const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { {0, CS39_SW4, CS38_SW4, CS37_SW4}, {0, CS39_SW5, CS38_SW5, CS37_SW5}, {0, CS39_SW7, CS38_SW7, CS37_SW7}, - + /* underglow */ {0, CS18_SW1, CS17_SW1, CS16_SW1}, {0, CS18_SW3, CS17_SW3, CS16_SW3}, - {0, CS18_SW5, CS17_SW5, CS16_SW5}, - {0, CS18_SW7, CS17_SW7, CS16_SW7}, - {0, CS27_SW2, CS26_SW2, CS25_SW2}, - {0, CS27_SW4, CS26_SW4, CS25_SW4}, - {0, CS27_SW6, CS26_SW6, CS25_SW6}, + {0, CS18_SW5, CS17_SW5, CS16_SW5}, + {0, CS18_SW7, CS17_SW7, CS16_SW7}, + {0, CS27_SW2, CS26_SW2, CS25_SW2}, + {0, CS27_SW4, CS26_SW4, CS25_SW4}, + {0, CS27_SW6, CS26_SW6, CS25_SW6}, {0, CS27_SW7, CS26_SW7, CS25_SW7}, - - {0, CS6_SW1, CS5_SW1, CS4_SW1}, - {0, CS6_SW3, CS5_SW3, CS4_SW3}, - {0, CS6_SW4, CS5_SW4, CS4_SW4}, - {0, CS6_SW7, CS5_SW7, CS4_SW7}, + + {0, CS6_SW1, CS5_SW1, CS4_SW1}, + {0, CS6_SW3, CS5_SW3, CS4_SW3}, + {0, CS6_SW4, CS5_SW4, CS4_SW4}, + {0, CS6_SW7, CS5_SW7, CS4_SW7}, {0, CS39_SW1, CS38_SW1, CS37_SW1}, - {0, CS33_SW6, CS32_SW6, CS31_SW6}, - {0, CS36_SW6, CS35_SW6, CS34_SW6}, - {0, CS39_SW6, CS38_SW6, CS37_SW6} - + {0, CS33_SW6, CS32_SW6, CS31_SW6}, + {0, CS36_SW6, CS35_SW6, CS34_SW6}, + {0, CS39_SW6, CS38_SW6, CS37_SW6} + }; led_config_t g_led_config = { { { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, @@ -129,20 +129,21 @@ led_config_t g_led_config = { { }, { 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, 4, 1, 1, 1, 1, 1, - 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2 + 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2 } }; -__attribute__ ((weak)) -void rgb_matrix_indicators_user(void) -{ +bool rgb_matrix_indicators_kb(void) { + if (!rgb_matrix_indicators_user()) { + return false; + } if (host_keyboard_led_state().caps_lock) { rgb_matrix_set_color(30, 0xFF, 0xFF, 0xFF); } + return true; } #endif - diff --git a/keyboards/kbdfans/kbd67/mkiirgb/keymaps/dnsnrk/keymap.c b/keyboards/kbdfans/kbd67/mkiirgb/keymaps/dnsnrk/keymap.c index be5f251dac8..d34ed320dd2 100644 --- a/keyboards/kbdfans/kbd67/mkiirgb/keymaps/dnsnrk/keymap.c +++ b/keyboards/kbdfans/kbd67/mkiirgb/keymaps/dnsnrk/keymap.c @@ -51,7 +51,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return true; } -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_user(void) { if (rgb_matrix_config.enable) { HSV hsv = rgb_matrix_config.hsv; if (IS_HOST_LED_ON(USB_LED_CAPS_LOCK)) { @@ -87,6 +87,7 @@ void rgb_matrix_indicators_user(void) { set_hsv_at(hsv1, 63); set_hsv_at(hsv2, 57); } + return false; } void set_hsv_at(HSV hsv, uint8_t index) { diff --git a/keyboards/kbdfans/kbd67/mkiirgb/keymaps/jonavin/keymap.c b/keyboards/kbdfans/kbd67/mkiirgb/keymaps/jonavin/keymap.c index c2e409ed357..4adebffccff 100644 --- a/keyboards/kbdfans/kbd67/mkiirgb/keymaps/jonavin/keymap.c +++ b/keyboards/kbdfans/kbd67/mkiirgb/keymaps/jonavin/keymap.c @@ -45,7 +45,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #ifdef RGB_MATRIX_ENABLE // Capslock, Scroll lock and Numlock indicator - void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { + bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { if (get_rgb_nightmode()) rgb_matrix_set_color_all(RGB_OFF); if (IS_HOST_LED_ON(USB_LED_SCROLL_LOCK)) { rgb_matrix_set_color(LED_I, RGB_GREEN); @@ -109,15 +109,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { default: break; } + return false; } - void suspend_power_down_user(void) { - rgb_matrix_set_suspend_state(true); - } - - void suspend_wakeup_init_user(void) { - rgb_matrix_set_suspend_state(false); - } #endif diff --git a/keyboards/kbdfans/kbd67/mkiirgb/keymaps/pascalpfeil/config.h b/keyboards/kbdfans/kbd67/mkiirgb/keymaps/pascalpfeil/config.h index cda14c4bc0a..dcc998f035d 100644 --- a/keyboards/kbdfans/kbd67/mkiirgb/keymaps/pascalpfeil/config.h +++ b/keyboards/kbdfans/kbd67/mkiirgb/keymaps/pascalpfeil/config.h @@ -24,6 +24,6 @@ #ifdef RGB_MATRIX_ENABLE # define RGB_DISABLE_WHEN_USB_SUSPENDED -# undef RGB_DISABLE_TIMEOUT -# define RGB_DISABLE_TIMEOUT 900000 +# undef RGB_MATRIX_TIMEOUT +# define RGB_MATRIX_TIMEOUT 900000 #endif diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v1/config.h b/keyboards/kbdfans/kbd67/mkiirgb/v1/config.h index 944ddbddc29..929946a2317 100644 --- a/keyboards/kbdfans/kbd67/mkiirgb/v1/config.h +++ b/keyboards/kbdfans/kbd67/mkiirgb/v1/config.h @@ -10,7 +10,6 @@ #define RGB_MATRIX_LED_PROCESS_LIMIT 4 #define RGB_MATRIX_LED_FLUSH_LIMIT 26 #define DEBOUNCE 3 -#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_KEYPRESSES // RGB Matrix Animation modes. Explicitly enabled diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v1/v1.c b/keyboards/kbdfans/kbd67/mkiirgb/v1/v1.c index f034350b7ce..594d1fee23a 100644 --- a/keyboards/kbdfans/kbd67/mkiirgb/v1/v1.c +++ b/keyboards/kbdfans/kbd67/mkiirgb/v1/v1.c @@ -96,9 +96,13 @@ led_config_t g_led_config = {{{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14} {{0, 0}, {15, 0}, {30, 0}, {45, 0}, {60, 0}, {75, 0}, {90, 0}, {105, 0}, {120, 0}, {135, 0}, {150, 0}, {165, 0}, {180, 0}, {203, 0}, {224, 0}, {4, 16}, {23, 16}, {38, 16}, {53, 16}, {68, 16}, {83, 16}, {98, 16}, {113, 16}, {128, 16}, {143, 16}, {158, 16}, {173, 16}, {188, 16}, {206, 16}, {224, 16}, {6, 32}, {26, 32}, {41, 32}, {56, 32}, {71, 32}, {86, 32}, {101, 32}, {116, 32}, {131, 32}, {146, 32}, {161, 32}, {176, 32}, {201, 32}, {224, 32}, {9, 48}, {34, 48}, {49, 48}, {64, 48}, {79, 48}, {94, 48}, {109, 48}, {124, 48}, {139, 48}, {154, 48}, {169, 48}, {189, 48}, {210, 48}, {224, 48}, {2, 64}, {21, 64}, {39, 64}, {96, 64}, {152, 64}, {171, 64}, {195, 64}, {210, 64}, {224, 64}}, {1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, 4, 1, 1, 1, 1, 1}}; -__attribute__((weak)) void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_kb(void) { + if (!rgb_matrix_indicators_user()) { + return false; + } if (host_keyboard_led_state().caps_lock) { rgb_matrix_set_color(30, 0xFF, 0xFF, 0xFF); } + return true; } #endif diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v2/config.h b/keyboards/kbdfans/kbd67/mkiirgb/v2/config.h index 855f7210dbd..94f8500f98b 100644 --- a/keyboards/kbdfans/kbd67/mkiirgb/v2/config.h +++ b/keyboards/kbdfans/kbd67/mkiirgb/v2/config.h @@ -10,7 +10,6 @@ #define RGB_MATRIX_LED_PROCESS_LIMIT 4 #define RGB_MATRIX_LED_FLUSH_LIMIT 26 #define DEBOUNCE 3 -#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_KEYPRESSES #define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_ALL diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v2/v2.c b/keyboards/kbdfans/kbd67/mkiirgb/v2/v2.c index 1da1c667471..9bfcb47d969 100644 --- a/keyboards/kbdfans/kbd67/mkiirgb/v2/v2.c +++ b/keyboards/kbdfans/kbd67/mkiirgb/v2/v2.c @@ -113,10 +113,13 @@ led_config_t g_led_config = { { } }; -__attribute__ ((weak)) -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_kb(void) { + if (!rgb_matrix_indicators_user()) { + return false; + } if (host_keyboard_led_state().caps_lock) { rgb_matrix_set_color(30, 0xFF, 0xFF, 0xFF); } + return true; } #endif diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v3/config.h b/keyboards/kbdfans/kbd67/mkiirgb/v3/config.h index c65819be8d9..86ab159e3e3 100755 --- a/keyboards/kbdfans/kbd67/mkiirgb/v3/config.h +++ b/keyboards/kbdfans/kbd67/mkiirgb/v3/config.h @@ -31,7 +31,6 @@ #define DEBOUNCE 5 #ifdef RGB_MATRIX_ENABLE -#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 USB_SUSPEND_WAKEUP_DELAY 5000 #define RGB_MATRIX_KEYPRESSES diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v3/v3.c b/keyboards/kbdfans/kbd67/mkiirgb/v3/v3.c index 8089ee1f8c7..542551b3a3e 100755 --- a/keyboards/kbdfans/kbd67/mkiirgb/v3/v3.c +++ b/keyboards/kbdfans/kbd67/mkiirgb/v3/v3.c @@ -137,8 +137,10 @@ led_config_t g_led_config = { { #define CAPS_LOCK_VAL_STEP 8 #endif -__attribute__ ((weak)) -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_kb(void) { + if (!rgb_matrix_indicators_user()) { + return false; + } if (host_keyboard_led_state().caps_lock) { uint8_t b = rgb_matrix_get_val(); if (b < CAPS_LOCK_VAL_STEP) { @@ -150,6 +152,7 @@ void rgb_matrix_indicators_user(void) { } rgb_matrix_set_color(CAPS_LOCK_LED_INDEX, b, b, b); // white, with the adjusted brightness } + return true; } #endif diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v4/v4.c b/keyboards/kbdfans/kbd67/mkiirgb/v4/v4.c index 3c4b81132f8..c39d01f3b9f 100644 --- a/keyboards/kbdfans/kbd67/mkiirgb/v4/v4.c +++ b/keyboards/kbdfans/kbd67/mkiirgb/v4/v4.c @@ -13,7 +13,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ - + #include "v4.h" #ifdef RGB_MATRIX_ENABLE @@ -29,21 +29,24 @@ led_config_t g_led_config = { {0,0},{15,0},{30,0},{45,0},{60,0},{75,0},{90,0},{105,0},{120,0},{135,0},{150,0},{165,0},{180,0},{203,0},{224,0}, {224,16},{206,16},{188,16},{173,16},{158,16},{143,16},{128,16},{113,16},{98,16},{83,16}, {68,16},{53,16},{38,16},{23,16},{4,16}, {6,32},{26,32},{41,32},{56,32},{71,32},{86,32},{101,32},{116,32},{131,32},{146,32},{161,32},{176,32},{201,32},{224,32}, - {224,48},{210,48},{189,48},{169,48},{154,48},{139,48},{124,48},{109,48},{94,48},{79,48},{64,48},{49,48},{34,48},{9,48}, + {224,48},{210,48},{189,48},{169,48},{154,48},{139,48},{124,48},{109,48},{94,48},{79,48},{64,48},{49,48},{34,48},{9,48}, {2,64},{21,64},{39,64},{96,64},{152,64},{171,64},{195,64},{210,64},{224,64} }, { 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 4, 1, 1, 1, 1, 1 + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, + 1, 1, 1, 4, 1, 1, 1, 1, 1 } }; -__attribute__ ((weak)) -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_kb(void) { + if (!rgb_matrix_indicators_user()) { + return false; + } if (host_keyboard_led_state().caps_lock) { rgb_matrix_set_color(30, 0xFF, 0xFF, 0xFF); } + return true; } #endif diff --git a/keyboards/kbdfans/kbd67/mkiirgb_iso/mkiirgb_iso.c b/keyboards/kbdfans/kbd67/mkiirgb_iso/mkiirgb_iso.c index 267fa575986..37c2bcae452 100644 --- a/keyboards/kbdfans/kbd67/mkiirgb_iso/mkiirgb_iso.c +++ b/keyboards/kbdfans/kbd67/mkiirgb_iso/mkiirgb_iso.c @@ -33,17 +33,19 @@ led_config_t g_led_config = { }, { 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 4, 1, 1, 1, 1, 1 + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, + 1, 1, 1, 4, 1, 1, 1, 1, 1 } }; -__attribute__ ((weak)) -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_kb(void) { + if (!rgb_matrix_indicators_user()) { + return false; + } if (host_keyboard_led_state().caps_lock) { rgb_matrix_set_color(29, 0xFF, 0xFF, 0xFF); } + return true; } #endif - diff --git a/keyboards/kbdfans/kbd75rgb/kbd75rgb.c b/keyboards/kbdfans/kbd75rgb/kbd75rgb.c index 1f160ed4a51..8cc522c75b0 100644 --- a/keyboards/kbdfans/kbd75rgb/kbd75rgb.c +++ b/keyboards/kbdfans/kbd75rgb/kbd75rgb.c @@ -26,11 +26,11 @@ led_config_t g_led_config = { { { 83, 82, 81, NO_LED, NO_LED, 80, NO_LED, NO_LED, 79, 78, 77, 76, NO_LED,75 ,74} }, { {0, 0}, {15, 0}, {30, 0},{45, 0}, {60, 0}, {75, 0}, {90, 0}, {105, 0}, {120, 0}, {135, 0}, {150, 0}, {165, 0}, {180, 0}, {195, 0}, {210, 0}, {224, 0}, - {224, 12.8}, {218, 12.8},{192, 12.8},{176, 12.8},{160, 12.8},{144, 12.8},{128, 12.8},{112, 12.8},{96, 12.8},{80, 12.8},{64, 12.8},{48, 12.8},{32, 12.8},{16, 12.8},{0, 12.8}, + {224, 12.8}, {218, 12.8},{192, 12.8},{176, 12.8},{160, 12.8},{144, 12.8},{128, 12.8},{112, 12.8},{96, 12.8},{80, 12.8},{64, 12.8},{48, 12.8},{32, 12.8},{16, 12.8},{0, 12.8}, {0, 25.6},{16, 25.6}, {32, 25.6}, {48, 25.6}, {64, 25.6}, {80, 25.6}, {96, 25.6}, {112, 25.6}, {128, 25.6}, {144, 25.6}, {160, 25.6},{176, 25.6}, {192, 25.6}, {218, 25.6}, {224, 25.6}, -{224, 38.4},{200, 38.4},{176, 38.4},{160, 38.4},{144, 38.4},{128, 38.4},{112, 38.4},{96, 38.4},{80, 38.4},{64, 38.4},{48, 38.4},{32, 38.4},{16, 38.4},{0, 38.4}, - {0, 51.2},{16, 51.2}, {32, 51.2}, {48, 51.2}, {64, 51.2}, {80, 51.2}, {96, 51.2}, {112, 51.2}, {128, 51.2}, {144, 51.2}, {160, 51.2}, {189, 51.2}, {218, 51.2}, {224, 51.2}, -{224, 64},{218, 64},{192, 64},{176, 64},{160, 64},{144, 64}, {80, 64}, {32, 64},{16, 64},{0, 64} +{224, 38.4},{200, 38.4},{176, 38.4},{160, 38.4},{144, 38.4},{128, 38.4},{112, 38.4},{96, 38.4},{80, 38.4},{64, 38.4},{48, 38.4},{32, 38.4},{16, 38.4},{0, 38.4}, + {0, 51.2},{16, 51.2}, {32, 51.2}, {48, 51.2}, {64, 51.2}, {80, 51.2}, {96, 51.2}, {112, 51.2}, {128, 51.2}, {144, 51.2}, {160, 51.2}, {189, 51.2}, {218, 51.2}, {224, 51.2}, +{224, 64},{218, 64},{192, 64},{176, 64},{160, 64},{144, 64}, {80, 64}, {32, 64},{16, 64},{0, 64} }, { 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, @@ -40,12 +40,14 @@ led_config_t g_led_config = { { } }; -__attribute__ ((weak)) -void rgb_matrix_indicators_user(void) -{ +bool rgb_matrix_indicators_kb(void) { + if (!rgb_matrix_indicators_user()) { + return false; + } if (IS_HOST_LED_ON(USB_LED_CAPS_LOCK)) { rgb_matrix_set_color(59, 0xFF, 0xFF, 0xFF); } + return true; } #endif diff --git a/keyboards/kbdfans/kbdmini/config.h b/keyboards/kbdfans/kbdmini/config.h index 0eaf7a50ff3..fcb15d73833 100644 --- a/keyboards/kbdfans/kbdmini/config.h +++ b/keyboards/kbdfans/kbdmini/config.h @@ -26,7 +26,6 @@ #define DEBOUNCE 3 #ifdef RGB_MATRIX_ENABLE -#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_KEYPRESSES #define RGB_MATRIX_FRAMEBUFFER_EFFECTS diff --git a/keyboards/kbdfans/maja/config.h b/keyboards/kbdfans/maja/config.h index f98b7c31164..3ae0403cf32 100755 --- a/keyboards/kbdfans/maja/config.h +++ b/keyboards/kbdfans/maja/config.h @@ -11,7 +11,6 @@ #define RGB_MATRIX_LED_PROCESS_LIMIT 4 #define RGB_MATRIX_LED_FLUSH_LIMIT 26 #define DEBOUNCE 3 -#define RGB_DISABLE_AFTER_TIMEOUT 0 #define RGB_DISABLE_WHEN_USB_SUSPENDED #define RGB_MATRIX_KEYPRESSES // RGB Matrix Animation modes. Explicitly enabled diff --git a/keyboards/kbdfans/maja/maja.c b/keyboards/kbdfans/maja/maja.c index 6bb23f47394..0185a7ce2bf 100755 --- a/keyboards/kbdfans/maja/maja.c +++ b/keyboards/kbdfans/maja/maja.c @@ -14,7 +14,7 @@ const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { {0, C1_12, C2_12, C3_12}, // LB4 {0, C1_11, C2_11, C3_11}, // LB3 {0, C1_10, C2_10, C4_11}, // LB2 - {0, C1_9, C3_10, C4_10}, // LB1 + {0, C1_9, C3_10, C4_10}, // LB1 {0, C2_9, C3_9, C4_9}, // LB0 {0, C9_4, C8_4, C7_4}, // LA12 @@ -39,20 +39,20 @@ const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { {0, C9_8, C7_7, C6_7}, // LA16 {0, C8_8, C7_8, C6_8}, // LA17 {1, C2_1, C3_1, C4_1}, // LC0 - {1, C1_15, C2_15, C3_15}, // LD7 - {1, C1_14, C2_14, C3_14}, // LD6 - {1, C1_13, C2_13, C3_13}, // LD5 - {1, C1_12, C2_12, C3_12}, // LD4 + {1, C1_15, C2_15, C3_15}, // LD7 + {1, C1_14, C2_14, C3_14}, // LD6 + {1, C1_13, C2_13, C3_13}, // LD5 + {1, C1_12, C2_12, C3_12}, // LD4 {1, C1_11, C2_11, C3_11}, // LD3 {1, C1_10, C2_10, C4_11}, // LD2 {1, C1_9, C3_10, C4_10}, // LD1 {0, C8_16, C7_16, C6_16}, // LB17 {1, C1_6, C2_6, C3_6}, // LC6 - {1, C1_5, C2_5, C3_5}, // LC5 - {1, C1_4, C2_4, C3_4}, // LC4 + {1, C1_5, C2_5, C3_5}, // LC5 + {1, C1_4, C2_4, C3_4}, // LC4 {1, C1_3, C2_3, C3_3}, // LC3 - {1, C1_2, C2_2, C4_3}, // LC2 + {1, C1_2, C2_2, C4_3}, // LC2 {1, C1_1, C3_2, C4_2}, // LC1 {1, C1_16, C2_16, C3_16}, // LD8 {1, C9_9, C8_9, C7_9}, // LD9 @@ -80,7 +80,7 @@ led_config_t g_led_config = { { { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, NO_LED, 42, 43}, { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, NO_LED}, { 58, NO_LED, 59, 60, NO_LED, 61, NO_LED, 62, NO_LED, 63, NO_LED, NO_LED, 64, 65, 66} -}, { +}, { {4,1},{18,1},{31,0},{46,3},{59,5},{73,7},{86,10},{107,9},{121,7},{134,4},{148,2},{162,0},{176,2},{196,2},{224,0}, {5,15},{22,15},{37,15},{50,17},{64,20},{77,22},{103,23},{117,21},{130,19},{143,16},{158,15},{171,16},{186,16},{202,16},{224,16}, {4,28},{23,28},{38,29},{51,31},{65,34},{78,36},{109,36},{122,34},{136,32},{150,29},{164,29},{177,29},{200,29},{224,29}, @@ -88,26 +88,18 @@ led_config_t g_led_config = { { {0,55},{40,58},{62,61},{86,64},{119,62},{147,58},{201,60},{214,60},{224,60} }, { 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 4, 1, 4, 4, 1, 1, 1 } }; -void suspend_power_down_kb(void) { - rgb_matrix_set_suspend_state(true); - suspend_power_down_user(); -} -void suspend_wakeup_init_kb(void) { - rgb_matrix_set_suspend_state(false); - suspend_wakeup_init_user(); -} - -__attribute__ ((weak)) -void rgb_matrix_indicators_user(void) -{ - if (host_keyboard_led_state().caps_lock) - { +bool rgb_matrix_indicators_kb(void) { + if (!rgb_matrix_indicators_user()) { + return false; + } + if (host_keyboard_led_state().caps_lock) { rgb_matrix_set_color(30, 0xFF, 0xFF, 0xFF); } + return true; } diff --git a/keyboards/kbdfans/niu_mini/keymaps/abhixec/keymap.c b/keyboards/kbdfans/niu_mini/keymaps/abhixec/keymap.c index a373b463ab3..143329bc2d7 100644 --- a/keyboards/kbdfans/niu_mini/keymaps/abhixec/keymap.c +++ b/keyboards/kbdfans/niu_mini/keymaps/abhixec/keymap.c @@ -121,7 +121,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------' */ [_ADJUST] = LAYOUT_planck_mit( - _______, QK_BOOT, DEBUG, _______, _______, _______, _______, TERM_ON, TERM_OFF,_______, _______, KC_DEL , + _______, QK_BOOT, DEBUG, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL , _______, _______, _______, _______, _______, AG_NORM, AG_SWAP, QWERTY, COLEMAK, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ diff --git a/keyboards/kbdfans/niu_mini/keymaps/framtava/keymap.c b/keyboards/kbdfans/niu_mini/keymaps/framtava/keymap.c index ec06d54d0ce..b3edc0859fb 100644 --- a/keyboards/kbdfans/niu_mini/keymaps/framtava/keymap.c +++ b/keyboards/kbdfans/niu_mini/keymaps/framtava/keymap.c @@ -163,7 +163,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------' */ [_ADJUST] = LAYOUT_planck_mit( - _______, QK_BOOT, DEBUG, _______, _______, _______, _______, TERM_ON, TERM_OFF,_______, _______, KC_DEL , + _______, QK_BOOT, DEBUG, _______, _______, _______, _______, _______, _______, _______, _______, 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, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ diff --git a/keyboards/kbdfans/niu_mini/keymaps/planck/keymap.c b/keyboards/kbdfans/niu_mini/keymaps/planck/keymap.c index bfd95e137f8..c889b6316c9 100644 --- a/keyboards/kbdfans/niu_mini/keymaps/planck/keymap.c +++ b/keyboards/kbdfans/niu_mini/keymaps/planck/keymap.c @@ -162,7 +162,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------' */ [_ADJUST] = LAYOUT_planck_mit( - _______, QK_BOOT, DEBUG, _______, _______, _______, _______, TERM_ON, TERM_OFF,_______, _______, KC_DEL , + _______, QK_BOOT, DEBUG, _______, _______, _______, _______, _______, _______, _______, _______, 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, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ diff --git a/keyboards/kbdfans/odin/rgb/rgb.c b/keyboards/kbdfans/odin/rgb/rgb.c index 425597a7f66..5c7d3caf0df 100644 --- a/keyboards/kbdfans/odin/rgb/rgb.c +++ b/keyboards/kbdfans/odin/rgb/rgb.c @@ -24,21 +24,21 @@ led_config_t g_led_config = { { 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, NO_LED, 63, NO_LED, NO_LED, 58, 57, 56, NO_LED }, { 76, NO_LED, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, NO_LED, 87, NO_LED, 88, 89, 90, 91, 92 }, { 103,102, 101, NO_LED, NO_LED, NO_LED, 100, NO_LED, NO_LED, NO_LED, NO_LED, 99, NO_LED, 98, 97, 96, 95, 94, 93, NO_LED } -}, +}, { { 12*0, 0 }, { 12*2, 0 }, { 12*3, 0 }, { 12*4, 0 }, { 12*5, 0 }, { 12*7, 0 }, { 12*8, 0 }, { 12*9, 0 }, { 12*10, 0 }, { 12*11, 0 }, { 12*12, 0 }, { 12*13, 0 }, { 12*14, 0 }, { 12*15, 0 }, { 12*16, 0 }, { 12*17, 0 }, { 12*18, 0 }, { 224, 0 }, - - { 224, 14 }, { 12*18, 14 }, { 12*17, 14 }, { 12*16, 14 },{ 12*15, 14 },{ 12*13, 14 }, { 12*12, 14 }, { 12*11, 14 }, { 12*10, 14 }, { 12*9, 14 },{ 12*8, 14},{ 12*7, 14}, { 12*6, 14 }, { 12*5, 14 }, { 12*4, 14 },{ 12*3, 14 },{ 12*2, 14 }, {12, 14}, { 12*0, 14 }, - + + { 224, 14 }, { 12*18, 14 }, { 12*17, 14 }, { 12*16, 14 },{ 12*15, 14 },{ 12*13, 14 }, { 12*12, 14 }, { 12*11, 14 }, { 12*10, 14 }, { 12*9, 14 },{ 12*8, 14},{ 12*7, 14}, { 12*6, 14 }, { 12*5, 14 }, { 12*4, 14 },{ 12*3, 14 },{ 12*2, 14 }, {12, 14}, { 12*0, 14 }, + { 12*0, 26.8 }, {12, 26.8}, { 12*2, 26.8 }, { 12*3, 26.8 }, { 12*4, 26.8 }, { 12*5, 26.8 }, { 12*6, 26.8 }, { 12*7, 26.8}, { 12*8, 26.8}, { 12*9, 26.8 }, { 12*10, 26.8 }, { 12*11, 26.8 }, { 12*12, 26.8 }, { 12*13, 26.8 }, { 12*15, 26.8 }, { 12*16, 26.8 }, { 12*17, 26.8 }, { 12*18, 26.8 }, { 224, 33.2 }, - { 12*18, 39.6 }, { 12*17, 39.6 },{ 12*16, 39.6 }, {224,0},{0,0},{0,64},{224,64 }, { 12*13, 39.6 }, { 12*11, 39.6 }, { 12*10, 39.6 }, { 12*9, 39.6 },{ 12*8, 39.6}, { 12*7, 39.6}, { 12*6, 39.6 }, { 12*5, 39.6 },{ 12*4, 39.6 },{ 12*3, 39.6 }, { 12*2, 39.6 }, {12, 39.6}, { 12*0, 39.6 }, - + { 12*18, 39.6 }, { 12*17, 39.6 },{ 12*16, 39.6 }, {224,0},{0,0},{0,64},{224,64 }, { 12*13, 39.6 }, { 12*11, 39.6 }, { 12*10, 39.6 }, { 12*9, 39.6 },{ 12*8, 39.6}, { 12*7, 39.6}, { 12*6, 39.6 }, { 12*5, 39.6 },{ 12*4, 39.6 },{ 12*3, 39.6 }, { 12*2, 39.6 }, {12, 39.6}, { 12*0, 39.6 }, + { 12*0, 52 },{ 12*2, 52 }, { 12*3, 52 }, { 12*4, 52 }, { 12*5, 52 }, { 12*6, 52 }, { 12*7, 52}, { 12*8, 52}, { 12*9, 52 }, { 12*10, 52 }, { 12*11, 52 }, { 12*13, 52 }, { 12*15, 52 }, { 12*16, 52 }, { 12*17, 52 }, { 12*18, 52 }, { 224, 58 }, - + { 12*18, 64 }, { 12*17, 64 }, { 12*16, 64 }, { 12*15, 64 },{ 12*14, 64 }, { 12*13, 64 }, { 12*11, 64 }, { 12*6, 64 }, { 12*2, 64 }, {12, 64}, { 12*0, 64 } }, -{ +{ 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, @@ -47,13 +47,16 @@ led_config_t g_led_config = { 4,4,4,4,4,4,4,4,4,4,4,4 }}; -__attribute__ ((weak)) -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_kb(void) { + if (!rgb_matrix_indicators_user()) { + return false; + } if (host_keyboard_led_state().caps_lock) { rgb_matrix_set_color(75, 0xFF, 0xFF, 0xFF); } if (host_keyboard_led_state().num_lock) { rgb_matrix_set_color(21, 0xFF, 0xFF, 0xFF); - } + } + return true; } #endif diff --git a/keyboards/keebio/foldkb/keymaps/forrcaho/keymap.c b/keyboards/keebio/foldkb/keymaps/forrcaho/keymap.c index 228cbd60799..024a9aad2e6 100644 --- a/keyboards/keebio/foldkb/keymaps/forrcaho/keymap.c +++ b/keyboards/keebio/foldkb/keymaps/forrcaho/keymap.c @@ -14,6 +14,11 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ + +// Milliseconds the backlight is off (or on) when blinking to show +// caps lock is on. In other words, half the time of a full blink cycle. +#define CAPS_LOCK_BLINK_MS 350 + #include QMK_KEYBOARD_H enum layer { @@ -23,7 +28,8 @@ enum layer { }; enum custom_keycodes { - PG_BANG = SAFE_RANGE, + PG_ARRO = SAFE_RANGE, + PG_BANG, PG_ENDC, PG_EQEQ, PG_EQL, @@ -48,9 +54,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // ├────────┼───┼─────────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┴────────┤ MO(_MS), 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, // ├────────┼───┴─────────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┴────┬────────┬───┘ - TG(_PG), 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(_PG), + TG(_PG), KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, TG(_MS), // ├────────┼───┬──────────┬──┴──────┬─┴────────┼────────┼────────┼────────┤ ├────────┴─┬──────┴──────┬─┴────────┼────────┴─┬─────────┬─┴────────┤ - TG(_MS), KC_LGUI, KC_LCTL, KC_LALT, MO(_PG), KC_SPC, KC_SPC, KC_SPC, KC_SPC, MO(_MS), KC_RALT, KC_RCTL, KC_RGUI + TG(_MS), KC_LGUI, KC_LCTL, KC_LALT, MO(_PG), KC_SPC, KC_SPC, KC_SPC, KC_SPC, MO(_PG), KC_RALT, KC_RCTL, KC_RGUI // └────────┴───┴──────────┴─────────┴──────────┴────────┴────────┴────────┘ └──────────┴─────────────┴──────────┴──────────┴─────────┴──────────┘ ), [_PG] = LAYOUT( @@ -61,7 +67,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // ├────────┼───┼─────────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┴────────┤ _______, _______, PG_ENDC, PG_VBAR, PG_LBRK, PG_RBRK, PG_EQEQ, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_BSPC, // ├────────┼───┴─────────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┴────┬────────┬───┘ - _______, _______, _______, PG_MINS, PG_EQL, PG_BANG, _______, _______, KC_END, KC_DOWN, KC_PGDN, KC_DEL, _______, _______, + _______, _______, _______, PG_MINS, PG_EQL, PG_BANG, PG_ARRO, _______, KC_END, KC_DOWN, KC_PGDN, KC_DEL, _______, _______, // ├────────┼───┬──────────┬──┴──────┬─┴────────┼────────┼────────┼────────┤ ├────────┴─┬──────┴──────┬─┴────────┼────────┴─┬─────────┬─┴────────┤ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ // └────────┴───┴──────────┴─────────┴──────────┴────────┴────────┴────────┘ └──────────┴─────────────┴──────────┴──────────┴─────────┴──────────┘ @@ -72,7 +78,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // ├────────┼───┬────┴────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤ _______, _______, _______, _______, _______, _______, _______, _______, KC_BTN1, KC_MS_U, KC_BTN2, _______, _______, _______, _______, // ├────────┼───┼─────────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┴────────┤ - _______, _______, _______, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_BTN3, _______, _______, // ├────────┼───┴─────────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┴────┬────────┬───┘ _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MS_D, _______, _______, _______, _______, // ├────────┼───┬──────────┬──┴──────┬─┴────────┼────────┼────────┼────────┤ ├────────┴─┬──────┴──────┬─┴────────┼────────┴─┬─────────┬─┴────────┤ @@ -97,9 +103,6 @@ const key_override_t pg_rpar_shift = ko_make_with_layers_and_negmods(MOD_MASK_SH const key_override_t pg_slas_none = ko_make_with_layers_and_negmods(0, PG_SLAS, KC_SLASH, ~0, ~0); const key_override_t pg_slas_shift = ko_make_with_layers_and_negmods(MOD_MASK_SHIFT, PG_SLAS, KC_BACKSLASH, ~0, ~MOD_MASK_SHIFT); -const key_override_t pg_vbar_none = ko_make_with_layers_and_negmods(0, PG_VBAR, KC_PIPE, ~0, ~0); -const key_override_t pg_vbar_shift = ko_make_with_layers_and_negmods(MOD_MASK_SHIFT, PG_VBAR, KC_AMPERSAND, ~0, ~MOD_MASK_SHIFT); - const key_override_t ms_btn_none = ko_make_with_layers_and_negmods(0, MS_BTN, KC_MS_BTN1, ~0, ~0); const key_override_t ms_btn_shift = ko_make_with_layers_and_negmods(MOD_MASK_SHIFT, MS_BTN, KC_MS_BTN2, ~0, ~MOD_MASK_SHIFT); @@ -110,7 +113,6 @@ const key_override_t **key_overrides = (const key_override_t *[]){ &pg_rbrk_none, &pg_rbrk_shift, &pg_rpar_none, &pg_rpar_shift, &pg_slas_none, &pg_slas_shift, - &pg_vbar_none, &pg_vbar_shift, &ms_btn_none, &ms_btn_shift, NULL}; // clang-format on @@ -128,6 +130,35 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { if (all_mods & (MOD_MASK_ALT | MOD_MASK_GUI)) return true; switch (keycode) { + case KC_CAPS: + // On caps lock release, if caps lock just got turned off, ensure that + // backlight is enabled when it stops blinking. + if (!record->event.pressed) { + if (!host_keyboard_led_state().caps_lock) { + backlight_enable(); + // In this case, we want to continue processing + return true; + } + } + break; + case PG_ARRO: + if (record->event.pressed) { + clear_mods(); + clear_oneshot_mods(); + if (shift_on) { + if (!ctrl_on) SEND_STRING(" "); + SEND_STRING("=>"); + if (!ctrl_on) SEND_STRING(" "); + } else { + if (ctrl_on) SEND_STRING(" "); + SEND_STRING("->"); + if (ctrl_on) SEND_STRING(" "); + } + set_mods(std_mods); + set_oneshot_mods(oneshot_mods); + return false; + } + break; case PG_BANG: if (record->event.pressed) { clear_mods(); @@ -212,6 +243,18 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return false; } break; + case PG_VBAR: + if (record->event.pressed) { + clear_mods(); + clear_oneshot_mods(); + if (!ctrl_on) SEND_STRING(" "); + shift_on ? SEND_STRING("&") : SEND_STRING("|"); + if (!ctrl_on) SEND_STRING(" "); + set_mods(std_mods); + set_oneshot_mods(oneshot_mods); + return false; + } + break; } return true; } @@ -226,21 +269,38 @@ bool encoder_update_user(uint8_t index, bool clockwise) { return false; } +static uint16_t caps_lock_blink_timer = 0; + +// This is called after every matrix scan. We make the backlight blink +// when caps lock is on here. To ensure the backlight is in the on state +// when caps lock is turned off, we also watch for the relase of the caps +// lock key in process_record_user(). +void housekeeping_task_user(void) { + if (host_keyboard_led_state().caps_lock) { + if (timer_elapsed(caps_lock_blink_timer) >= CAPS_LOCK_BLINK_MS) { + backlight_toggle(); + caps_lock_blink_timer = timer_read(); + } + } +} + +// The backlight level shows which layer we are in: +// Mouse layer: dim | QWERTY layer: medium | Programming layer: bright layer_state_t layer_state_set_user(layer_state_t state) { switch (get_highest_layer(state)) { case _MS: - backlight_level(2); + backlight_level(1); break; case _PG: backlight_level(3); break; default: - backlight_level(1); + backlight_level(2); break; } return state; } void keyboard_post_init(void) { - backlight_level(1); + backlight_level(2); } diff --git a/keyboards/keebio/iris/keymaps/two_knob/keymap.c b/keyboards/keebio/iris/keymaps/two_knob/keymap.c index aeeb2df905f..173d8a6700f 100644 --- a/keyboards/keebio/iris/keymaps/two_knob/keymap.c +++ b/keyboards/keebio/iris/keymaps/two_knob/keymap.c @@ -22,7 +22,7 @@ enum custom_layers { /* Rotary encoder variables used to hold down Command (GUI) key while cycling through open programs. */ bool is_cmd_tab_active = false; -uint16_t cmd_tab_timer = 0; +uint16_t cmd_tab_timer = 0; enum custom_keycodes { QWERTY = SAFE_RANGE, @@ -64,7 +64,7 @@ qk_tap_dance_action_t tap_dance_actions[] = { * You can download/upload the two_know.json to the configurator: * https://config.qmk.fm/#/keebio/iris/rev6a/LAYOUT * - * If you make changes and download the json, you can run qmk json2c two_knob.json to get converted text. + * If you make changes and download the json, you can run qmk json2c two_knob.json to get converted text. * You can copy and paste it here. * You will have to reneame the array keys from ints to the custom keycode names. * @@ -173,7 +173,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { * |64|--|--|63|--|--|--| |--|--|--|29|--|--|30| * |--|62|--| |--|28|--| */ -// void rgb_matrix_indicators_user(void) { +// bool rgb_matrix_indicators_user(void) { // if (IS_LAYER_ON(1)) { // /* Upperleft most key red: */ // rgb_matrix_set_color(0,255,0,0); @@ -217,6 +217,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { // rgb_matrix_set_color(02, 255, 200, 0); // rgb_matrix_set_color(03, 255, 235, 0); // } +// return false; // } /** @@ -225,8 +226,8 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { * This can't be programmed through configurator. You must do it here. * * This uses the amazing "Encoder map" feature which replicates the normal keyswitch layer handling functionality, but with encoders. - * https://docs.qmk.fm/#/feature_encoders?id=encoder-map - * + * https://docs.qmk.fm/#/feature_encoders?id=encoder-map + * * Uses a variant of the Super-alt-tab macro to switch between open applications on a mac. (Command-tab) * https://docs.qmk.fm/#/feature_macros?id=super-alt%e2%86%aftab */ diff --git a/keyboards/keebio/nyquist/keymaps/DivergeJM/README.md b/keyboards/keebio/nyquist/keymaps/DivergeJM/README.md index 198e3ef887b..86d764818b3 100644 --- a/keyboards/keebio/nyquist/keymaps/DivergeJM/README.md +++ b/keyboards/keebio/nyquist/keymaps/DivergeJM/README.md @@ -173,7 +173,7 @@ The *MOUSE* layer contains keys replicating functions found on the mouse. ,-----------------------------------------. ,----------------------------------------. | | | | | |RESET | | | | | | | | |------+------+------+------+------+------| |-----+------+------+------+------+------| -| | | | | | | | |TermOn|TermOf| | | Del | +| | | | | | | | | | | | | Del | |------+------+------+------+------+------| |-----+------+------+------+------+------| | | | | | | | | |Qwerty|Colemk|Dvorak| | | |------+------+------+------+------+------| |-----+------+------+------+------+------| diff --git a/keyboards/keebio/nyquist/keymaps/DivergeJM/keymap.c b/keyboards/keebio/nyquist/keymaps/DivergeJM/keymap.c index 8e8743766bc..5cf639775ec 100644 --- a/keyboards/keebio/nyquist/keymaps/DivergeJM/keymap.c +++ b/keyboards/keebio/nyquist/keymaps/DivergeJM/keymap.c @@ -208,7 +208,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,-----------------------------------------. ,----------------------------------------. * | | | | | |QK_BOOT | | | | | | | | * |------+------+------+------+------+------| |-----+------+------+------+------+------| - * | | | | | | | | |TermOn|TermOf| | | Del | + * | | | | | | | | | | | | | Del | * |------+------+------+------+------+------| |-----+------+------+------+------+------| * | | | | | | | | |Qwerty|Colemk|Dvorak| | | * |------+------+------+------+------+------| |-----+------+------+------+------+------| @@ -220,7 +220,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_ADJUST] = LAYOUT( _______, _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, \ - _______, _______, _______, _______, _______, _______, _______, TERM_ON, TERM_OFF,_______, _______, KC_DEL, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, \ _______, _______, _______, _______, _______, _______, _______, QWERTY, COLEMAK, DVORAK, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ diff --git a/keyboards/keebio/nyquist/keymaps/pjanx/keymap.c b/keyboards/keebio/nyquist/keymaps/pjanx/keymap.c index 96cf700bb83..176e53988cd 100644 --- a/keyboards/keebio/nyquist/keymaps/pjanx/keymap.c +++ b/keyboards/keebio/nyquist/keymaps/pjanx/keymap.c @@ -94,7 +94,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------+------+------+------+------+------+------| * | | |MUSmod|Aud on|Audoff|AGnorm|AGswap| | | | | | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof|TermOn|TermOf| | | | + * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | | * |------+------+------+------+------+------+------+------+------+------+------+------| * | M1 | M2 | M3 | | | | | <- | vv | ^^ | -> | * `-----------------------------------------------------------------------------------' @@ -102,7 +102,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_ADJUST] = LAYOUT_ortho_4x12( _______, 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, _______, _______, _______, _______, _______, - _______, 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, _______, _______, _______, _______, _______, KC_MS_BTN1, KC_MS_BTN2, KC_MS_BTN3, _______, _______, _______, _______, _______, KC_MS_LEFT, KC_MS_DOWN, KC_MS_UP, KC_MS_RIGHT ) diff --git a/keyboards/keebio/sinc/config.h b/keyboards/keebio/sinc/config.h index cfb6bf4ffcc..92d2fda6449 100644 --- a/keyboards/keebio/sinc/config.h +++ b/keyboards/keebio/sinc/config.h @@ -1,6 +1,4 @@ -/* -Copyright 2012 Jun Wako -Copyright 2015 Jack Humbert +/* Copyright 2021 Danny Nguyen 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 @@ -18,4 +16,18 @@ along with this program. If not, see . #pragma once -#include "config_common.h" +// wiring of each half +#define SPLIT_HAND_PIN F7 + +/* 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 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) + +// Set right column, left macro, 1.75u shift, split spaces, and 5x1u on by default +#define VIA_EEPROM_LAYOUT_OPTIONS_DEFAULT 0x00DE +#define VIA_EEPROM_LAYOUT_OPTIONS_SIZE 2 diff --git a/keyboards/keebio/sinc/info.json b/keyboards/keebio/sinc/info.json index a8d346ebe55..ad28aaea6b0 100644 --- a/keyboards/keebio/sinc/info.json +++ b/keyboards/keebio/sinc/info.json @@ -5,6 +5,24 @@ "usb": { "vid": "0xCB10" }, + "processor": "atmega32u4", + "bootloader": "atmel-dfu", + "features": { + "audio": false, + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": false, + "nkro": false, + "unicode": false, + }, + "split": { + "enabled": true, + }, + "build": { + "lto": true, + }, "layouts": { "LAYOUT_75": { "layout": [ diff --git a/keyboards/keebio/sinc/rev1/config.h b/keyboards/keebio/sinc/rev1/config.h deleted file mode 100644 index 0d31d1ad806..00000000000 --- a/keyboards/keebio/sinc/rev1/config.h +++ /dev/null @@ -1,62 +0,0 @@ -/* -Copyright 2012 Jun Wako -Copyright 2015 Jack Humbert - -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 - -/* key matrix size */ -// Rows are doubled-up -#define MATRIX_ROWS 12 -#define MATRIX_COLS 9 - -#define DIODE_DIRECTION COL2ROW -// wiring of each half -#define MATRIX_ROW_PINS { B1, B2, C7, B4, D7, B0 } -#define MATRIX_COL_PINS { F4, F1, F0, B7, B3, D2, D3, D5, D4 } -#define MATRIX_ROW_PINS_RIGHT { B3, B2, B6, B4, D7, B0 } -#define MATRIX_COL_PINS_RIGHT { F1, F0, F4, F5, F6, D5, C7, D3, B7 } -#define SPLIT_HAND_PIN F7 -#define ENCODERS_PAD_A { F5 } -#define ENCODERS_PAD_B { F6 } -#define ENCODERS_PAD_A_RIGHT { D6 } -#define ENCODERS_PAD_B_RIGHT { D4 } - -/* Set 0 if debouncing isn't needed */ -#define DEBOUNCE 5 - -#define BACKLIGHT_PIN B5 -#define CAPS_LOCK_LED_PIN B6 - -/* serial.c configuration for split keyboard */ -#define SOFT_SERIAL_PIN D0 - -/* 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 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) - -// Set right column, left macro, 1.75u shift, split spaces, and 5x1u on by default -#define VIA_EEPROM_LAYOUT_OPTIONS_DEFAULT 0x00DE -#define VIA_EEPROM_LAYOUT_OPTIONS_SIZE 2 diff --git a/keyboards/keebio/sinc/rev1/info.json b/keyboards/keebio/sinc/rev1/info.json index d7a119807fc..3c8a90c206e 100644 --- a/keyboards/keebio/sinc/rev1/info.json +++ b/keyboards/keebio/sinc/rev1/info.json @@ -3,5 +3,55 @@ "usb": { "pid": "0x1267", "device_version": "1.0.0" + }, + "debounce": 5, + "diode_direction": "COL2ROW", + "features": { + "rgblight": true, + "backlight": true, + }, + "indicators": { + "caps_lock": "B6" + }, + "split": { + "enabled": true, + "soft_serial_pin": "D0", + "transport": { + "protocol": "serial" + }, + "encoder": { + "right": { + "rotary": [ + {"pin_a": "D6", "pin_b": "D4" }, + ], + }, + }, + "matrix_pins": { + "right":{ + "cols": ["F1", "F0", "F4", "F5", "F6", "D5", "C7", "D3", "B7"], + "rows": ["B3", "B2", "B6", "B4", "D7", "B0"], + }, + }, + }, + "matrix_pins": { + "cols": ["F4", "F1", "F0", "B7", "B3", "D2", "D3", "D5", "D4"], + "rows": ["B1", "B2", "C7", "B4", "D7", "B0"], + }, + "encoder": { + "enabled": true, + "rotary": [ + {"pin_a": "F5", "pin_b": "F6" }, + ], + }, + "backlight":{ + "pin": "B5", + }, + "rgblight": { + "pin": "E6", + "led_count" : 16, + "split_count": [8, 8], + "animations": { + "all": true, + } } } diff --git a/keyboards/keebio/sinc/rev1/rev1.c b/keyboards/keebio/sinc/rev1/rev1.c deleted file mode 100644 index 906b9b7d589..00000000000 --- a/keyboards/keebio/sinc/rev1/rev1.c +++ /dev/null @@ -1,42 +0,0 @@ -#include "sinc.h" -#include "split_util.h" - -void matrix_init_kb(void) { - setPinOutput(CAPS_LOCK_LED_PIN); - matrix_init_user(); -} - -bool led_update_kb(led_t led_state) { - // Only update if left half - if (isLeftHand && led_update_user(led_state)) { - writePin(CAPS_LOCK_LED_PIN, !led_state.caps_lock); - } - return true; -} - -void eeconfig_init_kb(void) { -#ifdef BACKLIGHT_ENABLE - backlight_enable(); - backlight_level(3); -#endif - eeconfig_update_kb(0); - eeconfig_init_user(); -} - -bool encoder_update_kb(uint8_t index, bool clockwise) { - if (!encoder_update_user(index, clockwise)) { return false; } - if (index == 0) { - if (clockwise) { - tap_code(KC_PGDN); - } else { - tap_code(KC_PGUP); - } - } else if (index == 1) { - if (clockwise) { - tap_code(KC_VOLU); - } else { - tap_code(KC_VOLD); - } - } - return false; -} diff --git a/keyboards/keebio/sinc/rev1/rules.mk b/keyboards/keebio/sinc/rev1/rules.mk index 32e78815991..6e7633bfe01 100644 --- a/keyboards/keebio/sinc/rev1/rules.mk +++ b/keyboards/keebio/sinc/rev1/rules.mk @@ -1,3 +1 @@ -BACKLIGHT_ENABLE = yes -RGBLIGHT_ENABLE = yes -ENCODER_ENABLE = yes +# This file intentionally left blank diff --git a/keyboards/keebio/sinc/rev2/config.h b/keyboards/keebio/sinc/rev2/config.h deleted file mode 100644 index 800400e905e..00000000000 --- a/keyboards/keebio/sinc/rev2/config.h +++ /dev/null @@ -1,60 +0,0 @@ -/* Copyright 2021 Danny Nguyen - -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 - -/* key matrix size */ -// Rows are doubled-up -#define MATRIX_ROWS 12 -#define MATRIX_COLS 9 - -#define DIODE_DIRECTION COL2ROW -// wiring of each half -#define MATRIX_ROW_PINS { B1, B2, C7, B4, D7, B0 } -#define MATRIX_COL_PINS { F4, F1, F0, B7, B3, D2, D3, D5, D4 } -#define MATRIX_ROW_PINS_RIGHT { B3, B2, B6, B4, D7, B0 } -#define MATRIX_COL_PINS_RIGHT { F1, F0, F4, F5, F6, D5, C7, D3, B7 } -#define SPLIT_HAND_PIN F7 -#define ENCODERS_PAD_A { F5 } -#define ENCODERS_PAD_B { F6 } -#define ENCODERS_PAD_A_RIGHT { D6 } -#define ENCODERS_PAD_B_RIGHT { D4 } - -/* Set 0 if debouncing isn't needed */ -#define DEBOUNCE 5 - -#define BACKLIGHT_PIN B5 -#define CAPS_LOCK_LED_PIN B6 - -/* serial.c configuration for split keyboard */ -#define SOFT_SERIAL_PIN D0 - -/* 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 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) - -// Set right column, left macro, 1.75u shift, split spaces, and 5x1u on by default -#define VIA_EEPROM_LAYOUT_OPTIONS_DEFAULT 0x00DE -#define VIA_EEPROM_LAYOUT_OPTIONS_SIZE 2 diff --git a/keyboards/keebio/sinc/rev2/info.json b/keyboards/keebio/sinc/rev2/info.json index 378b02d2e7c..c3dd1d80ed5 100644 --- a/keyboards/keebio/sinc/rev2/info.json +++ b/keyboards/keebio/sinc/rev2/info.json @@ -3,5 +3,55 @@ "usb": { "pid": "0x2267", "device_version": "2.0.0" + }, + "debounce": 5, + "diode_direction": "COL2ROW", + "features": { + "rgblight": true, + "backlight": true, + }, + "indicators": { + "caps_lock": "B6" + }, + "split": { + "enabled": true, + "soft_serial_pin": "D0", + "transport": { + "protocol": "serial" + }, + "encoder": { + "right": { + "rotary": [ + {"pin_a": "D6", "pin_b": "D4" }, + ], + }, + }, + "matrix_pins": { + "right":{ + "cols": ["F1", "F0", "F4", "F5", "F6", "D5", "C7", "D3", "B7"], + "rows": ["B3", "B2", "B6", "B4", "D7", "B0"], + }, + }, + }, + "matrix_pins": { + "cols": ["F4", "F1", "F0", "B7", "B3", "D2", "D3", "D5", "D4"], + "rows": ["B1", "B2", "C7", "B4", "D7", "B0"], + }, + "encoder": { + "enabled": true, + "rotary": [ + {"pin_a": "F5", "pin_b": "F6" }, + ], + }, + "backlight":{ + "pin": "B5", + }, + "rgblight": { + "pin": "E6", + "led_count" : 16, + "split_count": [8, 8], + "animations": { + "all": true, + } } } diff --git a/keyboards/keebio/sinc/rev2/rev2.c b/keyboards/keebio/sinc/rev2/rev2.c deleted file mode 100644 index 47bb1e9e682..00000000000 --- a/keyboards/keebio/sinc/rev2/rev2.c +++ /dev/null @@ -1,58 +0,0 @@ -/* Copyright 2021 Danny Nguyen - -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 "sinc.h" -#include "split_util.h" - -void matrix_init_kb(void) { - setPinOutput(CAPS_LOCK_LED_PIN); - matrix_init_user(); -} - -bool led_update_kb(led_t led_state) { - // Only update if left half - if (isLeftHand && led_update_user(led_state)) { - writePin(CAPS_LOCK_LED_PIN, !led_state.caps_lock); - } - return true; -} - -void eeconfig_init_kb(void) { -#ifdef BACKLIGHT_ENABLE - backlight_enable(); - backlight_level(3); -#endif - eeconfig_update_kb(0); - eeconfig_init_user(); -} - -bool encoder_update_kb(uint8_t index, bool clockwise) { - if (!encoder_update_user(index, clockwise)) { return false; } - if (index == 0) { - if (clockwise) { - tap_code(KC_PGDN); - } else { - tap_code(KC_PGUP); - } - } else if (index == 1) { - if (clockwise) { - tap_code(KC_VOLU); - } else { - tap_code(KC_VOLD); - } - } - return false; -} diff --git a/keyboards/keebio/sinc/rev2/rules.mk b/keyboards/keebio/sinc/rev2/rules.mk index 32e78815991..6e7633bfe01 100644 --- a/keyboards/keebio/sinc/rev2/rules.mk +++ b/keyboards/keebio/sinc/rev2/rules.mk @@ -1,3 +1 @@ -BACKLIGHT_ENABLE = yes -RGBLIGHT_ENABLE = yes -ENCODER_ENABLE = yes +# This file intentionally left blank diff --git a/keyboards/keebio/sinc/rules.mk b/keyboards/keebio/sinc/rules.mk index fc8ab560492..14199574798 100644 --- a/keyboards/keebio/sinc/rules.mk +++ b/keyboards/keebio/sinc/rules.mk @@ -1,22 +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 = no # 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 = yes # Enable keyboard backlight functionality -AUDIO_ENABLE = no # Audio output -RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. -LTO_ENABLE = yes -SPLIT_KEYBOARD = yes - DEFAULT_FOLDER = keebio/sinc/rev1 diff --git a/keyboards/keebio/sinc/sinc.c b/keyboards/keebio/sinc/sinc.c index c4dbfcd3d16..f6dff42ebba 100644 --- a/keyboards/keebio/sinc/sinc.c +++ b/keyboards/keebio/sinc/sinc.c @@ -1 +1,54 @@ +/* Copyright 2021 Danny Nguyen + +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 "sinc.h" +#include "split_util.h" + +bool led_update_kb(led_t led_state) { + if (!led_update_user(led_state)) { return false; } + // Only update if left half + if (isLeftHand && led_update_user(led_state)) { + writePin(LED_CAPS_LOCK_PIN, !led_state.caps_lock); + } + return true; +} + +void eeconfig_init_kb(void) { +#ifdef BACKLIGHT_ENABLE + backlight_enable(); + backlight_level(3); +#endif + eeconfig_update_kb(0); + eeconfig_init_user(); +} + +bool encoder_update_kb(uint8_t index, bool clockwise) { + if (!encoder_update_user(index, clockwise)) { return false; } + if (index == 0) { + if (clockwise) { + tap_code(KC_PGDN); + } else { + tap_code(KC_PGUP); + } + } else if (index == 1) { + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } + return true; +} diff --git a/keyboards/keebio/sinc/sinc.h b/keyboards/keebio/sinc/sinc.h index 9e012ce1572..75f14595bfe 100644 --- a/keyboards/keebio/sinc/sinc.h +++ b/keyboards/keebio/sinc/sinc.h @@ -1,3 +1,18 @@ +/* Copyright 2021 Danny Nguyen + +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" diff --git a/keyboards/keybee/keybee65/keymaps/default/keymap.c b/keyboards/keybee/keybee65/keymaps/default/keymap.c index 8d58a54852e..030b38884cc 100644 --- a/keyboards/keybee/keybee65/keymaps/default/keymap.c +++ b/keyboards/keybee/keybee65/keymaps/default/keymap.c @@ -23,9 +23,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_LAYER0] = LAYOUT_65_ansi( 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_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_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_END, + 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_END, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), @@ -76,9 +76,10 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } } -void rgb_matrix_indicators_kb(void) { +bool rgb_matrix_indicators_user(void) { led_t host_leds = host_keyboard_led_state(); if (host_leds.caps_lock) { rgb_matrix_set_color(30, 254, 189, 41); // set caps lock led color first nunber is index, R G B } -} \ No newline at end of file + return false; +} diff --git a/keyboards/keybee/keybee65/keymaps/via/keymap.c b/keyboards/keybee/keybee65/keymaps/via/keymap.c index 1eb0a6480c7..3ffeaf28bac 100644 --- a/keyboards/keybee/keybee65/keymaps/via/keymap.c +++ b/keyboards/keybee/keybee65/keymaps/via/keymap.c @@ -25,9 +25,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_LAYER0] = LAYOUT_65_ansi( 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_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_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_END, + 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_END, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), @@ -95,11 +95,12 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } } -void rgb_matrix_indicators_kb(void) { +bool rgb_matrix_indicators_user(void) { led_t host_leds = host_keyboard_led_state(); if (host_leds.caps_lock) { rgb_matrix_set_color(30, 254, 189, 41); // set caps lock led color first nunber is index, R G B } else if (!(rgb_matrix_get_flags() & LED_FLAG_MODIFIER)) { rgb_matrix_set_color(30, 0, 0, 0); } -} \ No newline at end of file + return false; +} diff --git a/keyboards/keyboardio/model01/keymaps/default/keymap.c b/keyboards/keyboardio/model01/keymaps/default/keymap.c index 1ff1eb83706..3ed72adb737 100644 --- a/keyboards/keyboardio/model01/keymaps/default/keymap.c +++ b/keyboards/keyboardio/model01/keymaps/default/keymap.c @@ -103,10 +103,11 @@ static void set_numpad_colours(int on, void (*write)(int, uint8_t, uint8_t, uint /* the RGB matrix effects will overwrite the numpad indicator. * this handy mechanism allows to override the matrix effects. */ -void rgb_matrix_indicators_user(void) { - if (layer_state & (1< + +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 5 +#define MATRIX_COLS 14 + +/* + * 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) + * +*/ + +// Checked with Eagle Schematic +#define MATRIX_ROW_PINS { F0, F1, F4, F5, F6 } +#define MATRIX_COL_PINS { C7, C6, B6, B5, B4, D7, D6, D4, D5, D3, D2, B3, B2, B1 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* 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 + +/* Define RGB Underglow */ +#define RGB_DI_PIN F7 +#define RGBLED_NUM 64 +#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 RGBLIGHT_LIMIT_VAL 108 +#define RGB_VAL_STEP 12 +#define RGBLIGHT_DEFAULT_SPD 144 +#define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_RAINBOW_SWIRL +/* #define RGBLIGHT_LAYER_BLINK*/ + +/* Define less important options */ + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT diff --git a/keyboards/keygem/kg60ansi/info.json b/keyboards/keygem/kg60ansi/info.json new file mode 100644 index 00000000000..33f60df5049 --- /dev/null +++ b/keyboards/keygem/kg60ansi/info.json @@ -0,0 +1,82 @@ +{ + "keyboard_name": "KG60 ANSI", + "manufacturer": "FJLabs", + "url": "https://www.keygem.store/", + "maintainer": "Keygem", + "usb": { + "vid": "0x4B47", + "pid": "0x0001", + "device_version": "0.0.1" + }, + "layouts": { + "LAYOUT_60_ansi": { + "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, "w": 2}, + + {"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": 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, "w": 2.25}, + + {"x": 0, "y": 3, "w": 2.25}, + {"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": 2.75}, + + {"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": 12.5, "y": 4, "w": 1.25}, + {"x": 13.75, "y": 4, "w": 1.25} + ] + } + } +} diff --git a/keyboards/keygem/kg60ansi/keymaps/default/keymap.c b/keyboards/keygem/kg60ansi/keymaps/default/keymap.c new file mode 100644 index 00000000000..86c75129432 --- /dev/null +++ b/keyboards/keygem/kg60ansi/keymaps/default/keymap.c @@ -0,0 +1,40 @@ +/* +Copyright 2022 +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 { + _LAYER0, + _LAYER1, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_LAYER0] = LAYOUT_60_ansi( + 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_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTRL + ), + + [_LAYER1] = LAYOUT_60_ansi( + KC_GESC, 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_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUSE, QK_BOOT, + KC_TRNS, RGB_SPI, RGB_SPD, 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, NK_TOGG, 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 + ) + +}; \ No newline at end of file diff --git a/keyboards/keygem/kg60ansi/keymaps/via/keymap.c b/keyboards/keygem/kg60ansi/keymaps/via/keymap.c new file mode 100644 index 00000000000..cc1cac96e9d --- /dev/null +++ b/keyboards/keygem/kg60ansi/keymaps/via/keymap.c @@ -0,0 +1,58 @@ +/* +Copyright 2022 +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 { + _LAYER0, + _LAYER1, + _LAYER2, + _LAYER3, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_LAYER0] = LAYOUT_60_ansi( + 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_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTRL + ), + + [_LAYER1] = LAYOUT_60_ansi( + KC_GESC, 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_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUSE, QK_BOOT, + KC_TRNS, RGB_SPI, RGB_SPD, 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, NK_TOGG, 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 + ), + + [_LAYER2] = LAYOUT_60_ansi( + 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 + ), + + [_LAYER3] = LAYOUT_60_ansi( + 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/keygem/kg60ansi/keymaps/via/rules.mk b/keyboards/keygem/kg60ansi/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/keygem/kg60ansi/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/keygem/kg60ansi/kg60ansi.c b/keyboards/keygem/kg60ansi/kg60ansi.c new file mode 100644 index 00000000000..15a1f4ee312 --- /dev/null +++ b/keyboards/keygem/kg60ansi/kg60ansi.c @@ -0,0 +1,14 @@ +/* +Copyright 2022 +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 "kg60ansi.h" diff --git a/keyboards/keygem/kg60ansi/kg60ansi.h b/keyboards/keygem/kg60ansi/kg60ansi.h new file mode 100644 index 00000000000..96e78e8d6f4 --- /dev/null +++ b/keyboards/keygem/kg60ansi/kg60ansi.h @@ -0,0 +1,32 @@ +/* +Copyright 2022 +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" + +/* KG60 ANSI Keymap Definitions */ +#define LAYOUT_60_ansi( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3C, \ + K40, K41, K42, K45, K49, K4A, K4C, K4D \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO, K2D }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, KC_NO, K3C, KC_NO }, \ + { K40, K41, K42, KC_NO, KC_NO, K45, KC_NO, KC_NO, KC_NO, K49, K4A, KC_NO, K4C, K4D } \ +} diff --git a/keyboards/keygem/kg60ansi/readme.md b/keyboards/keygem/kg60ansi/readme.md new file mode 100644 index 00000000000..f24439855b2 --- /dev/null +++ b/keyboards/keygem/kg60ansi/readme.md @@ -0,0 +1,26 @@ +# Keygem KG60 ANSI + +The following is the QMK Firmware for the Keygem KG60 ANSI PCB, a universal tray mount 60% hotswap PCB with per key RGB LED's. + +The PCB will feature: +* Kailh Hotswap sockets +* QMK & VIA compatibility +* Per-Key RGB LED's + + +* Keyboard Maintainer: Keygem +* Hardware Supported: KG60 ANSI + +Make example for this keyboard (after setting up your build environment): + + make keygem/kg60ansi:default + +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 `RESET` if it is available \ No newline at end of file diff --git a/keyboards/keygem/kg60ansi/rules.mk b/keyboards/keygem/kg60ansi/rules.mk new file mode 100644 index 00000000000..e64258fe9b5 --- /dev/null +++ b/keyboards/keygem/kg60ansi/rules.mk @@ -0,0 +1,23 @@ +# MCU name +MCU = atmega32u4 + +# Processor frequency +F_CPU = 8000000 + +# 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 = yes # 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 + +LAYOUTS = 60_ansi diff --git a/keyboards/keygem/kg65rgbv2/config.h b/keyboards/keygem/kg65rgbv2/config.h new file mode 100644 index 00000000000..e62df985c4e --- /dev/null +++ b/keyboards/keygem/kg65rgbv2/config.h @@ -0,0 +1,112 @@ +/* +Copyright 2022 + +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 5 +#define MATRIX_COLS 15 + +/* + * 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) + * +*/ + +// Checked with Eagle Schematic +#define MATRIX_ROW_PINS { F0, F1, F4, F5, F6 } +#define MATRIX_COL_PINS { C7, C6, B6, B5, B4, D7, D6, D4, D5, D3, D2, B3, B2, B1, D1 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* 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 + +/* Define RGB Underglow */ +#define RGB_DI_PIN F7 +#define RGBLED_NUM 68 +#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 RGBLIGHT_LIMIT_VAL 96 +#define RGB_VAL_STEP 12 +#define RGBLIGHT_DEFAULT_SPD 144 +#define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_RAINBOW_SWIRL +/* #define RGBLIGHT_LAYER_BLINK*/ + +/* Define less important options */ + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT diff --git a/keyboards/keygem/kg65rgbv2/info.json b/keyboards/keygem/kg65rgbv2/info.json new file mode 100644 index 00000000000..1693c683d39 --- /dev/null +++ b/keyboards/keygem/kg65rgbv2/info.json @@ -0,0 +1,89 @@ +{ + "keyboard_name": "KG65 RGB V2", + "manufacturer": "FJLabs", + "url": "https://www.keygem.store/", + "maintainer": "Keygem", + "usb": { + "vid": "0x4B47", + "pid": "0x0002", + "device_version": "0.0.1" + }, + "layouts": { + "LAYOUT_65_ansi": { + "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, "w": 2}, + {"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, "w": 2.25}, + {"x": 15, "y": 2}, + + {"x": 0, "y": 3, "w": 2.25}, + {"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}, + {"x": 11, "y": 4}, + {"x": 12, "y": 4}, + {"x": 13, "y": 4}, + {"x": 14, "y": 4}, + {"x": 15, "y": 4} + ] + } + } +} diff --git a/keyboards/keygem/kg65rgbv2/keymaps/default/keymap.c b/keyboards/keygem/kg65rgbv2/keymaps/default/keymap.c new file mode 100644 index 00000000000..9d7c31fea20 --- /dev/null +++ b/keyboards/keygem/kg65rgbv2/keymaps/default/keymap.c @@ -0,0 +1,40 @@ +/* +Copyright 2022 +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 { + _LAYER0, + _LAYER1, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_LAYER0] = LAYOUT_65_ansi( + 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_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_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_DEL, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT + ), + + [_LAYER1] = LAYOUT_65_ansi( + KC_GESC, 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_TRNS, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUSE, QK_BOOT, KC_TRNS, + KC_TRNS, RGB_SPI, RGB_SPD, 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, NK_TOGG, 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 + ) + +}; \ No newline at end of file diff --git a/keyboards/keygem/kg65rgbv2/keymaps/via/keymap.c b/keyboards/keygem/kg65rgbv2/keymaps/via/keymap.c new file mode 100644 index 00000000000..21824528c1f --- /dev/null +++ b/keyboards/keygem/kg65rgbv2/keymaps/via/keymap.c @@ -0,0 +1,58 @@ +/* +Copyright 2022 +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 { + _LAYER0, + _LAYER1, + _LAYER2, + _LAYER3, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_LAYER0] = LAYOUT_65_ansi( + 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_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_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_DEL, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT + ), + + [_LAYER1] = LAYOUT_65_ansi( + KC_GESC, 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_TRNS, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUSE, QK_BOOT, KC_TRNS, + KC_TRNS, RGB_SPI, RGB_SPD, 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, NK_TOGG, 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 + ), + + [_LAYER2] = LAYOUT_65_ansi( + 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 + ), + + [_LAYER3] = LAYOUT_65_ansi( + 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/keygem/kg65rgbv2/keymaps/via/rules.mk b/keyboards/keygem/kg65rgbv2/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/keygem/kg65rgbv2/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/keygem/kg65rgbv2/kg65rgbv2.c b/keyboards/keygem/kg65rgbv2/kg65rgbv2.c new file mode 100644 index 00000000000..f714accbf4b --- /dev/null +++ b/keyboards/keygem/kg65rgbv2/kg65rgbv2.c @@ -0,0 +1,14 @@ +/* +Copyright 2022 +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 "kg65rgbv2.h" diff --git a/keyboards/keygem/kg65rgbv2/kg65rgbv2.h b/keyboards/keygem/kg65rgbv2/kg65rgbv2.h new file mode 100644 index 00000000000..44415a1894f --- /dev/null +++ b/keyboards/keygem/kg65rgbv2/kg65rgbv2.h @@ -0,0 +1,32 @@ +/* +Copyright 2022 +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" + +/* TF60 ANSI Keymap Definitions */ +#define LAYOUT_65_ansi( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2E, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3C, K3D, K3E, \ + K40, K41, K42, K45, K49, K4A, K4B, K4C, K4D, K4E \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO, K2D, K2E }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, KC_NO, K3C, K3D, K3E }, \ + { K40, K41, K42, KC_NO, KC_NO, K45, KC_NO, KC_NO, KC_NO, K49, K4A, K4B, K4C, K4D, K4E } \ +} diff --git a/keyboards/keygem/kg65rgbv2/readme.md b/keyboards/keygem/kg65rgbv2/readme.md new file mode 100644 index 00000000000..20900cb861a --- /dev/null +++ b/keyboards/keygem/kg65rgbv2/readme.md @@ -0,0 +1,26 @@ +# Keygem KG65 RGB V2 + +The following is the QMK Firmware for the FJLabs TF65 RGB V2 PCB, a universal tray mount 65% hotswap PCB with per key RGB LED's. + +The PCB will feature: +* Kailh Hotswap sockets +* QMK & VIA compatibility +* Per-Key RGB LED's + + +* Keyboard Maintainer: Keygem +* Hardware Supported: KG65 RGB V2 + +Make example for this keyboard (after setting up your build environment): + + make keygem/kg65rgbv2:default + +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 `RESET` if it is available \ No newline at end of file diff --git a/keyboards/keygem/kg65rgbv2/rules.mk b/keyboards/keygem/kg65rgbv2/rules.mk new file mode 100644 index 00000000000..14620e11afb --- /dev/null +++ b/keyboards/keygem/kg65rgbv2/rules.mk @@ -0,0 +1,24 @@ +# MCU name +MCU = atmega32u4 + +# Processor frequency +F_CPU = 8000000 + +# 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 = yes # 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 + + +LAYOUTS = 65_ansi diff --git a/keyboards/keyquest/enclave/info.json b/keyboards/keyquest/enclave/info.json index da42594e709..5d062931c54 100644 --- a/keyboards/keyquest/enclave/info.json +++ b/keyboards/keyquest/enclave/info.json @@ -1,14 +1,17 @@ { "manufacturer": "keyquest", "keyboard_name": "Enclave-1", - "maintainer": "the keyquest team", + "maintainer": "keyquesttech", "usb": { "vid": "0x1117", "pid": "0x0E0E", "device_version": "0.0.1" }, + "layout_aliases": { + "LAYOUT": "LAYOUT_ortho_3x3" + }, "layouts": { - "LAYOUT": { + "LAYOUT_ortho_3x3": { "layout": [ { "matrix": [0, 0], "x": 0, "y": 0 }, { "matrix": [0, 1], "x": 1, "y": 0 }, @@ -24,4 +27,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/keyquest/enclave/keymaps/default/keymap.c b/keyboards/keyquest/enclave/keymaps/default/keymap.c index d1008fac112..fb77341e8e8 100644 --- a/keyboards/keyquest/enclave/keymaps/default/keymap.c +++ b/keyboards/keyquest/enclave/keymaps/default/keymap.c @@ -25,25 +25,25 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * │ M7 │ M8 │ M9 │ * └────┴────┴────┘ */ - [0] = LAYOUT( + [0] = LAYOUT_ortho_3x3( KC_MEDIA_PREV_TRACK, KC_MEDIA_PLAY_PAUSE, KC_MEDIA_NEXT_TRACK, C(KC_C), C(KC_V), G(KC_V), KC_AUDIO_VOL_UP, KC_AUDIO_VOL_DOWN, MO(1) ), - [1] = LAYOUT( + [1] = LAYOUT_ortho_3x3( _______, _______, _______, _______, _______, _______, _______, MO(2), _______ ), - [2] = LAYOUT( + [2] = LAYOUT_ortho_3x3( _______, _______, _______, _______, _______, _______, MO(3), _______, _______ ), - [3] = LAYOUT( + [3] = LAYOUT_ortho_3x3( RGB_TOG, RGB_MODE_PLAIN, RGB_MODE_BREATHE, RGB_MODE_RAINBOW, RGB_MODE_SWIRL, RGB_MODE_GRADIENT, _______, _______, _______ diff --git a/keyboards/keyquest/enclave/keymaps/via/keymap.c b/keyboards/keyquest/enclave/keymaps/via/keymap.c index 766fbdc3410..8419e8bd735 100644 --- a/keyboards/keyquest/enclave/keymaps/via/keymap.c +++ b/keyboards/keyquest/enclave/keymaps/via/keymap.c @@ -24,25 +24,25 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * │ M7 │ M8 │ M9 │ * └────┴────┴────┘ */ - [0] = LAYOUT( + [0] = LAYOUT_ortho_3x3( KC_MEDIA_PREV_TRACK, KC_MEDIA_PLAY_PAUSE, KC_MEDIA_NEXT_TRACK, KC_AUDIO_VOL_UP, KC_AUDIO_MUTE, KC_AUDIO_VOL_DOWN, _______, _______, _______ ), - [1] = LAYOUT( + [1] = LAYOUT_ortho_3x3( _______, _______, _______, _______, _______, _______, _______, _______, _______ ), - [2] = LAYOUT( + [2] = LAYOUT_ortho_3x3( _______, _______, _______, _______, _______, _______, _______, _______, _______ ), - [3] = LAYOUT( + [3] = LAYOUT_ortho_3x3( _______, _______, _______, _______, _______, _______, _______, _______, _______ diff --git a/keyboards/keyten/aperture/aperture.h b/keyboards/keyten/aperture/aperture.h index e547c917948..09851fb4b28 100644 --- a/keyboards/keyten/aperture/aperture.h +++ b/keyboards/keyten/aperture/aperture.h @@ -20,7 +20,7 @@ #define XXX KC_NO -/* LAYOUT_all +/* LAYOUT_65_ansi_blocker_tsangan_split_bs * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │2D │0E │ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ @@ -33,7 +33,7 @@ * │40 │41 │42 │46 │4A │ │4C │4D │4E │ * └─────┴───┴─────┴───────────────────────────┴─────┘ └───┴───┴───┘ */ -#define LAYOUT_all( \ +#define LAYOUT_65_ansi_blocker_tsangan_split_bs( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, \ diff --git a/keyboards/keyten/aperture/info.json b/keyboards/keyten/aperture/info.json index e2423376594..99b31751c99 100644 --- a/keyboards/keyten/aperture/info.json +++ b/keyboards/keyten/aperture/info.json @@ -1,89 +1,92 @@ { "keyboard_name": "Aperture", - "manufacturer": "Bizunow", + "manufacturer": "Bizunow", "url": "", - "maintainer": "keyten", - "usb": { + "maintainer": "key10iq", + "usb": { "vid": "0xEB69", "pid": "0x6501", "device_version": "0.0.1" }, + "layout_aliases": { + "LAYOUT_all": "LAYOUT_65_ansi_blocker_tsangan_split_bs" + }, + "community_layouts": ["65_ansi_blocker_tsangan_split_bs"], "layouts": { - "LAYOUT_all": { + "LAYOUT_65_ansi_blocker_tsangan_split_bs": { "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, "w":2.25}, - {"x":15, "y":2}, - - {"x":0, "y":3, "w":2.25}, - {"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.5}, - {"x":1.5, "y":4}, - {"x":2.5, "y":4, "w":1.5}, - {"x":4, "y":4, "w":7}, - {"x":11, "y":4, "w":1.5}, - {"x":13, "y":4}, - {"x":14, "y":4}, - {"x":15, "y":4} + {"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, "w":2.25}, + {"x":15, "y":2}, + + {"x":0, "y":3, "w":2.25}, + {"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.5}, + {"x":1.5, "y":4}, + {"x":2.5, "y":4, "w":1.5}, + {"x":4, "y":4, "w":7}, + {"x":11, "y":4, "w":1.5}, + {"x":13, "y":4}, + {"x":14, "y":4}, + {"x":15, "y":4} ] } - } } diff --git a/keyboards/keyten/aperture/keymaps/default/keymap.c b/keyboards/keyten/aperture/keymaps/default/keymap.c index 732a9bbddc1..f2cc99316d2 100644 --- a/keyboards/keyten/aperture/keymaps/default/keymap.c +++ b/keyboards/keyten/aperture/keymaps/default/keymap.c @@ -18,14 +18,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_all( + [0] = LAYOUT_65_ansi_blocker_tsangan_split_bs( 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_BSLS, 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_BSPC, 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_DEL, 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, MO(1), KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT), - [1] = LAYOUT_all( + [1] = LAYOUT_65_ansi_blocker_tsangan_split_bs( _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/keyten/aperture/keymaps/via/keymap.c b/keyboards/keyten/aperture/keymaps/via/keymap.c index f72f5dbb421..187b664fc1a 100644 --- a/keyboards/keyten/aperture/keymaps/via/keymap.c +++ b/keyboards/keyten/aperture/keymaps/via/keymap.c @@ -18,28 +18,28 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_all( + [0] = LAYOUT_65_ansi_blocker_tsangan_split_bs( 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_BSLS, 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_BSPC, 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_DEL, 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, MO(1), KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT), - [1] = LAYOUT_all( + [1] = LAYOUT_65_ansi_blocker_tsangan_split_bs( _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), - [2] = LAYOUT_all( + [2] = LAYOUT_65_ansi_blocker_tsangan_split_bs( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), - [3] = LAYOUT_all( + [3] = LAYOUT_65_ansi_blocker_tsangan_split_bs( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, diff --git a/keyboards/kikoslab/ellora65/keymaps/default/keymap.c b/keyboards/kikoslab/ellora65/keymaps/default/keymap.c index 625305c557f..df0b5b046ca 100644 --- a/keyboards/kikoslab/ellora65/keymaps/default/keymap.c +++ b/keyboards/kikoslab/ellora65/keymaps/default/keymap.c @@ -68,7 +68,6 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation) { /* timers */ uint32_t anim_timer = 0; -uint32_t anim_sleep = 0; /* current frame */ uint8_t current_frame = 0; @@ -160,35 +159,37 @@ static void render_luna(int LUNA_X, int LUNA_Y) { /* current status */ if (led_usb_state.caps_lock) { - oled_write_raw_P(bark[abs(1 - current_frame)], ANIM_SIZE); + oled_write_raw_P(bark[current_frame], ANIM_SIZE); } else if (isSneaking) { - oled_write_raw_P(sneak[abs(1 - current_frame)], ANIM_SIZE); + oled_write_raw_P(sneak[current_frame], ANIM_SIZE); } else if (current_wpm <= MIN_WALK_SPEED) { - oled_write_raw_P(sit[abs(1 - current_frame)], ANIM_SIZE); + oled_write_raw_P(sit[current_frame], ANIM_SIZE); } else if (current_wpm <= MIN_RUN_SPEED) { - oled_write_raw_P(walk[abs(1 - current_frame)], ANIM_SIZE); + oled_write_raw_P(walk[current_frame], ANIM_SIZE); } else { - oled_write_raw_P(run[abs(1 - current_frame)], ANIM_SIZE); + oled_write_raw_P(run[current_frame], ANIM_SIZE); } } +# if OLED_TIMEOUT > 0 + /* the animation prevents the normal timeout from occuring */ + if (last_input_activity_elapsed() > OLED_TIMEOUT && last_led_activity_elapsed() > OLED_TIMEOUT) { + oled_off(); + return; + } else { + oled_on(); + } +# endif + /* animation timer */ if (timer_elapsed32(anim_timer) > ANIM_FRAME_DURATION) { anim_timer = timer_read32(); animate_luna(); } - - /* this fixes the screen on and off bug */ - if (current_wpm > 0) { - oled_on(); - anim_sleep = timer_read32(); - } else if (timer_elapsed32(anim_sleep) > OLED_TIMEOUT) { - oled_off(); - } } diff --git a/keyboards/kikoslab/ellora65/keymaps/via/keymap.c b/keyboards/kikoslab/ellora65/keymaps/via/keymap.c index 8275718bcbf..aff4a92089a 100644 --- a/keyboards/kikoslab/ellora65/keymaps/via/keymap.c +++ b/keyboards/kikoslab/ellora65/keymaps/via/keymap.c @@ -78,7 +78,6 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation) { /* timers */ uint32_t anim_timer = 0; -uint32_t anim_sleep = 0; /* current frame */ uint8_t current_frame = 0; @@ -170,38 +169,39 @@ static void render_luna(int LUNA_X, int LUNA_Y) { /* current status */ if (led_usb_state.caps_lock) { - oled_write_raw_P(bark[abs(1 - current_frame)], ANIM_SIZE); + oled_write_raw_P(bark[current_frame], ANIM_SIZE); } else if (isSneaking) { - oled_write_raw_P(sneak[abs(1 - current_frame)], ANIM_SIZE); + oled_write_raw_P(sneak[current_frame], ANIM_SIZE); } else if (current_wpm <= MIN_WALK_SPEED) { - oled_write_raw_P(sit[abs(1 - current_frame)], ANIM_SIZE); + oled_write_raw_P(sit[current_frame], ANIM_SIZE); } else if (current_wpm <= MIN_RUN_SPEED) { - oled_write_raw_P(walk[abs(1 - current_frame)], ANIM_SIZE); + oled_write_raw_P(walk[current_frame], ANIM_SIZE); } else { - oled_write_raw_P(run[abs(1 - current_frame)], ANIM_SIZE); + oled_write_raw_P(run[current_frame], ANIM_SIZE); } } +# if OLED_TIMEOUT > 0 + /* the animation prevents the normal timeout from occuring */ + if (last_input_activity_elapsed() > OLED_TIMEOUT && last_led_activity_elapsed() > OLED_TIMEOUT) { + oled_off(); + return; + } else { + oled_on(); + } +# endif + /* animation timer */ if (timer_elapsed32(anim_timer) > ANIM_FRAME_DURATION) { anim_timer = timer_read32(); animate_luna(); } - - /* this fixes the screen on and off bug */ - if (current_wpm > 0) { - oled_on(); - anim_sleep = timer_read32(); - } else if (timer_elapsed32(anim_sleep) > OLED_TIMEOUT) { - oled_off(); - } } - /* KEYBOARD PET END */ static void print_status_narrow(void) { diff --git a/keyboards/kingly_keys/ropro/keymaps/jdayton3/keymap.c b/keyboards/kingly_keys/ropro/keymaps/jdayton3/keymap.c index 9cba0ccefbc..51403378d10 100644 --- a/keyboards/kingly_keys/ropro/keymaps/jdayton3/keymap.c +++ b/keyboards/kingly_keys/ropro/keymaps/jdayton3/keymap.c @@ -196,7 +196,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,------|------+------+------+------+------+------+------+------+------+------+------+------| * | PgUp | | |MUSmod|Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak|Plover| | * |------|------+------+------+------+------+------+------+------+------+------+------+------| - * | Home | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof|TermOn|TermOf| | | | + * | Home | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | | * |------|------+------+------+------+------+------+------+------+------+------+------+------| * | PgDn | | | | | | | | | | | | * `------------------------------------------------------------------------------------------' @@ -206,7 +206,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS, KC_NO, _______, QK_BOOT, DEBUG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL , KC_PGUP, _______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, PLOVER, _______, - KC_HOME, _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, TERM_ON, TERM_OFF, _______, _______, _______, + KC_HOME, _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______, KC_PGDN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) }; diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/coffee/keymap.c b/keyboards/kprepublic/bm40hsrgb/keymaps/coffee/keymap.c index ba83e47f5fd..f9889564514 100644 --- a/keyboards/kprepublic/bm40hsrgb/keymaps/coffee/keymap.c +++ b/keyboards/kprepublic/bm40hsrgb/keymaps/coffee/keymap.c @@ -57,7 +57,7 @@ const uint16_t PROGMEM keymaps[_END][MATRIX_ROWS][MATRIX_COLS] = { XXXXXXX, RGB_SPD, RGB_VAI, RGB_SPI, RGB_HUI, RGB_SAI, XXXXXXX, XXXXXXX, KC_VOLU, XXXXXXX, XXXXXXX, MCR_REC, XXXXXXX, RGB_RMOD,RGB_VAD, RGB_MOD, RGB_HUD, RGB_SAD, XXXXXXX, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, MCR_PLY, XXXXXXX, XXXXXXX, RGB_TOG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_VOLD, XXXXXXX, XXXXXXX, MCR_SWT, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX ) }; @@ -72,8 +72,8 @@ 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 < RGB_MATRIX_LED_COUNT; key_id++ ) { + + for (int key_id = 0; key_id < DRIVER_LED_TOTAL; key_id++ ) { if (g_led_config.flags[key_id] == LED_FLAG_UNDERGLOW) { g_led_config.flags[key_id] = LED_FLAG_NONE; } @@ -81,7 +81,7 @@ const uint16_t PROGMEM keymaps[_END][MATRIX_ROWS][MATRIX_COLS] = { } #endif - void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { + bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { if (LAYER != _MAIN) { int DimmedMax = UINT8_MAX - (UINT8_MAX - rgb_matrix_config.hsv.v); @@ -89,7 +89,7 @@ const uint16_t PROGMEM keymaps[_END][MATRIX_ROWS][MATRIX_COLS] = { for (uint8_t i = led_min; i <= led_max; i++) { uint8_t pos = ((uint8_t*)g_led_config.matrix_co)[i]; - + CHECK_LED(); // Check LED before moving on uint16_t KC = pgm_read_word(&((uint16_t*)keymaps)[(LAYER_SIZE * LAYER) + i]); @@ -111,6 +111,7 @@ const uint16_t PROGMEM keymaps[_END][MATRIX_ROWS][MATRIX_COLS] = { } } + return false; } #endif @@ -162,4 +163,4 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { default: return true; //Process all other keycodes normally } -} \ No newline at end of file +} diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/dan/keymap.c b/keyboards/kprepublic/bm40hsrgb/keymaps/dan/keymap.c index 5029d557dd9..2ec9a5f9b32 100644 --- a/keyboards/kprepublic/bm40hsrgb/keymaps/dan/keymap.c +++ b/keyboards/kprepublic/bm40hsrgb/keymaps/dan/keymap.c @@ -16,17 +16,17 @@ #include QMK_KEYBOARD_H enum layers { - _ALPHA, - _LEFTFN, - _RIGHTFN, - _NUMPAD, - _LEAGUE, - _PUBG, - _OVERWATCH, - _STARCRAFT, - _TETRIS, - _CLEAN, - _RGB + _ALPHA, + _LEFTFN, + _RIGHTFN, + _NUMPAD, + _LEAGUE, + _PUBG, + _OVERWATCH, + _STARCRAFT, + _TETRIS, + _CLEAN, + _RGB }; #define ALPHA TO(_ALPHA) @@ -67,9 +67,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------+------+------+------+------+------+------| * | Ctrl | Left | Down | Up |Right |CTRL+/|HANJA | [ | ] | ) | : | " | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Shift| PGUP | PGDN | Home | End | CAPS |PRNTSR| ( | , | . | / | Enter| + * | Shift| PGUP | PGDN | Home | End | CAPS |PRNTSR| ( | , | . | / |Return| * |------+------+------+------+------+------+------+------+------+------+------+------| - * | RGB | [ | ] | Alt | Trns | Space | _ | + | INS | | | Ent. | + * | RGB | [ | ] | Alt | Trns | Space | _ | + | INS | | | Enter| * `-----------------------------------------------------------------------------------' */ [_LEFTFN] = LAYOUT_planck_mit( @@ -79,50 +79,50 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { RGB, KC_LBRC, KC_RBRC, KC_LALT, KC_TRNS, KC_SPC, KC_UNDS, KC_PLUS, KC_INS, KC_PIPE, KC_PENT ), - /* RIGHTFN * ,-----------------------------------------------------------------------------------. - * | | | | | | | | Pause|SCRLCK| | F11 | F12 | + * | | | | | | | | F12 | F11 | F10 | F9 | Pause| * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Ctrl | | | | | | | F1 | F2 | F3 | F4 | F5 | + * | Ctrl | | | | | | | F8 | F7 | F6 | F5 |Scllck| * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Shift| | | | | | | F6 | F7 | F8 | F9 | F10 | + * | Shift| | | | | | | F4 | F3 | F2 | F1 | | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | Alt | | Space | Trns | | | | | * `-----------------------------------------------------------------------------------' */ [_RIGHTFN] = LAYOUT_planck_mit( - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PAUS, KC_SCRL, KC_NO, KC_F11, KC_F12, - KC_LCTL, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, - KC_LSFT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, - KC_NO, KC_NO, KC_NO, KC_LALT, KC_NO, KC_SPC, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, KC_F11, KC_F10, KC_F9, KC_PAUS, + KC_LCTL, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_F8, KC_F7, KC_F6, KC_F5, KC_SCRL, + KC_LSFT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_F4, KC_F3, KC_F2, KC_F1, KC_NO, + KC_NO, KC_NO, KC_NO, KC_LALT, KC_NO, KC_SPC, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO ), /* NUMPAD * ,-----------------------------------------------------------------------------------. * | * | 7 | 8 | 9 | NumLk| | | | | | | Bksp | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Alt | 4 | 5 | 6 | Enter| | | | | | | | + * | Alt | 4 | 5 | 6 |Return| | | | | | Shift| | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | - | 1 | 2 | 3 | Bksp | | | | | Ctrl | Shift|Return| + * | - | 1 | 2 | 3 | Bksp | | | | | | Ctrl |Return| * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Trns | , | + | . | 0 | Space |LEAGUE| PUBG | OVWCh| SC |TETRIS| + * | Trns | , | + | . | 0 | Space |LEAGUE| PUBG | OVWCh| SC |TETRIS| * `-----------------------------------------------------------------------------------' */ [_NUMPAD] = LAYOUT_planck_mit( - KC_PAST, KC_P7, KC_P8, KC_P9, KC_NLCK, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_BSPC, - KC_LALT, KC_P4, KC_P5, KC_P6, KC_ENT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_PMNS, KC_P1, KC_P2, KC_P3, KC_BSPC, KC_NO, KC_NO, KC_NO, KC_NO, KC_LCTL, KC_LSFT, KC_ENT, + KC_ASTR, KC_P7, KC_P8, KC_P9, KC_NLCK, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_BSPC, + KC_LALT, KC_P4, KC_P5, KC_P6, KC_ENT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_LSFT, KC_NO, + KC_PMNS, KC_P1, KC_P2, KC_P3, KC_BSPC, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_LCTL, KC_ENT, KC_TRNS, KC_COMM, KC_PPLS, KC_PDOT, KC_0, KC_SPC, LEAGUE, PUBG, OVERWATCH, STARCRAFT, TETRIS ), + /* LEAGUE * ,-----------------------------------------------------------------------------------. * | Tab | Q | W | E | R | 5 | Y | | | O | P | ESC | * |------+------+------+------+------+------+------+------+------+------+------+------| * | Ctrl | A | S | D | F | | | | | L | | | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Shift| Z | 6 | 4 | 1 | B | | | | | | Enter| + * | Shift| Z | 6 | 4 | 1 | B | | | | | |Return| * |------+------+------+------+------+------+------+------+------+------+------+------| * | 3 | X | C | Alt | 2 | Space | | | | | ALPHA| * `-----------------------------------------------------------------------------------' @@ -140,16 +140,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------+------+------+------+------+------+------| * | 1 | A | S | D | F | G | H | J | K | L | | F7 | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Shift| Z | 3 | X | C | V | B | M | . | | | F9 | + * | Shift| Z | 3 | X | C | V | B | M | , | . | | F9 | * |------+------+------+------+------+------+------+------+------+------+------+------| * | Ctrl | 5 | 4 | Alt | 2 | Space | 6 | 8 | 7 | 9 | ALPHA| * `-----------------------------------------------------------------------------------' */ [_PUBG] = LAYOUT_planck_mit( - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_ESC, - KC_1, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_NO, KC_F7, - KC_LSFT, KC_Z, KC_3, KC_X, KC_C, KC_V, KC_B, KC_M, KC_DOT, KC_NO, KC_NO, KC_F9, - KC_LCTL, KC_5, KC_4, KC_LALT, KC_2, KC_SPC, KC_6, KC_8, KC_7, KC_9, ALPHA + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_ESC, + KC_1, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_NO, KC_F7, + KC_LSFT, KC_Z, KC_3, KC_X, KC_C, KC_V, KC_B, KC_M, KC_COMM, KC_DOT, KC_NO, KC_F9, + KC_LCTL, KC_5, KC_4, KC_LALT, KC_2, KC_SPC, KC_6, KC_8, KC_7, KC_9, ALPHA ), /* OVERWATCH @@ -158,7 +158,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------+------+------+------+------+------+------| * | 1 | A | S | D | F | G | H | J | K | L | ; | " | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Shift| Z | X | C | V | B | N | M | , | . | / | Enter| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Return| * |------+------+------+------+------+------+------+------+------+------+------+------| * | Ctrl | | | Alt | 2 | Space | Bksp | | | | ALPHA| * `-----------------------------------------------------------------------------------' @@ -176,7 +176,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------+------+------+------+------+------+------| * | Ctrl | A | S | D | F | G | H | J | K | L | ; | ' | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Shift| Z | X | C | V | B | N | M | , | . | / | Enter| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Return| * |------+------+------+------+------+------+------+------+------+------+------+------| * | Esc | | | Alt | F1 | Space | F10 | Pause|Delete| | ALPHA| * `-----------------------------------------------------------------------------------' @@ -206,10 +206,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_A, KC_LEFT, KC_DOWN, KC_RIGHT, KC_F, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_LCTL, KC_NO, KC_NO, KC_LALT, KC_S, KC_SPC, KC_NO, KC_NO, KC_NO, KC_NO, ALPHA - ), -/* TETRIS +/* CLEAN * ,-----------------------------------------------------------------------------------. * | | | | | | | | | | | | | * |------+------+------+------+------+------+------+------+------+------+------+------| @@ -257,7 +256,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46} */ -void rgb_matrix_indicators_user(void) { + +bool rgb_matrix_indicators_user(void) { + uint8_t red[3] = {50, 5, 0}; + uint8_t yellow[3] = {50, 50, 0}; + uint8_t blue[3] = {0, 15, 50}; + uint8_t green[3] = {15, 33, 1}; + uint8_t white[3] = {255, 255, 255}; + switch (get_highest_layer(layer_state)) { case _ALPHA: break; @@ -268,65 +274,54 @@ void rgb_matrix_indicators_user(void) { case _NUMPAD: break; case _LEAGUE: - rgb_matrix_set_color(1, 15, 15, 15); - rgb_matrix_set_color(2, 15, 15, 15); - rgb_matrix_set_color(3, 15, 15, 15); - rgb_matrix_set_color(4, 15, 15, 15); - rgb_matrix_set_color(15, 50, 40, 0); - rgb_matrix_set_color(16, 50, 5, 0); - rgb_matrix_set_color(29, 0, 15, 50); - rgb_matrix_set_color(10, 20, 2, 15); + rgb_matrix_set_color(15, yellow[0], yellow[1], yellow[2]); + rgb_matrix_set_color(16, red[0], red[1], red[2]); + rgb_matrix_set_color(29, blue[0], blue[1], blue[2]); + rgb_matrix_set_color(42, green[0], green[1], green[2]); + break; case _PUBG: - rgb_matrix_set_color(12, 15, 15, 15); - rgb_matrix_set_color(40, 15, 15, 15); - rgb_matrix_set_color(42, 3, 3, 50); - rgb_matrix_set_color(43, 5, 50, 8); - rgb_matrix_set_color(44, 50, 35, 0); - rgb_matrix_set_color(45, 30, 30, 15); + rgb_matrix_set_color(43, green[0], green[1], green[2]); + break; case _OVERWATCH: - rgb_matrix_set_color(11, 80, 20, 0); - rgb_matrix_set_color(46, 80, 20, 0); + rgb_matrix_set_color(44, green[0], green[1], green[2]); break; case _STARCRAFT: - rgb_matrix_set_color(11, 5, 80, 15); - rgb_matrix_set_color(46, 5, 80, 15); + rgb_matrix_set_color(45, green[0], green[1], green[2]); break; case _TETRIS: - rgb_matrix_set_color(2, 60, 10, 20); - rgb_matrix_set_color(13, 60, 10, 20); - rgb_matrix_set_color(14, 60, 10, 20); - rgb_matrix_set_color(15, 60, 10, 20); + rgb_matrix_set_color(46, green[0], green[1], green[2]); break; case _CLEAN: - rgb_matrix_set_color_all(255, 255, 255); + rgb_matrix_set_color_all(white[0], white[1], white[2]); break; case _RGB: break; } - led_t led_state = host_keyboard_led_state(); + led_t led_state = host_keyboard_led_state(); //Capslock led if (led_state.caps_lock) { - rgb_matrix_set_color(12, 145, 145, 145); + rgb_matrix_set_color(12, green[0], green[1], green[2]); } //Numlock led - if (!led_state.num_lock) { - rgb_matrix_set_color(0, 145, 145, 145); + if (led_state.num_lock) { + } else { + rgb_matrix_set_color(11, green[0], green[1], green[2]); } //Scroll lock led if (led_state.scroll_lock) { - rgb_matrix_set_color(24, 145, 145, 145); + rgb_matrix_set_color(23, green[0], green[1], green[2]); } - + return false; } diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/dan/readme.md b/keyboards/kprepublic/bm40hsrgb/keymaps/dan/readme.md index 4a706c73151..cc59c816f09 100644 --- a/keyboards/kprepublic/bm40hsrgb/keymaps/dan/readme.md +++ b/keyboards/kprepublic/bm40hsrgb/keymaps/dan/readme.md @@ -1,3 +1,82 @@ -# Dan's kprepublic bm40 layout +# Dan's KPrepublic BM40 Keymap -Dan's personal keymap with LED indicator support. +>This is my personal keymap with an LED indicator support for num lock, caps lock and scroll lock. + +![](https://i.imgur.com/2yclc1B.jpg) +> * Case: Poseidon PSD40 Case +> * Plate: Brass +> * Keycaps: WOB ABS Cherry Profile +> * Switches: Gazzew Boba u4t (62g 2 stage long spring) + +### BM40 LED INDEX +**_Numlock (11) Capslock (12) Scroll lock (23)_** + +| | _A_ | _B_ | _C_ | _D_ | _E_ | _F_ | _G_ | _H_ | _I_ | _J_ | _K_ | _L_ | +|---------|---:|---:|---:|---:|---:|---:|---:|---:|---:|---:|---:|---:| +| **_1_** | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | +| **_2_** | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | +| **_3_** | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | +| **_4_** |    36 |    37 |    38 |     39 |     40 |    41 |        |    42 |    43 |    44 |    45 |    46 | + +## LED INDICATOR EXAMPLES +![](https://i.imgur.com/qpkRNio.jpg) +![](https://i.imgur.com/GfG252J.jpg) +> * Case: SM Keyboards Planck/Niu Mini Acrylic Case +> * Plate: Acrylic +> * Keycaps: Drop + biip MT3 Extended 2048 Katakana +> * Switches: Everglide Aqua King V3 (62g 2 stage long spring) + + +

+ +## KEYMAP LAYOUT EXAMPLES +### ALPHA + +| | _A_ | _B_ | _C_ | _D_ | _E_ | _F_ | _G_ | _H_ | _I_ | _J_ | _K_ | _L_ | +|---------|----:|----:|----:|----:|----:|----:|----:|----:|----:|----:|----:|----:| +| **_1_** | TAB | Q | W | E | R | T | Y | U | I | O | P | BSP | +| **_2_** | CTL | A | S | D | F | G | H | J | K | L | ; | ' | +| **_3_** | SFT | Z | X | C | V | B | N | M | , | . | / | RET | +| **_4_** |  ESC | KOR | WIN |   ALT |    FN |  SPC |          |        - |     = | DEL |      \ | ENT | +>This is a base layer for typing. + +
+ +### LEFTFN MO(FN) + +| | _A_ | _B_ | _C_ | _D_ | _E_ | _F_ | _G_ | _H_ | _I_ | _J_ | _K_ | _L_ | +|---------|----:|----:|----:|----:|----:|----:|----:|----:|----:|----:|----:|----:| +| **_1_** | \` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | BSP | +| **_2_** | CTL | LFT | DN | UP | RHT | C+/ | HAN | [ | ] | ) | : | " | +| **_3_** | SFT | PGU | PGD | HOM | END | CAP | PRN | ( | , | . | / | RET | +| **_4_** | RGB | [ | ] |  ALT | TRN |  SPC ||       _ |     + |  INS |         | ENT | +>This is the layer dedicated to number, symbol and navigation keys. ie) arrow keys + +
+ +### RIGHTFN MO(-) + +| | _A_ | _B_ | _C_ | _D_ | _E_ | _F_ | _G_ | _H_ | _I_ | _J_ | _K_ | _L_ | +|---------|----:|----:|----:|----:|----:|----:|----:|----:|----:|----:|----:|----:| +| **_1_** | | | | | | | | F12 | F11 | F10 | F9 | PAU | +| **_2_** | CTL | | | | | | | F8 | F7 | F6 | F5 | SCL | +| **_3_** | SFT | | | | | | | F4 | F3 | F2 | F1 | | +| **_4_** |         |         |         |   ALT  |         |  SPC |         |  TRN |        |        |        |      | +>This layer contains function rows. + +
+ +### NUMPAD MO(ESC) + +| | _A_ | _B_ | _C_ | _D_ | _E_ | _F_ | _G_ | _H_ | _I_ | _J_ | _K_ | _L_ | +|---------|----:|----:|----:|----:|----:|----:|----:|----:|----:|----:|----:|----:| +| **_1_** | * | 7 | 8 | 9 | NUM | | | | | | | BSP | +| **_2_** | ALT | 4 | 5 | 6 | RET | | | | | | | | +| **_3_** | - | 1 | 2 | 3 | BSP | | | | | | | RET | +| **_4_** | TRN |        , |      + |        . |    0 | SPC |         |   LY1 |  LY2 |  LY3 |  LY4 |  LY5 | +>This layer is the numpad. + +
+ +There are other dedicated layers for gaming that are not included here. +If you are interested, check out keymap.c! diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/gabustoledo/keymap.c b/keyboards/kprepublic/bm40hsrgb/keymaps/gabustoledo/keymap.c index 12db3f2eec9..71cd9f074e1 100755 --- a/keyboards/kprepublic/bm40hsrgb/keymaps/gabustoledo/keymap.c +++ b/keyboards/kprepublic/bm40hsrgb/keymaps/gabustoledo/keymap.c @@ -1,17 +1,17 @@ /* Copyright 2021 Gabriel Bustamante Toledo - * - * 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 . + * + * 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 @@ -36,7 +36,7 @@ void set_color(int r, int g, int b){ rgb_matrix_set_color(41, r, g, b); } -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_user(void) { switch (get_highest_layer(layer_state)) { case BASE2: @@ -53,7 +53,7 @@ void rgb_matrix_indicators_user(void) { break; case SYM: set_color(0, 50, 1.9); - break; + break; case NUM: set_color(10, 0, 50); break; @@ -61,6 +61,7 @@ void rgb_matrix_indicators_user(void) { set_color(50, 0, 0); break; } + return false; } const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { @@ -122,4 +123,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ) }; - diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/signynt/keymap.c b/keyboards/kprepublic/bm40hsrgb/keymaps/signynt/keymap.c index 1e97aba4954..5e0d4afa32c 100644 --- a/keyboards/kprepublic/bm40hsrgb/keymaps/signynt/keymap.c +++ b/keyboards/kprepublic/bm40hsrgb/keymaps/signynt/keymap.c @@ -67,7 +67,7 @@ void matrix_scan_user(void) { //layer led colors -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_user(void) { //game indicators @@ -160,6 +160,7 @@ if(IS_LAYER_ON(NSSL)) { rgb_matrix_set_color(28, 0, 50, 1.9); rgb_matrix_set_color(29, 0, 50, 1.9); + return false; } //capslock leds diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_loud/keymap.c b/keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_loud/keymap.c index 6411a07d4f7..1d274880c28 100644 --- a/keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_loud/keymap.c +++ b/keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_loud/keymap.c @@ -67,7 +67,7 @@ void matrix_scan_user(void) { //layer led colors -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_user(void) { for (uint8_t i = 0; i < RGB_MATRIX_LED_COUNT; ++i) { if (HAS_ANY_FLAGS(g_led_config.flags[i], LED_FLAG_MODIFIER)) { @@ -141,6 +141,7 @@ void rgb_matrix_indicators_user(void) { } } + return false; } //tap dance declarations diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_quiet/keymap.c b/keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_quiet/keymap.c index 8f1eb6d3582..d1c33599a28 100644 --- a/keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_quiet/keymap.c +++ b/keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_quiet/keymap.c @@ -67,7 +67,7 @@ void matrix_scan_user(void) { //layer led colors -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_user(void) { for (uint8_t i = 0; i < RGB_MATRIX_LED_COUNT; ++i) { if (HAS_ANY_FLAGS(g_led_config.flags[i], LED_FLAG_MODIFIER)) { @@ -105,6 +105,7 @@ void rgb_matrix_indicators_user(void) { } } + return false; } //tap dance declarations diff --git a/keyboards/kprepublic/bm60hsrgb/rev2/config.h b/keyboards/kprepublic/bm60hsrgb/rev2/config.h index 96ed5e65cb7..7fdcb37ba92 100644 --- a/keyboards/kprepublic/bm60hsrgb/rev2/config.h +++ b/keyboards/kprepublic/bm60hsrgb/rev2/config.h @@ -50,7 +50,6 @@ #define RGBLIGHT_SAT_STEP 8 #define RGBLIGHT_VAL_STEP 8 -#define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects #define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended #define DRIVER_ADDR_1 0b1010000 diff --git a/keyboards/kprepublic/bm60hsrgb/rev2/rev2.c b/keyboards/kprepublic/bm60hsrgb/rev2/rev2.c index 55e0667f454..bcf69323a77 100644 --- a/keyboards/kprepublic/bm60hsrgb/rev2/rev2.c +++ b/keyboards/kprepublic/bm60hsrgb/rev2/rev2.c @@ -130,11 +130,14 @@ led_config_t g_led_config = { } }; -__attribute__ ((weak)) -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_kb(void) { + if (!rgb_matrix_indicators_user()) { + return false; + } if (host_keyboard_led_state().caps_lock) { rgb_matrix_set_color(28, 0xFF, 0xFF, 0xFF); } + return true; } diff --git a/keyboards/kprepublic/bm60hsrgb_ec/rev1/rev1.c b/keyboards/kprepublic/bm60hsrgb_ec/rev1/rev1.c index 5dc0e8dc1de..9f7333b7212 100644 --- a/keyboards/kprepublic/bm60hsrgb_ec/rev1/rev1.c +++ b/keyboards/kprepublic/bm60hsrgb_ec/rev1/rev1.c @@ -48,11 +48,14 @@ led_config_t g_led_config = { { 2, 2, 2, 2, 2, 2 } }; -__attribute__ ((weak)) -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_kb(void) { + if (!rgb_matrix_indicators_user()) { + return false; + } if (host_keyboard_led_state().caps_lock) { rgb_matrix_set_color(28, 0xFF, 0xFF, 0xFF); } + return true; } #ifdef ENCODER_ENABLE diff --git a/keyboards/kprepublic/bm60hsrgb_ec/rev2/config.h b/keyboards/kprepublic/bm60hsrgb_ec/rev2/config.h index 3a9f4af2820..40196bee851 100644 --- a/keyboards/kprepublic/bm60hsrgb_ec/rev2/config.h +++ b/keyboards/kprepublic/bm60hsrgb_ec/rev2/config.h @@ -62,7 +62,6 @@ #define RGBLIGHT_SAT_STEP 8 #define RGBLIGHT_VAL_STEP 8 -# define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects # define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended # define DRIVER_ADDR_1 0b1010000 # define DRIVER_COUNT 2 diff --git a/keyboards/kprepublic/bm60hsrgb_ec/rev2/rev2.c b/keyboards/kprepublic/bm60hsrgb_ec/rev2/rev2.c index fd964a67cdd..6cb40e06221 100644 --- a/keyboards/kprepublic/bm60hsrgb_ec/rev2/rev2.c +++ b/keyboards/kprepublic/bm60hsrgb_ec/rev2/rev2.c @@ -117,11 +117,14 @@ led_config_t g_led_config = { } }; -__attribute__ ((weak)) -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_kb(void) { + if (!rgb_matrix_indicators_user()) { + return false; + } if (host_keyboard_led_state().caps_lock) { rgb_matrix_set_color(28, 0xFF, 0xFF, 0xFF); } + return true; } #endif diff --git a/keyboards/kprepublic/bm60hsrgb_iso/rev2/config.h b/keyboards/kprepublic/bm60hsrgb_iso/rev2/config.h index c5f8d3267eb..d6cdad742d2 100644 --- a/keyboards/kprepublic/bm60hsrgb_iso/rev2/config.h +++ b/keyboards/kprepublic/bm60hsrgb_iso/rev2/config.h @@ -61,7 +61,6 @@ #define RGBLIGHT_SAT_STEP 8 #define RGBLIGHT_VAL_STEP 8 -# define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects # define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended # define RGB_MATRIX_KEYPRESSES # define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_ALL diff --git a/keyboards/kprepublic/bm60hsrgb_iso/rev2/rev2.c b/keyboards/kprepublic/bm60hsrgb_iso/rev2/rev2.c index 7144db99efe..9ea82691e2e 100644 --- a/keyboards/kprepublic/bm60hsrgb_iso/rev2/rev2.c +++ b/keyboards/kprepublic/bm60hsrgb_iso/rev2/rev2.c @@ -131,11 +131,14 @@ led_config_t g_led_config = { { # endif } }; -__attribute__ ((weak)) -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_kb(void) { + if (!rgb_matrix_indicators_user()) { + return false; + } if (host_keyboard_led_state().caps_lock) { rgb_matrix_set_color(28, 0xFF, 0xFF, 0xFF); } + return true; } // clang-format on diff --git a/keyboards/kprepublic/bm60hsrgb_poker/rev1/keymaps/david/keymap.c b/keyboards/kprepublic/bm60hsrgb_poker/rev1/keymaps/david/keymap.c index fb7e9c33c3d..8da5f085727 100644 --- a/keyboards/kprepublic/bm60hsrgb_poker/rev1/keymaps/david/keymap.c +++ b/keyboards/kprepublic/bm60hsrgb_poker/rev1/keymaps/david/keymap.c @@ -1,23 +1,23 @@ /* Copyright 2021 David Martinz - * - * 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 . - */ + * + * 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_60_ansi(KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL), @@ -29,11 +29,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; #ifdef RGB_MATRIX_ENABLE -void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { +bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { // caps lock white if (host_keyboard_led_state().caps_lock) { RGB_MATRIX_INDICATOR_SET_COLOR(28, 200, 200, 200); - } + } // layer state switch (get_highest_layer(layer_state)) { @@ -54,5 +54,6 @@ void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { RGB_MATRIX_INDICATOR_SET_COLOR(59, 128, 128, 128); break; } + return false; } #endif diff --git a/keyboards/kprepublic/bm60hsrgb_poker/rev1/keymaps/ipetepete/keymap.c b/keyboards/kprepublic/bm60hsrgb_poker/rev1/keymaps/ipetepete/keymap.c index 93a90f12b03..9979b7baa30 100644 --- a/keyboards/kprepublic/bm60hsrgb_poker/rev1/keymaps/ipetepete/keymap.c +++ b/keyboards/kprepublic/bm60hsrgb_poker/rev1/keymaps/ipetepete/keymap.c @@ -1,18 +1,18 @@ /* Copyright 2020 ipetepete - * - * 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 . - */ + * + * 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 { @@ -117,7 +117,7 @@ void rgb_matrix_layer_helper (uint8_t red, uint8_t green, uint8_t blue) { } -void rgb_matrix_indicators_kb(void) +bool rgb_matrix_indicators_user(void) { if (!g_suspend_state && rgb_matrix_config.enable) { switch (get_highest_layer(layer_state)) { @@ -141,4 +141,5 @@ void rgb_matrix_indicators_kb(void) break; } } + return false; } diff --git a/keyboards/kprepublic/bm60hsrgb_poker/rev2/config.h b/keyboards/kprepublic/bm60hsrgb_poker/rev2/config.h index 7b38edd95a7..c24bfddd399 100644 --- a/keyboards/kprepublic/bm60hsrgb_poker/rev2/config.h +++ b/keyboards/kprepublic/bm60hsrgb_poker/rev2/config.h @@ -58,7 +58,6 @@ #define RGBLIGHT_SAT_STEP 8 #define RGBLIGHT_VAL_STEP 8 -# define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects # define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended # define RGB_MATRIX_KEYPRESSES #define ENABLE_RGB_MATRIX_ALPHAS_MODS diff --git a/keyboards/kprepublic/bm60hsrgb_poker/rev2/rev2.c b/keyboards/kprepublic/bm60hsrgb_poker/rev2/rev2.c index 7da219eec2d..a9c5508236f 100644 --- a/keyboards/kprepublic/bm60hsrgb_poker/rev2/rev2.c +++ b/keyboards/kprepublic/bm60hsrgb_poker/rev2/rev2.c @@ -127,11 +127,14 @@ led_config_t g_led_config = { } }; -__attribute__ ((weak)) -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_kb(void) { + if (!rgb_matrix_indicators_user()) { + return false; + } if (host_keyboard_led_state().caps_lock) { rgb_matrix_set_color(28, 0xFF, 0xFF, 0xFF); } + return true; } // clang-format on diff --git a/keyboards/kprepublic/bm65hsrgb_iso/keymaps/p4yne/keymap.c b/keyboards/kprepublic/bm65hsrgb_iso/keymaps/p4yne/keymap.c index 18986c604cb..557be513ad4 100644 --- a/keyboards/kprepublic/bm65hsrgb_iso/keymaps/p4yne/keymap.c +++ b/keyboards/kprepublic/bm65hsrgb_iso/keymaps/p4yne/keymap.c @@ -266,19 +266,19 @@ void set_led_color_by_hsv(int ledkey, uint8_t h_in, uint8_t s_in, uint8_t v_in){ void set_led_color_by_layer(int layer, int ledkey){ set_led_color_by_hsv(ledkey, pgm_read_byte(&ledmap[layer][0]), pgm_read_byte(&ledmap[layer][1]), - pgm_read_byte(&ledmap[layer][2])); + pgm_read_byte(&ledmap[layer][2])); } void set_ledkey_by_layer_type(int layer, int ledkey, uint16_t key){ if (rgb_matrix_get_flags() != LED_FLAG_ALL){ if ( key == KC_TRNS ) { if ((pgm_read_byte(&ledmap[layer][3]) == LYR_TRANS) && (layer > 0)){ - // this key is transparent and the layer below does something + // this key is transparent and the layer below does something // - light it up in (lower) layer-1 specific color - set_led_color_by_layer(layer-1, ledkey); - } + set_led_color_by_layer(layer-1, ledkey); + } if (pgm_read_byte(&ledmap[layer][3]) == LYR_BLACK){ - // this key is transparent but the lower layer is not intended + // this key is transparent but the lower layer is not intended // to be used, it still works but not intended; type BLACK set_led_color_by_hsv(ledkey, HSV_BLACK); } @@ -300,7 +300,7 @@ void set_caps_lock(int layer) { // it might be used for displaying led pattern if((rgb_matrix_get_flags() != LED_FLAG_ALL)) { // or to keep the correct lighting on for the layer that use all keys - // on all other layers turn the led off, so only switch it of when + // on all other layers turn the led off, so only switch it of when // layer is BLACK if(pgm_read_byte(&ledmap[layer][3]) == LYR_BLACK){ set_led_color_by_hsv(caps_lock_led, HSV_BLACK); @@ -316,14 +316,14 @@ void set_layer_color(int layer) { uint8_t row = keyindex/MATRIX_COLS; uint8_t col = (keyindex-(keyindex/MATRIX_COLS)*MATRIX_COLS); uint16_t key=pgm_read_word(&keymaps[layer][row][col]); - + // continue if this is not a valid key if (key==KC_NO) { continue; } - + // handle layer specific coloring set_ledkey_by_layer_type(layer, ledkey, key); /* === below this function add custom overriding ledkey lighting === */ - + // gaming layer with highlighted keys //if (IS_LAYER_ON(_LVL4_)) { if (layer == _LVL4_) { @@ -439,10 +439,11 @@ void set_layer_color(int layer) { return; } -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_user(void) { int layer = get_highest_layer(layer_state); set_layer_color(layer); set_caps_lock(layer); + return false; } #ifdef LEADER_ENABLE diff --git a/keyboards/kprepublic/bm65hsrgb_iso/rev1/keymaps/deadolus/keymap.c b/keyboards/kprepublic/bm65hsrgb_iso/rev1/keymaps/deadolus/keymap.c index 680f79a6680..5563816ff3b 100644 --- a/keyboards/kprepublic/bm65hsrgb_iso/rev1/keymaps/deadolus/keymap.c +++ b/keyboards/kprepublic/bm65hsrgb_iso/rev1/keymaps/deadolus/keymap.c @@ -249,9 +249,10 @@ void set_layer_color(int layer) { return; } -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_user(void) { set_layer_color(get_highest_layer(layer_state)); + return false; } #ifdef LEADER_ENABLE diff --git a/keyboards/kprepublic/bm65hsrgb_iso/rev1/rev1.c b/keyboards/kprepublic/bm65hsrgb_iso/rev1/rev1.c index 6e0fd571176..0b2a8f7042b 100644 --- a/keyboards/kprepublic/bm65hsrgb_iso/rev1/rev1.c +++ b/keyboards/kprepublic/bm65hsrgb_iso/rev1/rev1.c @@ -54,10 +54,13 @@ led_config_t g_led_config = { { 2, 2, 2, 2, 2, 2 } }; -__attribute__ ((weak)) -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_kb(void) { + if (!rgb_matrix_indicators_user()) { + return false; + } if (host_keyboard_led_state().caps_lock) { rgb_matrix_set_color(30, 0xFF, 0xFF, 0xFF); } + return true; } #endif diff --git a/keyboards/kprepublic/bm68hsrgb/rev1/keymaps/peepeetee/config.h b/keyboards/kprepublic/bm68hsrgb/rev1/keymaps/peepeetee/config.h index a397c570990..37bd8025419 100644 --- a/keyboards/kprepublic/bm68hsrgb/rev1/keymaps/peepeetee/config.h +++ b/keyboards/kprepublic/bm68hsrgb/rev1/keymaps/peepeetee/config.h @@ -62,7 +62,6 @@ // #define RGBLIGHT_HUE_STEP 12 // Units to step when in/decreasing hue // #define RGBLIGHT_SAT_STEP 25 // Units to step when in/decreasing saturation // #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 (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/bm68hsrgb/rev1/keymaps/peepeetee/keymap.c b/keyboards/kprepublic/bm68hsrgb/rev1/keymaps/peepeetee/keymap.c index 0ac5d0c9321..a9bf663c197 100644 --- a/keyboards/kprepublic/bm68hsrgb/rev1/keymaps/peepeetee/keymap.c +++ b/keyboards/kprepublic/bm68hsrgb/rev1/keymaps/peepeetee/keymap.c @@ -288,7 +288,7 @@ void set_layer_color(int layer) { } } -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_user(void) { led_t host_leds = host_keyboard_led_state(); if (host_leds.caps_lock) { @@ -300,4 +300,5 @@ void rgb_matrix_indicators_user(void) { } set_layer_color(get_highest_layer(layer_state)); + return false; } diff --git a/keyboards/kprepublic/bm68hsrgb/rev1/rev1.c b/keyboards/kprepublic/bm68hsrgb/rev1/rev1.c index 4634a662b61..78f4a15818b 100644 --- a/keyboards/kprepublic/bm68hsrgb/rev1/rev1.c +++ b/keyboards/kprepublic/bm68hsrgb/rev1/rev1.c @@ -43,10 +43,13 @@ led_config_t g_led_config = { { } }; //CAPS backlight -__attribute__ ((weak)) -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_kb(void) { + if (!rgb_matrix_indicators_user()) { + return false; + } if (host_keyboard_led_state().caps_lock) { rgb_matrix_set_color(30, 0xFF, 0xFF, 0xFF); } + return true; } #endif diff --git a/keyboards/kprepublic/bm68hsrgb/rev2/config.h b/keyboards/kprepublic/bm68hsrgb/rev2/config.h index add31bbdb4c..3921aa17cc0 100644 --- a/keyboards/kprepublic/bm68hsrgb/rev2/config.h +++ b/keyboards/kprepublic/bm68hsrgb/rev2/config.h @@ -60,7 +60,6 @@ #ifdef RGB_MATRIX_ENABLE -#define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects #define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended #define RGB_MATRIX_KEYPRESSES diff --git a/keyboards/kprepublic/bm68hsrgb/rev2/rev2.c b/keyboards/kprepublic/bm68hsrgb/rev2/rev2.c index 2fb7a6e9bfa..4a13d037d69 100644 --- a/keyboards/kprepublic/bm68hsrgb/rev2/rev2.c +++ b/keyboards/kprepublic/bm68hsrgb/rev2/rev2.c @@ -113,12 +113,13 @@ led_config_t g_led_config = { { } }; -__attribute__ ((weak)) -void rgb_matrix_indicators_user(void) -{ - if (host_keyboard_led_state().caps_lock) - { +bool rgb_matrix_indicators_kb(void) { + if (!rgb_matrix_indicators_user()) { + return false; + } + if (host_keyboard_led_state().caps_lock) { rgb_matrix_set_color(30, 0xFF, 0xFF, 0xFF); } + return true; } #endif diff --git a/keyboards/kprepublic/bm80hsrgb/config.h b/keyboards/kprepublic/bm80hsrgb/config.h index 33b01b850f0..7b2fff263c5 100644 --- a/keyboards/kprepublic/bm80hsrgb/config.h +++ b/keyboards/kprepublic/bm80hsrgb/config.h @@ -55,7 +55,7 @@ along with this program. If not, see . #define RGB_MATRIX_KEYPRESSES // reacts to keypresses //#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_TIMEOUT 0 // number of milliseconds to wait until rgb automatically turns off //#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 diff --git a/keyboards/kprepublic/bm80hsrgb/keymaps/peepeetee/config.h b/keyboards/kprepublic/bm80hsrgb/keymaps/peepeetee/config.h index f2acf22a623..05e7a489dd6 100644 --- a/keyboards/kprepublic/bm80hsrgb/keymaps/peepeetee/config.h +++ b/keyboards/kprepublic/bm80hsrgb/keymaps/peepeetee/config.h @@ -44,7 +44,6 @@ // #define RGB_MATRIX_KEYPRESSES // reacts to keypresses // #define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses) // #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 (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 dd89c1b0f06..7de8c558c76 100644 --- a/keyboards/kprepublic/bm80v2/bm80v2.c +++ b/keyboards/kprepublic/bm80v2/bm80v2.c @@ -18,11 +18,11 @@ 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}, + {0, CS6_SW3, CS5_SW3, CS4_SW3}, + {0, CS6_SW4, CS5_SW4, CS4_SW4}, {0, CS6_SW5, CS5_SW5, CS4_SW5}, {0, CS6_SW6, CS5_SW6, CS4_SW6}, - {0, CS6_SW7, CS5_SW7, CS4_SW7}, + {0, CS6_SW7, CS5_SW7, CS4_SW7}, {0, CS6_SW8, CS5_SW8, CS4_SW8}, {0, CS6_SW9, CS5_SW9, CS4_SW9}, {0, CS21_SW1, CS20_SW1, CS19_SW1}, @@ -34,8 +34,8 @@ const is31_led g_is31_leds[RGB_MATRIX_LED_COUNT] = { {0, CS21_SW7, CS20_SW7, CS19_SW7}, {0, CS21_SW8, CS20_SW8, CS19_SW8}, - - {0, CS9_SW1, CS8_SW1, CS7_SW1}, + + {0, CS9_SW1, CS8_SW1, CS7_SW1}, {0, CS9_SW2, CS8_SW2, CS7_SW2}, {0, CS9_SW3, CS8_SW3, CS7_SW3}, {0, CS9_SW4, CS8_SW4, CS7_SW4}, @@ -44,7 +44,7 @@ const is31_led g_is31_leds[RGB_MATRIX_LED_COUNT] = { {0, CS9_SW7, CS8_SW7, CS7_SW7}, {0, CS9_SW8, CS8_SW8, CS7_SW8}, {0, CS9_SW9, CS8_SW9, CS7_SW9}, - {0,CS24_SW1, CS23_SW1, CS22_SW1}, + {0,CS24_SW1, CS23_SW1, CS22_SW1}, {0,CS24_SW2, CS23_SW2, CS22_SW2}, {0,CS24_SW3, CS23_SW3, CS22_SW3}, {0,CS24_SW4, CS23_SW4, CS22_SW4}, @@ -52,45 +52,45 @@ const is31_led g_is31_leds[RGB_MATRIX_LED_COUNT] = { {0,CS24_SW6, CS23_SW6, CS22_SW6}, {0,CS24_SW7, CS23_SW7, CS22_SW7}, {0,CS24_SW8, CS23_SW8, CS22_SW8}, - - {0, CS12_SW1, CS11_SW1, CS10_SW1}, - {0, CS12_SW2, CS11_SW2, CS10_SW2}, - {0, CS12_SW3, CS11_SW3, CS10_SW3}, - {0, CS12_SW4, CS11_SW4, CS10_SW4}, - {0, CS12_SW5, CS11_SW5, CS10_SW5}, - {0, CS12_SW6, CS11_SW6, CS10_SW6}, - {0, CS12_SW7, CS11_SW7, CS10_SW7}, + + {0, CS12_SW1, CS11_SW1, CS10_SW1}, + {0, CS12_SW2, CS11_SW2, CS10_SW2}, + {0, CS12_SW3, CS11_SW3, CS10_SW3}, + {0, CS12_SW4, CS11_SW4, CS10_SW4}, + {0, CS12_SW5, CS11_SW5, CS10_SW5}, + {0, CS12_SW6, CS11_SW6, CS10_SW6}, + {0, CS12_SW7, CS11_SW7, CS10_SW7}, {0, CS12_SW8, CS11_SW8, CS10_SW8}, {0, CS12_SW9, CS11_SW9, CS10_SW9}, - {0, CS27_SW1, CS26_SW1, CS25_SW1}, - {0, CS27_SW2, CS26_SW2, CS25_SW2}, - {0, CS27_SW3, CS26_SW3, CS25_SW3}, + {0, CS27_SW1, CS26_SW1, CS25_SW1}, + {0, CS27_SW2, CS26_SW2, CS25_SW2}, + {0, CS27_SW3, CS26_SW3, CS25_SW3}, {0, CS27_SW4, CS26_SW4, CS25_SW4}, {0, CS27_SW5, CS26_SW5, CS25_SW5}, - {0, CS27_SW6, CS26_SW6, CS25_SW6}, + {0, CS27_SW6, CS26_SW6, CS25_SW6}, {0, CS27_SW7, CS26_SW7, CS25_SW7}, {0, CS27_SW8, CS26_SW8, CS25_SW8}, - + {0, CS15_SW1, CS14_SW1, CS13_SW1}, {0, CS15_SW2, CS14_SW2, CS13_SW2}, - {0, CS15_SW3, CS14_SW3, CS13_SW3}, - {0, CS15_SW4, CS14_SW4, CS13_SW4}, - {0, CS15_SW5, CS14_SW5, CS13_SW5}, - {0, CS15_SW6, CS14_SW6, CS13_SW6}, - {0, CS15_SW7, CS14_SW7, CS13_SW7}, + {0, CS15_SW3, CS14_SW3, CS13_SW3}, + {0, CS15_SW4, CS14_SW4, CS13_SW4}, + {0, CS15_SW5, CS14_SW5, CS13_SW5}, + {0, CS15_SW6, CS14_SW6, CS13_SW6}, + {0, CS15_SW7, CS14_SW7, CS13_SW7}, {0, CS15_SW8, CS14_SW8, CS13_SW8}, {0, CS15_SW9, CS14_SW9, CS13_SW9}, {0, CS30_SW1, CS29_SW1, CS28_SW1}, {0, CS30_SW2, CS29_SW2, CS28_SW2}, {0, CS30_SW3, CS29_SW3, CS28_SW3}, {0, CS30_SW4, CS29_SW4, CS28_SW4}, - + {0, CS18_SW1, CS17_SW1, CS16_SW1}, - {0, CS18_SW3, CS17_SW3, CS16_SW3}, - {0, CS18_SW4, CS17_SW4, CS16_SW4}, - {0, CS18_SW5, CS17_SW5, CS16_SW5}, - {0, CS18_SW6, CS17_SW6, CS16_SW6}, - {0, CS18_SW7, CS17_SW7, CS16_SW7}, + {0, CS18_SW3, CS17_SW3, CS16_SW3}, + {0, CS18_SW4, CS17_SW4, CS16_SW4}, + {0, CS18_SW5, CS17_SW5, CS16_SW5}, + {0, CS18_SW6, CS17_SW6, CS16_SW6}, + {0, CS18_SW7, CS17_SW7, CS16_SW7}, {0, CS18_SW8, CS17_SW8, CS16_SW8}, {0, CS18_SW9, CS17_SW9, CS16_SW9}, {0, CS33_SW1, CS32_SW1, CS31_SW1}, @@ -101,16 +101,16 @@ const is31_led 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}, - {0, CS3_SW6, CS2_SW6, CS1_SW6}, + {0, CS3_SW3, CS2_SW3, CS1_SW3}, + {0, CS3_SW6, CS2_SW6, CS1_SW6}, {0, CS36_SW2, CS35_SW2, CS34_SW2}, {0, CS36_SW3, CS35_SW3, CS34_SW3}, {0, CS36_SW4, CS35_SW4, CS34_SW4}, {0, CS36_SW5, CS35_SW5, CS34_SW5}, {0, CS36_SW6, CS35_SW6, CS34_SW6}, {0, CS36_SW7, CS35_SW7, CS34_SW7}, - {0, CS36_SW8, CS35_SW8, CS34_SW8} - + {0, CS36_SW8, CS35_SW8, CS34_SW8} + }; led_config_t g_led_config = { { { 0, NO_LED, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }, @@ -133,17 +133,17 @@ led_config_t g_led_config = { { 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1 + 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1 } }; -__attribute__ ((weak)) -void rgb_matrix_indicators_user(void) -{ - if (host_keyboard_led_state().caps_lock) - { +bool rgb_matrix_indicators_kb(void) { + if (!rgb_matrix_indicators_user()) { + return false; + } + if (host_keyboard_led_state().caps_lock) { rgb_matrix_set_color(50, 0xFF, 0xFF, 0xFF); } + return true; } #endif - diff --git a/keyboards/kprepublic/bm80v2_iso/bm80v2_iso.c b/keyboards/kprepublic/bm80v2_iso/bm80v2_iso.c index 8c6eaf5a5b1..e73cffd108d 100644 --- a/keyboards/kprepublic/bm80v2_iso/bm80v2_iso.c +++ b/keyboards/kprepublic/bm80v2_iso/bm80v2_iso.c @@ -18,11 +18,11 @@ 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}, + {0, CS6_SW3, CS5_SW3, CS4_SW3}, + {0, CS6_SW4, CS5_SW4, CS4_SW4}, {0, CS6_SW5, CS5_SW5, CS4_SW5}, {0, CS6_SW6, CS5_SW6, CS4_SW6}, - {0, CS6_SW7, CS5_SW7, CS4_SW7}, + {0, CS6_SW7, CS5_SW7, CS4_SW7}, {0, CS6_SW8, CS5_SW8, CS4_SW8}, {0, CS6_SW9, CS5_SW9, CS4_SW9}, {0, CS21_SW1, CS20_SW1, CS19_SW1}, @@ -34,8 +34,8 @@ const is31_led g_is31_leds[RGB_MATRIX_LED_COUNT] = { {0, CS21_SW7, CS20_SW7, CS19_SW7}, {0, CS21_SW8, CS20_SW8, CS19_SW8}, - - {0, CS9_SW1, CS8_SW1, CS7_SW1}, + + {0, CS9_SW1, CS8_SW1, CS7_SW1}, {0, CS9_SW2, CS8_SW2, CS7_SW2}, {0, CS9_SW3, CS8_SW3, CS7_SW3}, {0, CS9_SW4, CS8_SW4, CS7_SW4}, @@ -44,7 +44,7 @@ const is31_led g_is31_leds[RGB_MATRIX_LED_COUNT] = { {0, CS9_SW7, CS8_SW7, CS7_SW7}, {0, CS9_SW8, CS8_SW8, CS7_SW8}, {0, CS9_SW9, CS8_SW9, CS7_SW9}, - {0,CS24_SW1, CS23_SW1, CS22_SW1}, + {0,CS24_SW1, CS23_SW1, CS22_SW1}, {0,CS24_SW2, CS23_SW2, CS22_SW2}, {0,CS24_SW3, CS23_SW3, CS22_SW3}, {0,CS24_SW4, CS23_SW4, CS22_SW4}, @@ -52,46 +52,46 @@ const is31_led g_is31_leds[RGB_MATRIX_LED_COUNT] = { {0,CS24_SW6, CS23_SW6, CS22_SW6}, {0,CS24_SW7, CS23_SW7, CS22_SW7}, {0,CS24_SW8, CS23_SW8, CS22_SW8}, - - {0, CS12_SW1, CS11_SW1, CS10_SW1}, - {0, CS12_SW2, CS11_SW2, CS10_SW2}, - {0, CS12_SW3, CS11_SW3, CS10_SW3}, - {0, CS12_SW4, CS11_SW4, CS10_SW4}, - {0, CS12_SW5, CS11_SW5, CS10_SW5}, - {0, CS12_SW6, CS11_SW6, CS10_SW6}, - {0, CS12_SW7, CS11_SW7, CS10_SW7}, + + {0, CS12_SW1, CS11_SW1, CS10_SW1}, + {0, CS12_SW2, CS11_SW2, CS10_SW2}, + {0, CS12_SW3, CS11_SW3, CS10_SW3}, + {0, CS12_SW4, CS11_SW4, CS10_SW4}, + {0, CS12_SW5, CS11_SW5, CS10_SW5}, + {0, CS12_SW6, CS11_SW6, CS10_SW6}, + {0, CS12_SW7, CS11_SW7, CS10_SW7}, {0, CS12_SW8, CS11_SW8, CS10_SW8}, {0, CS12_SW9, CS11_SW9, CS10_SW9}, - {0, CS27_SW1, CS26_SW1, CS25_SW1}, - {0, CS27_SW2, CS26_SW2, CS25_SW2}, - {0, CS27_SW3, CS26_SW3, CS25_SW3}, + {0, CS27_SW1, CS26_SW1, CS25_SW1}, + {0, CS27_SW2, CS26_SW2, CS25_SW2}, + {0, CS27_SW3, CS26_SW3, CS25_SW3}, {0, CS27_SW4, CS26_SW4, CS25_SW4}, {0, CS27_SW5, CS26_SW5, CS25_SW5}, - {0, CS27_SW6, CS26_SW6, CS25_SW6}, + {0, CS27_SW6, CS26_SW6, CS25_SW6}, {0, CS27_SW7, CS26_SW7, CS25_SW7}, {0, CS27_SW8, CS26_SW8, CS25_SW8}, - + {0, CS15_SW1, CS14_SW1, CS13_SW1}, {0, CS15_SW2, CS14_SW2, CS13_SW2}, - {0, CS15_SW3, CS14_SW3, CS13_SW3}, - {0, CS15_SW4, CS14_SW4, CS13_SW4}, - {0, CS15_SW5, CS14_SW5, CS13_SW5}, - {0, CS15_SW6, CS14_SW6, CS13_SW6}, - {0, CS15_SW7, CS14_SW7, CS13_SW7}, + {0, CS15_SW3, CS14_SW3, CS13_SW3}, + {0, CS15_SW4, CS14_SW4, CS13_SW4}, + {0, CS15_SW5, CS14_SW5, CS13_SW5}, + {0, CS15_SW6, CS14_SW6, CS13_SW6}, + {0, CS15_SW7, CS14_SW7, CS13_SW7}, {0, CS15_SW8, CS14_SW8, CS13_SW8}, {0, CS15_SW9, CS14_SW9, CS13_SW9}, {0, CS30_SW1, CS29_SW1, CS28_SW1}, {0, CS30_SW2, CS29_SW2, CS28_SW2}, {0, CS30_SW3, CS29_SW3, CS28_SW3}, {0, CS30_SW4, CS29_SW4, CS28_SW4}, - + {0, CS18_SW1, CS17_SW1, CS16_SW1}, {0, CS18_SW2, CS17_SW2, CS16_SW2}, - {0, CS18_SW3, CS17_SW3, CS16_SW3}, - {0, CS18_SW4, CS17_SW4, CS16_SW4}, - {0, CS18_SW5, CS17_SW5, CS16_SW5}, - {0, CS18_SW6, CS17_SW6, CS16_SW6}, - {0, CS18_SW7, CS17_SW7, CS16_SW7}, + {0, CS18_SW3, CS17_SW3, CS16_SW3}, + {0, CS18_SW4, CS17_SW4, CS16_SW4}, + {0, CS18_SW5, CS17_SW5, CS16_SW5}, + {0, CS18_SW6, CS17_SW6, CS16_SW6}, + {0, CS18_SW7, CS17_SW7, CS16_SW7}, {0, CS18_SW8, CS17_SW8, CS16_SW8}, {0, CS18_SW9, CS17_SW9, CS16_SW9}, {0, CS33_SW1, CS32_SW1, CS31_SW1}, @@ -102,16 +102,16 @@ const is31_led 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}, - {0, CS3_SW6, CS2_SW6, CS1_SW6}, + {0, CS3_SW3, CS2_SW3, CS1_SW3}, + {0, CS3_SW6, CS2_SW6, CS1_SW6}, {0, CS36_SW2, CS35_SW2, CS34_SW2}, {0, CS36_SW3, CS35_SW3, CS34_SW3}, {0, CS36_SW4, CS35_SW4, CS34_SW4}, {0, CS36_SW5, CS35_SW5, CS34_SW5}, {0, CS36_SW6, CS35_SW6, CS34_SW6}, {0, CS36_SW7, CS35_SW7, CS34_SW7}, - {0, CS36_SW8, CS35_SW8, CS34_SW8} - + {0, CS36_SW8, CS35_SW8, CS34_SW8} + }; led_config_t g_led_config = { { { 0, NO_LED, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }, @@ -134,17 +134,17 @@ led_config_t g_led_config = { { 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1 + 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1 } }; -__attribute__ ((weak)) -void rgb_matrix_indicators_user(void) -{ - if (host_keyboard_led_state().caps_lock) - { +bool rgb_matrix_indicators_kb(void) { + if (!rgb_matrix_indicators_user()) { + return false; + } + if (host_keyboard_led_state().caps_lock) { rgb_matrix_set_color(50, 0xFF, 0xFF, 0xFF); } + return true; } #endif - diff --git a/keyboards/kprepublic/bm80v2_iso/config.h b/keyboards/kprepublic/bm80v2_iso/config.h index 8231627b36d..f20519553e3 100644 --- a/keyboards/kprepublic/bm80v2_iso/config.h +++ b/keyboards/kprepublic/bm80v2_iso/config.h @@ -28,7 +28,6 @@ /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ #define DEBOUNCE 5 /* disable these deprecated features by default */ -#define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects #define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended #define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_ALL #define RGB_MATRIX_KEYPRESSES diff --git a/keyboards/kprepublic/bm980hsrgb/keymaps/peepeetee/keymap.c b/keyboards/kprepublic/bm980hsrgb/keymaps/peepeetee/keymap.c index 80deedc7b55..5d9de5173c3 100644 --- a/keyboards/kprepublic/bm980hsrgb/keymaps/peepeetee/keymap.c +++ b/keyboards/kprepublic/bm980hsrgb/keymaps/peepeetee/keymap.c @@ -46,7 +46,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_user(void) { led_t host_leds = host_keyboard_led_state(); if (host_leds.num_lock) { @@ -58,4 +58,5 @@ void rgb_matrix_indicators_user(void) { } //set_layer_color(get_highest_layer(layer_state)); + return false; } diff --git a/keyboards/latincompass/latin17rgb/config.h b/keyboards/latincompass/latin17rgb/config.h index 9e6b98ee3a3..68e9debf4eb 100644 --- a/keyboards/latincompass/latin17rgb/config.h +++ b/keyboards/latincompass/latin17rgb/config.h @@ -43,7 +43,6 @@ #define DEBOUNCE 3 #ifdef RGB_MATRIX_ENABLE -# 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_KEYPRESSES # define RGB_MATRIX_FRAMEBUFFER_EFFECTS diff --git a/keyboards/latincompass/latin60rgb/config.h b/keyboards/latincompass/latin60rgb/config.h index 8ac72f7bb33..cca0ca7ddfc 100644 --- a/keyboards/latincompass/latin60rgb/config.h +++ b/keyboards/latincompass/latin60rgb/config.h @@ -42,7 +42,6 @@ #define DEBOUNCE 3 #ifdef RGB_MATRIX_ENABLE -# 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_KEYPRESSES # define RGB_MATRIX_FRAMEBUFFER_EFFECTS diff --git a/keyboards/latincompass/latin60rgb/latin60rgb.c b/keyboards/latincompass/latin60rgb/latin60rgb.c index 131c184124b..5a457246c44 100644 --- a/keyboards/latincompass/latin60rgb/latin60rgb.c +++ b/keyboards/latincompass/latin60rgb/latin60rgb.c @@ -1,18 +1,18 @@ /* Copyright 2021 latincompass - * - * 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 . - */ + * + * 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 "latin60rgb.h" #ifdef RGB_MATRIX_ENABLE @@ -49,9 +49,9 @@ const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { { 0, H_1, G_1, I_1 }, { 0, E_16, D_16, F_16 }, - { 0, E_15, D_15, F_15 }, + { 0, E_15, D_15, F_15 }, { 0, E_14, D_14, F_14 }, - { 0, E_13, D_13, F_13 }, + { 0, E_13, D_13, F_13 }, { 0, E_12, D_12, F_12 }, { 0, E_11, D_11, F_11 }, { 0, E_10, D_10, F_10 }, @@ -91,7 +91,7 @@ led_config_t g_led_config = { { 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5 }, { 4, 3, 2, 1 ,0 } }, { - { 224, 0 }, { 208, 0 }, { 192, 0 }, { 176, 0 }, { 160, 0 }, { 144, 0 }, { 128, 0 }, { 112, 0 }, { 96, 0 }, { 80, 0 }, { 64, 0 }, { 48, 0 }, { 32, 0 }, { 16, 0 }, + { 224, 0 }, { 208, 0 }, { 192, 0 }, { 176, 0 }, { 160, 0 }, { 144, 0 }, { 128, 0 }, { 112, 0 }, { 96, 0 }, { 80, 0 }, { 64, 0 }, { 48, 0 }, { 32, 0 }, { 16, 0 }, { 220, 16 }, { 200, 16 }, { 184, 16 }, { 168, 16 }, { 152, 16 }, { 136, 16 }, { 120, 16 }, { 104, 16 }, { 88, 16 }, { 72, 16 }, { 56, 16 }, { 40, 16 }, { 24, 16 }, { 4, 16 }, { 204, 32 }, { 188, 32 }, { 172, 32 }, { 156, 32 }, { 140, 32 }, { 124, 32 }, { 108, 32 }, { 92, 32 }, { 76, 32 }, { 60, 32 }, { 44, 32 }, { 28, 32 }, { 6, 32 }, { 224, 48 }, { 198, 64 }, { 202, 48 }, { 180, 48 }, { 164, 48 }, { 148, 48 }, { 132, 48 }, { 116, 48 }, { 100, 48 }, { 84, 48 }, { 68, 48 }, { 52, 48 }, { 20, 48 }, { 10, 48 }, @@ -115,10 +115,13 @@ void suspend_wakeup_init_kb(void) { suspend_wakeup_init_user(); } -__attribute__ ((weak)) -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_kb(void) { + if (!rgb_matrix_indicators_user()) { + return false; + } if (host_keyboard_led_state().caps_lock) { rgb_matrix_set_color(41, 0xFF, 0xFF, 0xFF); } + return true; } #endif diff --git a/keyboards/latincompass/latin6rgb/config.h b/keyboards/latincompass/latin6rgb/config.h index ef4695bdb10..1b7a9b9035e 100644 --- a/keyboards/latincompass/latin6rgb/config.h +++ b/keyboards/latincompass/latin6rgb/config.h @@ -44,7 +44,6 @@ #define DEBOUNCE 3 #ifdef RGB_MATRIX_ENABLE -# 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_KEYPRESSES # define RGB_MATRIX_FRAMEBUFFER_EFFECTS diff --git a/keyboards/lazydesigners/dimple/staggered/rev3/keymaps/via/keymap.c b/keyboards/lazydesigners/dimple/staggered/rev3/keymaps/via/keymap.c new file mode 100644 index 00000000000..eb8bc1406b0 --- /dev/null +++ b/keyboards/lazydesigners/dimple/staggered/rev3/keymaps/via/keymap.c @@ -0,0 +1,23 @@ +#include QMK_KEYBOARD_H + +/* THIS FILE WAS GENERATED! + * + * This file was generated by QMK CLI. You may or may not want to + * edit it directly. + */ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_all(KC_GESC, 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_QUOT, KC_ENT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_UP, KC_DOT, KC_LCTL, KC_LGUI, KC_LALT, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT), + [1] = LAYOUT_all(KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO), + [2] = LAYOUT_all(KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO), + [3] = LAYOUT_all(KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO) +}; + +bool led_update_user(led_t led_state) { + if (led_state.caps_lock) { + dimple_led_on(); + } else { + dimple_led_off(); + } + return false; +} diff --git a/keyboards/lazydesigners/dimple/staggered/rev3/keymaps/via/rules.mk b/keyboards/lazydesigners/dimple/staggered/rev3/keymaps/via/rules.mk new file mode 100644 index 00000000000..36b7ba9cbc9 --- /dev/null +++ b/keyboards/lazydesigners/dimple/staggered/rev3/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/lfkeyboards/lfkpad/keymaps/pascalpfeil/config.h b/keyboards/lfkeyboards/lfkpad/keymaps/pascalpfeil/config.h index 0f9ddaef31e..c70c7d88179 100644 --- a/keyboards/lfkeyboards/lfkpad/keymaps/pascalpfeil/config.h +++ b/keyboards/lfkeyboards/lfkpad/keymaps/pascalpfeil/config.h @@ -24,4 +24,4 @@ #define RGB_DISABLE_WHEN_USB_SUSPENDED -#define RGB_DISABLE_TIMEOUT 900000 +#define RGB_MATRIX_TIMEOUT 900000 diff --git a/keyboards/linworks/fave65h/keymaps/default/keymap.c b/keyboards/linworks/fave65h/keymaps/default/keymap.c index 1aa0b7cd733..308c2a9acc1 100644 --- a/keyboards/linworks/fave65h/keymaps/default/keymap.c +++ b/keyboards/linworks/fave65h/keymaps/default/keymap.c @@ -67,9 +67,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_user(void) { led_t host_leds = host_keyboard_led_state(); if (host_leds.caps_lock) { rgb_matrix_set_color(0, 254, 189, 41); // set caps lock led color first number is index, R G B } + return false; } diff --git a/keyboards/linworks/fave65h/keymaps/default_65_ansi_blocker_wkl/keymap.c b/keyboards/linworks/fave65h/keymaps/default_65_ansi_blocker_wkl/keymap.c index 5c7efc6d831..15d9bcb7656 100644 --- a/keyboards/linworks/fave65h/keymaps/default_65_ansi_blocker_wkl/keymap.c +++ b/keyboards/linworks/fave65h/keymaps/default_65_ansi_blocker_wkl/keymap.c @@ -67,9 +67,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_user(void) { led_t host_leds = host_keyboard_led_state(); if (host_leds.caps_lock) { rgb_matrix_set_color(0, 254, 189, 41); // set caps lock led color first number is index, R G B } + return false; } diff --git a/keyboards/linworks/fave65h/keymaps/default_65_ansi_blocker_wkl_split_bs/keymap.c b/keyboards/linworks/fave65h/keymaps/default_65_ansi_blocker_wkl_split_bs/keymap.c index b3a91f7a228..a4264c8412e 100644 --- a/keyboards/linworks/fave65h/keymaps/default_65_ansi_blocker_wkl_split_bs/keymap.c +++ b/keyboards/linworks/fave65h/keymaps/default_65_ansi_blocker_wkl_split_bs/keymap.c @@ -67,9 +67,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_user(void) { led_t host_leds = host_keyboard_led_state(); if (host_leds.caps_lock) { rgb_matrix_set_color(0, 254, 189, 41); // set caps lock led color first number is index, R G B } + return false; } diff --git a/keyboards/linworks/fave65h/keymaps/via/keymap.c b/keyboards/linworks/fave65h/keymaps/via/keymap.c index 8388a60c873..7febf885cee 100644 --- a/keyboards/linworks/fave65h/keymaps/via/keymap.c +++ b/keyboards/linworks/fave65h/keymaps/via/keymap.c @@ -57,9 +57,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_user(void) { led_t host_leds = host_keyboard_led_state(); if (host_leds.caps_lock) { rgb_matrix_set_color(0, 254, 189, 41); // set caps lock led color first number is index, R G B } + return false; } diff --git a/keyboards/linworks/fave84h/fave84h.h b/keyboards/linworks/fave84h/fave84h.h index 39f85c159cf..1d97f972360 100644 --- a/keyboards/linworks/fave84h/fave84h.h +++ b/keyboards/linworks/fave84h/fave84h.h @@ -16,19 +16,54 @@ along with this program. If not, see . #include "quantum.h" +#define ___ KC_NO + +/* + * ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ + * │00 │ │02 │03 │04 │05 │ │06 │07 │08 │09 │ │0A │0B │0C │0D │ │0E │0F │0G │ + * └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┐ ┌───────┐ + * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │3C │ │1E │1F │1G │ │1D │ 2u Backspace + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ├───┼───┼───┤ └───────┘ + * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │2D │ │2E │2F │2G │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ + * │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3D │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐ + * │40 │41 │42 │43 │44 │45 │46 │47 │48 │49 │4A │4C │ │4F │ + * ├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─────┤ ┌───┼───┼───┐ + * │50 │51 │52 │55 │5A │5C │5D │ │5E │5F │5G │ + * └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ + */ + /* FAve 84H Keymap Definitions */ -#define LAYOUT( \ +#define LAYOUT_tkl_ansi_tsangan_split_bs( \ + K00, 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, K3C, 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, K3D, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4C, K4F, \ + K50, K51, K52, K55, K5A, K5C, K5D, K5E, K5F, K5G \ +) { \ + { K00, ___, 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, ___, K4C, ___, ___, K4F, ___ }, \ + { K50, K51, K52, ___, ___, K55, ___, ___, ___, ___, K5A, ___, K5C, K5D, K5E, K5F, K5G } \ +} + +#define LAYOUT_tkl_ansi_tsangan( \ K00, 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, K4C, K4F, \ - K50, K51, K52, K55, K5A, K5C, K5D, K5E, K5F, K5G \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4C, K4F, \ + K50, K51, K52, K55, K5A, K5C, K5D, K5E, K5F, K5G \ ) { \ - { K00, KC_NO, 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, KC_NO, K4C, KC_NO, KC_NO, K4F, KC_NO }, \ - { K50, K51, K52, KC_NO, KC_NO, K55, KC_NO, KC_NO, KC_NO, KC_NO, K5A, KC_NO, K5C, K5D, K5E, K5F, K5G } \ + { K00, ___, 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, ___, K3D, ___, ___, ___ }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, ___, K4C, ___, ___, K4F, ___ }, \ + { K50, K51, K52, ___, ___, K55, ___, ___, ___, ___, K5A, ___, K5C, K5D, K5E, K5F, K5G } \ } diff --git a/keyboards/linworks/fave84h/info.json b/keyboards/linworks/fave84h/info.json index 04b5cabd31a..4447c404f8f 100644 --- a/keyboards/linworks/fave84h/info.json +++ b/keyboards/linworks/fave84h/info.json @@ -8,9 +8,200 @@ "pid": "0x0004", "device_version": "0.0.1" }, + "community_layouts": [ + "tkl_ansi_tsangan" + ], "layouts": { - "LAYOUT": { - "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":2, "y":0}, {"label":"F2", "x":3, "y":0}, {"label":"F3", "x":4, "y":0}, {"label":"F4", "x":5, "y":0}, {"label":"F5", "x":6.5, "y":0}, {"label":"F6", "x":7.5, "y":0}, {"label":"F7", "x":8.5, "y":0}, {"label":"F8", "x":9.5, "y":0}, {"label":"F9", "x":11, "y":0}, {"label":"F10", "x":12, "y":0}, {"label":"F11", "x":13, "y":0}, {"label":"F12", "x":14, "y":0}, {"label":"PrtSc", "x":15.25, "y":0}, {"label":"Scroll Lock", "x":16.25, "y":0}, {"label":"Pause", "x":17.25, "y":0}, {"label":"~", "x":0, "y":1.25}, {"label":"!", "x":1, "y":1.25}, {"label":"@", "x":2, "y":1.25}, {"label":"#", "x":3, "y":1.25}, {"label":"$", "x":4, "y":1.25}, {"label":"%", "x":5, "y":1.25}, {"label":"^", "x":6, "y":1.25}, {"label":"&", "x":7, "y":1.25}, {"label":"*", "x":8, "y":1.25}, {"label":"(", "x":9, "y":1.25}, {"label":")", "x":10, "y":1.25}, {"label":"_", "x":11, "y":1.25}, {"label":"+", "x":12, "y":1.25}, {"label":"Backspace", "x":13, "y":1.25, "w":2}, {"label":"Delete", "x":14, "y":1.25}, {"label":"Insert", "x":15.25, "y":1.25}, {"label":"Home", "x":16.25, "y":1.25}, {"label":"PgUp", "x":17.25, "y":1.25}, {"label":"Tab", "x":0, "y":2.25, "w":1.5}, {"label":"Q", "x":1.5, "y":2.25}, {"label":"W", "x":2.5, "y":2.25}, {"label":"E", "x":3.5, "y":2.25}, {"label":"R", "x":4.5, "y":2.25}, {"label":"T", "x":5.5, "y":2.25}, {"label":"Y", "x":6.5, "y":2.25}, {"label":"U", "x":7.5, "y":2.25}, {"label":"I", "x":8.5, "y":2.25}, {"label":"O", "x":9.5, "y":2.25}, {"label":"P", "x":10.5, "y":2.25}, {"label":"{", "x":11.5, "y":2.25}, {"label":"}", "x":12.5, "y":2.25}, {"label":"|", "x":13.5, "y":2.25, "w":1.5}, {"label":"Delete", "x":15.25, "y":2.25}, {"label":"End", "x":16.25, "y":2.25}, {"label":"PgDn", "x":17.25, "y":2.25}, {"label":"Caps Lock", "x":0, "y":3.25, "w":1.75}, {"label":"A", "x":1.75, "y":3.25}, {"label":"S", "x":2.75, "y":3.25}, {"label":"D", "x":3.75, "y":3.25}, {"label":"F", "x":4.75, "y":3.25}, {"label":"G", "x":5.75, "y":3.25}, {"label":"H", "x":6.75, "y":3.25}, {"label":"J", "x":7.75, "y":3.25}, {"label":"K", "x":8.75, "y":3.25}, {"label":"L", "x":9.75, "y":3.25}, {"label":":", "x":10.75, "y":3.25}, {"label":"\"", "x":11.75, "y":3.25}, {"label":"Enter", "x":12.75, "y":3.25, "w":2.25}, {"label":"Shift", "x":0, "y":4.25, "w":2.25}, {"label":"Z", "x":2.25, "y":4.25}, {"label":"X", "x":3.25, "y":4.25}, {"label":"C", "x":4.25, "y":4.25}, {"label":"V", "x":5.25, "y":4.25}, {"label":"B", "x":6.25, "y":4.25}, {"label":"N", "x":7.25, "y":4.25}, {"label":"M", "x":8.25, "y":4.25}, {"label":"<", "x":9.25, "y":4.25}, {"label":">", "x":10.25, "y":4.25}, {"label":"?", "x":11.25, "y":4.25}, {"label":"Shift", "x":12.25, "y":4.25, "w":2.75}, {"label":"\u2191", "x":16.25, "y":4.25}, {"label":"Ctrl", "x":0, "y":5.25, "w":1.5}, {"label":"Win", "x":1.5, "y":5.25}, {"label":"Alt", "x":2.5, "y":5.25, "w":1.5}, {"x":4, "y":5.25, "w":7}, {"label":"Alt", "x":11, "y":5.25, "w":1.5}, {"label":"Fn", "x":12.5, "y":5.25}, {"label":"Ctrl", "x":13.5, "y":5.25, "w":1.5}, {"label":"\u2190", "x":15.25, "y":5.25}, {"label":"\u2193", "x":16.25, "y":5.25}, {"label":"\u2192", "x":17.25, "y":5.25}] + "LAYOUT_tkl_ansi_tsangan_split_bs": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":2, "y":0}, + {"label":"F2", "x":3, "y":0}, + {"label":"F3", "x":4, "y":0}, + {"label":"F4", "x":5, "y":0}, + {"label":"F5", "x":6.5, "y":0}, + {"label":"F6", "x":7.5, "y":0}, + {"label":"F7", "x":8.5, "y":0}, + {"label":"F8", "x":9.5, "y":0}, + {"label":"F9", "x":11, "y":0}, + {"label":"F10", "x":12, "y":0}, + {"label":"F11", "x":13, "y":0}, + {"label":"F12", "x":14, "y":0}, + {"label":"PrtSc", "x":15.25, "y":0}, + {"label":"Scroll Lock", "x":16.25, "y":0}, + {"label":"Pause", "x":17.25, "y":0}, + + {"label":"`~", "x":0, "y":1.25}, + {"label":"1!", "x":1, "y":1.25}, + {"label":"2@", "x":2, "y":1.25}, + {"label":"3#", "x":3, "y":1.25}, + {"label":"4$", "x":4, "y":1.25}, + {"label":"5%", "x":5, "y":1.25}, + {"label":"6^", "x":6, "y":1.25}, + {"label":"7&", "x":7, "y":1.25}, + {"label":"8*", "x":8, "y":1.25}, + {"label":"9(", "x":9, "y":1.25}, + {"label":"0)", "x":10, "y":1.25}, + {"label":"-_", "x":11, "y":1.25}, + {"label":"=+", "x":12, "y":1.25}, + {"label":"Backspace", "x":13, "y":1.25}, + {"label":"Delete", "x":14, "y":1.25}, + {"label":"Insert", "x":15.25, "y":1.25}, + {"label":"Home", "x":16.25, "y":1.25}, + {"label":"PgUp", "x":17.25, "y":1.25}, + + {"label":"Tab", "x":0, "y":2.25, "w":1.5}, + {"label":"Q", "x":1.5, "y":2.25}, + {"label":"W", "x":2.5, "y":2.25}, + {"label":"E", "x":3.5, "y":2.25}, + {"label":"R", "x":4.5, "y":2.25}, + {"label":"T", "x":5.5, "y":2.25}, + {"label":"Y", "x":6.5, "y":2.25}, + {"label":"U", "x":7.5, "y":2.25}, + {"label":"I", "x":8.5, "y":2.25}, + {"label":"O", "x":9.5, "y":2.25}, + {"label":"P", "x":10.5, "y":2.25}, + {"label":"[{", "x":11.5, "y":2.25}, + {"label":"]}", "x":12.5, "y":2.25}, + {"label":"\\|", "x":13.5, "y":2.25, "w":1.5}, + {"label":"Delete", "x":15.25, "y":2.25}, + {"label":"End", "x":16.25, "y":2.25}, + {"label":"PgDn", "x":17.25, "y":2.25}, + + {"label":"Caps Lock", "x":0, "y":3.25, "w":1.75}, + {"label":"A", "x":1.75, "y":3.25}, + {"label":"S", "x":2.75, "y":3.25}, + {"label":"D", "x":3.75, "y":3.25}, + {"label":"F", "x":4.75, "y":3.25}, + {"label":"G", "x":5.75, "y":3.25}, + {"label":"H", "x":6.75, "y":3.25}, + {"label":"J", "x":7.75, "y":3.25}, + {"label":"K", "x":8.75, "y":3.25}, + {"label":"L", "x":9.75, "y":3.25}, + {"label":";:", "x":10.75, "y":3.25}, + {"label":"'\"", "x":11.75, "y":3.25}, + {"label":"Enter", "x":12.75, "y":3.25, "w":2.25}, + + {"label":"Shift", "x":0, "y":4.25, "w":2.25}, + {"label":"Z", "x":2.25, "y":4.25}, + {"label":"X", "x":3.25, "y":4.25}, + {"label":"C", "x":4.25, "y":4.25}, + {"label":"V", "x":5.25, "y":4.25}, + {"label":"B", "x":6.25, "y":4.25}, + {"label":"N", "x":7.25, "y":4.25}, + {"label":"M", "x":8.25, "y":4.25}, + {"label":",<", "x":9.25, "y":4.25}, + {"label":".>", "x":10.25, "y":4.25}, + {"label":"/?", "x":11.25, "y":4.25}, + {"label":"Shift", "x":12.25, "y":4.25, "w":2.75}, + {"label":"\u2191", "x":16.25, "y":4.25}, + + {"label":"Ctrl", "x":0, "y":5.25, "w":1.5}, + {"label":"Win", "x":1.5, "y":5.25}, + {"label":"Alt", "x":2.5, "y":5.25, "w":1.5}, + {"label":"Space", "x":4, "y":5.25, "w":7}, + {"label":"Alt", "x":11, "y":5.25, "w":1.5}, + {"label":"Fn", "x":12.5, "y":5.25}, + {"label":"Ctrl", "x":13.5, "y":5.25, "w":1.5}, + {"label":"\u2190", "x":15.25, "y":5.25}, + {"label":"\u2193", "x":16.25, "y":5.25}, + {"label":"\u2192", "x":17.25, "y":5.25} + ] + }, + "LAYOUT_tkl_ansi_tsangan": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":2, "y":0}, + {"label":"F2", "x":3, "y":0}, + {"label":"F3", "x":4, "y":0}, + {"label":"F4", "x":5, "y":0}, + {"label":"F5", "x":6.5, "y":0}, + {"label":"F6", "x":7.5, "y":0}, + {"label":"F7", "x":8.5, "y":0}, + {"label":"F8", "x":9.5, "y":0}, + {"label":"F9", "x":11, "y":0}, + {"label":"F10", "x":12, "y":0}, + {"label":"F11", "x":13, "y":0}, + {"label":"F12", "x":14, "y":0}, + {"label":"PrtSc", "x":15.25, "y":0}, + {"label":"Scroll Lock", "x":16.25, "y":0}, + {"label":"Pause", "x":17.25, "y":0}, + + {"label":"`~", "x":0, "y":1.25}, + {"label":"1!", "x":1, "y":1.25}, + {"label":"2@", "x":2, "y":1.25}, + {"label":"3#", "x":3, "y":1.25}, + {"label":"4$", "x":4, "y":1.25}, + {"label":"5%", "x":5, "y":1.25}, + {"label":"6^", "x":6, "y":1.25}, + {"label":"7&", "x":7, "y":1.25}, + {"label":"8*", "x":8, "y":1.25}, + {"label":"9(", "x":9, "y":1.25}, + {"label":"0)", "x":10, "y":1.25}, + {"label":"-_", "x":11, "y":1.25}, + {"label":"=+", "x":12, "y":1.25}, + {"label":"Backspace", "x":13, "y":1.25, "w":2}, + {"label":"Insert", "x":15.25, "y":1.25}, + {"label":"Home", "x":16.25, "y":1.25}, + {"label":"PgUp", "x":17.25, "y":1.25}, + + {"label":"Tab", "x":0, "y":2.25, "w":1.5}, + {"label":"Q", "x":1.5, "y":2.25}, + {"label":"W", "x":2.5, "y":2.25}, + {"label":"E", "x":3.5, "y":2.25}, + {"label":"R", "x":4.5, "y":2.25}, + {"label":"T", "x":5.5, "y":2.25}, + {"label":"Y", "x":6.5, "y":2.25}, + {"label":"U", "x":7.5, "y":2.25}, + {"label":"I", "x":8.5, "y":2.25}, + {"label":"O", "x":9.5, "y":2.25}, + {"label":"P", "x":10.5, "y":2.25}, + {"label":"[{", "x":11.5, "y":2.25}, + {"label":"]}", "x":12.5, "y":2.25}, + {"label":"\\|", "x":13.5, "y":2.25, "w":1.5}, + {"label":"Delete", "x":15.25, "y":2.25}, + {"label":"End", "x":16.25, "y":2.25}, + {"label":"PgDn", "x":17.25, "y":2.25}, + + {"label":"Caps Lock", "x":0, "y":3.25, "w":1.75}, + {"label":"A", "x":1.75, "y":3.25}, + {"label":"S", "x":2.75, "y":3.25}, + {"label":"D", "x":3.75, "y":3.25}, + {"label":"F", "x":4.75, "y":3.25}, + {"label":"G", "x":5.75, "y":3.25}, + {"label":"H", "x":6.75, "y":3.25}, + {"label":"J", "x":7.75, "y":3.25}, + {"label":"K", "x":8.75, "y":3.25}, + {"label":"L", "x":9.75, "y":3.25}, + {"label":";:", "x":10.75, "y":3.25}, + {"label":"'\"", "x":11.75, "y":3.25}, + {"label":"Enter", "x":12.75, "y":3.25, "w":2.25}, + + {"label":"Shift", "x":0, "y":4.25, "w":2.25}, + {"label":"Z", "x":2.25, "y":4.25}, + {"label":"X", "x":3.25, "y":4.25}, + {"label":"C", "x":4.25, "y":4.25}, + {"label":"V", "x":5.25, "y":4.25}, + {"label":"B", "x":6.25, "y":4.25}, + {"label":"N", "x":7.25, "y":4.25}, + {"label":"M", "x":8.25, "y":4.25}, + {"label":",<", "x":9.25, "y":4.25}, + {"label":".>", "x":10.25, "y":4.25}, + {"label":"/?", "x":11.25, "y":4.25}, + {"label":"Shift", "x":12.25, "y":4.25, "w":2.75}, + {"label":"\u2191", "x":16.25, "y":4.25}, + + {"label":"Ctrl", "x":0, "y":5.25, "w":1.5}, + {"label":"Win", "x":1.5, "y":5.25}, + {"label":"Alt", "x":2.5, "y":5.25, "w":1.5}, + {"label":"Space", "x":4, "y":5.25, "w":7}, + {"label":"Alt", "x":11, "y":5.25, "w":1.5}, + {"label":"Fn", "x":12.5, "y":5.25}, + {"label":"Ctrl", "x":13.5, "y":5.25, "w":1.5}, + {"label":"\u2190", "x":15.25, "y":5.25}, + {"label":"\u2193", "x":16.25, "y":5.25}, + {"label":"\u2192", "x":17.25, "y":5.25} + ] } } } diff --git a/keyboards/linworks/fave84h/keymaps/default/keymap.c b/keyboards/linworks/fave84h/keymaps/default/keymap.c index 9f7b1b40ef8..539da9a9dec 100644 --- a/keyboards/linworks/fave84h/keymaps/default/keymap.c +++ b/keyboards/linworks/fave84h/keymaps/default/keymap.c @@ -21,28 +21,29 @@ enum layers { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_LAYER0] = LAYOUT( + [_LAYER0] = LAYOUT_tkl_ansi_tsangan_split_bs( 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_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_DEL, KC_ENT, + 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_DEL, 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, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), - [_LAYER1] = LAYOUT( + [_LAYER1] = LAYOUT_tkl_ansi_tsangan_split_bs( 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, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, 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, EEP_RST, + 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, EEP_RST, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_AUDIO_VOL_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MEDIA_PREV_TRACK, KC_AUDIO_VOL_DOWN, KC_MEDIA_NEXT_TRACK ) }; -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_user(void) { led_t host_leds = host_keyboard_led_state(); if (host_leds.caps_lock) { rgb_matrix_set_color(12, 254, 189, 41); // set caps lock led color first number is index, R G B } + return false; } diff --git a/keyboards/linworks/fave84h/keymaps/via/keymap.c b/keyboards/linworks/fave84h/keymaps/via/keymap.c index c319a5c8584..f741ad4b779 100644 --- a/keyboards/linworks/fave84h/keymaps/via/keymap.c +++ b/keyboards/linworks/fave84h/keymaps/via/keymap.c @@ -23,46 +23,47 @@ enum layers { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_LAYER0] = LAYOUT( + [_LAYER0] = LAYOUT_tkl_ansi_tsangan_split_bs( 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_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_DEL, KC_ENT, + 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_DEL, 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, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), - [_LAYER1] = LAYOUT( + [_LAYER1] = LAYOUT_tkl_ansi_tsangan_split_bs( 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, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, 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, EEP_RST, + 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, EEP_RST, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_AUDIO_VOL_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MEDIA_PREV_TRACK, KC_AUDIO_VOL_DOWN, KC_MEDIA_NEXT_TRACK ), - [_LAYER2] = LAYOUT( + [_LAYER2] = LAYOUT_tkl_ansi_tsangan_split_bs( 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, 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 ), - [_LAYER3] = LAYOUT( + [_LAYER3] = LAYOUT_tkl_ansi_tsangan_split_bs( 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, 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 ) }; -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_user(void) { led_t host_leds = host_keyboard_led_state(); if (host_leds.caps_lock) { rgb_matrix_set_color(12, 254, 189, 41); // set caps lock led color first number is index, R G B } + return false; } diff --git a/keyboards/linworks/fave87h/fave87h.h b/keyboards/linworks/fave87h/fave87h.h index 748dae3ebcd..30e9fc7ac50 100644 --- a/keyboards/linworks/fave87h/fave87h.h +++ b/keyboards/linworks/fave87h/fave87h.h @@ -16,19 +16,54 @@ along with this program. If not, see . #include "quantum.h" +#define ___ KC_NO + +/* + * ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ + * │00 │ │02 │03 │04 │05 │ │06 │07 │08 │09 │ │0A │0B │0C │0D │ │0E │0F │0G │ + * └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┐ ┌───────┐ + * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │3C │ │1E │1F │1G │ │1D │ 2u Backspace + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ├───┼───┼───┤ └───────┘ + * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │2D │ │2E │2F │2G │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ + * │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3D │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐ + * │40 │41 │42 │43 │44 │45 │46 │47 │48 │49 │4A │4C │ │4F │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ + * │50 │51 │52 │55 │59 │5A │5C │5D │ │5E │5F │5G │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ + */ + /* FAve 87H Keymap Definitions */ -#define LAYOUT( \ +#define LAYOUT_tkl_ansi( \ K00, 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, K4C, K4F, \ - K50, K51, K52, K55, K59, K5A, K5C, K5D, K5E, K5F, K5G \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4C, K4F, \ + K50, K51, K52, K55, K59, K5A, K5C, K5D, K5E, K5F, K5G \ ) { \ - { K00, KC_NO, 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, KC_NO, K4C, KC_NO, KC_NO, K4F, KC_NO }, \ - { K50, K51, K52, KC_NO, KC_NO, K55, KC_NO, KC_NO, KC_NO, K59, K5A, KC_NO, K5C, K5D, K5E, K5F, K5G } \ + { K00, ___, 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, ___, K3D, ___, ___, ___ }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, ___, K4C, ___, ___, K4F, ___ }, \ + { K50, K51, K52, ___, ___, K55, ___, ___, ___, K59, K5A, ___, K5C, K5D, K5E, K5F, K5G } \ +} + +#define LAYOUT_tkl_ansi_split_bs( \ + K00, 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, K3C, 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, K3D, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4C, K4F, \ + K50, K51, K52, K55, K59, K5A, K5C, K5D, K5E, K5F, K5G \ +) { \ + { K00, ___, 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, ___, K4C, ___, ___, K4F, ___ }, \ + { K50, K51, K52, ___, ___, K55, ___, ___, ___, K59, K5A, ___, K5C, K5D, K5E, K5F, K5G } \ } diff --git a/keyboards/linworks/fave87h/info.json b/keyboards/linworks/fave87h/info.json index 4035dde5ee4..b6a836e0ec9 100644 --- a/keyboards/linworks/fave87h/info.json +++ b/keyboards/linworks/fave87h/info.json @@ -8,9 +8,205 @@ "pid": "0x0003", "device_version": "0.0.1" }, + "layout_aliases": { + "LAYOUT": "LAYOUT_tkl_ansi_split_bs" + }, + "community_layouts": [ + "tkl_ansi" + ], "layouts": { - "LAYOUT": { - "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":2, "y":0}, {"label":"F2", "x":3, "y":0}, {"label":"F3", "x":4, "y":0}, {"label":"F4", "x":5, "y":0}, {"label":"F5", "x":6.5, "y":0}, {"label":"F6", "x":7.5, "y":0}, {"label":"F7", "x":8.5, "y":0}, {"label":"F8", "x":9.5, "y":0}, {"label":"F9", "x":11, "y":0}, {"label":"F10", "x":12, "y":0}, {"label":"F11", "x":13, "y":0}, {"label":"F12", "x":14, "y":0}, {"label":"PrtSc", "x":15.25, "y":0}, {"label":"Scroll Lock", "x":16.25, "y":0}, {"label":"Pause", "x":17.25, "y":0}, {"label":"~", "x":0, "y":1.25}, {"label":"!", "x":1, "y":1.25}, {"label":"@", "x":2, "y":1.25}, {"label":"#", "x":3, "y":1.25}, {"label":"$", "x":4, "y":1.25}, {"label":"%", "x":5, "y":1.25}, {"label":"^", "x":6, "y":1.25}, {"label":"&", "x":7, "y":1.25}, {"label":"*", "x":8, "y":1.25}, {"label":"(", "x":9, "y":1.25}, {"label":")", "x":10, "y":1.25}, {"label":"_", "x":11, "y":1.25}, {"label":"+", "x":12, "y":1.25}, {"label":"Backspace", "x":13, "y":1.25, "w":2}, {"label":"Delete", "x":14, "y":1.25}, {"label":"Insert", "x":15.25, "y":1.25}, {"label":"Home", "x":16.25, "y":1.25}, {"label":"PgUp", "x":17.25, "y":1.25}, {"label":"Tab", "x":0, "y":2.25, "w":1.5}, {"label":"Q", "x":1.5, "y":2.25}, {"label":"W", "x":2.5, "y":2.25}, {"label":"E", "x":3.5, "y":2.25}, {"label":"R", "x":4.5, "y":2.25}, {"label":"T", "x":5.5, "y":2.25}, {"label":"Y", "x":6.5, "y":2.25}, {"label":"U", "x":7.5, "y":2.25}, {"label":"I", "x":8.5, "y":2.25}, {"label":"O", "x":9.5, "y":2.25}, {"label":"P", "x":10.5, "y":2.25}, {"label":"{", "x":11.5, "y":2.25}, {"label":"}", "x":12.5, "y":2.25}, {"label":"|", "x":13.5, "y":2.25, "w":1.5}, {"label":"Delete", "x":15.25, "y":2.25}, {"label":"End", "x":16.25, "y":2.25}, {"label":"PgDn", "x":17.25, "y":2.25}, {"label":"Caps Lock", "x":0, "y":3.25, "w":1.75}, {"label":"A", "x":1.75, "y":3.25}, {"label":"S", "x":2.75, "y":3.25}, {"label":"D", "x":3.75, "y":3.25}, {"label":"F", "x":4.75, "y":3.25}, {"label":"G", "x":5.75, "y":3.25}, {"label":"H", "x":6.75, "y":3.25}, {"label":"J", "x":7.75, "y":3.25}, {"label":"K", "x":8.75, "y":3.25}, {"label":"L", "x":9.75, "y":3.25}, {"label":":", "x":10.75, "y":3.25}, {"label":"\"", "x":11.75, "y":3.25}, {"label":"Enter", "x":12.75, "y":3.25, "w":2.25}, {"label":"Shift", "x":0, "y":4.25, "w":2.25}, {"label":"Z", "x":2.25, "y":4.25}, {"label":"X", "x":3.25, "y":4.25}, {"label":"C", "x":4.25, "y":4.25}, {"label":"V", "x":5.25, "y":4.25}, {"label":"B", "x":6.25, "y":4.25}, {"label":"N", "x":7.25, "y":4.25}, {"label":"M", "x":8.25, "y":4.25}, {"label":"<", "x":9.25, "y":4.25}, {"label":">", "x":10.25, "y":4.25}, {"label":"?", "x":11.25, "y":4.25}, {"label":"Shift", "x":12.25, "y":4.25, "w":2.75}, {"label":"\u2191", "x":16.25, "y":4.25}, {"label":"Ctrl", "x":0, "y":5.25, "w":1.25}, {"label":"Win", "x":1.25, "y":5.25, "w":1.25}, {"label":"Alt", "x":2.5, "y":5.25, "w":1.25}, {"x":3.75, "y":5.25, "w":6.25}, {"label":"Alt", "x":10, "y":5.25, "w":1.25}, {"label":"Win", "x":11.25, "y":5.25, "w":1.25}, {"label":"Fn", "x":12.5, "y":5.25, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":5.25, "w":1.25}, {"label":"\u2190", "x":15.25, "y":5.25}, {"label":"\u2193", "x":16.25, "y":5.25}, {"label":"\u2192", "x":17.25, "y":5.25}] + "LAYOUT_tkl_ansi": { + "layout": [ + { "label": "Esc", "x": 0, "y": 0 }, + { "label": "F1", "x": 2, "y": 0 }, + { "label": "F2", "x": 3, "y": 0 }, + { "label": "F3", "x": 4, "y": 0 }, + { "label": "F4", "x": 5, "y": 0 }, + { "label": "F5", "x": 6.5, "y": 0 }, + { "label": "F6", "x": 7.5, "y": 0 }, + { "label": "F7", "x": 8.5, "y": 0 }, + { "label": "F8", "x": 9.5, "y": 0 }, + { "label": "F9", "x": 11, "y": 0 }, + { "label": "F10", "x": 12, "y": 0 }, + { "label": "F11", "x": 13, "y": 0 }, + { "label": "F12", "x": 14, "y": 0 }, + { "label": "PrtSc", "x": 15.25, "y": 0 }, + { "label": "Scroll Lock", "x": 16.25, "y": 0 }, + { "label": "Pause", "x": 17.25, "y": 0 }, + + { "label": "~", "x": 0, "y": 1.25 }, + { "label": "!", "x": 1, "y": 1.25 }, + { "label": "@", "x": 2, "y": 1.25 }, + { "label": "#", "x": 3, "y": 1.25 }, + { "label": "$", "x": 4, "y": 1.25 }, + { "label": "%", "x": 5, "y": 1.25 }, + { "label": "^", "x": 6, "y": 1.25 }, + { "label": "&", "x": 7, "y": 1.25 }, + { "label": "*", "x": 8, "y": 1.25 }, + { "label": "(", "x": 9, "y": 1.25 }, + { "label": ")", "x": 10, "y": 1.25 }, + { "label": "_", "x": 11, "y": 1.25 }, + { "label": "+", "x": 12, "y": 1.25 }, + { "label": "Backspace", "x": 13, "y": 1.25, "w": 2 }, + { "label": "Insert", "x": 15.25, "y": 1.25 }, + { "label": "Home", "x": 16.25, "y": 1.25 }, + { "label": "PgUp", "x": 17.25, "y": 1.25 }, + + { "label": "Tab", "x": 0, "y": 2.25, "w": 1.5 }, + { "label": "Q", "x": 1.5, "y": 2.25 }, + { "label": "W", "x": 2.5, "y": 2.25 }, + { "label": "E", "x": 3.5, "y": 2.25 }, + { "label": "R", "x": 4.5, "y": 2.25 }, + { "label": "T", "x": 5.5, "y": 2.25 }, + { "label": "Y", "x": 6.5, "y": 2.25 }, + { "label": "U", "x": 7.5, "y": 2.25 }, + { "label": "I", "x": 8.5, "y": 2.25 }, + { "label": "O", "x": 9.5, "y": 2.25 }, + { "label": "P", "x": 10.5, "y": 2.25 }, + { "label": "{", "x": 11.5, "y": 2.25 }, + { "label": "}", "x": 12.5, "y": 2.25 }, + { "label": "|", "x": 13.5, "y": 2.25, "w": 1.5 }, + { "label": "Delete", "x": 15.25, "y": 2.25 }, + { "label": "End", "x": 16.25, "y": 2.25 }, + { "label": "PgDn", "x": 17.25, "y": 2.25 }, + + { "label": "Caps Lock", "x": 0, "y": 3.25, "w": 1.75 }, + { "label": "A", "x": 1.75, "y": 3.25 }, + { "label": "S", "x": 2.75, "y": 3.25 }, + { "label": "D", "x": 3.75, "y": 3.25 }, + { "label": "F", "x": 4.75, "y": 3.25 }, + { "label": "G", "x": 5.75, "y": 3.25 }, + { "label": "H", "x": 6.75, "y": 3.25 }, + { "label": "J", "x": 7.75, "y": 3.25 }, + { "label": "K", "x": 8.75, "y": 3.25 }, + { "label": "L", "x": 9.75, "y": 3.25 }, + { "label": ":", "x": 10.75, "y": 3.25 }, + { "label": "\"", "x": 11.75, "y": 3.25 }, + { "label": "Enter", "x": 12.75, "y": 3.25, "w": 2.25 }, + + { "label": "Shift", "x": 0, "y": 4.25, "w": 2.25 }, + { "label": "Z", "x": 2.25, "y": 4.25 }, + { "label": "X", "x": 3.25, "y": 4.25 }, + { "label": "C", "x": 4.25, "y": 4.25 }, + { "label": "V", "x": 5.25, "y": 4.25 }, + { "label": "B", "x": 6.25, "y": 4.25 }, + { "label": "N", "x": 7.25, "y": 4.25 }, + { "label": "M", "x": 8.25, "y": 4.25 }, + { "label": "<", "x": 9.25, "y": 4.25 }, + { "label": ">", "x": 10.25, "y": 4.25 }, + { "label": "?", "x": 11.25, "y": 4.25 }, + { "label": "Shift", "x": 12.25, "y": 4.25, "w": 2.75 }, + { "label": "\u2191", "x": 16.25, "y": 4.25 }, + + { "label": "Ctrl", "x": 0, "y": 5.25, "w": 1.25 }, + { "label": "Win", "x": 1.25, "y": 5.25, "w": 1.25 }, + { "label": "Alt", "x": 2.5, "y": 5.25, "w": 1.25 }, + { "x": 3.75, "y": 5.25, "w": 6.25 }, + { "label": "Alt", "x": 10, "y": 5.25, "w": 1.25 }, + { "label": "Win", "x": 11.25, "y": 5.25, "w": 1.25 }, + { "label": "Fn", "x": 12.5, "y": 5.25, "w": 1.25 }, + { "label": "Ctrl", "x": 13.75, "y": 5.25, "w": 1.25 }, + { "label": "\u2190", "x": 15.25, "y": 5.25 }, + { "label": "\u2193", "x": 16.25, "y": 5.25 }, + { "label": "\u2192", "x": 17.25, "y": 5.25 } + ] + }, + "LAYOUT_tkl_ansi_split_bs": { + "layout": [ + { "label": "Esc", "x": 0, "y": 0 }, + { "label": "F1", "x": 2, "y": 0 }, + { "label": "F2", "x": 3, "y": 0 }, + { "label": "F3", "x": 4, "y": 0 }, + { "label": "F4", "x": 5, "y": 0 }, + { "label": "F5", "x": 6.5, "y": 0 }, + { "label": "F6", "x": 7.5, "y": 0 }, + { "label": "F7", "x": 8.5, "y": 0 }, + { "label": "F8", "x": 9.5, "y": 0 }, + { "label": "F9", "x": 11, "y": 0 }, + { "label": "F10", "x": 12, "y": 0 }, + { "label": "F11", "x": 13, "y": 0 }, + { "label": "F12", "x": 14, "y": 0 }, + { "label": "PrtSc", "x": 15.25, "y": 0 }, + { "label": "Scroll Lock", "x": 16.25, "y": 0 }, + { "label": "Pause", "x": 17.25, "y": 0 }, + + { "label": "~", "x": 0, "y": 1.25 }, + { "label": "!", "x": 1, "y": 1.25 }, + { "label": "@", "x": 2, "y": 1.25 }, + { "label": "#", "x": 3, "y": 1.25 }, + { "label": "$", "x": 4, "y": 1.25 }, + { "label": "%", "x": 5, "y": 1.25 }, + { "label": "^", "x": 6, "y": 1.25 }, + { "label": "&", "x": 7, "y": 1.25 }, + { "label": "*", "x": 8, "y": 1.25 }, + { "label": "(", "x": 9, "y": 1.25 }, + { "label": ")", "x": 10, "y": 1.25 }, + { "label": "_", "x": 11, "y": 1.25 }, + { "label": "+", "x": 12, "y": 1.25 }, + { "label": "Backspace", "x": 13, "y": 1.25 }, + { "label": "Delete", "x": 14, "y": 1.25 }, + { "label": "Insert", "x": 15.25, "y": 1.25 }, + { "label": "Home", "x": 16.25, "y": 1.25 }, + { "label": "PgUp", "x": 17.25, "y": 1.25 }, + + { "label": "Tab", "x": 0, "y": 2.25, "w": 1.5 }, + { "label": "Q", "x": 1.5, "y": 2.25 }, + { "label": "W", "x": 2.5, "y": 2.25 }, + { "label": "E", "x": 3.5, "y": 2.25 }, + { "label": "R", "x": 4.5, "y": 2.25 }, + { "label": "T", "x": 5.5, "y": 2.25 }, + { "label": "Y", "x": 6.5, "y": 2.25 }, + { "label": "U", "x": 7.5, "y": 2.25 }, + { "label": "I", "x": 8.5, "y": 2.25 }, + { "label": "O", "x": 9.5, "y": 2.25 }, + { "label": "P", "x": 10.5, "y": 2.25 }, + { "label": "{", "x": 11.5, "y": 2.25 }, + { "label": "}", "x": 12.5, "y": 2.25 }, + { "label": "|", "x": 13.5, "y": 2.25, "w": 1.5 }, + { "label": "Delete", "x": 15.25, "y": 2.25 }, + { "label": "End", "x": 16.25, "y": 2.25 }, + { "label": "PgDn", "x": 17.25, "y": 2.25 }, + + { "label": "Caps Lock", "x": 0, "y": 3.25, "w": 1.75 }, + { "label": "A", "x": 1.75, "y": 3.25 }, + { "label": "S", "x": 2.75, "y": 3.25 }, + { "label": "D", "x": 3.75, "y": 3.25 }, + { "label": "F", "x": 4.75, "y": 3.25 }, + { "label": "G", "x": 5.75, "y": 3.25 }, + { "label": "H", "x": 6.75, "y": 3.25 }, + { "label": "J", "x": 7.75, "y": 3.25 }, + { "label": "K", "x": 8.75, "y": 3.25 }, + { "label": "L", "x": 9.75, "y": 3.25 }, + { "label": ":", "x": 10.75, "y": 3.25 }, + { "label": "\"", "x": 11.75, "y": 3.25 }, + { "label": "Enter", "x": 12.75, "y": 3.25, "w": 2.25 }, + + { "label": "Shift", "x": 0, "y": 4.25, "w": 2.25 }, + { "label": "Z", "x": 2.25, "y": 4.25 }, + { "label": "X", "x": 3.25, "y": 4.25 }, + { "label": "C", "x": 4.25, "y": 4.25 }, + { "label": "V", "x": 5.25, "y": 4.25 }, + { "label": "B", "x": 6.25, "y": 4.25 }, + { "label": "N", "x": 7.25, "y": 4.25 }, + { "label": "M", "x": 8.25, "y": 4.25 }, + { "label": "<", "x": 9.25, "y": 4.25 }, + { "label": ">", "x": 10.25, "y": 4.25 }, + { "label": "?", "x": 11.25, "y": 4.25 }, + { "label": "Shift", "x": 12.25, "y": 4.25, "w": 2.75 }, + { "label": "\u2191", "x": 16.25, "y": 4.25 }, + + { "label": "Ctrl", "x": 0, "y": 5.25, "w": 1.25 }, + { "label": "Win", "x": 1.25, "y": 5.25, "w": 1.25 }, + { "label": "Alt", "x": 2.5, "y": 5.25, "w": 1.25 }, + { "x": 3.75, "y": 5.25, "w": 6.25 }, + { "label": "Alt", "x": 10, "y": 5.25, "w": 1.25 }, + { "label": "Win", "x": 11.25, "y": 5.25, "w": 1.25 }, + { "label": "Fn", "x": 12.5, "y": 5.25, "w": 1.25 }, + { "label": "Ctrl", "x": 13.75, "y": 5.25, "w": 1.25 }, + { "label": "\u2190", "x": 15.25, "y": 5.25 }, + { "label": "\u2193", "x": 16.25, "y": 5.25 }, + { "label": "\u2192", "x": 17.25, "y": 5.25 } + ] } } } diff --git a/keyboards/linworks/fave87h/keymaps/default/keymap.c b/keyboards/linworks/fave87h/keymaps/default/keymap.c index d5d64a12309..e8f4da2c1eb 100644 --- a/keyboards/linworks/fave87h/keymaps/default/keymap.c +++ b/keyboards/linworks/fave87h/keymaps/default/keymap.c @@ -25,7 +25,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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_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_DEL, KC_ENT, + 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_DEL, 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, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), @@ -34,15 +34,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, 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, EEP_RST, + 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, EEP_RST, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_AUDIO_VOL_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MEDIA_PREV_TRACK, KC_AUDIO_VOL_DOWN, KC_MEDIA_NEXT_TRACK ) }; -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_user(void) { led_t host_leds = host_keyboard_led_state(); if (host_leds.caps_lock) { rgb_matrix_set_color(12, 254, 189, 41); // set caps lock led color first number is index, R G B } + return false; } diff --git a/keyboards/linworks/fave87h/keymaps/via/keymap.c b/keyboards/linworks/fave87h/keymaps/via/keymap.c index b62268e9a47..fc00ec17251 100644 --- a/keyboards/linworks/fave87h/keymaps/via/keymap.c +++ b/keyboards/linworks/fave87h/keymaps/via/keymap.c @@ -27,7 +27,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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_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_DEL, KC_ENT, + 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_DEL, 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, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), @@ -36,7 +36,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, 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, EEP_RST, + 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, EEP_RST, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_AUDIO_VOL_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MEDIA_PREV_TRACK, KC_AUDIO_VOL_DOWN, KC_MEDIA_NEXT_TRACK ), @@ -45,7 +45,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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, 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 ), @@ -54,15 +54,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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, 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 ) }; -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_user(void) { led_t host_leds = host_keyboard_led_state(); if (host_leds.caps_lock) { rgb_matrix_set_color(12, 254, 189, 41); // set caps lock led color first number is index, R G B } + return false; } diff --git a/keyboards/marksard/rhymestone/rev1/config.h b/keyboards/marksard/rhymestone/rev1/config.h index 1fe692c383e..de915827c4d 100644 --- a/keyboards/marksard/rhymestone/rev1/config.h +++ b/keyboards/marksard/rhymestone/rev1/config.h @@ -84,7 +84,6 @@ along with this program. If not, see . #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 (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/massdrop/alt/config_led.c b/keyboards/massdrop/alt/config_led.c index 85ae67878b6..963282db1ee 100644 --- a/keyboards/massdrop/alt/config_led.c +++ b/keyboards/massdrop/alt/config_led.c @@ -50,8 +50,12 @@ led_config_t g_led_config = { { #ifdef USB_LED_INDICATOR_ENABLE -void rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { +bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { + if (!rgb_matrix_indicators_advanced_user(led_min, led_max)) { + return false; + } md_rgb_matrix_indicators_advanced(led_min, led_max); + return true; } #endif // USB_LED_INDICATOR_ENABLE diff --git a/keyboards/massdrop/alt/keymaps/pregame/config.h b/keyboards/massdrop/alt/keymaps/pregame/config.h index 42ddb1f4f39..2d13d2c5c93 100644 --- a/keyboards/massdrop/alt/keymaps/pregame/config.h +++ b/keyboards/massdrop/alt/keymaps/pregame/config.h @@ -87,7 +87,6 @@ // #define RGBLIGHT_HUE_STEP 12 // Units to step when in/decreasing hue // #define RGBLIGHT_SAT_STEP 25 // Units to step when in/decreasing saturation // #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 (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/massdrop/alt/keymaps/pregame/keymap.c b/keyboards/massdrop/alt/keymaps/pregame/keymap.c index 6a78f075fbc..c91e557b50a 100644 --- a/keyboards/massdrop/alt/keymaps/pregame/keymap.c +++ b/keyboards/massdrop/alt/keymaps/pregame/keymap.c @@ -199,11 +199,12 @@ void set_layer_color(int layer) { } } } -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_user(void) { if (g_suspend_state || disable_layer_color || rgb_matrix_get_flags() == LED_FLAG_NONE || rgb_matrix_get_flags() == LED_FLAG_UNDERGLOW) { return; } set_layer_color(get_highest_layer(layer_state)); + return false; } diff --git a/keyboards/massdrop/ctrl/config_led.c b/keyboards/massdrop/ctrl/config_led.c index bd708c2cb8c..50daa68e753 100644 --- a/keyboards/massdrop/ctrl/config_led.c +++ b/keyboards/massdrop/ctrl/config_led.c @@ -73,8 +73,12 @@ led_config_t g_led_config = { { #ifdef USB_LED_INDICATOR_ENABLE -void rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { +bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { + if (!rgb_matrix_indicators_advanced_user(led_min, led_max)) { + return false; + } md_rgb_matrix_indicators_advanced(led_min, led_max); + return true; } #endif // USB_LED_INDICATOR_ENABLE diff --git a/keyboards/massdrop/ctrl/keymaps/endgame/config.h b/keyboards/massdrop/ctrl/keymaps/endgame/config.h index 8b28e72d5c5..4b702a11102 100644 --- a/keyboards/massdrop/ctrl/keymaps/endgame/config.h +++ b/keyboards/massdrop/ctrl/keymaps/endgame/config.h @@ -47,7 +47,6 @@ // #define RGBLIGHT_HUE_STEP 12 // Units to step when in/decreasing hue // #define RGBLIGHT_SAT_STEP 25 // Units to step when in/decreasing saturation // #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 (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/massdrop/ctrl/keymaps/endgame/config_led.c b/keyboards/massdrop/ctrl/keymaps/endgame/config_led.c index ec32b652da3..72446506d9f 100644 --- a/keyboards/massdrop/ctrl/keymaps/endgame/config_led.c +++ b/keyboards/massdrop/ctrl/keymaps/endgame/config_led.c @@ -73,9 +73,10 @@ led_config_t g_led_config = { { #ifdef USB_LED_INDICATOR_ENABLE -void rgb_matrix_indicators_kb(void) +bool rgb_matrix_indicators_kb(void) { md_rgb_matrix_indicators(); + return rgb_matrix_indicators_user(); } #endif // USB_LED_INDICATOR_ENABLE diff --git a/keyboards/massdrop/ctrl/keymaps/endgame/keymap.c b/keyboards/massdrop/ctrl/keymaps/endgame/keymap.c index 4c9c73c3fdf..846fc7070ce 100644 --- a/keyboards/massdrop/ctrl/keymaps/endgame/keymap.c +++ b/keyboards/massdrop/ctrl/keymaps/endgame/keymap.c @@ -51,7 +51,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { TD(TD_CTRL_TERM), TD(TD_LGUI_ML), KC_LALT, KC_SPC, KC_RALT, TT(_FL), TD(TD_APP_YL), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), [_FL] = LAYOUT( - _______, DM_PLY1, DM_PLY2, _______, _______, DM_REC1, DM_REC2, _______, _______, DM_RSTP, _______, KC_WAKE, KC_SLEP, KC_MUTE, TERM_ON, TERM_OFF, + _______, DM_PLY1, DM_PLY2, _______, _______, DM_REC1, DM_REC2, _______, _______, DM_RSTP, _______, KC_WAKE, KC_SLEP, KC_MUTE, _______, _______, _______, _______, TG(_ML), TG(_GL), TG(_VL), TG(_YL), _______, _______, _______, ROUT_FM, ROUT_TG, ROUT_VD, ROUT_VI, _______, KC_MSTP, KC_MPLY, KC_VOLU, RGB_M_P, RGB_SPD, RGB_VAI, RGB_SPI, RGB_HUI, RGB_SAI, _______, U_T_AUTO, U_T_AGCR, _______, _______, _______, _______, _______, KC_MPRV, KC_MNXT, KC_VOLD, _______, RGB_RMOD,RGB_VAD, RGB_MOD, RGB_HUD, RGB_SAD, _______, _______, _______, _______, _______, _______, _______, @@ -372,13 +372,14 @@ void set_layer_color(int layer) { } } -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_user(void) { if (disable_layer_color || rgb_matrix_get_flags() == LED_FLAG_NONE || rgb_matrix_get_flags() == LED_FLAG_UNDERGLOW) { return; } set_layer_color(get_highest_layer(layer_state)); + return false; } /* This is a test function for Raw HID, which is currently not implemented for this keyboard */ diff --git a/keyboards/massdrop/ctrl/keymaps/foxx1337/config.h b/keyboards/massdrop/ctrl/keymaps/foxx1337/config.h index 68ed5f76099..f8e0e9fc7dc 100644 --- a/keyboards/massdrop/ctrl/keymaps/foxx1337/config.h +++ b/keyboards/massdrop/ctrl/keymaps/foxx1337/config.h @@ -32,7 +32,6 @@ // #define RGBLIGHT_HUE_STEP 12 // Units to step when in/decreasing hue // #define RGBLIGHT_SAT_STEP 25 // Units to step when in/decreasing saturation // #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 (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/massdrop/ctrl/keymaps/matthewrobo/config.h b/keyboards/massdrop/ctrl/keymaps/matthewrobo/config.h index 78641763c2e..b8dddc9ec54 100644 --- a/keyboards/massdrop/ctrl/keymaps/matthewrobo/config.h +++ b/keyboards/massdrop/ctrl/keymaps/matthewrobo/config.h @@ -65,7 +65,6 @@ along with this program. If not, see . // #define RGBLIGHT_HUE_STEP 12 // Units to step when in/decreasing hue // #define RGBLIGHT_SAT_STEP 25 // Units to step when in/decreasing saturation // #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 (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/massdrop/ctrl/keymaps/matthewrobo/config_led.c b/keyboards/massdrop/ctrl/keymaps/matthewrobo/config_led.c index a1c1dec5431..732a60a6c55 100644 --- a/keyboards/massdrop/ctrl/keymaps/matthewrobo/config_led.c +++ b/keyboards/massdrop/ctrl/keymaps/matthewrobo/config_led.c @@ -91,7 +91,10 @@ led_config_t g_led_config = { { // clang-format on # ifdef USB_LED_INDICATOR_ENABLE -void rgb_matrix_indicators_kb(void) { md_rgb_matrix_indicators(); } +bool rgb_matrix_indicators_kb(void) { + md_rgb_matrix_indicators(); + return rgb_matrix_indicators_user(); +} # endif // USB_LED_INDICATOR_ENABLE -#endif \ No newline at end of file +#endif diff --git a/keyboards/massdrop/ctrl/keymaps/matthewrobo/keymap.c b/keyboards/massdrop/ctrl/keymaps/matthewrobo/keymap.c index 406263cee5c..0ea23ccb4c3 100644 --- a/keyboards/massdrop/ctrl/keymaps/matthewrobo/keymap.c +++ b/keyboards/massdrop/ctrl/keymaps/matthewrobo/keymap.c @@ -19,7 +19,7 @@ along with this program. If not, see . #include "keymap.h" // clang-format off const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_KL] = LAYOUT( + [_KL] = 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_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, @@ -99,7 +99,7 @@ const uint8_t PROGMEM ledmap[][RGB_MATRIX_LED_COUNT][3] = { _______, GOLD, CORAL, _______, _______, _______, _______, RED, {1,0,0}, CYAN, M9B59B5, _______, _______, _______, RED, _______, _______, _______, RED, PINK, YELLOW, GREEN, CREAM, _______, _______, _______, _______, _______, _______, _______, _______, WHITE, _______, _______, CORAL, _______, CORAL - }, + }, }; # undef _______ # define _______ KC_TRNS @@ -278,9 +278,10 @@ void set_layer_color(int layer) { } } -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_user(void) { if (g_suspend_state || disable_layer_color || rgb_matrix_get_flags() == LED_FLAG_NONE || rgb_matrix_get_flags() == LED_FLAG_UNDERGLOW) { return; } set_layer_color(get_highest_layer(layer_state)); + return false; } diff --git a/keyboards/massdrop/ctrl/keymaps/xanimos/config.h b/keyboards/massdrop/ctrl/keymaps/xanimos/config.h index e5799e308ef..59feed09a91 100644 --- a/keyboards/massdrop/ctrl/keymaps/xanimos/config.h +++ b/keyboards/massdrop/ctrl/keymaps/xanimos/config.h @@ -63,7 +63,6 @@ // #define RGBLIGHT_HUE_STEP 12 // Units to step when in/decreasing hue // #define RGBLIGHT_SAT_STEP 25 // Units to step when in/decreasing saturation // #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 (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/massdrop/ctrl/keymaps/xanimos/config_led.c b/keyboards/massdrop/ctrl/keymaps/xanimos/config_led.c index 650b31477cb..d83318de833 100644 --- a/keyboards/massdrop/ctrl/keymaps/xanimos/config_led.c +++ b/keyboards/massdrop/ctrl/keymaps/xanimos/config_led.c @@ -1,18 +1,18 @@ /* Copyright 2022 Daniel Weeks (@xanimos) - * - * 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 . - */ + * + * 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 RGB_MATRIX_ENABLE #include "ctrl.h" @@ -89,8 +89,9 @@ led_config_t g_led_config = { { #ifdef USB_LED_INDICATOR_ENABLE -void rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { +bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { md_rgb_matrix_indicators_advanced(led_min, led_max); + return rgb_matrix_indicators_advanced_user(led_min, led_max); } #endif // USB_LED_INDICATOR_ENABLE diff --git a/keyboards/massdrop/ctrl/keymaps/xanimos/keymap.c b/keyboards/massdrop/ctrl/keymaps/xanimos/keymap.c index 2b6515fc977..561171a04a2 100644 --- a/keyboards/massdrop/ctrl/keymaps/xanimos/keymap.c +++ b/keyboards/massdrop/ctrl/keymaps/xanimos/keymap.c @@ -1,18 +1,18 @@ /* Copyright 2022 Daniel Weeks (@xanimos) - * - * 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 . - */ + * + * 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 "keymap.h" @@ -334,7 +334,7 @@ void set_layer_color(int layer) { float f = (float)rgb_matrix_config.hsv.v / UINT8_MAX; rgb_matrix_set_color(i, f * rgb.r, f * rgb.g, f * rgb.b); continue; - } + } if(layer == _FL && i <= 4 && i >= 1) { continue; // Leave RGB for F1-F4 of function layer to adjust RGB settings } @@ -343,13 +343,14 @@ void set_layer_color(int layer) { } } -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_user(void) { if (disable_layer_color || rgb_matrix_get_flags() == LED_FLAG_NONE || rgb_matrix_get_flags() == LED_FLAG_UNDERGLOW) { return; } set_layer_color(get_highest_layer(layer_state)); + return false; } diff --git a/keyboards/mechlovin/adelais/rgb_led/rev1/config.h b/keyboards/mechlovin/adelais/rgb_led/rev1/config.h index bc025120a6e..76ebe5fd3aa 100644 --- a/keyboards/mechlovin/adelais/rgb_led/rev1/config.h +++ b/keyboards/mechlovin/adelais/rgb_led/rev1/config.h @@ -8,7 +8,6 @@ #define RGB_MATRIX_KEYPRESSES // reacts to keypresses #define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses) #define RGB_MATRIX_FRAMEBUFFER_EFFECTS -#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) #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 220 // limits maximum brightness of LEDs to 200 out of 255. If not defined maximum brightness is set to 255 diff --git a/keyboards/mechlovin/adelais/rgb_led/rev2/config.h b/keyboards/mechlovin/adelais/rgb_led/rev2/config.h index 2a434f1d5d4..0928e892139 100644 --- a/keyboards/mechlovin/adelais/rgb_led/rev2/config.h +++ b/keyboards/mechlovin/adelais/rgb_led/rev2/config.h @@ -27,7 +27,6 @@ #define RGB_MATRIX_KEYPRESSES // reacts to keypresses #define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses) #define RGB_MATRIX_FRAMEBUFFER_EFFECTS -#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) #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 diff --git a/keyboards/mechlovin/adelais/rgb_led/rev2/rev2.c b/keyboards/mechlovin/adelais/rgb_led/rev2/rev2.c index edbbe39c4b6..20b4b691148 100644 --- a/keyboards/mechlovin/adelais/rgb_led/rev2/rev2.c +++ b/keyboards/mechlovin/adelais/rgb_led/rev2/rev2.c @@ -68,7 +68,7 @@ const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { {1, C1_5, C2_5, C3_5}, //D160-C10-42 {1, C4_5, C5_5, C7_6}, //D166-C11-43 {1, C1_6, C2_6, C3_6}, //D173-C12-44 - {1, C4_6, C5_6, C6_6}, //D178-C13-45 + {1, C4_6, C5_6, C6_6}, //D178-C13-45 {1, C2_9, C3_9, C4_9}, //D80-D0-46 {1, C1_9, C3_10, C4_10}, //D89-D2-47 @@ -78,7 +78,7 @@ const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { {1, C1_12, C2_12, C3_12}, //D82-D8-51 {1, C1_13, C2_13, C3_13}, //D91-D10-52 {1, C4_13, C5_13, C7_14}, //D96-D11-53 - {1, C1_15, C2_15, C3_15}, //D87-D14-54 + {1, C1_15, C2_15, C3_15}, //D87-D14-54 {1, C4_15, C5_15, C6_15}, //D87-D14-55 {1, C1_16, C2_16, C3_16}, //D87-D14-56 {1, C4_16, C5_16, C6_16}, //D87-D14-57 @@ -107,20 +107,24 @@ led_config_t g_led_config = { { {0,0}, { 17, 0}, { 34, 0 }, { 51, 0 }, { 69, 0}, { 86, 0}, {100, 0}, {103, 0}, { 120, 0}, { 138, 0}, { 155, 0}, { 172, 0}, { 189, 0}, {207, 0}, {215, 0}, {223, 0}, {224, 0}, {0,16}, { 17, 16}, { 34,16 }, { 51,16 }, { 69,16}, { 86,16}, {103,16}, { 120,16}, { 138,16}, { 155,16}, { 172,16}, { 189,16}, {207, 16}, {215, 16}, {224,16}, {0,32}, { 17, 32}, { 34,32 }, { 51,32 }, { 69,32}, { 86,32}, {103,32}, { 120,32}, { 138,32}, { 155,32}, { 172,32}, { 189,32}, {207, 32}, {224,32}, - { 17, 48}, { 34,48 }, { 51,48 }, { 69,48}, { 86,48}, {103,48}, { 120,48}, { 138,48}, { 155,48}, { 172,48}, { 189,48}, {207, 48}, {215, 48}, {224,48}, {224,48}, - { 17, 64}, { 51,64 }, { 86,64}, { 103,64}, { 138,64}, { 172,64}, {224, 64}, + { 17, 48}, { 34,48 }, { 51,48 }, { 69,48}, { 86,48}, {103,48}, { 120,48}, { 138,48}, { 155,48}, { 172,48}, { 189,48}, {207, 48}, {215, 48}, {224,48}, {224,48}, + { 17, 64}, { 51,64 }, { 86,64}, { 103,64}, { 138,64}, { 172,64}, {224, 64}, }, { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, } }; -void rgb_matrix_indicators_user(void) { - if (host_keyboard_led_state().caps_lock) { - rgb_matrix_set_color(33, 255, 255, 255); - } +bool rgb_matrix_indicators_kb(void) { + if (!rgb_matrix_indicators_user()) { + return false; + } + if (host_keyboard_led_state().caps_lock) { + rgb_matrix_set_color(33, 255, 255, 255); + } + return true; } @@ -168,4 +172,4 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { } } return true; -} \ No newline at end of file +} diff --git a/keyboards/mechlovin/adelais/rgb_led/rev3/config.h b/keyboards/mechlovin/adelais/rgb_led/rev3/config.h index 9149dfe97a9..65a189b9de4 100644 --- a/keyboards/mechlovin/adelais/rgb_led/rev3/config.h +++ b/keyboards/mechlovin/adelais/rgb_led/rev3/config.h @@ -56,7 +56,6 @@ along with this program. If not, see . #define RGB_MATRIX_KEYPRESSES // reacts to keypresses #define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses) #define RGB_MATRIX_FRAMEBUFFER_EFFECTS -#define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects #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_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended diff --git a/keyboards/mechlovin/adelais/rgb_led/rev3/rev3.c b/keyboards/mechlovin/adelais/rgb_led/rev3/rev3.c index cf334a962e0..ad9c7c4db00 100644 --- a/keyboards/mechlovin/adelais/rgb_led/rev3/rev3.c +++ b/keyboards/mechlovin/adelais/rgb_led/rev3/rev3.c @@ -78,7 +78,7 @@ const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { {0, CS21_SW8, CS20_SW8, CS19_SW8}, /* D109-K3B-56 */ {0, CS24_SW2, CS23_SW2, CS22_SW2}, /* D105-K3D-57 */ {0, CS24_SW8, CS23_SW8, CS22_SW8}, /* D103-K3E-58 */ - + {0, CS3_SW1, CS2_SW1, CS1_SW1}, /* D163-K40-59 */ {0, CS6_SW1, CS5_SW1, CS4_SW1}, /* D147-K42-60 */ {0, CS9_SW1, CS8_SW1, CS7_SW1}, /* D137-K44-61 */ @@ -101,21 +101,25 @@ led_config_t g_led_config = { {0,0}, { 17, 0}, { 34, 0 }, { 51, 0 }, { 69, 0}, { 86, 0}, {100, 0}, {103, 0}, { 120, 0}, { 138, 0}, { 155, 0}, { 172, 0}, { 189, 0}, {207, 0}, {215, 0}, {224, 0}, {0,16}, { 17, 16}, { 34,16 }, { 51,16 }, { 69,16}, { 86,16}, {103,16}, { 120,16}, { 138,16}, { 155,16}, { 172,16}, { 189,16}, {207, 16}, {215, 16}, {224,16}, {0,32}, { 17, 32}, { 34,32 }, { 51,32 }, { 69,32}, { 86,32}, {103,32}, { 120,32}, { 138,32}, { 155,32}, { 172,32}, { 189,32}, {207, 32}, {224,32}, - { 17, 48}, { 34,48 }, { 51,48 }, { 69,48}, { 86,48}, {103,48}, { 120,48}, { 138,48}, { 155,48}, { 172,48}, { 189,48}, {207, 48}, {215, 48}, {224,48}, - { 17, 64}, { 51,64 }, { 86,64}, { 103,64}, { 138,64}, { 172,64}, {224, 64}, + { 17, 48}, { 34,48 }, { 51,48 }, { 69,48}, { 86,48}, {103,48}, { 120,48}, { 138,48}, { 155,48}, { 172,48}, { 189,48}, {207, 48}, {215, 48}, {224,48}, + { 17, 64}, { 51,64 }, { 86,64}, { 103,64}, { 138,64}, { 172,64}, {224, 64}, }, { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - } + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + } }; -__attribute__((weak)) void rgb_matrix_indicators_user(void) { - if (host_keyboard_led_state().caps_lock) { - rgb_matrix_set_color(32, 255, 255, 255); - } +bool rgb_matrix_indicators_kb(void) { + if (!rgb_matrix_indicators_user()) { + return false; + } + if (host_keyboard_led_state().caps_lock) { + rgb_matrix_set_color(32, 255, 255, 255); + } + return true; } diff --git a/keyboards/mechlovin/delphine/rgb_led/config.h b/keyboards/mechlovin/delphine/rgb_led/config.h index 1782c4f497e..155d526f3f0 100644 --- a/keyboards/mechlovin/delphine/rgb_led/config.h +++ b/keyboards/mechlovin/delphine/rgb_led/config.h @@ -34,7 +34,6 @@ #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 // #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) #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 diff --git a/keyboards/mechlovin/delphine/rgb_led/rgb_led.c b/keyboards/mechlovin/delphine/rgb_led/rgb_led.c index 448f7156fda..3e02735cdf3 100644 --- a/keyboards/mechlovin/delphine/rgb_led/rgb_led.c +++ b/keyboards/mechlovin/delphine/rgb_led/rgb_led.c @@ -60,12 +60,12 @@ led_config_t g_led_config = { { }, { //LED Index to Physical Positon - { 0, 0}, { 75, 0}, {149, 0}, {224, 0}, - { 0, 13}, { 75, 13}, {149, 13}, {224, 13}, - { 0, 25}, { 75, 25}, {149, 25}, {224, 25}, - { 0, 38}, { 75, 38}, {149, 38}, {224, 38}, - { 0, 51}, { 75, 51}, {149, 51}, {224, 51}, - { 0, 64}, { 37, 64}, { 75, 64}, {149, 64}, {224, 64}, + { 0, 0}, { 75, 0}, {149, 0}, {224, 0}, + { 0, 13}, { 75, 13}, {149, 13}, {224, 13}, + { 0, 25}, { 75, 25}, {149, 25}, {224, 25}, + { 0, 38}, { 75, 38}, {149, 38}, {224, 38}, + { 0, 51}, { 75, 51}, {149, 51}, {224, 51}, + { 0, 64}, { 37, 64}, { 75, 64}, {149, 64}, {224, 64}, }, { 4, 4, 4, 4, 4, 1, 1, 4, @@ -75,10 +75,14 @@ led_config_t g_led_config = { { 4, 0, 1, 1, 4, } }; -void rgb_matrix_indicators_kb(void) { - if (host_keyboard_led_state().num_lock) { - rgb_matrix_set_color(4, 255, 255, 255); - } +bool rgb_matrix_indicators_kb(void) { + if (!rgb_matrix_indicators_user()) { + return false; + } + if (host_keyboard_led_state().num_lock) { + rgb_matrix_set_color(4, 255, 255, 255); + } + return true; } __attribute__((weak)) @@ -117,7 +121,7 @@ layer_state_t layer_state_set_user(layer_state_t state) { bool process_record_kb(uint16_t keycode, keyrecord_t *record) { if (!process_record_user(keycode, record)) { return false; } - + if (record->event.pressed) { switch(keycode) { #ifdef RGB_MATRIX_ENABLE diff --git a/keyboards/mechlovin/foundation/foundation.h b/keyboards/mechlovin/foundation/foundation.h index d9d317deb7a..0444817bbf3 100644 --- a/keyboards/mechlovin/foundation/foundation.h +++ b/keyboards/mechlovin/foundation/foundation.h @@ -31,7 +31,7 @@ { K40, K41, K42, K43, KC_NO, KC_NO, KC_NO, K47, KC_NO, KC_NO, KC_NO, K4B, K4C, K4D, K4E, K4F, K4G, K4H }, \ } -#define LAYOUT_tkl_nofrow_ansi( \ +#define LAYOUT_ansi( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, K0H, \ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, K1H, \ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E, \ @@ -45,7 +45,7 @@ { K40, K41, K42, K43, KC_NO, KC_NO, KC_NO, K47, KC_NO, KC_NO, KC_NO, K4B, K4C, K4D, K4E, K4F, K4G, K4H }, \ } -#define LAYOUT_tkl_nofrow_iso( \ +#define LAYOUT_iso( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, K0H, \ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1F, K1G, K1H, \ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, \ diff --git a/keyboards/mechlovin/foundation/info.json b/keyboards/mechlovin/foundation/info.json index aa4148a40a4..584a774367f 100644 --- a/keyboards/mechlovin/foundation/info.json +++ b/keyboards/mechlovin/foundation/info.json @@ -8,16 +8,267 @@ "pid": "0x0180", "device_version": "0.0.2" }, + "layout_aliases": { + "LAYOUT_tkl_nofrow_ansi": "LAYOUT_ansi", + "LAYOUT_tkl_nofrow_iso": "LAYOUT_iso" + }, "layouts": { "LAYOUT_all": { - "layout": [{"label":"0,0", "x":0.5, "y":0}, {"label":"0,1", "x":2.25, "y":0}, {"label":"0,2", "x":3.25, "y":0}, {"label":"0,3", "x":4.25, "y":0}, {"label":"0,4", "x":5.25, "y":0}, {"label":"0,5", "x":6.25, "y":0}, {"label":"0,6", "x":7.25, "y":0}, {"label":"0,7", "x":8.25, "y":0}, {"label":"0,8", "x":9.25, "y":0}, {"label":"0,9", "x":10.25, "y":0}, {"label":"0,10", "x":11.25, "y":0}, {"label":"0,11", "x":12.25, "y":0}, {"label":"0,12", "x":13.25, "y":0}, {"label":"0,13", "x":14.25, "y":0}, {"label":"0,14", "x":15.25, "y":0}, {"label":"2,15", "x":16.25, "y":0}, {"label":"0,15", "x":17.5, "y":0}, {"label":"0,16", "x":18.5, "y":0}, {"label":"0,17", "x":19.5, "y":0}, {"label":"1,0", "x":0.5, "y":1}, {"label":"1,1", "x":2.25, "y":1, "w":1.5}, {"label":"1,2", "x":3.75, "y":1}, {"label":"1,3", "x":4.75, "y":1}, {"label":"1,4", "x":5.75, "y":1}, {"label":"1,5", "x":6.75, "y":1}, {"label":"1,6", "x":7.75, "y":1}, {"label":"1,7", "x":8.75, "y":1}, {"label":"1,8", "x":9.75, "y":1}, {"label":"1,9", "x":10.75, "y":1}, {"label":"1,10", "x":11.75, "y":1}, {"label":"1,11", "x":12.75, "y":1}, {"label":"1,12", "x":13.75, "y":1}, {"label":"1,13", "x":14.75, "y":1}, {"label":"1,14", "x":15.75, "y":1, "w":1.5}, {"label":"1,15", "x":17.5, "y":1}, {"label":"1,16", "x":18.5, "y":1}, {"label":"1,17", "x":19.5, "y":1}, {"label":"2,0", "x":0.5, "y":2}, {"label":"2,1", "x":2.25, "y":2, "w":1.75}, {"label":"2,2", "x":4, "y":2}, {"label":"2,3", "x":5, "y":2}, {"label":"2,4", "x":6, "y":2}, {"label":"2,5", "x":7, "y":2}, {"label":"2,6", "x":8, "y":2}, {"label":"2,7", "x":9, "y":2}, {"label":"2,8", "x":10, "y":2}, {"label":"2,9", "x":11, "y":2}, {"label":"2,10", "x":12, "y":2}, {"label":"2,11", "x":13, "y":2}, {"label":"2,12", "x":14, "y":2}, {"label":"2,13", "x":15, "y":2}, {"label":"2,14", "x":16, "y":2, "w":1.25}, {"label":"3,0", "x":0.5, "y":3}, {"label":"3,1", "x":2.25, "y":3, "w":1.25}, {"label":"3,2", "x":3.5, "y":3}, {"label":"3,3", "x":4.5, "y":3}, {"label":"3,4", "x":5.5, "y":3}, {"label":"3,5", "x":6.5, "y":3}, {"label":"3,6", "x":7.5, "y":3}, {"label":"3,7", "x":8.5, "y":3}, {"label":"3,8", "x":9.5, "y":3}, {"label":"3,9", "x":10.5, "y":3}, {"label":"3,10", "x":11.5, "y":3}, {"label":"3,11", "x":12.5, "y":3}, {"label":"3,12", "x":13.5, "y":3}, {"label":"3,13", "x":14.5, "y":3, "w":1.75}, {"label":"3,14", "x":16.25, "y":3}, {"label":"3,16", "x":18.5, "y":3}, {"label":"4,0", "x":0.5, "y":4}, {"label":"4,1", "x":2.25, "y":4, "w":1.25}, {"label":"4,2", "x":3.5, "y":4, "w":1.25}, {"label":"4,3", "x":4.75, "y":4, "w":1.25}, {"label":"4,7", "x":6, "y":4, "w":6.25}, {"label":"4,11", "x":12.25, "y":4, "w":1.25}, {"label":"4,12", "x":13.5, "y":4, "w":1.25}, {"label":"4,13", "x":14.75, "y":4, "w":1.25}, {"label":"4,14", "x":16, "y":4, "w":1.25}, {"label":"4,15", "x":17.5, "y":4}, {"label":"4,16", "x":18.5, "y":4}, {"label":"4,17", "x":19.5, "y":4}] + "layout": [ + { "label": "0,0", "x": 0, "y": 0 }, + { "label": "0,1", "x": 1.5, "y": 0 }, + { "label": "0,2", "x": 2.5, "y": 0 }, + { "label": "0,3", "x": 3.5, "y": 0 }, + { "label": "0,4", "x": 4.5, "y": 0 }, + { "label": "0,5", "x": 5.5, "y": 0 }, + { "label": "0,6", "x": 6.5, "y": 0 }, + { "label": "0,7", "x": 7.5, "y": 0 }, + { "label": "0,8", "x": 8.5, "y": 0 }, + { "label": "0,9", "x": 9.5, "y": 0 }, + { "label": "0,10", "x": 10.5, "y": 0 }, + { "label": "0,11", "x": 11.5, "y": 0 }, + { "label": "0,12", "x": 12.5, "y": 0 }, + { "label": "0,13", "x": 13.5, "y": 0 }, + { "label": "0,14", "x": 14.5, "y": 0 }, + { "label": "2,15", "x": 15.5, "y": 0 }, + { "label": "0,15", "x": 17, "y": 0 }, + { "label": "0,16", "x": 18, "y": 0 }, + { "label": "0,17", "x": 19, "y": 0 }, + + { "label": "1,0", "x": 0, "y": 1 }, + { "label": "1,1", "x": 1.5, "y": 1, "w": 1.5 }, + { "label": "1,2", "x": 3, "y": 1 }, + { "label": "1,3", "x": 4, "y": 1 }, + { "label": "1,4", "x": 5, "y": 1 }, + { "label": "1,5", "x": 6, "y": 1 }, + { "label": "1,6", "x": 7, "y": 1 }, + { "label": "1,7", "x": 8, "y": 1 }, + { "label": "1,8", "x": 9, "y": 1 }, + { "label": "1,9", "x": 10, "y": 1 }, + { "label": "1,10", "x": 11, "y": 1 }, + { "label": "1,11", "x": 12, "y": 1 }, + { "label": "1,12", "x": 13, "y": 1 }, + { "label": "1,13", "x": 14, "y": 1 }, + { "label": "1,14", "x": 15, "y": 1, "w": 1.5 }, + { "label": "1,15", "x": 17, "y": 1 }, + { "label": "1,16", "x": 18, "y": 1 }, + { "label": "1,17", "x": 19, "y": 1 }, + + { "label": "2,0", "x": 0, "y": 2 }, + { "label": "2,1", "x": 1.5, "y": 2, "w": 1.75 }, + { "label": "2,2", "x": 3.25, "y": 2 }, + { "label": "2,3", "x": 4.25, "y": 2 }, + { "label": "2,4", "x": 5.25, "y": 2 }, + { "label": "2,5", "x": 6.25, "y": 2 }, + { "label": "2,6", "x": 7.25, "y": 2 }, + { "label": "2,7", "x": 8.25, "y": 2 }, + { "label": "2,8", "x": 9.25, "y": 2 }, + { "label": "2,9", "x": 10.25, "y": 2 }, + { "label": "2,10", "x": 11.25, "y": 2 }, + { "label": "2,11", "x": 12.25, "y": 2 }, + { "label": "2,12", "x": 13.25, "y": 2 }, + { "label": "2,13", "x": 14.25, "y": 2 }, + { "label": "2,14", "x": 15.25, "y": 2, "w": 1.25 }, + + { "label": "3,0", "x": 0, "y": 3 }, + { "label": "3,1", "x": 1.5, "y": 3, "w": 1.25 }, + { "label": "3,2", "x": 2.75, "y": 3 }, + { "label": "3,3", "x": 3.75, "y": 3 }, + { "label": "3,4", "x": 4.75, "y": 3 }, + { "label": "3,5", "x": 5.75, "y": 3 }, + { "label": "3,6", "x": 6.75, "y": 3 }, + { "label": "3,7", "x": 7.75, "y": 3 }, + { "label": "3,8", "x": 8.75, "y": 3 }, + { "label": "3,9", "x": 9.75, "y": 3 }, + { "label": "3,10", "x": 10.75, "y": 3 }, + { "label": "3,11", "x": 11.75, "y": 3 }, + { "label": "3,12", "x": 12.75, "y": 3 }, + { "label": "3,13", "x": 13.75, "y": 3, "w": 1.75 }, + { "label": "3,14", "x": 15.5, "y": 3 }, + { "label": "3,16", "x": 18, "y": 3 }, + + { "label": "4,0", "x": 0, "y": 4 }, + { "label": "4,1", "x": 1.5, "y": 4, "w": 1.25 }, + { "label": "4,2", "x": 2.75, "y": 4, "w": 1.25 }, + { "label": "4,3", "x": 4, "y": 4, "w": 1.25 }, + { "label": "4,7", "x": 5.25, "y": 4, "w": 6.25 }, + { "label": "4,11", "x": 11.5, "y": 4, "w": 1.25 }, + { "label": "4,12", "x": 12.75, "y": 4, "w": 1.25 }, + { "label": "4,13", "x": 14, "y": 4, "w": 1.25 }, + { "label": "4,14", "x": 15.25, "y": 4, "w": 1.25 }, + { "label": "4,15", "x": 17, "y": 4 }, + { "label": "4,16", "x": 18, "y": 4 }, + { "label": "4,17", "x": 19, "y": 4 } + ] }, - "LAYOUT_tkl_nofrow_ansi": { - "layout": [{"label":"0,0", "x":0.5, "y":0}, {"label":"0,1", "x":2.25, "y":0}, {"label":"0,2", "x":3.25, "y":0}, {"label":"0,3", "x":4.25, "y":0}, {"label":"0,4", "x":5.25, "y":0}, {"label":"0,5", "x":6.25, "y":0}, {"label":"0,6", "x":7.25, "y":0}, {"label":"0,7", "x":8.25, "y":0}, {"label":"0,8", "x":9.25, "y":0}, {"label":"0,9", "x":10.25, "y":0}, {"label":"0,10", "x":11.25, "y":0}, {"label":"0,11", "x":12.25, "y":0}, {"label":"0,12", "x":13.25, "y":0}, {"label":"0,13", "x":14.25, "y":0}, {"label":"0,14", "x":15.25, "y":0, "w":2}, {"label":"0,15", "x":17.5, "y":0}, {"label":"0,16", "x":18.5, "y":0}, {"label":"0,17", "x":19.5, "y":0}, {"label":"1,0", "x":0.5, "y":1}, {"label":"1,1", "x":2.25, "y":1, "w":1.5}, {"label":"1,2", "x":3.75, "y":1}, {"label":"1,3", "x":4.75, "y":1}, {"label":"1,4", "x":5.75, "y":1}, {"label":"1,5", "x":6.75, "y":1}, {"label":"1,6", "x":7.75, "y":1}, {"label":"1,7", "x":8.75, "y":1}, {"label":"1,8", "x":9.75, "y":1}, {"label":"1,9", "x":10.75, "y":1}, {"label":"1,10", "x":11.75, "y":1}, {"label":"1,11", "x":12.75, "y":1}, {"label":"1,12", "x":13.75, "y":1}, {"label":"1,13", "x":14.75, "y":1}, {"label":"1,14", "x":15.75, "y":1, "w":1.5}, {"label":"1,15", "x":17.5, "y":1}, {"label":"1,16", "x":18.5, "y":1}, {"label":"1,17", "x":19.5, "y":1}, {"label":"2,0", "x":0.5, "y":2}, {"label":"2,1", "x":2.25, "y":2, "w":1.75}, {"label":"2,2", "x":4, "y":2}, {"label":"2,3", "x":5, "y":2}, {"label":"2,4", "x":6, "y":2}, {"label":"2,5", "x":7, "y":2}, {"label":"2,6", "x":8, "y":2}, {"label":"2,7", "x":9, "y":2}, {"label":"2,8", "x":10, "y":2}, {"label":"2,9", "x":11, "y":2}, {"label":"2,10", "x":12, "y":2}, {"label":"2,11", "x":13, "y":2}, {"label":"2,12", "x":14, "y":2}, {"label":"2,14", "x":15, "y":2, "w":2.25}, {"label":"3,0", "x":0.5, "y":3}, {"label":"3,1", "x":2.25, "y":3, "w":2.25}, {"label":"3,3", "x":4.5, "y":3}, {"label":"3,4", "x":5.5, "y":3}, {"label":"3,5", "x":6.5, "y":3}, {"label":"3,6", "x":7.5, "y":3}, {"label":"3,7", "x":8.5, "y":3}, {"label":"3,8", "x":9.5, "y":3}, {"label":"3,9", "x":10.5, "y":3}, {"label":"3,10", "x":11.5, "y":3}, {"label":"3,11", "x":12.5, "y":3}, {"label":"3,12", "x":13.5, "y":3}, {"label":"3,13", "x":14.5, "y":3, "w":2.75}, {"label":"3,16", "x":18.5, "y":3}, {"label":"4,0", "x":0.5, "y":4}, {"label":"4,1", "x":2.25, "y":4, "w":1.25}, {"label":"4,2", "x":3.5, "y":4, "w":1.25}, {"label":"4,3", "x":4.75, "y":4, "w":1.25}, {"label":"4,7", "x":6, "y":4, "w":6.25}, {"label":"4,11", "x":12.25, "y":4, "w":1.25}, {"label":"4,12", "x":13.5, "y":4, "w":1.25}, {"label":"4,13", "x":14.75, "y":4, "w":1.25}, {"label":"4,14", "x":16, "y":4, "w":1.25}, {"label":"4,15", "x":17.5, "y":4}, {"label":"4,16", "x":18.5, "y":4}, {"label":"4,17", "x":19.5, "y":4}] + "LAYOUT_ansi": { + "layout": [ + { "label": "0,0", "x": 0, "y": 0 }, + { "label": "0,1", "x": 1.5, "y": 0 }, + { "label": "0,2", "x": 2.5, "y": 0 }, + { "label": "0,3", "x": 3.5, "y": 0 }, + { "label": "0,4", "x": 4.5, "y": 0 }, + { "label": "0,5", "x": 5.5, "y": 0 }, + { "label": "0,6", "x": 6.5, "y": 0 }, + { "label": "0,7", "x": 7.5, "y": 0 }, + { "label": "0,8", "x": 8.5, "y": 0 }, + { "label": "0,9", "x": 9.5, "y": 0 }, + { "label": "0,10", "x": 10.5, "y": 0 }, + { "label": "0,11", "x": 11.5, "y": 0 }, + { "label": "0,12", "x": 12.5, "y": 0 }, + { "label": "0,13", "x": 13.5, "y": 0 }, + { "label": "0,14", "x": 14.5, "y": 0, "w": 2 }, + { "label": "0,15", "x": 17, "y": 0 }, + { "label": "0,16", "x": 18, "y": 0 }, + { "label": "0,17", "x": 19, "y": 0 }, + + { "label": "1,0", "x": 0, "y": 1 }, + { "label": "1,1", "x": 1.5, "y": 1, "w": 1.5 }, + { "label": "1,2", "x": 3, "y": 1 }, + { "label": "1,3", "x": 4, "y": 1 }, + { "label": "1,4", "x": 5, "y": 1 }, + { "label": "1,5", "x": 6, "y": 1 }, + { "label": "1,6", "x": 7, "y": 1 }, + { "label": "1,7", "x": 8, "y": 1 }, + { "label": "1,8", "x": 9, "y": 1 }, + { "label": "1,9", "x": 10, "y": 1 }, + { "label": "1,10", "x": 11, "y": 1 }, + { "label": "1,11", "x": 12, "y": 1 }, + { "label": "1,12", "x": 13, "y": 1 }, + { "label": "1,13", "x": 14, "y": 1 }, + { "label": "1,14", "x": 15, "y": 1, "w": 1.5 }, + { "label": "1,15", "x": 17, "y": 1 }, + { "label": "1,16", "x": 18, "y": 1 }, + { "label": "1,17", "x": 19, "y": 1 }, + + { "label": "2,0", "x": 0, "y": 2 }, + { "label": "2,1", "x": 1.5, "y": 2, "w": 1.75 }, + { "label": "2,2", "x": 3.25, "y": 2 }, + { "label": "2,3", "x": 4.25, "y": 2 }, + { "label": "2,4", "x": 5.25, "y": 2 }, + { "label": "2,5", "x": 6.25, "y": 2 }, + { "label": "2,6", "x": 7.25, "y": 2 }, + { "label": "2,7", "x": 8.25, "y": 2 }, + { "label": "2,8", "x": 9.25, "y": 2 }, + { "label": "2,9", "x": 10.25, "y": 2 }, + { "label": "2,10", "x": 11.25, "y": 2 }, + { "label": "2,11", "x": 12.25, "y": 2 }, + { "label": "2,12", "x": 13.25, "y": 2 }, + { "label": "2,14", "x": 14.25, "y": 2, "w": 2.25 }, + + { "label": "3,0", "x": 0, "y": 3 }, + { "label": "3,1", "x": 1.5, "y": 3, "w": 2.25 }, + { "label": "3,3", "x": 3.75, "y": 3 }, + { "label": "3,4", "x": 4.75, "y": 3 }, + { "label": "3,5", "x": 5.75, "y": 3 }, + { "label": "3,6", "x": 6.75, "y": 3 }, + { "label": "3,7", "x": 7.75, "y": 3 }, + { "label": "3,8", "x": 8.75, "y": 3 }, + { "label": "3,9", "x": 9.75, "y": 3 }, + { "label": "3,10", "x": 10.75, "y": 3 }, + { "label": "3,11", "x": 11.75, "y": 3 }, + { "label": "3,12", "x": 12.75, "y": 3 }, + { "label": "3,13", "x": 13.75, "y": 3, "w": 2.75 }, + { "label": "3,16", "x": 18, "y": 3 }, + + { "label": "4,0", "x": 0, "y": 4 }, + { "label": "4,1", "x": 1.5, "y": 4, "w": 1.25 }, + { "label": "4,2", "x": 2.75, "y": 4, "w": 1.25 }, + { "label": "4,3", "x": 4, "y": 4, "w": 1.25 }, + { "label": "4,7", "x": 5.25, "y": 4, "w": 6.25 }, + { "label": "4,11", "x": 11.5, "y": 4, "w": 1.25 }, + { "label": "4,12", "x": 12.75, "y": 4, "w": 1.25 }, + { "label": "4,13", "x": 14, "y": 4, "w": 1.25 }, + { "label": "4,14", "x": 15.25, "y": 4, "w": 1.25 }, + { "label": "4,15", "x": 17, "y": 4 }, + { "label": "4,16", "x": 18, "y": 4 }, + { "label": "4,17", "x": 19, "y": 4 } + ] }, - "LAYOUT_tkl_nofrow_iso": { - "layout": [{"label":"0,0", "x":0, "y":0}, {"label":"0,1", "x":1.75, "y":0}, {"label":"0,2", "x":2.75, "y":0}, {"label":"0,3", "x":3.75, "y":0}, {"label":"0,4", "x":4.75, "y":0}, {"label":"0,5", "x":5.75, "y":0}, {"label":"0,6", "x":6.75, "y":0}, {"label":"0,7", "x":7.75, "y":0}, {"label":"0,8", "x":8.75, "y":0}, {"label":"0,9", "x":9.75, "y":0}, {"label":"0,10", "x":10.75, "y":0}, {"label":"0,11", "x":11.75, "y":0}, {"label":"0,12", "x":12.75, "y":0}, {"label":"0,13", "x":13.75, "y":0}, {"label":"0,14", "x":14.75, "y":0, "w":2}, {"label":"0,15", "x":17, "y":0}, {"label":"0,16", "x":18, "y":0}, {"label":"0,17", "x":19, "y":0}, {"label":"1,0", "x":0, "y":1}, {"label":"1,1", "x":1.75, "y":1, "w":1.5}, {"label":"1,2", "x":3.25, "y":1}, {"label":"1,3", "x":4.25, "y":1}, {"label":"1,4", "x":5.25, "y":1}, {"label":"1,5", "x":6.25, "y":1}, {"label":"1,6", "x":7.25, "y":1}, {"label":"1,7", "x":8.25, "y":1}, {"label":"1,8", "x":9.25, "y":1}, {"label":"1,9", "x":10.25, "y":1}, {"label":"1,10", "x":11.25, "y":1}, {"label":"1,11", "x":12.25, "y":1}, {"label":"1,12", "x":13.25, "y":1}, {"label":"1,13", "x":14.25, "y":1}, {"label":"2,14", "x":15.5, "y":1, "w":1.25, "h":2}, {"label":"1,15", "x":17, "y":1}, {"label":"1,16", "x":18, "y":1}, {"label":"1,17", "x":19, "y":1}, {"label":"2,0", "x":0, "y":2}, {"label":"2,1", "x":1.75, "y":2, "w":1.75}, {"label":"2,2", "x":3.5, "y":2}, {"label":"2,3", "x":4.5, "y":2}, {"label":"2,4", "x":5.5, "y":2}, {"label":"2,5", "x":6.5, "y":2}, {"label":"2,6", "x":7.5, "y":2}, {"label":"2,7", "x":8.5, "y":2}, {"label":"2,8", "x":9.5, "y":2}, {"label":"2,9", "x":10.5, "y":2}, {"label":"2,10", "x":11.5, "y":2}, {"label":"2,11", "x":12.5, "y":2}, {"label":"2,12", "x":13.5, "y":2}, {"label":"2,13", "x":14.5, "y":2}, {"label":"3,0", "x":0, "y":3}, {"label":"3,1", "x":1.75, "y":3, "w":1.25}, {"label":"3,2", "x":3, "y":3}, {"label":"3,3", "x":4, "y":3}, {"label":"3,4", "x":5, "y":3}, {"label":"3,5", "x":6, "y":3}, {"label":"3,6", "x":7, "y":3}, {"label":"3,7", "x":8, "y":3}, {"label":"3,8", "x":9, "y":3}, {"label":"3,9", "x":10, "y":3}, {"label":"3,10", "x":11, "y":3}, {"label":"3,11", "x":12, "y":3}, {"label":"3,12", "x":13, "y":3}, {"label":"3,13", "x":14, "y":3, "w":2.75}, {"label":"3,16", "x":18, "y":3}, {"label":"4,0", "x":0, "y":4}, {"label":"4,1", "x":1.75, "y":4, "w":1.25}, {"label":"4,2", "x":3, "y":4, "w":1.25}, {"label":"4,3", "x":4.25, "y":4, "w":1.25}, {"label":"4,7", "x":5.5, "y":4, "w":6.25}, {"label":"4,11", "x":11.75, "y":4, "w":1.25}, {"label":"4,12", "x":13, "y":4, "w":1.25}, {"label":"4,13", "x":14.25, "y":4, "w":1.25}, {"label":"4,14", "x":15.5, "y":4, "w":1.25}, {"label":"4,15", "x":17, "y":4}, {"label":"4,16", "x":18, "y":4}, {"label":"4,17", "x":19, "y":4}] - }, - + "LAYOUT_iso": { + "layout": [ + { "label": "0,0", "x": 0, "y": 0 }, + { "label": "0,1", "x": 1.5, "y": 0 }, + { "label": "0,2", "x": 2.5, "y": 0 }, + { "label": "0,3", "x": 3.5, "y": 0 }, + { "label": "0,4", "x": 4.5, "y": 0 }, + { "label": "0,5", "x": 5.5, "y": 0 }, + { "label": "0,6", "x": 6.5, "y": 0 }, + { "label": "0,7", "x": 7.5, "y": 0 }, + { "label": "0,8", "x": 8.5, "y": 0 }, + { "label": "0,9", "x": 9.5, "y": 0 }, + { "label": "0,10", "x": 10.5, "y": 0 }, + { "label": "0,11", "x": 11.5, "y": 0 }, + { "label": "0,12", "x": 12.5, "y": 0 }, + { "label": "0,13", "x": 13.5, "y": 0 }, + { "label": "0,14", "x": 14.5, "y": 0, "w": 2 }, + { "label": "0,15", "x": 17, "y": 0 }, + { "label": "0,16", "x": 18, "y": 0 }, + { "label": "0,17", "x": 19, "y": 0 }, + + { "label": "1,0", "x": 0, "y": 1 }, + { "label": "1,1", "x": 1.5, "y": 1, "w": 1.5 }, + { "label": "1,2", "x": 3, "y": 1 }, + { "label": "1,3", "x": 4, "y": 1 }, + { "label": "1,4", "x": 5, "y": 1 }, + { "label": "1,5", "x": 6, "y": 1 }, + { "label": "1,6", "x": 7, "y": 1 }, + { "label": "1,7", "x": 8, "y": 1 }, + { "label": "1,8", "x": 9, "y": 1 }, + { "label": "1,9", "x": 10, "y": 1 }, + { "label": "1,10", "x": 11, "y": 1 }, + { "label": "1,11", "x": 12, "y": 1 }, + { "label": "1,12", "x": 13, "y": 1 }, + { "label": "1,13", "x": 14, "y": 1 }, + { "label": "1,15", "x": 17, "y": 1 }, + { "label": "1,16", "x": 18, "y": 1 }, + { "label": "1,17", "x": 19, "y": 1 }, + + { "label": "2,0", "x": 0, "y": 2 }, + { "label": "2,1", "x": 1.5, "y": 2, "w": 1.75 }, + { "label": "2,2", "x": 3.25, "y": 2 }, + { "label": "2,3", "x": 4.25, "y": 2 }, + { "label": "2,4", "x": 5.25, "y": 2 }, + { "label": "2,5", "x": 6.25, "y": 2 }, + { "label": "2,6", "x": 7.25, "y": 2 }, + { "label": "2,7", "x": 8.25, "y": 2 }, + { "label": "2,8", "x": 9.25, "y": 2 }, + { "label": "2,9", "x": 10.25, "y": 2 }, + { "label": "2,10", "x": 11.25, "y": 2 }, + { "label": "2,11", "x": 12.25, "y": 2 }, + { "label": "2,12", "x": 13.25, "y": 2 }, + { "label": "2,13", "x": 14.25, "y": 2 }, + { "label": "2,14", "x": 15.25, "y": 1, "w": 1.25, "h": 2 }, + + { "label": "3,0", "x": 0, "y": 3 }, + { "label": "3,1", "x": 1.5, "y": 3, "w": 1.25 }, + { "label": "3,2", "x": 2.75, "y": 3 }, + { "label": "3,3", "x": 3.75, "y": 3 }, + { "label": "3,4", "x": 4.75, "y": 3 }, + { "label": "3,5", "x": 5.75, "y": 3 }, + { "label": "3,6", "x": 6.75, "y": 3 }, + { "label": "3,7", "x": 7.75, "y": 3 }, + { "label": "3,8", "x": 8.75, "y": 3 }, + { "label": "3,9", "x": 9.75, "y": 3 }, + { "label": "3,10", "x": 10.75, "y": 3 }, + { "label": "3,11", "x": 11.75, "y": 3 }, + { "label": "3,12", "x": 12.75, "y": 3 }, + { "label": "3,13", "x": 13.75, "y": 3, "w": 2.75 }, + { "label": "3,16", "x": 18, "y": 3 }, + + { "label": "4,0", "x": 0, "y": 4 }, + { "label": "4,1", "x": 1.5, "y": 4, "w": 1.25 }, + { "label": "4,2", "x": 2.75, "y": 4, "w": 1.25 }, + { "label": "4,3", "x": 4, "y": 4, "w": 1.25 }, + { "label": "4,7", "x": 5.25, "y": 4, "w": 6.25 }, + { "label": "4,11", "x": 11.5, "y": 4, "w": 1.25 }, + { "label": "4,12", "x": 12.75, "y": 4, "w": 1.25 }, + { "label": "4,13", "x": 14, "y": 4, "w": 1.25 }, + { "label": "4,14", "x": 15.25, "y": 4, "w": 1.25 }, + { "label": "4,15", "x": 17, "y": 4 }, + { "label": "4,16", "x": 18, "y": 4 }, + { "label": "4,17", "x": 19, "y": 4 } + ] + } } -} \ No newline at end of file +} diff --git a/keyboards/mechlovin/foundation/keymaps/default/keymap.c b/keyboards/mechlovin/foundation/keymaps/default/keymap.c index 4cabf521d22..11ae3282b51 100644 --- a/keyboards/mechlovin/foundation/keymaps/default/keymap.c +++ b/keyboards/mechlovin/foundation/keymaps/default/keymap.c @@ -16,14 +16,14 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_tkl_nofrow_ansi( + [0] = LAYOUT_ansi( KC_F1, 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_F2, 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_F3, 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_F4, 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_F5, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), - [1] = LAYOUT_tkl_nofrow_ansi( + [1] = LAYOUT_ansi( 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/mechlovin/foundation/keymaps/default_iso/keymap.c b/keyboards/mechlovin/foundation/keymaps/default_iso/keymap.c new file mode 100644 index 00000000000..5b8918c9e56 --- /dev/null +++ b/keyboards/mechlovin/foundation/keymaps/default_iso/keymap.c @@ -0,0 +1,40 @@ +/* Copyright 2022 Mechlovin' Studio + * + * 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_iso( + KC_F1, 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_F2, 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_F3, 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_F4, 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_F5, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_iso( + 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + +}; +#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(RGB_MOD, RGB_RMOD)} +}; +#endif diff --git a/keyboards/mechlovin/foundation/keymaps/default_iso/rules.mk b/keyboards/mechlovin/foundation/keymaps/default_iso/rules.mk new file mode 100644 index 00000000000..ee325681483 --- /dev/null +++ b/keyboards/mechlovin/foundation/keymaps/default_iso/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/mechlovin/hannah60rgb/rev1/config.h b/keyboards/mechlovin/hannah60rgb/rev1/config.h index cea9a5bc06c..bf8172b994f 100644 --- a/keyboards/mechlovin/hannah60rgb/rev1/config.h +++ b/keyboards/mechlovin/hannah60rgb/rev1/config.h @@ -6,7 +6,6 @@ # define RGB_MATRIX_KEYPRESSES // reacts to keypresses # define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses) # define RGB_MATRIX_FRAMEBUFFER_EFFECTS -# 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) # 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 diff --git a/keyboards/mechlovin/hannah60rgb/rev1/rev1.c b/keyboards/mechlovin/hannah60rgb/rev1/rev1.c index 6b1b8604a2b..b61ac10b14f 100644 --- a/keyboards/mechlovin/hannah60rgb/rev1/rev1.c +++ b/keyboards/mechlovin/hannah60rgb/rev1/rev1.c @@ -27,21 +27,26 @@ led_config_t g_led_config = { { }, { //LED Index to Physical Positon { 0, 0}, { 16, 0}, { 32, 0 }, { 48, 0 }, { 64, 0}, { 80, 0}, { 96, 0}, { 112, 0}, { 128, 0}, { 144, 0}, { 160, 0}, { 176, 0}, {192, 0}, {208, 0}, {216, 0}, - {220, 0}, {211, 16}, {200,16 }, {176,16 }, {160,16}, {144,16}, {128,16}, { 112,16}, { 96,16}, { 80,16}, { 64,16}, { 48,16}, {32, 16}, {16, 16}, {0,16}, - { 0, 32}, { 16, 32}, { 32,32 }, { 48,32 }, { 64,32}, { 80,32}, { 96,32}, { 112,32}, { 128,32}, { 144,32}, { 160,32}, { 176,32}, {192, 32}, {208, 32}, {224,48}, - {208, 48}, {192, 48}, {160,48 }, {144,48 }, {128,48}, {112,48}, {96,48}, { 80,48}, { 64,48}, { 48,48}, { 32,48}, { 16,48}, {8, 48}, {0, 48}, {0,48}, - { 0, 64}, { 16, 64}, { 32,64 }, { 48,64 }, { 64,64}, { 80,64}, { 96,64}, { 112,64}, { 144,64}, { 160,64}, { 192,64}, { 224,64}, + {220, 0}, {211, 16}, {200,16 }, {176,16 }, {160,16}, {144,16}, {128,16}, { 112,16}, { 96,16}, { 80,16}, { 64,16}, { 48,16}, {32, 16}, {16, 16}, {0,16}, + { 0, 32}, { 16, 32}, { 32,32 }, { 48,32 }, { 64,32}, { 80,32}, { 96,32}, { 112,32}, { 128,32}, { 144,32}, { 160,32}, { 176,32}, {192, 32}, {208, 32}, {224,48}, + {208, 48}, {192, 48}, {160,48 }, {144,48 }, {128,48}, {112,48}, {96,48}, { 80,48}, { 64,48}, { 48,48}, { 32,48}, { 16,48}, {8, 48}, {0, 48}, {0,48}, + { 0, 64}, { 16, 64}, { 32,64 }, { 48,64 }, { 64,64}, { 80,64}, { 96,64}, { 112,64}, { 144,64}, { 160,64}, { 192,64}, { 224,64}, }, { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, } }; -void rgb_matrix_indicators_user(void) { - if (host_keyboard_led_state().caps_lock) { - rgb_matrix_set_color(30, 255, 255, 255); - } +bool rgb_matrix_indicators_kb(void) { + if (!rgb_matrix_indicators_user()) { + return false; + } + + if (host_keyboard_led_state().caps_lock) { + rgb_matrix_set_color(30, 255, 255, 255); + } + return true; } -#endif \ No newline at end of file +#endif diff --git a/keyboards/mechlovin/hannah60rgb/rev2/config.h b/keyboards/mechlovin/hannah60rgb/rev2/config.h index 48caf0b40e6..2dab887e4d9 100644 --- a/keyboards/mechlovin/hannah60rgb/rev2/config.h +++ b/keyboards/mechlovin/hannah60rgb/rev2/config.h @@ -25,7 +25,6 @@ #define RGB_MATRIX_KEYPRESSES // reacts to keypresses #define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses) #define RGB_MATRIX_FRAMEBUFFER_EFFECTS -#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) #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 diff --git a/keyboards/mechlovin/hannah60rgb/rev2/rev2.c b/keyboards/mechlovin/hannah60rgb/rev2/rev2.c index bb88a316ea0..a2812aa41d2 100644 --- a/keyboards/mechlovin/hannah60rgb/rev2/rev2.c +++ b/keyboards/mechlovin/hannah60rgb/rev2/rev2.c @@ -123,8 +123,8 @@ led_config_t g_led_config = { { { 0, 0}, { 16, 0}, { 32, 0 }, { 48, 0}, //9-59-68-76 { 0, 16}, { 16, 16}, { 32, 16}, { 48, 16}, //10-60-72-77 { 0, 32}, { 16, 32}, { 32, 32}, { 48, 32}, //46-61-73-78 - { 0, 48}, { 0, 48}, { 12, 48}, { 16, 48}, //126-51-63-74 - { 0, 64}, { 16, 64}, //56-67 + { 0, 48}, { 0, 48}, { 12, 48}, { 16, 48}, //126-51-63-74 + { 0, 64}, { 16, 64}, //56-67 { 64, 0}, { 80, 0}, { 96, 0}, { 112, 0}, //80-84-89-94 { 64, 16}, { 80, 16}, { 96,16}, { 112,16}, //81-85-90-95 { 64, 32}, { 80, 32}, { 96,32}, { 112,32}, //82-86-91-96 @@ -133,34 +133,38 @@ led_config_t g_led_config = { { { 128, 0}, { 144, 0}, { 160, 0}, { 176, 0}, {192, 0}, {220, 0}, {210, 0}, //98-102-106-111-116-121-130 { 128,16}, {144,16}, {160,16}, {176, 16}, {192, 16}, {220, 16}, {220,16}, //99-103-107-112-117-129-122 { 128,32}, { 144,32}, { 160,32}, { 176,32}, {192, 32}, {220, 32}, //100-104-108-113-118-123 - { 96,48}, {112,48}, {128, 48}, {144, 48}, {160, 48}, {200, 48}, {220,48}, {220,48}, //97-101-105-109-114-119-128-124 + { 96,48}, {112,48}, {128, 48}, {144, 48}, {160, 48}, {200, 48}, {220,48}, {220,48}, //97-101-105-109-114-119-128-124 { 96,64}, {144,64}, {160,64}, {176,64}, {220, 64}, //127-110-115-120-125 - { 220, 0}, //140 + { 220, 0}, //140 }, { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, } }; -__attribute__((weak)) void rgb_matrix_indicators_user(void) { - if (host_keyboard_led_state().caps_lock) { - rgb_matrix_set_color(8, 255, 255, 255); - rgb_matrix_set_color(70, 255, 0, 0); - } else { - rgb_matrix_set_color(70, 0, 0, 0); - } - if (host_keyboard_led_state().num_lock) { - rgb_matrix_set_color(71, 255, 0, 0); - } else { - rgb_matrix_set_color(71, 0, 0, 0); - } - if (host_keyboard_led_state().scroll_lock) { - rgb_matrix_set_color(72, 255, 0, 0); - } else { - rgb_matrix_set_color(72, 0, 0, 0); - } +bool rgb_matrix_indicators_kb(void) { + if (!rgb_matrix_indicators_user()) { + return false; + } + if (host_keyboard_led_state().caps_lock) { + rgb_matrix_set_color(8, 255, 255, 255); + rgb_matrix_set_color(70, 255, 0, 0); + } else { + rgb_matrix_set_color(70, 0, 0, 0); + } + if (host_keyboard_led_state().num_lock) { + rgb_matrix_set_color(71, 255, 0, 0); + } else { + rgb_matrix_set_color(71, 0, 0, 0); + } + if (host_keyboard_led_state().scroll_lock) { + rgb_matrix_set_color(72, 255, 0, 0); + } else { + rgb_matrix_set_color(72, 0, 0, 0); + } + return true; } __attribute__((weak)) diff --git a/keyboards/mechlovin/infinity87/keymaps/default/keymap.c b/keyboards/mechlovin/infinity87/rev2/keymaps/default/keymap.c similarity index 100% rename from keyboards/mechlovin/infinity87/keymaps/default/keymap.c rename to keyboards/mechlovin/infinity87/rev2/keymaps/default/keymap.c diff --git a/keyboards/mechlovin/infinity87/keymaps/default/readme.md b/keyboards/mechlovin/infinity87/rev2/keymaps/default/readme.md similarity index 100% rename from keyboards/mechlovin/infinity87/keymaps/default/readme.md rename to keyboards/mechlovin/infinity87/rev2/keymaps/default/readme.md diff --git a/keyboards/mechlovin/infinity87/keymaps/via/keymap.c b/keyboards/mechlovin/infinity87/rev2/keymaps/via/keymap.c similarity index 100% rename from keyboards/mechlovin/infinity87/keymaps/via/keymap.c rename to keyboards/mechlovin/infinity87/rev2/keymaps/via/keymap.c diff --git a/keyboards/mechlovin/infinity87/keymaps/via/readme.md b/keyboards/mechlovin/infinity87/rev2/keymaps/via/readme.md similarity index 100% rename from keyboards/mechlovin/infinity87/keymaps/via/readme.md rename to keyboards/mechlovin/infinity87/rev2/keymaps/via/readme.md diff --git a/keyboards/mechlovin/infinity87/rev2/keymaps/via/rules.mk b/keyboards/mechlovin/infinity87/rev2/keymaps/via/rules.mk new file mode 100644 index 00000000000..36b7ba9cbc9 --- /dev/null +++ b/keyboards/mechlovin/infinity87/rev2/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/mechlovin/infinity87/rgb_rev1/config.h b/keyboards/mechlovin/infinity87/rgb_rev1/config.h index d173abe124e..868ea8a2919 100644 --- a/keyboards/mechlovin/infinity87/rgb_rev1/config.h +++ b/keyboards/mechlovin/infinity87/rgb_rev1/config.h @@ -30,7 +30,6 @@ // 0b0110011 AD <-> VCC // 0b0110001 AD <-> SCL // 0b0110010 AD <-> SDA -#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_KEYPRESSES #undef ENABLE_RGB_MATRIX_SPLASH diff --git a/keyboards/mechlovin/infinity87/rgb_rev1/keymaps/default/keymap.c b/keyboards/mechlovin/infinity87/rgb_rev1/keymaps/default/keymap.c new file mode 100644 index 00000000000..a98abef90c8 --- /dev/null +++ b/keyboards/mechlovin/infinity87/rgb_rev1/keymaps/default/keymap.c @@ -0,0 +1,27 @@ +/* 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 . + */ +#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_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_DEL, 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_HASH, KC_ENT, + KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_LSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LALT, KC_LGUI,MO(1), KC_LCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), +}; diff --git a/keyboards/mechlovin/infinity87/rgb_rev1/keymaps/default/readme.md b/keyboards/mechlovin/infinity87/rgb_rev1/keymaps/default/readme.md new file mode 100644 index 00000000000..01ef555056b --- /dev/null +++ b/keyboards/mechlovin/infinity87/rgb_rev1/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for infinity87 diff --git a/keyboards/mechlovin/infinity87/rgb_rev1/keymaps/via/keymap.c b/keyboards/mechlovin/infinity87/rgb_rev1/keymaps/via/keymap.c new file mode 100644 index 00000000000..22250ad0e63 --- /dev/null +++ b/keyboards/mechlovin/infinity87/rgb_rev1/keymaps/via/keymap.c @@ -0,0 +1,52 @@ +/* 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 . + */ +#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_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_DEL, 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_HASH, KC_ENT, + KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_LSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LALT, KC_LGUI, MO(1), KC_LCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = 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, 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 + ), + [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, 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, 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/mechlovin/infinity87/rgb_rev1/keymaps/via/readme.md b/keyboards/mechlovin/infinity87/rgb_rev1/keymaps/via/readme.md new file mode 100644 index 00000000000..8867d290cdf --- /dev/null +++ b/keyboards/mechlovin/infinity87/rgb_rev1/keymaps/via/readme.md @@ -0,0 +1 @@ +# The via keymap for infinity87 diff --git a/keyboards/mechlovin/infinity87/rgb_rev1/keymaps/via/rules.mk b/keyboards/mechlovin/infinity87/rgb_rev1/keymaps/via/rules.mk new file mode 100644 index 00000000000..36b7ba9cbc9 --- /dev/null +++ b/keyboards/mechlovin/infinity87/rgb_rev1/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/mechlovin/infinity87/rgb_rev1/rgb_rev1.c b/keyboards/mechlovin/infinity87/rgb_rev1/rgb_rev1.c index c1463cf4ca2..210fb843b34 100644 --- a/keyboards/mechlovin/infinity87/rgb_rev1/rgb_rev1.c +++ b/keyboards/mechlovin/infinity87/rgb_rev1/rgb_rev1.c @@ -120,9 +120,9 @@ led_config_t g_led_config = { { {65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, NO_LED, 79, NO_LED}, {80, 81, 82, NO_LED, NO_LED, NO_LED, 83, NO_LED, NO_LED, NO_LED, 84, 85, 86, 87, 88, 89, 90} }, { - {0, 0}, {14, 0}, {28, 0}, {42, 0}, {56, 0}, {70, 0}, {84, 0}, {98, 0}, {112, 0}, {126, 0}, {140, 0}, {154, 0}, {168, 0}, {182, 0}, {196, 0}, {210, 0}, {224, 0}, - {0,16}, {14,16}, {28,16}, {42, 16}, {56, 16}, {70, 16}, {84, 16}, {98, 16}, {112, 16}, {126, 16}, {140, 16}, {154, 16}, {168, 16}, {182, 16}, {196, 16}, {210, 16}, {224, 16}, - {0,32}, {14,32}, {28,32}, {42, 32}, {56, 32}, {70, 32}, {84, 32}, {98, 32}, {112, 32}, {126, 32}, {140, 32}, {154, 32}, {168, 32}, {182, 32}, {196, 32}, {210, 32}, {224, 32}, + {0, 0}, {14, 0}, {28, 0}, {42, 0}, {56, 0}, {70, 0}, {84, 0}, {98, 0}, {112, 0}, {126, 0}, {140, 0}, {154, 0}, {168, 0}, {182, 0}, {196, 0}, {210, 0}, {224, 0}, + {0,16}, {14,16}, {28,16}, {42, 16}, {56, 16}, {70, 16}, {84, 16}, {98, 16}, {112, 16}, {126, 16}, {140, 16}, {154, 16}, {168, 16}, {182, 16}, {196, 16}, {210, 16}, {224, 16}, + {0,32}, {14,32}, {28,32}, {42, 32}, {56, 32}, {70, 32}, {84, 32}, {98, 32}, {112, 32}, {126, 32}, {140, 32}, {154, 32}, {168, 32}, {182, 32}, {196, 32}, {210, 32}, {224, 32}, {0,48}, {14,48}, {28,48}, {42, 48}, {56, 48}, {70, 48}, {84, 48}, {98, 48}, {112, 48}, {126, 48}, {140, 48}, {154, 48}, {168, 48}, {182, 48}, {0,64}, {14,64}, {28,64}, {42, 64}, {56, 64}, {70, 64}, {84, 64}, {98, 64}, {112, 64}, {126, 64}, {140, 64}, {154, 64}, {168, 64}, {182, 64}, {210, 64}, {0,80}, {14,80}, {28,80}, {84, 80}, {140, 80}, {154, 80}, {168, 80}, {182, 80}, {196, 80}, {210, 80}, {224, 80} @@ -136,24 +136,16 @@ led_config_t g_led_config = { { } }; -__attribute__((weak)) -void rgb_matrix_indicators_user(void) { - if (host_keyboard_led_state().caps_lock) { - rgb_matrix_set_color(51, 255, 255, 255); - } - if (host_keyboard_led_state().scroll_lock) { - rgb_matrix_set_color(15, 255, 255, 255); - } -} - - -void suspend_power_down_kb(void) { - rgb_matrix_set_suspend_state(true); - suspend_power_down_user(); -} - -void suspend_wakeup_init_kb(void) { - rgb_matrix_set_suspend_state(false); - suspend_wakeup_init_user(); +bool rgb_matrix_indicators_kb(void) { + if (!rgb_matrix_indicators_user()) { + return false; + } + if (host_keyboard_led_state().caps_lock) { + rgb_matrix_set_color(51, 255, 255, 255); + } + if (host_keyboard_led_state().scroll_lock) { + rgb_matrix_set_color(15, 255, 255, 255); + } + return true; } #endif diff --git a/keyboards/mechlovin/infinity875/config.h b/keyboards/mechlovin/infinity875/config.h index f86332fe08d..9a9b8b6236d 100644 --- a/keyboards/mechlovin/infinity875/config.h +++ b/keyboards/mechlovin/infinity875/config.h @@ -46,7 +46,6 @@ along with this program. If not, see . #ifdef RGB_MATRIX_ENABLE #define RGB_DI_PIN E2 #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) #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 220 // limits maximum brightness of LEDs to 200 out of 255. If not defined maximum brightness is set to 255 diff --git a/keyboards/mechlovin/zed65/wearhaus66/info.json b/keyboards/mechlovin/zed65/wearhaus66/info.json index ac672ff1f65..4d71686d334 100644 --- a/keyboards/mechlovin/zed65/wearhaus66/info.json +++ b/keyboards/mechlovin/zed65/wearhaus66/info.json @@ -2,90 +2,241 @@ "keyboard_name": "Wearhaus66", "manufacturer": "Mechlovin Studio", "url": "", - "maintainer": "Mechlovin' Studio", + "maintainer": "mechlovin", "usb": { "vid": "0x4D4C", "pid": "0x6602", "device_version": "0.0.1" }, + "layout_aliases": { + "LAYOUT_65_ansi_blocker": "LAYOUT_ansi_blocker", + "LAYOUT_65_iso_blocker": "LAYOUT_iso_blocker" + }, "layouts": { "LAYOUT_all": { "layout": [ - {"label":"0,0", "x":0, "y":0}, - {"label":"0,1", "x":1, "y":0}, - {"label":"0,2", "x":2, "y":0}, - {"label":"0,3", "x":3, "y":0}, - {"label":"0,4", "x":4, "y":0}, - {"label":"0,5", "x":5, "y":0}, - {"label":"0,6", "x":6, "y":0}, - {"label":"0,7", "x":7, "y":0}, - {"label":"0,8", "x":8, "y":0}, - {"label":"0,9", "x":9, "y":0}, - {"label":"0,10", "x":10, "y":0}, - {"label":"0,11", "x":11, "y":0}, - {"label":"0,12", "x":12, "y":0}, - {"label":"0,13", "x":13, "y":0}, - {"label":"1,13", "x":14, "y":0}, - {"label":"1,14", "x":15.25, "y":0.75}, - {"label":"1,0", "x":0, "y":1, "w":1.5}, - {"label":"1,1", "x":1.5, "y":1}, - {"label":"1,2", "x":2.5, "y":1}, - {"label":"1,3", "x":3.5, "y":1}, - {"label":"1,4", "x":4.5, "y":1}, - {"label":"1,5", "x":5.5, "y":1}, - {"label":"1,6", "x":6.5, "y":1}, - {"label":"1,7", "x":7.5, "y":1}, - {"label":"1,8", "x":8.5, "y":1}, - {"label":"1,9", "x":9.5, "y":1}, - {"label":"1,10", "x":10.5, "y":1}, - {"label":"1,11", "x":11.5, "y":1}, - {"label":"1,12", "x":12.5, "y":1}, - {"label":"2,12", "x":13.5, "y":1, "w":1.5}, - {"label":"2,14", "x":15.25, "y":1.75}, - {"label":"2,0", "x":0, "y":2, "w":1.75}, - {"label":"2,1", "x":1.75, "y":2}, - {"label":"2,2", "x":2.75, "y":2}, - {"label":"2,3", "x":3.75, "y":2}, - {"label":"2,4", "x":4.75, "y":2}, - {"label":"2,5", "x":5.75, "y":2}, - {"label":"2,6", "x":6.75, "y":2}, - {"label":"2,7", "x":7.75, "y":2}, - {"label":"2,8", "x":8.75, "y":2}, - {"label":"2,9", "x":9.75, "y":2}, - {"label":"2,10", "x":10.75, "y":2}, - {"label":"2,11", "x":11.75, "y":2}, - {"label":"2,13", "x":12.75, "y":2, "w":2.25}, - {"label":"3,14", "x":15.25, "y":2.75}, - {"label":"3,0", "x":0, "y":3, "w":1.25}, - {"label":"3,1", "x":1.25, "y":3}, - {"label":"3,2", "x":2.25, "y":3}, - {"label":"3,3", "x":3.25, "y":3}, - {"label":"3,4", "x":4.25, "y":3}, - {"label":"3,5", "x":5.25, "y":3}, - {"label":"3,6", "x":6.25, "y":3}, - {"label":"3,7", "x":7.25, "y":3}, - {"label":"3,8", "x":8.25, "y":3}, - {"label":"3,9", "x":9.25, "y":3}, - {"label":"3,10", "x":10.25, "y":3}, - {"label":"3,11", "x":11.25, "y":3}, - {"label":"3,12", "x":12.25, "y":3, "w":1.75}, - {"label":"3,13", "x":14, "y":3}, - {"label":"4,0", "x":0, "y":4, "w":1.25}, - {"label":"4,1", "x":1.25, "y":4, "w":1.25}, - {"label":"4,2", "x":2.5, "y":4, "w":1.25}, - {"label":"4,6", "x":3.75, "y":4, "w":6.25}, - {"label":"4,9", "x":10, "y":4, "w":1.25}, - {"label":"4,10", "x":11.25, "y":4, "w":1.25}, - {"label":"4,12", "x":13, "y":4}, - {"label":"4,13", "x":14, "y":4}, + {"label":"0,0", "x":0, "y":0}, + {"label":"0,1", "x":1, "y":0}, + {"label":"0,2", "x":2, "y":0}, + {"label":"0,3", "x":3, "y":0}, + {"label":"0,4", "x":4, "y":0}, + {"label":"0,5", "x":5, "y":0}, + {"label":"0,6", "x":6, "y":0}, + {"label":"0,7", "x":7, "y":0}, + {"label":"0,8", "x":8, "y":0}, + {"label":"0,9", "x":9, "y":0}, + {"label":"0,10", "x":10, "y":0}, + {"label":"0,11", "x":11, "y":0}, + {"label":"0,12", "x":12, "y":0}, + {"label":"0,13", "x":13, "y":0}, + {"label":"1,13", "x":14, "y":0}, + + {"label":"1,0", "x":0, "y":1, "w":1.5}, + {"label":"1,1", "x":1.5, "y":1}, + {"label":"1,2", "x":2.5, "y":1}, + {"label":"1,3", "x":3.5, "y":1}, + {"label":"1,4", "x":4.5, "y":1}, + {"label":"1,5", "x":5.5, "y":1}, + {"label":"1,6", "x":6.5, "y":1}, + {"label":"1,7", "x":7.5, "y":1}, + {"label":"1,8", "x":8.5, "y":1}, + {"label":"1,9", "x":9.5, "y":1}, + {"label":"1,10", "x":10.5, "y":1}, + {"label":"1,11", "x":11.5, "y":1}, + {"label":"1,12", "x":12.5, "y":1}, + {"label":"2,12", "x":13.5, "y":1, "w":1.5}, + {"label":"1,14", "x":15.25, "y":0.75}, + + {"label":"2,0", "x":0, "y":2, "w":1.75}, + {"label":"2,1", "x":1.75, "y":2}, + {"label":"2,2", "x":2.75, "y":2}, + {"label":"2,3", "x":3.75, "y":2}, + {"label":"2,4", "x":4.75, "y":2}, + {"label":"2,5", "x":5.75, "y":2}, + {"label":"2,6", "x":6.75, "y":2}, + {"label":"2,7", "x":7.75, "y":2}, + {"label":"2,8", "x":8.75, "y":2}, + {"label":"2,9", "x":9.75, "y":2}, + {"label":"2,10", "x":10.75, "y":2}, + {"label":"2,11", "x":11.75, "y":2}, + {"label":"2,13", "x":12.75, "y":2, "w":2.25}, + {"label":"2,14", "x":15.25, "y":1.75}, + + {"label":"3,0", "x":0, "y":3, "w":1.25}, + {"label":"3,1", "x":1.25, "y":3}, + {"label":"3,2", "x":2.25, "y":3}, + {"label":"3,3", "x":3.25, "y":3}, + {"label":"3,4", "x":4.25, "y":3}, + {"label":"3,5", "x":5.25, "y":3}, + {"label":"3,6", "x":6.25, "y":3}, + {"label":"3,7", "x":7.25, "y":3}, + {"label":"3,8", "x":8.25, "y":3}, + {"label":"3,9", "x":9.25, "y":3}, + {"label":"3,10", "x":10.25, "y":3}, + {"label":"3,11", "x":11.25, "y":3}, + {"label":"3,12", "x":12.25, "y":3, "w":1.75}, + {"label":"3,13", "x":14, "y":3}, + {"label":"3,14", "x":15.25, "y":2.75}, + + {"label":"4,0", "x":0, "y":4, "w":1.25}, + {"label":"4,1", "x":1.25, "y":4, "w":1.25}, + {"label":"4,2", "x":2.5, "y":4, "w":1.25}, + {"label":"4,6", "x":3.75, "y":4, "w":6.25}, + {"label":"4,9", "x":10, "y":4, "w":1.25}, + {"label":"4,10", "x":11.25, "y":4, "w":1.25}, + {"label":"4,12", "x":13, "y":4}, + {"label":"4,13", "x":14, "y":4}, {"label":"4,14", "x":15, "y":4} - ] + ] }, - "LAYOUT_65_ansi_blocker": { - "layout": [{"label":"0,0", "x":0, "y":0}, {"label":"0,1", "x":1, "y":0}, {"label":"0,2", "x":2, "y":0}, {"label":"0,3", "x":3, "y":0}, {"label":"0,4", "x":4, "y":0}, {"label":"0,5", "x":5, "y":0}, {"label":"0,6", "x":6, "y":0}, {"label":"0,7", "x":7, "y":0}, {"label":"0,8", "x":8, "y":0}, {"label":"0,9", "x":9, "y":0}, {"label":"0,10", "x":10, "y":0}, {"label":"0,11", "x":11, "y":0}, {"label":"0,12", "x":12, "y":0}, {"label":"0,13", "x":13, "y":0, "w":2}, {"label":"1,14", "x":15.25, "y":0.75}, {"label":"1,0", "x":0, "y":1, "w":1.5}, {"label":"1,1", "x":1.5, "y":1}, {"label":"1,2", "x":2.5, "y":1}, {"label":"1,3", "x":3.5, "y":1}, {"label":"1,4", "x":4.5, "y":1}, {"label":"1,5", "x":5.5, "y":1}, {"label":"1,6", "x":6.5, "y":1}, {"label":"1,7", "x":7.5, "y":1}, {"label":"1,8", "x":8.5, "y":1}, {"label":"1,9", "x":9.5, "y":1}, {"label":"1,10", "x":10.5, "y":1}, {"label":"1,11", "x":11.5, "y":1}, {"label":"1,12", "x":12.5, "y":1}, {"label":"2,12", "x":13.5, "y":1, "w":1.5}, {"label":"2,14", "x":15.25, "y":1.75}, {"label":"2,0", "x":0, "y":2, "w":1.75}, {"label":"2,1", "x":1.75, "y":2}, {"label":"2,2", "x":2.75, "y":2}, {"label":"2,3", "x":3.75, "y":2}, {"label":"2,4", "x":4.75, "y":2}, {"label":"2,5", "x":5.75, "y":2}, {"label":"2,6", "x":6.75, "y":2}, {"label":"2,7", "x":7.75, "y":2}, {"label":"2,8", "x":8.75, "y":2}, {"label":"2,9", "x":9.75, "y":2}, {"label":"2,10", "x":10.75, "y":2}, {"label":"2,11", "x":11.75, "y":2}, {"label":"2,13", "x":12.75, "y":2, "w":2.25}, {"label":"3,14", "x":15.25, "y":2.75}, {"label":"3,0", "x":0, "y":3, "w":2.25}, {"label":"3,2", "x":2.25, "y":3}, {"label":"3,3", "x":3.25, "y":3}, {"label":"3,4", "x":4.25, "y":3}, {"label":"3,5", "x":5.25, "y":3}, {"label":"3,6", "x":6.25, "y":3}, {"label":"3,7", "x":7.25, "y":3}, {"label":"3,8", "x":8.25, "y":3}, {"label":"3,9", "x":9.25, "y":3}, {"label":"3,10", "x":10.25, "y":3}, {"label":"3,11", "x":11.25, "y":3}, {"label":"3,12", "x":12.25, "y":3, "w":1.75}, {"label":"3,13", "x":14, "y":3}, {"label":"4,0", "x":0, "y":4, "w":1.25}, {"label":"4,1", "x":1.25, "y":4, "w":1.25}, {"label":"4,2", "x":2.5, "y":4, "w":1.25}, {"label":"4,6", "x":3.75, "y":4, "w":6.25}, {"label":"4,9", "x":10, "y":4, "w":1.25}, {"label":"4,10", "x":11.25, "y":4, "w":1.25}, {"label":"4,12", "x":13, "y":4}, {"label":"4,13", "x":14, "y":4}, {"label":"4,14", "x":15, "y":4}] + "LAYOUT_ansi_blocker": { + "layout": [ + {"label":"0,0", "x":0, "y":0}, + {"label":"0,1", "x":1, "y":0}, + {"label":"0,2", "x":2, "y":0}, + {"label":"0,3", "x":3, "y":0}, + {"label":"0,4", "x":4, "y":0}, + {"label":"0,5", "x":5, "y":0}, + {"label":"0,6", "x":6, "y":0}, + {"label":"0,7", "x":7, "y":0}, + {"label":"0,8", "x":8, "y":0}, + {"label":"0,9", "x":9, "y":0}, + {"label":"0,10", "x":10, "y":0}, + {"label":"0,11", "x":11, "y":0}, + {"label":"0,12", "x":12, "y":0}, + {"label":"0,13", "x":13, "y":0, "w":2}, + + {"label":"1,0", "x":0, "y":1, "w":1.5}, + {"label":"1,1", "x":1.5, "y":1}, + {"label":"1,2", "x":2.5, "y":1}, + {"label":"1,3", "x":3.5, "y":1}, + {"label":"1,4", "x":4.5, "y":1}, + {"label":"1,5", "x":5.5, "y":1}, + {"label":"1,6", "x":6.5, "y":1}, + {"label":"1,7", "x":7.5, "y":1}, + {"label":"1,8", "x":8.5, "y":1}, + {"label":"1,9", "x":9.5, "y":1}, + {"label":"1,10", "x":10.5, "y":1}, + {"label":"1,11", "x":11.5, "y":1}, + {"label":"1,12", "x":12.5, "y":1}, + {"label":"2,12", "x":13.5, "y":1, "w":1.5}, + {"label":"1,14", "x":15.25, "y":0.75}, + + {"label":"2,0", "x":0, "y":2, "w":1.75}, + {"label":"2,1", "x":1.75, "y":2}, + {"label":"2,2", "x":2.75, "y":2}, + {"label":"2,3", "x":3.75, "y":2}, + {"label":"2,4", "x":4.75, "y":2}, + {"label":"2,5", "x":5.75, "y":2}, + {"label":"2,6", "x":6.75, "y":2}, + {"label":"2,7", "x":7.75, "y":2}, + {"label":"2,8", "x":8.75, "y":2}, + {"label":"2,9", "x":9.75, "y":2}, + {"label":"2,10", "x":10.75, "y":2}, + {"label":"2,11", "x":11.75, "y":2}, + {"label":"2,13", "x":12.75, "y":2, "w":2.25}, + {"label":"2,14", "x":15.25, "y":1.75}, + + {"label":"3,0", "x":0, "y":3, "w":2.25}, + {"label":"3,2", "x":2.25, "y":3}, + {"label":"3,3", "x":3.25, "y":3}, + {"label":"3,4", "x":4.25, "y":3}, + {"label":"3,5", "x":5.25, "y":3}, + {"label":"3,6", "x":6.25, "y":3}, + {"label":"3,7", "x":7.25, "y":3}, + {"label":"3,8", "x":8.25, "y":3}, + {"label":"3,9", "x":9.25, "y":3}, + {"label":"3,10", "x":10.25, "y":3}, + {"label":"3,11", "x":11.25, "y":3}, + {"label":"3,12", "x":12.25, "y":3, "w":1.75}, + {"label":"3,13", "x":14, "y":3}, + {"label":"3,14", "x":15.25, "y":2.75}, + + {"label":"4,0", "x":0, "y":4, "w":1.25}, + {"label":"4,1", "x":1.25, "y":4, "w":1.25}, + {"label":"4,2", "x":2.5, "y":4, "w":1.25}, + {"label":"4,6", "x":3.75, "y":4, "w":6.25}, + {"label":"4,9", "x":10, "y":4, "w":1.25}, + {"label":"4,10", "x":11.25, "y":4, "w":1.25}, + {"label":"4,12", "x":13, "y":4}, + {"label":"4,13", "x":14, "y":4}, + {"label":"4,14", "x":15, "y":4} + ] }, - "LAYOUT_65_iso_blocker": { - "layout": [{"label":"0,0", "x":0, "y":0}, {"label":"0,1", "x":1, "y":0}, {"label":"0,2", "x":2, "y":0}, {"label":"0,3", "x":3, "y":0}, {"label":"0,4", "x":4, "y":0}, {"label":"0,5", "x":5, "y":0}, {"label":"0,6", "x":6, "y":0}, {"label":"0,7", "x":7, "y":0}, {"label":"0,8", "x":8, "y":0}, {"label":"0,9", "x":9, "y":0}, {"label":"0,10", "x":10, "y":0}, {"label":"0,11", "x":11, "y":0}, {"label":"0,12", "x":12, "y":0}, {"label":"0,13", "x":13, "y":0, "w":2}, {"label":"1,14", "x":15.25, "y":0.75}, {"label":"1,0", "x":0, "y":1, "w":1.5}, {"label":"1,1", "x":1.5, "y":1}, {"label":"1,2", "x":2.5, "y":1}, {"label":"1,3", "x":3.5, "y":1}, {"label":"1,4", "x":4.5, "y":1}, {"label":"1,5", "x":5.5, "y":1}, {"label":"1,6", "x":6.5, "y":1}, {"label":"1,7", "x":7.5, "y":1}, {"label":"1,8", "x":8.5, "y":1}, {"label":"1,9", "x":9.5, "y":1}, {"label":"1,10", "x":10.5, "y":1}, {"label":"1,11", "x":11.5, "y":1}, {"label":"1,12", "x":12.5, "y":1}, {"label":"2,12", "x":13.5, "y":1, "w":1.5}, {"label":"2,14", "x":15.25, "y":1.75}, {"label":"2,0", "x":0, "y":2, "w":1.75}, {"label":"2,1", "x":1.75, "y":2}, {"label":"2,2", "x":2.75, "y":2}, {"label":"2,3", "x":3.75, "y":2}, {"label":"2,4", "x":4.75, "y":2}, {"label":"2,5", "x":5.75, "y":2}, {"label":"2,6", "x":6.75, "y":2}, {"label":"2,7", "x":7.75, "y":2}, {"label":"2,8", "x":8.75, "y":2}, {"label":"2,9", "x":9.75, "y":2}, {"label":"2,10", "x":10.75, "y":2}, {"label":"2,11", "x":11.75, "y":2}, {"label":"2,13", "x":12.75, "y":2, "w":2.25}, {"label":"3,14", "x":15.25, "y":2.75}, {"label":"3,0", "x":0, "y":3, "w":1.25}, {"label":"3,1", "x":1.25, "y":3}, {"label":"3,2", "x":2.25, "y":3}, {"label":"3,3", "x":3.25, "y":3}, {"label":"3,4", "x":4.25, "y":3}, {"label":"3,5", "x":5.25, "y":3}, {"label":"3,6", "x":6.25, "y":3}, {"label":"3,7", "x":7.25, "y":3}, {"label":"3,8", "x":8.25, "y":3}, {"label":"3,9", "x":9.25, "y":3}, {"label":"3,10", "x":10.25, "y":3}, {"label":"3,11", "x":11.25, "y":3}, {"label":"3,12", "x":12.25, "y":3, "w":1.75}, {"label":"3,13", "x":14, "y":3}, {"label":"4,0", "x":0, "y":4, "w":1.25}, {"label":"4,1", "x":1.25, "y":4, "w":1.25}, {"label":"4,2", "x":2.5, "y":4, "w":1.25}, {"label":"4,6", "x":3.75, "y":4, "w":6.25}, {"label":"4,9", "x":10, "y":4, "w":1.25}, {"label":"4,10", "x":11.25, "y":4, "w":1.25}, {"label":"4,12", "x":13, "y":4}, {"label":"4,13", "x":14, "y":4}, {"label":"4,14", "x":15, "y":4}] + "LAYOUT_iso_blocker": { + "layout": [ + {"label":"0,0", "x":0, "y":0}, + {"label":"0,1", "x":1, "y":0}, + {"label":"0,2", "x":2, "y":0}, + {"label":"0,3", "x":3, "y":0}, + {"label":"0,4", "x":4, "y":0}, + {"label":"0,5", "x":5, "y":0}, + {"label":"0,6", "x":6, "y":0}, + {"label":"0,7", "x":7, "y":0}, + {"label":"0,8", "x":8, "y":0}, + {"label":"0,9", "x":9, "y":0}, + {"label":"0,10", "x":10, "y":0}, + {"label":"0,11", "x":11, "y":0}, + {"label":"0,12", "x":12, "y":0}, + {"label":"0,13", "x":13, "y":0, "w":2}, + + {"label":"1,0", "x":0, "y":1, "w":1.5}, + {"label":"1,1", "x":1.5, "y":1}, + {"label":"1,2", "x":2.5, "y":1}, + {"label":"1,3", "x":3.5, "y":1}, + {"label":"1,4", "x":4.5, "y":1}, + {"label":"1,5", "x":5.5, "y":1}, + {"label":"1,6", "x":6.5, "y":1}, + {"label":"1,7", "x":7.5, "y":1}, + {"label":"1,8", "x":8.5, "y":1}, + {"label":"1,9", "x":9.5, "y":1}, + {"label":"1,10", "x":10.5, "y":1}, + {"label":"1,11", "x":11.5, "y":1}, + {"label":"1,12", "x":12.5, "y":1}, + {"label":"1,14", "x":15.25, "y":0.75}, + + {"label":"2,0", "x":0, "y":2, "w":1.75}, + {"label":"2,1", "x":1.75, "y":2}, + {"label":"2,2", "x":2.75, "y":2}, + {"label":"2,3", "x":3.75, "y":2}, + {"label":"2,4", "x":4.75, "y":2}, + {"label":"2,5", "x":5.75, "y":2}, + {"label":"2,6", "x":6.75, "y":2}, + {"label":"2,7", "x":7.75, "y":2}, + {"label":"2,8", "x":8.75, "y":2}, + {"label":"2,9", "x":9.75, "y":2}, + {"label":"2,10", "x":10.75, "y":2}, + {"label":"2,11", "x":11.75, "y":2}, + {"label":"2,12", "x":12.75, "y":2}, + {"label":"2,13", "x":13.75, "y":1, "w":1.25, "h":2}, + {"label":"2,14", "x":15.25, "y":1.75}, + + {"label":"3,0", "x":0, "y":3, "w":1.25}, + {"label":"3,1", "x":1.25, "y":3}, + {"label":"3,2", "x":2.25, "y":3}, + {"label":"3,3", "x":3.25, "y":3}, + {"label":"3,4", "x":4.25, "y":3}, + {"label":"3,5", "x":5.25, "y":3}, + {"label":"3,6", "x":6.25, "y":3}, + {"label":"3,7", "x":7.25, "y":3}, + {"label":"3,8", "x":8.25, "y":3}, + {"label":"3,9", "x":9.25, "y":3}, + {"label":"3,10", "x":10.25, "y":3}, + {"label":"3,11", "x":11.25, "y":3}, + {"label":"3,12", "x":12.25, "y":3, "w":1.75}, + {"label":"3,13", "x":14, "y":3}, + {"label":"3,14", "x":15.25, "y":2.75}, + + {"label":"4,0", "x":0, "y":4, "w":1.25}, + {"label":"4,1", "x":1.25, "y":4, "w":1.25}, + {"label":"4,2", "x":2.5, "y":4, "w":1.25}, + {"label":"4,6", "x":3.75, "y":4, "w":6.25}, + {"label":"4,9", "x":10, "y":4, "w":1.25}, + {"label":"4,10", "x":11.25, "y":4, "w":1.25}, + {"label":"4,12", "x":13, "y":4}, + {"label":"4,13", "x":14, "y":4}, + {"label":"4,14", "x":15, "y":4} + ] } } } diff --git a/keyboards/mechlovin/zed65/wearhaus66/wearhaus66.h b/keyboards/mechlovin/zed65/wearhaus66/wearhaus66.h index 8c4a0ee79a3..561ceedb9a7 100644 --- a/keyboards/mechlovin/zed65/wearhaus66/wearhaus66.h +++ b/keyboards/mechlovin/zed65/wearhaus66/wearhaus66.h @@ -19,6 +19,23 @@ along with this program. If not, see . #include "quantum.h" +/* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───────┐ + * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │1D │┌───┐ │0D │ 2u Backspace + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤│1E │ └─┬─────┤ + * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │2C │├───┤ │ │ + * 2.25u ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤│2E │ ┌──┴┐2D │ ISO Enter + * LShift │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2D │├───┤ │2C │ │ + * ┌────────┐ ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤│3E │ └───┴────┘ + * │30 │ │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │└───┘ + * └────────┘ ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┐ + * │40 │41 │42 │46 │49 │4A │ │4C │4D │4E │ + * └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ + * ┌─────┬───┬─────┬───────────────────────────┬─────┐ + * │40 │41 │42 │46 │4A │ Tsangan + * └─────┴───┴─────┴───────────────────────────┴─────┘ + */ + #define LAYOUT_all( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K1D, \ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K2C, K1E, \ @@ -33,7 +50,7 @@ along with this program. If not, see . { K40, K41, K42, KC_NO, KC_NO, KC_NO, K46, KC_NO, KC_NO, K49, K4A, KC_NO, K4C, K4D, K4E }, \ } -#define LAYOUT_65_ansi_blocker( \ +#define LAYOUT_ansi_blocker( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K2C, K1E, \ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2E, \ @@ -47,7 +64,7 @@ along with this program. If not, see . { K40, K41, K42, KC_NO, KC_NO, KC_NO, K46, KC_NO, KC_NO, K49, K4A, KC_NO, K4C, K4D, K4E }, \ } -#define LAYOUT_65_iso_blocker( \ +#define LAYOUT_iso_blocker( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, \ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, \ diff --git a/keyboards/mechwild/mercutio/keymaps/jonavin/readme.md b/keyboards/mechwild/mercutio/keymaps/jonavin/readme.md index 6255dadd05a..ed1395ede6c 100644 --- a/keyboards/mechwild/mercutio/keymaps/jonavin/readme.md +++ b/keyboards/mechwild/mercutio/keymaps/jonavin/readme.md @@ -30,7 +30,7 @@ Features {"C-A-D", KC_CAD}, // Ctrl-Alt-Del {"AltF4", KC_AF4}, {"PLAY", KC_MEDIA_PLAY_PAUSE}, - {"RESET", RESET}, // firmware flash mode + {"RESET", QK_BOOT}, // firmware flash mode }; - Additional encoder functionality diff --git a/keyboards/mechwild/murphpad/keymaps/jonavin/readme.md b/keyboards/mechwild/murphpad/keymaps/jonavin/readme.md index 0e389a5c376..ec76f0a415b 100644 --- a/keyboards/mechwild/murphpad/keymaps/jonavin/readme.md +++ b/keyboards/mechwild/murphpad/keymaps/jonavin/readme.md @@ -34,7 +34,7 @@ Special Features {"Break", KC_PAUS}, {"C-A-D", KC_CAD}, // Ctrl-Alt-Del {"AltF4", KC_AF4}, - {"RESET", RESET}, // firmware flash mode + {"RESET", QK_BOOT}, // firmware flash mode }; - Additional encoder functionality diff --git a/keyboards/melgeek/mach80/config.h b/keyboards/melgeek/mach80/config.h index aab6083eb07..878319836c7 100755 --- a/keyboards/melgeek/mach80/config.h +++ b/keyboards/melgeek/mach80/config.h @@ -25,7 +25,6 @@ /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ #define DEBOUNCE 3 -#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_KEYPRESSES #define RGB_MATRIX_LED_PROCESS_LIMIT 4 diff --git a/keyboards/melgeek/mj61/config.h b/keyboards/melgeek/mj61/config.h index 407beba1e8d..368538666b2 100644 --- a/keyboards/melgeek/mj61/config.h +++ b/keyboards/melgeek/mj61/config.h @@ -25,7 +25,6 @@ /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ #define DEBOUNCE 3 -#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_KEYPRESSES #define RGB_MATRIX_LED_PROCESS_LIMIT 4 diff --git a/keyboards/melgeek/mj63/config.h b/keyboards/melgeek/mj63/config.h index 407beba1e8d..368538666b2 100644 --- a/keyboards/melgeek/mj63/config.h +++ b/keyboards/melgeek/mj63/config.h @@ -25,7 +25,6 @@ /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ #define DEBOUNCE 3 -#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_KEYPRESSES #define RGB_MATRIX_LED_PROCESS_LIMIT 4 diff --git a/keyboards/melgeek/mj64/config.h b/keyboards/melgeek/mj64/config.h index 407beba1e8d..368538666b2 100644 --- a/keyboards/melgeek/mj64/config.h +++ b/keyboards/melgeek/mj64/config.h @@ -25,7 +25,6 @@ /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ #define DEBOUNCE 3 -#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_KEYPRESSES #define RGB_MATRIX_LED_PROCESS_LIMIT 4 diff --git a/keyboards/melgeek/mj65/config.h b/keyboards/melgeek/mj65/config.h index e009feed5b3..85dd49a4cac 100644 --- a/keyboards/melgeek/mj65/config.h +++ b/keyboards/melgeek/mj65/config.h @@ -25,7 +25,6 @@ /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ #define DEBOUNCE 3 -#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_KEYPRESSES #define RGB_MATRIX_LED_PROCESS_LIMIT 4 diff --git a/keyboards/melgeek/mojo68/config.h b/keyboards/melgeek/mojo68/config.h index 3ef18c6785e..058c8eeccb4 100755 --- a/keyboards/melgeek/mojo68/config.h +++ b/keyboards/melgeek/mojo68/config.h @@ -25,7 +25,6 @@ /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ #define DEBOUNCE 3 -#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_KEYPRESSES #define RGB_MATRIX_LED_PROCESS_LIMIT 4 diff --git a/keyboards/melgeek/mojo75/config.h b/keyboards/melgeek/mojo75/config.h index 67c79df4092..e354fcb40e5 100644 --- a/keyboards/melgeek/mojo75/config.h +++ b/keyboards/melgeek/mojo75/config.h @@ -25,7 +25,6 @@ /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ #define DEBOUNCE 3 -#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_KEYPRESSES #define RGB_MATRIX_LED_PROCESS_LIMIT 4 diff --git a/keyboards/melgeek/tegic/config.h b/keyboards/melgeek/tegic/config.h index b16fb73b0d4..9a5a5ed2ce2 100755 --- a/keyboards/melgeek/tegic/config.h +++ b/keyboards/melgeek/tegic/config.h @@ -25,7 +25,6 @@ /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ #define DEBOUNCE 3 -#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_KEYPRESSES #define RGB_MATRIX_LED_PROCESS_LIMIT 4 diff --git a/keyboards/melgeek/z70ultra/config.h b/keyboards/melgeek/z70ultra/config.h index e90c780a72e..357f67e691b 100644 --- a/keyboards/melgeek/z70ultra/config.h +++ b/keyboards/melgeek/z70ultra/config.h @@ -24,7 +24,6 @@ /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ #define DEBOUNCE 3 -#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_KEYPRESSES #define RGB_MATRIX_LED_PROCESS_LIMIT 4 diff --git a/keyboards/miller/gm862/config.h b/keyboards/miller/gm862/config.h index 16587a22d4a..c1e5bcfc387 100644 --- a/keyboards/miller/gm862/config.h +++ b/keyboards/miller/gm862/config.h @@ -23,7 +23,6 @@ /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ #define DEBOUNCE 3 #ifdef RGB_MATRIX_ENABLE -# 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_KEYPRESSES # define RGB_MATRIX_FRAMEBUFFER_EFFECTS diff --git a/keyboards/miller/gm862/gm862.c b/keyboards/miller/gm862/gm862.c index 08c9bfe73b3..2a783dd0a0c 100644 --- a/keyboards/miller/gm862/gm862.c +++ b/keyboards/miller/gm862/gm862.c @@ -72,11 +72,11 @@ led_config_t g_led_config = { { { 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, NO_LED,NO_LED, 52 }, { 53, 54, 55, NO_LED, NO_LED, 56, NO_LED, NO_LED, NO_LED, 57, 58, NO_LED,59, 60 } }, { - { 0, 0 }, { 16, 0 }, { 32, 0 }, { 48, 0 }, { 64, 0 }, { 80, 0 }, { 96, 0 }, { 112, 0 }, { 128, 0 }, { 144, 0 }, { 160, 0 }, { 176, 0 }, { 192, 0 }, { 216, 0 }, + { 0, 0 }, { 16, 0 }, { 32, 0 }, { 48, 0 }, { 64, 0 }, { 80, 0 }, { 96, 0 }, { 112, 0 }, { 128, 0 }, { 144, 0 }, { 160, 0 }, { 176, 0 }, { 192, 0 }, { 216, 0 }, { 4, 16 }, { 24, 16 }, { 40, 16 }, { 56, 16 }, { 72, 16 }, { 88, 16 }, { 104, 16 }, { 120, 16 }, { 136, 16 }, { 152, 16 }, { 168, 16 }, { 184, 16 }, { 200, 16 }, { 220, 16 }, - { 6, 32 }, { 28, 32 }, { 44, 32 }, { 60, 32 }, { 76, 32 }, { 92, 32 }, { 108, 32 }, { 124, 32 }, { 140, 32 }, { 156, 32 }, { 172, 32 }, { 188, 32 }, { 204, 32 }, + { 6, 32 }, { 28, 32 }, { 44, 32 }, { 60, 32 }, { 76, 32 }, { 92, 32 }, { 108, 32 }, { 124, 32 }, { 140, 32 }, { 156, 32 }, { 172, 32 }, { 188, 32 }, { 204, 32 }, { 10, 48 }, { 20, 48 }, { 52, 48 }, { 68, 48 }, { 84, 48 }, { 100, 48 }, { 116, 48 }, { 132, 48 }, { 148, 48 }, { 164, 48 }, { 180, 48 }, { 210, 48 }, - { 2, 64 }, { 22, 64 }, { 42, 64 }, { 102, 64 }, { 162, 64 }, { 182, 64 }, { 202, 64 }, { 222, 64 }, + { 2, 64 }, { 22, 64 }, { 42, 64 }, { 102, 64 }, { 162, 64 }, { 182, 64 }, { 202, 64 }, { 222, 64 }, }, { 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, @@ -86,21 +86,12 @@ led_config_t g_led_config = { { } }; #endif -void suspend_power_down_kb(void) { - rgb_matrix_set_suspend_state(true); - suspend_power_down_user(); -} - -void suspend_wakeup_init_kb(void) { - rgb_matrix_set_suspend_state(false); - suspend_wakeup_init_user(); -} - -__attribute__ ((weak)) -void rgb_matrix_indicators_user(void) -{ - if (host_keyboard_led_state().caps_lock) - { +bool rgb_matrix_indicators_kb(void) { + if (!rgb_matrix_indicators_user()) { + return false; + } + if (host_keyboard_led_state().caps_lock) { rgb_matrix_set_color(28, 0xFF, 0xFF, 0xFF); } + return true; } diff --git a/keyboards/misterknife/knife66/keymaps/zyber/keymap.c b/keyboards/misterknife/knife66/keymaps/zyber/keymap.c new file mode 100644 index 00000000000..cec762fb64a --- /dev/null +++ b/keyboards/misterknife/knife66/keymaps/zyber/keymap.c @@ -0,0 +1,40 @@ +/* +Copyright 2012,2013 Jun Wako + +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 "zyber.h" + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _BASE, + _FN +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_all( + KC_GESC, KC_1, KC_2, KC_3, TD(SSHT), KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NO, TD(END_HOME), + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, TD(LBRC), KC_RBRC, KC_BSLS, KC_DEL, + CTRL_C_UP, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, TD(SCLN), TD(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_NO, KC_LALT, KC_LGUI, KC_LGUI, LT(1, KC_SPC), KC_LGUI, KC_LALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT ), + + [_FN] = LAYOUT_all( + QK_BOOT, 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, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_MPRV, KC_MNXT, KC_TRNS, RGB_MOD, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT,KC_TRNS, KC_TRNS, KC_INS, RGB_SPI, + KC_CAPS, KC_TRNS, KC_TRNS, C(KC_C), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, C(KC_UP), RGB_SPD, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, C(KC_LEFT), C(KC_DOWN), C(KC_RGHT) ), +}; \ No newline at end of file diff --git a/keyboards/ml/gas75/keymaps/default/keymap.c b/keyboards/ml/gas75/keymaps/default/keymap.c index 65ece63bad8..aa72a3c8531 100644 --- a/keyboards/ml/gas75/keymaps/default/keymap.c +++ b/keyboards/ml/gas75/keymaps/default/keymap.c @@ -179,7 +179,7 @@ bool encoder_update_user(uint8_t index, bool clockwise) { } #endif -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_user(void) { rgb_matrix_set_color(2, 0, 0, 0); HSV hsv = rgb_matrix_config.hsv; @@ -198,4 +198,5 @@ void rgb_matrix_indicators_user(void) { rgb_matrix_set_color(2, 0, 0, 0); } } + return false; } diff --git a/keyboards/ml/gas75/keymaps/via/keymap.c b/keyboards/ml/gas75/keymaps/via/keymap.c index 46408fba689..b609f9d1429 100644 --- a/keyboards/ml/gas75/keymaps/via/keymap.c +++ b/keyboards/ml/gas75/keymaps/via/keymap.c @@ -199,7 +199,7 @@ bool encoder_update_user(uint8_t index, bool clockwise) { } #endif -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_user(void) { rgb_matrix_set_color(2, 0, 0, 0); HSV hsv = rgb_matrix_config.hsv; @@ -218,4 +218,5 @@ void rgb_matrix_indicators_user(void) { rgb_matrix_set_color(2, 0, 0, 0); } } + return false; } diff --git a/keyboards/mlego/m48/keymaps/default/keymap.c b/keyboards/mlego/m48/keymaps/default/keymap.c index 175f42b9b99..ca872bbe34a 100644 --- a/keyboards/mlego/m48/keymaps/default/keymap.c +++ b/keyboards/mlego/m48/keymaps/default/keymap.c @@ -100,7 +100,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------+------+------+------+------+------+------| * | | |MUSmod|Aud on|Audoff|AGnorm|AGswap| | | | | | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof|TermOn|TermOf| | | | + * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' diff --git a/keyboards/mlego/m48/keymaps/via/keymap.c b/keyboards/mlego/m48/keymaps/via/keymap.c index 34caea2cf49..c6916a7fb62 100644 --- a/keyboards/mlego/m48/keymaps/via/keymap.c +++ b/keyboards/mlego/m48/keymaps/via/keymap.c @@ -100,7 +100,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------+------+------+------+------+------+------| * | | |MUSmod|Aud on|Audoff|AGnorm|AGswap| | | | | | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof|TermOn|TermOf| | | | + * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' diff --git a/keyboards/mokey/ibis80/ibis80.h b/keyboards/mokey/ibis80/ibis80.h index ed2dbf71952..0f2c60a533a 100644 --- a/keyboards/mokey/ibis80/ibis80.h +++ b/keyboards/mokey/ibis80/ibis80.h @@ -31,46 +31,45 @@ * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ ┌──┴┐ │ ISO Enter * │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3D │ │2D │ │ * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐ └───┴────┘ - * │40 │41 │42 │43 │44 │45 │46 │47 │48 │49 │4A │4D │ │4F │ - * ├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─────┤ ┌───┼───┼───┐ + * │40 │41 │42 │43 │44 │45 │46 │47 │48 │49 │4A │4D │ │4F │ + * ├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─────┤ ┌───┼───┼───┐ * │50 │51 │52 │56 │5A │5B │5D │ │5E │5F │5G │ - * └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ + * └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ * ┌─────┐ ┌─────┬───────────────────────────┬─────┐ ┌─────┐ * │50 │ │52 │56 │5A │ │5D │ * └─────┘ └─────┴───────────────────────────┴─────┘ └─────┘ */ -#define LAYOUT(\ - 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, k3d, \ - k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4d, k4f, \ - k50, k51, k52, k56, k5a, k5b, k5d, k5e, k5f, k5g \ +#define LAYOUT_tkl_f13_ansi_tsangan(\ + 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, k3d, \ + k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4d, k4f, \ + k50, k51, k52, k56, k5a, k5b, 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, KC_NO, k3d, KC_NO, KC_NO, KC_NO }, \ - { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, KC_NO, KC_NO, k4d, KC_NO, k4f, KC_NO }, \ - { k50, k51, k52, KC_NO, KC_NO, KC_NO, k56, KC_NO, KC_NO, KC_NO, k5a, k5b, KC_NO, 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, XXX, k3d, XXX, XXX, XXX }, \ + { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, XXX, XXX, k4d, XXX, k4f, XXX }, \ + { k50, k51, k52, XXX, XXX, XXX, k56, XXX, XXX, XXX, k5a, k5b, XXX, k5d, k5e, k5f, k5g } \ } -#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, k1e, k1f, k1g, \ - k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k3d, k2e, k2f, k2g, \ - k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k2d, \ - k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4d, k4f, \ - k50, k52, k56, k5a, k5d, k5e, k5f, k5g \ +#define LAYOUT_tkl_f13_ansi_wkl(\ + 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, k3d, \ + k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4d, k4f, \ + k50, k52, k56, k5a, 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, k3d, k2e, k2f, k2g }, \ - { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, KC_NO, k2d, KC_NO, KC_NO, KC_NO }, \ - { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, KC_NO, 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, k5a, KC_NO, KC_NO, 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, XXX, k3d, XXX, XXX, XXX }, \ + { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, XXX, XXX, k4d, XXX, k4f, XXX }, \ + { k50, XXX, k52, XXX, XXX, XXX, k56, XXX, XXX, XXX, k5a, XXX, XXX, k5d, k5e, k5f, k5g } \ } - diff --git a/keyboards/mokey/ibis80/info.json b/keyboards/mokey/ibis80/info.json index d236eabc711..8f906681fa4 100644 --- a/keyboards/mokey/ibis80/info.json +++ b/keyboards/mokey/ibis80/info.json @@ -2,14 +2,17 @@ "keyboard_name": "ibis 80", "manufacturer": "Mokey", "url": "", - "maintainer": "Mokey", + "maintainer": "Runheme", "usb": { "vid": "0x6653", "pid": "0x3380", "device_version": "0.0.1" }, + "layout_aliases": { + "LAYOUT": "LAYOUT_tkl_f13_ansi_tsangan" + }, "layouts": { - "LAYOUT": { + "LAYOUT_tkl_f13_ansi_tsangan": { "layout": [ {"label": "k00", "x": 0, "y": 0}, {"label": "k01", "x": 1.25, "y": 0}, @@ -48,7 +51,7 @@ {"label": "k1E", "x": 15.25, "y": 1.5}, {"label": "k1F", "x": 16.25, "y": 1.5}, {"label": "k1G", "x": 17.25, "y": 1.5}, - + {"label": "k20", "x": 0, "y": 2.5, "w": 1.5}, {"label": "k21", "x": 1.5, "y": 2.5}, {"label": "k22", "x": 2.5, "y": 2.5}, @@ -110,7 +113,7 @@ {"label": "k5G", "x": 17.25, "y": 5.5} ] }, - "LAYOUT_all": { + "LAYOUT_tkl_f13_ansi_wkl": { "layout": [ {"label": "k00", "x": 0, "y": 0}, {"label": "k01", "x": 1.25, "y": 0}, @@ -149,7 +152,7 @@ {"label": "k1E", "x": 15.25, "y": 1.5}, {"label": "k1F", "x": 16.25, "y": 1.5}, {"label": "k1G", "x": 17.25, "y": 1.5}, - + {"label": "k20", "x": 0, "y": 2.5, "w": 1.5}, {"label": "k21", "x": 1.5, "y": 2.5}, {"label": "k22", "x": 2.5, "y": 2.5}, @@ -163,7 +166,7 @@ {"label": "k2A", "x": 10.5, "y": 2.5}, {"label": "k2B", "x": 11.5, "y": 2.5}, {"label": "k2C", "x": 12.5, "y": 2.5}, - {"label": "k3D", "x": 13.75, "y": 2.5, "w": 1.25, "h": 2}, + {"label": "k2D", "x": 13.5, "y": 2.5}, {"label": "k2E", "x": 15.25, "y": 2.5}, {"label": "k2F", "x": 16.25, "y": 2.5}, @@ -181,7 +184,7 @@ {"label": "k39", "x": 9.75, "y": 3.5}, {"label": "k3A", "x": 10.75, "y": 3.5}, {"label": "k3B", "x": 11.75, "y": 3.5}, - {"label": "k2C", "x": 12.75, "y": 3.5}, + {"label": "k3D", "x": 12.75, "y": 3.5, "w": 2.25}, {"label": "k40", "x": 0, "y": 4.5, "w": 2.25}, {"label": "k41", "x": 2.25, "y": 4.5}, @@ -208,6 +211,6 @@ {"label": "k5F", "x": 16.25, "y": 5.5}, {"label": "k5G", "x": 17.25, "y": 5.5} ] - } + } } } diff --git a/keyboards/mokey/ibis80/keymaps/default/keymap.c b/keyboards/mokey/ibis80/keymaps/default/keymap.c index fefeede9660..3a96b96b166 100644 --- a/keyboards/mokey/ibis80/keymaps/default/keymap.c +++ b/keyboards/mokey/ibis80/keymaps/default/keymap.c @@ -16,12 +16,12 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( - KC_GESC, 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_BRMD, 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_INSERT, 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_DELETE, KC_END, KC_PGDOWN, - 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_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_LWIN, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + [0] = LAYOUT_tkl_f13_ansi_tsangan( + QK_GESC, 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_SCRL, 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_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_LWIN, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ) }; diff --git a/keyboards/mokey/ibis80/keymaps/via/keymap.c b/keyboards/mokey/ibis80/keymaps/via/keymap.c index 94678a8201e..b8660178f32 100644 --- a/keyboards/mokey/ibis80/keymaps/via/keymap.c +++ b/keyboards/mokey/ibis80/keymaps/via/keymap.c @@ -16,36 +16,36 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_all( - KC_GESC, 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_BRMD, 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_INSERT, 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_DELETE, KC_END, KC_PGDOWN, - 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_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - ), - [1] = LAYOUT_all( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______ - ), - [2] = LAYOUT_all( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______ - ), - [3] = LAYOUT_all( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______ - ) + [0] = LAYOUT_tkl_f13_ansi_tsangan( + QK_GESC, 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_SCRL, 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_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_LWIN, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_tkl_f13_ansi_tsangan( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [2] = LAYOUT_tkl_f13_ansi_tsangan( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [3] = LAYOUT_tkl_f13_ansi_tsangan( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) }; diff --git a/keyboards/momokai/tap_trio/rules.mk b/keyboards/momokai/tap_trio/rules.mk index 07e6f2d07f5..59e0e1381f6 100644 --- a/keyboards/momokai/tap_trio/rules.mk +++ b/keyboards/momokai/tap_trio/rules.mk @@ -8,7 +8,7 @@ BOOTLOADER = atmel-dfu # change yes to no to disable # BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = no # Mouse keys +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 diff --git a/keyboards/monoflex60/info.json b/keyboards/monoflex60/info.json index 64fc9f789a1..a724e5de75d 100644 --- a/keyboards/monoflex60/info.json +++ b/keyboards/monoflex60/info.json @@ -1,13 +1,17 @@ { "keyboard_name": "Monoflex 60", - "manufacturer": "SanitGo Customs", + "manufacturer": "SantiGo Customs", "url": "", - "maintainer": "keyten", + "maintainer": "key10iq", "usb": { "vid": "0xDEB4", "pid": "0x60EB", "device_version": "0.0.1" }, + "community_layouts": [ + "60_tsangan_hhkb", + "60_iso_tsangan" + ], "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/monoflex60/keymaps/60_iso_tsangan/keymap.c b/keyboards/monoflex60/keymaps/60_iso_tsangan/keymap.c index deb9f95b228..f547250474a 100644 --- a/keyboards/monoflex60/keymaps/60_iso_tsangan/keymap.c +++ b/keyboards/monoflex60/keymaps/60_iso_tsangan/keymap.c @@ -19,16 +19,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_60_iso_tsangan( - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_ENT, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, MO(1), - KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL), + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, MO(1), KC_ENT, + KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL), [1] = LAYOUT_60_iso_tsangan( - _______, 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_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) }; diff --git a/keyboards/monoflex60/keymaps/60_tsangan_hhkb/keymap.c b/keyboards/monoflex60/keymaps/60_tsangan_hhkb/keymap.c index 8a5630554eb..cd308a9d0ca 100644 --- a/keyboards/monoflex60/keymaps/60_tsangan_hhkb/keymap.c +++ b/keyboards/monoflex60/keymaps/60_tsangan_hhkb/keymap.c @@ -19,16 +19,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_60_tsangan_hhkb( - 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_GRV, - 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_BSPC, - 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(1), + 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_GRV, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL), [1] = LAYOUT_60_tsangan_hhkb( - _______, 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_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) }; diff --git a/keyboards/monoflex60/keymaps/default/keymap.c b/keyboards/monoflex60/keymaps/default/keymap.c index 2572aad3554..ce97bc3b818 100644 --- a/keyboards/monoflex60/keymaps/default/keymap.c +++ b/keyboards/monoflex60/keymaps/default/keymap.c @@ -19,16 +19,16 @@ 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_GRV, - 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_BSPC, - KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_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_GRV, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL), [1] = LAYOUT_all( - _______, 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_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) }; diff --git a/keyboards/monoflex60/keymaps/via/keymap.c b/keyboards/monoflex60/keymaps/via/keymap.c index 92fee8dd1e9..540ce671ef4 100644 --- a/keyboards/monoflex60/keymaps/via/keymap.c +++ b/keyboards/monoflex60/keymaps/via/keymap.c @@ -19,30 +19,30 @@ 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_GRV, - 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_BSPC, - KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_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_GRV, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL), [1] = LAYOUT_all( - _______, 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_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [2] = LAYOUT_all( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [3] = LAYOUT_all( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) }; diff --git a/keyboards/monoflex60/monoflex60.h b/keyboards/monoflex60/monoflex60.h index cac93008636..49fd36d88f5 100644 --- a/keyboards/monoflex60/monoflex60.h +++ b/keyboards/monoflex60/monoflex60.h @@ -34,9 +34,9 @@ * └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ */ #define LAYOUT_all( \ - k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k2d, \ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \ - k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, \ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \ k40, k41, k43, k47, k4b, k4c, k4d \ ) { \ @@ -61,9 +61,9 @@ * └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ */ #define LAYOUT_60_tsangan_hhkb( \ - k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k2d, \ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \ - k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, \ k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \ k40, k41, k43, k47, k4b, k4c, k4d \ ) { \ @@ -89,8 +89,8 @@ */ #define LAYOUT_60_iso_tsangan( \ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, \ - k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \ - k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k1d, \ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, \ k40, k41, k43, k47, k4b, k4c, k4d \ ) { \ diff --git a/keyboards/monstargear/xo87/rgb/rgb.c b/keyboards/monstargear/xo87/rgb/rgb.c index 6c08b66da23..c0649534443 100644 --- a/keyboards/monstargear/xo87/rgb/rgb.c +++ b/keyboards/monstargear/xo87/rgb/rgb.c @@ -64,17 +64,11 @@ led_config_t g_led_config = { { 1, 8, 8, 8, 4, 4, 4, 4, 1, 1, 1, 1, 4, 4, 4, 4, 1, 1, 1 } }; -void suspend_power_down_kb(void) { - rgb_matrix_set_suspend_state(true); - suspend_power_down_user(); -} -void suspend_wakeup_init_kb(void) { - rgb_matrix_set_suspend_state(false); - suspend_wakeup_init_user(); -} - -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_kb(void) { + if (!rgb_matrix_indicators_user()) { + return false; + } led_t host_leds = host_keyboard_led_state(); if (host_leds.scroll_lock) { rgb_matrix_set_color(92, 0xFF, 0x0, 0x0); @@ -91,4 +85,5 @@ void rgb_matrix_indicators_user(void) { } else { rgb_matrix_set_color(94, 0x0, 0x0, 0x0); } + return true; } diff --git a/keyboards/moonlander/keymaps/drashna/rules.mk b/keyboards/moonlander/keymaps/drashna/rules.mk index feb91c774b3..927d956e9df 100644 --- a/keyboards/moonlander/keymaps/drashna/rules.mk +++ b/keyboards/moonlander/keymaps/drashna/rules.mk @@ -2,5 +2,5 @@ TAP_DANCE_ENABLE = yes BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite UNICODE_ENABLE = yes UNICODEMAP_ENABLE = no -AUTOCORRECTION_ENABLE = yes +AUTOCORRECT_ENABLE = yes CAPS_WORD_ENABLE = yes diff --git a/keyboards/mss_studio/m63_rgb/keymaps/default/keymap.c b/keyboards/mss_studio/m63_rgb/keymaps/default/keymap.c index cdff70d69c0..7ae43b355d4 100644 --- a/keyboards/mss_studio/m63_rgb/keymaps/default/keymap.c +++ b/keyboards/mss_studio/m63_rgb/keymaps/default/keymap.c @@ -168,7 +168,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return true; } -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_user(void) { HSV hsv = rgb_matrix_config.hsv; uint8_t time = scale16by8(g_rgb_timer, qadd8(32, 1)); hsv.h = time; @@ -185,4 +185,5 @@ void rgb_matrix_indicators_user(void) { rgb_matrix_set_color(28, 0, 0, 0); } } + return false; } diff --git a/keyboards/mss_studio/m63_rgb/keymaps/via/keymap.c b/keyboards/mss_studio/m63_rgb/keymaps/via/keymap.c index cdff70d69c0..7ae43b355d4 100644 --- a/keyboards/mss_studio/m63_rgb/keymaps/via/keymap.c +++ b/keyboards/mss_studio/m63_rgb/keymaps/via/keymap.c @@ -168,7 +168,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return true; } -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_user(void) { HSV hsv = rgb_matrix_config.hsv; uint8_t time = scale16by8(g_rgb_timer, qadd8(32, 1)); hsv.h = time; @@ -185,4 +185,5 @@ void rgb_matrix_indicators_user(void) { rgb_matrix_set_color(28, 0, 0, 0); } } + return false; } diff --git a/keyboards/mss_studio/m64_rgb/keymaps/default/keymap.c b/keyboards/mss_studio/m64_rgb/keymaps/default/keymap.c index da5c7c40c32..7e66cc4f325 100644 --- a/keyboards/mss_studio/m64_rgb/keymaps/default/keymap.c +++ b/keyboards/mss_studio/m64_rgb/keymaps/default/keymap.c @@ -164,7 +164,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return true; } -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_user(void) { HSV hsv = rgb_matrix_config.hsv; uint8_t time = scale16by8(g_rgb_timer, qadd8(32, 1)); hsv.h = time; @@ -181,4 +181,5 @@ void rgb_matrix_indicators_user(void) { rgb_matrix_set_color(28, 0, 0, 0); } } + return false; } diff --git a/keyboards/mss_studio/m64_rgb/keymaps/via/keymap.c b/keyboards/mss_studio/m64_rgb/keymaps/via/keymap.c index da5c7c40c32..7e66cc4f325 100644 --- a/keyboards/mss_studio/m64_rgb/keymaps/via/keymap.c +++ b/keyboards/mss_studio/m64_rgb/keymaps/via/keymap.c @@ -164,7 +164,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return true; } -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_user(void) { HSV hsv = rgb_matrix_config.hsv; uint8_t time = scale16by8(g_rgb_timer, qadd8(32, 1)); hsv.h = time; @@ -181,4 +181,5 @@ void rgb_matrix_indicators_user(void) { rgb_matrix_set_color(28, 0, 0, 0); } } + return false; } diff --git a/keyboards/mt/mt64rgb/keymaps/default/keymap.c b/keyboards/mt/mt64rgb/keymaps/default/keymap.c index 84f3b1d35e1..7cff3be34c8 100644 --- a/keyboards/mt/mt64rgb/keymaps/default/keymap.c +++ b/keyboards/mt/mt64rgb/keymaps/default/keymap.c @@ -36,11 +36,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ) }; -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_user(void) { if (layer_state_is(1)) { rgb_matrix_set_color(77,0xFF, 0x80, 0x00); } if (host_keyboard_led_state().caps_lock) { rgb_matrix_set_color(28, 0xFF, 0xFF, 0xFF); } + return false; } diff --git a/keyboards/mt/mt64rgb/keymaps/via/keymap.c b/keyboards/mt/mt64rgb/keymaps/via/keymap.c index 37c3c18259d..0fa1c1b85ff 100644 --- a/keyboards/mt/mt64rgb/keymaps/via/keymap.c +++ b/keyboards/mt/mt64rgb/keymaps/via/keymap.c @@ -45,11 +45,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), }; -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_user(void) { if (layer_state_is(1)) { rgb_matrix_set_color(77,0xFF, 0x80, 0x00); } if (host_keyboard_led_state().caps_lock) { rgb_matrix_set_color(28, 0xFF, 0xFF, 0xFF); } + return false; } diff --git a/keyboards/mt/mt84/keymaps/default/keymap.c b/keyboards/mt/mt84/keymaps/default/keymap.c index bb7d5b447fb..40e1aa0b902 100644 --- a/keyboards/mt/mt84/keymaps/default/keymap.c +++ b/keyboards/mt/mt84/keymaps/default/keymap.c @@ -42,7 +42,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ) }; -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_user(void) { led_t led_state = host_keyboard_led_state(); switch (get_highest_layer(layer_state)) { case _FN: @@ -52,4 +52,5 @@ void rgb_matrix_indicators_user(void) { if (led_state.caps_lock) { rgb_matrix_set_color(46, 0xFF, 0xFF, 0xFF); } + return false; } diff --git a/keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/keymap_stuff.h b/keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/keymap_stuff.h index eea031698a0..7fadbdc39c8 100644 --- a/keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/keymap_stuff.h +++ b/keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/keymap_stuff.h @@ -75,7 +75,7 @@ enum layer_keycodes { G_PRE, //Gradient presets REF_G, //Toggle between linear and reflected gradient G_FLIP, //Flip the gradient colors - + //Custom led effect keycode RGB_C_E, //Cycle user effect }; @@ -286,7 +286,7 @@ bool encoder_update_user(uint8_t index, bool clockwise) { } #endif -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_user(void) { switch (biton32(layer_state)) { case _FN: rgb_matrix_set_color(16, 0, 0, 0); rgb_matrix_set_color(17, 0, 0, 0); rgb_matrix_set_color(18, 0, 0, 0); rgb_matrix_set_color(21, 0, 0, 0); @@ -332,4 +332,5 @@ void rgb_matrix_indicators_user(void) { rgb_matrix_set_color(52, 0, 0, 0); } } + return false; } diff --git a/keyboards/mwstudio/mw65_rgb/keymaps/thearesia/keymap.c b/keyboards/mwstudio/mw65_rgb/keymaps/thearesia/keymap.c index 216ae1e09f3..f4625bf7a7c 100644 --- a/keyboards/mwstudio/mw65_rgb/keymaps/thearesia/keymap.c +++ b/keyboards/mwstudio/mw65_rgb/keymaps/thearesia/keymap.c @@ -181,7 +181,7 @@ bool encoder_update_user(uint8_t index, bool clockwise) { } #endif -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_user(void) { HSV hsv = rgb_matrix_config.hsv; uint8_t time = scale16by8(g_rgb_timer, qadd8(32, 1)); hsv.h = time; @@ -198,4 +198,5 @@ void rgb_matrix_indicators_user(void) { rgb_matrix_set_color(52, 0, 0, 0); } } + return false; } diff --git a/keyboards/mwstudio/mw65_rgb/keymaps/via/keymap.c b/keyboards/mwstudio/mw65_rgb/keymaps/via/keymap.c index ddcd3f66424..4204b7acd8e 100644 --- a/keyboards/mwstudio/mw65_rgb/keymaps/via/keymap.c +++ b/keyboards/mwstudio/mw65_rgb/keymaps/via/keymap.c @@ -104,7 +104,7 @@ bool encoder_update_user(uint8_t index, bool clockwise) { } #endif -void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { +bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { if (user_config.top_rgb_change) { @@ -125,4 +125,5 @@ void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { RGB_MATRIX_INDICATOR_SET_COLOR(i, 0, 0, 0); } } + return false; } diff --git a/keyboards/mwstudio/mw75r2/keymaps/via/keymap.c b/keyboards/mwstudio/mw75r2/keymaps/via/keymap.c index 082aa03876b..bdcd738708e 100644 --- a/keyboards/mwstudio/mw75r2/keymaps/via/keymap.c +++ b/keyboards/mwstudio/mw75r2/keymaps/via/keymap.c @@ -143,7 +143,7 @@ bool encoder_update_user(uint8_t index, bool clockwise) { #endif -void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { +bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { if (user_config.top_rgb_change) { @@ -168,4 +168,5 @@ void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { RGB_MATRIX_INDICATOR_SET_COLOR(i, 0, 0, 0); } } + return false; } diff --git a/keyboards/neson_design/700e/700e.h b/keyboards/neson_design/700e/700e.h index f096868d321..c9667eefe24 100644 --- a/keyboards/neson_design/700e/700e.h +++ b/keyboards/neson_design/700e/700e.h @@ -22,12 +22,30 @@ #define ___ KC_NO +/* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┐ ┌───────┐ + * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │4D │ │0E │0F │1F │ │4D │ 2u Backspace + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ├───┼───┼───┤ └─┬─────┤ + * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │ │1E │2E │2F │ │ │ + * 2.25u ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ ┌──┴┐2D │ ISO Enter + * LShift │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2D │ │2C │ │ + * ┌────────┐ ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ ┌─┴───┴────┤ + * │30 │ │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │ │3E │ │3C │ 2.75u RShift + * └────────┘ ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴───┴───┼───┴┬────┬┴───┤ ┌───┼───┼───┐ └──────────┘ + * │40 │41 │42 │┌───────────────────────────┐│49 │4B │4C │ │3F │4E │4F │ + * └────┴────┴────┘│4A │└────┴────┴────┘ └───┴───┴───┘ + * └───────────────────────────┘ + * ┌───┬─────┐ ┌─────┬───┐ + * │41 │42 │ │49 │4B │ + * └───┴─────┘ └─────┴───┘ + */ + #define LAYOUT_all( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K4D, K0E, K0F, K1F, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K2E, K2F,\ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \ - K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \ - K40, K41, K42, K4A, K49, K4B, K4C, K3F, K4E, K4F\ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K4D, K0E, K0F, K1F, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K2E, K2F, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \ + K40, K41, K42, K4A, K49, K4B, K4C, K3F, K4E, K4F \ ) \ { \ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \ @@ -36,3 +54,33 @@ { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F }, \ { K40, K41, K42, ___, ___, ___, ___, ___, ___, K49, K4A, K4B, K4C, K4D, K4E, K4F }, \ } + +#define LAYOUT_ansi_tsangan( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K4D, K0E, K0F, K1F, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K2E, K2F, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3E, \ + K40, K41, K42, K4A, K49, K4B, K4C, K3F, K4E, K4F \ +) \ +{ \ + { 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, K1E, K1F }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, ___, K2D, K2E, K2F }, \ + { K30, ___, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, ___, K3E, K3F }, \ + { K40, K41, K42, ___, ___, ___, ___, ___, ___, K49, K4A, K4B, K4C, K4D, K4E, K4F }, \ +} + +#define LAYOUT_iso_tsangan( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K4D, K0E, K0F, K1F, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, K2E, K2F, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3E, \ + K40, K41, K42, K4A, K49, K4B, K4C, K3F, K4E, K4F \ +) \ +{ \ + { 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, ___, K1E, K1F }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, ___, K3E, K3F }, \ + { K40, K41, K42, ___, ___, ___, ___, ___, ___, K49, K4A, K4B, K4C, K4D, K4E, K4F }, \ +} diff --git a/keyboards/neson_design/700e/config.h b/keyboards/neson_design/700e/config.h index d5a35e21efd..54863ce815c 100644 --- a/keyboards/neson_design/700e/config.h +++ b/keyboards/neson_design/700e/config.h @@ -54,7 +54,15 @@ //rgb light setting #define RGBLED_NUM 68 #define RGB_DI_PIN D5 -#define RGBLIGHT_ANIMATIONS +#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_HUE_STEP 8 #define RGBLIGHT_SAT_STEP 8 #define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/neson_design/700e/info.json b/keyboards/neson_design/700e/info.json index 4d4d4270970..43b5382d7ef 100644 --- a/keyboards/neson_design/700e/info.json +++ b/keyboards/neson_design/700e/info.json @@ -2,7 +2,7 @@ "keyboard_name": "700E", "manufacturer": "Neson Design", "url": "", - "maintainer": "qmk", + "maintainer": "yulei", "usb": { "vid": "0x4E65", "pid": "0x700E", @@ -10,8 +10,243 @@ }, "layouts": { "LAYOUT_all": { - "layout": - [{"label":"0,0", "x":0, "y":0}, {"label":"0,1", "x":1, "y":0}, {"label":"0,2", "x":2, "y":0}, {"label":"0,3", "x":3, "y":0}, {"label":"0,4", "x":4, "y":0}, {"label":"0,5", "x":5, "y":0}, {"label":"0,6", "x":6, "y":0}, {"label":"0,7", "x":7, "y":0}, {"label":"0,8", "x":8, "y":0}, {"label":"0,9", "x":9, "y":0}, {"label":"0,10", "x":10, "y":0}, {"label":"0,11", "x":11, "y":0}, {"label":"0,12", "x":12, "y":0}, {"label":"0,13", "x":13, "y":0}, {"label":"4,13", "x":14, "y":0}, {"label":"0,14", "x":15.5, "y":0}, {"label":"0,15", "x":16.5, "y":0}, {"label":"1,15", "x":17.5, "y":0}, {"label":"1,0", "x":0, "y":1, "w":1.5}, {"label":"1,1", "x":1.5, "y":1}, {"label":"1,2", "x":2.5, "y":1}, {"label":"1,3", "x":3.5, "y":1}, {"label":"1,4", "x":4.5, "y":1}, {"label":"1,5", "x":5.5, "y":1}, {"label":"1,6", "x":6.5, "y":1}, {"label":"1,7", "x":7.5, "y":1}, {"label":"1,8", "x":8.5, "y":1}, {"label":"1,9", "x":9.5, "y":1}, {"label":"1,10", "x":10.5, "y":1}, {"label":"1,11", "x":11.5, "y":1}, {"label":"1,12", "x":12.5, "y":1}, {"label":"1,13", "x":13.5, "y":1, "w":1.5}, {"label":"1,14", "x":15.5, "y":1}, {"label":"2,14", "x":16.5, "y":1}, {"label":"2,15", "x":17.5, "y":1}, {"label":"2,0", "x":0, "y":2, "w":1.75}, {"label":"2,1", "x":1.75, "y":2}, {"label":"2,2", "x":2.75, "y":2}, {"label":"2,3", "x":3.75, "y":2}, {"label":"2,4", "x":4.75, "y":2}, {"label":"2,5", "x":5.75, "y":2}, {"label":"2,6", "x":6.75, "y":2}, {"label":"2,7", "x":7.75, "y":2}, {"label":"2,8", "x":8.75, "y":2}, {"label":"2,9", "x":9.75, "y":2}, {"label":"2,10", "x":10.75, "y":2}, {"label":"2,11", "x":11.75, "y":2}, {"label":"2,12", "x":12.75, "y":2}, {"label":"2,13", "x":13.75, "y":2}, {"label":"3,0", "x":0, "y":3, "w":1.25}, {"label":"3,1", "x":1.25, "y":3}, {"label":"3,2", "x":2.25, "y":3}, {"label":"3,3", "x":3.25, "y":3}, {"label":"3,4", "x":4.25, "y":3}, {"label":"3,5", "x":5.25, "y":3}, {"label":"3,6", "x":6.25, "y":3}, {"label":"3,7", "x":7.25, "y":3}, {"label":"3,8", "x":8.25, "y":3}, {"label":"3,9", "x":9.25, "y":3}, {"label":"3,10", "x":10.25, "y":3}, {"label":"3,11", "x":11.25, "y":3}, {"label":"3,12", "x":12.25, "y":3, "w":1.75}, {"label":"3,13", "x":14, "y":3}, {"label":"3,14", "x":16.5, "y":3}, {"label":"4,0", "x":0, "y":4, "w":1.25}, {"label":"4,1", "x":1.25, "y":4, "w":1.25}, {"label":"4,2", "x":2.5, "y":4, "w":1.25}, {"label":"4,9", "x":11.25, "y":4, "w":1.25}, {"label":"4,11", "x":12.5, "y":4, "w":1.25}, {"label":"4,12", "x":13.75, "y":4, "w":1.25}, {"label":"3,15", "x":15.5, "y":4}, {"label":"4,14", "x":16.5, "y":4}, {"label":"4,15", "x":17.5, "y":4}, {"label":"4,10", "x":4, "y":4.25, "w":7}] + "layout": [ + {"label":"0,0", "x":0, "y":0}, + {"label":"0,1", "x":1, "y":0}, + {"label":"0,2", "x":2, "y":0}, + {"label":"0,3", "x":3, "y":0}, + {"label":"0,4", "x":4, "y":0}, + {"label":"0,5", "x":5, "y":0}, + {"label":"0,6", "x":6, "y":0}, + {"label":"0,7", "x":7, "y":0}, + {"label":"0,8", "x":8, "y":0}, + {"label":"0,9", "x":9, "y":0}, + {"label":"0,10", "x":10, "y":0}, + {"label":"0,11", "x":11, "y":0}, + {"label":"0,12", "x":12, "y":0}, + {"label":"0,13", "x":13, "y":0}, + {"label":"4,13", "x":14, "y":0}, + {"label":"0,14", "x":15.5, "y":0}, + {"label":"0,15", "x":16.5, "y":0}, + {"label":"1,15", "x":17.5, "y":0}, + + {"label":"1,0", "x":0, "y":1, "w":1.5}, + {"label":"1,1", "x":1.5, "y":1}, + {"label":"1,2", "x":2.5, "y":1}, + {"label":"1,3", "x":3.5, "y":1}, + {"label":"1,4", "x":4.5, "y":1}, + {"label":"1,5", "x":5.5, "y":1}, + {"label":"1,6", "x":6.5, "y":1}, + {"label":"1,7", "x":7.5, "y":1}, + {"label":"1,8", "x":8.5, "y":1}, + {"label":"1,9", "x":9.5, "y":1}, + {"label":"1,10", "x":10.5, "y":1}, + {"label":"1,11", "x":11.5, "y":1}, + {"label":"1,12", "x":12.5, "y":1}, + {"label":"1,13", "x":13.5, "y":1, "w":1.5}, + {"label":"1,14", "x":15.5, "y":1}, + {"label":"2,14", "x":16.5, "y":1}, + {"label":"2,15", "x":17.5, "y":1}, + + {"label":"2,0", "x":0, "y":2, "w":1.75}, + {"label":"2,1", "x":1.75, "y":2}, + {"label":"2,2", "x":2.75, "y":2}, + {"label":"2,3", "x":3.75, "y":2}, + {"label":"2,4", "x":4.75, "y":2}, + {"label":"2,5", "x":5.75, "y":2}, + {"label":"2,6", "x":6.75, "y":2}, + {"label":"2,7", "x":7.75, "y":2}, + {"label":"2,8", "x":8.75, "y":2}, + {"label":"2,9", "x":9.75, "y":2}, + {"label":"2,10", "x":10.75, "y":2}, + {"label":"2,11", "x":11.75, "y":2}, + {"label":"2,12", "x":12.75, "y":2}, + {"label":"2,13", "x":13.75, "y":2, "w":1.25}, + + {"label":"3,0", "x":0, "y":3, "w":1.25}, + {"label":"3,1", "x":1.25, "y":3}, + {"label":"3,2", "x":2.25, "y":3}, + {"label":"3,3", "x":3.25, "y":3}, + {"label":"3,4", "x":4.25, "y":3}, + {"label":"3,5", "x":5.25, "y":3}, + {"label":"3,6", "x":6.25, "y":3}, + {"label":"3,7", "x":7.25, "y":3}, + {"label":"3,8", "x":8.25, "y":3}, + {"label":"3,9", "x":9.25, "y":3}, + {"label":"3,10", "x":10.25, "y":3}, + {"label":"3,11", "x":11.25, "y":3}, + {"label":"3,12", "x":12.25, "y":3, "w":1.75}, + {"label":"3,13", "x":14, "y":3}, + {"label":"3,14", "x":16.5, "y":3}, + + {"label":"4,0", "x":0, "y":4, "w":1.25}, + {"label":"4,1", "x":1.25, "y":4, "w":1.25}, + {"label":"4,2", "x":2.5, "y":4, "w":1.25}, + {"label":"4,10", "x":4, "y":4.25, "w":7}, + {"label":"4,9", "x":11.25, "y":4, "w":1.25}, + {"label":"4,11", "x":12.5, "y":4, "w":1.25}, + {"label":"4,12", "x":13.75, "y":4, "w":1.25}, + {"label":"3,15", "x":15.5, "y":4}, + {"label":"4,14", "x":16.5, "y":4}, + {"label":"4,15", "x":17.5, "y":4} + ] + }, + "LAYOUT_ansi_tsangan": { + "layout": [ + {"label":"0,0", "x":0, "y":0}, + {"label":"0,1", "x":1, "y":0}, + {"label":"0,2", "x":2, "y":0}, + {"label":"0,3", "x":3, "y":0}, + {"label":"0,4", "x":4, "y":0}, + {"label":"0,5", "x":5, "y":0}, + {"label":"0,6", "x":6, "y":0}, + {"label":"0,7", "x":7, "y":0}, + {"label":"0,8", "x":8, "y":0}, + {"label":"0,9", "x":9, "y":0}, + {"label":"0,10", "x":10, "y":0}, + {"label":"0,11", "x":11, "y":0}, + {"label":"0,12", "x":12, "y":0}, + {"label":"4,13", "x":13, "y":0, "w":2}, + {"label":"0,14", "x":15.5, "y":0}, + {"label":"0,15", "x":16.5, "y":0}, + {"label":"1,15", "x":17.5, "y":0}, + + {"label":"1,0", "x":0, "y":1, "w":1.5}, + {"label":"1,1", "x":1.5, "y":1}, + {"label":"1,2", "x":2.5, "y":1}, + {"label":"1,3", "x":3.5, "y":1}, + {"label":"1,4", "x":4.5, "y":1}, + {"label":"1,5", "x":5.5, "y":1}, + {"label":"1,6", "x":6.5, "y":1}, + {"label":"1,7", "x":7.5, "y":1}, + {"label":"1,8", "x":8.5, "y":1}, + {"label":"1,9", "x":9.5, "y":1}, + {"label":"1,10", "x":10.5, "y":1}, + {"label":"1,11", "x":11.5, "y":1}, + {"label":"1,12", "x":12.5, "y":1}, + {"label":"1,13", "x":13.5, "y":1, "w":1.5}, + {"label":"1,14", "x":15.5, "y":1}, + {"label":"2,14", "x":16.5, "y":1}, + {"label":"2,15", "x":17.5, "y":1}, + + {"label":"2,0", "x":0, "y":2, "w":1.75}, + {"label":"2,1", "x":1.75, "y":2}, + {"label":"2,2", "x":2.75, "y":2}, + {"label":"2,3", "x":3.75, "y":2}, + {"label":"2,4", "x":4.75, "y":2}, + {"label":"2,5", "x":5.75, "y":2}, + {"label":"2,6", "x":6.75, "y":2}, + {"label":"2,7", "x":7.75, "y":2}, + {"label":"2,8", "x":8.75, "y":2}, + {"label":"2,9", "x":9.75, "y":2}, + {"label":"2,10", "x":10.75, "y":2}, + {"label":"2,11", "x":11.75, "y":2}, + {"label":"2,13", "x":12.75, "y":2, "w":2.25}, + + {"label":"3,0", "x":0, "y":3, "w":2.25}, + {"label":"3,2", "x":2.25, "y":3}, + {"label":"3,3", "x":3.25, "y":3}, + {"label":"3,4", "x":4.25, "y":3}, + {"label":"3,5", "x":5.25, "y":3}, + {"label":"3,6", "x":6.25, "y":3}, + {"label":"3,7", "x":7.25, "y":3}, + {"label":"3,8", "x":8.25, "y":3}, + {"label":"3,9", "x":9.25, "y":3}, + {"label":"3,10", "x":10.25, "y":3}, + {"label":"3,11", "x":11.25, "y":3}, + {"label":"3,12", "x":12.25, "y":3, "w":2.75}, + {"label":"3,14", "x":16.5, "y":3}, + + {"label":"4,0", "x":0, "y":4, "w":1.25}, + {"label":"4,1", "x":1.25, "y":4, "w":1.25}, + {"label":"4,2", "x":2.5, "y":4, "w":1.25}, + {"label":"4,10", "x":4, "y":4.25, "w":7}, + {"label":"4,9", "x":11.25, "y":4, "w":1.25}, + {"label":"4,11", "x":12.5, "y":4, "w":1.25}, + {"label":"4,12", "x":13.75, "y":4, "w":1.25}, + {"label":"3,15", "x":15.5, "y":4}, + {"label":"4,14", "x":16.5, "y":4}, + {"label":"4,15", "x":17.5, "y":4} + ] + }, + "LAYOUT_iso_tsangan": { + "layout": [ + {"label":"0,0", "x":0, "y":0}, + {"label":"0,1", "x":1, "y":0}, + {"label":"0,2", "x":2, "y":0}, + {"label":"0,3", "x":3, "y":0}, + {"label":"0,4", "x":4, "y":0}, + {"label":"0,5", "x":5, "y":0}, + {"label":"0,6", "x":6, "y":0}, + {"label":"0,7", "x":7, "y":0}, + {"label":"0,8", "x":8, "y":0}, + {"label":"0,9", "x":9, "y":0}, + {"label":"0,10", "x":10, "y":0}, + {"label":"0,11", "x":11, "y":0}, + {"label":"0,12", "x":12, "y":0}, + {"label":"4,13", "x":13, "y":0, "w":2}, + {"label":"0,14", "x":15.5, "y":0}, + {"label":"0,15", "x":16.5, "y":0}, + {"label":"1,15", "x":17.5, "y":0}, + + {"label":"1,0", "x":0, "y":1, "w":1.5}, + {"label":"1,1", "x":1.5, "y":1}, + {"label":"1,2", "x":2.5, "y":1}, + {"label":"1,3", "x":3.5, "y":1}, + {"label":"1,4", "x":4.5, "y":1}, + {"label":"1,5", "x":5.5, "y":1}, + {"label":"1,6", "x":6.5, "y":1}, + {"label":"1,7", "x":7.5, "y":1}, + {"label":"1,8", "x":8.5, "y":1}, + {"label":"1,9", "x":9.5, "y":1}, + {"label":"1,10", "x":10.5, "y":1}, + {"label":"1,11", "x":11.5, "y":1}, + {"label":"1,12", "x":12.5, "y":1}, + {"label":"1,14", "x":15.5, "y":1}, + {"label":"2,14", "x":16.5, "y":1}, + {"label":"2,15", "x":17.5, "y":1}, + + {"label":"2,0", "x":0, "y":2, "w":1.75}, + {"label":"2,1", "x":1.75, "y":2}, + {"label":"2,2", "x":2.75, "y":2}, + {"label":"2,3", "x":3.75, "y":2}, + {"label":"2,4", "x":4.75, "y":2}, + {"label":"2,5", "x":5.75, "y":2}, + {"label":"2,6", "x":6.75, "y":2}, + {"label":"2,7", "x":7.75, "y":2}, + {"label":"2,8", "x":8.75, "y":2}, + {"label":"2,9", "x":9.75, "y":2}, + {"label":"2,10", "x":10.75, "y":2}, + {"label":"2,11", "x":11.75, "y":2}, + {"label":"2,12", "x":12.75, "y":2}, + {"label":"2,13", "x":13.75, "y":1, "w":1.25, "h":2}, + + {"label":"3,0", "x":0, "y":3, "w":1.25}, + {"label":"3,1", "x":1.25, "y":3}, + {"label":"3,2", "x":2.25, "y":3}, + {"label":"3,3", "x":3.25, "y":3}, + {"label":"3,4", "x":4.25, "y":3}, + {"label":"3,5", "x":5.25, "y":3}, + {"label":"3,6", "x":6.25, "y":3}, + {"label":"3,7", "x":7.25, "y":3}, + {"label":"3,8", "x":8.25, "y":3}, + {"label":"3,9", "x":9.25, "y":3}, + {"label":"3,10", "x":10.25, "y":3}, + {"label":"3,11", "x":11.25, "y":3}, + {"label":"3,12", "x":12.25, "y":3, "w":2.75}, + {"label":"3,14", "x":16.5, "y":3}, + + {"label":"4,0", "x":0, "y":4, "w":1.25}, + {"label":"4,1", "x":1.25, "y":4, "w":1.25}, + {"label":"4,2", "x":2.5, "y":4, "w":1.25}, + {"label":"4,10", "x":4, "y":4.25, "w":7}, + {"label":"4,9", "x":11.25, "y":4, "w":1.25}, + {"label":"4,11", "x":12.5, "y":4, "w":1.25}, + {"label":"4,12", "x":13.75, "y":4, "w":1.25}, + {"label":"3,15", "x":15.5, "y":4}, + {"label":"4,14", "x":16.5, "y":4}, + {"label":"4,15", "x":17.5, "y":4} + ] } } } diff --git a/keyboards/neson_design/700e/keymaps/default/keymap.c b/keyboards/neson_design/700e/keymaps/default/keymap.c index cf80983ff3b..65f6f2f756e 100644 --- a/keyboards/neson_design/700e/keymaps/default/keymap.c +++ b/keyboards/neson_design/700e/keymaps/default/keymap.c @@ -1,5 +1,5 @@ /** - Copyright 2022 astro + Copyright 2022 astro 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 @@ -19,16 +19,17 @@ 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_DEL,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_BSLS, KC_ENT, - KC_LSFT, KC_LGUI, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT,KC_SLSH,KC_RSFT, MO(1), KC_UP, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT,KC_RGUI,KC_RCTL, KC_LEFT,KC_DOWN, KC_RIGHT), - + 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_DEL, 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_BSLS, KC_ENT, + KC_LSFT, KC_LGUI, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), [1] = LAYOUT_all( - _______, 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,_______,_______,_______, - QK_BOOT, RGB_TOG,RGB_MOD,RGB_RMOD,RGB_HUI,RGB_HUD,RGB_SAI,RGB_SAD,RGB_VAI,RGB_VAD,KC_MUTE,KC_VOLU,KC_VOLD,_______,_______,_______,_______, - _______, _______,_______,_______,_______,_______,KC_LEFT,KC_DOWN, KC_UP,KC_RIGHT,KC_HOME, KC_END,_______, - _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, - _______,_______,_______, _______, _______,_______,_______,_______,_______,_______), + _______, 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, _______, _______, _______, + QK_BOOT, RGB_TOG, RGB_MOD, RGB_RMOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_MUTE, KC_VOLU, KC_VOLD, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_HOME, KC_END, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) }; diff --git a/keyboards/neson_design/700e/keymaps/default_ansi_tsangan/keymap.c b/keyboards/neson_design/700e/keymaps/default_ansi_tsangan/keymap.c new file mode 100644 index 00000000000..1ea530e088a --- /dev/null +++ b/keyboards/neson_design/700e/keymaps/default_ansi_tsangan/keymap.c @@ -0,0 +1,35 @@ +/** + Copyright 2022 astro + + 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_ansi_tsangan( + 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_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, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_ansi_tsangan( + _______, 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, _______, _______, _______, + QK_BOOT, RGB_TOG, RGB_MOD, RGB_RMOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_MUTE, KC_VOLU, KC_VOLD, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_HOME, KC_END, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/neson_design/700e/keymaps/default_iso_tsangan/keymap.c b/keyboards/neson_design/700e/keymaps/default_iso_tsangan/keymap.c new file mode 100644 index 00000000000..b42a7fe7040 --- /dev/null +++ b/keyboards/neson_design/700e/keymaps/default_iso_tsangan/keymap.c @@ -0,0 +1,35 @@ +/** + Copyright 2022 astro + + 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_iso_tsangan( + 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_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, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_iso_tsangan( + _______, 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, _______, _______, _______, + QK_BOOT, RGB_TOG, RGB_MOD, RGB_RMOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_MUTE, KC_VOLU, KC_VOLD, _______, _______, _______, + _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_HOME, KC_END, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/neson_design/700e/keymaps/via/keymap.c b/keyboards/neson_design/700e/keymaps/via/keymap.c index f3d553e9dfe..b97e77fbd5b 100644 --- a/keyboards/neson_design/700e/keymaps/via/keymap.c +++ b/keyboards/neson_design/700e/keymaps/via/keymap.c @@ -1,5 +1,5 @@ /** - Copyright 2022 astro + Copyright 2022 astro 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 @@ -19,23 +19,24 @@ 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_DEL,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_BSLS, KC_ENT, - KC_LSFT, KC_LGUI, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT,KC_SLSH,KC_RSFT, MO(1), KC_UP, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT,KC_RGUI,KC_RCTL, KC_LEFT,KC_DOWN, KC_RIGHT), - + 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_DEL, 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_BSLS, KC_ENT, + KC_LSFT, KC_LGUI, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), [1] = LAYOUT_all( - _______, 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,_______,_______,_______, - QK_BOOT, RGB_TOG,RGB_MOD,RGB_RMOD,RGB_HUI,RGB_HUD,RGB_SAI,RGB_SAD,RGB_VAI,RGB_VAD,KC_MUTE,KC_VOLU,KC_VOLD,_______,_______,_______,_______, - _______, _______,_______,_______,_______,_______,KC_LEFT,KC_DOWN, KC_UP,KC_RIGHT,KC_HOME, KC_END,_______, - _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, - _______,_______,_______, _______, _______,_______,_______,_______,_______,_______), - + _______, 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, _______, _______, _______, + QK_BOOT, RGB_TOG, RGB_MOD, RGB_RMOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_MUTE, KC_VOLU, KC_VOLD, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_HOME, KC_END, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), [2] = LAYOUT_all( - _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, - _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, - _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, - _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, - _______,_______,_______, _______, _______,_______,_______,_______,_______,_______), + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), }; diff --git a/keyboards/novelkeys/nk20/info.json b/keyboards/novelkeys/nk20/info.json index d6a714ea0b5..f6da7d52daa 100644 --- a/keyboards/novelkeys/nk20/info.json +++ b/keyboards/novelkeys/nk20/info.json @@ -8,8 +8,11 @@ "pid": "0x4E4E", "device_version": "0.0.1" }, + "layout_aliases": { + "LAYOUT_all": "LAYOUT" + }, "layouts": { - "LAYOUT_all": { + "LAYOUT": { "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2, "h":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":0, "y":4}, {"x":1, "y":4}, {"x":2, "y":4}, {"x":3, "y":4, "h":2}, {"x":0, "y":5, "w":2}, {"x":2, "y":5}] } } diff --git a/keyboards/novelkeys/nk20/keymaps/default/keymap.c b/keyboards/novelkeys/nk20/keymaps/default/keymap.c index 4bd3c48da11..63b6e6ac265 100644 --- a/keyboards/novelkeys/nk20/keymaps/default/keymap.c +++ b/keyboards/novelkeys/nk20/keymaps/default/keymap.c @@ -16,7 +16,7 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = LAYOUT_all( /* Base */ +[0] = LAYOUT( /* Base */ KC_VOLD, KC_VOLU, KC_MUTE, MO(1), KC_PSLS, KC_PAST, KC_PMNS, KC_P7, KC_P8, KC_P9, KC_PPLS, @@ -24,7 +24,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_P1, KC_P2, KC_P3, KC_PENT, KC_P0, KC_PDOT), -[1] = LAYOUT_all( /* FN */ +[1] = LAYOUT( /* FN */ KC_NLCK, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SPD, RGB_SPI, KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, KC_TRNS, diff --git a/keyboards/novelkeys/nk20/keymaps/via/keymap.c b/keyboards/novelkeys/nk20/keymaps/via/keymap.c index e647dad0165..71158863c4c 100644 --- a/keyboards/novelkeys/nk20/keymaps/via/keymap.c +++ b/keyboards/novelkeys/nk20/keymaps/via/keymap.c @@ -16,7 +16,7 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = LAYOUT_all( /* Base */ +[0] = LAYOUT( /* Base */ KC_VOLD, KC_VOLU, KC_MUTE, MO(1), KC_PSLS, KC_PAST, KC_PMNS, KC_P7, KC_P8, KC_P9, KC_PPLS, @@ -24,7 +24,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_P1, KC_P2, KC_P3, KC_PENT, KC_P0, KC_PDOT), -[1] = LAYOUT_all( /* FN */ +[1] = LAYOUT( /* FN */ KC_NLCK, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SPD, RGB_SPI, KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, KC_TRNS, @@ -32,7 +32,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { RGB_VAD, RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), -[2] = LAYOUT_all( /* Empty for dynamic keymaps */ +[2] = LAYOUT( /* Empty for dynamic keymaps */ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -40,7 +40,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), -[3] = LAYOUT_all( /* Empty for dynamic keymaps */ +[3] = LAYOUT( /* Empty for dynamic keymaps */ 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/novelkeys/nk20/nk20.h b/keyboards/novelkeys/nk20/nk20.h index 62aa0e69d30..a553a1af3ef 100644 --- a/keyboards/novelkeys/nk20/nk20.h +++ b/keyboards/novelkeys/nk20/nk20.h @@ -21,7 +21,7 @@ // This a shortcut to help you visually see your layout. -#define LAYOUT_all( \ +#define LAYOUT( \ K00, K01, K02, \ K10, K11, K12, K13, \ K20, K21, K22, K23, \ diff --git a/keyboards/novelkeys/nk65b/keymaps/default/keymap.c b/keyboards/novelkeys/nk65b/keymaps/default/keymap.c index 420db9503c1..feac00f10c6 100755 --- a/keyboards/novelkeys/nk65b/keymaps/default/keymap.c +++ b/keyboards/novelkeys/nk65b/keymaps/default/keymap.c @@ -25,7 +25,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT_65_ansi( /* FN */ 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_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, RESET, 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, 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, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, RGB_SPD, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), diff --git a/keyboards/novelkeys/nk65b/keymaps/via/keymap.c b/keyboards/novelkeys/nk65b/keymaps/via/keymap.c index 39776b421f9..4849af39d1c 100755 --- a/keyboards/novelkeys/nk65b/keymaps/via/keymap.c +++ b/keyboards/novelkeys/nk65b/keymaps/via/keymap.c @@ -25,7 +25,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT_65_ansi( /* FN */ 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_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, RESET, 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, 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, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, RGB_SPD, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), diff --git a/keyboards/nyhxis/nfr_70/info.json b/keyboards/nyhxis/nfr_70/info.json new file mode 100644 index 00000000000..32109b7012f --- /dev/null +++ b/keyboards/nyhxis/nfr_70/info.json @@ -0,0 +1,182 @@ +{ + "keyboard_name": "NFR-70", + "manufacturer": "Nyhxis", + "url": "https://github.com/Nyhxis/keyboard-resources/tree/master/NFR-70", + "maintainer": "Nyhxis", + "diode_direction": "COL2ROW", + "matrix_pins": { + "cols": [ "B2", "B3", "B1", "F7", "F6", "F5", "F4" ], + "rows": [ "D3", "D2", "D1", "D0", "C6", "D4", "E6", "D7", "B5", "B4", "B6" ] + }, + "usb": { + "vid": "0xABCD", + "pid": "0x0001", + "device_version": "1.0.0" + }, + "layouts": { + "LAYOUT_ansi":{ + "layout": + [ + { "label": "ESC", "x": 0, "y": 0 }, + { "label": "F2", "x": 2.25, "y": 0 }, + { "label": "F4", "x": 4.25, "y": 0 }, + { "label": "F6", "x": 6.5, "y": 0 }, + { "label": "F8", "x": 8.5, "y": 0 }, + { "label": "F10", "x": 10.75, "y": 0 }, + { "label": "F12", "x": 12.75, "y": 0 }, + { "label": "F1", "x": 1.25, "y": 0 }, + { "label": "F3", "x": 3.25, "y": 0 }, + { "label": "F5", "x": 5.5, "y": 0 }, + { "label": "F7", "x": 7.5, "y": 0 }, + { "label": "F9", "x": 9.75, "y": 0 }, + { "label": "F11", "x": 11.75, "y": 0 }, + { "label": "F13", "x": 14, "y": 0 } + { "label": "1", "x": 1, "y": 1.25 }, + { "label": "3", "x": 3, "y": 1.25 }, + { "label": "5", "x": 5, "y": 1.25 }, + { "label": "7", "x": 7, "y": 1.25 }, + { "label": "9", "x": 9, "y": 1.25 }, + { "label": "-", "x": 11, "y": 1.25 }, + { "label": "BACKSPACE", "x": 13, "y": 1.25, "w": 2 } + { "label": "`", "x": 0, "y": 1.25 }, + { "label": "2", "x": 2, "y": 1.25 }, + { "label": "4", "x": 4, "y": 1.25 }, + { "label": "6", "x": 6, "y": 1.25 }, + { "label": "8", "x": 8, "y": 1.25 }, + { "label": "0", "x": 10, "y": 1.25 }, + { "label": "=", "x": 12, "y": 1.25 }, + { "label": "TAB", "x": 0, "y": 2.25, "w": 1.5 }, + { "label": "W", "x": 2.5, "y": 2.25 }, + { "label": "R", "x": 4.5, "y": 2.25 }, + { "label": "Y", "x": 6.5, "y": 2.25 }, + { "label": "I", "x": 8.5, "y": 2.25 }, + { "label": "P", "x": 10.5, "y": 2.25 }, + { "label": "]", "x": 12.5, "y": 2.25 }, + { "label": "Q", "x": 1.5, "y": 2.25 }, + { "label": "E", "x": 3.5, "y": 2.25 }, + { "label": "T", "x": 5.5, "y": 2.25 }, + { "label": "U", "x": 7.5, "y": 2.25 }, + { "label": "O", "x": 9.5, "y": 2.25 }, + { "label": "[", "x": 11.5, "y": 2.25 }, + { "label": "\\", "x": 13.5, "y": 2.25, "w": 1.5 } + { "label": "A", "x": 1.75, "y": 3.25 }, + { "label": "D", "x": 3.75, "y": 3.25 }, + { "label": "G", "x": 5.75, "y": 3.25 }, + { "label": "J", "x": 7.75, "y": 3.25 }, + { "label": "L", "x": 9.75, "y": 3.25 }, + { "label": "'", "x": 10.75, "y": 3.25 }, + { "x": 12.75, "y": 3.25 }, + { "label": "CAPS", "x": 0, "y": 3.25, "w": 1.75 }, + { "label": "S", "x": 2.75, "y": 3.25 }, + { "label": "F", "x": 4.75, "y": 3.25 }, + { "label": "H", "x": 6.75, "y": 3.25 }, + { "label": "K", "x": 8.75, "y": 3.25 }, + { "label": ";", "x": 11.75, "y": 3.25 }, + { "label": "ENTER", "x": 12.75, "y": 3.25, "w": 2.25 } + { "label": "LSHIFT", "x": 0, "y": 4.25, "w": 2.25 }, + { "label": "Z", "x": 2.25, "y": 4.25 }, + { "label": "C", "x": 4.25, "y": 4.25 }, + { "label": "B", "x": 6.25, "y": 4.25 }, + { "label": "M", "x": 8.25, "y": 4.25 }, + { "label": ".", "x": 10.25, "y": 4.25 }, + { "label": "RSHIFT", "x": 12.25, "y": 4.25, "w": 2.75 } + { "label": "NUBS", "x": 1.25, "y": 4.25 }, + { "label": "X", "x": 3.25, "y": 4.25 }, + { "label": "V", "x": 5.25, "y": 4.25 }, + { "label": "N", "x": 7.25, "y": 4.25 }, + { "label": ",", "x": 9.25, "y": 4.25 }, + { "label": "/", "x": 11.25, "y": 4.25 }, + { "label": "RALT", "x": 10, "y": 5.25, "w": 1.25 }, + { "label": "LCTRL", "x": 0, "y": 5.25, "w": 1.25 }, + { "label": "LWIN", "x": 1.25, "y": 5.25, "w": 1.25 }, + { "label": "LALT", "x": 2.5, "y": 5.25, "w": 1.25 }, + { "label": "SPACE", "x": 3.75, "y": 5.25, "w": 6.25 }, + { "label": "RWIN", "x": 11.25, "y": 5.25, "w": 1.25 }, + { "label": "MENU", "x": 12.5, "y": 5.25, "w": 1.25 }, + { "label": "RCTRL", "x": 13.75, "y": 5.25, "w": 1.25 } + ] + }, + "LAYOUT_tsangan":{ + "layout": + [ + { "label": "ESC", "x": 0, "y": 0 }, + { "label": "F2", "x": 2.25, "y": 0 }, + { "label": "F4", "x": 4.25, "y": 0 }, + { "label": "F6", "x": 6.5, "y": 0 }, + { "label": "F8", "x": 8.5, "y": 0 }, + { "label": "F10", "x": 10.75, "y": 0 }, + { "label": "F12", "x": 12.75, "y": 0 }, + { "label": "F1", "x": 1.25, "y": 0 }, + { "label": "F3", "x": 3.25, "y": 0 }, + { "label": "F5", "x": 5.5, "y": 0 }, + { "label": "F7", "x": 7.5, "y": 0 }, + { "label": "F9", "x": 9.75, "y": 0 }, + { "label": "F11", "x": 11.75, "y": 0 }, + { "label": "F13", "x": 14, "y": 0 } + { "label": "1", "x": 1, "y": 1.25 }, + { "label": "3", "x": 3, "y": 1.25 }, + { "label": "5", "x": 5, "y": 1.25 }, + { "label": "7", "x": 7, "y": 1.25 }, + { "label": "9", "x": 9, "y": 1.25 }, + { "label": "-", "x": 11, "y": 1.25 }, + { "label": "BACKSPACE", "x": 13, "y": 1.25, "w": 2 } + { "label": "`", "x": 0, "y": 1.25 }, + { "label": "2", "x": 2, "y": 1.25 }, + { "label": "4", "x": 4, "y": 1.25 }, + { "label": "6", "x": 6, "y": 1.25 }, + { "label": "8", "x": 8, "y": 1.25 }, + { "label": "0", "x": 10, "y": 1.25 }, + { "label": "=", "x": 12, "y": 1.25 }, + { "label": "TAB", "x": 0, "y": 2.25, "w": 1.5 }, + { "label": "W", "x": 2.5, "y": 2.25 }, + { "label": "R", "x": 4.5, "y": 2.25 }, + { "label": "Y", "x": 6.5, "y": 2.25 }, + { "label": "I", "x": 8.5, "y": 2.25 }, + { "label": "P", "x": 10.5, "y": 2.25 }, + { "label": "]", "x": 12.5, "y": 2.25 }, + { "label": "Q", "x": 1.5, "y": 2.25 }, + { "label": "E", "x": 3.5, "y": 2.25 }, + { "label": "T", "x": 5.5, "y": 2.25 }, + { "label": "U", "x": 7.5, "y": 2.25 }, + { "label": "O", "x": 9.5, "y": 2.25 }, + { "label": "[", "x": 11.5, "y": 2.25 }, + { "label": "\\", "x": 13.5, "y": 2.25, "w": 1.5 } + { "label": "A", "x": 1.75, "y": 3.25 }, + { "label": "D", "x": 3.75, "y": 3.25 }, + { "label": "G", "x": 5.75, "y": 3.25 }, + { "label": "J", "x": 7.75, "y": 3.25 }, + { "label": "L", "x": 9.75, "y": 3.25 }, + { "label": "'", "x": 10.75, "y": 3.25 }, + { "x": 12.75, "y": 3.25 }, + { "label": "CAPS", "x": 0, "y": 3.25, "w": 1.75 }, + { "label": "S", "x": 2.75, "y": 3.25 }, + { "label": "F", "x": 4.75, "y": 3.25 }, + { "label": "H", "x": 6.75, "y": 3.25 }, + { "label": "K", "x": 8.75, "y": 3.25 }, + { "label": ";", "x": 11.75, "y": 3.25 }, + { "label": "ENTER", "x": 12.75, "y": 3.25, "w": 2.25 } + { "label": "LSHIFT", "x": 0, "y": 4.25, "w": 2.25 }, + { "label": "Z", "x": 2.25, "y": 4.25 }, + { "label": "C", "x": 4.25, "y": 4.25 }, + { "label": "B", "x": 6.25, "y": 4.25 }, + { "label": "M", "x": 8.25, "y": 4.25 }, + { "label": ".", "x": 10.25, "y": 4.25 }, + { "label": "RSHIFT", "x": 12.25, "y": 4.25, "w": 2.75 } + { "label": "NUBS", "x": 1.25, "y": 4.25 }, + { "label": "X", "x": 3.25, "y": 4.25 }, + { "label": "V", "x": 5.25, "y": 4.25 }, + { "label": "N", "x": 7.25, "y": 4.25 }, + { "label": ",", "x": 9.25, "y": 4.25 }, + { "label": "/", "x": 11.25, "y": 4.25 }, + { "x": 10, "y": 5.25 }, + { "label": "LCTRL", "x": 0, "y": 5.25, "w": 1.5 }, + { "label": "LWIN", "x": 1.5, "y": 5.25, "w": 1 }, + { "label": "LALT", "x": 2.5, "y": 5.25, "w": 1.5 }, + { "label": "SPACE", "x": 4, "y": 5.25, "w": 7 }, + { "label": "RALT", "x": 11, "y": 5.25, "w": 1.5 }, + { "label": "RWIN", "x": 12.5, "y": 5.25, "w": 1 }, + { "label": "RCTRL", "x": 13.5, "y": 5.25, "w": 1.5 } + ] + } + } +} \ No newline at end of file diff --git a/keyboards/nyhxis/nfr_70/keymaps/default/keymap.c b/keyboards/nyhxis/nfr_70/keymaps/default/keymap.c new file mode 100644 index 00000000000..80b52922920 --- /dev/null +++ b/keyboards/nyhxis/nfr_70/keymaps/default/keymap.c @@ -0,0 +1,44 @@ +/* Copyright 2022 Nyhxis (@nyhxis) + * + * 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_ansi( + 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_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_BSLS, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RGUI, KC_RCTL + ), + [1] = LAYOUT_ansi( + MO(2), KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, 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_BSPC, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUSE, KC_UP, KC_TRNS, KC_TRNS, + KC_TRNS, KC_VOLU, KC_VOLD, KC_MUTE, KC_MPLY, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGUP, KC_LEFT, KC_RIGHT, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_PGDOWN, KC_DOWN, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [2] = LAYOUT_ansi( + 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, 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/nyhxis/nfr_70/keymaps/default/readme.md b/keyboards/nyhxis/nfr_70/keymaps/default/readme.md new file mode 100644 index 00000000000..9b3c534eb7b --- /dev/null +++ b/keyboards/nyhxis/nfr_70/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for NFR-70 \ No newline at end of file diff --git a/keyboards/nyhxis/nfr_70/keymaps/tsangan/keymap.c b/keyboards/nyhxis/nfr_70/keymaps/tsangan/keymap.c new file mode 100644 index 00000000000..e0f621ae4ca --- /dev/null +++ b/keyboards/nyhxis/nfr_70/keymaps/tsangan/keymap.c @@ -0,0 +1,44 @@ +/* Copyright 2022 Nyhxis (@nyhxis) + * + * 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_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_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_BSLS, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL + ), + [1] = LAYOUT_tsangan( + MO(2), KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, 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_BSPC, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUSE, KC_UP, KC_TRNS, KC_TRNS, + KC_TRNS, KC_VOLU, KC_VOLD, KC_MUTE, KC_MPLY, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGUP, KC_LEFT, KC_RIGHT, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_PGDOWN, KC_DOWN, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [2] = LAYOUT_tsangan( + 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, 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/nyhxis/nfr_70/keymaps/via/keymap.c b/keyboards/nyhxis/nfr_70/keymaps/via/keymap.c new file mode 100644 index 00000000000..fa0a8ad3242 --- /dev/null +++ b/keyboards/nyhxis/nfr_70/keymaps/via/keymap.c @@ -0,0 +1,52 @@ +/* Copyright 2022 Nyhxis (@nyhxis) + * + * 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_ansi( + 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_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_BSLS, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RGUI, KC_RCTL + ), + [1] = LAYOUT_ansi( + MO(2), KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, 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_BSPC, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUSE, KC_UP, KC_TRNS, KC_TRNS, + KC_TRNS, KC_VOLU, KC_VOLD, KC_MUTE, KC_MPLY, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGUP, KC_LEFT, KC_RIGHT, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_PGDOWN, KC_DOWN, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [2] = LAYOUT_ansi( + 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, 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_ansi( + 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/nyhxis/nfr_70/keymaps/via/rules.mk b/keyboards/nyhxis/nfr_70/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/nyhxis/nfr_70/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/durgod/k3x0/k320/base/config.h b/keyboards/nyhxis/nfr_70/nfr_70.c similarity index 90% rename from keyboards/durgod/k3x0/k320/base/config.h rename to keyboards/nyhxis/nfr_70/nfr_70.c index 2ccb2f2f0c8..43d4a0e2c6b 100644 --- a/keyboards/durgod/k3x0/k320/base/config.h +++ b/keyboards/nyhxis/nfr_70/nfr_70.c @@ -1,4 +1,4 @@ -/* Copyright 2021 Don Kjer +/* Copyright 2022 Nyhxis (@nyhxis) * * 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 @@ -14,6 +14,4 @@ * along with this program. If not, see . */ -#pragma once - -#include "config_common.h" +#include "nfr_70.h" diff --git a/keyboards/nyhxis/nfr_70/nfr_70.h b/keyboards/nyhxis/nfr_70/nfr_70.h new file mode 100644 index 00000000000..e40e5f08005 --- /dev/null +++ b/keyboards/nyhxis/nfr_70/nfr_70.h @@ -0,0 +1,63 @@ +/* Copyright 2022 Nyhxis (@nyhxis) + * + * 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_ansi( \ + K000, K010, K001, K011, K002, K012, K003, K013, K004, K014, K005, K015, K006, K016, \ + K030, K020, K031, K021, K032, K022, K033, K023, K034, K024, K035, K025, K036, K026, K066, \ + K040, K050, K041, K051, K042, K052, K043, K053, K044, K054, K045, K055, K046, K056, \ + K070, K060, K071, K061, K072, K062, K073, K063, K074, K064, K075, K065, K076, \ + K080, K090, K081, K091, K082, K092, K083, K093, K084, K094, K085, K095, K086, \ + K100, K101, K102, K103, K096, K104, K105, K106 \ +) \ +{ \ + { K000, K001, K002, K003, K004, K005, K006 }, \ + { K010, K011, K012, K013, K014, K015, K016 }, \ + { K020, K021, K022, K023, K024, K025, K026 }, \ + { K030, K031, K032, K033, K034, K035, K036 }, \ + { K040, K041, K042, K043, K044, K045, K046 }, \ + { K050, K051, K052, K053, K054, K055, K056 }, \ + { K060, K061, K062, K063, K064, K065, K066 }, \ + { K070, K071, K072, K073, K074, K075, K076 }, \ + { K080, K081, K082, K083, K084, K085, K086 }, \ + { K090, K091, K092, K093, K094, K095, K096 }, \ + { K100, K101, K102, K103, K104, K105, K106 } \ +} + +#define LAYOUT_tsangan( \ + K000, K010, K001, K011, K002, K012, K003, K013, K004, K014, K005, K015, K006, K016, \ + K030, K020, K031, K021, K032, K022, K033, K023, K034, K024, K035, K025, K036, K026, K066, \ + K040, K050, K041, K051, K042, K052, K043, K053, K044, K054, K045, K055, K046, K056, \ + K070, K060, K071, K061, K072, K062, K073, K063, K074, K064, K075, K065, K076, \ + K080, K090, K081, K091, K082, K092, K083, K093, K084, K094, K085, K095, K096, K086, \ + K100, K101, K102, K103, K104, K105, K106 \ +) \ +{ \ + { K000, K001, K002, K003, K004, K005, K006 }, \ + { K010, K011, K012, K013, K014, K015, K016 }, \ + { K020, K021, K022, K023, K024, K025, K026 }, \ + { K030, K031, K032, K033, K034, K035, K036 }, \ + { K040, K041, K042, K043, K044, K045, K046 }, \ + { K050, K051, K052, K053, K054, K055, K056 }, \ + { K060, K061, K062, K063, K064, K065, K066 }, \ + { K070, K071, K072, K073, K074, K075, K076 }, \ + { K080, K081, K082, K083, K084, K085, K086 }, \ + { K090, K091, K092, K093, K094, K095, K096 }, \ + { K100, K101, K102, K103, K104, K105, K106 } \ +} diff --git a/keyboards/nyhxis/nfr_70/readme.md b/keyboards/nyhxis/nfr_70/readme.md new file mode 100644 index 00000000000..2411ca65b73 --- /dev/null +++ b/keyboards/nyhxis/nfr_70/readme.md @@ -0,0 +1,17 @@ +# NFR-70 + +![NFR-70](https://i.imgur.com/7jeesq6h.jpg) + +A 70% barebones keyboard using Pro-Micro and alternatives. + +Firmware was made and tested for Elite-C. Set bootloader in `rules.mk` to match your preferred MCU. + +* Keyboard Maintainer: [Nyhxis](https://github.com/Nyhxis) + +Make example for this keyboard (after setting up your build environment): + + make nyhxis/nfr_70:default + +**Reset Key**: The board can be reset by pressing the RESET button on the Elite-C or the button to the right of it labeled SW1. + +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/nyhxis/nfr_70/rules.mk b/keyboards/nyhxis/nfr_70/rules.mk new file mode 100644 index 00000000000..66c1ee26f42 --- /dev/null +++ b/keyboards/nyhxis/nfr_70/rules.mk @@ -0,0 +1,19 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +#BOOTLOADER = caterina # Pro-Micro +BOOTLOADER = atmel-dfu # Elite-C + +# 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 = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output \ No newline at end of file diff --git a/keyboards/opendeck/32/rev1/rev1.c b/keyboards/opendeck/32/rev1/rev1.c index be50d91944e..34862873d01 100644 --- a/keyboards/opendeck/32/rev1/rev1.c +++ b/keyboards/opendeck/32/rev1/rev1.c @@ -87,16 +87,6 @@ led_config_t g_led_config = { // clang-format on -// Set custom key colors here, in order to change the RGB effect, either reserve some keys -// in the keymap to adjust the pattern (see QMK docs, incompatible with wrapper keys) or -// change the default pattern in config.h. -/* -void rgb_matrix_indicators_kb(void) { - //rgb_matrix_set_color(0, 255, 255, 255); - //rgb_matrix_set_color_all(0x86,0xff,0xff); -} -*/ - void keyboard_pre_init_kb(void) { // Light power LED setPinOutput(POWER_LED_PIN); diff --git a/keyboards/owlab/voice65/hotswap/config.h b/keyboards/owlab/voice65/hotswap/config.h index 6b8bf0b3ac6..a20294ce32d 100644 --- a/keyboards/owlab/voice65/hotswap/config.h +++ b/keyboards/owlab/voice65/hotswap/config.h @@ -62,7 +62,6 @@ along with this program. If not, see . #ifdef RGB_MATRIX_ENABLE # define USE_I2CV2 # define RGB_MATRIX_DISABLE_KEYCODES -# 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_KEYPRESSES # define RGB_MATRIX_LED_PROCESS_LIMIT 4 diff --git a/keyboards/owlab/voice65/hotswap/hotswap.c b/keyboards/owlab/voice65/hotswap/hotswap.c index ed40d335325..57a216f30a9 100644 --- a/keyboards/owlab/voice65/hotswap/hotswap.c +++ b/keyboards/owlab/voice65/hotswap/hotswap.c @@ -111,15 +111,16 @@ led_config_t g_led_config = { { #endif -__attribute__ ((weak)) -void rgb_matrix_indicators_user(void) -{ - if (host_keyboard_led_state().caps_lock) - { +bool rgb_matrix_indicators_kb(void) { + if (!rgb_matrix_indicators_user()) { + return false; + } + if (host_keyboard_led_state().caps_lock) { rgb_matrix_set_color(31, 255, 255, 255); } else { rgb_matrix_set_color(31, 0, 0, 0); } + return true; } enum encoder_modes{ @@ -131,15 +132,15 @@ enum encoder_modes{ keyboard_config_t keyboard_config; rgblight_config_t rgblight_config; -uint8_t pre_hue, pre_sat, pre_val; -uint8_t previous_rgb_mode = 0; +uint8_t pre_hue, pre_sat, pre_val; +uint8_t previous_rgb_mode = 0; uint8_t dir_hue, dir_sat; -bool encoder_in = false; -uint32_t encoder_timer; +bool encoder_in = false; +uint32_t encoder_timer; -bool encoder_ani_start= false; -uint32_t encoder_ani_timer = 0; +bool encoder_ani_start= false; +uint32_t encoder_ani_timer = 0; bool encoder_direction_start = false; uint32_t encoder_direction_timer = 0; @@ -179,7 +180,7 @@ void switch_encoder_mode(uint8_t mode){ dir_sat = 255; break; } - rgblight_sethsv_noeeprom(dir_hue,dir_sat,pre_val); + rgblight_sethsv_noeeprom(dir_hue,dir_sat,pre_val); } @@ -190,7 +191,7 @@ void init_encoder_mode(uint8_t mode){ pre_val = rgblight_get_val(); encoder_in = true; - rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); + rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); switch_encoder_mode(mode); } @@ -218,21 +219,21 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { case RGB_VAI: case RGB_VAD: - if(encoder_in){ + if(encoder_in){ return false; - } + } break; case KC_F13: - rgb_matrix_toggle(); + rgb_matrix_toggle(); break; case KC_F14: - rgb_matrix_step(); + rgb_matrix_step(); break; - case KC_F15: - rgb_matrix_step_reverse(); + case KC_F15: + rgb_matrix_step_reverse(); break; case KC_F16: @@ -261,7 +262,7 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { case KC_F22: //change encoder mode upward if(!encoder_direction_start){ - if(keyboard_config.encoder_mode_index < ENCODER_MODE_THREE){ + if(keyboard_config.encoder_mode_index < ENCODER_MODE_THREE){ keyboard_config.encoder_mode_index++; } else{ @@ -277,7 +278,7 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { } else{ keyboard_config.encoder_mode_index = ENCODER_MODE_THREE; - } + } set_encoder_mode(keyboard_config.encoder_mode_index); } return false; @@ -294,7 +295,7 @@ void matrix_scan_kb(void) { if(encoder_in){ if(timer_elapsed32(encoder_timer) > 5000){ rgblight_mode(previous_rgb_mode); - rgblight_sethsv(pre_hue, pre_sat, pre_val); + rgblight_sethsv(pre_hue, pre_sat, pre_val); encoder_in = false; } } @@ -309,7 +310,7 @@ void matrix_scan_kb(void) { if(encoder_direction_start){ if(timer_elapsed32(encoder_direction_timer) > (VOLUME_ANIMATION_TIMER+1500)){ rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); - rgblight_sethsv_noeeprom(dir_hue, dir_sat, pre_val); + rgblight_sethsv_noeeprom(dir_hue, dir_sat, pre_val); encoder_direction_start = false; } } @@ -319,19 +320,19 @@ void matrix_scan_kb(void) { void set_volume_animation(bool increase){ if(!encoder_ani_start){ - rgblight_snake_restart(dir_hue, dir_sat, pre_val); + rgblight_snake_restart(dir_hue, dir_sat, pre_val); } if(increase){ - rgblight_mode_noeeprom(17); - } else { + rgblight_mode_noeeprom(17); + } else { rgblight_mode_noeeprom(18); } encoder_ani_timer = timer_read32(); encoder_direction_timer = encoder_ani_timer; encoder_ani_start = true; - encoder_direction_start = true; + encoder_direction_start = true; } @@ -348,15 +349,15 @@ bool encoder_update_kb(uint8_t index, bool clockwise) { switch(encoder_cw_keycode) { case KC_F13: - rgb_matrix_toggle(); + rgb_matrix_toggle(); break; case KC_F14: - rgb_matrix_step(); + rgb_matrix_step(); break; - case KC_F15: - rgb_matrix_step_reverse(); + case KC_F15: + rgb_matrix_step_reverse(); break; case KC_F16: @@ -387,7 +388,7 @@ bool encoder_update_kb(uint8_t index, bool clockwise) { case KC_VOLD: tap_code(encoder_cw_keycode); break; - + default: tap_code(encoder_cw_keycode); break; @@ -401,11 +402,11 @@ bool encoder_update_kb(uint8_t index, bool clockwise) { break; case KC_F14: - rgb_matrix_step(); + rgb_matrix_step(); break; - case KC_F15: - rgb_matrix_step_reverse(); + case KC_F15: + rgb_matrix_step_reverse(); break; case KC_F16: diff --git a/keyboards/owlab/voice65/soldered/config.h b/keyboards/owlab/voice65/soldered/config.h index 1bf9702a3e9..a4d828e8898 100644 --- a/keyboards/owlab/voice65/soldered/config.h +++ b/keyboards/owlab/voice65/soldered/config.h @@ -61,7 +61,6 @@ along with this program. If not, see . #ifdef RGB_MATRIX_ENABLE # define USE_I2CV2 # define RGB_MATRIX_DISABLE_KEYCODES -# 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_KEYPRESSES # define RGB_MATRIX_LED_PROCESS_LIMIT 4 diff --git a/keyboards/owlab/voice65/soldered/soldered.c b/keyboards/owlab/voice65/soldered/soldered.c index cea25b093eb..cfdaaad4ae2 100644 --- a/keyboards/owlab/voice65/soldered/soldered.c +++ b/keyboards/owlab/voice65/soldered/soldered.c @@ -115,15 +115,16 @@ led_config_t g_led_config = { { #endif -__attribute__ ((weak)) -void rgb_matrix_indicators_user(void) -{ - if (host_keyboard_led_state().caps_lock) - { +bool rgb_matrix_indicators_kb(void) { + if (!rgb_matrix_indicators_user()) { + return false; + } + if (host_keyboard_led_state().caps_lock) { rgb_matrix_set_color(31, 255, 255, 255); } else { rgb_matrix_set_color(31, 0, 0, 0); } + return true; } enum encoder_modes{ @@ -135,15 +136,15 @@ enum encoder_modes{ keyboard_config_t keyboard_config; rgblight_config_t rgblight_config; -uint8_t pre_hue, pre_sat, pre_val; -uint8_t previous_rgb_mode = 0; +uint8_t pre_hue, pre_sat, pre_val; +uint8_t previous_rgb_mode = 0; uint8_t dir_hue, dir_sat; -bool encoder_in = false; -uint32_t encoder_timer; +bool encoder_in = false; +uint32_t encoder_timer; -bool encoder_ani_start= false; -uint32_t encoder_ani_timer = 0; +bool encoder_ani_start= false; +uint32_t encoder_ani_timer = 0; bool encoder_direction_start = false; uint32_t encoder_direction_timer = 0; @@ -183,7 +184,7 @@ void switch_encoder_mode(uint8_t mode){ dir_sat = 255; break; } - rgblight_sethsv_noeeprom(dir_hue,dir_sat,pre_val); + rgblight_sethsv_noeeprom(dir_hue,dir_sat,pre_val); } @@ -194,7 +195,7 @@ void init_encoder_mode(uint8_t mode){ pre_val = rgblight_get_val(); encoder_in = true; - rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); + rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); switch_encoder_mode(mode); } @@ -222,21 +223,21 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { case RGB_VAI: case RGB_VAD: - if(encoder_in){ + if(encoder_in){ return false; - } + } break; case KC_F13: - rgb_matrix_toggle(); + rgb_matrix_toggle(); break; case KC_F14: - rgb_matrix_step(); + rgb_matrix_step(); break; - case KC_F15: - rgb_matrix_step_reverse(); + case KC_F15: + rgb_matrix_step_reverse(); break; case KC_F16: @@ -265,7 +266,7 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { case KC_F22: //change encoder mode upward if(!encoder_direction_start){ - if(keyboard_config.encoder_mode_index < ENCODER_MODE_THREE){ + if(keyboard_config.encoder_mode_index < ENCODER_MODE_THREE){ keyboard_config.encoder_mode_index++; } else{ @@ -282,7 +283,7 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { } else{ keyboard_config.encoder_mode_index = ENCODER_MODE_THREE; - } + } set_encoder_mode(keyboard_config.encoder_mode_index); } return false; @@ -299,7 +300,7 @@ void matrix_scan_kb(void) { if(encoder_in){ if(timer_elapsed32(encoder_timer) > 5000){ rgblight_mode(previous_rgb_mode); - rgblight_sethsv(pre_hue, pre_sat, pre_val); + rgblight_sethsv(pre_hue, pre_sat, pre_val); encoder_in = false; } } @@ -314,7 +315,7 @@ void matrix_scan_kb(void) { if(encoder_direction_start){ if(timer_elapsed32(encoder_direction_timer) > (VOLUME_ANIMATION_TIMER+1500)){ rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); - rgblight_sethsv_noeeprom(dir_hue, dir_sat, pre_val); + rgblight_sethsv_noeeprom(dir_hue, dir_sat, pre_val); encoder_direction_start = false; } } @@ -324,19 +325,19 @@ void matrix_scan_kb(void) { void set_volume_animation(bool increase){ if(!encoder_ani_start){ - rgblight_snake_restart(dir_hue, dir_sat, pre_val); + rgblight_snake_restart(dir_hue, dir_sat, pre_val); } if(increase){ - rgblight_mode_noeeprom(17); - } else { + rgblight_mode_noeeprom(17); + } else { rgblight_mode_noeeprom(18); } encoder_ani_timer = timer_read32(); encoder_direction_timer = encoder_ani_timer; encoder_ani_start = true; - encoder_direction_start = true; + encoder_direction_start = true; } @@ -353,15 +354,15 @@ bool encoder_update_kb(uint8_t index, bool clockwise) { switch(encoder_cw_keycode) { case KC_F13: - rgb_matrix_toggle(); + rgb_matrix_toggle(); break; case KC_F14: - rgb_matrix_step(); + rgb_matrix_step(); break; - case KC_F15: - rgb_matrix_step_reverse(); + case KC_F15: + rgb_matrix_step_reverse(); break; case KC_F16: @@ -392,7 +393,7 @@ bool encoder_update_kb(uint8_t index, bool clockwise) { case KC_VOLD: tap_code(encoder_cw_keycode); break; - + default: tap_code(encoder_cw_keycode); break; @@ -406,11 +407,11 @@ bool encoder_update_kb(uint8_t index, bool clockwise) { break; case KC_F14: - rgb_matrix_step(); + rgb_matrix_step(); break; - case KC_F15: - rgb_matrix_step_reverse(); + case KC_F15: + rgb_matrix_step_reverse(); break; case KC_F16: diff --git a/keyboards/p3d/glitch/info.json b/keyboards/p3d/glitch/info.json index 5015a2e28f6..63d5cfc0ca9 100644 --- a/keyboards/p3d/glitch/info.json +++ b/keyboards/p3d/glitch/info.json @@ -10,297 +10,83 @@ }, "layouts": { "LAYOUT_all": { - "layout": [{ - "x": 19.1, - "y": 0.1 - }, { - "label": "ESC", - "x": 0.5, - "y": 0.5 - }, { - "label": "1", - "x": 1.5, - "y": 0.5 - }, { - "label": "_", - "x": 14.5, - "y": 0.6 - }, { - "label": "+", - "x": 15.5, - "y": 0.6 - }, { - "label": "Back", - "x": 16.5, - "y": 0.6 - }, { - "label": "Del", - "x": 17.5, - "y": 0.6 - }, { - "label": "2", - "x": 3.25, - "y": 1.0 - }, { - "label": "3", - "x": 4.25, - "y": 1.0 - }, { - "label": "4", - "x": 5.25, - "y": 1.0 - }, { - "label": "5", - "x": 6.25, - "y": 1.0 - }, { - "label": "6", - "x": 7.25, - "y": 1.0 - }, { - "label": "7", - "x": 10, - "y": 1.0 - }, { - "label": "8", - "x": 11, - "y": 1.0 - }, { - "label": "9", - "x": 12, - "y": 1.0 - }, { - "label": "0", - "x": 13, - "y": 1.0 - }, { - "label": "TAB", - "x": 0.15, - "y": 1.5, - "w": 1.5 - }, { - "label": "Q", - "x": 1.65, - "y": 1.5 - }, { - "label": "P", - "x": 14.35, - "y": 1.6 - }, { - "label": "[", - "x": 15.35, - "y": 1.6 - }, { - "label": "]", - "x": 16.35, - "y": 1.6 - }, { - "label": "\\", - "x": 17.35, - "y": 1.6, - "w": 1.5 - }, { - "x": 19.1, - "y": 1.6 - }, { - "label": "W", - "x": 3.75, - "y": 2.0 - }, { - "label": "E", - "x": 4.75, - "y": 2.0 - }, { - "label": "R", - "x": 5.75, - "y": 2.0 - }, { - "label": "T", - "x": 6.75, - "y": 2.0 - }, { - "label": "Y", - "x": 9.5, - "y": 2.0 - }, { - "label": "U", - "x": 10.5, - "y": 2.0 - }, { - "label": "I", - "x": 11.5, - "y": 2.0 - }, { - "label": "O", - "x": 12.5, - "y": 2.0 - }, { - "label": "CAPS", - "x": 0.15, - "y": 2.5, - "w": 1.75 - }, { - "label": "A", - "x": 1.9, - "y": 2.5 - }, { - "label": ";", - "x": 14.6, - "y": 2.6 - }, { - "label": "'", - "x": 15.6, - "y": 2.6 - }, { - "label": "ENTER", - "x": 16.6, - "y": 2.6, - "w": 2.25 - }, { - "x": 19.1, - "y": 2.6 - }, { - "label": "S", - "x": 4, - "y": 3.0 - }, { - "label": "D", - "x": 5, - "y": 3.0 - }, { - "label": "F", - "x": 6, - "y": 3.0 - }, { - "label": "G", - "x": 7, - "y": 3.0 - }, { - "label": "H", - "x": 9.75, - "y": 3.0 - }, { - "label": "J", - "x": 10.75, - "y": 3.0 - }, { - "label": "K", - "x": 11.75, - "y": 3.0 - }, { - "label": "L", - "x": 12.75, - "y": 3.0 - }, { - "label": "SHIFT", - "x": 0, - "y": 3.5, - "w": 2.25 - }, { - "label": "Z", - "x": 2.25, - "y": 3.5 - }, { - "label": ".", - "x": 14.25, - "y": 3.6 - }, { - "label": "?", - "x": 15.25, - "y": 3.6 - }, { - "label": "SHIFT", - "x": 16.25, - "y": 3.6, - "w": 1.75 - }, { - "x": 19.5, - "y": 3.6 - }, { - "label": "UP", - "x": 18.25, - "y": 3.85 - }, { - "label": "X", - "x": 4.5, - "y": 4.0 - }, { - "label": "C", - "x": 5.5, - "y": 4.0 - }, { - "label": "V", - "x": 6.5, - "y": 4.0 - }, { - "label": "B", - "x": 7.5, - "y": 4.0 - }, { - "label": "BEE", - "x": 9.25, - "y": 4.0 - }, { - "label": "N", - "x": 10.25, - "y": 4.0 - }, { - "label": "M", - "x": 11.25, - "y": 4.0 - }, { - "label": ",", - "x": 12.25, - "y": 4.0 - }, { - "label": "CTRL", - "x": 0, - "y": 4.5, - "w": 1.25 - }, { - "label": "WIN", - "x": 1.25, - "y": 4.5, - "w": 1.25 - }, { - "label": "WIN", - "x": 15, - "y": 4.6 - }, { - "label": "CTRL", - "x": 16, - "y": 4.6 - }, { - "label": "LEFT", - "x": 17.25, - "y": 4.85 - }, { - "label": "DOWN", - "x": 18.25, - "y": 4.85 - }, { - "label": "RIGHT", - "x": 19.25, - "y": 4.85 - }, { - "x": 4.75, - "y": 5.0, - "w": 2.75 - }, { - "label": "ALT", - "x": 7.5, - "y": 5.0, - "w": 1.25 - }, { - "label": "ALT", - "x": 9.5, - "y": 5.0, - "w": 1.25 - }, { - "x": 10.75, - "y": 5.0, - "w": 2.25 - }] + "layout": [ + { "label": "ESC", "x": 0.5, "y": 0.5 }, + { "label": "1", "x": 1.5, "y": 0.5 }, + { "label": "2", "x": 3.25, "y": 1.0 }, + { "label": "3", "x": 4.25, "y": 1.0 }, + { "label": "4", "x": 5.25, "y": 1.0 }, + { "label": "5", "x": 6.25, "y": 1.0 }, + { "label": "6", "x": 7.25, "y": 1.0 }, + { "label": "7", "x": 10, "y": 1.0 }, + { "label": "8", "x": 11, "y": 1.0 }, + { "label": "9", "x": 12, "y": 1.0 }, + { "label": "0", "x": 13, "y": 1.0 }, + { "label": "_", "x": 14.5, "y": 0.6 }, + { "label": "+", "x": 15.5, "y": 0.6 }, + { "label": "Back", "x": 16.5, "y": 0.6 }, + { "label": "Del", "x": 17.5, "y": 0.6 }, + { "x": 19.1, "y": 0.1 }, + + { "label": "TAB", "x": 0.15, "y": 1.5, "w": 1.5 }, + { "label": "Q", "x": 1.65, "y": 1.5 }, + { "label": "W", "x": 3.75, "y": 2.0 }, + { "label": "E", "x": 4.75, "y": 2.0 }, + { "label": "R", "x": 5.75, "y": 2.0 }, + { "label": "T", "x": 6.75, "y": 2.0 }, + { "label": "Y", "x": 9.5, "y": 2.0 }, + { "label": "U", "x": 10.5, "y": 2.0 }, + { "label": "I", "x": 11.5, "y": 2.0 }, + { "label": "O", "x": 12.5, "y": 2.0 }, + { "label": "P", "x": 14.35, "y": 1.6 }, + { "label": "[", "x": 15.35, "y": 1.6 }, + { "label": "]", "x": 16.35, "y": 1.6 }, + { "label": "\\", "x": 17.35, "y": 1.6, "w": 1.5 }, + { "x": 19.1, "y": 1.6 }, + + { "label": "CAPS", "x": 0.15, "y": 2.5, "w": 1.75 }, + { "label": "A", "x": 1.9, "y": 2.5 }, + { "label": "S", "x": 4, "y": 3.0 }, + { "label": "D", "x": 5, "y": 3.0 }, + { "label": "F", "x": 6, "y": 3.0 }, + { "label": "G", "x": 7, "y": 3.0 }, + { "label": "H", "x": 9.75, "y": 3.0 }, + { "label": "J", "x": 10.75, "y": 3.0 }, + { "label": "K", "x": 11.75, "y": 3.0 }, + { "label": "L", "x": 12.75, "y": 3.0 }, + { "label": ";", "x": 14.6, "y": 2.6 }, + { "label": "'", "x": 15.6, "y": 2.6 }, + { "label": "ENTER", "x": 16.6, "y": 2.6, "w": 2.25 }, + { "x": 19.1, "y": 2.6 }, + + { "label": "SHIFT", "x": 0, "y": 3.5, "w": 2.25 }, + { "label": "Z", "x": 2.25, "y": 3.5 }, + { "label": "X", "x": 4.5, "y": 4.0 }, + { "label": "C", "x": 5.5, "y": 4.0 }, + { "label": "V", "x": 6.5, "y": 4.0 }, + { "label": "B", "x": 7.5, "y": 4.0 }, + { "label": "BEE", "x": 9.25, "y": 4.0 }, + { "label": "N", "x": 10.25, "y": 4.0 }, + { "label": "M", "x": 11.25, "y": 4.0 }, + { "label": ",", "x": 12.25, "y": 4.0 }, + { "label": ".", "x": 14.25, "y": 3.6 }, + { "label": "?", "x": 15.25, "y": 3.6 }, + { "label": "SHIFT", "x": 16.25, "y": 3.6, "w": 1.75 }, + { "label": "UP", "x": 18.25, "y": 3.85 }, + { "x": 19.5, "y": 3.6 }, + + { "label": "CTRL", "x": 0, "y": 4.5, "w": 1.25 }, + { "label": "WIN", "x": 1.25, "y": 4.5, "w": 1.25 }, + { "x": 4.75, "y": 5.0, "w": 2.75 }, + { "label": "ALT", "x": 7.5, "y": 5.0, "w": 1.25 }, + { "label": "ALT", "x": 9.5, "y": 5.0, "w": 1.25 }, + { "x": 10.75, "y": 5.0, "w": 2.25 }, + { "label": "WIN", "x": 15, "y": 4.6 }, + { "label": "CTRL", "x": 16, "y": 4.6 }, + { "label": "LEFT", "x": 17.25, "y": 4.85 }, + { "label": "DOWN", "x": 18.25, "y": 4.85 }, + { "label": "RIGHT", "x": 19.25, "y": 4.85 } + ] } } } diff --git a/keyboards/p3d/glitch/keymaps/default/keymap.c b/keyboards/p3d/glitch/keymaps/default/keymap.c index 43aa53c9f1c..da32a84506c 100644 --- a/keyboards/p3d/glitch/keymaps/default/keymap.c +++ b/keyboards/p3d/glitch/keymaps/default/keymap.c @@ -19,11 +19,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_all( - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_MUTE, - 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_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_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_MUTE, + 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_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_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ) }; diff --git a/keyboards/paprikman/albacore/config.h b/keyboards/paprikman/albacore/config.h index 0835c606fa3..e996752af1f 100644 --- a/keyboards/paprikman/albacore/config.h +++ b/keyboards/paprikman/albacore/config.h @@ -43,7 +43,6 @@ along with this program. If not, see . #ifdef RGB_MATRIX_ENABLE #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 #define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN diff --git a/keyboards/planck/keymaps/abhixec/keymap.c b/keyboards/planck/keymaps/abhixec/keymap.c index e95aa344d60..ae310120a2f 100644 --- a/keyboards/planck/keymaps/abhixec/keymap.c +++ b/keyboards/planck/keymaps/abhixec/keymap.c @@ -116,7 +116,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------+------+------+------+------+------+------| * | | |MUSmod|Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk| | | | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof|TermOn|TermOf| | | | + * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' @@ -124,7 +124,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, _______, _______, _______, - _______, 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/abishalom/keymap.c b/keyboards/planck/keymaps/abishalom/keymap.c index 91dadb2c3a6..58449227750 100644 --- a/keyboards/planck/keymaps/abishalom/keymap.c +++ b/keyboards/planck/keymaps/abishalom/keymap.c @@ -138,7 +138,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------+------+------+------+------+------+------| * | | |MUSmod|Aud on|Audoff|AGnorm|AGswap|Qwerty| | |Plover| | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof|TermOn|TermOf| | | | + * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' @@ -146,7 +146,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, _______, _______, 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/charlesrocket/keymap.c b/keyboards/planck/keymaps/charlesrocket/keymap.c index d3d2f824209..9c37567926d 100644 --- a/keyboards/planck/keymaps/charlesrocket/keymap.c +++ b/keyboards/planck/keymaps/charlesrocket/keymap.c @@ -99,7 +99,7 @@ void set_layer_color(int layer) { } } -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_user(void) { if (g_suspend_state || keyboard_config.disable_layer_led) { return; } switch (get_highest_layer(layer_state)) { case 0: @@ -119,6 +119,7 @@ void rgb_matrix_indicators_user(void) { rgb_matrix_set_color_all(0, 0, 0); break; } + return false; } bool process_record_user(uint16_t keycode, keyrecord_t *record) { diff --git a/keyboards/planck/keymaps/corvec/keymap.c b/keyboards/planck/keymaps/corvec/keymap.c index fc9f2e49852..c3029adc7be 100644 --- a/keyboards/planck/keymaps/corvec/keymap.c +++ b/keyboards/planck/keymaps/corvec/keymap.c @@ -126,7 +126,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+-------------+------+------+------+------+------| * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk| |AS On | AS + | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof|TermOn|TermOf|AS Rep|AS Off| AS - | + * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | |AS Rep|AS Off| AS - | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | | | | Reset| * `-----------------------------------------------------------------------------------' @@ -135,7 +135,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_ADJUST] = LAYOUT_planck_grid( COLEMAK, _______, DEBUG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, QWERTY , _______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, _______, KC_ASON, KC_ASUP, - _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, TERM_ON, TERM_OFF,KC_ASRP, KC_ASOFF,KC_ASDN, + _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, KC_ASRP, KC_ASOFF,KC_ASDN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT ) diff --git a/keyboards/planck/keymaps/dear_vehicle_owner/keymap.c b/keyboards/planck/keymaps/dear_vehicle_owner/keymap.c index c34130f36f6..31a273be510 100644 --- a/keyboards/planck/keymaps/dear_vehicle_owner/keymap.c +++ b/keyboards/planck/keymaps/dear_vehicle_owner/keymap.c @@ -158,16 +158,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------+------+------+------+------+------+------| * | | |MUSmod|Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak|Plover| | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof|TermOn|TermOf| | | | + * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' */ [_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, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + _______, 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, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) }; diff --git a/keyboards/planck/keymaps/default/keymap.c b/keyboards/planck/keymaps/default/keymap.c index 8041e0badad..63817e3d48f 100644 --- a/keyboards/planck/keymaps/default/keymap.c +++ b/keyboards/planck/keymaps/default/keymap.c @@ -157,7 +157,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------+------+------+------+------+------+------| * | | |MUSmod|Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak|Plover| | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof|TermOn|TermOf| | | | + * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' diff --git a/keyboards/planck/keymaps/dodger/keymap.c b/keyboards/planck/keymaps/dodger/keymap.c index 2a7486f2de9..a0fede5fa04 100644 --- a/keyboards/planck/keymaps/dodger/keymap.c +++ b/keyboards/planck/keymaps/dodger/keymap.c @@ -118,8 +118,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_ADJUST] = LAYOUT_planck_grid( EEP_RST, 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, _______, _______, _______, _______, _______, - _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, _______, _______, TERM_ON, TERM_OFF, _______, _______, _______, + _______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, _______, _______, _______, _______, _______, + _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), @@ -235,4 +235,4 @@ void matrix_init_user(void) { void keyboard_post_init_user(void) { rgblight_sethsv_noeeprom(0, 0, 0); rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); -} \ No newline at end of file +} diff --git a/keyboards/planck/keymaps/dudeofawesome/keymap.c b/keyboards/planck/keymaps/dudeofawesome/keymap.c index ad515032b67..951cb456928 100644 --- a/keyboards/planck/keymaps/dudeofawesome/keymap.c +++ b/keyboards/planck/keymaps/dudeofawesome/keymap.c @@ -161,7 +161,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------' */ [_ADJUST] = LAYOUT_planck_grid( - _______, QK_BOOT, DEBUG, _______, _______, _______, _______, TERM_ON, TERM_OFF,_______, _______, KC_DEL , + _______, QK_BOOT, DEBUG, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL , KC_CAPS, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, WORKMAN, DVORAK, COLEMAK, _______, _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, RGB_M_R, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ diff --git a/keyboards/planck/keymaps/dvz/keymap.c b/keyboards/planck/keymaps/dvz/keymap.c index 1d5ea41c744..bedfd0e446e 100644 --- a/keyboards/planck/keymaps/dvz/keymap.c +++ b/keyboards/planck/keymaps/dvz/keymap.c @@ -141,16 +141,16 @@ LSFT_T(KC_TAB),DE_Y, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, * |------+------+------+------+------+------+------+------+------+------+------+------| * |PowOff| |MUSmod|Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak|Plover| | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof|TermOn|TermOf| | | | + * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' */ [_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 , - KC_POWER,_______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, _______, _______, _______, _______, _______, - _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, TERM_ON, TERM_OFF, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + _______, QK_BOOT, DEBUG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL , + KC_POWER,_______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, _______, _______, _______, _______, _______, + _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) }; diff --git a/keyboards/planck/keymaps/emiller/keymap.c b/keyboards/planck/keymaps/emiller/keymap.c index cab0193ceb0..e1c065d76c3 100644 --- a/keyboards/planck/keymaps/emiller/keymap.c +++ b/keyboards/planck/keymaps/emiller/keymap.c @@ -166,7 +166,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------' */ [_ADJUST] = LAYOUT_planck_grid( - _______, QK_BOOT, DEBUG, _______, _______, _______, _______, TERM_ON, TERM_OFF,_______, _______, KC_DEL , + _______, QK_BOOT, DEBUG, _______, _______, _______, _______, _______, _______, _______, _______, 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, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ diff --git a/keyboards/planck/keymaps/eshesh2/keymap.c b/keyboards/planck/keymaps/eshesh2/keymap.c index 672d28ea3ca..1e958ca4e75 100644 --- a/keyboards/planck/keymaps/eshesh2/keymap.c +++ b/keyboards/planck/keymaps/eshesh2/keymap.c @@ -117,16 +117,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------+------+------+------+------+------+------| * | | |MUSmod|Aud on|Audoff|AGnorm|AGswap|Qwerty| | |Numpad| | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof|TermOn|TermOf| | | | + * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' */ [_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, XXXXXXX, XXXXXXX, NUMPAD, _______, - _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, TERM_ON, TERM_OFF, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + _______, 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, XXXXXXX, XXXXXXX, NUMPAD, _______, + _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) }; diff --git a/keyboards/planck/keymaps/eshesh2/readme.md b/keyboards/planck/keymaps/eshesh2/readme.md index 73510c20285..f5ee73f1e61 100644 --- a/keyboards/planck/keymaps/eshesh2/readme.md +++ b/keyboards/planck/keymaps/eshesh2/readme.md @@ -58,7 +58,7 @@ eshesh2's Planck layout with a rotary encoder on the top left of the Planck. It |------+------+------+------+------+------+------+------+------+------+------+------| | | |MUSmod|Aud on|Audoff|AGnorm|AGswap|Qwerty| | |Numpad| | |------+------+------+------+------+------+------+------+------+------+------+------| - | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof|TermOn|TermOf| | | | + | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | | |------+------+------+------+------+------+------+------+------+------+------+------| | | | | | | | | | | | | `-----------------------------------------------------------------------------------' diff --git a/keyboards/planck/keymaps/fabian/keymap.c b/keyboards/planck/keymaps/fabian/keymap.c index 54d17cd51e9..22447034105 100644 --- a/keyboards/planck/keymaps/fabian/keymap.c +++ b/keyboards/planck/keymaps/fabian/keymap.c @@ -172,10 +172,10 @@ 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, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + _______, 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, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) }; diff --git a/keyboards/planck/keymaps/foreveranapple/keymap.c b/keyboards/planck/keymaps/foreveranapple/keymap.c index ade51d5a3ca..1b8ad9e3ea0 100644 --- a/keyboards/planck/keymaps/foreveranapple/keymap.c +++ b/keyboards/planck/keymaps/foreveranapple/keymap.c @@ -197,7 +197,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------+------+------+------+------+------+------| * | | |MUSmod|Aud on|Audoff|AGnorm|AGswap|Qwerty|NixQty| OSX |Plover|Colemk| * |------+------+------+------+------+------+------+------+------+------+------+------| - * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof|TermOn|TermOf| | | | + * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' @@ -205,7 +205,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, NIXQWERTY, OSX, PLOVER, COLEMAK, - _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, TERM_ON, TERM_OFF, DVORAK, _______, _______, + _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, DVORAK, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) diff --git a/keyboards/planck/keymaps/fsck/keymap.c b/keyboards/planck/keymaps/fsck/keymap.c index f1043d53d25..1aee2b7daab 100644 --- a/keyboards/planck/keymaps/fsck/keymap.c +++ b/keyboards/planck/keymaps/fsck/keymap.c @@ -100,7 +100,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------' */ [_ADJUST] = LAYOUT_planck_grid( - _______, QK_BOOT, DEBUG, _______, _______, _______, _______, TERM_ON, TERM_OFF,_______, _______, KC_DEL, + _______, QK_BOOT, DEBUG, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, _______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, _______, _______, _______, _______, _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ diff --git a/keyboards/planck/keymaps/grahampheath/keymap.c b/keyboards/planck/keymaps/grahampheath/keymap.c index cfb15ab9a54..d4c7c76debf 100644 --- a/keyboards/planck/keymaps/grahampheath/keymap.c +++ b/keyboards/planck/keymaps/grahampheath/keymap.c @@ -213,7 +213,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------' */ [_ADJUST] = LAYOUT_planck_grid( - _______, QK_BOOT, DEBUG, _______, _______, _______, _______, TERM_ON, TERM_OFF,_______, _______, KC_DEL , + _______, QK_BOOT, DEBUG, _______, _______, _______, _______, _______, _______, _______, _______, 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, _______, _______, _______, _______, _______, BACKLIT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ diff --git a/keyboards/planck/keymaps/gunp/keymap.c b/keyboards/planck/keymaps/gunp/keymap.c index 3e5abb947f7..d469dbeccdb 100644 --- a/keyboards/planck/keymaps/gunp/keymap.c +++ b/keyboards/planck/keymaps/gunp/keymap.c @@ -275,10 +275,11 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } #ifdef RGB_MATRIX_ENABLE - void rgb_matrix_indicators_kb(void) { + bool rgb_matrix_indicators_user(void) { // `42` is the index of the middle light at the bottom row (in planck light) // it is disabled because it does not have a cover, hence irritates my eyes rgb_matrix_set_color(42, 0, 0, 0); + return false; } #endif diff --git a/keyboards/planck/keymaps/hvp/keymap.c b/keyboards/planck/keymaps/hvp/keymap.c index 1aad2393015..fe17924f2ba 100644 --- a/keyboards/planck/keymaps/hvp/keymap.c +++ b/keyboards/planck/keymaps/hvp/keymap.c @@ -75,7 +75,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, AG_NORM, AG_SWAP, _______, _______, _______, KC_7, KC_8, KC_9, KC_0, _______, _______, _______, MU_MOD, AU_ON, AU_OFF, _______, _______, KC_4, KC_5, KC_6, _______, _______, KC_PSCR, MUV_DE, MUV_IN, MU_ON, MU_OFF, _______, _______, KC_0, KC_1, KC_2, KC_3, _______, - QK_BOOT, _______, TERM_ON, TERM_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______, DEBUG + QK_BOOT, _______, _______, _______, MI_ON, MI_OFF, _______, _______, _______, _______, _______, DEBUG )}; #ifdef AUDIO_ENABLE diff --git a/keyboards/planck/keymaps/jasperla/keymap.c b/keyboards/planck/keymaps/jasperla/keymap.c index 8153aa33b7b..151b32cf188 100644 --- a/keyboards/planck/keymaps/jasperla/keymap.c +++ b/keyboards/planck/keymaps/jasperla/keymap.c @@ -124,7 +124,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_VAI, RGB_VAD, KC_DEL , _______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, _______, _______, _______, _______, - _______, 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/jdelkins/keymap.c b/keyboards/planck/keymaps/jdelkins/keymap.c index 8a039bc00e2..0931342c2f6 100644 --- a/keyboards/planck/keymaps/jdelkins/keymap.c +++ b/keyboards/planck/keymaps/jdelkins/keymap.c @@ -168,7 +168,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* [_ADJUST] = LAYOUT( */ /* _______, 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/jirgn/keymap.c b/keyboards/planck/keymaps/jirgn/keymap.c index edbb3fbed7e..6a180a7239c 100644 --- a/keyboards/planck/keymaps/jirgn/keymap.c +++ b/keyboards/planck/keymaps/jirgn/keymap.c @@ -148,7 +148,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------' */ [_ADJUST] = LAYOUT_planck_grid( - _______, QK_BOOT, DEBUG, _______, _______, _______, _______, TERM_ON, TERM_OFF,_______, _______, KC_DEL , + _______, QK_BOOT, DEBUG, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL , _______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, PLOVER, _______, _______, _______, _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ diff --git a/keyboards/planck/keymaps/kelorean/keymap.c b/keyboards/planck/keymaps/kelorean/keymap.c index 8128f62302a..fe31f1f1fa3 100644 --- a/keyboards/planck/keymaps/kelorean/keymap.c +++ b/keyboards/planck/keymaps/kelorean/keymap.c @@ -164,7 +164,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/khord/keymap.c b/keyboards/planck/keymaps/khord/keymap.c index 19166dbf4ee..93e405feca1 100644 --- a/keyboards/planck/keymaps/khord/keymap.c +++ b/keyboards/planck/keymaps/khord/keymap.c @@ -106,10 +106,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------' */ [_ADJUST] = LAYOUT_planck_grid( - _______, QK_BOOT, DEBUG, _______, _______, _______, _______, TERM_ON, TERM_OFF, ADMIN, SMSPC1, KC_DEL , - _______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, _______, _______, M_BRDFT, M_BRINC, _______, - _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, M_BRTOG, M_BRDEC, C_A_INS, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, C_A_DEL + _______, QK_BOOT, DEBUG, _______, _______, _______, _______, _______, _______, ADMIN, SMSPC1, KC_DEL , + _______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, _______, _______, M_BRDFT, M_BRINC, _______, + _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, M_BRTOG, M_BRDEC, C_A_INS, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, C_A_DEL ) }; diff --git a/keyboards/planck/keymaps/kifinnsson/keymap.c b/keyboards/planck/keymaps/kifinnsson/keymap.c index daee15842c6..450d8600222 100644 --- a/keyboards/planck/keymaps/kifinnsson/keymap.c +++ b/keyboards/planck/keymaps/kifinnsson/keymap.c @@ -169,16 +169,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | |AGnorm|AGswap| |Colemk| | | | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | |TermOn|TrmOff| | | | + * | | | | | | | | | | | | | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' */ [_ADJUST] = LAYOUT_planck_grid( - _______, QK_BOOT, DEBUG, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, AG_NORM, AG_SWAP, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, TERM_ON, TERM_OFF, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + _______, QK_BOOT, DEBUG, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, AG_NORM, AG_SWAP, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) }; diff --git a/keyboards/planck/keymaps/kloki/keymap.c b/keyboards/planck/keymaps/kloki/keymap.c index 4320e12a72d..9df9edbde7b 100644 --- a/keyboards/planck/keymaps/kloki/keymap.c +++ b/keyboards/planck/keymaps/kloki/keymap.c @@ -95,7 +95,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------' */ [_ADJUST] = LAYOUT_planck_grid( - _______, QK_BOOT, DEBUG, _______, _______, _______, _______, TERM_ON, TERM_OFF,_______, _______, KC_DEL , + _______, QK_BOOT, DEBUG, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL , _______, _______, MU_MOD, AU_ON, AU_OFF, _______, _______, QWERTY, WORKMAN, _______, _______, _______, _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ diff --git a/keyboards/planck/keymaps/kmontag42/keymap.c b/keyboards/planck/keymaps/kmontag42/keymap.c index f3d3a6dcfb6..548c30b8038 100644 --- a/keyboards/planck/keymaps/kmontag42/keymap.c +++ b/keyboards/planck/keymaps/kmontag42/keymap.c @@ -122,7 +122,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------' */ [_ADJUST] = LAYOUT_planck_grid( - _______, QK_BOOT, DEBUG, _______, _______, _______, _______, TERM_ON, TERM_OFF,_______, _______, KC_DEL , + _______, QK_BOOT, DEBUG, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL , _______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, _______, _______, PLOVER, _______, _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ diff --git a/keyboards/planck/keymaps/lja83/keymap.c b/keyboards/planck/keymaps/lja83/keymap.c index 8aaeef3a0f1..61691968171 100644 --- a/keyboards/planck/keymaps/lja83/keymap.c +++ b/keyboards/planck/keymaps/lja83/keymap.c @@ -160,16 +160,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------+------+------+------+------+------+------| * | | |MUSmod|Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak|Plover| | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof|TermOn|TermOf| | | | + * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' */ [_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, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + _______, 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, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), [_NAV] = LAYOUT_planck_grid( diff --git a/keyboards/planck/keymaps/mgalisa/keymap.c b/keyboards/planck/keymaps/mgalisa/keymap.c index 11fb3098510..64a1759ba9c 100644 --- a/keyboards/planck/keymaps/mgalisa/keymap.c +++ b/keyboards/planck/keymaps/mgalisa/keymap.c @@ -194,10 +194,10 @@ 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, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + _______, 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, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) }; diff --git a/keyboards/planck/keymaps/mikethetiger/keymap.c b/keyboards/planck/keymaps/mikethetiger/keymap.c index 35c6917bbf0..5fa664bea2c 100644 --- a/keyboards/planck/keymaps/mikethetiger/keymap.c +++ b/keyboards/planck/keymaps/mikethetiger/keymap.c @@ -163,10 +163,10 @@ 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, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + _______, 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, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) }; diff --git a/keyboards/planck/keymaps/msiu/keymap.c b/keyboards/planck/keymaps/msiu/keymap.c index afcc799c44d..b2576f3bdde 100644 --- a/keyboards/planck/keymaps/msiu/keymap.c +++ b/keyboards/planck/keymaps/msiu/keymap.c @@ -56,7 +56,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_ADJUST] = LAYOUT_planck_grid( _______, _______, 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, DVORAK, _______, _______, _______, - _______, 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, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT ), diff --git a/keyboards/planck/keymaps/muzfuz/keymap.c b/keyboards/planck/keymaps/muzfuz/keymap.c index 985f4b9deec..10120dece44 100644 --- a/keyboards/planck/keymaps/muzfuz/keymap.c +++ b/keyboards/planck/keymaps/muzfuz/keymap.c @@ -108,7 +108,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, _______, _______, QWERTY, _______, _______, _______, _______, - _______, 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/myoung34/keymap.c b/keyboards/planck/keymaps/myoung34/keymap.c index 714b7b3a89f..b58688c3935 100644 --- a/keyboards/planck/keymaps/myoung34/keymap.c +++ b/keyboards/planck/keymaps/myoung34/keymap.c @@ -100,7 +100,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------' */ [_ADJUST] = LAYOUT_planck_grid( - _______, QK_BOOT, DEBUG, _______, _______, _______, _______, TERM_ON, TERM_OFF,_______, _______, KC_DEL , + _______, QK_BOOT, DEBUG, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL , _______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, _______, _______, _______, _______, _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, RGB_M_R, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ diff --git a/keyboards/planck/keymaps/oryx/keymap.c b/keyboards/planck/keymaps/oryx/keymap.c index 436deadee4d..276a1ff2537 100644 --- a/keyboards/planck/keymaps/oryx/keymap.c +++ b/keyboards/planck/keymaps/oryx/keymap.c @@ -90,7 +90,7 @@ void set_layer_color(int layer) { } } -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_user(void) { if (keyboard_config.disable_layer_led) { return; } @@ -108,6 +108,7 @@ void rgb_matrix_indicators_user(void) { if (rgb_matrix_get_flags() == LED_FLAG_NONE) rgb_matrix_set_color_all(0, 0, 0); break; } + return false; } bool process_record_user(uint16_t keycode, keyrecord_t *record) { diff --git a/keyboards/planck/keymaps/pevecyan/keymap.c b/keyboards/planck/keymaps/pevecyan/keymap.c index 2b7518f22c6..eb5ed928bd3 100644 --- a/keyboards/planck/keymaps/pevecyan/keymap.c +++ b/keyboards/planck/keymaps/pevecyan/keymap.c @@ -117,7 +117,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, _______, _______, _______, _______, - _______, 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/pickle_jr/keymap.c b/keyboards/planck/keymaps/pickle_jr/keymap.c index 48ce0e645aa..0d2e772955a 100644 --- a/keyboards/planck/keymaps/pickle_jr/keymap.c +++ b/keyboards/planck/keymaps/pickle_jr/keymap.c @@ -167,10 +167,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-------------------------------------------------------------------------------------------' */ [_ADJUST] = LAYOUT_planck_grid( - _______, QK_BOOT, _______, 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, _______, _______, _______, _______, _______, - _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, TERM_ON, TERM_OFF, _______, _______, _______, - _______, _______, _______, _______, _______, KC_TRNS, KC_TRNS, _______, _______, _______, _______, _______ + _______, QK_BOOT, _______, 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, _______, _______, _______, _______, _______, + _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, KC_TRNS, KC_TRNS, _______, _______, _______, _______, _______ ) diff --git a/keyboards/planck/keymaps/pjanx/keymap.c b/keyboards/planck/keymaps/pjanx/keymap.c index 9e191324c30..9444cf13d4b 100644 --- a/keyboards/planck/keymaps/pjanx/keymap.c +++ b/keyboards/planck/keymaps/pjanx/keymap.c @@ -158,15 +158,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------+------+------+------+------+------+------| * | | |MUSmod|Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak|Plover| | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof|TermOn|TermOf| | | | + * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | | * |------+------+------+------+------+------+------+------+------+------+------+------| * | M1 | M2 | M3 | | | | | <- | vv | ^^ | -> | * `-----------------------------------------------------------------------------------' */ [_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, _______, _______, _______, + _______, 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, _______, _______, _______, _______, _______, KC_MS_BTN1, KC_MS_BTN2, KC_MS_BTN3, _______, _______, _______, _______, _______, KC_MS_LEFT, KC_MS_DOWN, KC_MS_UP, KC_MS_RIGHT ) diff --git a/keyboards/planck/keymaps/prog_qgmlwb/src/special.h b/keyboards/planck/keymaps/prog_qgmlwb/src/special.h index de05db2070f..3645b3603b5 100644 --- a/keyboards/planck/keymaps/prog_qgmlwb/src/special.h +++ b/keyboards/planck/keymaps/prog_qgmlwb/src/special.h @@ -12,7 +12,7 @@ * |------+------+------+------+------+------+------+------+------+------+------+------| * | | XXXX |MusMod|AudOff| AudOn|AgNorm|AgSwap|Dvorak|Colmak|Qwerty|QgmlEN|QgmlNO| * |------+------+------+------+------+------+------+------+------+------+------+------| - * | |Voice-|Voice+|MusOff| MusOn|MIDIOf|MIDIOn|TermOf|TermOn| T0 | T1 | T2 | + * | |Voice-|Voice+|MusOff| MusOn|MIDIOf|MIDIOn| | | T0 | T1 | T2 | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | XXXX | XXXX | XXXX | XXXX | * `-----------------------------------------------------------------------------------' @@ -20,7 +20,7 @@ #define adjust_map LAYOUT_ortho_4x12(\ QK_RBT, QK_BOOT, DB_TOGG, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, KC_DEL,\ QK_MAKE, XXXXXXX, MU_MOD, AU_OFF, AU_ON, AG_NORM, AG_SWAP, DF(DVORAK), DF(COLEMAK), DF(QWERTY), DF(QGMLWB_EN), DF(QGMLWB_NO),\ - _______, MUV_IN, MUV_DE, MU_OFF, MU_ON, MI_OFF, MI_ON, TERM_OFF, TERM_ON, KC_T0, KC_T1, KC_T2,\ + _______, MUV_IN, MUV_DE, MU_OFF, MU_ON, MI_OFF, MI_ON, _______, _______, KC_T0, KC_T1, KC_T2,\ _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX\ ) diff --git a/keyboards/planck/keymaps/ptillemans/keymap.c b/keyboards/planck/keymaps/ptillemans/keymap.c index cb240e80aa6..025dbc5e559 100644 --- a/keyboards/planck/keymaps/ptillemans/keymap.c +++ b/keyboards/planck/keymaps/ptillemans/keymap.c @@ -146,10 +146,10 @@ 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, DVORAK, PLOVER, _______, - BACKLIT, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, TERM_ON, TERM_OFF, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + _______, 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, DVORAK, PLOVER, _______, + BACKLIT, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) }; diff --git a/keyboards/planck/keymaps/raffle/keymap.c b/keyboards/planck/keymaps/raffle/keymap.c index 436db90e2c6..6ebce40f72d 100644 --- a/keyboards/planck/keymaps/raffle/keymap.c +++ b/keyboards/planck/keymaps/raffle/keymap.c @@ -117,7 +117,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, _______, _______, _______, _______, - _______, 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/rennerom/config.h b/keyboards/planck/keymaps/rennerom/config.h new file mode 100644 index 00000000000..af93b5e2cec --- /dev/null +++ b/keyboards/planck/keymaps/rennerom/config.h @@ -0,0 +1,38 @@ +// Copyright 2022 Max Renner (@rennerom) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#ifdef AUDIO_ENABLE + #define STARTUP_SONG SONG(PLANCK_SOUND) + // #define STARTUP_SONG SONG(NO_SOUND) +/* + #define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \ + SONG(COLEMAK_SOUND), \ + SONG(DVORAK_SOUND) \ + } +*/ +#endif + +#define TAPPING_TERM 200 + +/* + * MIDI options + */ + +/* enable basic MIDI features: + - MIDI notes can be sent when in Music mode is on +*/ + +#define MIDI_BASIC + +/* enable advanced MIDI features: + - MIDI notes can be added to the keymap + - Octave shift and transpose + - Virtual sustain, portamento, and modulation wheel + - etc. +*/ +//#define MIDI_ADVANCED + +// Most tactile encoders have detents every 4 stages +//#define ENCODER_RESOLUTION 4 diff --git a/keyboards/planck/keymaps/rennerom/keymap.c b/keyboards/planck/keymaps/rennerom/keymap.c new file mode 100644 index 00000000000..0d98aac9c14 --- /dev/null +++ b/keyboards/planck/keymaps/rennerom/keymap.c @@ -0,0 +1,174 @@ +// Copyright 2022 Max Renner (@rennerom) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H +#include "muse.h" + + +enum planck_layers { + _QWERTY, + _LOWER, + _RAISE, + _ADJUST, + _FN, + _NAV +}; + + +#define LOWER MO(_LOWER) +#define RAISE MO(_RAISE) +#define ESCNAV LT(_NAV, KC_ESC) +#define WORDL LALT(KC_LEFT) +#define WORDR LALT(KC_RGHT) +#define EOL LGUI(KC_RIGHT) +#define BOL LGUI(KC_LEFT) +#define SPOTLT LGUI(KC_SPC) +#define VBA LSFT(LALT(KC_F11)) +#define UNDO LGUI(KC_Z) +#define CUT LGUI(KC_X) +#define COPY LGUI(KC_C) +#define PSTE LGUI(KC_V) +#define ALL LGUI(KC_A) +#define FIND LGUI(KC_F) +#define SAVE LGUI(KC_S) + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Qwerty + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * |ESCNAV| A | S | D | F | G | H | J | K | L | ; | " | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |shfent| + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | fn | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_QWERTY] = LAYOUT_planck_grid( + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + ESCNAV, 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_SLSH, KC_SFTENT , + FN, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT +), + +/* fn + * ,------------------------------------------------------------------------------------. + * | | f1 | f2 | f3 | f4 | | | | | | | | + * ,------------------------------------------------------------------------------------. + * | | f5 | f6 | f7 | f8 | | | | | | | | + * ,------------------------------------------------------------------------------------. + * | | f9 | f10 | f11 | f12 | | | | | | | | + * ,------------------------------------------------------------------------------------. + * | | | | | | | | | | | | + * ,------------------------------------------------------------------------------------. + */ + +[_FN] = LAYOUT_planck_grid( + _______, KC_F1, KC_F2, KC_F3, KC_F4, _______, _______, _______, _______, _______, _______, _______, + _______, KC_F5, KC_F6, KC_F7, KC_F8, _______, _______, _______, _______, _______, _______, _______, + _______, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +), + +/* NAV + * ,------------------------------------------------------------------------------------. + * | | | WORDL| WORDR| | | | |Insert| | | Del | + * ,------------------------------------------------------------------------------------. + * | | | | | | | Left | Down | Up | Right| | | + * ,------------------------------------------------------------------------------------. + * | | | | | | | | | | | | | + * ,------------------------------------------------------------------------------------. + * | | | | | |OpenSpotlight| | | | | | + * ,------------------------------------------------------------------------------------. + */ + +[_NAV] = LAYOUT_planck_grid( + _______, _______, WORDL, WORDR, _______, _______, _______, KC_INS , _______, _______, _______, KC_DEL, + _______, ALL, SAVE, _______, FIND, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, + _______, UNDO, CUT, COPY, PSTE, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, SPOTLT, SPOTLT, _______, _______, _______, _______, _______ +), + +/* Lower + * ,-----------------------------------------------------------------------------------. + * | ` ~ | 1 ! | 2 @ | 3 # | 4 $ | 5 % | 6 ^ | 7 & | 8 * | 9 ( | 0 ) | Bksp | + * ,------------------------------------------------------------------------------------. + * | Del | { [ | } ] | ( | ) | - _ | + | = | * | % | _ | \ | | + * ,------------------------------------------------------------------------------------. + * | | ! | @ | # | $ | % | ^ | & | * | | | | + * ,------------------------------------------------------------------------------------. + * | | | | | | | | | | | | | + * ,------------------------------------------------------------------------------------. + */ + +[_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_LBRC, KC_RBRC, KC_LPRN, KC_RPRN, KC_MINS, KC_PLUS, KC_EQL, KC_ASTR, KC_PERC, KC_UNDS, KC_BSLS, + _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +), + +/* Raise + * ,------------------------------------------------------------------------------------. + * | | | | | | | | | | | | | + * ,------------------------------------------------------------------------------------. + * | Del | | | | | | | | | | | | + * ,------------------------------------------------------------------------------------. + * | | | | | | | | | | | | | + * ,------------------------------------------------------------------------------------. + * | | | | | | | | |Brite-|Brite+| Vol- | Vol+ | + * ,------------------------------------------------------------------------------------. + */ + +[_RAISE] = LAYOUT_planck_grid( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_DEL, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, VBA, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU +), + +/* Adjust (Lower + Raise) + * ,------------------------------------------------------------------------------------. + * | | f1 | f2 | f3 | f4 |RGBTOG| |HUE - |HUE + | |Debug |Reset | + * ,------------------------------------------------------------------------------------. + * | | f5 | f6 | f7 | f8 |RGBM -|RGBM +|SAT - |SAT + | | | | + * ,------------------------------------------------------------------------------------. + * | | f9 | f10 | f11 | f12 |RGBsp-|RGBsp+|VIB - |VIB + | | | | + * ,------------------------------------------------------------------------------------. + * | | | | | | | | | | | | + * ,------------------------------------------------------------------------------------. + */ + +[_ADJUST] = LAYOUT_planck_grid( + _______, KC_F1, KC_F2, KC_F3, KC_F4, RGB_TOG, _______, RGB_HUD, RGB_HUI, _______, DEBUG, RESET, + _______, KC_F5, KC_F6, KC_F7, KC_F8, RGB_RMOD, RGB_MOD, RGB_SAD, RGB_SAI, _______, _______, _______, + _______, KC_F9, KC_F10, KC_F11, KC_F12, RGB_SPD, RGB_SPI, RGB_VAD, RGB_VAI, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +) + + +}; + +/* fn + * ,------------------------------------------------------------------------------------. + * | | | | | | | | | | | | | + * ,------------------------------------------------------------------------------------. + * | | | | | | | | | | | | | + * ,------------------------------------------------------------------------------------. + * | | | | | | | | | | | | | + * ,------------------------------------------------------------------------------------. + * | | | | | | | | | | | | | + * ,------------------------------------------------------------------------------------. + */ + +//#ifdef AUDIO_ENABLE +// float plover_song[][2] = SONG(PLOVER_SOUND); +// float plover_gb_song[][2] = SONG(PLOVER_GOODBYE_SOUND); +//#endif + + +layer_state_t layer_state_set_user(layer_state_t state) { + return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); +} diff --git a/keyboards/planck/keymaps/rennerom/readme.md b/keyboards/planck/keymaps/rennerom/readme.md new file mode 100644 index 00000000000..81d580bba30 --- /dev/null +++ b/keyboards/planck/keymaps/rennerom/readme.md @@ -0,0 +1,2 @@ +# A Modified Default Planck Layout + diff --git a/keyboards/planck/keymaps/rennerom/rules.mk b/keyboards/planck/keymaps/rennerom/rules.mk new file mode 100644 index 00000000000..acf0896a321 --- /dev/null +++ b/keyboards/planck/keymaps/rennerom/rules.mk @@ -0,0 +1 @@ +SRC += muse.c \ No newline at end of file diff --git a/keyboards/planck/keymaps/rodhaene/keymap.c b/keyboards/planck/keymaps/rodhaene/keymap.c index 1732e19a3dd..8441ee5a64a 100644 --- a/keyboards/planck/keymaps/rodhaene/keymap.c +++ b/keyboards/planck/keymaps/rodhaene/keymap.c @@ -123,7 +123,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, NUMPAD, _______, _______, _______, - _______, 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, _______, _______, _______, _______, _______, BACKLIT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) diff --git a/keyboards/planck/keymaps/rootiest/keymap.c b/keyboards/planck/keymaps/rootiest/keymap.c index c289c50e5bc..ea9a85dba1a 100644 --- a/keyboards/planck/keymaps/rootiest/keymap.c +++ b/keyboards/planck/keymaps/rootiest/keymap.c @@ -380,7 +380,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_FEATURS] = LAYOUT_planck_mit( // LCTL(LALT(KC_DEL)), DO_RESET, DEBUG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, TD(TD_DEG_DEGF), TD(TD_SMILEY), KC_DEL, // RGB_VAI, RGB_VAD, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, DF(_BASE), DF(_COLEMAK), DF(_DVORAK), TO(_PLOVER), MY_RGBCON, // - KC_TRNS, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, TERM_ON, TERM_OFF, CK_ON, CK_OFF, KC_ENTER, // + KC_TRNS, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, KC_TRNS, KC_TRNS, CK_ON, CK_OFF, KC_ENTER, // KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, TG(_MOUSY), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), /* Special Features Layer [6] @@ -389,7 +389,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------+------+------+------+------+------+------| * |RGBVAI|RGBVAD|MU_MOD| AU_ON|AU_OFF|RALTGU|SALTGU| Base |Colemk|Dvorak|Plover|RGBCON| * |------+------+------+------+------+------+------+------+------+------+------+------| - * |------|MUV_DE|MUV_IN| MU_ON|MU_OFF| MI_ON|MI_OFF|TERMON|TRMOFF|CLK-ON|CLKOFF|Enter | + * |------|MUV_DE|MUV_IN| MU_ON|MU_OFF| MI_ON|MI_OFF|------|------|CLK-ON|CLKOFF|Enter | * |------+------+------+------+------+------+------+------+------+------+------+------| * |------|------|------|------|------| TG(8) |------|------|------|------|------| * `-----------------------------------------------------------------------------------' diff --git a/keyboards/planck/keymaps/smittey/keymap.c b/keyboards/planck/keymaps/smittey/keymap.c index f8d3f4b1bb6..02ad2bf36f8 100644 --- a/keyboards/planck/keymaps/smittey/keymap.c +++ b/keyboards/planck/keymaps/smittey/keymap.c @@ -156,7 +156,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_ADJUST] = LAYOUT_planck_grid( QK_BOOT, QWERTY, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, MI_OFF, MI_ON, KC_DEL, XXXXXXX, XXXXXXX, XXXXXXX, DVORAK, XXXXXXX, AG_NORM, AG_SWAP, XXXXXXX, XXXXXXX, AU_OFF, AU_ON, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, COLEMAK, XXXXXXX, XXXXXXX, XXXXXXX, TERM_ON, TERM_OFF, MU_OFF, MU_ON, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, COLEMAK, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, MU_OFF, MU_ON, XXXXXXX, PLOVER, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, _______, XXXXXXX, MUV_DE, MUV_IN, XXXXXXX ), diff --git a/keyboards/planck/keymaps/stuartfong1/keymap.c b/keyboards/planck/keymaps/stuartfong1/keymap.c index c394a9db81b..721ffcdc053 100644 --- a/keyboards/planck/keymaps/stuartfong1/keymap.c +++ b/keyboards/planck/keymaps/stuartfong1/keymap.c @@ -168,16 +168,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = * |------+------+------+------+------+------+------+------+------+------+------+------| * | | |MUSmod|Aud on|Audoff|AGnorm|AGswap| |Plover| | | | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof|TermOn|TermOf| | | | + * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' */ [_ADJUST] = LAYOUT_planck_grid( - XXXXXXX, QK_BOOT, DEBUG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, XXXXXXX, - XXXXXXX, XXXXXXX, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, XXXXXXX, PLOVER, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, TERM_ON, TERM_OFF, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX + XXXXXXX, QK_BOOT, DEBUG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, XXXXXXX, + XXXXXXX, XXXXXXX, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, XXXXXXX, PLOVER, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX ) }; diff --git a/keyboards/planck/keymaps/tom/keymap.c b/keyboards/planck/keymaps/tom/keymap.c index 6d101f3a3fc..d2608ff41f6 100644 --- a/keyboards/planck/keymaps/tom/keymap.c +++ b/keyboards/planck/keymaps/tom/keymap.c @@ -104,9 +104,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_ADJUST] = LAYOUT_planck_grid( C(G(S(KC_4))), 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, _______, _______, _______, _______, - _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, TERM_ON, TERM_OFF, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + _______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, _______, _______, _______, _______, + _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) }; @@ -226,7 +226,7 @@ bool music_mask_user(uint16_t keycode) { } } -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_user(void) { #ifdef RGB_MATRIX_ENABLE switch (get_highest_layer(layer_state)) { case _RAISE: @@ -260,4 +260,5 @@ void rgb_matrix_indicators_user(void) { break; } #endif + return false; } diff --git a/keyboards/planck/keymaps/tomkonidas/keymap.c b/keyboards/planck/keymaps/tomkonidas/keymap.c index e0232f69ec2..c0d4860e12a 100644 --- a/keyboards/planck/keymaps/tomkonidas/keymap.c +++ b/keyboards/planck/keymaps/tomkonidas/keymap.c @@ -157,16 +157,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------+------+------+------+------+------+------| * | | |MUSmod|Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak|Plover| | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof|TermOn|TermOf| | | | + * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' */ [_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, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + _______, 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, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) }; diff --git a/keyboards/planck/keymaps/tomkonidas/readme.md b/keyboards/planck/keymaps/tomkonidas/readme.md index 34c2147604e..fa62bf8be75 100644 --- a/keyboards/planck/keymaps/tomkonidas/readme.md +++ b/keyboards/planck/keymaps/tomkonidas/readme.md @@ -79,7 +79,7 @@ |------+------+------+------+------+------+------+------+------+------+------+------| | | |MUSmod|Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak|Plover| | |------+------+------+------+------+------+------+------+------+------+------+------| - | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof|TermOn|TermOf| | | | + | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | | |------+------+------+------+------+------+------+------+------+------+------+------| | | | | | | | | | | | | | `-----------------------------------------------------------------------------------' diff --git a/keyboards/planck/keymaps/tylerwince/keymap.c b/keyboards/planck/keymaps/tylerwince/keymap.c index e00fb2567d0..79e25808337 100644 --- a/keyboards/planck/keymaps/tylerwince/keymap.c +++ b/keyboards/planck/keymaps/tylerwince/keymap.c @@ -166,7 +166,7 @@ void set_layer_color(int layer) { } } -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_user(void) { if (g_suspend_state || disable_layer_color) { return; } switch (get_highest_layer(layer_state)) { case 0: @@ -182,6 +182,7 @@ void rgb_matrix_indicators_user(void) { set_layer_color(4); break; } + return false; } bool process_record_user(uint16_t keycode, keyrecord_t *record) { diff --git a/keyboards/planck/keymaps/unagi/keymap.c b/keyboards/planck/keymaps/unagi/keymap.c index e75e7386bc8..1ab53ba02e1 100644 --- a/keyboards/planck/keymaps/unagi/keymap.c +++ b/keyboards/planck/keymaps/unagi/keymap.c @@ -171,7 +171,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/thk/keymaps/thk/keymap.c b/keyboards/planck/thk/keymaps/thk/keymap.c index e7d58d2d0b5..effac4d90d8 100644 --- a/keyboards/planck/thk/keymaps/thk/keymap.c +++ b/keyboards/planck/thk/keymaps/thk/keymap.c @@ -134,7 +134,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | |AGnorm|AGswap|Qwerty|Colemk|Dvorak| | | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | |TermOn|TermOf| | | | + * | | | | | | | | | | | | | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' @@ -142,7 +142,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_ADJUST] = LAYOUT_planck_grid( _______, QK_BOOT, DEBUG, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL , _______, _______, _______, _______, _______, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, - _______, _______, _______, _______, _______, _______, _______, TERM_ON, TERM_OFF, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) diff --git a/keyboards/playkbtw/ca66/keymaps/zyber/keymap.c b/keyboards/playkbtw/ca66/keymaps/zyber/keymap.c new file mode 100644 index 00000000000..f4db24f90fd --- /dev/null +++ b/keyboards/playkbtw/ca66/keymaps/zyber/keymap.c @@ -0,0 +1,21 @@ +// Copyright 2022 ZyBeR (@ZyberSE) +// SPDX-License-Identifier: GPL-2.0 + +#include "zyber.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + LAYOUT( + 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_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, TD(LBRC), KC_RBRC, KC_BSLS, KC_PGUP, + CTRL_C_UP, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, TD(SCLN), TD(QUOT), KC_ENT, KC_PGDN, + 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_UP, KC_HOME, + KC_NO, KC_LALT, KC_LGUI, KC_NO, KC_SPC, KC_NO, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT), + + LAYOUT( + 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, + KC_CAPS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_PSCR, KC_SLCK, KC_PAUS, KC_TRNS, RGB_MOD, + KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAD, RGB_VAI, KC_INS, KC_HOME, + KC_LSFT, KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, RGB_HUI, KC_END, + KC_NO, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, RGB_SAD, RGB_HUD, RGB_SAI), +}; diff --git a/keyboards/playkbtw/ca66/keymaps/zyber/rules.mk b/keyboards/playkbtw/ca66/keymaps/zyber/rules.mk new file mode 100644 index 00000000000..0a5b666e855 --- /dev/null +++ b/keyboards/playkbtw/ca66/keymaps/zyber/rules.mk @@ -0,0 +1 @@ +MOUSEKEY_ENABLE = no diff --git a/keyboards/playkbtw/pk64rgb/keymaps/default/keymap.c b/keyboards/playkbtw/pk64rgb/keymaps/default/keymap.c index 9cfbc3c287f..1b3b6fe1023 100644 --- a/keyboards/playkbtw/pk64rgb/keymaps/default/keymap.c +++ b/keyboards/playkbtw/pk64rgb/keymaps/default/keymap.c @@ -34,11 +34,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ) }; -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_user(void) { if (layer_state_is(1)) { rgb_matrix_set_color(77,0xFF, 0x80, 0x00); } if (host_keyboard_led_state().caps_lock) { rgb_matrix_set_color(28, 0xFF, 0xFF, 0xFF); } -} \ No newline at end of file + return false; +} diff --git a/keyboards/playkbtw/pk64rgb/keymaps/via/keymap.c b/keyboards/playkbtw/pk64rgb/keymaps/via/keymap.c index 015ba3a6b1a..d3ce3114fe4 100644 --- a/keyboards/playkbtw/pk64rgb/keymaps/via/keymap.c +++ b/keyboards/playkbtw/pk64rgb/keymaps/via/keymap.c @@ -45,11 +45,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), }; -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_user(void) { if (layer_state_is(1)) { rgb_matrix_set_color(77,0xFF, 0x80, 0x00); } if (host_keyboard_led_state().caps_lock) { rgb_matrix_set_color(28, 0xFF, 0xFF, 0xFF); } -} \ No newline at end of file + return false; +} diff --git a/keyboards/ploopyco/mouse/mouse.c b/keyboards/ploopyco/mouse/mouse.c index abcaa276d94..72535bf5465 100644 --- a/keyboards/ploopyco/mouse/mouse.c +++ b/keyboards/ploopyco/mouse/mouse.c @@ -167,21 +167,6 @@ bool process_record_kb(uint16_t keycode, keyrecord_t* record) { #endif } -/* If Mousekeys is disabled, then use handle the mouse button - * keycodes. This makes things simpler, and allows usage of - * the keycodes in a consistent manner. But only do this if - * Mousekeys is not enable, so it's not handled twice. - */ -#ifndef MOUSEKEY_ENABLE - if (IS_MOUSEKEY_BUTTON(keycode)) { - report_mouse_t currentReport = pointing_device_get_report(); - currentReport.buttons = pointing_device_handle_buttons(currentReport.buttons, record->event.pressed, keycode - KC_MS_BTN1); - pointing_device_set_report(currentReport); - pointing_device_send(); - } - -#endif - return true; } diff --git a/keyboards/ploopyco/trackball/trackball.c b/keyboards/ploopyco/trackball/trackball.c index c96bf15cbaf..6dbb73e8f86 100644 --- a/keyboards/ploopyco/trackball/trackball.c +++ b/keyboards/ploopyco/trackball/trackball.c @@ -178,14 +178,6 @@ bool process_record_kb(uint16_t keycode, keyrecord_t* record) { * the keycodes in a consistent manner. But only do this if * Mousekeys is not enable, so it's not handled twice. */ -#ifndef MOUSEKEY_ENABLE - if (IS_MOUSEKEY_BUTTON(keycode)) { - report_mouse_t currentReport = pointing_device_get_report(); - currentReport.buttons = pointing_device_handle_buttons(currentReport.buttons, record->event.pressed, keycode - KC_MS_BTN1); - pointing_device_set_report(currentReport); - pointing_device_send(); - } -#endif return true; } diff --git a/keyboards/ploopyco/trackball_mini/trackball_mini.c b/keyboards/ploopyco/trackball_mini/trackball_mini.c index dc3708fd51a..1e8212814c1 100644 --- a/keyboards/ploopyco/trackball_mini/trackball_mini.c +++ b/keyboards/ploopyco/trackball_mini/trackball_mini.c @@ -169,20 +169,6 @@ bool process_record_kb(uint16_t keycode, keyrecord_t* record) { pointing_device_set_cpi(is_drag_scroll ? PLOOPY_DRAGSCROLL_DPI : dpi_array[keyboard_config.dpi_config]); } -/* If Mousekeys is disabled, then use handle the mouse button - * keycodes. This makes things simpler, and allows usage of - * the keycodes in a consistent manner. But only do this if - * Mousekeys is not enable, so it's not handled twice. - */ -#ifndef MOUSEKEY_ENABLE - if (IS_MOUSEKEY_BUTTON(keycode)) { - report_mouse_t currentReport = pointing_device_get_report(); - currentReport.buttons = pointing_device_handle_buttons(currentReport.buttons, record->event.pressed, keycode - KC_MS_BTN1); - pointing_device_set_report(currentReport); - pointing_device_send(); - } -#endif - return true; } diff --git a/keyboards/ploopyco/trackball_thumb/config.h b/keyboards/ploopyco/trackball_thumb/config.h new file mode 100644 index 00000000000..97553a79595 --- /dev/null +++ b/keyboards/ploopyco/trackball_thumb/config.h @@ -0,0 +1,38 @@ +/* Copyright 2021 Colin Lam (Ploopy Corporation) + * Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) + * Copyright 2019 Sunjun Kim + * + * 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" + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT + +// #define ROTATIONAL_TRANSFORM_ANGLE 0 +#define POINTING_DEVICE_INVERT_Y + +// If board has a debug LED, you can enable it by defining this +// #define DEBUG_LED_PIN F7 + +/* PMW3360 Settings */ +#define POINTING_DEVICE_CS_PIN B0 diff --git a/keyboards/ploopyco/trackball_thumb/info.json b/keyboards/ploopyco/trackball_thumb/info.json new file mode 100644 index 00000000000..b76e2bd7fe2 --- /dev/null +++ b/keyboards/ploopyco/trackball_thumb/info.json @@ -0,0 +1,36 @@ +{ + "keyboard_name": "PloopyCo Thumb Trackball", + "url": "www.ploopy.co", + "maintainer": "ploopyco", + "manufacturer": "Ploopy Corporation", + "processor": "atmega32u4", + "bootloader": "atmel-dfu", + "usb": { + "vid": "0x5043", + "pid": "0x5C46", + "max_power": 100 + }, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "pointing_device": true, + "encoder": false + }, + "debounce": 5, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix":[0,0], "x":0, "y":0, "h": 1}, + {"matrix":[0,2], "x":1, "y":0, "h":2}, + {"matrix":[0,3],"x":2.5, "y":0.25, "h":1.5}, + {"matrix":[0,4],"x":4, "y":0, "h":2}, + {"matrix":[0,5],"x":5, "y":0.5, "h":1}, + {"matrix":[0,1],"x":0, "y":1, "h":1} + ] + } + } +} diff --git a/keyboards/ploopyco/trackball_thumb/keymaps/default/keymap.c b/keyboards/ploopyco/trackball_thumb/keymaps/default/keymap.c new file mode 100644 index 00000000000..897a5761c7b --- /dev/null +++ b/keyboards/ploopyco/trackball_thumb/keymaps/default/keymap.c @@ -0,0 +1,27 @@ +/* Copyright 2021 Colin Lam (Ploopy Corporation) + * Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) + * Copyright 2019 Sunjun Kim + * + * 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 + +// safe range starts at `PLOOPY_SAFE_RANGE` instead. + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( /* Base */ + KC_BTN4, KC_BTN1, KC_BTN3, KC_BTN2, KC_BTN5, + DPI_CONFIG + ), +}; diff --git a/keyboards/ploopyco/trackball_thumb/keymaps/default/readme.md b/keyboards/ploopyco/trackball_thumb/keymaps/default/readme.md new file mode 100644 index 00000000000..0f21a21ba6f --- /dev/null +++ b/keyboards/ploopyco/trackball_thumb/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for Ploopyco Thumb Trackball diff --git a/keyboards/ploopyco/trackball_thumb/keymaps/drag_scroll/keymap.c b/keyboards/ploopyco/trackball_thumb/keymaps/drag_scroll/keymap.c new file mode 100644 index 00000000000..03202cc8f7a --- /dev/null +++ b/keyboards/ploopyco/trackball_thumb/keymaps/drag_scroll/keymap.c @@ -0,0 +1,30 @@ +/* Copyright 2021 Colin Lam (Ploopy Corporation) + * Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) + * Copyright 2019 Sunjun Kim + * + * 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( /* Base */ + KC_BTN4, KC_BTN1, KC_BTN3, KC_BTN2, KC_BTN5, + MO(1) + ), + [1] = LAYOUT( + _______, _______, _______, _______, _______, + DRAG_SCROLL + ) +}; diff --git a/keyboards/ploopyco/trackball_thumb/keymaps/drag_scroll/readme.md b/keyboards/ploopyco/trackball_thumb/keymaps/drag_scroll/readme.md new file mode 100644 index 00000000000..22119b7ef9b --- /dev/null +++ b/keyboards/ploopyco/trackball_thumb/keymaps/drag_scroll/readme.md @@ -0,0 +1,3 @@ +# The Drag Scroll keymap for Ploopyco Thumb Trackball + +This is a sample keymap showing off what you can do with the custom callback drivers. diff --git a/keyboards/ploopyco/trackball_thumb/keymaps/via/config.h b/keyboards/ploopyco/trackball_thumb/keymaps/via/config.h new file mode 100644 index 00000000000..7670e631761 --- /dev/null +++ b/keyboards/ploopyco/trackball_thumb/keymaps/via/config.h @@ -0,0 +1,21 @@ +/* Copyright 2021 Colin Lam (Ploopy Corporation) + * Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) + * Copyright 2019 Sunjun Kim + * + * 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 DYNAMIC_KEYMAP_LAYER_COUNT 8 diff --git a/keyboards/ploopyco/trackball_thumb/keymaps/via/keymap.c b/keyboards/ploopyco/trackball_thumb/keymaps/via/keymap.c new file mode 100644 index 00000000000..1951535b69f --- /dev/null +++ b/keyboards/ploopyco/trackball_thumb/keymaps/via/keymap.c @@ -0,0 +1,30 @@ +/* Copyright 2021 Colin Lam (Ploopy Corporation) + * Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) + * Copyright 2019 Sunjun Kim + * + * 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( KC_BTN4, KC_BTN1, KC_BTN3, KC_BTN2, KC_BTN5, DPI_CONFIG ), + [1] = LAYOUT( _______, _______, _______, _______, _______, _______ ), + [2] = LAYOUT( _______, _______, _______, _______, _______, _______ ), + [3] = LAYOUT( _______, _______, _______, _______, _______, _______ ), + [4] = LAYOUT( _______, _______, _______, _______, _______, _______ ), + [5] = LAYOUT( _______, _______, _______, _______, _______, _______ ), + [6] = LAYOUT( _______, _______, _______, _______, _______, _______ ), + [7] = LAYOUT( _______, _______, _______, _______, _______, _______ ) +}; diff --git a/keyboards/ploopyco/trackball_thumb/keymaps/via/rules.mk b/keyboards/ploopyco/trackball_thumb/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/ploopyco/trackball_thumb/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/ploopyco/trackball_thumb/post_rules.mk b/keyboards/ploopyco/trackball_thumb/post_rules.mk new file mode 100644 index 00000000000..d922afd9cd7 --- /dev/null +++ b/keyboards/ploopyco/trackball_thumb/post_rules.mk @@ -0,0 +1,4 @@ +# Force encoder to be disabled +# But enable the defines for it +ENCODER_ENABLE := no +OPT_DEFS += -DENCODER_ENABLE diff --git a/keyboards/ploopyco/trackball_thumb/readme.md b/keyboards/ploopyco/trackball_thumb/readme.md new file mode 100644 index 00000000000..83ac740f855 --- /dev/null +++ b/keyboards/ploopyco/trackball_thumb/readme.md @@ -0,0 +1,58 @@ +# Ploopyco Thumb Trackball + +It's a DIY, QMK Powered Trackball...for thumb ballers! + +* Keyboard Maintainer: [PloopyCo](https://github.com/ploopyco), [Drashna Jael're](https://github.com/drashna/), [Germ](https://github.com/germ/) +* Hardware Supported: ATMega32u4 8MHz(3.3v) +* Hardware Availability: [Store](https://ploopy.co), [GitHub](https://github.com/ploopyco) + +Make example for this keyboard (after setting up your build environment): + + make ploopyco/trackball_thumb/rev1_001:default:flash + +To jump to the bootloader, hold down "Button 4" (button closest to the USB port). + +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). + +# Customizing your PloopyCo Thumb + +While the defaults are designed so that it can be plugged in and used right away, there are a number of things that you may want to change. Such as adding DPI control, or to use the ball to scroll while holding a button. To allow for this sort of control, there is a callback for both the scroll wheel and the mouse sensor. + +The default behavior for this is: + +```c +report_mouse_t pointing_device_task_kb(report_mouse_t mouse_report) { + + return mouse_report; +} +``` + +This should allow you to more heavily customize the behavior. + +Alternatively, the `process_wheel` and `process_mouse` functions can both be replaced too, to allow for even more functionality. + +Additionally, you can change the DPI/CPI or speed of the trackball by calling `pmw_set_cpi` at any time. Additionally, there is a `DPI_CONFIG` keycode that will cycle through an array of options for the DPI. This is set to 1200, 1600, and 2400, but can be changed. 1600 is also set to the default. + +To configure/set your own array, there are two defines to use, `PLOOPY_DPI_OPTIONS` to set the array, and `PLOOPY_DPI_DEFAULT`, which is the `0`-based index into the `PLOOPY_DPI_OPTIONS` array. + +```c +#define PLOOPY_DPI_OPTIONS { 1200, 1600, 2400 } +#define PLOOPY_DPI_DEFAULT 1 +``` +The `PLOOPY_DPI_OPTIONS` array sets the values that you want to be able to cycle through, and the order they are in. The "default" define lets the firmware know which of these options is the default and should be loaded by default. + +When inserted into your keymap, the `DPI_CONFIG` keycode will cycle through the values in the array each time you hit it. It stores this value in persistent memory, so it will remember your selection the next time the device powers up. + +## Drag Scroll + +Drag Scroll is a custom keycode for the Ploopy devices that allow you to hold or tap a button and have the mouse movement translate into scrolling instead. + +Nothing needs to be enabled to use this functionality. Just add the `DRAG_SCROLL` to your keymap. + +### Drag Scroll Configuration + +* `#define PLOOPY_DRAGSCROLL_MOMENTARY` - Makes the key into a momentary key, rather than a toggle. +* `#define PLOOPY_DRAGSCROLL_MULTIPLIER 0.75` - Sets the DPI multiplier to use when drag scroll is enabled. +* `#define PLOOPY_DRAGSCROLL_FIXED` - Normally, when activating Drag Scroll, it uses a fraction of the current DPI. You can define this to use a specific, set DPI rather than a fraction of the current DPI. + * `#define PLOOPY_DRAGSCROLL_DPI 100` - When the fixed DPI option is enabled, this sets the DPI to be used for Drag Scroll. +* `#define PLOOPY_DRAGSCROLL_INVERT` - This reverses the direction that the scroll is performed. diff --git a/keyboards/ploopyco/trackball_thumb/rev1_001/config.h b/keyboards/ploopyco/trackball_thumb/rev1_001/config.h new file mode 100644 index 00000000000..dc80d9401eb --- /dev/null +++ b/keyboards/ploopyco/trackball_thumb/rev1_001/config.h @@ -0,0 +1,24 @@ +/* Copyright 2021 Colin Lam (Ploopy Corporation) + * Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) + * Copyright 2019 Sunjun Kim + * + * 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 + +// These pins are not broken out, and cannot be used normally. +// They are set as output and pulled high, by default +#define UNUSED_PINS \ + { D1, D3, B4, B7, D6, C7, F6, F5, F3, F7 } diff --git a/keyboards/ploopyco/trackball_thumb/rev1_001/info.json b/keyboards/ploopyco/trackball_thumb/rev1_001/info.json new file mode 100644 index 00000000000..80951b5b2dd --- /dev/null +++ b/keyboards/ploopyco/trackball_thumb/rev1_001/info.json @@ -0,0 +1,20 @@ +{ + "usb": { + "device_version": "1.0.0" + }, + "diode_direction": "COL2ROW", + "matrix_pins": { + "direct": [ [ "D5", "B6", "D4", "D2", "E6", "D7" ] ] + }, + "rgblight": { + "led_count": 3, + "pin": "B5", + "max_brightness": 40, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true + } + } + +} diff --git a/keyboards/ploopyco/trackball_thumb/rev1_001/readme.md b/keyboards/ploopyco/trackball_thumb/rev1_001/readme.md new file mode 100644 index 00000000000..5a5f0563e76 --- /dev/null +++ b/keyboards/ploopyco/trackball_thumb/rev1_001/readme.md @@ -0,0 +1,3 @@ +This is the R1.001+ version of the Thumb. Future versions may have other features. + +See the [main readme](../readme.md) for more details. diff --git a/keyboards/ploopyco/trackball_thumb/rev1_001/rev1_001.h b/keyboards/ploopyco/trackball_thumb/rev1_001/rev1_001.h new file mode 100644 index 00000000000..f43818665cf --- /dev/null +++ b/keyboards/ploopyco/trackball_thumb/rev1_001/rev1_001.h @@ -0,0 +1,21 @@ +/* Copyright Colin Lam (Ploopy Corporation) + * Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) + * Copyright 2019 Sunjun Kim + * + * 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 "trackball_thumb.h" diff --git a/keyboards/ploopyco/trackball_thumb/rev1_001/rules.mk b/keyboards/ploopyco/trackball_thumb/rev1_001/rules.mk new file mode 100644 index 00000000000..e69de29bb2d diff --git a/keyboards/ploopyco/trackball_thumb/rules.mk b/keyboards/ploopyco/trackball_thumb/rules.mk new file mode 100644 index 00000000000..4a16c0abfbe --- /dev/null +++ b/keyboards/ploopyco/trackball_thumb/rules.mk @@ -0,0 +1,9 @@ +# Processor frequency +F_CPU = 8000000 + +POINTING_DEVICE_DRIVER = pmw3360 + +QUANTUM_LIB_SRC += analog.c +SRC += opt_encoder.c + +DEFAULT_FOLDER = ploopyco/trackball_thumb/rev1_001 diff --git a/keyboards/ploopyco/trackball_thumb/trackball_thumb.c b/keyboards/ploopyco/trackball_thumb/trackball_thumb.c new file mode 100644 index 00000000000..f76d243f18c --- /dev/null +++ b/keyboards/ploopyco/trackball_thumb/trackball_thumb.c @@ -0,0 +1,229 @@ +/* Copyright 2021 Colin Lam (Ploopy Corporation) + * Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) + * Copyright 2019 Sunjun Kim + * + * 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 "trackball_thumb.h" + +#ifndef OPT_DEBOUNCE +# define OPT_DEBOUNCE 5 // (ms) Time between scroll events +#endif +#ifndef SCROLL_BUTT_DEBOUNCE +# define SCROLL_BUTT_DEBOUNCE 100 // (ms) Time between scroll events +#endif +#ifndef PLOOPY_DPI_OPTIONS +# define PLOOPY_DPI_OPTIONS \ + { 600, 900, 1200, 1600 } +# ifndef PLOOPY_DPI_DEFAULT +# define PLOOPY_DPI_DEFAULT 1 +# endif +#endif +#ifndef PLOOPY_DPI_DEFAULT +# define PLOOPY_DPI_DEFAULT 0 +#endif +#ifndef PLOOPY_DRAGSCROLL_DPI +# define PLOOPY_DRAGSCROLL_DPI 100 // Fixed-DPI Drag Scroll +#endif +#ifndef PLOOPY_DRAGSCROLL_MULTIPLIER +# define PLOOPY_DRAGSCROLL_MULTIPLIER 0.75 // Variable-DPI Drag Scroll +#endif + +keyboard_config_t keyboard_config; +uint16_t dpi_array[] = PLOOPY_DPI_OPTIONS; +#define DPI_OPTION_SIZE (sizeof(dpi_array) / sizeof(uint16_t)) + +// TODO: Implement libinput profiles +// https://wayland.freedesktop.org/libinput/doc/latest/pointer-acceleration.html +// Compile time accel selection +// Valid options are ACC_NONE, ACC_LINEAR, ACC_CUSTOM, ACC_QUADRATIC + +// Trackball State +bool is_scroll_clicked = false; +uint16_t last_scroll = 0; // Previous confirmed wheel event +uint16_t last_mid_click = 0; // Stops scrollwheel from being read if it was pressed; +bool debug_encoder = false; +bool is_drag_scroll = false; + +// require, since core encoder.c (where is is normally defined isn't present +__attribute__((weak)) bool encoder_update_user(uint8_t index, bool clockwise) { return true; } + +bool encoder_update_kb(uint8_t index, bool clockwise) { + if (!encoder_update_user(index, clockwise)) { + return false; + } +#ifdef MOUSEKEY_ENABLE + tap_code(clockwise ? KC_WH_U : KC_WH_D); +#else + mouse_report_t mouse_report = pointing_device_get_report(); + mouse_report.v = clockwise ? 1 : -1; + pointing_device_set_report(mouse_report); + pointing_device_send(); +#endif + return true; +} + +void encoder_init(void) { opt_encoder_init(); } + +bool encoder_read(void) { + // Lovingly ripped from the Ploopy Source + + // If the mouse wheel was just released, do not scroll. + if (timer_elapsed(last_mid_click) < SCROLL_BUTT_DEBOUNCE) { + return false; + } + + // Limit the number of scrolls per unit time. + if (timer_elapsed(last_scroll) < OPT_DEBOUNCE) { + return false; + } + + // Don't scroll if the middle button is depressed. + if (is_scroll_clicked) { +#ifndef IGNORE_SCROLL_CLICK + return false; +#endif + } + + last_scroll = timer_read(); + uint16_t p1 = adc_read(OPT_ENC1_MUX); + uint16_t p2 = adc_read(OPT_ENC2_MUX); + if (debug_encoder) dprintf("OPT1: %d, OPT2: %d\n", p1, p2); + + int dir = opt_encoder_handler(p1, p2); + + if (dir == 0) return false; + ; + encoder_update_kb(0, dir == 1); + return true; +} + +report_mouse_t pointing_device_task_kb(report_mouse_t mouse_report) { + if (is_drag_scroll) { + mouse_report.h = mouse_report.x; +#ifdef PLOOPY_DRAGSCROLL_INVERT + // Invert vertical scroll direction + mouse_report.v = -mouse_report.y; +#else + mouse_report.v = mouse_report.y; +#endif + mouse_report.x = 0; + mouse_report.y = 0; + } + + return pointing_device_task_user(mouse_report); +} + +bool process_record_kb(uint16_t keycode, keyrecord_t* record) { + // Update Timer to prevent accidental scrolls + if ((record->event.key.col == 1) && (record->event.key.row == 0)) { + last_mid_click = timer_read(); + is_scroll_clicked = record->event.pressed; + } + + if (!process_record_user(keycode, record)) { + return false; + } + + if (keycode == DPI_CONFIG && record->event.pressed) { + keyboard_config.dpi_config = (keyboard_config.dpi_config + 1) % DPI_OPTION_SIZE; + eeconfig_update_kb(keyboard_config.raw); + pointing_device_set_cpi(dpi_array[keyboard_config.dpi_config]); + } + + if (keycode == DRAG_SCROLL) { +#ifndef PLOOPY_DRAGSCROLL_MOMENTARY + if (record->event.pressed) +#endif + { + is_drag_scroll ^= 1; + } +#ifdef PLOOPY_DRAGSCROLL_FIXED + pointing_device_set_cpi(is_drag_scroll ? PLOOPY_DRAGSCROLL_DPI : dpi_array[keyboard_config.dpi_config]); +#else + pointing_device_set_cpi(is_drag_scroll ? (dpi_array[keyboard_config.dpi_config] * PLOOPY_DRAGSCROLL_MULTIPLIER) : dpi_array[keyboard_config.dpi_config]); +#endif + } + +/* If Mousekeys is disabled, then use handle the mouse button + * keycodes. This makes things simpler, and allows usage of + * the keycodes in a consistent manner. But only do this if + * Mousekeys is not enable, so it's not handled twice. + */ +#ifndef MOUSEKEY_ENABLE + if (IS_MOUSEKEY_BUTTON(keycode)) { + report_mouse_t currentReport = pointing_device_get_report(); + if (record->event.pressed) { + currentReport.buttons |= 1 << (keycode - KC_MS_BTN1); + } else { + currentReport.buttons &= ~(1 << (keycode - KC_MS_BTN1)); + } + pointing_device_set_report(currentReport); + pointing_device_send(); + } +#endif + + return true; +} + +// Hardware Setup +void keyboard_pre_init_kb(void) { + // debug_enable = true; + // debug_matrix = true; + // debug_mouse = true; + // debug_encoder = true; + + setPinInput(OPT_ENC1); + setPinInput(OPT_ENC2); + + /* Ground all output pins connected to ground. This provides additional + * pathways to ground. If you're messing with this, know this: driving ANY + * of these pins high will cause a short. On the MCU. Ka-blooey. + */ +#ifdef UNUSED_PINS + const pin_t unused_pins[] = UNUSED_PINS; + + for (uint8_t i = 0; i < (sizeof(unused_pins) / sizeof(pin_t)); i++) { + setPinOutput(unused_pins[i]); + writePinLow(unused_pins[i]); + } +#endif + + // This is the debug LED. +#if defined(DEBUG_LED_PIN) + setPinOutput(DEBUG_LED_PIN); + writePin(DEBUG_LED_PIN, debug_enable); +#endif + + keyboard_pre_init_user(); +} + +void pointing_device_init_kb(void) { pointing_device_set_cpi(dpi_array[keyboard_config.dpi_config]); } + +void eeconfig_init_kb(void) { + keyboard_config.dpi_config = PLOOPY_DPI_DEFAULT; + eeconfig_update_kb(keyboard_config.raw); + eeconfig_init_user(); +} + +void matrix_init_kb(void) { + // is safe to just read DPI setting since matrix init + // comes before pointing device init. + keyboard_config.raw = eeconfig_read_kb(); + if (keyboard_config.dpi_config > DPI_OPTION_SIZE) { + eeconfig_init_kb(); + } + matrix_init_user(); +} diff --git a/keyboards/ploopyco/trackball_thumb/trackball_thumb.h b/keyboards/ploopyco/trackball_thumb/trackball_thumb.h new file mode 100644 index 00000000000..168e8940640 --- /dev/null +++ b/keyboards/ploopyco/trackball_thumb/trackball_thumb.h @@ -0,0 +1,60 @@ +/* Copyright 2021 Colin Lam (Ploopy Corporation) + * Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) + * Copyright 2019 Sunjun Kim + * + * 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" +#include "analog.h" +#include "opt_encoder.h" +#if defined(KEYBOARD_ploopyco_trackball_thumb_rev1_001) +# include "rev1_001.h" +#endif + +// Sensor defs +#define OPT_ENC1 F4 +#define OPT_ENC2 F0 +#define OPT_ENC1_MUX 4 +#define OPT_ENC2_MUX 0 + +bool encoder_update_kb(uint8_t index, bool clockwise); +bool encoder_update_user(uint8_t index, bool clockwise); + +typedef union { + uint32_t raw; + struct { + uint8_t dpi_config; + }; +} keyboard_config_t; +_Static_assert(sizeof(keyboard_config_t) == sizeof(uint32_t), "keyboard_config_t size mismatch compared to EEPROM area"); + +extern keyboard_config_t keyboard_config; +extern uint16_t dpi_array[]; + +enum ploopy_keycodes { +#ifdef VIA_ENABLE + DPI_CONFIG = USER00, +#else + DPI_CONFIG = SAFE_RANGE, +#endif + DRAG_SCROLL, +#ifdef VIA_ENABLE + PLOOPY_SAFE_RANGE = SAFE_RANGE, +#else + PLOOPY_SAFE_RANGE, +#endif +}; diff --git a/keyboards/plywrks/ahgase/ahgase.h b/keyboards/plywrks/ahgase/ahgase.h index 78e53dd6f25..1b31bad48a2 100644 --- a/keyboards/plywrks/ahgase/ahgase.h +++ b/keyboards/plywrks/ahgase/ahgase.h @@ -25,7 +25,7 @@ // Full right shift // Full left shift // 6.25u bottom row -#define LAYOUT_ansi( \ +#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, \ @@ -46,7 +46,7 @@ // Full right shift // Split left shift // 6.25u bottom row -#define LAYOUT_iso( \ +#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, \ diff --git a/keyboards/plywrks/ahgase/info.json b/keyboards/plywrks/ahgase/info.json index 297d0b98346..37204070a39 100644 --- a/keyboards/plywrks/ahgase/info.json +++ b/keyboards/plywrks/ahgase/info.json @@ -8,8 +8,16 @@ "pid": "0x7902", "device_version": "0.0.1" }, + "layout_aliases": { + "LAYOUT_ansi": "LAYOUT_tkl_f13_ansi", + "LAYOUT_iso": "LAYOUT_tkl_f13_iso" + }, + "community_layouts": [ + "tkl_f13_ansi", + "tkl_f13_iso" + ], "layouts": { - "LAYOUT_ansi": { + "LAYOUT_tkl_f13_ansi": { "layout": [ {"x":0, "y":0}, {"x":1.25, "y":0}, @@ -106,7 +114,7 @@ {"x":17.25, "y":5.25} ] }, - "LAYOUT_iso": { + "LAYOUT_tkl_f13_iso": { "layout": [ {"x":0, "y":0}, {"x":1.25, "y":0}, diff --git a/keyboards/plywrks/ahgase/keymaps/default/keymap.c b/keyboards/plywrks/ahgase/keymaps/default/keymap.c index e7b5e07262f..7cc1e671e72 100644 --- a/keyboards/plywrks/ahgase/keymaps/default/keymap.c +++ b/keyboards/plywrks/ahgase/keymaps/default/keymap.c @@ -16,7 +16,7 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_ansi( + [0] = LAYOUT_tkl_f13_ansi( 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, diff --git a/keyboards/plywrks/ahgase/keymaps/iso/keymap.c b/keyboards/plywrks/ahgase/keymaps/iso/keymap.c index c10e93a30de..dde342a7e27 100644 --- a/keyboards/plywrks/ahgase/keymaps/iso/keymap.c +++ b/keyboards/plywrks/ahgase/keymaps/iso/keymap.c @@ -16,7 +16,7 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_iso( + [0] = LAYOUT_tkl_f13_iso( 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, diff --git a/keyboards/preonic/keymaps/AlexDaigre/keymap.c b/keyboards/preonic/keymaps/AlexDaigre/keymap.c index c4e0f132d85..6a40a582267 100644 --- a/keyboards/preonic/keymaps/AlexDaigre/keymap.c +++ b/keyboards/preonic/keymaps/AlexDaigre/keymap.c @@ -159,7 +159,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_ADJUST] = LAYOUT_preonic_grid( \ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, \ - _______, QK_BOOT, DEBUG, _______, _______, _______, _______, TERM_ON, TERM_OFF,_______, _______, _______, \ + _______, QK_BOOT, DEBUG, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ _______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, \ _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______, \ BACKLIT, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \ diff --git a/keyboards/preonic/keymaps/blake-newman/keymap.c b/keyboards/preonic/keymaps/blake-newman/keymap.c index 53a4cf78f0e..311a96f15e4 100644 --- a/keyboards/preonic/keymaps/blake-newman/keymap.c +++ b/keyboards/preonic/keymaps/blake-newman/keymap.c @@ -180,7 +180,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_ADJUST] = LAYOUT_preonic_1x2uC( \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ - _______, QK_BOOT, DEBUG, _______, _______, _______, _______, TERM_ON, TERM_OFF,LALT(KC_PSCR), LCTL(KC_PSCR), KC_PSCR, \ + _______, QK_BOOT, DEBUG, _______, _______, _______, _______, _______, _______, LALT(KC_PSCR), LCTL(KC_PSCR), KC_PSCR, \ KC_CAPS, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, NUMPAD, KC_INS, \ _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \ diff --git a/keyboards/preonic/keymaps/boy314/keymap.c b/keyboards/preonic/keymaps/boy314/keymap.c index 67d1fe4cf87..b5089be5dd1 100644 --- a/keyboards/preonic/keymaps/boy314/keymap.c +++ b/keyboards/preonic/keymaps/boy314/keymap.c @@ -161,7 +161,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_ADJUST] = LAYOUT_preonic_grid( \ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, \ - _______, QK_BOOT, DEBUG, _______, _______, _______, _______, TERM_ON, TERM_OFF,_______, _______, KC_DEL, \ + _______, QK_BOOT, DEBUG, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, \ _______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, _______, _______, _______, _______, \ _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, DVORAK, _______, _______, _______, _______, \ _______, ARROWS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ diff --git a/keyboards/preonic/keymaps/cranium/keymap.c b/keyboards/preonic/keymaps/cranium/keymap.c index 8267a0a4be0..c423d8dac40 100644 --- a/keyboards/preonic/keymaps/cranium/keymap.c +++ b/keyboards/preonic/keymaps/cranium/keymap.c @@ -109,7 +109,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_ADJUST] = LAYOUT_preonic_grid( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_SLEP, - _______, QK_BOOT, DEBUG, _______, _______, _______, _______, TERM_ON, TERM_OFF,_______, _______, _______, + _______, QK_BOOT, DEBUG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, KC_VOLU, KC_VOLD, KC_MPRV, KC_MNXT, _______, _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_MPLY, _______, _______, _______, _______, KC_PSCR diff --git a/keyboards/preonic/keymaps/default/keymap.c b/keyboards/preonic/keymaps/default/keymap.c index c1faf464d67..0d886ba451b 100644 --- a/keyboards/preonic/keymaps/default/keymap.c +++ b/keyboards/preonic/keymaps/default/keymap.c @@ -146,7 +146,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,-----------------------------------------------------------------------------------. * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | Reset| Debug| | | | |TermOf|TermOn| | | Del | + * | | Reset| Debug| | | | | | | | | Del | * |------+------+------+------+------+-------------+------+------+------+------+------| * | | |Aud cy|Aud on|AudOff|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | | * |------+------+------+------+------+------|------+------+------+------+------+------| diff --git a/keyboards/preonic/keymaps/drasbeck/keymap.c b/keyboards/preonic/keymaps/drasbeck/keymap.c index a3bfbb4760c..da2ab145ca6 100644 --- a/keyboards/preonic/keymaps/drasbeck/keymap.c +++ b/keyboards/preonic/keymaps/drasbeck/keymap.c @@ -87,7 +87,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_ADJUST] = LAYOUT_preonic_grid( KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, - _______, QK_BOOT, DEBUG, _______, _______, _______, _______, TERM_ON, TERM_OFF,_______, _______, KC_DEL, + _______, QK_BOOT, DEBUG, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, _______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ diff --git a/keyboards/preonic/keymaps/dudeofawesome/keymap.c b/keyboards/preonic/keymaps/dudeofawesome/keymap.c index 932b76df3e6..b5c308d2fda 100644 --- a/keyboards/preonic/keymaps/dudeofawesome/keymap.c +++ b/keyboards/preonic/keymaps/dudeofawesome/keymap.c @@ -180,7 +180,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_ADJUST] = LAYOUT_preonic_1x2uC( \ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, \ - _______, QK_BOOT, DEBUG, _______, _______, _______, _______, TERM_ON, TERM_OFF,_______, _______, KC_DEL, \ + _______, QK_BOOT, DEBUG, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, \ KC_CAPS, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, WORKMAN, DVORAK, COLEMAK, _______, \ _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ diff --git a/keyboards/preonic/keymaps/ekis_isa/keymap.c b/keyboards/preonic/keymaps/ekis_isa/keymap.c index ff2bfdb0f12..04051a865e0 100644 --- a/keyboards/preonic/keymaps/ekis_isa/keymap.c +++ b/keyboards/preonic/keymaps/ekis_isa/keymap.c @@ -156,7 +156,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_ADJUST] = LAYOUT_preonic_1x2uC( \ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, \ - _______, QK_BOOT, DEBUG, _______, _______, _______, _______, TERM_ON, TERM_OFF,_______, _______, KC_DEL, \ + _______, QK_BOOT, DEBUG, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, \ _______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, \ _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ diff --git a/keyboards/preonic/keymaps/elisiano/keymap.c b/keyboards/preonic/keymaps/elisiano/keymap.c index c7ec076ca7c..3f0a528247b 100644 --- a/keyboards/preonic/keymaps/elisiano/keymap.c +++ b/keyboards/preonic/keymaps/elisiano/keymap.c @@ -158,11 +158,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------' */ [_ADJUST] = LAYOUT_preonic_grid( - KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, - _______, QK_BOOT, DEBUG, _______, _______, _______, _______, TERM_ON, TERM_OFF, _______, _______, KC_DEL, - _______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, - _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, TG(_MOUSE), _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + _______, QK_BOOT, DEBUG, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, + _______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, + _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, TG(_MOUSE), _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), diff --git a/keyboards/preonic/keymaps/fsck/keymap.c b/keyboards/preonic/keymaps/fsck/keymap.c index cdb5bf1acc1..cb73083249b 100644 --- a/keyboards/preonic/keymaps/fsck/keymap.c +++ b/keyboards/preonic/keymaps/fsck/keymap.c @@ -111,7 +111,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_ADJUST] = LAYOUT_preonic_grid( \ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, \ - _______, QK_BOOT, DEBUG, _______, _______, _______, _______, TERM_ON, TERM_OFF,_______, _______, KC_DEL, \ + _______, QK_BOOT, DEBUG, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, \ _______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, _______, _______, _______, _______, \ _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ diff --git a/keyboards/preonic/keymaps/keelhauler/keymap.c b/keyboards/preonic/keymaps/keelhauler/keymap.c index d6adc08adb5..8a1c01617c4 100644 --- a/keyboards/preonic/keymaps/keelhauler/keymap.c +++ b/keyboards/preonic/keymaps/keelhauler/keymap.c @@ -161,7 +161,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_ADJUST] = LAYOUT_preonic_grid( \ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, \ - _______, QK_BOOT, DEBUG, _______, _______, _______, _______, TERM_ON, TERM_OFF,_______, _______, KC_DEL, \ + _______, QK_BOOT, DEBUG, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, \ _______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, \ _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ diff --git a/keyboards/preonic/keymaps/laurentlaurent/keymap.c b/keyboards/preonic/keymaps/laurentlaurent/keymap.c index d9df9f16ef2..9c26e715fdc 100644 --- a/keyboards/preonic/keymaps/laurentlaurent/keymap.c +++ b/keyboards/preonic/keymaps/laurentlaurent/keymap.c @@ -277,7 +277,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_ADJUST] = LAYOUT_preonic_grid( \ 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_TAB, QK_BOOT, DEBUG, _______, _______, _______, _______, TERM_ON, TERM_OFF,_______, _______, XXXXXXX, + KC_TAB, QK_BOOT, DEBUG, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, /*_______, _______, MU_MOD, AU_ON, AU_OFF, QWERTY, QWWIN, QWERTY, COLEMAK, DVORAK, _______, _______, \ Remove this if adding Colemak and Dvorak*/ _______, _______, MU_MOD, AU_ON, AU_OFF, QWERTY, QWWIN, QWERTY, QWWIN, _______, _______, KC_F12, _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______, diff --git a/keyboards/preonic/keymaps/mechmaster48/keymap.c b/keyboards/preonic/keymaps/mechmaster48/keymap.c index 9fcb7374901..3d89d25d35b 100644 --- a/keyboards/preonic/keymaps/mechmaster48/keymap.c +++ b/keyboards/preonic/keymaps/mechmaster48/keymap.c @@ -100,7 +100,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,-----------------------------------------------------------------------------------. * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | Reset| Debug| | | | |TermOf|TermOn| | | Del | + * | | Reset| Debug| | | | | | | | | Del | * |------+------+------+------+------+-------------+------+------+------+------+------| * | | |Aud cy|Aud on|AudOff|AGnorm|AGswap|Qwerty| | | | | * |------+------+------+------+------+------|------+------+------+------+------+------| @@ -111,7 +111,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_ADJUST] = LAYOUT_preonic_grid( KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, - _______, QK_BOOT, DEBUG, _______, _______, _______, _______, TERM_ON, TERM_OFF,_______, _______, KC_DEL, + _______, QK_BOOT, DEBUG, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, _______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, _______, _______, _______, _______, _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ diff --git a/keyboards/preonic/keymaps/mguterl/keymap.c b/keyboards/preonic/keymaps/mguterl/keymap.c index 184c111aef4..dcbb16d612c 100644 --- a/keyboards/preonic/keymaps/mguterl/keymap.c +++ b/keyboards/preonic/keymaps/mguterl/keymap.c @@ -164,7 +164,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_ADJUST] = LAYOUT_preonic_grid( \ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, - TG_GAME, QK_BOOT, DEBUG, _______, _______, _______, _______, TERM_ON, TERM_OFF,_______, _______, KC_DEL, + TG_GAME, QK_BOOT, DEBUG, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, _______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ diff --git a/keyboards/preonic/keymaps/mikethetiger/keymap.c b/keyboards/preonic/keymaps/mikethetiger/keymap.c index 1fb41129cdc..a927793a4f3 100644 --- a/keyboards/preonic/keymaps/mikethetiger/keymap.c +++ b/keyboards/preonic/keymaps/mikethetiger/keymap.c @@ -157,7 +157,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_ADJUST] = LAYOUT_preonic_grid( KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, \ - _______, QK_BOOT, DEBUG, _______, _______, _______, _______, TERM_ON, TERM_OFF,_______, _______, KC_DEL, \ + _______, QK_BOOT, DEBUG, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, \ _______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, \ _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ diff --git a/keyboards/preonic/keymaps/muzfuz/keymap.c b/keyboards/preonic/keymaps/muzfuz/keymap.c index 6baf32a51e0..1b32c2143e9 100644 --- a/keyboards/preonic/keymaps/muzfuz/keymap.c +++ b/keyboards/preonic/keymaps/muzfuz/keymap.c @@ -117,7 +117,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, 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, _______, _______, QWERTY, _______, _______, _______, _______, - _______, 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/preonic/keymaps/mverteuil/keymap.c b/keyboards/preonic/keymaps/mverteuil/keymap.c index 03388d785b6..0a5637b9806 100644 --- a/keyboards/preonic/keymaps/mverteuil/keymap.c +++ b/keyboards/preonic/keymaps/mverteuil/keymap.c @@ -218,7 +218,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,-----------------------------------------------------------------------------------. * |AudTog|XXXXXX|XXXXXX|XXXXXX|XXXXXX|XXXXXX|XXXXXX|XXXXXX|XXXXXX|XXXXXX| Debug| Reset| * |------+------+------+------+------+------+------+------+------+------+------+------| - * |ClkTog|ClkFq-|ClkFq+|XXXXXX|XXXXXX|XXXXXX|XXXXXX|XXXXXX|XXXXXX|XXXXXX|TermOn|TermOf| + * |ClkTog|ClkFq-|ClkFq+|XXXXXX|XXXXXX|XXXXXX|XXXXXX|XXXXXX|XXXXXX|XXXXXX|XXXXXX|XXXXXX| * |------+------+------+------+------+-------------+------+------+------+------+------| * |MusTog|Voice- Voice+|XXXXXX|XXXXXX|XXXXXX|XXXXXX|XXXXXX|XXXXXX|XXXXXX|AGnorm|AGswap| * |------+------+------+------+------+------|------+------+------+------+------+------| @@ -229,7 +229,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_ADJUST] = LAYOUT_preonic_1x2uC ( AU_TOG, XXXXXXX, XXXXXXX, XXXXXXX, RGB_HUI, RGB_HUD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, DEBUG, QK_BOOT, - CK_TOGG, CK_DOWN, CK_UP, XXXXXXX, RGB_SAI, RGB_SAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, TERM_ON, TERM_OFF, + CK_TOGG, CK_DOWN, CK_UP, XXXXXXX, RGB_SAI, RGB_SAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, MU_TOG, MUV_DE, MUV_IN, XXXXXXX, RGB_VAI, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, AG_NORM, AG_SWAP, MI_TOG, RGB_M_P, RGB_M_B, RGB_M_R,RGB_M_SW,RGB_M_SN, RGB_M_K, RGB_M_X, RGB_M_G, RGB_M_T, RGB_SPI, KC_LSHIFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, RGB_TOG, _______, XXXXXXX,RGB_RMOD, RGB_SPD, RGB_MOD diff --git a/keyboards/preonic/keymaps/mverteuil_2x2u/keymap.c b/keyboards/preonic/keymaps/mverteuil_2x2u/keymap.c index a54b547d8c0..07c5aa7b8fe 100644 --- a/keyboards/preonic/keymaps/mverteuil_2x2u/keymap.c +++ b/keyboards/preonic/keymaps/mverteuil_2x2u/keymap.c @@ -194,7 +194,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,-------+-------+-------+-------+-------+-------|-------+-------+-------+-------+-------+-------. * |AudTog |███████|███████|███████|███████|███████|███████|███████|███████|███████| Debug | Reset | * |-------+-------+-------+-------+-------+-------|-------+-------+-------+-------+-------+-------| - * |Clicky |ClkFrq-|ClkFrq+|███████|███████|███████|███████|███████|███████|███████|TermOn |TermOff| + * |Clicky |ClkFrq-|ClkFrq+|███████|███████|███████|███████|███████|███████|███████|███████|███████| * |-------+-------+-------+-------+-------+-------|-------+-------+-------+-------+-------+-------| * | Music |Voice- |Voice+ |███████|███████|███████|███████|███████|███████|███████|AGnorm |AGswap | * |-------+-------+-------+-------+-------+-------|-------+-------+-------+-------+-------+-------| @@ -205,7 +205,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_ADJUST] = LAYOUT_preonic_2x2u ( AU_TOG, XXXXXXX, XXXXXXX, XXXXXXX, RGB_HUI, RGB_HUD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, DEBUG, QK_BOOT, - CK_TOGG, CK_DOWN, CK_UP, XXXXXXX, RGB_SAI, RGB_SAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, TERM_ON, TERM_OFF, + CK_TOGG, CK_DOWN, CK_UP, XXXXXXX, RGB_SAI, RGB_SAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, MU_TOG, MUV_DE, MUV_IN, XXXXXXX, RGB_VAI, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, AG_NORM, AG_SWAP, MI_TOG, RGB_M_P, RGB_M_B, RGB_M_R,RGB_M_SW,RGB_M_SN, RGB_M_K, RGB_M_X, RGB_M_G, RGB_M_T, RGB_SPI, KC_LSHIFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX,RGB_RMOD, RGB_SPD, RGB_MOD diff --git a/keyboards/preonic/keymaps/pezhore/keymap.c b/keyboards/preonic/keymaps/pezhore/keymap.c index 46addbca48a..4754ad760ca 100644 --- a/keyboards/preonic/keymaps/pezhore/keymap.c +++ b/keyboards/preonic/keymaps/pezhore/keymap.c @@ -161,7 +161,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_ADJUST] = LAYOUT_preonic_grid( KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, - _______, QK_BOOT, DEBUG, _______, _______, _______, _______, TERM_ON, TERM_OFF, _______, _______, KC_DEL, + _______, QK_BOOT, DEBUG, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, _______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, _______, _______, _______, _______, _______, _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ diff --git a/keyboards/preonic/keymaps/pitty/keymap.c b/keyboards/preonic/keymaps/pitty/keymap.c index 249ff16a76e..03b1fdd806c 100644 --- a/keyboards/preonic/keymaps/pitty/keymap.c +++ b/keyboards/preonic/keymaps/pitty/keymap.c @@ -137,8 +137,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_ADJUST] = LAYOUT_preonic_grid( \ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, \ - _______, QK_BOOT, DEBUG, _______, _______, _______, _______, TERM_ON, TERM_OFF,_______, _______, KC_DEL, \ - _______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, _______, _______, _______, _______, _______, \ + _______, QK_BOOT, DEBUG, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, \ + _______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, _______, _______, _______, _______, _______, \ _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, TO(_QWERTY) \ ) diff --git a/keyboards/preonic/keymaps/senseored/keymap.c b/keyboards/preonic/keymaps/senseored/keymap.c index 531b08285fd..73c83911850 100644 --- a/keyboards/preonic/keymaps/senseored/keymap.c +++ b/keyboards/preonic/keymaps/senseored/keymap.c @@ -164,7 +164,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_ADJUST] = LAYOUT_preonic_grid( \ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, \ - TO(_GAMEMODE), QK_BOOT, DEBUG, _______, _______, _______, _______, TERM_ON, TERM_OFF,_______, _______, KC_DEL, \ + TO(_GAMEMODE), QK_BOOT, DEBUG, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, \ _______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, _______, _______, _______, _______, _______, \ _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, TO(_QWERTY) \ diff --git a/keyboards/prototypist/j01/keymaps/zyber/keymap.c b/keyboards/prototypist/j01/keymaps/zyber/keymap.c new file mode 100644 index 00000000000..53b98ad023c --- /dev/null +++ b/keyboards/prototypist/j01/keymaps/zyber/keymap.c @@ -0,0 +1,40 @@ +/* Copyright 2020 Shaun Mitchell (Flexerm) + * + * 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 "zyber.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + // Default layer + [0] = LAYOUT_all( + C_BLK, KC_F2, KC_ESC, KC_1, KC_2, KC_3, TD(SSHT),KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_DEL, + KC_F3, KC_F4, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, TD(LBRC),KC_RBRC, KC_BSLS, KC_PGUP, + KC_F5, KC_F6, L1_EXPL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, TD(SCLN), TD(QUOT),KC_NUHS, KC_ENT, KC_PGDN, + KC_F7, KC_F8, 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_F9, KC_F10, KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + + // Fn1 layer + [1] = LAYOUT_all( + KC_TRNS, KC_TRNS, 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, 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, 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_HOME, + 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/ramonimbao/tkl_ff/info.json b/keyboards/ramonimbao/tkl_ff/info.json index a3a22e34d8d..1ff3133deb4 100644 --- a/keyboards/ramonimbao/tkl_ff/info.json +++ b/keyboards/ramonimbao/tkl_ff/info.json @@ -7,8 +7,16 @@ "vid": "0xB16B", "device_version": "0.0.1" }, + "layout_aliases": { + "LAYOUT_ansi": "LAYOUT_tkl_f13_ansi", + "LAYOUT_iso": "LAYOUT_tkl_f13_iso" + }, + "community_layouts": [ + "tkl_f13_ansi", + "tkl_f13_iso" + ], "layouts": { - "LAYOUT_ansi": { + "LAYOUT_tkl_f13_ansi": { "layout": [ {"x":0, "y":0}, {"x":1.25, "y":0}, @@ -105,7 +113,7 @@ {"x":17.25, "y":5.25} ] }, - "LAYOUT_iso": { + "LAYOUT_tkl_f13_iso": { "layout": [ {"x":0, "y":0}, {"x":1.25, "y":0}, diff --git a/keyboards/ramonimbao/tkl_ff/keymaps/default/keymap.c b/keyboards/ramonimbao/tkl_ff/keymaps/default/keymap.c index e44b56e55f6..1f7c9c6388c 100644 --- a/keyboards/ramonimbao/tkl_ff/keymaps/default/keymap.c +++ b/keyboards/ramonimbao/tkl_ff/keymaps/default/keymap.c @@ -16,7 +16,7 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_ansi( + [0] = LAYOUT_tkl_f13_ansi( 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, diff --git a/keyboards/ramonimbao/tkl_ff/keymaps/iso/keymap.c b/keyboards/ramonimbao/tkl_ff/keymaps/iso/keymap.c index 17997828df5..dcd383794d7 100644 --- a/keyboards/ramonimbao/tkl_ff/keymaps/iso/keymap.c +++ b/keyboards/ramonimbao/tkl_ff/keymaps/iso/keymap.c @@ -16,7 +16,7 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_iso( + [0] = LAYOUT_tkl_f13_iso( 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, diff --git a/keyboards/ramonimbao/tkl_ff/tkl_ff.h b/keyboards/ramonimbao/tkl_ff/tkl_ff.h index 2fc2a989487..cdc4ab60cb8 100644 --- a/keyboards/ramonimbao/tkl_ff/tkl_ff.h +++ b/keyboards/ramonimbao/tkl_ff/tkl_ff.h @@ -34,7 +34,7 @@ // Full right shift // Full left shift // 6.25u bottom row -#define LAYOUT_ansi( \ +#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, \ @@ -55,7 +55,7 @@ // Full right shift // Split left shift // 6.25u bottom row -#define LAYOUT_iso( \ +#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, \ diff --git a/keyboards/rart/rart60/config.h b/keyboards/rart/rart60/config.h new file mode 100644 index 00000000000..a4d25fc51fa --- /dev/null +++ b/keyboards/rart/rart60/config.h @@ -0,0 +1,41 @@ +/* +Copyright 2022 Alabahuy + +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 + +/* 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 + +#define LED_CAPS_LOCK_PIN GP19 +#define LED_PIN_ON_STATE 0 + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT + +#define BOOTMAGIC_LITE_ROW 0 +#define BOOTMAGIC_LITE_COLUMN 1 diff --git a/keyboards/rart/rart60/info.json b/keyboards/rart/rart60/info.json new file mode 100644 index 00000000000..7ce36e50423 --- /dev/null +++ b/keyboards/rart/rart60/info.json @@ -0,0 +1,109 @@ +{ + "manufacturer": "RART", + "keyboard_name": "rart60", + "maintainer": "Alabahuy", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": true, + "console": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["GP24", "GP14", "GP13", "GP12", "GP11", "GP10", "GP9", "GP8", "GP6", "GP5", "GP4", "GP3", "GP1", "GP0", "GP18", "GP22" ], + "rows": ["GP23", "GP25", "GP15", "GP16", "GP17" ] + }, + "processor": "RP2040", + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0x0060", + "vid": "0x414C" + }, + "layouts": { + "LAYOUT_all": { + "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 }, + { "matrix": [0, 10], "x": 10, "y": 0 }, + { "matrix": [0, 11], "x": 11, "y": 0 }, + { "matrix": [0, 12], "x": 12, "y": 0 }, + { "matrix": [0, 13], "x": 13, "y": 0 }, + { "matrix": [1, 13], "x": 14, "y": 0 }, + { "matrix": [0, 14], "x": 15.5, "y": 0 }, + { "matrix": [0, 15], "x": 16.5, "y": 0 }, + + { "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, + { "matrix": [1, 1], "x": 1.5, "y": 1 }, + { "matrix": [1, 2], "x": 2.5, "y": 1 }, + { "matrix": [1, 3], "x": 3.5, "y": 1 }, + { "matrix": [1, 4], "x": 4.5, "y": 1 }, + { "matrix": [1, 5], "x": 5.5, "y": 1 }, + { "matrix": [1, 6], "x": 6.5, "y": 1 }, + { "matrix": [1, 7], "x": 7.5, "y": 1 }, + { "matrix": [1, 8], "x": 8.5, "y": 1 }, + { "matrix": [1, 9], "x": 9.5, "y": 1 }, + { "matrix": [1, 10], "x": 10.5, "y": 1 }, + { "matrix": [1, 11], "x": 11.5, "y": 1 }, + { "matrix": [1, 12], "x": 12.5, "y": 1 }, + { "matrix": [2, 13], "w": 1.5, "x": 13.5, "y": 1 }, + { "matrix": [1, 14], "x": 15.5, "y": 1 }, + { "matrix": [1, 15], "x": 16.5, "y": 1 }, + + { "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, + { "matrix": [2, 1], "x": 1.75, "y": 2 }, + { "matrix": [2, 2], "x": 2.75, "y": 2 }, + { "matrix": [2, 3], "x": 3.75, "y": 2 }, + { "matrix": [2, 4], "x": 4.75, "y": 2 }, + { "matrix": [2, 5], "x": 5.75, "y": 2 }, + { "matrix": [2, 6], "x": 6.75, "y": 2 }, + { "matrix": [2, 7], "x": 7.75, "y": 2 }, + { "matrix": [2, 8], "x": 8.75, "y": 2 }, + { "matrix": [2, 9], "x": 9.75, "y": 2 }, + { "matrix": [2, 10], "x": 10.75, "y": 2 }, + { "matrix": [2, 11], "x": 11.75, "y": 2 }, + { "matrix": [2, 12], "w": 2.25, "x": 12.75, "y": 2 }, + { "matrix": [2, 14], "x": 15.5, "y": 2 }, + { "matrix": [2, 15], "x": 16.5, "y": 2 }, + + { "matrix": [3, 0], "w": 1.25, "x": 0, "y": 3 }, + { "matrix": [3, 1], "x": 1.25, "y": 3 }, + { "matrix": [3, 2], "x": 2.25, "y": 3 }, + { "matrix": [3, 3], "x": 3.25, "y": 3 }, + { "matrix": [3, 4], "x": 4.25, "y": 3 }, + { "matrix": [3, 5], "x": 5.25, "y": 3 }, + { "matrix": [3, 6], "x": 6.25, "y": 3 }, + { "matrix": [3, 7], "x": 7.25, "y": 3 }, + { "matrix": [3, 8], "x": 8.25, "y": 3 }, + { "matrix": [3, 9], "x": 9.25, "y": 3 }, + { "matrix": [3, 10], "x": 10.25, "y": 3 }, + { "matrix": [3, 11], "x": 11.25, "y": 3 }, + { "matrix": [3, 12], "w": 1.75, "x": 12.25, "y": 3 }, + { "matrix": [3, 13], "x": 14, "y": 3 }, + { "matrix": [3, 14], "x": 15.5, "y": 3 }, + { "matrix": [3, 15], "x": 16.5, "y": 3 }, + + { "matrix": [4, 0], "w": 1.5, "x": 0, "y": 4 }, + { "matrix": [4, 1], "x": 1.5, "y": 4 }, + { "matrix": [4, 2], "w": 1.5, "x": 2.5, "y": 4 }, + { "matrix": [4, 6], "w": 7, "x": 4, "y": 4 }, + { "matrix": [4, 11], "w": 1.5, "x": 11, "y": 4 }, + { "matrix": [4, 12], "x": 12.5, "y": 4 }, + { "matrix": [4, 13], "w": 1.5, "x": 13.5, "y": 4 }, + { "matrix": [4, 14], "x": 15.5, "y": 4 }, + { "matrix": [4, 15], "x": 16.5, "y": 4 } + ] + } + } +} \ No newline at end of file diff --git a/keyboards/rart/rart60/keymaps/default/keymap.c b/keyboards/rart/rart60/keymaps/default/keymap.c new file mode 100644 index 00000000000..e7964a95cd3 --- /dev/null +++ b/keyboards/rart/rart60/keymaps/default/keymap.c @@ -0,0 +1,38 @@ +/* +Copyright 2022 Alabahuy + +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_BSLS, KC_GRV, _______, _______, + 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_BSPC, _______, _______, + 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(1), _______, _______, + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_RCTL, _______, _______ + ), + + + [1] = LAYOUT_all( + KC_PWR, 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_INS, KC_DEL, _______, _______, + KC_CAPS, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, KC_UP, _______, _______, _______, _______, + _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_PENT, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, _______, _______, _______, _______, + _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/rart/rart60/keymaps/via/keymap.c b/keyboards/rart/rart60/keymaps/via/keymap.c new file mode 100644 index 00000000000..e7964a95cd3 --- /dev/null +++ b/keyboards/rart/rart60/keymaps/via/keymap.c @@ -0,0 +1,38 @@ +/* +Copyright 2022 Alabahuy + +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_BSLS, KC_GRV, _______, _______, + 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_BSPC, _______, _______, + 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(1), _______, _______, + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_RCTL, _______, _______ + ), + + + [1] = LAYOUT_all( + KC_PWR, 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_INS, KC_DEL, _______, _______, + KC_CAPS, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, KC_UP, _______, _______, _______, _______, + _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_PENT, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, _______, _______, _______, _______, + _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/rart/rart60/keymaps/via/rules.mk b/keyboards/rart/rart60/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/rart/rart60/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/rart/rart60/readme.md b/keyboards/rart/rart60/readme.md new file mode 100644 index 00000000000..b598c7bba62 --- /dev/null +++ b/keyboards/rart/rart60/readme.md @@ -0,0 +1,27 @@ +# RART60 + +![rart60](https://i.imgur.com/8RkCYQEh.jpg) + +PCB 60% support optional macro with RP2040 + +* Keyboard Maintainer: [Alabahuy](https://github.com/alabahuy) +* Hardware Supported: Rart60, RP2040 +* Hardware Availability: Limited GB in IMKG + +Make example for this keyboard (after setting up your build environment): + + make rart/rart60:default + +Flashing example for this keyboard: + + make rart/rart60: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/rart/rart60/rules.mk b/keyboards/rart/rart60/rules.mk new file mode 100644 index 00000000000..6e7633bfe01 --- /dev/null +++ b/keyboards/rart/rart60/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/rart/rart80/config.h b/keyboards/rart/rart80/config.h new file mode 100644 index 00000000000..21c88a18cff --- /dev/null +++ b/keyboards/rart/rart80/config.h @@ -0,0 +1,63 @@ +/* +Copyright 2022 Alabahuy + +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 6 +#define MATRIX_COLS 17 + +/* key matrix pins */ +#define MATRIX_ROW_PINS { B3, A1, B0, C3, D0, D1 } +#define MATRIX_COL_PINS { A2, A3, A4, A5, A6, A7, C7, C6, C5, C4, C2, C1, C0, D7, B4, B2, B1 } + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* 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 + +#define LED_CAPS_LOCK_PIN D5 +#define LED_PIN_ON_STATE 0 + +#define BOOTMAGIC_LITE_ROW 0 +#define BOOTMAGIC_LITE_COLUMN 1 + +#define RGB_DI_PIN C0 +#ifdef RGB_DI_PIN +#define RGBLIGHT_EFFECT_BREATHING +#define RGBLIGHT_EFFECT_RAINBOW_MOOD +#define RGBLIGHT_EFFECT_RAINBOW_SWIRL +#define RGBLIGHT_EFFECT_KNIGHT +#define RGBLIGHT_EFFECT_STATIC_GRADIENT +#define RGBLIGHT_EFFECT_TWINKLE +/* You can change the number of RGB strip */ +#define RGBLED_NUM 6 +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 +#define RGBLIGHT_LIMIT_VAL 240 +#define RGBLIGHT_SLEEP +#endif diff --git a/keyboards/rart/rart80/info.json b/keyboards/rart/rart80/info.json new file mode 100644 index 00000000000..9c6c52f33cf --- /dev/null +++ b/keyboards/rart/rart80/info.json @@ -0,0 +1,113 @@ +{ + "keyboard_name": "RART80 Hotswap", + "manufacturer": "Alabahuy", + "url": "", + "maintainer": "Alabahuy", + "usb": { + "vid": "0x414C", + "pid": "0x0080", + "device_version": "0.0.1" + }, + "layouts": { + "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":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":15.25, "y":4.25}, + {"x":16.25, "y":4.25}, + {"x":17.25, "y":4.25}, + + {"x":0, "y":5.25, "w":1.5}, + {"x":1.5, "y":5.25}, + {"x":2.5, "y":5.25, "w":1.5}, + {"x":4, "y":5.25, "w":7}, + {"x":11, "y":5.25, "w":1.5 }, + {"x":12.5, "y":5.25}, + {"x":13.5, "y":5.25, "w":1.5}, + {"x":15.25, "y":5.25 }, + {"x":16.25, "y":5.25 }, + {"x":17.25, "y":5.25 } + ] + } + } +} diff --git a/keyboards/rart/rart80/keymaps/default/keymap.c b/keyboards/rart/rart80/keymaps/default/keymap.c new file mode 100644 index 00000000000..d3b42c56e5a --- /dev/null +++ b/keyboards/rart/rart80/keymaps/default/keymap.c @@ -0,0 +1,55 @@ +/* Copyright 2022 Alabahuy + * 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_SCRL, 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_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), _______, KC_UP, _______, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, BL_DEC, BL_TOGG, BL_INC, BL_STEP, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [2] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [3] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) + +}; diff --git a/keyboards/rart/rart80/keymaps/via/keymap.c b/keyboards/rart/rart80/keymaps/via/keymap.c new file mode 100644 index 00000000000..8b49a8856c5 --- /dev/null +++ b/keyboards/rart/rart80/keymaps/via/keymap.c @@ -0,0 +1,55 @@ +/* Copyright 2022 Alabahuy + * 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_SCRL, 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_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), _______, KC_UP, _______, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, BL_DEC, BL_TOGG, BL_INC, BL_STEP, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [2] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [3] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) + +}; diff --git a/keyboards/rart/rart80/keymaps/via/rules.mk b/keyboards/rart/rart80/keymaps/via/rules.mk new file mode 100644 index 00000000000..36b7ba9cbc9 --- /dev/null +++ b/keyboards/rart/rart80/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/rart/rart80/rart80.c b/keyboards/rart/rart80/rart80.c new file mode 100644 index 00000000000..8eeb608a421 --- /dev/null +++ b/keyboards/rart/rart80/rart80.c @@ -0,0 +1,15 @@ +/* Copyright 2022 Alabahuy + * 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 "rart80.h" \ No newline at end of file diff --git a/keyboards/rart/rart80/rart80.h b/keyboards/rart/rart80/rart80.h new file mode 100644 index 00000000000..e50ef380cfb --- /dev/null +++ b/keyboards/rart/rart80/rart80.h @@ -0,0 +1,36 @@ +/* Copyright 2022 Alabahuy + * 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_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, K2D, K1E, K1F, K1G, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K3D, 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, K4E, K4F, K4G, \ + K50, K51, K52, K56, 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, XXX, XXX, XXX }, \ + { K40, XXX, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4E, K4F, K4G }, \ + { K50, K51, K52, XXX, XXX, XXX, K56, XXX, XXX, XXX, XXX, K5B, K5C, K5D, K5E, K5F, K5G }, \ +} diff --git a/keyboards/rart/rart80/readme.md b/keyboards/rart/rart80/readme.md new file mode 100644 index 00000000000..f57c9131ad3 --- /dev/null +++ b/keyboards/rart/rart80/readme.md @@ -0,0 +1,30 @@ +# [RART 80 Hotswap] + +![RART 80](https://i.imgur.com/QCeTuBeh.png) + +PCB layout TKL, based on IMKG (Indonesia Mechanical Keyboard Group) + +* Keyboard Maintainer: [Alabahuy](https://github.com/alabahuy) +* Hardware Supported: RART80 PCB, Atmega32a, Type C +* Hardware Availability: Private GB + +Make example for this keyboard (after setting up your build environment): + + make rart/rart80:default + +Flashing example for this keyboard: + + make rart/rart80:default:flash + +## Bootloader + +Enter the bootloader in 3 ways: + +* To Enter the bootloader you can short and hold boot pin, short reset pin, release reset and boot pin. + +* Bootmagic reset, hold down the key at (0,0) in the matrix (ESC) and plug in the keyboard. + +* Bootloader reset on the matrix, hold down key at (0,1) and plug 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/rart/rart80/rules.mk b/keyboards/rart/rart80/rules.mk new file mode 100644 index 00000000000..3f9d76149a8 --- /dev/null +++ b/keyboards/rart/rart80/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32a + +# Bootloader selection +BOOTLOADER = usbasploader + +# Processor frequency +F_CPU = 16000000 + +# 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 = yes # 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 diff --git a/keyboards/rgbkb/mun/keymaps/default/config.h b/keyboards/rgbkb/mun/keymaps/default/config.h index debd16163b6..9fbbfc59015 100644 --- a/keyboards/rgbkb/mun/keymaps/default/config.h +++ b/keyboards/rgbkb/mun/keymaps/default/config.h @@ -17,7 +17,7 @@ #undef ENABLE_RGB_MATRIX_SOLID_SPLASH // 20m timeout (20m * 60s * 1000mil) -// #define RGB_DISABLE_TIMEOUT 1200000 +// #define RGB_MATRIX_TIMEOUT 1200000 #define RGB_DISABLE_WHEN_USB_SUSPENDED #define STM32_ONBOARD_EEPROM_SIZE 2048 diff --git a/keyboards/rgbkb/mun/keymaps/peott-fr/config.h b/keyboards/rgbkb/mun/keymaps/peott-fr/config.h index 9719d17437a..a0b6cced11f 100644 --- a/keyboards/rgbkb/mun/keymaps/peott-fr/config.h +++ b/keyboards/rgbkb/mun/keymaps/peott-fr/config.h @@ -17,7 +17,7 @@ #define DISABLE_RGB_MATRIX_SOLID_SPLASH // 20m timeout (20m * 60s * 1000mil) -// #define RGB_DISABLE_TIMEOUT 1200000 +// #define RGB_MATRIX_TIMEOUT 1200000 #define RGB_DISABLE_WHEN_USB_SUSPENDED #define STM32_ONBOARD_EEPROM_SIZE 2048 diff --git a/keyboards/rgbkb/mun/keymaps/via/config.h b/keyboards/rgbkb/mun/keymaps/via/config.h index cfcaa9a1ed6..01dc6f1c7d9 100644 --- a/keyboards/rgbkb/mun/keymaps/via/config.h +++ b/keyboards/rgbkb/mun/keymaps/via/config.h @@ -17,7 +17,7 @@ #undef ENABLE_RGB_MATRIX_SOLID_SPLASH // 20m timeout (20m * 60s * 1000mil) -// #define RGB_DISABLE_TIMEOUT 1200000 +// #define RGB_MATRIX_TIMEOUT 1200000 #define RGB_DISABLE_WHEN_USB_SUSPENDED #define VIA_EEPROM_LAYOUT_OPTIONS_SIZE 2 diff --git a/keyboards/rgbkb/mun/keymaps/xulkal2/config.h b/keyboards/rgbkb/mun/keymaps/xulkal2/config.h index 42e60191fcc..7e3fc2d9084 100644 --- a/keyboards/rgbkb/mun/keymaps/xulkal2/config.h +++ b/keyboards/rgbkb/mun/keymaps/xulkal2/config.h @@ -29,7 +29,7 @@ #undef ENABLE_RGB_MATRIX_SOLID_SPLASH // 20m timeout (20m * 60s * 1000mil) -// #define RGB_DISABLE_TIMEOUT 1200000 +// #define RGB_MATRIX_TIMEOUT 1200000 #define RGB_DISABLE_WHEN_USB_SUSPENDED #define OLED_SCROLL_TIMEOUT 20000 #define ONESHOT_TAP_TOGGLE 2 diff --git a/keyboards/rgbkb/sol3/keymaps/default/config.h b/keyboards/rgbkb/sol3/keymaps/default/config.h index b239f5bb803..7e467261156 100644 --- a/keyboards/rgbkb/sol3/keymaps/default/config.h +++ b/keyboards/rgbkb/sol3/keymaps/default/config.h @@ -17,7 +17,7 @@ #undef ENABLE_RGB_MATRIX_SOLID_SPLASH // 20m timeout (20m * 60s * 1000mil) -// #define RGB_DISABLE_TIMEOUT 1200000 +// #define RGB_MATRIX_TIMEOUT 1200000 #define RGB_DISABLE_WHEN_USB_SUSPENDED #define STM32_ONBOARD_EEPROM_SIZE 2048 diff --git a/keyboards/rgbkb/sol3/keymaps/kageurufu/config.h b/keyboards/rgbkb/sol3/keymaps/kageurufu/config.h index 400848aa355..b1a8fce8652 100644 --- a/keyboards/rgbkb/sol3/keymaps/kageurufu/config.h +++ b/keyboards/rgbkb/sol3/keymaps/kageurufu/config.h @@ -17,7 +17,7 @@ #define DISABLE_RGB_MATRIX_SOLID_SPLASH // 20m timeout (20m * 60s * 1000mil) -// #define RGB_DISABLE_TIMEOUT 1200000 +// #define RGB_MATRIX_TIMEOUT 1200000 #define RGB_DISABLE_WHEN_USB_SUSPENDED diff --git a/keyboards/rgbkb/sol3/keymaps/via/config.h b/keyboards/rgbkb/sol3/keymaps/via/config.h index 3934e6c4916..e6aa2bd87b8 100644 --- a/keyboards/rgbkb/sol3/keymaps/via/config.h +++ b/keyboards/rgbkb/sol3/keymaps/via/config.h @@ -17,7 +17,7 @@ #undef ENABLE_RGB_MATRIX_SOLID_SPLASH // 20m timeout (20m * 60s * 1000mil) -// #define RGB_DISABLE_TIMEOUT 1200000 +// #define RGB_MATRIX_TIMEOUT 1200000 #define RGB_DISABLE_WHEN_USB_SUSPENDED diff --git a/keyboards/ryanskidmore/rskeys100/keymaps/default/keymap.c b/keyboards/ryanskidmore/rskeys100/keymaps/default/keymap.c index 38a88a3cd48..1459d66ed91 100644 --- a/keyboards/ryanskidmore/rskeys100/keymaps/default/keymap.c +++ b/keyboards/ryanskidmore/rskeys100/keymaps/default/keymap.c @@ -46,7 +46,7 @@ void keyboard_post_init_user(void) { rgb_matrix_enable_noeeprom(); } -void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { +bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { /* We use RGB for the indicator RGB colours since we don't need to adjust the brightness. * If any of the indicators are enabled, set the key to white. This overrides the active RGB * matrix animation. */ @@ -62,4 +62,5 @@ void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { if (host_keyboard_led_state().scroll_lock) { RGB_MATRIX_INDICATOR_SET_COLOR(14, 255, 255, 255); } + return false; } diff --git a/keyboards/saevus/cor/info.json b/keyboards/saevus/cor/info.json new file mode 100644 index 00000000000..3f129518d97 --- /dev/null +++ b/keyboards/saevus/cor/info.json @@ -0,0 +1,109 @@ +{ + "manufacturer": "saevus", + "keyboard_name": "cor", + "maintainer": "ramonimbao", + "bootloader": "atmel-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": false + }, + "matrix_pins": { + "rows": ["F0", "F1", "F4", "B3", "B6"], + "cols": ["F5", "F6", "F7", "C6", "C7", "B1", "B7", "B5", "B4", "D7", "D6", "D4", "D5", "D2", "D2", "D1", "D0"] + }, + "processor": "atmega32u4", + "url": "", + "usb": { + "device_version": "1.0.0", + "vid": "0x5001", + "pid": "0x0002" + }, + "layouts": { + "LAYOUT_all": { + "layout": [ + { "matrix": [0,0], "x":0, "y":0 }, + { "matrix": [0,1], "x":1.25, "y":0 }, + { "matrix": [0,2], "x":2.25, "y":0 }, + { "matrix": [0,3], "x":3.25, "y":0 }, + { "matrix": [0,4], "x":4.25, "y":0 }, + { "matrix": [0,5], "x":5.25, "y":0 }, + { "matrix": [0,6], "x":6.25, "y":0 }, + { "matrix": [0,7], "x":7.25, "y":0 }, + { "matrix": [0,8], "x":8.25, "y":0 }, + { "matrix": [0,9], "x":9.25, "y":0 }, + { "matrix": [0,10], "x":10.25, "y":0 }, + { "matrix": [0,11], "x":11.25, "y":0 }, + { "matrix": [0,12], "x":12.25, "y":0 }, + { "matrix": [0,13], "x":13.25, "y":0 }, + { "matrix": [0,14], "x":14.25, "y":0 }, + { "matrix": [0,15], "x":15.25, "y":0 }, + { "matrix": [0,16], "x":16.75, "y":0 }, + + { "matrix": [1,0], "x":0, "y":1 }, + { "matrix": [1,1], "x":1.25, "y":1, "w":1.5 }, + { "matrix": [1,2], "x":2.75, "y":1 }, + { "matrix": [1,3], "x":3.75, "y":1 }, + { "matrix": [1,4], "x":4.75, "y":1 }, + { "matrix": [1,5], "x":5.75, "y":1 }, + { "matrix": [1,6], "x":6.75, "y":1 }, + { "matrix": [1,7], "x":7.75, "y":1 }, + { "matrix": [1,8], "x":8.75, "y":1 }, + { "matrix": [1,9], "x":9.75, "y":1 }, + { "matrix": [1,10], "x":10.75, "y":1 }, + { "matrix": [1,11], "x":11.75, "y":1 }, + { "matrix": [1,12], "x":12.75, "y":1 }, + { "matrix": [1,13], "x":13.75, "y":1 }, + { "matrix": [1,15], "x":14.75, "y":1, "w":1.5 }, + { "matrix": [1,16], "x":16.75, "y":1 }, + + { "matrix": [2,0], "x":0, "y":2 }, + { "matrix": [2,1], "x":1.25, "y":2, "w":1.75 }, + { "matrix": [2,2], "x":3, "y":2 }, + { "matrix": [2,3], "x":4, "y":2 }, + { "matrix": [2,4], "x":5, "y":2 }, + { "matrix": [2,5], "x":6, "y":2 }, + { "matrix": [2,6], "x":7, "y":2 }, + { "matrix": [2,7], "x":8, "y":2 }, + { "matrix": [2,8], "x":9, "y":2 }, + { "matrix": [2,9], "x":10, "y":2 }, + { "matrix": [2,10], "x":11, "y":2 }, + { "matrix": [2,11], "x":12, "y":2 }, + { "matrix": [2,12], "x":13, "y":2 }, + { "matrix": [2,14], "x":14, "y":2, "w":2.25 }, + { "matrix": [2,16], "x":16.75, "y":2 }, + + { "matrix": [3,0], "x":0, "y":3 }, + { "matrix": [3,1], "x":1.25, "y":3, "w":2.25 }, + { "matrix": [3,3], "x":3.5, "y":3 }, + { "matrix": [3,4], "x":4.5, "y":3 }, + { "matrix": [3,5], "x":5.5, "y":3 }, + { "matrix": [3,6], "x":6.5, "y":3 }, + { "matrix": [3,7], "x":7.5, "y":3 }, + { "matrix": [3,8], "x":8.5, "y":3 }, + { "matrix": [3,9], "x":9.5, "y":3 }, + { "matrix": [3,10], "x":10.5, "y":3 }, + { "matrix": [3,11], "x":11.5, "y":3 }, + { "matrix": [3,12], "x":12.5, "y":3 }, + { "matrix": [3,13], "x":13.5, "y":3, "w":1.75 }, + { "matrix": [3,15], "x":15.5, "y":3.25 }, + { "matrix": [3,16], "x":16.75, "y":3 }, + + { "matrix": [4,0], "x":0, "y":4 }, + { "matrix": [4,1], "x":1.25, "y":4, "w":1.25 }, + { "matrix": [4,2], "x":2.5, "y":4, "w":1.25 }, + { "matrix": [4,3], "x":3.75, "y":4, "w":1.25 }, + { "matrix": [4,7], "x":5, "y":4, "w":6.25 }, + { "matrix": [4,11], "x":11.25, "y":4, "w":1.25 }, + { "matrix": [4,12], "x":12.5, "y":4, "w":1.25 }, + { "matrix": [4,14], "x":14.5, "y":4.25 }, + { "matrix": [4,15], "x":15.5, "y":4.25 }, + { "matrix": [4,16], "x":16.5, "y":4.25 } + ] + } + } +} diff --git a/keyboards/saevus/cor/keymaps/default/keymap.c b/keyboards/saevus/cor/keymaps/default/keymap.c new file mode 100644 index 00000000000..ca7c3403334 --- /dev/null +++ b/keyboards/saevus/cor/keymaps/default/keymap.c @@ -0,0 +1,34 @@ +/* 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_F1, 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_DEL, + KC_F2, 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_F3, 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_F4, 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, MO(1), + KC_F5, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_all( + KC_F6, 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_F7, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, + KC_F8, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_END, + KC_F9, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_F10, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/saevus/cor/keymaps/via/keymap.c b/keyboards/saevus/cor/keymaps/via/keymap.c new file mode 100644 index 00000000000..5cb1d224b9b --- /dev/null +++ b/keyboards/saevus/cor/keymaps/via/keymap.c @@ -0,0 +1,48 @@ +/* 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_F1, 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_DEL, + KC_F2, 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_F3, 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_F4, 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, MO(1), + KC_F5, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_all( + KC_F6, 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_F7, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, + KC_F8, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_END, + KC_F9, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_F10, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [2] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [3] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/saevus/cor/keymaps/via/rules.mk b/keyboards/saevus/cor/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/saevus/cor/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/saevus/cor/readme.md b/keyboards/saevus/cor/readme.md new file mode 100644 index 00000000000..2c158e1a63b --- /dev/null +++ b/keyboards/saevus/cor/readme.md @@ -0,0 +1,26 @@ +# saevus cor + +![saevus cor](https://i.imgur.com/AOT6mmMl.jpg) + +An exploded 65% with a macro column. + +* Keyboard Maintainer: [Ramon Imbao](https://github.com/ramonimbao) +* Hardware Supported: ATmega32u4 + +Make example for this keyboard (after setting up your build environment): + + make saevus/cor:via + +Flashing example for this keyboard: + + make saevus/cor: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 upper left key and plug in the keyboard +* **Physical reset button**: Briefly press the reset button on the back of the PCB. +* **Keycode in layout**: Press the key mapped to `RESET` if it is available diff --git a/keyboards/saevus/cor/rules.mk b/keyboards/saevus/cor/rules.mk new file mode 100644 index 00000000000..6e7633bfe01 --- /dev/null +++ b/keyboards/saevus/cor/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/saevus/cor_tkl/cor_tkl.c b/keyboards/saevus/cor_tkl/cor_tkl.c index 45cc8c08681..f7b39471dba 100644 --- a/keyboards/saevus/cor_tkl/cor_tkl.c +++ b/keyboards/saevus/cor_tkl/cor_tkl.c @@ -32,13 +32,15 @@ led_config_t g_led_config = {{ LED_FLAG_INDICATOR, LED_FLAG_INDICATOR }}; -void rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { +bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { + if (!rgb_matrix_indicators_advanced_user(led_min, led_max)) { + return false; + } 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); + return true; } diff --git a/keyboards/saevus/cor_tkl/info.json b/keyboards/saevus/cor_tkl/info.json index 5a881ce5cdd..6c00c7830e3 100644 --- a/keyboards/saevus/cor_tkl/info.json +++ b/keyboards/saevus/cor_tkl/info.json @@ -3,6 +3,12 @@ "manufacturer": "saevus", "url": "", "maintainer": "ramonimbao", + "community_layouts": [ + "tkl_f13_ansi", + "tkl_f13_ansi_split_bs_rshift", + "tkl_f13_iso", + "tkl_f13_iso_split_bs_rshift" + ], "layout_aliases": { "LAYOUT_ansi": "LAYOUT_tkl_f13_ansi", "LAYOUT_iso": "LAYOUT_tkl_f13_iso" @@ -13,18 +19,24 @@ "extrakey": true, "console": false, "command": false, - "nkro": false + "nkro": false, + "rgb_matrix": true }, "usb": { "vid": "0x5001", "pid": "0x0003", "device_version": "1.0.0" }, + "processor": "RP2040", + "bootloader": "rp2040", "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"] }, + "rgb_matrix": { + "driver": "WS2812" + }, "layouts": { "LAYOUT_tkl_f13_ansi": { "layout": [ diff --git a/keyboards/saevus/cor_tkl/keymaps/default/keymap.c b/keyboards/saevus/cor_tkl/keymaps/default/keymap.c index 3c5139dbe78..5d351a15786 100644 --- a/keyboards/saevus/cor_tkl/keymaps/default/keymap.c +++ b/keyboards/saevus/cor_tkl/keymaps/default/keymap.c @@ -16,7 +16,7 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_tkl_f13_ansi_tsangan( + [0] = LAYOUT_tkl_f13_ansi( 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, diff --git a/keyboards/saevus/cor_tkl/rules.mk b/keyboards/saevus/cor_tkl/rules.mk index e53fbb2e92c..997fce7e65c 100644 --- a/keyboards/saevus/cor_tkl/rules.mk +++ b/keyboards/saevus/cor_tkl/rules.mk @@ -1,13 +1 @@ -# 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 026e8d90979..e7016c4b78a 100644 --- a/keyboards/salicylic_acid3/naked48/keymaps/salicylic/config.h +++ b/keyboards/salicylic_acid3/naked48/keymaps/salicylic/config.h @@ -30,7 +30,6 @@ #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 (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/salicylic_acid3/naked48/keymaps/via_rgb_matrix/config.h b/keyboards/salicylic_acid3/naked48/keymaps/via_rgb_matrix/config.h index 129e9a55487..d1cb2f50d59 100644 --- a/keyboards/salicylic_acid3/naked48/keymaps/via_rgb_matrix/config.h +++ b/keyboards/salicylic_acid3/naked48/keymaps/via_rgb_matrix/config.h @@ -31,8 +31,6 @@ #define RGB_MATRIX_KEYPRESSES // reacts to keypresses // #define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses) // #define RGB_MATRIX_FRAMEBUFFER_EFFECTS // enable framebuffer effects -// #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 (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/salicylic_acid3/setta21/keymaps/salicylic/config.h b/keyboards/salicylic_acid3/setta21/keymaps/salicylic/config.h index 0fa44eb3ce1..26607eca898 100644 --- a/keyboards/salicylic_acid3/setta21/keymaps/salicylic/config.h +++ b/keyboards/salicylic_acid3/setta21/keymaps/salicylic/config.h @@ -26,7 +26,6 @@ #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 (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/sawnsprojects/satxri6key/config.h b/keyboards/sawnsprojects/satxri6key/config.h index f1b06ace227..b13fd918b85 100644 --- a/keyboards/sawnsprojects/satxri6key/config.h +++ b/keyboards/sawnsprojects/satxri6key/config.h @@ -63,7 +63,6 @@ #define RGB_MATRIX_KEYPRESSES // reacts to keypresses #define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses) #define RGB_MATRIX_FRAMEBUFFER_EFFECTS -#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) #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 diff --git a/keyboards/senselessclay/ck60/config.h b/keyboards/senselessclay/ck60/config.h index d02cf044210..6035973a03f 100644 --- a/keyboards/senselessclay/ck60/config.h +++ b/keyboards/senselessclay/ck60/config.h @@ -40,7 +40,6 @@ along with this program. If not, see . #define RGB_MATRIX_FRAMEBUFFER_EFFECTS #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 160 // limit brightness to not overamp the USB #define RGB_MATRIX_LED_FLUSH_LIMIT 16 // 16 is equivalent to limiting to 60fps -#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_STARTUP_MODE RGB_MATRIX_CYCLE_ALL diff --git a/keyboards/smallkeyboard/config.h b/keyboards/smallkeyboard/config.h index 71639479208..41b43cf683e 100644 --- a/keyboards/smallkeyboard/config.h +++ b/keyboards/smallkeyboard/config.h @@ -43,7 +43,6 @@ #define DEBOUNCE 3 #ifdef RGB_MATRIX_ENABLE -# 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_KEYPRESSES # define RGB_MATRIX_FRAMEBUFFER_EFFECTS diff --git a/keyboards/smithrune/iron165r2/info.json b/keyboards/smithrune/iron165r2/info.json index 0d42363728f..4d093a33508 100644 --- a/keyboards/smithrune/iron165r2/info.json +++ b/keyboards/smithrune/iron165r2/info.json @@ -2,10 +2,390 @@ "keyboard_name": "Iron165R2", "manufacturer": "SmithRune", "url": "", - "maintainer": "qmk", + "maintainer": "Gondolindrim", "usb": { "vid": "0x8384", "pid": "0x1652", "device_version": "0.0.1" + }, + "layouts": { + "LAYOUT_all": { + "layout": [ + {"label":"0,0", "x":0, "y":0}, + {"label":"0,1", "x":1, "y":0}, + {"label":"0,2", "x":2, "y":0}, + {"label":"0,3", "x":3, "y":0}, + {"label":"0,4", "x":4, "y":0}, + {"label":"0,5", "x":5, "y":0}, + {"label":"0,6", "x":6, "y":0}, + {"label":"0,7", "x":7, "y":0}, + {"label":"0,8", "x":8, "y":0}, + {"label":"0,9", "x":9, "y":0}, + {"label":"0,10", "x":10, "y":0}, + {"label":"0,11", "x":11, "y":0}, + {"label":"0,12", "x":12, "y":0}, + {"label":"0,13", "x":13, "y":0}, + {"label":"0,14", "x":14, "y":0}, + {"label":"4,14", "x":15, "y":0}, + + {"label":"1,0", "x":0, "y":1, "w":1.5}, + {"label":"1,1", "x":1.5, "y":1}, + {"label":"1,2", "x":2.5, "y":1}, + {"label":"1,3", "x":3.5, "y":1}, + {"label":"1,4", "x":4.5, "y":1}, + {"label":"1,5", "x":5.5, "y":1}, + {"label":"1,6", "x":6.5, "y":1}, + {"label":"1,7", "x":7.5, "y":1}, + {"label":"1,8", "x":8.5, "y":1}, + {"label":"1,9", "x":9.5, "y":1}, + {"label":"1,10", "x":10.5, "y":1}, + {"label":"1,11", "x":11.5, "y":1}, + {"label":"1,12", "x":12.5, "y":1}, + {"label":"1,13", "x":13.5, "y":1, "w":1.5}, + {"label":"1,14", "x":15, "y":1}, + + {"label":"2,0", "x":0, "y":2, "w":1.75}, + {"label":"2,1", "x":1.75, "y":2}, + {"label":"2,2", "x":2.75, "y":2}, + {"label":"2,3", "x":3.75, "y":2}, + {"label":"2,4", "x":4.75, "y":2}, + {"label":"2,5", "x":5.75, "y":2}, + {"label":"2,6", "x":6.75, "y":2}, + {"label":"2,7", "x":7.75, "y":2}, + {"label":"2,8", "x":8.75, "y":2}, + {"label":"2,9", "x":9.75, "y":2}, + {"label":"2,10", "x":10.75, "y":2}, + {"label":"2,11", "x":11.75, "y":2}, + {"label":"2,12", "x":12.75, "y":2}, + {"label":"2,13", "x":13.75, "y":2, "w":1.25}, + {"label":"2,14", "x":15, "y":2}, + + {"label":"3,0", "x":0, "y":3, "w":1.25}, + {"label":"3,1", "x":1.25, "y":3}, + {"label":"3,2", "x":2.25, "y":3}, + {"label":"3,3", "x":3.25, "y":3}, + {"label":"3,4", "x":4.25, "y":3}, + {"label":"3,5", "x":5.25, "y":3}, + {"label":"3,6", "x":6.25, "y":3}, + {"label":"3,7", "x":7.25, "y":3}, + {"label":"3,8", "x":8.25, "y":3}, + {"label":"3,9", "x":9.25, "y":3}, + {"label":"3,10", "x":10.25, "y":3}, + {"label":"3,11", "x":11.25, "y":3}, + {"label":"3,12", "x":12.25, "y":3, "w":1.75}, + {"label":"3,13", "x":14, "y":3}, + {"label":"3,14", "x":15, "y":3}, + + {"label":"4,0", "x":0, "y":4, "w":1.25}, + {"label":"4,1", "x":1.25, "y":4, "w":1.25}, + {"label":"4,2", "x":2.5, "y":4, "w":1.25}, + {"label":"4,6", "x":3.75, "y":4, "w":6.25}, + {"label":"4,9", "x":10, "y":4, "w":1.25}, + {"label":"4,10", "x":11.25, "y":4, "w":1.25}, + {"label":"4,11", "x":13, "y":4}, + {"label":"4,12", "x":14, "y":4}, + {"label":"4,13", "x":15, "y":4} + ] + }, + "LAYOUT_65_ansi_cb_blocker": { + "layout": [ + {"label":"0,0", "x":0, "y":0}, + {"label":"0,1", "x":1, "y":0}, + {"label":"0,2", "x":2, "y":0}, + {"label":"0,3", "x":3, "y":0}, + {"label":"0,4", "x":4, "y":0}, + {"label":"0,5", "x":5, "y":0}, + {"label":"0,6", "x":6, "y":0}, + {"label":"0,7", "x":7, "y":0}, + {"label":"0,8", "x":8, "y":0}, + {"label":"0,9", "x":9, "y":0}, + {"label":"0,10", "x":10, "y":0}, + {"label":"0,11", "x":11, "y":0}, + {"label":"0,12", "x":12, "y":0}, + {"label":"0,13", "x":13, "y":0, "w":2}, + + {"label":"1,0", "x":0, "y":1, "w":1.5}, + {"label":"1,1", "x":1.5, "y":1}, + {"label":"1,2", "x":2.5, "y":1}, + {"label":"1,3", "x":3.5, "y":1}, + {"label":"1,4", "x":4.5, "y":1}, + {"label":"1,5", "x":5.5, "y":1}, + {"label":"1,6", "x":6.5, "y":1}, + {"label":"1,7", "x":7.5, "y":1}, + {"label":"1,8", "x":8.5, "y":1}, + {"label":"1,9", "x":9.5, "y":1}, + {"label":"1,10", "x":10.5, "y":1}, + {"label":"1,11", "x":11.5, "y":1}, + {"label":"1,12", "x":12.5, "y":1}, + {"label":"1,13", "x":13.5, "y":1, "w":1.5}, + {"label":"1,14", "x":15, "y":1}, + + {"label":"2,0", "x":0, "y":2, "w":1.75}, + {"label":"2,1", "x":1.75, "y":2}, + {"label":"2,2", "x":2.75, "y":2}, + {"label":"2,3", "x":3.75, "y":2}, + {"label":"2,4", "x":4.75, "y":2}, + {"label":"2,5", "x":5.75, "y":2}, + {"label":"2,6", "x":6.75, "y":2}, + {"label":"2,7", "x":7.75, "y":2}, + {"label":"2,8", "x":8.75, "y":2}, + {"label":"2,9", "x":9.75, "y":2}, + {"label":"2,10", "x":10.75, "y":2}, + {"label":"2,11", "x":11.75, "y":2}, + {"label":"2,13", "x":12.75, "y":2, "w":2.25}, + {"label":"2,14", "x":15, "y":2}, + + {"label":"3,0", "x":0, "y":3, "w":2.25}, + {"label":"3,2", "x":2.25, "y":3}, + {"label":"3,3", "x":3.25, "y":3}, + {"label":"3,4", "x":4.25, "y":3}, + {"label":"3,5", "x":5.25, "y":3}, + {"label":"3,6", "x":6.25, "y":3}, + {"label":"3,7", "x":7.25, "y":3}, + {"label":"3,8", "x":8.25, "y":3}, + {"label":"3,9", "x":9.25, "y":3}, + {"label":"3,10", "x":10.25, "y":3}, + {"label":"3,11", "x":11.25, "y":3}, + {"label":"3,12", "x":12.25, "y":3, "w":1.75}, + {"label":"3,13", "x":14, "y":3}, + {"label":"3,14", "x":15, "y":3}, + + {"label":"4,0", "x":0, "y":4, "w":1.25}, + {"label":"4,1", "x":1.25, "y":4, "w":1.25}, + {"label":"4,2", "x":2.5, "y":4, "w":1.25}, + {"label":"4,6", "x":3.75, "y":4, "w":6.25}, + {"label":"4,9", "x":10, "y":4, "w":1.25}, + {"label":"4,10", "x":11.25, "y":4, "w":1.25}, + {"label":"4,11", "x":13, "y":4}, + {"label":"4,12", "x":14, "y":4}, + {"label":"4,13", "x":15, "y":4} + ] + }, + "LAYOUT_65_ansi_blocker": { + "layout": [ + {"label":"0,0", "x":0, "y":0}, + {"label":"0,1", "x":1, "y":0}, + {"label":"0,2", "x":2, "y":0}, + {"label":"0,3", "x":3, "y":0}, + {"label":"0,4", "x":4, "y":0}, + {"label":"0,5", "x":5, "y":0}, + {"label":"0,6", "x":6, "y":0}, + {"label":"0,7", "x":7, "y":0}, + {"label":"0,8", "x":8, "y":0}, + {"label":"0,9", "x":9, "y":0}, + {"label":"0,10", "x":10, "y":0}, + {"label":"0,11", "x":11, "y":0}, + {"label":"0,12", "x":12, "y":0}, + {"label":"0,13", "x":13, "y":0, "w":2}, + {"label":"4,14", "x":15, "y":0}, + + {"label":"1,0", "x":0, "y":1, "w":1.5}, + {"label":"1,1", "x":1.5, "y":1}, + {"label":"1,2", "x":2.5, "y":1}, + {"label":"1,3", "x":3.5, "y":1}, + {"label":"1,4", "x":4.5, "y":1}, + {"label":"1,5", "x":5.5, "y":1}, + {"label":"1,6", "x":6.5, "y":1}, + {"label":"1,7", "x":7.5, "y":1}, + {"label":"1,8", "x":8.5, "y":1}, + {"label":"1,9", "x":9.5, "y":1}, + {"label":"1,10", "x":10.5, "y":1}, + {"label":"1,11", "x":11.5, "y":1}, + {"label":"1,12", "x":12.5, "y":1}, + {"label":"1,13", "x":13.5, "y":1, "w":1.5}, + {"label":"1,14", "x":15, "y":1}, + + {"label":"2,0", "x":0, "y":2, "w":1.75}, + {"label":"2,1", "x":1.75, "y":2}, + {"label":"2,2", "x":2.75, "y":2}, + {"label":"2,3", "x":3.75, "y":2}, + {"label":"2,4", "x":4.75, "y":2}, + {"label":"2,5", "x":5.75, "y":2}, + {"label":"2,6", "x":6.75, "y":2}, + {"label":"2,7", "x":7.75, "y":2}, + {"label":"2,8", "x":8.75, "y":2}, + {"label":"2,9", "x":9.75, "y":2}, + {"label":"2,10", "x":10.75, "y":2}, + {"label":"2,11", "x":11.75, "y":2}, + {"label":"2,13", "x":12.75, "y":2, "w":2.25}, + {"label":"2,14", "x":15, "y":2}, + + {"label":"3,0", "x":0, "y":3, "w":2.25}, + {"label":"3,2", "x":2.25, "y":3}, + {"label":"3,3", "x":3.25, "y":3}, + {"label":"3,4", "x":4.25, "y":3}, + {"label":"3,5", "x":5.25, "y":3}, + {"label":"3,6", "x":6.25, "y":3}, + {"label":"3,7", "x":7.25, "y":3}, + {"label":"3,8", "x":8.25, "y":3}, + {"label":"3,9", "x":9.25, "y":3}, + {"label":"3,10", "x":10.25, "y":3}, + {"label":"3,11", "x":11.25, "y":3}, + {"label":"3,12", "x":12.25, "y":3, "w":1.75}, + {"label":"3,13", "x":14, "y":3}, + {"label":"3,14", "x":15, "y":3}, + + {"label":"4,0", "x":0, "y":4, "w":1.25}, + {"label":"4,1", "x":1.25, "y":4, "w":1.25}, + {"label":"4,2", "x":2.5, "y":4, "w":1.25}, + {"label":"4,6", "x":3.75, "y":4, "w":6.25}, + {"label":"4,9", "x":10, "y":4, "w":1.25}, + {"label":"4,10", "x":11.25, "y":4, "w":1.25}, + {"label":"4,11", "x":13, "y":4}, + {"label":"4,12", "x":14, "y":4}, + {"label":"4,13", "x":15, "y":4} + ] + }, + "LAYOUT_65_iso_cb_blocker": { + "layout": [ + {"label":"0,0", "x":0, "y":0}, + {"label":"0,1", "x":1, "y":0}, + {"label":"0,2", "x":2, "y":0}, + {"label":"0,3", "x":3, "y":0}, + {"label":"0,4", "x":4, "y":0}, + {"label":"0,5", "x":5, "y":0}, + {"label":"0,6", "x":6, "y":0}, + {"label":"0,7", "x":7, "y":0}, + {"label":"0,8", "x":8, "y":0}, + {"label":"0,9", "x":9, "y":0}, + {"label":"0,10", "x":10, "y":0}, + {"label":"0,11", "x":11, "y":0}, + {"label":"0,12", "x":12, "y":0}, + {"label":"0,13", "x":13, "y":0, "w":2}, + + {"label":"1,0", "x":0, "y":1, "w":1.5}, + {"label":"1,1", "x":1.5, "y":1}, + {"label":"1,2", "x":2.5, "y":1}, + {"label":"1,3", "x":3.5, "y":1}, + {"label":"1,4", "x":4.5, "y":1}, + {"label":"1,5", "x":5.5, "y":1}, + {"label":"1,6", "x":6.5, "y":1}, + {"label":"1,7", "x":7.5, "y":1}, + {"label":"1,8", "x":8.5, "y":1}, + {"label":"1,9", "x":9.5, "y":1}, + {"label":"1,10", "x":10.5, "y":1}, + {"label":"1,11", "x":11.5, "y":1}, + {"label":"1,12", "x":12.5, "y":1}, + {"label":"1,14", "x":15, "y":1}, + + {"label":"2,0", "x":0, "y":2, "w":1.75}, + {"label":"2,1", "x":1.75, "y":2}, + {"label":"2,2", "x":2.75, "y":2}, + {"label":"2,3", "x":3.75, "y":2}, + {"label":"2,4", "x":4.75, "y":2}, + {"label":"2,5", "x":5.75, "y":2}, + {"label":"2,6", "x":6.75, "y":2}, + {"label":"2,7", "x":7.75, "y":2}, + {"label":"2,8", "x":8.75, "y":2}, + {"label":"2,9", "x":9.75, "y":2}, + {"label":"2,10", "x":10.75, "y":2}, + {"label":"2,11", "x":11.75, "y":2}, + {"label":"2,12", "x":12.75, "y":2}, + {"label":"2,13", "x":13.75, "y":1, "w":1.25, "h":2}, + {"label":"2,14", "x":15, "y":2}, + + {"label":"3,0", "x":0, "y":3, "w":1.25}, + {"label":"3,1", "x":1.25, "y":3}, + {"label":"3,2", "x":2.25, "y":3}, + {"label":"3,3", "x":3.25, "y":3}, + {"label":"3,4", "x":4.25, "y":3}, + {"label":"3,5", "x":5.25, "y":3}, + {"label":"3,6", "x":6.25, "y":3}, + {"label":"3,7", "x":7.25, "y":3}, + {"label":"3,8", "x":8.25, "y":3}, + {"label":"3,9", "x":9.25, "y":3}, + {"label":"3,10", "x":10.25, "y":3}, + {"label":"3,11", "x":11.25, "y":3}, + {"label":"3,12", "x":12.25, "y":3, "w":1.75}, + {"label":"3,13", "x":14, "y":3}, + {"label":"3,14", "x":15, "y":3}, + + {"label":"4,0", "x":0, "y":4, "w":1.25}, + {"label":"4,1", "x":1.25, "y":4, "w":1.25}, + {"label":"4,2", "x":2.5, "y":4, "w":1.25}, + {"label":"4,6", "x":3.75, "y":4, "w":6.25}, + {"label":"4,9", "x":10, "y":4, "w":1.25}, + {"label":"4,10", "x":11.25, "y":4, "w":1.25}, + {"label":"4,11", "x":13, "y":4}, + {"label":"4,12", "x":14, "y":4}, + {"label":"4,13", "x":15, "y":4} + ] + }, + "LAYOUT_65_iso_blocker": { + "layout": [ + {"label":"0,0", "x":0, "y":0}, + {"label":"0,1", "x":1, "y":0}, + {"label":"0,2", "x":2, "y":0}, + {"label":"0,3", "x":3, "y":0}, + {"label":"0,4", "x":4, "y":0}, + {"label":"0,5", "x":5, "y":0}, + {"label":"0,6", "x":6, "y":0}, + {"label":"0,7", "x":7, "y":0}, + {"label":"0,8", "x":8, "y":0}, + {"label":"0,9", "x":9, "y":0}, + {"label":"0,10", "x":10, "y":0}, + {"label":"0,11", "x":11, "y":0}, + {"label":"0,12", "x":12, "y":0}, + {"label":"0,13", "x":13, "y":0, "w":2}, + {"label":"4,14", "x":15, "y":0}, + + {"label":"1,0", "x":0, "y":1, "w":1.5}, + {"label":"1,1", "x":1.5, "y":1}, + {"label":"1,2", "x":2.5, "y":1}, + {"label":"1,3", "x":3.5, "y":1}, + {"label":"1,4", "x":4.5, "y":1}, + {"label":"1,5", "x":5.5, "y":1}, + {"label":"1,6", "x":6.5, "y":1}, + {"label":"1,7", "x":7.5, "y":1}, + {"label":"1,8", "x":8.5, "y":1}, + {"label":"1,9", "x":9.5, "y":1}, + {"label":"1,10", "x":10.5, "y":1}, + {"label":"1,11", "x":11.5, "y":1}, + {"label":"1,12", "x":12.5, "y":1}, + {"label":"1,14", "x":15, "y":1}, + + {"label":"2,0", "x":0, "y":2, "w":1.75}, + {"label":"2,1", "x":1.75, "y":2}, + {"label":"2,2", "x":2.75, "y":2}, + {"label":"2,3", "x":3.75, "y":2}, + {"label":"2,4", "x":4.75, "y":2}, + {"label":"2,5", "x":5.75, "y":2}, + {"label":"2,6", "x":6.75, "y":2}, + {"label":"2,7", "x":7.75, "y":2}, + {"label":"2,8", "x":8.75, "y":2}, + {"label":"2,9", "x":9.75, "y":2}, + {"label":"2,10", "x":10.75, "y":2}, + {"label":"2,11", "x":11.75, "y":2}, + {"label":"2,12", "x":12.75, "y":2}, + {"label":"2,13", "x":13.75, "y":1, "w":1.25, "h":2}, + {"label":"2,14", "x":15, "y":2}, + + {"label":"3,0", "x":0, "y":3, "w":1.25}, + {"label":"3,1", "x":1.25, "y":3}, + {"label":"3,2", "x":2.25, "y":3}, + {"label":"3,3", "x":3.25, "y":3}, + {"label":"3,4", "x":4.25, "y":3}, + {"label":"3,5", "x":5.25, "y":3}, + {"label":"3,6", "x":6.25, "y":3}, + {"label":"3,7", "x":7.25, "y":3}, + {"label":"3,8", "x":8.25, "y":3}, + {"label":"3,9", "x":9.25, "y":3}, + {"label":"3,10", "x":10.25, "y":3}, + {"label":"3,11", "x":11.25, "y":3}, + {"label":"3,12", "x":12.25, "y":3, "w":1.75}, + {"label":"3,13", "x":14, "y":3}, + {"label":"3,14", "x":15, "y":3}, + + {"label":"4,0", "x":0, "y":4, "w":1.25}, + {"label":"4,1", "x":1.25, "y":4, "w":1.25}, + {"label":"4,2", "x":2.5, "y":4, "w":1.25}, + {"label":"4,6", "x":3.75, "y":4, "w":6.25}, + {"label":"4,9", "x":10, "y":4, "w":1.25}, + {"label":"4,10", "x":11.25, "y":4, "w":1.25}, + {"label":"4,11", "x":13, "y":4}, + {"label":"4,12", "x":14, "y":4}, + {"label":"4,13", "x":15, "y":4} + ] + } } } diff --git a/keyboards/smithrune/iron165r2/iron165r2.h b/keyboards/smithrune/iron165r2/iron165r2.h index 3bc816d4545..8bb349d8740 100644 --- a/keyboards/smithrune/iron165r2/iron165r2.h +++ b/keyboards/smithrune/iron165r2/iron165r2.h @@ -19,21 +19,31 @@ #include "quantum.h" -/* This is a shortcut to help you visually see your layout. +/* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───────┐ + * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │0E │4E │ │0D │ 2u Backspace + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ └─┬─────┤ + * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │1E │ │ │ + * 2.25u ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ ┌──┴┐2D │ ISO Enter + * LShift │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2D │2E │ │2C │ │ + * ┌────────┐ ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ └───┴────┘ + * │30 │ │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │3E │ + * └────────┘ ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤ + * │40 │41 │42 │46 │49 │4A │ │4B │4C │4D │ + * └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ + * ┌─────┬───┬─────┬───────────────────────────┬─────┐ + * │40 │41 │42 │46 │4A │ Tsangan + * └─────┴───┴─────┴───────────────────────────┴─────┘ * - * 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. + * Position K4E exists on the PCB, but is physically unavailable with the Iron165R2 case. */ -#define LAYOUT( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E , \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E , \ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E , \ - K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E , \ - K40, K41, K42, K46, K49, K4A, K4B, K4C, K4D, K4E )\ +#define LAYOUT_all( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K4E, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \ + K40, K41, K42, K46, K49, K4A, K4B, K4C, K4D )\ {\ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \ { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \ @@ -41,3 +51,59 @@ { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \ { K40, K41, K42, ___, ___, ___, K46, ___, ___, K49, K4A, K4B, K4C, K4D, K4E } \ } + +#define LAYOUT_65_ansi_cb_blocker( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2E, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \ + K40, K41, K42, K46, K49, K4A, K4B, K4C, K4D \ +) {\ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, ___ }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, ___, K2D, K2E }, \ + { K30, ___, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \ + { K40, K41, K42, ___, ___, ___, K46, ___, ___, K49, K4A, K4B, K4C, K4D, ___ } \ +} + +#define LAYOUT_65_ansi_blocker( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K4E, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2E, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \ + K40, K41, K42, K46, K49, K4A, K4B, K4C, K4D \ +) {\ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, ___ }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, ___, K2D, K2E }, \ + { K30, ___, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \ + { K40, K41, K42, ___, ___, ___, K46, ___, ___, K49, K4A, K4B, K4C, K4D, K4E } \ +} + +#define LAYOUT_65_iso_cb_blocker( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \ + K40, K41, K42, K46, K49, K4A, K4B, K4C, K4D \ +) {\ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, ___ }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, ___, K1E }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \ + { K40, K41, K42, ___, ___, ___, K46, ___, ___, K49, K4A, K4B, K4C, K4D, ___ } \ +} + +#define LAYOUT_65_iso_blocker( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K4E, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \ + K40, K41, K42, K46, K49, K4A, K4B, K4C, K4D \ +) {\ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, ___ }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, ___, K1E }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \ + { K40, K41, K42, ___, ___, ___, K46, ___, ___, K49, K4A, K4B, K4C, K4D, K4E } \ +} diff --git a/keyboards/smithrune/iron165r2/keymaps/default/keymap.c b/keyboards/smithrune/iron165r2/keymaps/default/keymap.c index ff291266388..901a0486e9c 100644 --- a/keyboards/smithrune/iron165r2/keymaps/default/keymap.c +++ b/keyboards/smithrune/iron165r2/keymaps/default/keymap.c @@ -16,32 +16,32 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = LAYOUT( /* Base */ - 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_BSPC, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_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_NUHS, KC_ENTER,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_LCTRL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_LEFT, KC_DOWN, KC_RGHT, KC_DEL +[0] = LAYOUT_all( /* Base */ + 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_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_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, KC_RGUI, KC_LEFT, KC_DOWN, KC_RGHT ), -[1] = LAYOUT( - 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, +[1] = LAYOUT_all( + 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, 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 ), -[2] = LAYOUT( +[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, 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( +[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, 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/smithrune/iron165r2/keymaps/via/keymap.c b/keyboards/smithrune/iron165r2/keymaps/via/keymap.c index ff291266388..901a0486e9c 100644 --- a/keyboards/smithrune/iron165r2/keymaps/via/keymap.c +++ b/keyboards/smithrune/iron165r2/keymaps/via/keymap.c @@ -16,32 +16,32 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = LAYOUT( /* Base */ - 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_BSPC, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_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_NUHS, KC_ENTER,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_LCTRL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_LEFT, KC_DOWN, KC_RGHT, KC_DEL +[0] = LAYOUT_all( /* Base */ + 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_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_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, KC_RGUI, KC_LEFT, KC_DOWN, KC_RGHT ), -[1] = LAYOUT( - 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, +[1] = LAYOUT_all( + 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, 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 ), -[2] = LAYOUT( +[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, 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( +[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, 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/sofle/keymaps/devdev/config.h b/keyboards/sofle/keymaps/devdev/config.h index cb5ff7210a3..a0341e5c6b9 100644 --- a/keyboards/sofle/keymaps/devdev/config.h +++ b/keyboards/sofle/keymaps/devdev/config.h @@ -83,7 +83,6 @@ #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_FRAMEBUFFER_EFFECTS // # 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) diff --git a/keyboards/sofle/keymaps/flare576/graphics.c b/keyboards/sofle/keymaps/flare576/graphics.c index 918334a508d..8cade61668d 100644 --- a/keyboards/sofle/keymaps/flare576/graphics.c +++ b/keyboards/sofle/keymaps/flare576/graphics.c @@ -156,16 +156,16 @@ static void render_luna(int LUNA_X, int LUNA_Y) { current_frame = (current_frame + 1) % 2; if(isSneaking) { - oled_write_raw_P(sneak[abs(1 - current_frame)], ANIM_SIZE); + oled_write_raw_P(sneak[current_frame], ANIM_SIZE); } else if(current_wpm <= MIN_WALK_SPEED) { - oled_write_raw_P(sit[abs(1 - current_frame)], ANIM_SIZE); + oled_write_raw_P(sit[current_frame], ANIM_SIZE); } else if(current_wpm <= MIN_RUN_SPEED) { - oled_write_raw_P(walk[abs(1 - current_frame)], ANIM_SIZE); + oled_write_raw_P(walk[current_frame], ANIM_SIZE); } else { - oled_write_raw_P(run[abs(1 - current_frame)], ANIM_SIZE); + oled_write_raw_P(run[current_frame], ANIM_SIZE); } } diff --git a/keyboards/sofle/keymaps/helltm/keymap.c b/keyboards/sofle/keymaps/helltm/keymap.c index c0fd5edb5ed..4624bc47000 100644 --- a/keyboards/sofle/keymaps/helltm/keymap.c +++ b/keyboards/sofle/keymaps/helltm/keymap.c @@ -188,7 +188,6 @@ static uint16_t held_shift = 0; /* timers */ uint32_t anim_timer = 0; -uint32_t anim_sleep = 0; /* current frame */ uint8_t current_frame = 0; @@ -280,35 +279,37 @@ static void render_luna(int LUNA_X, int LUNA_Y) { /* current status */ if (led_usb_state.caps_lock) { - oled_write_raw_P(bark[abs(1 - current_frame)], ANIM_SIZE); + oled_write_raw_P(bark[current_frame], ANIM_SIZE); } else if (isSneaking) { - oled_write_raw_P(sneak[abs(1 - current_frame)], ANIM_SIZE); + oled_write_raw_P(sneak[current_frame], ANIM_SIZE); } else if (current_wpm <= MIN_WALK_SPEED) { - oled_write_raw_P(sit[abs(1 - current_frame)], ANIM_SIZE); + oled_write_raw_P(sit[current_frame], ANIM_SIZE); } else if (current_wpm <= MIN_RUN_SPEED) { - oled_write_raw_P(walk[abs(1 - current_frame)], ANIM_SIZE); + oled_write_raw_P(walk[current_frame], ANIM_SIZE); } else { - oled_write_raw_P(run[abs(1 - current_frame)], ANIM_SIZE); + oled_write_raw_P(run[current_frame], ANIM_SIZE); } } +# if OLED_TIMEOUT > 0 + /* the animation prevents the normal timeout from occuring */ + if (last_input_activity_elapsed() > OLED_TIMEOUT && last_led_activity_elapsed() > OLED_TIMEOUT) { + oled_off(); + return; + } else { + oled_on(); + } +# endif + /* animation timer */ if (timer_elapsed32(anim_timer) > ANIM_FRAME_DURATION) { anim_timer = timer_read32(); animate_luna(); } - - /* this fixes the screen on and off bug */ - if (current_wpm > 0) { - oled_on(); - anim_sleep = timer_read32(); - } else if (timer_elapsed32(anim_sleep) > OLED_TIMEOUT) { - oled_off(); - } } /* KEYBOARD PET END */ diff --git a/keyboards/sofle/keymaps/noqmk/keymap.c b/keyboards/sofle/keymaps/noqmk/keymap.c index ae92a7ec7fc..29afbcb8421 100644 --- a/keyboards/sofle/keymaps/noqmk/keymap.c +++ b/keyboards/sofle/keymaps/noqmk/keymap.c @@ -167,7 +167,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #ifdef OLED_ENABLE bool show_lock = true; // this is used to display the lock icon and disable keypresses when the keyboard is locked -bool animate = true; // this variable is used to fix the flickering bug static void render_logo(void) { static const char PROGMEM no_qmk[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -230,7 +229,6 @@ static const char PROGMEM mac_logo[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 /* timers */ uint32_t anim_timer = 0; -uint32_t anim_sleep = 0; /* current frame */ uint8_t current_frame = 0; @@ -322,37 +320,37 @@ static void render_luna(int LUNA_X, int LUNA_Y) { /* current status */ if (led_usb_state.caps_lock) { - oled_write_raw_P(bark[abs(1 - current_frame)], ANIM_SIZE); + oled_write_raw_P(bark[current_frame], ANIM_SIZE); } else if (isSneaking) { - oled_write_raw_P(sneak[abs(1 - current_frame)], ANIM_SIZE); + oled_write_raw_P(sneak[current_frame], ANIM_SIZE); } else if (current_wpm <= MIN_WALK_SPEED) { - oled_write_raw_P(sit[abs(1 - current_frame)], ANIM_SIZE); + oled_write_raw_P(sit[current_frame], ANIM_SIZE); } else if (current_wpm <= MIN_RUN_SPEED) { - oled_write_raw_P(walk[abs(1 - current_frame)], ANIM_SIZE); + oled_write_raw_P(walk[current_frame], ANIM_SIZE); } else { - oled_write_raw_P(run[abs(1 - current_frame)], ANIM_SIZE); + oled_write_raw_P(run[current_frame], ANIM_SIZE); } } - /* animation timer, stops the animation logic when the oled is turned off */ - if (timer_elapsed32(anim_timer) > ANIM_FRAME_DURATION && animate == true) { +# if OLED_TIMEOUT > 0 + /* the animation prevents the normal timeout from occuring */ + if (last_input_activity_elapsed() > OLED_TIMEOUT && last_led_activity_elapsed() > OLED_TIMEOUT) { + oled_off(); + return; + } else { + oled_on(); + } +# endif + + /* animation timer */ + if (timer_elapsed32(anim_timer) > ANIM_FRAME_DURATION) { anim_timer = timer_read32(); animate_luna(); } - - /* this fixes the screen on and off bug by disabling the animation logic when the oled is off */ - if (current_wpm > 0) { - oled_on(); - anim_sleep = timer_read32(); - animate = true; - } else if (timer_elapsed32(anim_sleep) > OLED_TIMEOUT) { - oled_off(); - animate = false; - } } /* KEYBOARD PET END */ diff --git a/keyboards/sofle/keymaps/rgb_default/config.h b/keyboards/sofle/keymaps/rgb_default/config.h index cb5ff7210a3..a0341e5c6b9 100644 --- a/keyboards/sofle/keymaps/rgb_default/config.h +++ b/keyboards/sofle/keymaps/rgb_default/config.h @@ -83,7 +83,6 @@ #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_FRAMEBUFFER_EFFECTS // # 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) diff --git a/keyboards/spacetime/info.json b/keyboards/spacetime/info.json index 682342cede8..b34bfe8a6ce 100644 --- a/keyboards/spacetime/info.json +++ b/keyboards/spacetime/info.json @@ -58,10 +58,10 @@ {"label":"L30", "x":0, "y":3, "w":1}, {"label":"L34", "x":4, "y":3, "w":1}, - {"label":"L35", "x":5, "y":3, "w":2}, - {"label":"L36", "x":6, "y":3, "w":2}, - {"label":"R30", "x":7, "y":3, "w":2}, - {"label":"R31", "x":8, "y":3, "w":2}, + {"label":"L35", "x":5, "y":3, "h":2}, + {"label":"L36", "x":6, "y":3, "h":2}, + {"label":"R30", "x":7, "y":3, "h":2}, + {"label":"R31", "x":8, "y":3, "h":2}, {"label":"R32", "x":9, "y":3, "w":1}, {"label":"R36", "x":13, "y":3, "w":1} ] diff --git a/keyboards/splitkb/kyria/keymaps/drashna/rules.mk b/keyboards/splitkb/kyria/keymaps/drashna/rules.mk index e57dd11f13d..882a3fba092 100644 --- a/keyboards/splitkb/kyria/keymaps/drashna/rules.mk +++ b/keyboards/splitkb/kyria/keymaps/drashna/rules.mk @@ -18,7 +18,7 @@ ifeq ($(strip $(KEYBOARD)), splitkb/kyria/rev1/proton_c) SWAP_HANDS_ENABLE = yes LTO_ENABLE = no ENCODER_MAP_ENABLE = yes - AUTOCORRECTION_ENABLE = yes + AUTOCORRECT_ENABLE = yes CAPS_WORD_ENABLE = yes OLED_DRIVER = custom else diff --git a/keyboards/splitkb/kyria/keymaps/lms_ace01/config.h b/keyboards/splitkb/kyria/keymaps/lms_ace01/config.h new file mode 100644 index 00000000000..a64a49b87d9 --- /dev/null +++ b/keyboards/splitkb/kyria/keymaps/lms_ace01/config.h @@ -0,0 +1,55 @@ +/* Copyright 2021 Luis Moreno + * + * 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 + +// Set handedness by EEPROM +#define EE_HANDS + +// Tapping / One Shot settings +#define TAPPING_TOGGLE 2 +#define TAPPING_TERM 175 + +#define ONESHOT_TAP_TOGGLE 2 +#define ONESHOT_TIMEOUT 2250 + +// OLED settings -if applicable- +#ifdef OLED_DRIVER_ENABLE + #define OLED_DISPLAY_128X64 +#endif + +// Encoder settings -if applicable- +#ifdef ENCODER_ENABLE + #define ENCODER_RESOLUTION 4 +#endif + +// RGB settings -if applicable- +#ifdef RGBLIGHT_ENABLE + #undef RGBLIGHT_ANIMATIONS + + #define RGBLIGHT_EFFECT_BREATHING + + #define RGBLIGHT_HUE_STEP 2 + #define RGBLIGHT_SAT_STEP 2 + #define RGBLIGHT_VAL_STEP 2 + #define RGBLIGHT_LIMIT_VAL 230 + + #define RGBLIGHT_SLEEP + #define RGBLIGHT_SPLIT + + #define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_BREATHING + 2 + #define RGBLIGHT_DEFAULT_HUE 201 + #define RGBLIGHT_DEFAULT_SAT 255 +#endif diff --git a/keyboards/splitkb/kyria/keymaps/lms_ace01/keymap.c b/keyboards/splitkb/kyria/keymaps/lms_ace01/keymap.c new file mode 100644 index 00000000000..20d4c809b61 --- /dev/null +++ b/keyboards/splitkb/kyria/keymaps/lms_ace01/keymap.c @@ -0,0 +1,852 @@ +/* Copyright 2021 Luis Moreno + * + * 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 "keymap_spanish.h" + +// Insert key state definition (Insert/Overwrite Mode) +static bool ins_state = true; + +// Git Commands +static const char *sendstring_commands[] = { + // Config + "config //global", + + // Create + "init", + "clone", + + // Local changes + "status", + "diff", + "add", + "rm", + "mv", + "commit", + "stash", + "reset", + "revert", + + // Branches and Tags + "branch /b @", + "switch", + "checkout", + "tag", + + // Update & Publish + "remote", + "fetch", + "pull", + "push", + + // Merge & Rebase + "merge", + "rebase", + + // Commit history + "logg" +}; + +// Layers definition +enum layers { + _QWERTY_ES, + _COLEMAK_ES, + _SYMBOL, + _FN_NUMPAD, + _NAVIGATION, + _GIT_CMDS, + _SETTINGS +}; + +// Encoder Modes definition +#ifdef ENCODER_ENABLE +#define ENC_ALT_MAX_TIME 1250 + +typedef enum { + ENC_MODE_CHAR_LINE, + ENC_MODE_WORD_PAGE, + ENC_MODE_TABBING, + ENC_MODE_VOLUME, + ENC_MODE_LAST +} encoder_mode_t; + +static encoder_mode_t enc_mode; + +void encoder_cycle_mode(bool up); +#endif + +// Tap Dance declarations/definitions +#ifdef TAP_DANCE_ENABLE +#define ACTION_TAP_DANCE_FN_ADVANCED_USER(user_fn_on_each_tap, user_fn_on_dance_finished, user_fn_on_dance_reset, user_user_data) \ + { .fn = {user_fn_on_each_tap, user_fn_on_dance_finished, user_fn_on_dance_reset}, .user_data = (void *)user_user_data, } + +#define MAX_MOD 3 // Max number of modifiers: 0-Base, 1-Shift, 2-Ctrl + +typedef enum { + TD_NONE, + TD_UNKNOWN, + TD_SINGLE_TAP, + TD_SINGLE_HOLD, + TD_DOUBLE_TAP +} td_state_t; + +typedef struct { + bool is_press_action; + td_state_t state; +} td_tap_t; + +typedef struct { + uint16_t keycode; // Keycode: + // - Tap if keycode != KC_NO + uint8_t layer[MAX_MOD]; // Layer with modifiers (0-Base, 1-Shift, 2-Ctrl): + // - Tap if keycode == KC_NO + // - Single Hold: Activate while holding + // - Double Tap: (Un)lock Layer +} td_user_data_t; + +enum td_actions { + TAB, + ESC, + SPC, + ENT, + LWR, + RAI +}; + +static td_tap_t td_tap_state = { + .is_press_action = true, + .state = TD_NONE +}; + +td_state_t td_current (qk_tap_dance_state_t *state); +void td_kc_ly_finished(qk_tap_dance_state_t *state, void *user_data); +void td_kc_ly_reset (qk_tap_dance_state_t *state, void *user_data); + +qk_tap_dance_action_t tap_dance_actions[] = { + [TAB] = ACTION_TAP_DANCE_DOUBLE(KC_TAB, KC_CAPS), + [ESC] = ACTION_TAP_DANCE_FN_ADVANCED_USER(NULL, td_kc_ly_finished, td_kc_ly_reset, \ + &((td_user_data_t) { KC_ESC, { _NAVIGATION, _QWERTY_ES, _QWERTY_ES }})), + [SPC] = ACTION_TAP_DANCE_FN_ADVANCED_USER(NULL, td_kc_ly_finished, td_kc_ly_reset, \ + &((td_user_data_t) { KC_SPC, { _SYMBOL , _QWERTY_ES, _QWERTY_ES }})), + [ENT] = ACTION_TAP_DANCE_FN_ADVANCED_USER(NULL, td_kc_ly_finished, td_kc_ly_reset, \ + &((td_user_data_t) { KC_ENT, { _SYMBOL , _QWERTY_ES, _QWERTY_ES }})), + [LWR] = ACTION_TAP_DANCE_FN_ADVANCED_USER(NULL, td_kc_ly_finished, td_kc_ly_reset, \ + &((td_user_data_t) { KC_NO, { _NAVIGATION, _GIT_CMDS , _QWERTY_ES }})), + [RAI] = ACTION_TAP_DANCE_FN_ADVANCED_USER(NULL, td_kc_ly_finished, td_kc_ly_reset, \ + &((td_user_data_t) { KC_NO, { _FN_NUMPAD , _GIT_CMDS , _QWERTY_ES }})) +}; +#endif + +// Keycode definitions +enum custom_keycodes { + CK_QUOT = SAFE_RANGE, // Single/Double quote + CK_BSDI, // Backspace/Delete/Insert + CK_ENCM, // Encoder Mode (-) + CK_ENCP, // Encoder Mode (+) + CK_LYDF, // Activate Default Layer + G_CONF, // Git Commands + G_INIT, + G_CLONE, + G_STAT, + G_DIFF, + G_ADD, + G_RM, + G_MV, + G_COMM, + G_STASH, + G_RESET, + G_REVER, + G_BRANC, + G_SWTCH, + G_CHECK, + G_TAG, + G_REMOT, + G_FETCH, + G_PULL, + G_PUSH, + G_MERGE, + G_REBAS, + G_LOG +}; + +#define LY_QWES DF(_QWERTY_ES) +#define LY_CLES DF(_COLEMAK_ES) + +#ifdef TAP_DANCE_ENABLE + #define TD_TBCP TD(TAB) + #define TD_ESSY TD(ESC) + #define TD_SPSY TD(SPC) + #define TD_ENSY TD(ENT) + #define TD_LOWR TD(LWR) + #define TD_RAIS TD(RAI) +#else + #define TD_TBCP MT(MOD_LSFT, KC_TAB) + #define TD_ESSY LT(_SYMBOL , KC_ESC) + #define TD_SPSY KC_SPC + #define TD_ENSY KC_ENT + #define TD_LOWR TT(_NAVIGATION) + #define TD_RAIS TT(_SYMBOL) +#endif + +#define MO_LSFT OSM(MOD_LSFT) +#define MO_LCTL OSM(MOD_LCTL) +#define MO_LALT OSM(MOD_LALT) + +#define MT_RGUI MT(MOD_RGUI, KC_LEFT) +#define MT_RALT MT(MOD_RALT, KC_DOWN) +#define MT_RCTL MT(MOD_RCTL, KC_UP) +#define MT_RSFT MT(MOD_RSFT, KC_RGHT) + +// Keymap definitions +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +// clang-format off +/* + * Basic characters (QWERTY ES) + * + * ,-------------------------------------------. ,-------------------------------------------. + * |Esc/LNav| Q | W | E | R | T | | Y | U | I | O | P |BS/Dl/In| + * |--------+------+------+------+------+------| |------+------+------+------+------+--------| + * |Tab/Caps| A | S | D | F | G | | H | J | K | L | Ñ | ´ ¨ | + * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| + * |EncMode-| Z | X | C | V | B | LGit | | | | LGit | N | M | , ; | . : | - _ |EncMode+| + * `-------------------------------------------| LNav | Space| | Enter|LFnNum|-------------------------------------------' + * +--------------------+------+ / | | / +------+--------------------+ + * | Shift| Ctrl | Alt | GUI | LSym | | LSym | GUI | AltGr| Ctrl | Shift| + * | | | | | | | | <- | v | ^ | -> | + * `----------------------------------' `----------------------------------' + */ + [_QWERTY_ES] = LAYOUT( + TD_ESSY, ES_Q, ES_W, ES_E, ES_R, ES_T, ES_Y, ES_U, ES_I, ES_O, ES_P, CK_BSDI, + TD_TBCP, ES_A, ES_S, ES_D, ES_F, ES_G, ES_H, ES_J, ES_K, ES_L, ES_NTIL, ES_ACUT, + CK_ENCM, ES_Z, ES_X, ES_C, ES_V, ES_B, TD_LOWR, XXXXXXX, XXXXXXX, TD_RAIS, ES_N, ES_M, ES_COMM, ES_DOT, ES_MINS, CK_ENCP, + MO_LSFT, MO_LCTL, MO_LALT, KC_LGUI, TD_SPSY, TD_ENSY, MT_RGUI, MT_RALT, MT_RCTL, MT_RSFT + ), +/* + * Basic characters (COLEMAK ES) + * + * ,-------------------------------------------. ,-------------------------------------------. + * |Esc/LNav| Q | W | F | P | G | | J | L | U | Y | Ñ |BS/Dl/In| + * |--------+------+------+------+------+------| |------+------+------+------+------+--------| + * |Tab/Caps| A | R | S | T | D | | H | N | E | I | O | ´ ¨ | + * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| + * |EncMode-| Z | X | C | V | B | LGit | | | | LGit | K | M | , ; | . : | - _ |EncMode+| + * `-------------------------------------------| LNav | Space| | Enter|LFnNum|-------------------------------------------' + * +--------------------+------+ / | | / +------+--------------------+ + * | Shift| Ctrl | Alt | GUI | LSym | | LSym | GUI | AltGr| Ctrl | Shift| + * | | | | | | | | <- | v | ^ | -> | + * `----------------------------------' `----------------------------------' + */ + [_COLEMAK_ES] = LAYOUT( + TD_ESSY, ES_Q, ES_W, ES_F, ES_P, ES_G, ES_J, ES_L, ES_U, ES_Y, ES_NTIL, CK_BSDI, + TD_TBCP, ES_A, ES_R, ES_S, ES_T, ES_D, ES_H, ES_N, ES_E, ES_I, ES_O, ES_ACUT, + CK_ENCM, ES_Z, ES_X, ES_C, ES_V, ES_B, TD_LOWR, XXXXXXX, XXXXXXX, TD_RAIS, ES_K, ES_M, ES_COMM, ES_DOT, ES_MINS, CK_ENCP, + MO_LSFT, MO_LCTL, MO_LALT, KC_LGUI, TD_SPSY, TD_ENSY, MT_RGUI, MT_RALT, MT_RCTL, MT_RSFT + ), +/* + * Symbols + * + * ,-------------------------------------------. ,-------------------------------------------. + * | | 1 ! | 2 " | 3 · | 4 $ | 5 % | | 6 & | 7 / | 8 ( | 9 ) | 0 = | | + * |--------+------+------+------+------+------| |------+------+------+------+------+--------| + * | | ¡ ¿ | ' " | º ª | \ | | ¡ | | ~ $ | + * | - _ | / | ' ? | ` ^ | + * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| + * | | @ ⅛ | { | ( | [ ° | < > | | | | | | > | ] ¯ | ) | } ˘ | # £ | | + * `----------------------+------+------+------+------+ | | +------+------+------+------+----------------------' + * | | | | | | | | | | | | + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + */ + [_SYMBOL] = LAYOUT( + _______, ES_1, ES_2, ES_3, ES_4, ES_5, ES_6, ES_7, ES_8, ES_9, ES_0, _______, + _______, ES_IEXL, CK_QUOT, ES_MORD, ES_BSLS, ES_PIPE, ES_TILD, ES_PLUS, ES_MINS, ES_SLSH, ES_QUOT, ES_GRV, + _______, ES_AT, ES_LCBR, ES_LPRN, ES_LBRC, ES_LABK, _______, XXXXXXX, XXXXXXX, _______, ES_RABK, ES_RBRC, ES_RPRN, ES_RCBR, ES_HASH, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +/* + * Function keys, NumPad keys + * + * ,-------------------------------------------. ,-------------------------------------------. + * | | F1 | F2 | F3 | F4 | | | , ; | 7 / | 8 ( | 9 ) | * | | + * |--------+------+------+------+------+------| |------+------+------+------+------+--------| + * | | F5 | F6 | F7 | F8 | | | . : | 4 $ | 5 % | 6 & | - _ | + * | + * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| + * | | F9 | F10 | F11 | F12 | | | | | | | 0 = | 1 ! | 2 " | 3 · | / | | + * `----------------------+------+------+------+------+ | | +------+------+------+------+----------------------' + * | | | | | | | | | | | | + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + */ + [_FN_NUMPAD] = LAYOUT( + _______, KC_F1, KC_F2, KC_F3, KC_F4, XXXXXXX, ES_COMM, ES_7, ES_8, ES_9, ES_ASTR, _______, + _______, KC_F5, KC_F6, KC_F7, KC_F8, XXXXXXX, ES_DOT, ES_4, ES_5, ES_6, ES_MINS, ES_PLUS, + _______, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, _______, XXXXXXX, XXXXXXX, _______, ES_0, ES_1, ES_2, ES_3, ES_SLSH, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +/* + * Navigation (Mouse deactivated for space saving) + * + * ,-------------------------------------------. ,-------------------------------------------. + * | | | MBt1 | MUp | MBt2 | | | PgUp | Home | Up | End | PgUp | | + * |--------+------+------+------+------+------| |------+------+------+------+------+--------| + * | | Menu | MLeft| MDown|MRight| | | PgDn | Left | Down | Right| PgDn | | + * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| + * | | | | | | | | | | | | |PrtScr|ScrLck| Pause| | | + * `----------------------+------+------+------+------+ | | +------+------+------+------+----------------------' + * | | | | | | | | | | | | + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + */ + [_NAVIGATION] = LAYOUT( + _______, XXXXXXX, KC_BTN1, KC_MS_U, KC_BTN2, XXXXXXX, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_PGUP, _______, + _______, KC_APP, KC_MS_L, KC_MS_D, KC_MS_R, XXXXXXX, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, _______, XXXXXXX, KC_PSCR, KC_SLCK, KC_PAUS, XXXXXXX, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +/* + * Git Commands + * + * ,-------------------------------------------. ,-------------------------------------------. + * | |Config| | | Init | | | | Clone| | | | | + * |--------+------+------+------+------+------| |------+------+------+------+------+--------| + * | | Diff | Add | Rm | Mv | | |Remote| Fetch| Pull | Push | Merge| Rebase | + * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| + * | |Commit| Stash| Reset|Revert|Status| | | | | | Log |Branch|Switch|ChkOut| Tag | | + * `----------------------+------+------+------+------+ | | +------+------+------+------+----------------------' + * | | | | | | | | | | | | + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + */ + [_GIT_CMDS] = LAYOUT( + _______, G_CONF, XXXXXXX, XXXXXXX, G_INIT, XXXXXXX, XXXXXXX, G_CLONE, XXXXXXX, XXXXXXX, XXXXXXX, _______, + _______, G_DIFF, G_ADD, G_RM, G_MV, XXXXXXX, G_REMOT, G_FETCH, G_PULL, G_PUSH, G_MERGE, G_REBAS, + _______, G_COMM, G_STASH, G_RESET, G_REVER, G_STAT, _______, XXXXXXX, XXXXXXX, _______, G_LOG, G_BRANC, G_SWTCH, G_CHECK, G_TAG, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +/* + * Settings (Default Layer, RGB, Media) + * + * ,-------------------------------------------. ,-------------------------------------------. + * | |QWE_ES|CLM_ES| | | | | | | Vol+ | | | | + * |--------+------+------+------+------+------| |------+------+------+------+------+--------| + * | | TOG | HUE+ | SAT+ | VAL+ | MOD | | Mute | Prev | Play | Next | | | + * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| + * | LDef | | HUE- | SAT- | VAL- | RMOD | | | | | | | | Vol- | | | LDef | + * `----------------------+------+------+------+------+ | | +------+------+------+------+----------------------' + * | | | | | | | | | | | | + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + */ + [_SETTINGS] = LAYOUT( + _______, LY_QWES, LY_CLES, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_VOLU, XXXXXXX, XXXXXXX, _______, + _______, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, RGB_MOD, KC_MUTE, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, XXXXXXX, + CK_LYDF, XXXXXXX, RGB_HUD, RGB_SAD, RGB_VAD, RGB_RMOD,_______, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, KC_VOLD, XXXXXXX, XXXXXXX, CK_LYDF, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +// /* +// * Layer template +// * +// * ,-------------------------------------------. ,-------------------------------------------. +// * | | | | | | | | | | | | | | +// * |--------+------+------+------+------+------| |------+------+------+------+------+--------| +// * | | | | | | | | | | | | | | +// * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------| +// * | | | | | | | | | | | | | | | | | | +// * `----------------------+------+------+------+------+ | | +------+------+------+------+----------------------' +// * | | | | | | | | | | | | +// * | | | | | | | | | | | | +// * `----------------------------------' `----------------------------------' +// */ +// [_LAYERINDEX] = LAYOUT( +// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, +// _______, _______, _______, _______, _______, _______, _______, XXXXXXX, XXXXXXX, _______, _______, _______, _______, _______, _______, _______, +// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +// ), +}; +// clang-format on + +/* + * INITIALIZING FUNCTIONS + */ +void matrix_init_user(void) { +#ifdef ENCODER_ENABLE + enc_mode = ENC_MODE_CHAR_LINE; +#endif +} + +/* + * LAYER FUNCTIONS + */ +layer_state_t layer_state_set_user(layer_state_t state) { + // Activate Settings layer when both Symbol and Navigation layers are on + return update_tri_layer_state(state, _SYMBOL, _NAVIGATION, _SETTINGS); +} + +/* + * MACRO FUNCTIONS + */ +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + // Get current modifier status (Normal and One Shot) + uint8_t mod_state = get_mods(); + uint8_t osm_state = get_oneshot_mods(); + + // Process keycode + switch (keycode) { + case CK_QUOT: // Single/Double Quote + if (record->event.pressed) { + if ((mod_state | osm_state) & MOD_MASK_SHIFT) { + register_code(ES_2); // Shift(2) -> " + } else { + register_code(ES_QUOT); // Single Quote -> ' + } + } else { + if ((mod_state | osm_state) & MOD_MASK_SHIFT) { + unregister_code(ES_2); // Shift(2) -> " + } else { + unregister_code(ES_QUOT); // Single Quote -> ' + } + } + + return false; + break; + case CK_BSDI: { // Backspace/Delete/Insert + static bool delkey_registered = false; + + if (record->event.pressed) { + // Ctrl -> Insert/Overwrite Mode + // Shift -> Delete + // Normal -> Backspace + if ((mod_state | osm_state) & MOD_MASK_CTRL) { + del_mods(MOD_MASK_CTRL); + del_oneshot_mods(MOD_MASK_CTRL); + + tap_code(KC_INS); + + set_mods(mod_state); + set_oneshot_mods(osm_state); + + ins_state = !ins_state; + } else if ((mod_state | osm_state) & MOD_MASK_SHIFT) { + delkey_registered = true; + + del_mods(MOD_MASK_SHIFT); + del_oneshot_mods(MOD_MASK_SHIFT); + + register_code(KC_DEL); + + set_mods(mod_state); + set_oneshot_mods(osm_state); + } else { + register_code(KC_BSPC); + } + } else { + // Unregister keycode sent after the release of CK_BSDI + if (delkey_registered) { + unregister_code(KC_DEL); + delkey_registered = false; + } else { + unregister_code(KC_BSPC); + } + } + + return false; + } + break; + case CK_LYDF: // De-activate all layers and activate Default layer + layer_move(get_highest_layer(default_layer_state)); + + return false; + break; + case G_CONF ... G_LOG: + if (record->event.pressed) { + del_mods(MOD_MASK_SHIFT); + del_oneshot_mods(MOD_MASK_SHIFT); + + SEND_STRING("git "); + send_string(sendstring_commands[keycode - G_CONF]); + + set_mods(mod_state); + set_oneshot_mods(osm_state); + } + + break; +#ifdef ENCODER_ENABLE + case CK_ENCM: // Encoder Mode (-) + if (record->event.pressed) { + encoder_cycle_mode(false); + } + + break; + case CK_ENCP: // Encoder Mode (+) + if (record->event.pressed) { + encoder_cycle_mode(true); + } + + break; +#endif + } + + return true; +}; + +/* + * TAP DANCE FUNCTIONS + */ +#ifdef TAP_DANCE_ENABLE +td_state_t td_current(qk_tap_dance_state_t *state) { + switch (state->count) { + case 1: + return ((!state->pressed) ? TD_SINGLE_TAP : TD_SINGLE_HOLD); + case 2: + return TD_DOUBLE_TAP; + default: + return TD_UNKNOWN; + } +} + +void td_kc_ly_finished(qk_tap_dance_state_t *state, void *user_data) { + td_tap_state.state = td_current(state); + uint16_t keycode = ((td_user_data_t *)user_data)->keycode; + uint8_t *layer_arr = ((td_user_data_t *)user_data)->layer; + uint8_t layer_sel = *(layer_arr + 0); + + // Get current modifier status (Normal and One Shot) and select layer + uint8_t mod_state = get_mods(); + uint8_t osm_state = get_oneshot_mods(); + + if ((mod_state | osm_state) & MOD_MASK_SHIFT) { + if (*(layer_arr + 1) > _QWERTY_ES) { + layer_sel = *(layer_arr + 1); + } + } + + if ((mod_state | osm_state) & MOD_MASK_CTRL) { + if (*(layer_arr + 2) > _QWERTY_ES) { + layer_sel = *(layer_arr + 2); + } + } + + switch (td_tap_state.state) { + case TD_NONE: + case TD_UNKNOWN: + break; + case TD_SINGLE_TAP: + // Send keycode if available + // Otherwise, Lock Layer (Base/Shift/Ctrl) and Unlock rest of selectable layers + if (keycode != KC_NO) { + tap_code(keycode); + } else { + uint8_t layer_aux; + + for (layer_aux = _GIT_CMDS; layer_aux >= _SYMBOL; layer_aux--) { + if ((layer_aux == layer_sel) && (!layer_state_is(layer_aux))) { + layer_on(layer_aux); + } else { + layer_off(layer_aux); + } + } + } + + break; + case TD_SINGLE_HOLD: + // Lock Layer (Base/Shift/Ctrl) while Single Hold on the way + layer_on(layer_sel); + break; + case TD_DOUBLE_TAP: + // (Un)lock Layer (Base/Shift/Ctrl) + if (layer_state_is(layer_sel)) { + layer_off(layer_sel); + } else { + layer_on(layer_sel); + } + + break; + } +} + +void td_kc_ly_reset(qk_tap_dance_state_t *state, void *user_data) { + uint8_t *layer_arr = ((td_user_data_t *)user_data)->layer; + + if (td_tap_state.state == TD_SINGLE_HOLD) { + // Unlock any Layer (Base/Shift/Ctrl) when Single Hold finalizes + uint8_t i; + uint8_t layer_aux; + + for (i = 0; i < MAX_MOD; i++) { + layer_aux = *(layer_arr + i); + + if ((layer_aux > _QWERTY_ES)) { + layer_off(layer_aux); + } + } + } + + td_tap_state.state = TD_NONE; +} +#endif + +/* + * OLED FUNCTIONS + */ +#ifdef OLED_DRIVER_ENABLE +static void render_kyria_logo(void) { + static const char PROGMEM kyria_logo[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xe0, 0xf0, 0x78, 0x38, 0x1c, 0x1e, 0x0e, + 0x8e, 0x86, 0x86, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0x86, + 0x86, 0x8e, 0x0e, 0x1e, 0x1c, 0x38, 0x78, 0xf0, 0xe0, 0xe0, 0xc0, 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, 0xe0, 0xf0, 0xfc, 0x3e, 0x0f, 0x07, 0x83, 0xe1, 0xf0, 0xf8, 0xbc, 0x9e, 0x8f, 0x87, + 0x87, 0x83, 0x81, 0x81, 0xe0, 0x78, 0x1f, 0x07, 0xff, 0xff, 0x07, 0x1f, 0x78, 0xe0, 0x81, 0x81, + 0x83, 0x87, 0x87, 0x8f, 0x9e, 0xbc, 0xf8, 0xf0, 0xe1, 0x83, 0x07, 0x0f, 0x3e, 0xfc, 0xf0, 0xe0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xfc, 0xff, 0x03, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x07, 0x07, 0x3f, 0x73, 0xc7, 0x8f, 0x8d, + 0x89, 0x99, 0x99, 0xb1, 0xf7, 0xee, 0xf8, 0xf0, 0xff, 0xff, 0xf0, 0xf8, 0xee, 0xf7, 0xb1, 0x99, + 0x99, 0x89, 0x8d, 0x8f, 0xc7, 0x73, 0x3f, 0x07, 0x07, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x03, 0xff, + 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xe0, 0xe0, 0xfc, 0xce, 0xe3, 0xf1, 0xb1, + 0x91, 0x99, 0x99, 0x8d, 0xef, 0x77, 0x1f, 0x0f, 0xff, 0xff, 0x0f, 0x1f, 0x77, 0xef, 0x8d, 0x99, + 0x99, 0x91, 0xb1, 0xf1, 0xe3, 0xce, 0xfc, 0xe0, 0xe0, 0xff, 0x3f, 0x00, 0x00, 0x00, 0xc0, 0xff, + 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x07, 0x0f, 0x3f, 0x7c, 0xf0, 0xe0, 0xc1, 0x87, 0x0f, 0x1f, 0x3d, 0x79, 0xf1, 0xe1, + 0xe1, 0xc1, 0x81, 0x81, 0x07, 0x1e, 0xf8, 0xe0, 0xff, 0xff, 0xe0, 0xf8, 0x1e, 0x07, 0x81, 0x81, + 0xc1, 0xe1, 0xe1, 0xf1, 0x79, 0x3d, 0x1f, 0x0f, 0x87, 0xc1, 0xe0, 0xf0, 0x7c, 0x3f, 0x0f, 0x07, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x03, 0x07, 0x07, 0x0f, 0x1e, 0x1c, 0x38, 0x78, 0x70, + 0x71, 0x61, 0x61, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0x61, + 0x61, 0x71, 0x70, 0x78, 0x38, 0x1c, 0x1e, 0x0f, 0x07, 0x07, 0x03, 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, 0xc0, 0xfe, 0xfe, 0xfe, 0xc6, 0xe0, 0xf0, 0x70, 0x30, 0x10, 0x00, 0x70, + 0xf0, 0xf0, 0x80, 0x00, 0xc0, 0xf0, 0xf0, 0x70, 0x10, 0xc0, 0xf0, 0xf0, 0xf0, 0x70, 0x30, 0x30, + 0x30, 0xc0, 0xf6, 0xf6, 0xf6, 0x06, 0x00, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xf0, 0xf0, 0xe0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x10, 0x1f, 0x1f, 0x1f, 0x03, 0x0f, 0x1f, 0x1e, 0x18, 0x10, 0x00, 0xc0, 0xc0, + 0xe7, 0xff, 0x7f, 0x3f, 0x0f, 0x03, 0x01, 0x00, 0x18, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x00, + 0x18, 0x1f, 0x1f, 0x1f, 0x00, 0x0e, 0x1f, 0x1f, 0x1f, 0x19, 0x0d, 0x1f, 0x1f, 0x1f, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }; + + oled_write_raw_P(kyria_logo, sizeof(kyria_logo)); +} + +static void render_qmk_logo(void) { + static const char PROGMEM qmk_logo[] = { + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, + 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, + 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, + 0 + }; + + oled_write_P(qmk_logo, false); +} + +static void render_status(void) { + // Get current modifier status (Normal and One Shot) + uint8_t mod_state = get_mods(); + uint8_t osm_state = get_oneshot_mods(); + uint8_t osl_state = get_oneshot_locked_mods(); + bool caps_lock = host_keyboard_led_state().caps_lock; + + // QMK Logo + render_qmk_logo(); + +#ifdef ENCODER_ENABLE + // Host Keyboard Encoder Mode + switch (enc_mode) { + case ENC_MODE_CHAR_LINE: + oled_write_P(PSTR("ENC \020 CHAR/LINE\n"), false); + break; + case ENC_MODE_WORD_PAGE: + oled_write_P(PSTR("ENC \020 WORD/PAGE\n"), false); + break; + case ENC_MODE_TABBING: + oled_write_P(PSTR("ENC \020 TABBING\n"), false); + break; + case ENC_MODE_VOLUME: + case ENC_MODE_LAST: + oled_write_P(PSTR("ENC \020 VOLUME\n"), false); + break; + } +#else + oled_write_P(PSTR("\n"), false); +#endif + + // Host Keyboard Layer Status + oled_write_P(PSTR("\n"), false); + + switch (get_highest_layer(layer_state)) { + case _QWERTY_ES: + oled_write_P(PSTR("L00 \020 QWERTY (ES)\n"), false); + break; + case _COLEMAK_ES: + oled_write_P(PSTR("L00 \020 COLEMAK (ES)\n"), false); + break; + case _SYMBOL: + oled_write_P(PSTR("L01 \020 SYMBOLS\n"), false); + break; + case _FN_NUMPAD: + oled_write_P(PSTR("L02 \020 FN / NUMPAD\n"), false); + break; + case _NAVIGATION: + oled_write_P(PSTR("L03 \020 NAVIGATION\n"), false); + break; + case _GIT_CMDS: + oled_write_P(PSTR("L04 \020 GIT COMMANDS\n"), false); + break; + case _SETTINGS: + oled_write_P(PSTR("L05 \020 SETTINGS\n"), false); + break; + } + + // Host Keyboard Locked Modifiers Status + oled_write_P((osl_state & MOD_MASK_SHIFT) ? PSTR("LCK ") : PSTR(" ") , false); + oled_write_P((osl_state & MOD_MASK_CTRL) ? PSTR("LCK ") : PSTR(" ") , false); + oled_write_P((osl_state & MOD_MASK_ALT) ? PSTR("LCK ") : PSTR(" ") , false); + oled_write_P( PSTR(" ") , false); + oled_write_P((caps_lock) ? PSTR(" CAPS") : PSTR(" "), false); + + // Host Keyboard Modifiers Status + oled_write_P(((mod_state | osm_state) & MOD_MASK_SHIFT) ? PSTR("SHF ") : PSTR(" ") , false); + oled_write_P(((mod_state | osm_state) & MOD_MASK_CTRL) ? PSTR("CTR ") : PSTR(" ") , false); + oled_write_P(((mod_state | osm_state) & MOD_MASK_ALT) ? PSTR("ALT ") : PSTR(" ") , false); + oled_write_P(((mod_state | osm_state) & MOD_MASK_GUI) ? PSTR("GUI ") : PSTR(" ") , false); + oled_write_P((ins_state) ? PSTR(" INS") : PSTR(" OWR"), false); +} + +static void render_settings(void) { +#ifdef RGBLIGHT_ENABLE + char rgb_str[4]; + + oled_write_P(PSTR("\n\n"), false); + + oled_write_P(PSTR("\020H: "), false); + itoa(rgblight_get_hue(), rgb_str, 10); + oled_write_ln(rgb_str, false); + + oled_write_P(PSTR("\020S: "), false); + itoa(rgblight_get_sat(), rgb_str, 10); + oled_write_ln(rgb_str, false); + + oled_write_P(PSTR("\020V: "), false); + itoa(rgblight_get_val(), rgb_str, 10); + oled_write_ln(rgb_str, false); +#else + oled_write_P(PSTR("\n\n\n\n\n"), false); +#endif + + switch (get_highest_layer(default_layer_state)) { + case _QWERTY_ES: + oled_write_ln_P(PSTR(" \020QWERTY (ES)") , false); + break; + case _COLEMAK_ES: + oled_write_P (PSTR(" \020COLEMAK (ES)"), false); + break; + } + +#ifdef RGBLIGHT_ENABLE + oled_write_ln_P(PSTR(" RGB DEFAULT"), false); + oled_write_ln_P(PSTR("SETTINGS LAYER "), false); +#else + oled_write_ln_P(PSTR(" DEFAULT"), false); + oled_write_ln_P(PSTR(" LAYER "), false); +#endif +} + +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + return OLED_ROTATION_180; +} + +void oled_task_user(void) { + if (is_keyboard_master()) { // Main screen: Renders keyboard state (layer, modifiers) / RGB settings + if (get_highest_layer(layer_state) != _SETTINGS) { + render_status(); + } else { + render_settings(); + } + } else { // Auxiliar screen: Renders Kyria logo with scroll + render_kyria_logo(); + oled_scroll_right(); + } +} +#endif + +/* + * ENCODER FUNCTIONS + */ +#ifdef ENCODER_ENABLE +void encoder_cycle_mode(bool up) { + if (enc_mode == 0 && !up) { + enc_mode = ENC_MODE_LAST - 1; + } else { + enc_mode = (enc_mode + (up ? +1 : -1)) % ENC_MODE_LAST; + } +} + +bool encoder_update_user(uint8_t index, bool clockwise) { + // Select encoder mode + switch (enc_mode) { + case ENC_MODE_CHAR_LINE: + // Left Encoder: Character Left/Right. Right Encoder: Line Up/Down. + tap_code(!clockwise ? (index == 0 ? KC_LEFT : KC_UP): (index == 0 ? KC_RGHT : KC_DOWN)); + break; + case ENC_MODE_WORD_PAGE: + // Left Encoder: Word Left/Right. Right Encoder: Page Up/Down. + tap_code16(!clockwise ? (index == 0 ? C(KC_LEFT) : KC_PGUP): (index == 0 ? C(KC_RGHT) : KC_PGDN)); + break; + case ENC_MODE_TABBING: + // Left Encoder: Navigation Tabbing. Right Encoder: Editor Tabbing. + tap_code16(!clockwise ? (index == 0 ? S(C(KC_TAB)) : C(KC_PGUP)): (index == 0 ? C(KC_TAB) : C(KC_PGDN))); + break; + case ENC_MODE_VOLUME: + case ENC_MODE_LAST: + // Volume control + tap_code(clockwise ? KC_VOLU : KC_VOLD); + break; + } + + return true; +} +#endif diff --git a/keyboards/splitkb/kyria/keymaps/lms_ace01/readme.md b/keyboards/splitkb/kyria/keymaps/lms_ace01/readme.md new file mode 100644 index 00000000000..aae1260ffb6 --- /dev/null +++ b/keyboards/splitkb/kyria/keymaps/lms_ace01/readme.md @@ -0,0 +1,92 @@ +# AceVice One's Keymap for [Kyria](https://github.com/splitkb/kyria) + +## Introduction + +This is my first personal keymap for Kyria with a little bunch of *steroids*. + +The hardware build implements 2 rotatory encoders and 2 OLED displays. + +## Features + +These are some of the generic features built in: + +- Two alternative default character distributions (**QWERTY**, **COLEMAK**) with *Spanish* layout. +- Layer selection on some keys (**Esc**, **Lower**, **Space**, **Enter**, **Raise**). +- Multiple selectable layers: + - **Symbols**: Numbers on top row, common programming symbols (curly, square and angle brackets, parentheses, at and hash) on bottom row with symmetric distribution (open on left, close on right). + - **Function**/**Numpad**: Function keys on left side, Number Pad on right side. + - **Navigation**: Mouse keys on left side, Navigation keys on right side. + - **Git commands**: The most common and useful Git commands at your fingertips. + - **Settings**: Select default distribution, Media keys, RGB settings. +- Symmetric design -left/right side- for modifiers (**Shift**, **Ctrl**, **Alt** and **GUI**). +- **Arrows**/**Modifiers** on same keys (right side). +- **Tab**/**Caps Lock** key. +- **Backspace**/**Delete** with **Insert**/**Overwrite** selectable mode on same key. +- **Single/Double Quote** (`' "`) on same key as English layouts. +- Handedness set by EEPROM. +- Mouse Keys has been disabled by default for space saving (Pro Micro controller limit). + +Some of the more specific features are described below: + +### Tap Dance + +- Use of `ACTION_TAP_DANCE_DOUBLE()` for **Tab**/**Caps Lock** key. +- Implementation of new `ACTION_TAP_DANCE_FN_ADVANCED_USER()` function: + - Any user data can be sent to personalized functions. + - Generalized design makes action reuse easy. + - User can tap a keycode and/or layer selection (single tap, single hold, double tap) depending on modifiers (**None**, **Shift**, **Ctrl**). + +### OLEDs + +Master-side OLED displays dynamic data: + +- Current layer. +- Modifiers state (lock mode included). +- Caps Lock state. +- Insert/Overwrite state. + +Slave-side OLED displays horizontal scrolling Kyria logo. + +### Rotary Encoders + +Encoders click buttons for mode changing. Supported modes are: + +- Character Left / Right, Line Up / Down. +- Word Left / Right, Page Up / Down. +- Tabbing Left / Right (Navigator, Editor). +- Volume Up / Down. + +## TODO list + +- [x] Show modifiers in OLED when triggered as One Shot keys +- [x] Manage Backspace key with dual funcion (Delete when shifted) +- [x] OLED modifier status bar one line down +- [x] Show INS/OWR Mode in right OLED +- [x] Show RGB Led Settings on OLED when Settings layer on +- [x] Show Locked Modifiers (Shift, Control, Alt, GUI) +- [x] Arrow keys on right modifier keys +- [x] Improve Esc/Layer Symbol: Tap -> Keycode, Hold -> Momentary Layer, Double Tap -> Toggler Layer +- [x] Check transparent keys on all layers (avoid collateral effects) +- [x] Add "Print Screen" / "Scroll Lock" / "Pause Break" keys on Navigation layer +- [x] Add Basic characters layers: COLEMAK (ES) +- [x] Create custom keycode with quotes (single/double) for ES layout +- [x] Add Tap-Dance actions for keycodes (Tab, Space, Enter) and layer selection +- [x] Add Git commands to some layer +- [x] Disable Mouse Keys (saving space) +- [x] Settings Layer not accesible +- [x] Layer buttons with double/triple function (Normal/Shift/Control mode) +- [x] Tab/Caps Lock on same key (single/double tap) +- [x] Backspace/Delete/Insert on same key (Normal/Shift/Ctrl) +- [x] Separate default layer from RGB settings rendering for conditional compiling +- [x] Encoders: Improve with more functionality (modes) +- [ ] Encoders: Add mode for navigation through windows (applications) +- [ ] Show more info about RGB Led Settings (On/Off, Animation, ...) +- [ ] Activate "Nums Lock" when Fn/NumPad layer locked +- [ ] Show status indicator when locked layer +- [ ] Set RGB Led Color by selected Layer (activable) +- [ ] Add more uses for left OLED +- [ ] Something strange returning from One Shot hold + +## Acknowledgements + +Thanks to the entire QMK community for your invaluable help. diff --git a/keyboards/splitkb/kyria/keymaps/lms_ace01/rules.mk b/keyboards/splitkb/kyria/keymaps/lms_ace01/rules.mk new file mode 100644 index 00000000000..329b41e4e5d --- /dev/null +++ b/keyboards/splitkb/kyria/keymaps/lms_ace01/rules.mk @@ -0,0 +1,9 @@ +BOOTLOADER = caterina # Pro Micro bootloader + +TAP_DANCE_ENABLE = yes # Enable Tap Dance + +OLED_DRIVER_ENABLE = yes # Enables the use of OLED displays +ENCODER_ENABLE = yes # Enables the use of one or more encoders +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow + +MOUSEKEY_ENABLE = no # Disable mouse (saving space) diff --git a/keyboards/synthlabs/solo/keymaps/gamepad/keymap.c b/keyboards/synthlabs/solo/keymaps/gamepad/keymap.c index 3e55f346f13..8da2afc97aa 100644 --- a/keyboards/synthlabs/solo/keymaps/gamepad/keymap.c +++ b/keyboards/synthlabs/solo/keymaps/gamepad/keymap.c @@ -3,8 +3,6 @@ #include QMK_KEYBOARD_H -#include "joystick.h" - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_all( JS_BUTTON0,JS_BUTTON1,JS_BUTTON2,JS_BUTTON3,JS_BUTTON4,JS_BUTTON5,JS_BUTTON6, @@ -24,11 +22,8 @@ joystick_config_t joystick_axes[JOYSTICK_AXES_COUNT] = { bool encoder_update_kb(uint8_t index, bool clockwise) { joystick_position += (clockwise ? 2 : -2) * (full_joystick_value / pulses_per_revolution); // +2 and -2 are used, since +1.0 and -1.0 axis output refers to positions at half of a full rotation + joystick_set_axis(0, joystick_position); - if (joystick_position != joystick_status.axes[0]) { - joystick_status.axes[0] = joystick_position; - joystick_status.status |= JS_UPDATED; - } return true; } diff --git a/keyboards/system76/launch_1/config.h b/keyboards/system76/launch_1/config.h index 6f257e91188..739a3c78f8c 100644 --- a/keyboards/system76/launch_1/config.h +++ b/keyboards/system76/launch_1/config.h @@ -47,8 +47,6 @@ # 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 -# 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 // Turns off effects when suspended // Limit brightness to support USB-A at 0.5 A // TODO: Do this dynamically based on power source diff --git a/keyboards/tau4/common/glcdfont.c b/keyboards/tau4/common/glcdfont.c old mode 100755 new mode 100644 diff --git a/keyboards/tau4/config.h b/keyboards/tau4/config.h old mode 100755 new mode 100644 index a829fda5be7..ccc0217bd5b --- a/keyboards/tau4/config.h +++ b/keyboards/tau4/config.h @@ -19,35 +19,6 @@ along with this program. If not, see . #include "config_common.h" -/* key matrix size */ -#define MATRIX_ROWS 4 -#define MATRIX_COLS 12 - -/* key matrix pins */ -#define MATRIX_ROW_PINS { F4, F5, F6, F7 } -#define MATRIX_COL_PINS { D4, D6, D7, B4, B5, B6, C6, C7, F1, F0, B0, B1 } - -/* COL2ROW or ROW2COL */ -#define DIODE_DIRECTION COL2ROW - -/* Set 0 if debouncing isn't needed */ -#define DEBOUNCE 5 - -#define RGB_DI_PIN B2 -#ifdef RGB_DI_PIN -#define RGBLIGHT_ANIMATIONS -#define RGBLIGHT_LAYERS -#define RGBLED_NUM 10 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 16 -#define RGBLIGHT_VAL_STEP 8 -#define RGBLIGHT_LIMIT_VAL 128 -#endif - -#define ENCODERS_PAD_A { B3 } -#define ENCODERS_PAD_B { B7 } -#define ENCODER_RESOLUTION 1 - // Buggy, currently disabled /* #define EXTERNAL_EEPROM_I2C_BASE_ADDRESS 0b10100000 #define EXTERNAL_EEPROM_I2C_ADDRESS(loc) (EXTERNAL_EEPROM_I2C_BASE_ADDRESS | ((((loc) >> 8) & 0x07) << 1)) @@ -56,9 +27,8 @@ along with this program. If not, see . #define EXTERNAL_EEPROM_ADDRESS_SIZE 1 #define EXTERNAL_EEPROM_WRITE_TIME 5 */ -#define OLED_DISPLAY_ADDRESS 0x3C -#define OLED_BRIGHTNESS 255 -#define OLED_IC OLED_IC_SSD1306 +#define RGBLIGHT_LAYERS_RETAIN_VAL + #define OLED_DISPLAY_WIDTH 128 #define OLED_DISPLAY_HEIGHT 32 #define OLED_FONT_H "keyboards/tau4/common/glcdfont.c" diff --git a/keyboards/tau4/info.json b/keyboards/tau4/info.json index 9ec48383c71..dca13872039 100644 --- a/keyboards/tau4/info.json +++ b/keyboards/tau4/info.json @@ -1,11 +1,120 @@ { "keyboard_name": "tau4", "manufacturer": "taukeyboards", - "url": "", + "url": "https://gaskell.tech/tau/four.html", "maintainer": "qmk", "usb": { "vid": "0xFEED", "pid": "0x6060", "device_version": "0.0.1" + }, + "bootloader": "atmel-dfu", + "build": { + "lto": true + }, + "matrix_pins": { + "rows": [ "F4", "F5", "F6", "F7" ], + "cols": [ "D4", "D6", "D7", "B4", "B5", "B6", "C6", "C7", "F1", "F0", "B0", "B1" ] + }, + "processor": "atmega32u4", + "features": { + "bootmagic": true, + "encoder": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "oled": true, + "rgblight": true + }, + "community_layouts": [ "ortho_4x12" ], + "diode_direction": "COL2ROW", + "encoder": { + "rotary": [ + { "pin_a": "B3", "pin_b": "B7", "resolution": 1 } + ] + }, + "rgblight": { + "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 + }, + "brightness_steps": 8, + "hue_steps": 8, + "layers": { + "blink": false, + "enabled": true, + "max": 5, + "override_rgb": false + }, + "led_count": 10, + "max_brightness": 128, + "pin": "B2", + "saturation_steps": 16, + "sleep": true + }, + "layouts": { + "LAYOUT_ortho_4x12": { + "layout": [ + {"label": "Mute", "matrix": [0, 0], "x":0, "y":0}, + {"label": "Q", "matrix": [0, 1], "x":1, "y":0}, + {"label": "W", "matrix": [0, 2], "x":2, "y":0}, + {"label": "E", "matrix": [0, 3], "x":3, "y":0}, + {"label": "R", "matrix": [0, 4], "x":4, "y":0}, + {"label": "T", "matrix": [0, 5], "x":5, "y":0}, + {"label": "Y", "matrix": [0, 6], "x":6, "y":0}, + {"label": "U", "matrix": [0, 7], "x":7, "y":0}, + {"label": "I", "matrix": [0, 8], "x":8, "y":0}, + {"label": "O", "matrix": [0, 9], "x":9, "y":0}, + {"label": "P", "matrix": [0, 10], "x":10, "y":0}, + {"label": "Backspace", "matrix": [0, 11], "x":11, "y":0}, + + {"label": "Esc", "matrix": [1, 0], "x":0, "y":1}, + {"label": "A", "matrix": [1, 1], "x":1, "y":1}, + {"label": "S", "matrix": [1, 2], "x":2, "y":1}, + {"label": "D", "matrix": [1, 3], "x":3, "y":1}, + {"label": "F", "matrix": [1, 4], "x":4, "y":1}, + {"label": "G", "matrix": [1, 5], "x":5, "y":1}, + {"label": "H", "matrix": [1, 6], "x":6, "y":1}, + {"label": "J", "matrix": [1, 7], "x":7, "y":1}, + {"label": "K", "matrix": [1, 8], "x":8, "y":1}, + {"label": "L", "matrix": [1, 9], "x":9, "y":1}, + {"label": ";:", "matrix": [1, 10], "x":10, "y":1}, + {"label": "'\"", "matrix": [1, 11], "x":11, "y":1}, + + {"label": "Shift", "matrix": [2, 0], "x":0, "y":2}, + {"label": "Z", "matrix": [2, 1], "x":1, "y":2}, + {"label": "X", "matrix": [2, 2], "x":2, "y":2}, + {"label": "C", "matrix": [2, 3], "x":3, "y":2}, + {"label": "V", "matrix": [2, 4], "x":4, "y":2}, + {"label": "B", "matrix": [2, 5], "x":5, "y":2}, + {"label": "N", "matrix": [2, 6], "x":6, "y":2}, + {"label": "M", "matrix": [2, 7], "x":7, "y":2}, + {"label": ",<", "matrix": [2, 8], "x":8, "y":2}, + {"label": ".>", "matrix": [2, 9], "x":9, "y":2}, + {"label": "/?", "matrix": [2, 10], "x":10, "y":2}, + {"label": "Enter", "matrix": [2, 11], "x":11, "y":2}, + + {"label": "Backspace", "matrix": [3, 0], "x":0, "y":3}, + {"label": "Ctrl", "matrix": [3, 1], "x":1, "y":3}, + {"label": "GUI", "matrix": [3, 2], "x":2, "y":3}, + {"label": "Alt", "matrix": [3, 3], "x":3, "y":3}, + {"label": "Lower", "matrix": [3, 4], "x":4, "y":3}, + {"label": "Space", "matrix": [3, 5], "x":5, "y":3}, + {"label": "Space", "matrix": [3, 6], "x":6, "y":3}, + {"label": "Raise", "matrix": [3, 7], "x":7, "y":3}, + {"label": "Left", "matrix": [3, 8], "x":8, "y":3}, + {"label": "Down", "matrix": [3, 9], "x":9, "y":3}, + {"label": "Up", "matrix": [3, 10], "x":10, "y":3}, + {"label": "Right", "matrix": [3, 11], "x":11, "y":3} + ] + } } } diff --git a/keyboards/tau4/keymaps/default/keymap.c b/keyboards/tau4/keymaps/default/keymap.c index 37fb6b666bf..9421a6cce5b 100755 --- a/keyboards/tau4/keymaps/default/keymap.c +++ b/keyboards/tau4/keymaps/default/keymap.c @@ -85,8 +85,10 @@ void keyboard_post_init_user(void) { rgblight_layers = my_rgb_layers; // Uncomment for debug mode - /* debug_enable=true; - debug_matrix=true; */ + //debug_enable=true; + //debug_matrix=true; + //debug_keyboard=true; + //debug_mouse=true; } layer_state_t layer_state_set_user(layer_state_t state) { @@ -101,47 +103,12 @@ layer_state_t layer_state_set_user(layer_state_t state) { return state; } -bool encoder_update_user(uint8_t index, bool clockwise) { - if (index == 0) { /* First encoder */ - if (clockwise) { - tap_code(KC_VOLU); - } else { - tap_code(KC_VOLD); - } - } - return true; -} - - -#ifdef OLED_ENABLE - -static void render_status(void) { - oled_write_P(PSTR("Tau.4 v1.0\n\n"), false); - oled_write_P(PSTR("Layer:\n"), false); - - switch (get_highest_layer(layer_state)) { - case _QWERTY: - oled_write_P(PSTR("Default "), false); - break; - case _NUMPAD: - oled_write_P(PSTR("Numpad "), false); - break; - case _LOWER: - oled_write_P(PSTR("Lower "), false); - break; - case _RAISE: - oled_write_P(PSTR("Raise "), false); - break; - case _ADJUST: - oled_write_P(PSTR("Adjust "), false); - break; - default: - oled_write_P(PSTR("Undefined"), false); - } -} - -bool oled_task_user(void) { - render_status(); - return false; -} +#ifdef ENCODER_MAP_ENABLE + const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [_QWERTY] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [_NUMPAD] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [_LOWER] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [_RAISE] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [_ADJUST] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + }; #endif diff --git a/keyboards/tau4/keymaps/default/rules.mk b/keyboards/tau4/keymaps/default/rules.mk new file mode 100644 index 00000000000..ee325681483 --- /dev/null +++ b/keyboards/tau4/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/tau4/readme.md b/keyboards/tau4/readme.md index beea3f07a9d..6c8b5c7bced 100644 --- a/keyboards/tau4/readme.md +++ b/keyboards/tau4/readme.md @@ -6,11 +6,21 @@ A 40% ortholinear keyboard, developed by Oliver Gaskell. More info on [gaskell.t * Keyboard Maintainer: [Oliver Gaskell](https://github.com/ogaskell) * Hardware Supported: Tau4 PCB rev1.0, Tau4 PCB rev1.1 -* Hardware Availability: Group Buy - Opens 05 Feb 2021 [More Details](https://gaskell.tech/tau/four.html) - +* Hardware Availability: Group Buy took place between 05 Feb 2021 to 05 Mar 2021. [More Details](https://gaskell.tech/tau/four.html) Make example for this keyboard (after setting up your build environment): make tau4:default +Flashing example for this keyboard: + + make tau4: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 2 ways: + +* **Bootmagic reset**: Hold down the top left key and plug in the keyboard. (If you built with an encoder in the top left, the "key" will be that encoder.) This will also clear EEPROM, so it is a good first step if the keyboard is misbehaving. +* **Keycode in layout**: By default, `QK_BOOT` is assigned to the top right key on the `ADJUST` (fifth) layer. diff --git a/keyboards/tau4/rules.mk b/keyboards/tau4/rules.mk old mode 100755 new mode 100644 index 0ddf255b13f..f27ee2a28ee --- a/keyboards/tau4/rules.mk +++ b/keyboards/tau4/rules.mk @@ -1,25 +1,7 @@ -# MCU name -MCU = atmega32u4 - -# Bootloader selection -BOOTLOADER = atmel-dfu - # Build Options # change yes to no to disable # -BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite -MOUSEKEY_ENABLE = no # 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 = yes # Rotary Encoder support -OLED_ENABLE = yes + OLED_DRIVER = SSD1306 # OLED display support # EEPROM_DRIVER ?= i2c # Driver for external EEPROM chip # This is currently not working due to QMK not officially supporting the chip used on the Tau4, I am working on a fix. - -LAYOUTS = ortho_4x12 diff --git a/keyboards/tau4/tau4.c b/keyboards/tau4/tau4.c old mode 100755 new mode 100644 index 3002566cea0..aa508aae2c5 --- a/keyboards/tau4/tau4.c +++ b/keyboards/tau4/tau4.c @@ -15,4 +15,47 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#include "tau4.h" +#include "quantum.h" + +#ifdef ENCODER_ENABLE +bool encoder_update_kb(uint8_t index, bool clockwise) { + if (!encoder_update_user(index, clockwise)) { return false; } + if (index == 0) { /* First encoder */ + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } + return true; +} +#endif + +#ifdef OLED_ENABLE +bool oled_task_kb(void) { + if (!oled_task_user()) { return false; } + oled_write_P(PSTR("Tau.4 v1.0\n\n"), false); + oled_write_P(PSTR("Layer:\n"), false); + + switch (get_highest_layer(layer_state)) { + case 0: + oled_write_P(PSTR("Default "), false); + break; + case 1: + oled_write_P(PSTR("Numpad "), false); + break; + case 2: + oled_write_P(PSTR("Lower "), false); + break; + case 3: + oled_write_P(PSTR("Raise "), false); + break; + case 4: + oled_write_P(PSTR("Adjust "), false); + break; + default: + oled_write_P(PSTR("Undefined"), false); + } + return true; +} +#endif diff --git a/keyboards/terrazzo/terrazzo.c b/keyboards/terrazzo/terrazzo.c index 35452acf4a0..cc62225de74 100644 --- a/keyboards/terrazzo/terrazzo.c +++ b/keyboards/terrazzo/terrazzo.c @@ -115,8 +115,8 @@ void terrazzo_scroll_pixel(bool clockwise) { terrazzo_led_index = terrazzo_led_index + 1; } else { terrazzo_led_index = terrazzo_led_index - 1; - } - + } + if (terrazzo_led_index >= LED_MATRIX_LED_COUNT) { terrazzo_led_index = 0; } else if (terrazzo_led_index <= 0 ) { @@ -156,8 +156,12 @@ void terrazzo_render(void) { } } -void led_matrix_indicators_kb(void) { +bool led_matrix_indicators_kb(void) { + if (!led_matrix_indicators_user()) { + return false; + } terrazzo_render(); + return true; } bool process_record_kb(uint16_t keycode, keyrecord_t *record) { @@ -194,4 +198,4 @@ void suspend_wakeup_init_kb(void) { } -#endif \ No newline at end of file +#endif diff --git a/keyboards/the_uni/pro_micro/readme.md b/keyboards/the_uni/pro_micro/readme.md index d6b62315616..397cf7a198c 100644 --- a/keyboards/the_uni/pro_micro/readme.md +++ b/keyboards/the_uni/pro_micro/readme.md @@ -1,7 +1,9 @@ -# The Uni +# The Uni v1 and v2 + +![Uni v2](https://i.imgur.com/hIIK8xN.jpg) - Keyboard Maintainer: [Peter](https://github.com/petercpark) -- Link to Keyboard Files: [The_Uni](https://github.com/petercpark/The_Uni) +- Link to Keyboard Files: [The_Uni](https://github.com/petercpark/The_Uni) (For personal use only) - Hardware Supported: - The Uni v1 and v2 (pro_micro) - Hardware Availability: [https://www.stenokeyboards.com](https://www.stenokeyboards.com) @@ -10,8 +12,8 @@ Enter the bootloader by: -* **Physical reset button**: On the Uni v3, briefly press the button on the back of the PCB. -* **Reset Pads**: Uni v1 and v2 have pins/pads you must short instead (RST to GND). +- **Physical reset button**: On the Uni v3, briefly press the button on the back of the PCB. +- **Reset Pads**: Uni v1 and v2 have pins/pads you must short instead (RST to GND). Make examples for this keyboard (after setting up your build environment): diff --git a/keyboards/the_uni/readme.md b/keyboards/the_uni/readme.md index cd1c99e4357..88cb81b111d 100644 --- a/keyboards/the_uni/readme.md +++ b/keyboards/the_uni/readme.md @@ -19,13 +19,18 @@ A compact unibody split ortholinear keyboard made specifically for stenography. Enter the bootloader by: -* **Physical reset button**: On the Uni v3, briefly press the button on the back of the PCB. -* **Reset Pads**: Uni v1 and v2 have pins/pads you must short instead (RST to GND). +- **Physical reset button**: On the Uni v3, briefly press the button on the back of the PCB. +- **Reset Pads**: Uni v1 and v2 have pins/pads you must short instead (RST to GND). Make examples for this keyboard (after setting up your build environment): + # version 1 and 2 make the_uni/pro_micro:default + # version 3 make the_uni/usb_c:default + # version 4 + qmk compile -kb the_uni/rp_2040 -km default + 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/the_uni/rp_2040/config.h b/keyboards/the_uni/rp_2040/config.h new file mode 100644 index 00000000000..a083ee20b77 --- /dev/null +++ b/keyboards/the_uni/rp_2040/config.h @@ -0,0 +1,61 @@ +/* Copyright 2019 + * + * 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 3 +#define MATRIX_COLS 11 + +#define MATRIX_COL_PINS { GP24, GP23, GP21, GP20, GP19, GP6, GP5, GP4, GP3, GP2, GP1 } +#define MATRIX_ROW_PINS { GP25, GP18, GP17 } +// #define DEBUG_MATRIX_SCAN_RATE + +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +//#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_LED GP25 +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* number of backlight levels */ + +// #ifdef BACKLIGHT_PIN +// #define BACKLIGHT_LEVELS 3 +// #endif + +/* 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 + + +// #ifdef RGB_DI_PIN +// #define RGBLIGHT_ANIMATIONS +// #define RGBLED_NUM 0 +// #define RGBLIGHT_HUE_STEP 8 +// #define RGBLIGHT_SAT_STEP 8 +// #define RGBLIGHT_VAL_STEP 8 +// #endif + +// #endif + +#define FORCE_NKRO diff --git a/keyboards/the_uni/rp_2040/info.json b/keyboards/the_uni/rp_2040/info.json new file mode 100644 index 00000000000..cebd90c01e3 --- /dev/null +++ b/keyboards/the_uni/rp_2040/info.json @@ -0,0 +1,5 @@ +{ + "usb": { + "device_version": "0.0.4" + } +} diff --git a/keyboards/the_uni/rp_2040/readme.md b/keyboards/the_uni/rp_2040/readme.md new file mode 100644 index 00000000000..5867a213d9f --- /dev/null +++ b/keyboards/the_uni/rp_2040/readme.md @@ -0,0 +1,25 @@ +# Uni v4 + +![Uni v4](https://i.imgur.com/HyvMu26h.png) + +- Hardware Supported: + - The Uni v4 +- Hardware Availability: [https://www.stenokeyboards.com](https://www.stenokeyboards.com) +- Uses the rp2040 chip + +Make the .uf2 file by doing: + +# Bootloader + +Enter the bootloader by: + +- **Physical boot button**: + - First, unplug the Uni v4. + - Then press and hold the button on the back of the PCB marked "B" while you plug in the keyboard. This will create register the keyboard as a storage device on the computer. + - Copy and paste the .uf2 file in the top directory of the device. Once done, it will automatically reboot the keyboard. + +Make examples for this keyboard (after setting up your build environment): + + qmk compile -kb the_uni/rp_2040 -km default + +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/keymaps/iso/config.h b/keyboards/the_uni/rp_2040/rp_2040.c similarity index 85% rename from keyboards/saevus/cor_tkl/keymaps/iso/config.h rename to keyboards/the_uni/rp_2040/rp_2040.c index 52983591bf0..b032a22f427 100644 --- a/keyboards/saevus/cor_tkl/keymaps/iso/config.h +++ b/keyboards/the_uni/rp_2040/rp_2040.c @@ -1,4 +1,4 @@ -/* Copyright 2022 Ramon Imbao +/* Copyright 2021 Stefan Kerkmann * * 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,7 +13,5 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -#pragma once +#include "rp_2040.h" -#define RGBLIGHT_LAYERS -#define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF diff --git a/keyboards/tau4/tau4.h b/keyboards/the_uni/rp_2040/rp_2040.h old mode 100755 new mode 100644 similarity index 65% rename from keyboards/tau4/tau4.h rename to keyboards/the_uni/rp_2040/rp_2040.h index d9ff502116c..9371c3a241d --- a/keyboards/tau4/tau4.h +++ b/keyboards/the_uni/rp_2040/rp_2040.h @@ -1,5 +1,5 @@ /* -Copyright 2020 Oliver Gaskell +Copyright 2021 Peter C. Park 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 @@ -19,14 +19,12 @@ along with this program. If not, see . #include "quantum.h" -#define LAYOUT_ortho_4x12( \ - 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, K211, \ - K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311 \ +#define LAYOUT( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, \ + K202, K203, K204, K205, K206, K207 \ ) { \ - { 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, K211 }, \ - { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311 } \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110 }, \ + { KC_NO, KC_NO, K202, K203, K204, K205, K206, K207, KC_NO, KC_NO, KC_NO } \ } diff --git a/keyboards/the_uni/rp_2040/rules.mk b/keyboards/the_uni/rp_2040/rules.mk new file mode 100644 index 00000000000..da6a3dc6a84 --- /dev/null +++ b/keyboards/the_uni/rp_2040/rules.mk @@ -0,0 +1,19 @@ +# MCU name +MCU = RP2040 + +# Bootloader selection +BOOTLOADER = rp2040 + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = no # 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 = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output +STENO_ENABLE = yes diff --git a/keyboards/the_uni/usb_c/info.json b/keyboards/the_uni/usb_c/info.json index e557e4d3076..b377cdff008 100644 --- a/keyboards/the_uni/usb_c/info.json +++ b/keyboards/the_uni/usb_c/info.json @@ -1,5 +1,5 @@ { "usb": { - "device_version": "0.0.2" + "device_version": "0.0.3" } } diff --git a/keyboards/tkc/portico/config.h b/keyboards/tkc/portico/config.h index 38919aa55ca..a0ad0c1652e 100644 --- a/keyboards/tkc/portico/config.h +++ b/keyboards/tkc/portico/config.h @@ -33,7 +33,6 @@ along with this program. If not, see . # define RGB_MATRIX_LED_PROCESS_LIMIT 4 # define RGB_MATRIX_LED_FLUSH_LIMIT 26 # define DEBOUNCE 3 -# 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_KEYPRESSES # undef ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN diff --git a/keyboards/tkc/portico/portico.c b/keyboards/tkc/portico/portico.c index 47dfe88231a..e41de1c232a 100644 --- a/keyboards/tkc/portico/portico.c +++ b/keyboards/tkc/portico/portico.c @@ -115,25 +115,20 @@ led_config_t g_led_config = { } }; -void suspend_power_down_kb(void) { - rgb_matrix_set_suspend_state(true); - suspend_power_down_user(); -} - -void suspend_wakeup_init_kb(void) { - rgb_matrix_set_suspend_state(false); - suspend_wakeup_init_user(); -} - -void rgb_matrix_indicators_kb(void) { +bool rgb_matrix_indicators_kb(void) { + if (!rgb_matrix_indicators_user()) { + return false; + } if (host_keyboard_led_state().caps_lock) { rgb_matrix_set_color(30, 0xFF, 0xFF, 0xFF); } - else { + else { rgb_matrix_set_color(30, 0x00, 0x00, 0x00); } if (!rgb_matrix_is_enabled()) { rgb_matrix_driver.flush(); } + return true; } -#endif \ No newline at end of file +#endif + diff --git a/keyboards/tkc/portico68v2/portico68v2.c b/keyboards/tkc/portico68v2/portico68v2.c index 6022d5674f6..32c8f50894f 100644 --- a/keyboards/tkc/portico68v2/portico68v2.c +++ b/keyboards/tkc/portico68v2/portico68v2.c @@ -128,7 +128,10 @@ led_config_t g_led_config = { } }; -void rgb_matrix_indicators_kb(void) { +bool rgb_matrix_indicators_kb(void) { + if (!rgb_matrix_indicators_user()) { + return false; + } if (host_keyboard_led_state().caps_lock) { for (uint8_t i = 0; i < DRIVER_1_LED_TOTAL; i++) { rgb_matrix_set_color(i, 0xFF, 0xFF, 0xFF); @@ -141,5 +144,6 @@ void rgb_matrix_indicators_kb(void) { } } } + return true; } #endif diff --git a/keyboards/tkc/portico75/config.h b/keyboards/tkc/portico75/config.h index fe00c26b6a5..36bd7b3ed50 100644 --- a/keyboards/tkc/portico75/config.h +++ b/keyboards/tkc/portico75/config.h @@ -44,7 +44,6 @@ along with this program. If not, see . # define RGB_MATRIX_LED_PROCESS_LIMIT 4 # define RGB_MATRIX_LED_FLUSH_LIMIT 26 # define DEBOUNCE 3 -# 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_KEYPRESSES diff --git a/keyboards/tkc/portico75/portico75.c b/keyboards/tkc/portico75/portico75.c index 30fafa2dfc9..299af2f3059 100644 --- a/keyboards/tkc/portico75/portico75.c +++ b/keyboards/tkc/portico75/portico75.c @@ -161,13 +161,14 @@ led_config_t g_led_config = { { 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, } }; -__attribute__ ((weak)) -void rgb_matrix_indicators_user(void) -{ - if (host_keyboard_led_state().caps_lock) - { +bool rgb_matrix_indicators_kb(void) { + if (!rgb_matrix_indicators_user()) { + return false; + } + if (host_keyboard_led_state().caps_lock) { rgb_matrix_set_color(45, 0xFF, 0xFF, 0xFF); } + return true; } #endif diff --git a/keyboards/tweetydabird/lbs4/config.h b/keyboards/tweetydabird/lbs4/config.h new file mode 100644 index 00000000000..91df795baed --- /dev/null +++ b/keyboards/tweetydabird/lbs4/config.h @@ -0,0 +1,10 @@ +// Copyright 2022 Markus Knutsson (@TweetyDaBird) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once +#include "config_common.h" + +// Bootmagic Lite key configuration +// Not yet supported in info.json ? +#define BOOTMAGIC_LITE_ROW 0 +#define BOOTMAGIC_LITE_COLUMN 0 \ No newline at end of file diff --git a/keyboards/tweetydabird/lbs4/info.json b/keyboards/tweetydabird/lbs4/info.json new file mode 100644 index 00000000000..4d495e8b228 --- /dev/null +++ b/keyboards/tweetydabird/lbs4/info.json @@ -0,0 +1,78 @@ +{ + "keyboard_name": "Little Big Scroll 4", + "manufacturer": "Tweetys Wild Thinking", + "url": "https://lectronz.com/stores/tweetys-wild-thinking", + "maintainer": "TweetyDaBird", + + "development_board": "promicro", + "bootloader_instructions": "Short marked pads on PCB, or hold top left key when plugging in.", + + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": false, + "nkro": false, + "rgblight": true, + "encoder": true + }, + + "build": { + "lto": true + }, + + "debounce": 5, + + "usb": { + "vid": "0xFEED", + "pid": "0x23B0", + "device_version": "1.1.0" + }, + + "matrix_pins": { + "direct": [ + ["E6", "D7", "F4"], + ["B5", "B4", null] + ] + }, + + "encoder": { + "rotary": [ + { + "pin_a": "B1", + "pin_b": "F7", + "resolution": 2 + } + ] + }, + + "rgblight": { + "led_count": 6, + "pin": "D2", + "hue_steps": 8, + "saturation_steps": 17, + "brightness_steps": 17, + "max_brightness": 175, + "animations": { + "alternating": true + "breathing": true, + "rainbow_mood": true, + "static_gradient": true, + } + }, + + "layouts": { + "LAYOUT": { + "layout": [ + { "label": "Play", "matrix": [0, 2], "x": 2, "y": 0, "w": 2, "h": 2 }, + + { "label": "F1", "matrix": [0, 0], "x": 0, "y": 0, "w": 1, "h": 1 }, + { "label": "F2", "matrix": [0, 1], "x": 1, "y": 0, "w": 1, "h": 1 }, + + { "label": "F3", "matrix": [1, 0], "x": 0, "y": 1, "w": 1, "h": 1 }, + { "label": "F4", "matrix": [1, 1], "x": 1, "y": 1, "w": 1, "h": 1 }, + ] + } + } +} \ No newline at end of file diff --git a/keyboards/tweetydabird/lbs4/keymaps/default/keymap.c b/keyboards/tweetydabird/lbs4/keymaps/default/keymap.c new file mode 100644 index 00000000000..3817b0f8845 --- /dev/null +++ b/keyboards/tweetydabird/lbs4/keymaps/default/keymap.c @@ -0,0 +1,35 @@ +// Copyright 2022 Markus Knutsson (@TweetyDaBird) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _BASE, + _RGB +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [_BASE] = LAYOUT( + KC_MPLY, + TO(_RGB), KC_MSEL, + KC_MPRV, KC_MNXT + ), + [_RGB] = LAYOUT( + KC_MPLY, + TO(_BASE), RGB_VAI, + RGB_TOG, RGB_VAD + ) +}; + +bool encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } + return true; +}; diff --git a/keyboards/tweetydabird/lbs4/keymaps/default/readme.md b/keyboards/tweetydabird/lbs4/keymaps/default/readme.md new file mode 100644 index 00000000000..09501d92312 --- /dev/null +++ b/keyboards/tweetydabird/lbs4/keymaps/default/readme.md @@ -0,0 +1,5 @@ +# The default keymap for lbs4 + +This is a very basic layout using LSB4 as media playback buttons. + +![lsb4](https://imgur.com/hCDdQIc) \ No newline at end of file diff --git a/keyboards/tweetydabird/lbs4/readme.md b/keyboards/tweetydabird/lbs4/readme.md new file mode 100644 index 00000000000..e17a850c5e3 --- /dev/null +++ b/keyboards/tweetydabird/lbs4/readme.md @@ -0,0 +1,26 @@ +# Little Big Scroll 4 + +![lsb4](https://i.imgur.com/MMGSDz2h.jpeg) + +* A simple 4-key or 2-key plus OLED macropad with a clickable scrollwheel, for media controls and whatever else you can imagine.* + +* Keyboard Maintainer: [Markus Knutsson](https://github.com/TweetyDaBird/) +* Hardware Supported: LBS4 PCB plus Pro Micro or pin compatible +* Hardware Availability: https://lectronz.com/stores/tweetys-wild-thinking +* Hardware Design: https://github.com/TweetyDaBird/Little-Big-Scroll + + +Make example for this keyboard (after setting up your build environment): + + make tweetydabird/lbs4:default + +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 and plug in the keyboard +* **Physical reset**: Briefly short the marked pads on PCB +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if mapped (not in default keymap) \ No newline at end of file diff --git a/keyboards/tweetydabird/lbs4/rules.mk b/keyboards/tweetydabird/lbs4/rules.mk new file mode 100644 index 00000000000..7ff128fa692 --- /dev/null +++ b/keyboards/tweetydabird/lbs4/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank \ No newline at end of file diff --git a/keyboards/tweetydabird/lbs6/config.h b/keyboards/tweetydabird/lbs6/config.h new file mode 100644 index 00000000000..ed8d2caa5bc --- /dev/null +++ b/keyboards/tweetydabird/lbs6/config.h @@ -0,0 +1,10 @@ +// Copyright 2022 Markus Knutsson (@TweetyDaBird) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once +#include "config_common.h" + +// Bootmagic Lite key configuration +// Not yet supported in info.json ? +#define BOOTMAGIC_LITE_ROW 2 +#define BOOTMAGIC_LITE_COLUMN 2 diff --git a/keyboards/tweetydabird/lbs6/info.json b/keyboards/tweetydabird/lbs6/info.json new file mode 100644 index 00000000000..ac1b5742206 --- /dev/null +++ b/keyboards/tweetydabird/lbs6/info.json @@ -0,0 +1,76 @@ +{ + "keyboard_name": "Little Big Scroll 6", + "manufacturer": "Tweetys Wild Thinking", + "url": "https://lectronz.com/stores/tweetys-wild-thinking", + "maintainer": "TweetyDaBird", + + "development_board": "promicro", + + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": false, + "rgblight": true, + "encoder": true + }, + + "build": { + "lto": true + }, + + "usb": { + "vid": "0xFEED", + "pid": "0x23B0", + "device_version": "1.1.0" + }, + + "debounce": 5, + + "matrix_pins": { + "direct": [ + [null, "F5", null], + ["D4", "D7", "B4"], + ["C6", "E6", "B5"] + ] + }, + + "encoder": { + "rotary": [ + { "pin_a": "F7", "pin_b": "F6", "resolution": 2 } + ] + }, + + "rgblight": { + "led_count": 8, + "pin": "D2", + "hue_steps": 8, + "saturation_steps": 17, + "brightness_steps": 17, + "max_brightness": 200, + "animations": { + "alternating": true, + "breathing": true, + "rainbow_mood": true, + "static_gradient": true, + } + }, + + "layouts": { + "LAYOUT": { + "layout": [ + { "label": "Play", "matrix": [0, 1], "x": 1, "y": 0, "w": 1, "h": 1 }, + + { "label": "F1", "matrix": [1, 0], "x": 0, "y": 1, "w": 1, "h": 1 }, + { "label": "F2", "matrix": [1, 1], "x": 1, "y": 1, "w": 1, "h": 1 }, + { "label": "F3", "matrix": [1, 2], "x": 2, "y": 1, "w": 1, "h": 1 }, + + { "label": "F4", "matrix": [2, 0], "x": 0, "y": 2, "w": 1, "h": 1 }, + { "label": "F5", "matrix": [2, 1], "x": 1, "y": 2, "w": 1, "h": 1 }, + { "label": "F6", "matrix": [2, 2], "x": 2, "y": 2, "w": 1, "h": 1 }, + ] + } + } +} \ No newline at end of file diff --git a/keyboards/tweetydabird/lbs6/keymaps/default/keymap.c b/keyboards/tweetydabird/lbs6/keymaps/default/keymap.c new file mode 100644 index 00000000000..590cb8ea0bc --- /dev/null +++ b/keyboards/tweetydabird/lbs6/keymaps/default/keymap.c @@ -0,0 +1,30 @@ +// Copyright 2022 Markus Knutsson (@TweetyDaBird) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _BASE +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_BASE] = LAYOUT( + KC_MPLY, + RGB_MOD, RGB_VAI, RGB_TOG, + KC_MPRV, KC_MPLY, KC_MNXT + + ) +}; + +bool encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } + return false; +} diff --git a/keyboards/tweetydabird/lbs6/keymaps/default/readme.md b/keyboards/tweetydabird/lbs6/keymaps/default/readme.md new file mode 100644 index 00000000000..22c4296f554 --- /dev/null +++ b/keyboards/tweetydabird/lbs6/keymaps/default/readme.md @@ -0,0 +1,3 @@ +# The default keymap for LBS6 + +This is a very basic layout using LBS6 as media playback buttons. diff --git a/keyboards/tweetydabird/lbs6/readme.md b/keyboards/tweetydabird/lbs6/readme.md new file mode 100644 index 00000000000..2301cc3c56e --- /dev/null +++ b/keyboards/tweetydabird/lbs6/readme.md @@ -0,0 +1,28 @@ +# lsb6 + + +*A simple 6-key macro pad with a clickable scrollwheel, for media controls and whatever else you can imagine.* + +* Keyboard Maintainer: [Markus Knutsson](https://github.com/TweetyDaBird/) +* Hardware Supported: LBS6 PCB plus Pro Micro or pin compatible +* Hardware Availability: https://lectronz.com/stores/tweetys-wild-thinking +* Hardware Design: https://github.com/TweetyDaBird/Little-Big-Scroll + + +Make example for this keyboard (after setting up your build environment): + + make tweetydabird/lbs6:default + +Flashing example for this keyboard: + + make tweetydabird/lbs6: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 bottom right key and plug in the keyboard +* **Physical reset**: Briefly short the marked pads on PCB +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if mapped (not in default keymap) \ No newline at end of file diff --git a/keyboards/tweetydabird/lbs6/rules.mk b/keyboards/tweetydabird/lbs6/rules.mk new file mode 100644 index 00000000000..7ff128fa692 --- /dev/null +++ b/keyboards/tweetydabird/lbs6/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank \ No newline at end of file diff --git a/keyboards/tzarc/djinn/djinn.c b/keyboards/tzarc/djinn/djinn.c index 5e5fe44c67a..93b1ee775e1 100644 --- a/keyboards/tzarc/djinn/djinn.c +++ b/keyboards/tzarc/djinn/djinn.c @@ -70,7 +70,7 @@ void keyboard_post_init_kb(void) { wait_ms(150); // Initialise the LCD - lcd = qp_ili9341_make_spi_device(320, 240, LCD_CS_PIN, LCD_DC_PIN, LCD_RST_PIN, 4, 0); + lcd = qp_ili9341_make_spi_device(240, 320, LCD_CS_PIN, LCD_DC_PIN, LCD_RST_PIN, 4, 0); qp_init(lcd, QP_ROTATION_0); // Turn on the LCD and clear the display @@ -129,7 +129,7 @@ RGB rgb_matrix_hsv_to_rgb(HSV hsv) { //---------------------------------------------------------- // UI Placeholder, implemented in themes -__attribute__((weak)) void draw_ui_user(void) {} +__attribute__((weak)) void draw_ui_user(bool force_redraw) {} //---------------------------------------------------------- // Housekeeping @@ -223,11 +223,11 @@ void housekeeping_task_kb(void) { // Draw the UI if (kb_state.lcd_power) { - draw_ui_user(); + draw_ui_user(false); } // Go into low-scan interrupt-based mode if we haven't had any matrix activity in the last 250 milliseconds if (last_input_activity_elapsed() > 250) { matrix_wait_for_interrupt(); } -} \ No newline at end of file +} diff --git a/keyboards/tzarc/djinn/graphics/theme_djinn_default.c b/keyboards/tzarc/djinn/graphics/theme_djinn_default.c index a4e87bd3416..c9863f2285a 100644 --- a/keyboards/tzarc/djinn/graphics/theme_djinn_default.c +++ b/keyboards/tzarc/djinn/graphics/theme_djinn_default.c @@ -89,8 +89,8 @@ void keyboard_post_init_display(void) { //---------------------------------------------------------- // UI Drawing -void draw_ui_user(void) { - bool hue_redraw = false; +void draw_ui_user(bool force_redraw) { + bool hue_redraw = force_redraw; static uint16_t last_hue = 0xFFFF; #if defined(RGB_MATRIX_ENABLE) uint16_t curr_hue = rgb_matrix_get_hue(); diff --git a/keyboards/tzarc/ghoul/config.h b/keyboards/tzarc/ghoul/config.h new file mode 100644 index 00000000000..c3897e7ada3 --- /dev/null +++ b/keyboards/tzarc/ghoul/config.h @@ -0,0 +1,19 @@ +// Copyright 2018-2022 Nick Brassel (@tzarc) +// SPDX-License-Identifier: GPL-3.0-or-later +#pragma once + +#include "config_common.h" + +// Matrix +#define MATRIX_SHIFT_REGISTER_COUNT 5 +//#define MATRIX_ROWS 6 // actually defined in info.json: 5 shift registers, plus one row for extras (i.e. encoder pushbutton read) +//#define MATRIX_COLS 8 // actually defined in info.json: 8 bits per register + +// EEPROM configuration +#define EXTERNAL_EEPROM_BYTE_COUNT 8192 +#define EXTERNAL_EEPROM_PAGE_SIZE 64 // it's FRAM, so it doesn't actually matter, this just sets the RAM buffer + +// RGB configuration +#define RGB_MATRIX_LED_COUNT 40 +#define RGBLED_NUM 40 // TBD: Once convergence with these defines occurs, remove. +#define DRIVER_LED_TOTAL 40 // TBD: Once convergence with these defines occurs, remove. diff --git a/keyboards/tzarc/ghoul/ghoul.c b/keyboards/tzarc/ghoul/ghoul.c new file mode 100644 index 00000000000..aceb24764bd --- /dev/null +++ b/keyboards/tzarc/ghoul/ghoul.c @@ -0,0 +1,44 @@ +// Copyright 2018-2022 Nick Brassel (@tzarc) +// SPDX-License-Identifier: GPL-3.0-or-later +#include QMK_KEYBOARD_H +#include "analog.h" +#include "spi_master.h" + +void keyboard_post_init_kb(void) { + // Enable RGB current limiter and wait for a bit before allowing RGB to continue + setPinOutput(RGB_ENABLE_PIN); + writePinHigh(RGB_ENABLE_PIN); + wait_ms(20); + + // Offload to the user func + keyboard_post_init_user(); +} + +void matrix_init_custom(void) { + // SPI Matrix + setPinOutput(SPI_MATRIX_CHIP_SELECT_PIN); + writePinHigh(SPI_MATRIX_CHIP_SELECT_PIN); + spi_init(); + + // Encoder pushbutton + setPinInputLow(ENCODER_PUSHBUTTON_PIN); +} + +bool matrix_scan_custom(matrix_row_t current_matrix[]) { + static matrix_row_t temp_matrix[MATRIX_ROWS] = {0}; + + // Read from SPI the matrix + spi_start(SPI_MATRIX_CHIP_SELECT_PIN, false, 0, SPI_MATRIX_DIVISOR); + spi_receive((uint8_t*)temp_matrix, MATRIX_SHIFT_REGISTER_COUNT * sizeof(matrix_row_t)); + spi_stop(); + + // Read from the encoder pushbutton + temp_matrix[5] = readPin(ENCODER_PUSHBUTTON_PIN) ? 1 : 0; + + // Check if we've changed, return the last-read data + bool changed = memcmp(current_matrix, temp_matrix, sizeof(temp_matrix)) != 0; + if (changed) { + memcpy(current_matrix, temp_matrix, sizeof(temp_matrix)); + } + return changed; +} diff --git a/keyboards/tzarc/ghoul/graphics/ghoul-logo.qgf.c b/keyboards/tzarc/ghoul/graphics/ghoul-logo.qgf.c new file mode 100644 index 00000000000..0dc7da9d1cb --- /dev/null +++ b/keyboards/tzarc/ghoul/graphics/ghoul-logo.qgf.c @@ -0,0 +1,134 @@ +// Copyright 2022 QMK -- generated source code only, image retains original copyright +// SPDX-License-Identifier: GPL-2.0-or-later + +// This file was auto-generated by `qmk painter-convert-graphics -i ghoul-logo.png -f mono4` + +#include + +const uint32_t gfx_ghoul_logo_length = 1936; + +// clang-format off +const uint8_t gfx_ghoul_logo[1936] = { + 0x00, 0xFF, 0x12, 0x00, 0x00, 0x51, 0x47, 0x46, 0x01, 0x90, 0x07, 0x00, 0x00, 0x6F, 0xF8, 0xFF, + 0xFF, 0x46, 0x00, 0x80, 0x00, 0x01, 0x00, 0x01, 0xFE, 0x04, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x02, 0xFD, 0x06, 0x00, 0x00, 0x01, 0x00, 0x01, 0xFF, 0xE8, 0x03, 0x05, 0xFA, 0x60, 0x07, 0x00, + 0x08, 0x00, 0x81, 0xF9, 0x6F, 0x0E, 0x00, 0x83, 0x40, 0xFE, 0xFF, 0xBF, 0x0D, 0x00, 0x80, 0x80, + 0x03, 0xFF, 0x80, 0x7F, 0x0C, 0x00, 0x80, 0x40, 0x04, 0xFF, 0x80, 0x2F, 0x0B, 0x00, 0x81, 0x40, + 0xFE, 0x04, 0xFF, 0x80, 0x1F, 0x0B, 0x00, 0x80, 0xFD, 0x05, 0xFF, 0x80, 0x0B, 0x03, 0x00, 0x80, + 0x01, 0x02, 0x00, 0x80, 0x80, 0x03, 0x00, 0x80, 0xF8, 0x06, 0xFF, 0x80, 0x03, 0x02, 0x00, 0x80, + 0x20, 0x03, 0x00, 0x80, 0x0E, 0x02, 0x00, 0x80, 0xE0, 0x07, 0xFF, 0x03, 0x00, 0x80, 0x02, 0x02, + 0x00, 0x83, 0xF4, 0x01, 0x00, 0x80, 0x07, 0xFF, 0x80, 0x3F, 0x02, 0x00, 0x80, 0xA0, 0x02, 0x00, + 0x81, 0xC0, 0x1F, 0x02, 0x00, 0x80, 0xFE, 0x07, 0xFF, 0x80, 0x0F, 0x02, 0x00, 0x80, 0x0A, 0x02, + 0x00, 0x83, 0xFD, 0x01, 0x00, 0xF4, 0x08, 0xFF, 0x88, 0x02, 0x00, 0xA4, 0x01, 0x00, 0xE0, 0x0F, + 0x00, 0xD0, 0x08, 0xFF, 0x83, 0xBF, 0x00, 0x40, 0x2A, 0x02, 0x00, 0x80, 0xFF, 0x02, 0x00, 0x09, + 0xFF, 0x88, 0x1F, 0x00, 0xA4, 0x06, 0x00, 0xF4, 0x0F, 0x00, 0xF8, 0x09, 0xFF, 0x87, 0x02, 0x40, + 0xAA, 0x00, 0x80, 0xBF, 0x00, 0xD0, 0x09, 0xFF, 0x88, 0x7F, 0x00, 0xA4, 0x0A, 0x00, 0xFC, 0x0B, + 0x00, 0xFE, 0x09, 0xFF, 0x87, 0x0B, 0x40, 0xAA, 0x01, 0xC0, 0xBF, 0x00, 0xF4, 0x09, 0xFF, 0x87, + 0xBF, 0x01, 0xA4, 0x2A, 0x00, 0xFD, 0x0B, 0x80, 0x0A, 0xFF, 0x87, 0x2B, 0x40, 0xAA, 0x02, 0xD0, + 0xBF, 0x00, 0xFD, 0x09, 0xFF, 0x87, 0xBF, 0x06, 0xA4, 0x6A, 0x00, 0xFE, 0x0B, 0xE0, 0x0A, 0xFF, + 0x86, 0xAB, 0x40, 0xAA, 0x0A, 0xE0, 0xFF, 0x00, 0x0A, 0xFF, 0x87, 0xBF, 0x0A, 0xA4, 0xAA, 0x00, + 0xFE, 0x0F, 0xF4, 0x0A, 0xFF, 0x86, 0xAA, 0x02, 0xAA, 0x0A, 0xE0, 0xFF, 0x80, 0x0A, 0xFF, 0x87, + 0xAF, 0x2A, 0xA0, 0xAA, 0x00, 0xFE, 0x1F, 0xFC, 0x0A, 0xFF, 0x86, 0xAA, 0x06, 0xA9, 0x0A, 0xE0, + 0xFF, 0xD1, 0x0A, 0xFF, 0x87, 0xAF, 0x6A, 0x90, 0xAA, 0x00, 0xFE, 0x2F, 0xFE, 0x0A, 0xFF, 0x86, + 0xAA, 0x0A, 0xA9, 0x0A, 0xF0, 0xFF, 0xF3, 0x0A, 0xFF, 0x86, 0xAF, 0xAA, 0xA0, 0x6A, 0x00, 0xFF, + 0x7F, 0x0B, 0xFF, 0x86, 0xAA, 0x1A, 0xAA, 0x02, 0xF0, 0xFF, 0xFB, 0x0A, 0xFF, 0x84, 0xAF, 0xAA, + 0xA6, 0x1A, 0x00, 0x03, 0xFF, 0x80, 0xF7, 0x09, 0xFF, 0x80, 0xA9, 0x02, 0xAA, 0x81, 0x00, 0xF0, + 0x02, 0xFF, 0x80, 0x1F, 0x09, 0xFF, 0x80, 0x0F, 0x02, 0xAA, 0x81, 0x1A, 0x40, 0x02, 0xFF, 0x81, + 0xBF, 0xF0, 0x09, 0xFF, 0x80, 0x90, 0x02, 0xAA, 0x81, 0x06, 0xF4, 0x02, 0xFF, 0x81, 0x07, 0xFE, + 0x08, 0xFF, 0x81, 0x0F, 0xA8, 0x02, 0xAA, 0x80, 0x41, 0x02, 0xFF, 0x81, 0x7F, 0xE0, 0x09, 0xFF, + 0x80, 0x80, 0x02, 0xAA, 0x81, 0x2A, 0xF8, 0x02, 0xFF, 0x81, 0x03, 0xFD, 0x08, 0xFF, 0x81, 0x0B, + 0xA8, 0x02, 0xAA, 0x80, 0x86, 0x02, 0xFF, 0x81, 0x3F, 0xD0, 0x08, 0xFF, 0x81, 0x7F, 0x80, 0x02, + 0xAA, 0x81, 0x6A, 0xFC, 0x02, 0xFF, 0x81, 0x07, 0xFC, 0x08, 0xFF, 0x81, 0x03, 0xA8, 0x02, 0xAA, + 0x80, 0xCA, 0x02, 0xFF, 0x83, 0xBF, 0x80, 0xFF, 0xD7, 0x04, 0xFF, 0x83, 0xBF, 0xFD, 0x3F, 0x80, + 0x03, 0xAA, 0x80, 0xFD, 0x02, 0xFF, 0x83, 0x0F, 0xF4, 0x0F, 0xF8, 0x04, 0xFF, 0x83, 0x02, 0xFE, + 0x02, 0xA9, 0x02, 0xAA, 0x80, 0xEA, 0x03, 0xFF, 0x82, 0x01, 0x2E, 0x00, 0x04, 0xFF, 0x83, 0x1F, + 0x80, 0x0F, 0xA0, 0x03, 0xAA, 0x03, 0xFF, 0x80, 0x3F, 0x02, 0x00, 0x80, 0xE0, 0x04, 0xFF, 0x02, + 0x00, 0x80, 0x80, 0x03, 0xAA, 0x80, 0xEA, 0x03, 0xFF, 0x80, 0x0F, 0x02, 0x00, 0x80, 0xFD, 0x03, + 0xFF, 0x80, 0x0B, 0x02, 0x00, 0x80, 0xA9, 0x02, 0xAA, 0x81, 0x6A, 0xFD, 0x03, 0xFF, 0x82, 0x07, + 0x00, 0x80, 0x03, 0xFF, 0x80, 0x3F, 0x02, 0x00, 0x80, 0xA9, 0x03, 0xAA, 0x80, 0xC2, 0x03, 0xFF, + 0x80, 0xBF, 0x02, 0x00, 0x80, 0xF4, 0x03, 0xFF, 0x82, 0x02, 0x00, 0xA0, 0x03, 0xAA, 0x81, 0x2A, + 0xFC, 0x03, 0xFF, 0x80, 0x07, 0x02, 0x00, 0x80, 0xFE, 0x02, 0xFF, 0x80, 0x0F, 0x02, 0x00, 0x80, + 0xA9, 0x03, 0xAA, 0x80, 0xC2, 0x03, 0xFF, 0x80, 0x2F, 0x02, 0x00, 0x80, 0xC0, 0x02, 0xFF, 0x80, + 0x7F, 0x03, 0x00, 0x03, 0xAA, 0x81, 0x1A, 0xF8, 0x02, 0xFF, 0x80, 0xBF, 0x03, 0x00, 0x80, 0xF4, + 0x02, 0xFF, 0x80, 0x02, 0x02, 0x00, 0x80, 0x90, 0x03, 0xAA, 0x80, 0x81, 0x03, 0xFF, 0x80, 0x07, + 0x03, 0x00, 0x82, 0xFD, 0xFF, 0x07, 0x03, 0x00, 0x80, 0xA8, 0x02, 0xAA, 0x81, 0x1A, 0xF8, 0x02, + 0xFF, 0x80, 0x2F, 0x03, 0x00, 0x83, 0x94, 0xFF, 0x6F, 0x01, 0x02, 0x00, 0x80, 0x40, 0x03, 0xAA, + 0x80, 0x82, 0x03, 0xFF, 0x80, 0x01, 0x02, 0x00, 0x80, 0x80, 0x02, 0xFF, 0x80, 0x7F, 0x03, 0x00, + 0x80, 0xA0, 0x02, 0xAA, 0x81, 0x2A, 0xF8, 0x02, 0xFF, 0x80, 0x0F, 0x03, 0x00, 0x80, 0xFC, 0x02, + 0xFF, 0x80, 0x03, 0x03, 0x00, 0x80, 0xA9, 0x02, 0xAA, 0x80, 0x82, 0x02, 0xFF, 0x80, 0x7F, 0x03, + 0x00, 0x80, 0xC0, 0x02, 0xFF, 0x80, 0x7F, 0x03, 0x00, 0x80, 0x80, 0x02, 0xAA, 0x81, 0x6A, 0xF8, + 0x02, 0xFF, 0x80, 0x07, 0x03, 0x00, 0x80, 0xFC, 0x02, 0xFF, 0x80, 0x07, 0x03, 0x00, 0x80, 0xA8, + 0x02, 0xAA, 0x80, 0xC6, 0x02, 0xFF, 0x80, 0x3F, 0x03, 0x00, 0x80, 0xD0, 0x02, 0xFF, 0x80, 0x7F, + 0x03, 0x00, 0x80, 0x40, 0x02, 0xAA, 0x81, 0x6A, 0xFC, 0x02, 0xFF, 0x80, 0x02, 0x03, 0x00, 0x80, + 0xFD, 0x02, 0xFF, 0x80, 0x0B, 0x03, 0x00, 0x80, 0xA4, 0x02, 0xAA, 0x80, 0xC6, 0x02, 0xFF, 0x80, + 0x2F, 0x03, 0x00, 0x83, 0xE0, 0xBF, 0xD0, 0xBF, 0x04, 0x00, 0x02, 0xAA, 0x81, 0x6A, 0xFC, 0x02, + 0xFF, 0x80, 0x01, 0x03, 0x00, 0x83, 0xFE, 0x03, 0xF8, 0x0F, 0x03, 0x00, 0x80, 0xA0, 0x02, 0xAA, + 0x80, 0xC6, 0x02, 0xFF, 0x80, 0x1F, 0x03, 0x00, 0x83, 0xF0, 0x1F, 0x00, 0xFF, 0x04, 0x00, 0x02, + 0xAA, 0x81, 0x6A, 0xFC, 0x02, 0xFF, 0x80, 0x01, 0x02, 0x00, 0x84, 0x40, 0xBF, 0x00, 0xE0, 0x1F, + 0x03, 0x00, 0x80, 0xA0, 0x02, 0xAA, 0x80, 0xC6, 0x02, 0xFF, 0x80, 0x1F, 0x03, 0x00, 0x84, 0xF4, + 0x07, 0x00, 0xFC, 0x02, 0x03, 0x00, 0x02, 0xAA, 0x81, 0x2A, 0xFC, 0x02, 0xFF, 0x80, 0x02, 0x02, + 0x00, 0x84, 0x80, 0x3F, 0x00, 0x80, 0x3F, 0x03, 0x00, 0x80, 0xA0, 0x02, 0xAA, 0x80, 0x82, 0x02, + 0xFF, 0x80, 0x2F, 0x03, 0x00, 0x84, 0xFD, 0x02, 0x00, 0xF8, 0x0B, 0x02, 0x00, 0x80, 0x40, 0x02, + 0xAA, 0x81, 0x2A, 0xF8, 0x02, 0xFF, 0x80, 0x03, 0x02, 0x00, 0x84, 0xF0, 0x1F, 0x00, 0x40, 0xFF, + 0x03, 0x00, 0x80, 0xA8, 0x02, 0xAA, 0x80, 0x41, 0x02, 0xFF, 0x80, 0x7F, 0x02, 0x00, 0x85, 0x80, + 0xFF, 0x01, 0x00, 0xF0, 0x2F, 0x02, 0x00, 0x80, 0x80, 0x02, 0xAA, 0x81, 0x1A, 0xF0, 0x02, 0xFF, + 0x80, 0x0F, 0x02, 0x00, 0x81, 0xFE, 0x0F, 0x02, 0x00, 0x81, 0xFF, 0x0B, 0x02, 0x00, 0x80, 0xA9, + 0x02, 0xAA, 0x81, 0x00, 0xFE, 0x02, 0xFF, 0x83, 0x02, 0x00, 0xF8, 0xFF, 0x02, 0x00, 0x84, 0xE0, + 0xFF, 0x07, 0x00, 0xA0, 0x02, 0xAA, 0x81, 0x0A, 0xD0, 0x02, 0xFF, 0x84, 0xBF, 0x00, 0xF4, 0xFF, + 0x0F, 0x02, 0x00, 0x83, 0xFE, 0xFF, 0x02, 0x90, 0x02, 0xAA, 0x82, 0x6A, 0x00, 0xBC, 0x02, 0xFF, + 0x81, 0xBF, 0xFA, 0x02, 0xFF, 0x02, 0x00, 0x83, 0xE0, 0xFF, 0xBF, 0x96, 0x03, 0xAA, 0x82, 0x02, + 0x40, 0xF3, 0x05, 0xFF, 0x80, 0x0B, 0x02, 0x00, 0x82, 0xFE, 0xFF, 0xAB, 0x03, 0xAA, 0x80, 0x1A, + 0x02, 0x00, 0x05, 0xFF, 0x80, 0xBF, 0x02, 0x00, 0x82, 0xE0, 0xFF, 0xBF, 0x03, 0xAA, 0x80, 0x9A, + 0x02, 0x00, 0x80, 0xE0, 0x05, 0xFF, 0x80, 0x0B, 0x02, 0x00, 0x82, 0xFE, 0xFF, 0xAB, 0x03, 0xAA, + 0x80, 0x01, 0x02, 0x00, 0x80, 0xFD, 0x04, 0xFF, 0x80, 0xBF, 0x02, 0x00, 0x82, 0xD0, 0xFF, 0xAF, + 0x03, 0xAA, 0x80, 0x0A, 0x02, 0x00, 0x80, 0xC0, 0x05, 0xFF, 0x80, 0x0B, 0x02, 0x00, 0x81, 0xFD, + 0xFF, 0x04, 0xAA, 0x03, 0x00, 0x80, 0xF8, 0x04, 0xFF, 0x80, 0xBF, 0x02, 0x00, 0x82, 0xD0, 0xFF, + 0xAF, 0x03, 0xAA, 0x80, 0x06, 0x02, 0x00, 0x80, 0x40, 0x05, 0xFF, 0x80, 0x0B, 0x02, 0x00, 0x81, + 0xFD, 0xFF, 0x03, 0xAA, 0x80, 0x2A, 0x03, 0x00, 0x80, 0xE0, 0x04, 0xFF, 0x80, 0xBF, 0x02, 0x00, + 0x82, 0xD0, 0xFF, 0xAF, 0x03, 0xAA, 0x80, 0x01, 0x03, 0x00, 0x80, 0xFD, 0x04, 0xFF, 0x84, 0x1B, + 0x00, 0x40, 0xFE, 0xBF, 0x03, 0xAA, 0x80, 0x0A, 0x03, 0x00, 0x80, 0xD0, 0x05, 0xFF, 0x84, 0x0F, + 0x00, 0xFE, 0xFF, 0xAB, 0x02, 0xAA, 0x80, 0x6A, 0x04, 0x00, 0x80, 0xFD, 0x05, 0xFF, 0x83, 0x90, + 0xE0, 0xFF, 0xBF, 0x03, 0xAA, 0x80, 0x02, 0x03, 0x00, 0x80, 0xE0, 0x05, 0xFF, 0x84, 0x4F, 0x2F, + 0xFE, 0xFF, 0xAB, 0x02, 0xAA, 0x80, 0x6A, 0x04, 0x00, 0x06, 0xFF, 0x83, 0xFD, 0xFB, 0xFF, 0xBF, + 0x03, 0xAA, 0x80, 0x0A, 0x03, 0x00, 0x80, 0xF4, 0x09, 0xFF, 0x04, 0xAA, 0x03, 0x00, 0x80, 0x80, + 0x09, 0xFF, 0x80, 0xAF, 0x03, 0xAA, 0x80, 0x1A, 0x03, 0x00, 0x80, 0xF8, 0x09, 0xFF, 0x04, 0xAA, + 0x80, 0x02, 0x02, 0x00, 0x80, 0xC0, 0x02, 0xFF, 0x80, 0xEB, 0x06, 0xFF, 0x80, 0xAF, 0x03, 0xAA, + 0x80, 0x2A, 0x03, 0x00, 0x83, 0xFC, 0xFF, 0x2F, 0xFE, 0x05, 0xFF, 0x80, 0xBF, 0x04, 0xAA, 0x80, + 0x02, 0x02, 0x00, 0x83, 0xD0, 0xFF, 0xBF, 0xF0, 0x06, 0xFF, 0x80, 0xAB, 0x03, 0xAA, 0x80, 0x2A, + 0x03, 0x00, 0x82, 0xFD, 0xFF, 0x07, 0x06, 0xFF, 0x85, 0xBF, 0xAA, 0x6A, 0xA9, 0xAA, 0x06, 0x02, + 0x00, 0x8E, 0xD0, 0xFF, 0x7F, 0xF0, 0xFF, 0xFE, 0xBF, 0xFF, 0xEF, 0xFF, 0x9B, 0xAA, 0x81, 0xAA, + 0x6A, 0x03, 0x00, 0x8E, 0xFD, 0xFF, 0x07, 0xFF, 0xDF, 0xFF, 0xF7, 0xFF, 0xFD, 0x2F, 0xAA, 0x0A, + 0xA8, 0xAA, 0x06, 0x02, 0x00, 0x8E, 0xD0, 0xFF, 0x7F, 0xE0, 0xFF, 0xFD, 0x7F, 0xFE, 0xCF, 0xFF, + 0xA2, 0xAA, 0x80, 0xAA, 0x6A, 0x03, 0x00, 0x8E, 0xFD, 0xFF, 0x07, 0xFD, 0x9F, 0xFF, 0xE7, 0xFF, + 0xFC, 0x2F, 0xAA, 0x0A, 0xA8, 0xAA, 0x06, 0x02, 0x00, 0x8E, 0xD0, 0xFF, 0x7F, 0xD0, 0xFF, 0xF9, + 0x3F, 0xFE, 0xCF, 0xFF, 0xA2, 0x6A, 0x80, 0xAA, 0x6A, 0x03, 0x00, 0x8E, 0xFC, 0xFF, 0x07, 0xFC, + 0x9F, 0xFF, 0xE3, 0xFF, 0xFC, 0x1B, 0xAA, 0x02, 0xA8, 0xAA, 0x02, 0x02, 0x00, 0x8E, 0xC0, 0xFF, + 0x3F, 0x80, 0xFF, 0xF5, 0x3F, 0xFF, 0xCF, 0xBF, 0xA1, 0x2A, 0x80, 0xAA, 0x2A, 0x03, 0x00, 0x8E, + 0xF8, 0xBF, 0x00, 0xF4, 0x5F, 0xFF, 0xF3, 0xFF, 0xF9, 0x1B, 0xAA, 0x01, 0x90, 0xAA, 0x02, 0x02, + 0x00, 0x81, 0x40, 0x6F, 0x02, 0x00, 0x8A, 0xFF, 0xF5, 0x3F, 0xFF, 0x9F, 0xAF, 0xA1, 0x0A, 0x00, + 0xA0, 0x2A, 0x03, 0x00, 0x80, 0x70, 0x02, 0x00, 0x87, 0xF0, 0x5F, 0xFF, 0xF3, 0xFF, 0xF9, 0x1A, + 0xAA, 0x02, 0x00, 0x81, 0x90, 0x01, 0x06, 0x00, 0x87, 0xFE, 0xF1, 0x2F, 0xFF, 0x5F, 0xAF, 0xA1, + 0x0A, 0x09, 0x00, 0x87, 0xD0, 0x1F, 0xFF, 0xF2, 0xFF, 0xF5, 0x0A, 0x6A, 0x0A, 0x00, 0x87, 0xFC, + 0xF2, 0x1F, 0xFF, 0x5F, 0xAB, 0xA0, 0x02, 0x09, 0x00, 0x87, 0xC0, 0x1F, 0xFF, 0xF0, 0xFF, 0xB0, + 0x0A, 0x2A, 0x0A, 0x00, 0x87, 0xF8, 0xE1, 0x0F, 0xFE, 0x0F, 0xAA, 0xA0, 0x02, 0x09, 0x00, 0x87, + 0x80, 0x0F, 0x7D, 0xD0, 0x7F, 0x90, 0x06, 0x1A, 0x0A, 0x00, 0x87, 0xB4, 0x80, 0x03, 0xF8, 0x03, + 0x28, 0x90, 0x01, 0x0A, 0x00, 0x83, 0x02, 0x00, 0x40, 0x1F, 0x02, 0x00, 0x80, 0x08, 0x09, 0x00, + 0x81, 0x02, 0x0E, 0x02, 0x00, 0x80, 0x50, 0x02, 0x00, 0x82, 0x40, 0x0A, 0x04, 0x07, 0x00, 0x83, + 0x70, 0xF0, 0x02, 0xA0, 0x02, 0x00, 0x83, 0x40, 0x00, 0xA4, 0x80, 0x07, 0x00, 0x8A, 0x40, 0x0B, + 0x7F, 0x00, 0x1F, 0xE0, 0x00, 0x0A, 0x80, 0x0A, 0x18, 0x07, 0x00, 0x8A, 0xF8, 0xF0, 0x0F, 0xF4, + 0x02, 0x1F, 0xA4, 0x01, 0xA9, 0x90, 0x01, 0x06, 0x00, 0x8A, 0x80, 0x1F, 0xFF, 0x82, 0x7F, 0xF4, + 0x82, 0x1A, 0xA0, 0x0A, 0x2A, 0x07, 0x00, 0x8A, 0xF8, 0xF2, 0x3F, 0xFC, 0xDF, 0xBF, 0xAA, 0x82, + 0xAA, 0xA4, 0x02, 0x06, 0x00, 0x83, 0x80, 0x7F, 0xFE, 0xDB, 0x02, 0xFF, 0x84, 0xAB, 0x6A, 0xA9, + 0x8A, 0x2A, 0x07, 0x00, 0x81, 0xF8, 0xEF, 0x03, 0xFF, 0x80, 0xBF, 0x02, 0xAA, 0x82, 0x6A, 0xAA, + 0x02, 0x06, 0x00, 0x80, 0x80, 0x05, 0xFF, 0x80, 0xAB, 0x03, 0xAA, 0x80, 0x2A, 0x07, 0x00, 0x80, + 0xF4, 0x04, 0xFF, 0x80, 0xAF, 0x04, 0xAA, 0x80, 0x01, 0x06, 0x00, 0x80, 0x40, 0x05, 0xFF, 0x04, + 0xAA, 0x80, 0x1A, 0x07, 0x00, 0x80, 0xF0, 0x04, 0xFF, 0x80, 0xAF, 0x04, 0xAA, 0x08, 0x00, 0x80, + 0xFE, 0x03, 0xFF, 0x80, 0xBF, 0x04, 0xAA, 0x80, 0x0A, 0x07, 0x00, 0x80, 0xE0, 0x04, 0xFF, 0x80, + 0xAB, 0x03, 0xAA, 0x80, 0x6A, 0x08, 0x00, 0x80, 0xFD, 0x03, 0xFF, 0x80, 0xBF, 0x04, 0xAA, 0x80, + 0x02, 0x07, 0x00, 0x80, 0xC0, 0x04, 0xFF, 0x04, 0xAA, 0x80, 0x2A, 0x08, 0x00, 0x80, 0xF4, 0x03, + 0xFF, 0x80, 0xAF, 0x04, 0xAA, 0x80, 0x01, 0x08, 0x00, 0x03, 0xFF, 0x80, 0xBF, 0x04, 0xAA, 0x80, + 0x0A, 0x08, 0x00, 0x84, 0xE0, 0x6F, 0xFE, 0xFF, 0xAB, 0x02, 0xAA, 0x81, 0x5A, 0x6A, 0x09, 0x00, + 0x83, 0xFD, 0x40, 0xFF, 0xBF, 0x02, 0xAA, 0x82, 0x0A, 0x90, 0x02, 0x08, 0x00, 0x83, 0x80, 0x07, + 0x40, 0xFE, 0x02, 0xAA, 0x82, 0x1A, 0x00, 0x28, 0x0C, 0x00, 0x82, 0xA9, 0xAA, 0x05, 0x07, 0x00, +}; +// clang-format on diff --git a/keyboards/tzarc/ghoul/graphics/ghoul-name.qgf.c b/keyboards/tzarc/ghoul/graphics/ghoul-name.qgf.c new file mode 100644 index 00000000000..4f67bb484d6 --- /dev/null +++ b/keyboards/tzarc/ghoul/graphics/ghoul-name.qgf.c @@ -0,0 +1,37 @@ +// Copyright 2022 QMK -- generated source code only, image retains original copyright +// SPDX-License-Identifier: GPL-2.0-or-later + +// This file was auto-generated by `qmk painter-convert-graphics -i ghoul-name.png -f mono4` + +#include + +const uint32_t gfx_ghoul_name_length = 371; + +// clang-format off +const uint8_t gfx_ghoul_name[371] = { + 0x00, 0xFF, 0x12, 0x00, 0x00, 0x51, 0x47, 0x46, 0x01, 0x73, 0x01, 0x00, 0x00, 0x8C, 0xFE, 0xFF, + 0xFF, 0x16, 0x00, 0x44, 0x00, 0x01, 0x00, 0x01, 0xFE, 0x04, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x02, 0xFD, 0x06, 0x00, 0x00, 0x01, 0x00, 0x01, 0xFF, 0xE8, 0x03, 0x05, 0xFA, 0x43, 0x01, 0x00, + 0x0F, 0x00, 0x81, 0xA0, 0x02, 0x04, 0x00, 0x81, 0x3F, 0x54, 0x03, 0x55, 0x81, 0xF5, 0x83, 0x04, + 0xFF, 0x81, 0x3F, 0xF8, 0x04, 0xFF, 0x80, 0x83, 0x04, 0xFF, 0x81, 0x3F, 0xF8, 0x03, 0xAA, 0x82, + 0xFA, 0x83, 0x1F, 0x03, 0x00, 0x82, 0x3F, 0xF8, 0x01, 0x02, 0x00, 0x82, 0xF0, 0x43, 0x05, 0x03, + 0x00, 0x80, 0x2A, 0x12, 0x00, 0x80, 0xA9, 0x02, 0xAA, 0x82, 0x2A, 0x00, 0xD0, 0x03, 0xFF, 0x82, + 0x03, 0x00, 0xFD, 0x02, 0xFF, 0x82, 0x3F, 0x00, 0x90, 0x02, 0xAA, 0x81, 0xFE, 0x02, 0x03, 0x00, + 0x81, 0x40, 0x1F, 0x04, 0x00, 0x81, 0xE0, 0x03, 0x03, 0x00, 0x83, 0x90, 0x7F, 0x00, 0xD0, 0x03, + 0xFF, 0x82, 0x07, 0x00, 0xFD, 0x02, 0xFF, 0x82, 0x2F, 0x00, 0xD0, 0x02, 0xFF, 0x86, 0xBF, 0x01, + 0x00, 0xA9, 0xAA, 0x6A, 0x01, 0x0D, 0x00, 0x82, 0x90, 0xAA, 0x06, 0x02, 0x00, 0x80, 0xD0, 0x02, + 0xFF, 0x82, 0x07, 0x00, 0x40, 0x03, 0xFF, 0x82, 0x01, 0x00, 0xFC, 0x02, 0xFF, 0x88, 0x2F, 0x00, + 0xD0, 0x6F, 0x55, 0xF9, 0x07, 0x00, 0xBD, 0x02, 0x00, 0x8D, 0x7E, 0x00, 0xD0, 0x0F, 0x00, 0xF0, + 0x07, 0x00, 0xFD, 0x56, 0x95, 0x3F, 0x00, 0x80, 0x03, 0xFF, 0x82, 0x02, 0x00, 0xF4, 0x02, 0xFF, + 0x80, 0x1F, 0x02, 0x00, 0x82, 0xF9, 0xFF, 0x6F, 0x03, 0x00, 0x81, 0x54, 0x15, 0x0E, 0x00, 0x80, + 0xA5, 0x02, 0xAA, 0x82, 0x02, 0x00, 0xF4, 0x02, 0xFF, 0x82, 0x3F, 0x00, 0xC0, 0x03, 0xFF, 0x88, + 0x03, 0x00, 0xFD, 0xAB, 0xAA, 0x2A, 0x00, 0xD0, 0x1F, 0x04, 0x00, 0x80, 0xB8, 0x03, 0x00, 0x82, + 0x40, 0x55, 0x5E, 0x02, 0x00, 0x80, 0x80, 0x04, 0xFF, 0x81, 0x3F, 0xF8, 0x04, 0xFF, 0x80, 0x83, + 0x04, 0xFF, 0x81, 0x3F, 0xA4, 0x04, 0xAA, 0x80, 0x02, 0x0B, 0x00, 0x81, 0x40, 0x01, 0x02, 0x55, + 0x83, 0x15, 0x80, 0x2F, 0xF0, 0x02, 0xFF, 0x82, 0x03, 0xFE, 0x02, 0x02, 0xFF, 0x83, 0x3F, 0xF4, + 0x2F, 0xF0, 0x02, 0xFF, 0x8C, 0x83, 0x7F, 0x00, 0xBF, 0x95, 0x1B, 0xF8, 0x01, 0xE0, 0x07, 0xE0, + 0x82, 0x1F, 0x03, 0x00, 0x82, 0x3E, 0xF8, 0x5B, 0x02, 0x55, 0x81, 0xFD, 0x47, 0x04, 0xFF, 0x81, + 0x3F, 0xE0, 0x04, 0xFF, 0x81, 0x02, 0xF8, 0x03, 0xFF, 0x82, 0x07, 0x00, 0x54, 0x02, 0x55, 0x80, + 0x05, 0x06, 0x00, +}; +// clang-format on diff --git a/keyboards/tzarc/ghoul/graphics/lock-caps.qgf.c b/keyboards/tzarc/ghoul/graphics/lock-caps.qgf.c new file mode 100644 index 00000000000..6026edff8ff --- /dev/null +++ b/keyboards/tzarc/ghoul/graphics/lock-caps.qgf.c @@ -0,0 +1,20 @@ +// Copyright 2022 QMK -- generated source code only, image retains original copyright +// SPDX-License-Identifier: GPL-2.0-or-later + +// This file was auto-generated by `qmk painter-convert-graphics -i lock-caps.png -f mono4` + +#include + +const uint32_t gfx_lock_caps_length = 108; + +// clang-format off +const uint8_t gfx_lock_caps[108] = { + 0x00, 0xFF, 0x12, 0x00, 0x00, 0x51, 0x47, 0x46, 0x01, 0x6C, 0x00, 0x00, 0x00, 0x93, 0xFF, 0xFF, + 0xFF, 0x0F, 0x00, 0x10, 0x00, 0x01, 0x00, 0x01, 0xFE, 0x04, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x02, 0xFD, 0x06, 0x00, 0x00, 0x01, 0x00, 0x00, 0xFF, 0xE8, 0x03, 0x05, 0xFA, 0x3C, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xA8, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0xD0, 0x2F, 0x00, 0x00, + 0xF4, 0x0B, 0x00, 0x00, 0xEE, 0x03, 0x00, 0xC0, 0xF7, 0x00, 0x00, 0xF0, 0x7D, 0x00, 0x00, 0x3D, + 0x2F, 0x00, 0x40, 0x8F, 0x0B, 0x00, 0xE0, 0xFF, 0x03, 0x00, 0xFC, 0xFF, 0x00, 0x00, 0x6F, 0x7D, + 0x00, 0xC0, 0x07, 0x2F, 0x00, 0xF4, 0xC1, 0x0B, 0x00, 0x00, 0x00, 0x00, +}; +// clang-format on diff --git a/keyboards/tzarc/ghoul/graphics/lock-num.qgf.c b/keyboards/tzarc/ghoul/graphics/lock-num.qgf.c new file mode 100644 index 00000000000..688b9b33089 --- /dev/null +++ b/keyboards/tzarc/ghoul/graphics/lock-num.qgf.c @@ -0,0 +1,20 @@ +// Copyright 2022 QMK -- generated source code only, image retains original copyright +// SPDX-License-Identifier: GPL-2.0-or-later + +// This file was auto-generated by `qmk painter-convert-graphics -i lock-num.png -f mono4` + +#include + +const uint32_t gfx_lock_num_length = 108; + +// clang-format off +const uint8_t gfx_lock_num[108] = { + 0x00, 0xFF, 0x12, 0x00, 0x00, 0x51, 0x47, 0x46, 0x01, 0x6C, 0x00, 0x00, 0x00, 0x93, 0xFF, 0xFF, + 0xFF, 0x0F, 0x00, 0x10, 0x00, 0x01, 0x00, 0x01, 0xFE, 0x04, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x02, 0xFD, 0x06, 0x00, 0x00, 0x01, 0x00, 0x00, 0xFF, 0xE8, 0x03, 0x05, 0xFA, 0x3C, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xA4, 0x02, 0x00, 0x40, 0xBF, 0x00, 0x00, 0xF8, 0x2F, 0x00, 0x00, + 0xCA, 0x0B, 0x00, 0x00, 0xF0, 0x02, 0x00, 0x00, 0xBC, 0x00, 0x00, 0x00, 0x2F, 0x00, 0x00, 0xC0, + 0x0B, 0x00, 0x00, 0xF0, 0x02, 0x00, 0x00, 0xBC, 0x00, 0x00, 0x00, 0x2F, 0x00, 0x00, 0xC0, 0x0B, + 0x00, 0x00, 0xF0, 0x02, 0x00, 0x00, 0xBC, 0x00, 0x00, 0x00, 0x00, 0x00, +}; +// clang-format on diff --git a/keyboards/tzarc/ghoul/graphics/lock-scrl.qgf.c b/keyboards/tzarc/ghoul/graphics/lock-scrl.qgf.c new file mode 100644 index 00000000000..86843bdbb69 --- /dev/null +++ b/keyboards/tzarc/ghoul/graphics/lock-scrl.qgf.c @@ -0,0 +1,20 @@ +// Copyright 2022 QMK -- generated source code only, image retains original copyright +// SPDX-License-Identifier: GPL-2.0-or-later + +// This file was auto-generated by `qmk painter-convert-graphics -i lock-scrl.png -f mono4` + +#include + +const uint32_t gfx_lock_scrl_length = 108; + +// clang-format off +const uint8_t gfx_lock_scrl[108] = { + 0x00, 0xFF, 0x12, 0x00, 0x00, 0x51, 0x47, 0x46, 0x01, 0x6C, 0x00, 0x00, 0x00, 0x93, 0xFF, 0xFF, + 0xFF, 0x0F, 0x00, 0x10, 0x00, 0x01, 0x00, 0x01, 0xFE, 0x04, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x02, 0xFD, 0x06, 0x00, 0x00, 0x01, 0x00, 0x00, 0xFF, 0xE8, 0x03, 0x05, 0xFA, 0x3C, 0x00, 0x00, + 0x00, 0x40, 0x00, 0x00, 0x00, 0xFD, 0x01, 0x00, 0xD0, 0xFF, 0x01, 0x00, 0xBE, 0xF8, 0x02, 0xE0, + 0x2F, 0xFE, 0x02, 0xBD, 0x8B, 0xFB, 0x01, 0xE1, 0xE2, 0x12, 0x00, 0xB8, 0xB8, 0x00, 0x00, 0x2E, + 0x2E, 0x00, 0x84, 0x8B, 0x4B, 0x40, 0xEF, 0xE2, 0x7E, 0x80, 0xBF, 0xF8, 0x0B, 0x80, 0x2F, 0xBE, + 0x00, 0x40, 0xFF, 0x07, 0x00, 0x40, 0x7F, 0x00, 0x00, 0x00, 0x01, 0x00, +}; +// clang-format on diff --git a/keyboards/tzarc/ghoul/graphics/thintel15.qff.c b/keyboards/tzarc/ghoul/graphics/thintel15.qff.c new file mode 100644 index 00000000000..237f2e9e5fe --- /dev/null +++ b/keyboards/tzarc/ghoul/graphics/thintel15.qff.c @@ -0,0 +1,74 @@ +// Copyright 2022 QMK -- generated source code only, font retains original copyright +// SPDX-License-Identifier: GPL-2.0-or-later + +// This file was auto-generated by `qmk painter-convert-font-image -i thintel15.png -f mono2` + +#include + +const uint32_t font_thintel15_length = 966; + +// clang-format off +const uint8_t font_thintel15[966] = { + 0x00, 0xFF, 0x14, 0x00, 0x00, 0x51, 0x46, 0x46, 0x01, 0xC6, 0x03, 0x00, 0x00, 0x39, 0xFC, 0xFF, + 0xFF, 0x0B, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x01, 0xFE, 0x1D, 0x01, 0x00, 0x02, 0x00, + 0x00, 0xC2, 0x00, 0x00, 0x84, 0x01, 0x00, 0x06, 0x03, 0x00, 0x46, 0x05, 0x00, 0x88, 0x07, 0x00, + 0x46, 0x0A, 0x00, 0x82, 0x0C, 0x00, 0x43, 0x0D, 0x00, 0x83, 0x0E, 0x00, 0xC4, 0x0F, 0x00, 0x46, + 0x11, 0x00, 0x83, 0x13, 0x00, 0xC5, 0x14, 0x00, 0x82, 0x16, 0x00, 0x44, 0x17, 0x00, 0xC5, 0x18, + 0x00, 0x84, 0x1A, 0x00, 0x05, 0x1C, 0x00, 0xC5, 0x1D, 0x00, 0x85, 0x1F, 0x00, 0x45, 0x21, 0x00, + 0x05, 0x23, 0x00, 0xC5, 0x24, 0x00, 0x85, 0x26, 0x00, 0x45, 0x28, 0x00, 0x02, 0x2A, 0x00, 0xC3, + 0x2A, 0x00, 0x05, 0x2C, 0x00, 0xC5, 0x2D, 0x00, 0x85, 0x2F, 0x00, 0x45, 0x31, 0x00, 0x08, 0x33, + 0x00, 0xC5, 0x35, 0x00, 0x85, 0x37, 0x00, 0x45, 0x39, 0x00, 0x05, 0x3B, 0x00, 0xC4, 0x3C, 0x00, + 0x44, 0x3E, 0x00, 0xC5, 0x3F, 0x00, 0x85, 0x41, 0x00, 0x44, 0x43, 0x00, 0xC5, 0x44, 0x00, 0x85, + 0x46, 0x00, 0x44, 0x48, 0x00, 0xC6, 0x49, 0x00, 0x06, 0x4C, 0x00, 0x45, 0x4E, 0x00, 0x05, 0x50, + 0x00, 0xC5, 0x51, 0x00, 0x85, 0x53, 0x00, 0x45, 0x55, 0x00, 0x06, 0x57, 0x00, 0x45, 0x59, 0x00, + 0x06, 0x5B, 0x00, 0x46, 0x5D, 0x00, 0x86, 0x5F, 0x00, 0xC6, 0x61, 0x00, 0x06, 0x64, 0x00, 0x44, + 0x66, 0x00, 0xC4, 0x67, 0x00, 0x44, 0x69, 0x00, 0xC6, 0x6A, 0x00, 0x05, 0x6D, 0x00, 0xC3, 0x6E, + 0x00, 0x05, 0x70, 0x00, 0xC5, 0x71, 0x00, 0x84, 0x73, 0x00, 0x05, 0x75, 0x00, 0xC5, 0x76, 0x00, + 0x84, 0x78, 0x00, 0x05, 0x7A, 0x00, 0xC5, 0x7B, 0x00, 0x82, 0x7D, 0x00, 0x43, 0x7E, 0x00, 0x85, + 0x7F, 0x00, 0x42, 0x81, 0x00, 0x06, 0x82, 0x00, 0x45, 0x84, 0x00, 0x05, 0x86, 0x00, 0xC5, 0x87, + 0x00, 0x85, 0x89, 0x00, 0x44, 0x8B, 0x00, 0xC5, 0x8C, 0x00, 0x83, 0x8E, 0x00, 0xC5, 0x8F, 0x00, + 0x86, 0x91, 0x00, 0xC6, 0x93, 0x00, 0x06, 0x96, 0x00, 0x45, 0x98, 0x00, 0x04, 0x9A, 0x00, 0x85, + 0x9B, 0x00, 0x42, 0x9D, 0x00, 0x05, 0x9E, 0x00, 0xC5, 0x9F, 0x00, 0x04, 0xFB, 0x86, 0x02, 0x00, + 0x00, 0x00, 0x00, 0x54, 0x45, 0x00, 0x50, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x45, 0xFD, 0xD2, + 0xAF, 0x28, 0x00, 0x00, 0x00, 0x84, 0x53, 0x15, 0x0E, 0x55, 0x39, 0x04, 0x00, 0x00, 0x00, 0x00, + 0x12, 0x15, 0x0A, 0x28, 0x54, 0x24, 0x00, 0x00, 0x00, 0x80, 0x50, 0x14, 0x52, 0x95, 0x58, 0x00, + 0x00, 0x00, 0x14, 0x00, 0x00, 0x4A, 0x92, 0x24, 0x02, 0x00, 0x91, 0x24, 0x49, 0x01, 0x00, 0x20, + 0x27, 0x05, 0x00, 0x00, 0x00, 0x00, 0x40, 0x10, 0x1F, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x60, 0x0A, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x24, 0x22, + 0x11, 0x00, 0x00, 0xC0, 0xA4, 0x94, 0x52, 0x32, 0x00, 0x00, 0x20, 0x23, 0x22, 0x72, 0x00, 0x00, + 0xC0, 0x24, 0x44, 0x44, 0x78, 0x00, 0x00, 0xC0, 0x24, 0x44, 0x50, 0x32, 0x00, 0x00, 0x80, 0x29, + 0x95, 0x1E, 0x42, 0x00, 0x00, 0xE0, 0x85, 0x83, 0x50, 0x32, 0x00, 0x00, 0xC0, 0xA4, 0x70, 0x52, + 0x32, 0x00, 0x00, 0xE0, 0x21, 0x42, 0x84, 0x10, 0x00, 0x00, 0xC0, 0xA4, 0x64, 0x52, 0x32, 0x00, + 0x00, 0xC0, 0xA4, 0xE4, 0x50, 0x32, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x30, 0x60, 0x0A, 0x00, + 0x00, 0x11, 0x11, 0x04, 0x41, 0x00, 0x00, 0x00, 0x80, 0x07, 0x1E, 0x00, 0x00, 0x00, 0x20, 0x08, + 0x82, 0x88, 0x08, 0x00, 0x00, 0xC0, 0x24, 0x64, 0x04, 0x10, 0x00, 0x00, 0x00, 0x1C, 0x22, 0x59, + 0x55, 0x2D, 0x02, 0x1C, 0x00, 0x00, 0x00, 0xC0, 0xA4, 0xF4, 0x52, 0x4A, 0x00, 0x00, 0xE0, 0xA4, + 0x74, 0x52, 0x3A, 0x00, 0x00, 0xC0, 0xA4, 0x10, 0x42, 0x32, 0x00, 0x00, 0xE0, 0xA4, 0x94, 0x52, + 0x3A, 0x00, 0x00, 0x70, 0x11, 0x17, 0x71, 0x00, 0x00, 0x70, 0x11, 0x17, 0x11, 0x00, 0x00, 0xC0, + 0xA4, 0xD0, 0x52, 0x32, 0x00, 0x00, 0x20, 0xA5, 0xF4, 0x52, 0x4A, 0x00, 0x00, 0x70, 0x22, 0x22, + 0x72, 0x00, 0x00, 0xC0, 0x21, 0x84, 0x50, 0x32, 0x00, 0x00, 0x20, 0xA5, 0x32, 0x4A, 0x4A, 0x00, + 0x00, 0x10, 0x11, 0x11, 0x71, 0x00, 0x00, 0x40, 0xB4, 0x55, 0x51, 0x14, 0x45, 0x00, 0x00, 0x00, + 0x40, 0x34, 0x55, 0x59, 0x14, 0x45, 0x00, 0x00, 0x00, 0xC0, 0xA4, 0x94, 0x52, 0x32, 0x00, 0x00, + 0xE0, 0xA4, 0x74, 0x42, 0x08, 0x00, 0x00, 0xC0, 0xA4, 0x94, 0x52, 0x51, 0x00, 0x00, 0xE0, 0xA4, + 0x74, 0x52, 0x4A, 0x00, 0x00, 0xC0, 0xA4, 0x60, 0x50, 0x32, 0x00, 0x00, 0xC0, 0x47, 0x10, 0x04, + 0x41, 0x10, 0x00, 0x00, 0x00, 0x20, 0xA5, 0x94, 0x52, 0x32, 0x00, 0x00, 0x40, 0x14, 0x45, 0x51, + 0xA4, 0x10, 0x00, 0x00, 0x00, 0x40, 0x14, 0x45, 0x51, 0xB5, 0x45, 0x00, 0x00, 0x00, 0x40, 0x14, + 0x29, 0x84, 0x12, 0x45, 0x00, 0x00, 0x00, 0x40, 0x14, 0x45, 0x0E, 0x41, 0x10, 0x00, 0x00, 0x00, + 0xC0, 0x07, 0x21, 0x84, 0x10, 0x7C, 0x00, 0x00, 0x00, 0x17, 0x11, 0x11, 0x11, 0x07, 0x00, 0x10, + 0x21, 0x22, 0x44, 0x00, 0x00, 0x47, 0x44, 0x44, 0x44, 0x07, 0x00, 0x84, 0x12, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x93, 0x5C, 0x72, 0x00, 0x00, 0x20, 0x84, 0x93, 0x52, 0x3A, 0x00, 0x00, 0x00, 0x60, + 0x11, 0x61, 0x00, 0x00, 0x00, 0x21, 0x97, 0x52, 0x72, 0x00, 0x00, 0x00, 0x00, 0x93, 0x5E, 0x70, + 0x00, 0x00, 0x60, 0x11, 0x13, 0x11, 0x00, 0x00, 0x00, 0x00, 0x97, 0x52, 0x72, 0x28, 0x19, 0x20, + 0x84, 0x93, 0x52, 0x4A, 0x00, 0x00, 0x10, 0x55, 0x00, 0x80, 0x20, 0x49, 0x0A, 0x00, 0x20, 0x84, + 0x94, 0x4E, 0x4A, 0x00, 0x00, 0x54, 0x55, 0x00, 0x00, 0x00, 0x2C, 0x55, 0x55, 0x55, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x93, 0x52, 0x4A, 0x00, 0x00, 0x00, 0x00, 0x93, 0x52, 0x32, 0x00, 0x00, 0x00, + 0x80, 0x93, 0x52, 0x3A, 0x21, 0x00, 0x00, 0x00, 0x97, 0x52, 0x72, 0x08, 0x01, 0x00, 0x50, 0x13, + 0x11, 0x00, 0x00, 0x00, 0x00, 0x17, 0x0C, 0x3A, 0x00, 0x00, 0x48, 0x96, 0x44, 0x00, 0x00, 0x00, + 0x80, 0x94, 0x52, 0x72, 0x00, 0x00, 0x00, 0x00, 0x44, 0x51, 0xA4, 0x10, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x44, 0x51, 0x54, 0x6D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x0A, 0xA1, 0x44, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x94, 0x52, 0x72, 0x28, 0x19, 0x00, 0x70, 0x24, 0x71, 0x00, 0x00, 0x4C, 0x08, + 0x11, 0x84, 0x10, 0x0C, 0x00, 0x55, 0x55, 0x01, 0x83, 0x10, 0x82, 0x08, 0x21, 0x03, 0x00, 0x00, + 0x00, 0xB0, 0x1A, 0x00, 0x00, 0x00, +}; +// clang-format on diff --git a/keyboards/tzarc/ghoul/info.json b/keyboards/tzarc/ghoul/info.json new file mode 100644 index 00000000000..14e833c5b20 --- /dev/null +++ b/keyboards/tzarc/ghoul/info.json @@ -0,0 +1,73 @@ +{ + "manufacturer": "Tzarc", + "maintainer": "tzarc", + "url": "https://github.com/tzarc/ghoul", + "build": { + "lto": true + }, + "features": { + "bootmagic": true, + "console": true, + "encoder": true, + "mousekey": true, + "extrakey": true, + "nkro": true, + "quantum_painter": true, + "rgb_matrix": true + }, + "matrix_pins": { + "rows": ["NO_PIN","NO_PIN","NO_PIN","NO_PIN","NO_PIN","NO_PIN"], + "cols": ["NO_PIN","NO_PIN","NO_PIN","NO_PIN","NO_PIN","NO_PIN","NO_PIN","NO_PIN"] + }, + "usb": { + "vid": "0x1209", + "pid": "0x4920" + }, + "layouts": { + "LAYOUT": { + "layout": [ + { "label": "Q", "matrix": [0, 0], "w": 1, "x": 0, "y": 0 }, + { "label": "W", "matrix": [0, 4], "w": 1, "x": 1, "y": 0 }, + { "label": "E", "matrix": [1, 0], "w": 1, "x": 2, "y": 0 }, + { "label": "R", "matrix": [1, 4], "w": 1, "x": 3, "y": 0 }, + { "label": "T", "matrix": [2, 0], "w": 1, "x": 4, "y": 0 }, + { "label": "kEC", "matrix": [5, 0], "w": 1, "x": 5.5, "y": 0 }, + { "label": "Y", "matrix": [2, 4], "w": 1, "x": 7, "y": 0 }, + { "label": "U", "matrix": [3, 0], "w": 1, "x": 8, "y": 0 }, + { "label": "I", "matrix": [3, 4], "w": 1, "x": 9, "y": 0 }, + { "label": "O", "matrix": [4, 0], "w": 1, "x": 10, "y": 0 }, + { "label": "P", "matrix": [4, 4], "w": 1, "x": 11, "y": 0 }, + { "label": "A", "matrix": [0, 1], "w": 1, "x": 0, "y": 1 }, + { "label": "S", "matrix": [0, 5], "w": 1, "x": 1, "y": 1 }, + { "label": "D", "matrix": [1, 1], "w": 1, "x": 2, "y": 1 }, + { "label": "F", "matrix": [1, 5], "w": 1, "x": 3, "y": 1 }, + { "label": "G", "matrix": [2, 1], "w": 1, "x": 4, "y": 1 }, + { "label": "H", "matrix": [2, 5], "w": 1, "x": 7, "y": 1 }, + { "label": "J", "matrix": [3, 1], "w": 1, "x": 8, "y": 1 }, + { "label": "K", "matrix": [3, 5], "w": 1, "x": 9, "y": 1 }, + { "label": "L", "matrix": [4, 1], "w": 1, "x": 10, "y": 1 }, + { "label": ";", "matrix": [4, 5], "w": 1, "x": 11, "y": 1 }, + { "label": "Z", "matrix": [0, 2], "w": 1, "x": 0, "y": 2 }, + { "label": "X", "matrix": [0, 6], "w": 1, "x": 1, "y": 2 }, + { "label": "C", "matrix": [1, 2], "w": 1, "x": 2, "y": 2 }, + { "label": "V", "matrix": [1, 6], "w": 1, "x": 3, "y": 2 }, + { "label": "B", "matrix": [2, 2], "w": 1, "x": 4, "y": 2 }, + { "label": "N", "matrix": [2, 6], "w": 1, "x": 7, "y": 2 }, + { "label": "M", "matrix": [3, 2], "w": 1, "x": 8, "y": 2 }, + { "label": ",", "matrix": [3, 6], "w": 1, "x": 9, "y": 2 }, + { "label": ".", "matrix": [4, 2], "w": 1, "x": 10, "y": 2 }, + { "label": "/", "matrix": [4, 6], "w": 1, "x": 11, "y": 2 }, + { "label": "Ctrl", "matrix": [0, 3], "w": 1, "x": 0, "y": 3 }, + { "label": "Alt", "matrix": [0, 7], "w": 1, "x": 1, "y": 3 }, + { "label": "Super", "matrix": [1, 3], "w": 1, "x": 2, "y": 3 }, + { "label": "Lower", "matrix": [1, 7], "w": 1, "x": 3, "y": 3 }, + { "label": "Space", "matrix": [2, 3], "w": 1, "x": 4, "y": 3 }, + { "label": "Space", "matrix": [2, 7], "w": 1, "x": 7, "y": 3 }, + { "label": "Raise", "matrix": [3, 3], "w": 1, "x": 8, "y": 3 }, + { "label": "←", "matrix": [3, 7], "w": 1, "x": 9, "y": 3 }, + { "label": "↓", "matrix": [4, 3], "w": 1, "x": 10, "y": 3 }, + { "label": "↑", "matrix": [4, 7], "w": 1, "x": 11, "y": 3 } + ] + } + } +} diff --git a/keyboards/tzarc/ghoul/keymaps/default/config.h b/keyboards/tzarc/ghoul/keymaps/default/config.h new file mode 100644 index 00000000000..af069d28cb9 --- /dev/null +++ b/keyboards/tzarc/ghoul/keymaps/default/config.h @@ -0,0 +1,54 @@ +// Copyright 2018-2022 Nick Brassel (@tzarc) +// SPDX-License-Identifier: GPL-3.0-or-later +#pragma once + +// Configurables +#define TAPPING_TERM 200 + +// RGB settings +#define RGB_MATRIX_KEYPRESSES +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS + +// RGB 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_FRACTAL +#define ENABLE_RGB_MATRIX_PIXEL_RAIN +#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 diff --git a/keyboards/tzarc/ghoul/keymaps/default/keymap.c b/keyboards/tzarc/ghoul/keymaps/default/keymap.c new file mode 100644 index 00000000000..e64270fe4f8 --- /dev/null +++ b/keyboards/tzarc/ghoul/keymaps/default/keymap.c @@ -0,0 +1,75 @@ +// Copyright 2018-2022 Nick Brassel (@tzarc) +// SPDX-License-Identifier: GPL-3.0-or-later +#include QMK_KEYBOARD_H + +enum { _QWERTY, _LOWER, _RAISE, _ADJUST }; + +#define LOWER MO(_LOWER) +#define RAISE MO(_RAISE) + +// Left-hand home row mods +#define HOME_A LGUI_T(KC_A) +#define HOME_S LALT_T(KC_S) +#define HOME_D LSFT_T(KC_D) +#define HOME_F LCTL_T(KC_F) + +// Right-hand home row mods +#define HOME_J RCTL_T(KC_J) +#define HOME_K RSFT_T(KC_K) +#define HOME_L LALT_T(KC_L) +#define HOME_SCLN RGUI_T(KC_SCLN) + +#define SFT_ESC LSFT_T(KC_ESC) + +extern void ui_init(void); +extern void ui_task(void); + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QWERTY] = LAYOUT( + KC_Q, KC_W, KC_E, KC_R, KC_T, RGB_MOD, KC_Y, KC_U, KC_I, KC_O, KC_P, + HOME_A, HOME_S, HOME_D, HOME_F, KC_G, KC_H, HOME_J, HOME_K, HOME_L, HOME_SCLN, + KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, + SFT_ESC, KC_LCTL, KC_LGUI, KC_SPC, LOWER, RAISE, KC_SPC, KC_LALT, KC_BSPC, KC_SFTENT + ), + [_LOWER] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_MOD, 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 + ), + [_RAISE] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_MOD, 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 + ), + [_ADJUST] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_MOD, KC_TRNS, KC_TRNS, DEBUG, EEP_RST, 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; +// clang-format on + +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [_QWERTY] = {ENCODER_CCW_CW(RGB_HUI, RGB_HUD)}, + [_LOWER] = {ENCODER_CCW_CW(RGB_HUI, RGB_HUD)}, + [_RAISE] = {ENCODER_CCW_CW(RGB_HUI, RGB_HUD)}, + [_ADJUST] = {ENCODER_CCW_CW(RGB_HUI, RGB_HUD)}, +}; + +layer_state_t layer_state_set_user(layer_state_t state) { + return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); +} + +void keyboard_post_init_user(void) { + // Init the display + ui_init(); +} + +void housekeeping_task_user(void) { + // Draw the display + ui_task(); +} diff --git a/keyboards/tzarc/ghoul/keymaps/default/rules.mk b/keyboards/tzarc/ghoul/keymaps/default/rules.mk new file mode 100644 index 00000000000..8da104df857 --- /dev/null +++ b/keyboards/tzarc/ghoul/keymaps/default/rules.mk @@ -0,0 +1,5 @@ +NKRO_ENABLE = yes +ENCODER_MAP_ENABLE = yes +DEBUG_MATRIX_SCAN_RATE_ENABLE = yes +WPM_ENABLE = yes +SRC += ui.c diff --git a/keyboards/tzarc/ghoul/keymaps/default/ui.c b/keyboards/tzarc/ghoul/keymaps/default/ui.c new file mode 100644 index 00000000000..ac56e52d197 --- /dev/null +++ b/keyboards/tzarc/ghoul/keymaps/default/ui.c @@ -0,0 +1,139 @@ +// Copyright 2018-2022 Nick Brassel (@tzarc) +// SPDX-License-Identifier: GPL-3.0-or-later +#include +#include QMK_KEYBOARD_H +#include "analog.h" +#include "qp.h" +#include "qp_ssd1351.h" + +#define NUM_ADC_READS 32 + +#include "graphics/ghoul-logo.qgf.c" +#include "graphics/ghoul-name.qgf.c" +#include "graphics/lock-caps.qgf.c" +#include "graphics/lock-num.qgf.c" +#include "graphics/lock-scrl.qgf.c" +#include "graphics/thintel15.qff.c" + +static painter_device_t oled; +static painter_image_handle_t logo; +static painter_image_handle_t name; +static painter_font_handle_t font; +static painter_image_handle_t lock_caps; +static painter_image_handle_t lock_num; +static painter_image_handle_t lock_scrl; + +void ui_init(void) { + oled = qp_ssd1351_make_spi_device(128, 128, OLED_CS_PIN, OLED_DC_PIN, OLED_RST_PIN, 8, 0); + logo = qp_load_image_mem(gfx_ghoul_logo); + name = qp_load_image_mem(gfx_ghoul_name); + font = qp_load_font_mem(font_thintel15); + lock_caps = qp_load_image_mem(gfx_lock_caps); + lock_num = qp_load_image_mem(gfx_lock_num); + lock_scrl = qp_load_image_mem(gfx_lock_scrl); + + qp_init(oled, QP_ROTATION_90); + qp_rect(oled, 0, 0, 127, 127, 0, 0, 0, true); + qp_flush(oled); +} + +void ui_task(void) { + bool hue_redraw = false; + static uint16_t last_hue = 0xFFFF; + uint8_t curr_hue = rgblight_get_hue(); + if (last_hue != curr_hue) { + last_hue = curr_hue; + hue_redraw = true; + } + + if (hue_redraw) { + qp_drawimage_recolor(oled, 0, 64 - (name->height / 2), name, curr_hue, 255, 255, curr_hue, 255, 0); + qp_drawimage_recolor(oled, 127 - logo->width, 0, logo, curr_hue, 255, 255, curr_hue, 255, 0); + } + + static led_t last_led_state = {0}; + if (hue_redraw || last_led_state.raw != host_keyboard_led_state().raw) { + last_led_state.raw = host_keyboard_led_state().raw; + qp_drawimage_recolor(oled, lock_caps->width * 0, 0, lock_caps, curr_hue, 255, last_led_state.caps_lock ? 255 : 32, curr_hue, 255, 0); + qp_drawimage_recolor(oled, lock_caps->width * 1, 0, lock_num, curr_hue, 255, last_led_state.num_lock ? 255 : 32, curr_hue, 255, 0); + qp_drawimage_recolor(oled, lock_caps->width * 2, 0, lock_scrl, curr_hue, 255, last_led_state.scroll_lock ? 255 : 32, curr_hue, 255, 0); + + qp_rect(oled, lock_caps->width * 0 + 1, lock_caps->height + 2, lock_caps->width * 1 - 1, lock_caps->height + 3, curr_hue, 255, last_led_state.caps_lock ? 255 : 0, true); + qp_rect(oled, lock_caps->width * 1 + 1, lock_caps->height + 2, lock_caps->width * 2 - 1, lock_caps->height + 3, curr_hue, 255, last_led_state.num_lock ? 255 : 0, true); + qp_rect(oled, lock_caps->width * 2 + 1, lock_caps->height + 2, lock_caps->width * 3 - 1, lock_caps->height + 3, curr_hue, 255, last_led_state.scroll_lock ? 255 : 0, true); + } + +#if HAL_USE_ADC + static int16_t current_reads[NUM_ADC_READS] = {0}; + static int16_t voltage_reads[NUM_ADC_READS] = {0}; + static int write_offset = 0; + + static uint32_t last_read = 0; + if (timer_elapsed32(last_read) >= 1) { + // Perform the reads + int16_t current = analogReadPin(ADC_CURRENT_PIN); + int16_t voltage = analogReadPin(ADC_VOLTAGE_PIN); + int16_t current_ma = (int16_t)(((3300 * (int32_t)current) / ADC_SATURATION)); + int16_t voltage_mv = (int16_t)((2 * (3300 * (int32_t)voltage)) / ADC_SATURATION); + + // Duplicate the first read so that averages work + if (last_read == 0) { + for (int i = 0; i < NUM_ADC_READS; ++i) { + current_reads[i] = current_ma; + voltage_reads[i] = voltage_mv; + } + } + + // Dump in the current value + current_reads[write_offset] = current_ma; + voltage_reads[write_offset] = voltage_mv; + write_offset = (write_offset + 1) % NUM_ADC_READS; + + static int counter = 0; + counter = (counter + 1) % 2500; + if (counter == 0) { + dprintf("Current: %dmA (%d) -- Voltage: %dmV (%d)\n", (int)current_ma, (int)current, (int)voltage_mv, (int)voltage); + } + + last_read = timer_read32(); + } + + static uint32_t last_draw = 0; + if (hue_redraw || timer_elapsed32(last_draw) >= 250) { + // Accumulate + int32_t total_current_ma = 0; + int32_t total_voltage_mv = 0; + for (int i = 0; i < NUM_ADC_READS; ++i) { + total_current_ma += current_reads[i]; + total_voltage_mv += voltage_reads[i]; + } + + // Get the averages + int16_t avg_current_ma = (int16_t)(total_current_ma / NUM_ADC_READS); + int16_t avg_voltage_mv = (int16_t)(total_voltage_mv / NUM_ADC_READS); + + char buf[32] = {0}; + sprintf(buf, "Current: %dmA", avg_current_ma); + static int16_t maxlen_curr = 0; + int16_t len = qp_drawtext_recolor(oled, 0, 127 - (font->line_height * 2), font, buf, 0, 0, 32, 0, 0, 0); + if (len < maxlen_curr) { + qp_rect(oled, len, 127 - (font->line_height * 2), maxlen_curr, 127 - (font->line_height * 1), 0, 0, 0, true); + } else if (len > maxlen_curr) { + maxlen_curr = len; + } + + static int16_t maxlen_volt = 0; + sprintf(buf, "Voltage: %dmV", avg_voltage_mv); + len = qp_drawtext_recolor(oled, 0, 127 - (font->line_height * 1), font, buf, 0, 0, 32, 0, 0, 0); + if (len < maxlen_volt) { + qp_rect(oled, len, 127 - (font->line_height * 1), maxlen_volt, 127 - (font->line_height * 0), 0, 0, 0, true); + } else if (len > maxlen_volt) { + maxlen_volt = len; + } + + qp_flush(oled); + + last_draw = timer_read32(); + } +#endif // HAL_USE_ADC +} diff --git a/keyboards/tzarc/ghoul/readme.md b/keyboards/tzarc/ghoul/readme.md new file mode 100644 index 00000000000..39c51377bc3 --- /dev/null +++ b/keyboards/tzarc/ghoul/readme.md @@ -0,0 +1,29 @@ +# Ghoul + +![Ghoul](https://i.imgur.com/T8wp7cEh.jpg) + +Planck-like development board for QMK, using SparkFun MicroMod for hot-swap MCU capability. + +* Keyboard Maintainer: [tzarc](https://github.com/tzarc) +* Hardware Supported: Ghoul rev1 PCB + MicroMod STM32, MicroMod RP2040 +* Hardware Availability: [Open-source](https://github.com/tzarc/ghoul) + +Make example for this keyboard (after setting up your build environment): + + make tzarc/ghoul/rev1/stm32:default + make tzarc/ghoul/rev1/rp2040:default + +Flashing example for this keyboard: + + make tzarc/ghoul/rev1/stm32:default:flash + make tzarc/ghoul/rev1/rp2040: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 (usually Escape) and plug in the keyboard +* **Physical reset button**: Either press all 5 left-most keys on the bottom row, or hold `BOOT` and press `RESET` +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/tzarc/ghoul/rev1/info.json b/keyboards/tzarc/ghoul/rev1/info.json new file mode 100644 index 00000000000..7612fc11471 --- /dev/null +++ b/keyboards/tzarc/ghoul/rev1/info.json @@ -0,0 +1,49 @@ +{ + "usb": { + "device_version": "1.0.0" + }, + "rgb_matrix": { + "layout": [ + { "flags": 4, "matrix": [2, 3], "x": 81, "y": 64 }, + { "flags": 4, "matrix": [1, 7], "x": 61, "y": 64 }, + { "flags": 4, "matrix": [1, 3], "x": 40, "y": 64 }, + { "flags": 4, "matrix": [0, 7], "x": 20, "y": 64 }, + { "flags": 4, "matrix": [0, 3], "x": 0, "y": 64 }, + { "flags": 4, "matrix": [0, 2], "x": 0, "y": 42 }, + { "flags": 4, "matrix": [0, 6], "x": 20, "y": 42 }, + { "flags": 4, "matrix": [1, 2], "x": 40, "y": 42 }, + { "flags": 4, "matrix": [1, 6], "x": 61, "y": 42 }, + { "flags": 4, "matrix": [2, 2], "x": 81, "y": 42 }, + { "flags": 4, "matrix": [2, 1], "x": 81, "y": 21 }, + { "flags": 4, "matrix": [1, 5], "x": 61, "y": 21 }, + { "flags": 4, "matrix": [1, 1], "x": 40, "y": 21 }, + { "flags": 4, "matrix": [0, 5], "x": 20, "y": 21 }, + { "flags": 4, "matrix": [0, 1], "x": 0, "y": 21 }, + { "flags": 4, "matrix": [0, 0], "x": 0, "y": 0 }, + { "flags": 4, "matrix": [0, 4], "x": 20, "y": 0 }, + { "flags": 4, "matrix": [1, 0], "x": 40, "y": 0 }, + { "flags": 4, "matrix": [1, 4], "x": 61, "y": 0 }, + { "flags": 4, "matrix": [2, 0], "x": 81, "y": 0 }, + { "flags": 4, "matrix": [2, 4], "x": 142, "y": 0 }, + { "flags": 4, "matrix": [3, 0], "x": 162, "y": 0 }, + { "flags": 4, "matrix": [3, 4], "x": 183, "y": 0 }, + { "flags": 4, "matrix": [4, 0], "x": 203, "y": 0 }, + { "flags": 4, "matrix": [4, 4], "x": 224, "y": 0 }, + { "flags": 4, "matrix": [4, 5], "x": 224, "y": 21 }, + { "flags": 4, "matrix": [4, 1], "x": 203, "y": 21 }, + { "flags": 4, "matrix": [3, 5], "x": 183, "y": 21 }, + { "flags": 4, "matrix": [3, 1], "x": 162, "y": 21 }, + { "flags": 4, "matrix": [2, 5], "x": 142, "y": 21 }, + { "flags": 4, "matrix": [2, 6], "x": 142, "y": 42 }, + { "flags": 4, "matrix": [3, 2], "x": 162, "y": 42 }, + { "flags": 4, "matrix": [3, 6], "x": 183, "y": 42 }, + { "flags": 4, "matrix": [4, 2], "x": 203, "y": 42 }, + { "flags": 4, "matrix": [4, 6], "x": 224, "y": 42 }, + { "flags": 4, "matrix": [4, 7], "x": 224, "y": 64 }, + { "flags": 4, "matrix": [4, 3], "x": 203, "y": 64 }, + { "flags": 4, "matrix": [3, 7], "x": 183, "y": 64 }, + { "flags": 4, "matrix": [3, 3], "x": 162, "y": 64 }, + { "flags": 4, "matrix": [2, 7], "x": 142, "y": 64 } + ] + } +} diff --git a/keyboards/tzarc/ghoul/rev1/rp2040/config.h b/keyboards/tzarc/ghoul/rev1/rp2040/config.h new file mode 100644 index 00000000000..c428b266060 --- /dev/null +++ b/keyboards/tzarc/ghoul/rev1/rp2040/config.h @@ -0,0 +1,39 @@ +// Copyright 2018-2022 Nick Brassel (@tzarc) +// SPDX-License-Identifier: GPL-3.0-or-later +#pragma once + +#include "config_common.h" + +// Matrix configuration +#define SPI_MATRIX_CHIP_SELECT_PIN GP21 +#define SPI_MATRIX_DIVISOR 16 + +// Encoder +#define ENCODER_PUSHBUTTON_PIN GP7 + +// SPI Configuration +#define SPI_DRIVER SPID0 +#define SPI_SCK_PIN GP22 +#define SPI_MOSI_PIN GP23 +#define SPI_MISO_PIN GP20 + +// EEPROM configuration +#define EXTERNAL_EEPROM_SPI_CLOCK_DIVISOR 8 +#define EXTERNAL_EEPROM_SPI_SLAVE_SELECT_PIN GP3 +#define EXTERNAL_FLASH_SPI_CLOCK_DIVISOR 8 +#define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN GP2 + +// RGB configuration +#define RGB_DI_PIN GP13 +#define RGB_ENABLE_PIN GP6 + +// ADC Configuration +#define ADC_RESOLUTION ? ? ? // ADC_CFGR1_RES_12BIT // TBD when RP2040 has analog support +#define ADC_SATURATION ? ? ? // ((1 << 12) - 1) // TBD when RP2040 has analog support +#define ADC_CURRENT_PIN GP26 +#define ADC_VOLTAGE_PIN GP27 + +// Display Configuration +#define OLED_CS_PIN GP16 +#define OLED_DC_PIN GP17 +#define OLED_RST_PIN GP18 diff --git a/keyboards/tzarc/ghoul/rev1/rp2040/halconf.h b/keyboards/tzarc/ghoul/rev1/rp2040/halconf.h new file mode 100644 index 00000000000..a22be024126 --- /dev/null +++ b/keyboards/tzarc/ghoul/rev1/rp2040/halconf.h @@ -0,0 +1,8 @@ +// Copyright 2018-2022 Nick Brassel (@tzarc) +// SPDX-License-Identifier: GPL-3.0-or-later +#pragma once + +//#define HAL_USE_ADC TRUE +#define HAL_USE_SPI TRUE + +#include_next diff --git a/keyboards/tzarc/ghoul/rev1/rp2040/info.json b/keyboards/tzarc/ghoul/rev1/rp2040/info.json new file mode 100644 index 00000000000..57b4cb772f9 --- /dev/null +++ b/keyboards/tzarc/ghoul/rev1/rp2040/info.json @@ -0,0 +1,15 @@ +{ + "keyboard_name": "Ghoul_RP2040", + "processor": "RP2040", + "bootloader": "rp2040", + "bootloader_instructions": "Hold the boot switch and tap the reset switch, or hold the top-left key when plugging in the board.", + "encoder": { + "rotary": [ + { + "pin_a": "GP8", + "pin_b": "GP5", + "resolution": 2 + } + ] + } +} diff --git a/keyboards/tzarc/ghoul/rev1/rp2040/mcuconf.h b/keyboards/tzarc/ghoul/rev1/rp2040/mcuconf.h new file mode 100644 index 00000000000..abd4e19f7cb --- /dev/null +++ b/keyboards/tzarc/ghoul/rev1/rp2040/mcuconf.h @@ -0,0 +1,13 @@ +// Copyright 2018-2022 Nick Brassel (@tzarc) +// SPDX-License-Identifier: GPL-3.0-or-later +#pragma once + +#include_next + +// Used for RGB +//#undef RP_ADC_USE_ADC1 +//#define RP_ADC_USE_ADC1 TRUE + +// Used for EEPROM +#undef RP_SPI_USE_SPI0 +#define RP_SPI_USE_SPI0 TRUE diff --git a/keyboards/tzarc/ghoul/rev1/rp2040/rules.mk b/keyboards/tzarc/ghoul/rev1/rp2040/rules.mk new file mode 100644 index 00000000000..997fce7e65c --- /dev/null +++ b/keyboards/tzarc/ghoul/rev1/rp2040/rules.mk @@ -0,0 +1 @@ +WS2812_DRIVER = vendor diff --git a/keyboards/tzarc/ghoul/rev1/stm32/board.h b/keyboards/tzarc/ghoul/rev1/stm32/board.h new file mode 100644 index 00000000000..5379bd4a179 --- /dev/null +++ b/keyboards/tzarc/ghoul/rev1/stm32/board.h @@ -0,0 +1,9 @@ +// Copyright 2018-2022 Nick Brassel (@tzarc) +// SPDX-License-Identifier: GPL-3.0-or-later +#pragma once + +#include_next "board.h" + +#ifdef BOARD_OTG_NOVBUSSENS +# undef BOARD_OTG_NOVBUSSENS +#endif diff --git a/keyboards/tzarc/ghoul/rev1/stm32/config.h b/keyboards/tzarc/ghoul/rev1/stm32/config.h new file mode 100644 index 00000000000..b9059f18370 --- /dev/null +++ b/keyboards/tzarc/ghoul/rev1/stm32/config.h @@ -0,0 +1,47 @@ +// Copyright 2018-2022 Nick Brassel (@tzarc) +// SPDX-License-Identifier: GPL-3.0-or-later +#pragma once + +#include "config_common.h" + +// Matrix configuration +#define SPI_MATRIX_CHIP_SELECT_PIN C4 +#define SPI_MATRIX_DIVISOR 32 + +// Encoder +#define ENCODER_PUSHBUTTON_PIN C1 + +// SPI Configuration +#define SPI_DRIVER SPID1 +#define SPI_SCK_PIN A5 +#define SPI_SCK_PAL_MODE 5 +#define SPI_MOSI_PIN A6 +#define SPI_MOSI_PAL_MODE 5 +#define SPI_MISO_PIN A7 +#define SPI_MISO_PAL_MODE 5 + +// EEPROM/Flash configuration +#define EXTERNAL_EEPROM_SPI_CLOCK_DIVISOR 16 +#define EXTERNAL_EEPROM_SPI_SLAVE_SELECT_PIN B3 +#define EXTERNAL_FLASH_SPI_CLOCK_DIVISOR 16 +#define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN A4 + +// RGB configuration +#define RGB_DI_PIN C6 +#define WS2812_PWM_DRIVER PWMD3 +#define WS2812_PWM_CHANNEL 1 +#define WS2812_PWM_PAL_MODE 2 +#define WS2812_DMA_STREAM STM32_DMA1_STREAM2 +#define WS2812_DMA_CHANNEL 5 +#define RGB_ENABLE_PIN C0 + +// ADC Configuration +#define ADC_RESOLUTION ADC_CFGR1_RES_12BIT +#define ADC_SATURATION ((1 << 12) - 1) +#define ADC_CURRENT_PIN C5 // ADC12_IN15 +#define ADC_VOLTAGE_PIN B0 // ADC12_IN8 + +// Display Configuration +#define OLED_CS_PIN D2 +#define OLED_DC_PIN A8 +#define OLED_RST_PIN A0 diff --git a/keyboards/tzarc/ghoul/rev1/stm32/halconf.h b/keyboards/tzarc/ghoul/rev1/stm32/halconf.h new file mode 100644 index 00000000000..66d4d70a9d6 --- /dev/null +++ b/keyboards/tzarc/ghoul/rev1/stm32/halconf.h @@ -0,0 +1,9 @@ +// Copyright 2018-2022 Nick Brassel (@tzarc) +// SPDX-License-Identifier: GPL-3.0-or-later +#pragma once + +#define HAL_USE_ADC TRUE +#define HAL_USE_SPI TRUE +#define HAL_USE_PWM TRUE + +#include_next diff --git a/keyboards/tzarc/ghoul/rev1/stm32/info.json b/keyboards/tzarc/ghoul/rev1/stm32/info.json new file mode 100644 index 00000000000..11dcde90c90 --- /dev/null +++ b/keyboards/tzarc/ghoul/rev1/stm32/info.json @@ -0,0 +1,15 @@ +{ + "keyboard_name": "Ghoul_STM32", + "processor": "STM32F405", + "bootloader": "stm32-dfu", + "bootloader_instructions": "Press the 5 keys on the bottom row of the left side, or hold the boot switch and tap the reset switch, or hold the top-left key when plugging in the board.", + "encoder": { + "rotary": [ + { + "pin_a": "B10", + "pin_b": "B1", + "resolution": 2 + } + ] + } +} diff --git a/keyboards/tzarc/ghoul/rev1/stm32/mcuconf.h b/keyboards/tzarc/ghoul/rev1/stm32/mcuconf.h new file mode 100644 index 00000000000..fe307993c72 --- /dev/null +++ b/keyboards/tzarc/ghoul/rev1/stm32/mcuconf.h @@ -0,0 +1,17 @@ +// Copyright 2018-2022 Nick Brassel (@tzarc) +// SPDX-License-Identifier: GPL-3.0-or-later +#pragma once + +#include_next + +// Used for RGB +#undef STM32_ADC_USE_ADC1 +#define STM32_ADC_USE_ADC1 TRUE + +// Used for EEPROM +#undef STM32_SPI_USE_SPI1 +#define STM32_SPI_USE_SPI1 TRUE + +// Used for RGB +#undef STM32_PWM_USE_TIM3 +#define STM32_PWM_USE_TIM3 TRUE diff --git a/keyboards/tzarc/ghoul/rev1/stm32/rules.mk b/keyboards/tzarc/ghoul/rev1/stm32/rules.mk new file mode 100644 index 00000000000..69d4b426e1f --- /dev/null +++ b/keyboards/tzarc/ghoul/rev1/stm32/rules.mk @@ -0,0 +1,2 @@ +WS2812_DRIVER = pwm +SRC += analog.c diff --git a/keyboards/tzarc/ghoul/rules.mk b/keyboards/tzarc/ghoul/rules.mk new file mode 100644 index 00000000000..a56726860d0 --- /dev/null +++ b/keyboards/tzarc/ghoul/rules.mk @@ -0,0 +1,7 @@ +CUSTOM_MATRIX = lite +EEPROM_DRIVER = spi +RGB_MATRIX_DRIVER = WS2812 +QUANTUM_PAINTER_DRIVERS = ssd1351_spi +OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE + +DEFAULT_FOLDER = tzarc/ghoul/rev1/stm32 diff --git a/keyboards/ungodly/launch_pad/config.h b/keyboards/ungodly/launch_pad/config.h index 54ef84a71e5..328aafc6e40 100644 --- a/keyboards/ungodly/launch_pad/config.h +++ b/keyboards/ungodly/launch_pad/config.h @@ -48,7 +48,6 @@ # 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 (RGB_MATRIX_LED_COUNT + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) diff --git a/keyboards/unicomp/pc122/info.json b/keyboards/unicomp/pc122/info.json new file mode 100644 index 00000000000..d991b81f4ac --- /dev/null +++ b/keyboards/unicomp/pc122/info.json @@ -0,0 +1,16 @@ +{ + "keyboard_name": "Unicomp PC122", + "manufacturer": "Unicomp/Purdea Andrei", + "url": "https://github.com/purdeaandrei/overnumpad_controller_1xb", + "maintainer": "purdeaandrei", + "usb": { + "vid": "0x16C0", + "pid": "0x27DB", + "device_version": "0.0.1" + }, + "layouts": { + "LAYOUT_all": { + "layout": [{"x":3.25, "y":0}, {"x":4.25, "y":0}, {"x":5.25, "y":0}, {"x":6.25, "y":0}, {"x":7.25, "y":0}, {"x":8.25, "y":0}, {"x":9.25, "y":0}, {"x":10.25, "y":0}, {"x":11.25, "y":0}, {"x":12.25, "y":0}, {"x":13.25, "y":0}, {"x":14.25, "y":0}, {"x":3.25, "y":1}, {"x":4.25, "y":1}, {"x":5.25, "y":1}, {"x":6.25, "y":1}, {"x":7.25, "y":1}, {"x":8.25, "y":1}, {"x":9.25, "y":1}, {"x":10.25, "y":1}, {"x":11.25, "y":1}, {"x":12.25, "y":1}, {"x":13.25, "y":1}, {"x":14.25, "y":1}, {"x":0, "y":2.5}, {"x":1, "y":2.5}, {"x":2.25, "y":2.5}, {"x":3.25, "y":2.5}, {"x":4.25, "y":2.5}, {"x":5.25, "y":2.5}, {"x":6.25, "y":2.5}, {"x":7.25, "y":2.5}, {"x":8.25, "y":2.5}, {"x":9.25, "y":2.5}, {"x":10.25, "y":2.5}, {"x":11.25, "y":2.5}, {"x":12.25, "y":2.5}, {"x":13.25, "y":2.5}, {"x":14.25, "y":2.5}, {"x":15.25, "y":2.5, "w":2}, {"x":17.75, "y":2.5}, {"x":18.75, "y":2.5}, {"x":19.75, "y":2.5}, {"x":21.25, "y":2.5}, {"x":22.25, "y":2.5}, {"x":23.25, "y":2.5}, {"x":24.25, "y":2.5}, {"x":0, "y":3.5}, {"x":1, "y":3.5}, {"x":2.25, "y":3.5, "w":1.5}, {"x":3.75, "y":3.5}, {"x":4.75, "y":3.5}, {"x":5.75, "y":3.5}, {"x":6.75, "y":3.5}, {"x":7.75, "y":3.5}, {"x":8.75, "y":3.5}, {"x":9.75, "y":3.5}, {"x":10.75, "y":3.5}, {"x":11.75, "y":3.5}, {"x":12.75, "y":3.5}, {"x":13.75, "y":3.5}, {"x":14.75, "y":3.5}, {"x":15.75, "y":3.5, "w":1.5}, {"x":17.75, "y":3.5}, {"x":18.75, "y":3.5}, {"x":19.75, "y":3.5}, {"x":21.25, "y":3.5}, {"x":22.25, "y":3.5}, {"x":23.25, "y":3.5}, {"x":24.25, "y":3.5}, {"x":0, "y":4.5}, {"x":1, "y":4.5}, {"x":2.25, "y":4.5, "w":1.75}, {"x":4, "y":4.5}, {"x":5, "y":4.5}, {"x":6, "y":4.5}, {"x":7, "y":4.5}, {"x":8, "y":4.5}, {"x":9, "y":4.5}, {"x":10, "y":4.5}, {"x":11, "y":4.5}, {"x":12, "y":4.5}, {"x":13, "y":4.5}, {"x":14, "y":4.5}, {"x":15, "y":4.5}, {"x":16, "y":4.5, "w":1.25}, {"x":18.75, "y":4.5}, {"x":21.25, "y":4.5}, {"x":22.25, "y":4.5}, {"x":23.25, "y":4.5}, {"x":24.25, "y":4.5}, {"x":0, "y":5.5}, {"x":1, "y":5.5}, {"x":2.25, "y":5.5, "w":1.25}, {"x":3.5, "y":5.5}, {"x":4.5, "y":5.5}, {"x":5.5, "y":5.5}, {"x":6.5, "y":5.5}, {"x":7.5, "y":5.5}, {"x":8.5, "y":5.5}, {"x":9.5, "y":5.5}, {"x":10.5, "y":5.5}, {"x":11.5, "y":5.5}, {"x":12.5, "y":5.5}, {"x":13.5, "y":5.5}, {"x":14.5, "y":5.5, "w":2.75}, {"x":17.75, "y":5.5}, {"x":18.75, "y":5.5}, {"x":19.75, "y":5.5}, {"x":21.25, "y":5.5}, {"x":22.25, "y":5.5}, {"x":23.25, "y":5.5}, {"x":24.25, "y":5.5, "h":2}, {"x":0, "y":6.5}, {"x":1, "y":6.5}, {"x":2.25, "y":6.5, "w":1.5}, {"x":4.75, "y":6.5, "w":1.5}, {"x":6.25, "y":6.5, "w":7}, {"x":13.25, "y":6.5, "w":1.5}, {"x":15.75, "y":6.5, "w":1.5}, {"x":18.75, "y":6.5}, {"x":21.25, "y":6.5, "w":2}, {"x":23.25, "y":6.5}] + } + } +} diff --git a/keyboards/unicomp/pc122/keymaps/default/keymap.c b/keyboards/unicomp/pc122/keymaps/default/keymap.c new file mode 100644 index 00000000000..8df8de9529e --- /dev/null +++ b/keyboards/unicomp/pc122/keymaps/default/keymap.c @@ -0,0 +1,34 @@ +/* Copyright 2020 Purdea Andrei + * + * 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 + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _BASE +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [_BASE] = LAYOUT_all( + KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, + 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_ESC, KC_SLCK, 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_NLCK, KC_PSLS, KC_PAST, KC_PMNS, + KC_PSCR, KC_PAUS, 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_P7, KC_P8, KC_P9, KC_PPLS, + KC_PSCR, KC_F1, 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_UP, KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_RGUI, KC_MPLY, 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_LEFT, KC_ENT, KC_RGHT, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_LGUI, KC_APP, KC_LCTRL, KC_LALT, KC_SPC, KC_RALT, KC_RCTRL, KC_DOWN, KC_P0, KC_PDOT + ) +}; diff --git a/keyboards/unicomp/pc122/keymaps/default/readme.md b/keyboards/unicomp/pc122/keymaps/default/readme.md new file mode 100644 index 00000000000..36841bb572f --- /dev/null +++ b/keyboards/unicomp/pc122/keymaps/default/readme.md @@ -0,0 +1,3 @@ +# The default keymap for unicomp/pc122/$(CONTROLLER) + +This keymap is designed for those who prefer modern 10X-key layouts, and want to start out from there customizing their keyboard. diff --git a/keyboards/unicomp/pc122/keymaps/pc3270/keymap.c b/keyboards/unicomp/pc122/keymaps/pc3270/keymap.c new file mode 100644 index 00000000000..706249ca1d3 --- /dev/null +++ b/keyboards/unicomp/pc122/keymaps/pc3270/keymap.c @@ -0,0 +1,34 @@ +/* Copyright 2020 Purdea Andrei + * + * 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 + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _BASE +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [_BASE] = LAYOUT_all( + S(KC_F1), S(KC_F2), S(KC_F3), S(KC_F4), S(KC_F5), S(KC_F6), S(KC_F7), S(KC_F8), S(KC_F9), S(KC_F10), S(KC_F11), S(KC_F12), + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + S(KC_ESC), C(KC_F9), 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, C(KC_F8), KC_PGUP, KC_PGDN, KC_ESC, KC_NLCK, KC_PAST, KC_PSLS, + C(KC_F1), KC_PAUS, 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_END, KC_INS, KC_DEL, KC_P7, KC_P8, KC_P9, KC_PPLS, + C(KC_F2), C(KC_F5), 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_UP, KC_P4, KC_P5, KC_P6, KC_PMNS, + KC_PSCR, C(KC_F6), 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_LEFT, KC_HOME, KC_RGHT, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_SLCK, C(KC_F7), KC_LCTRL, KC_LALT, KC_SPC, KC_RALT, KC_RCTRL, KC_DOWN, KC_P0, KC_PDOT + ) +}; diff --git a/keyboards/unicomp/pc122/keymaps/pc3270/readme.md b/keyboards/unicomp/pc122/keymaps/pc3270/readme.md new file mode 100644 index 00000000000..7bd5ce90f2f --- /dev/null +++ b/keyboards/unicomp/pc122/keymaps/pc3270/readme.md @@ -0,0 +1,6 @@ +# The "PC122/3270 Keyboard (USB and PS/2)" keymap for unicomp/pc122/$(CONTROLLER) + +This keymap is designed to match the following official keymap from Unicomp: +https://support.pckeyboard.com/knowledgebase.php?article=58 +https://support.pckeyboard.com/download_attachment.php?kb_att=56 + diff --git a/keyboards/unicomp/pc122/keymaps/ps2_5250/keymap.c b/keyboards/unicomp/pc122/keymaps/ps2_5250/keymap.c new file mode 100644 index 00000000000..f1ff9ea18a4 --- /dev/null +++ b/keyboards/unicomp/pc122/keymaps/ps2_5250/keymap.c @@ -0,0 +1,34 @@ +/* Copyright 2020 Purdea Andrei + * + * 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 + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _BASE +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [_BASE] = LAYOUT_all( + S(KC_F1), S(KC_F2), S(KC_F3), S(KC_F4), S(KC_F5), S(KC_F6), S(KC_F7), S(KC_F8), S(KC_F9), S(KC_F10), S(KC_F11), S(KC_F12), + 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_ESC, KC_SLCK, 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, S(KC_TAB), KC_INS, KC_PGUP, KC_END, KC_NLCK, KC_PSLS, KC_PAST, + KC_PSCR, KC_PAUS, 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, S(KC_RCTRL), KC_DEL, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PMNS, + C(KC_PAUS), A(KC_F1), 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_UP, KC_P4, KC_P5, KC_P6, KC_PPLS, + S(C(KC_4)), S(C(KC_3)), 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_LEFT, KC_HOME, KC_RGHT, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_LGUI, KC_APP, KC_LCTRL, KC_LALT, KC_SPC, KC_RALT, KC_RCTRL, KC_DOWN, KC_P0, KC_PDOT + ) +}; diff --git a/keyboards/unicomp/pc122/keymaps/ps2_5250/readme.md b/keyboards/unicomp/pc122/keymaps/ps2_5250/readme.md new file mode 100644 index 00000000000..7ab1b848108 --- /dev/null +++ b/keyboards/unicomp/pc122/keymaps/ps2_5250/readme.md @@ -0,0 +1,6 @@ +# The "PS2 PC5250" keymap for unicomp/pc122/$(CONTROLLER) + +This keymap is designed to match the following official keymap from Unicomp: +https://support.pckeyboard.com/knowledgebase.php?article=70 +https://support.pckeyboard.com/download_attachment.php?kb_att=83 + diff --git a/keyboards/unicomp/pc122/keymaps/usb_5250/keymap.c b/keyboards/unicomp/pc122/keymaps/usb_5250/keymap.c new file mode 100644 index 00000000000..34ac826f6c0 --- /dev/null +++ b/keyboards/unicomp/pc122/keymaps/usb_5250/keymap.c @@ -0,0 +1,34 @@ +/* Copyright 2020 Purdea Andrei + * + * 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 + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _BASE +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [_BASE] = LAYOUT_all( + S(KC_F1), S(KC_F2), S(KC_F3), S(KC_F4), S(KC_F5), S(KC_F6), S(KC_F7), S(KC_F8), S(KC_F9), S(KC_F10), S(KC_F11), S(KC_F12), + 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_ESC, KC_SLCK, 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, S(KC_TAB), KC_INS, KC_PGUP, KC_END, KC_NLCK, KC_PSLS, KC_PAST, + KC_PSCR, KC_PAUS, 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, C(KC_F6), KC_DEL, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PMNS, + C(KC_F3), C(KC_F1), 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_UP, KC_P4, KC_P5, KC_P6, KC_PPLS, + C(KC_F5), C(KC_F2), 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_LEFT, KC_HOME, KC_RGHT, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_LGUI, KC_APP, KC_LCTRL, KC_LALT, KC_SPC, KC_RALT, KC_RCTRL, KC_DOWN, KC_P0, KC_PDOT + ) +}; diff --git a/keyboards/unicomp/pc122/keymaps/usb_5250/readme.md b/keyboards/unicomp/pc122/keymaps/usb_5250/readme.md new file mode 100644 index 00000000000..30c3808f747 --- /dev/null +++ b/keyboards/unicomp/pc122/keymaps/usb_5250/readme.md @@ -0,0 +1,6 @@ +# The "USB/5250" keymap for unicomp/pc122/$(CONTROLLER) + +This keymap is designed to match the following official keymap from Unicomp: +https://support.pckeyboard.com/knowledgebase.php?article=69 +https://support.pckeyboard.com/download_attachment.php?kb_att=82 + diff --git a/keyboards/unicomp/pc122/overnumpad_1xb/config.h b/keyboards/unicomp/pc122/overnumpad_1xb/config.h new file mode 100644 index 00000000000..ad7668bdeaa --- /dev/null +++ b/keyboards/unicomp/pc122/overnumpad_1xb/config.h @@ -0,0 +1,68 @@ +/* Copyright 2020 Purdea Andrei + * + * 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" + +#define SERIAL_NUMBER "purdea.ro:overnumpad_controller" + +/* key matrix size */ +#define MATRIX_ROWS 8 +#define MATRIX_COLS 16 + +/* + * 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) + * + */ + +// All pins in order from left-to-right, as seen on the keyboard: +// C3, C2, C1, C0, A3, A4, A5, A6, A7, C4, C5, B0, B1, B10, B12, B13, B14, B15, C6, C7, C8, C9, A8, A9, A10, +// On this chip A10, B10 have stronger pull-ups, so it's better to avoid them if possible. + +// On this keyboard the right-most pin is not used, so that is A10. +// On this keyboard the right-most 8 pins (excluding the unused pin) are routed on the bottom. + +#define MATRIX_COL_PINS { C3, C2, C1, C0, A3, A4, A5, A6, A7, C4, C5, B0, B1, B10, B12, B13 } +#define MATRIX_ROW_PINS { B14, B15, C6, C7, C8, C9, A8, A9 } + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION ROW2COL + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +#define MATRIX_HAS_GHOST + +#define STM32_HSECLK 16000000 + +#define SOLENOID_PIN B5 +#define HAPTIC_ENABLE_PIN C13 +#define SOLENOID_DEFAULT_DWELL 4 +#define SOLENOID_MIN_DWELL 4 +#define HAPTIC_OFF_IN_LOW_POWER 1 +#define NO_HAPTIC_MOD + +#define LED_NUM_LOCK_PIN C12 +#define LED_CAPS_LOCK_PIN C11 +#define LED_SCROLL_LOCK_PIN C10 +#define LED_ON_STATE 1 diff --git a/keyboards/unicomp/pc122/overnumpad_1xb/overnumpad_1xb.c b/keyboards/unicomp/pc122/overnumpad_1xb/overnumpad_1xb.c new file mode 100644 index 00000000000..cb5ec3dc124 --- /dev/null +++ b/keyboards/unicomp/pc122/overnumpad_1xb/overnumpad_1xb.c @@ -0,0 +1,24 @@ +/* Copyright 2020 Purdea Andrei + * + * 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 "overnumpad_1xb.h" + +void keyboard_post_init_kb(void) +{ + //debug_enable=true; + //debug_matrix=true; +} + diff --git a/keyboards/unicomp/pc122/overnumpad_1xb/overnumpad_1xb.h b/keyboards/unicomp/pc122/overnumpad_1xb/overnumpad_1xb.h new file mode 100644 index 00000000000..e0dc0d8f33f --- /dev/null +++ b/keyboards/unicomp/pc122/overnumpad_1xb/overnumpad_1xb.h @@ -0,0 +1,49 @@ +/* Copyright 2020 Purdea Andrei + * + * 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" + +/* This is 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. + */ + +#define LAYOUT_all( \ + k_f13, k_f14, k_f15, k_f16, k_f17, k_f18, k_f19, k_f20, k_f21, k_f22, k_f23, k_f24, \ + k_f1, k_f2, k_f3, k_f4, k_f5, k_f6, k_f7, k_f8, k_f9, k_f10, k_f11, k_f12, \ +k_lb1, k_lb2, k_tild, k_1, k_2, k_3, k_4, k_5, k_6, k_7, k_8, k_9, k_0, k_minus, k_equals, k_backspace, k_ins, k_home, k_pgup, kp_nl, kp_div, kp_mult, kp_minus, \ +k_lb3, k_lb4, k_tab, k_q, k_w, k_e, k_r, k_t, k_y, k_u, k_i, k_o, k_p, k_squarebrop, k_squarebrcl, k_backsl, k_del, k_end, k_pgdn, kp_7, kp_8, kp_9, kp_plus, \ +k_lb5, k_lb6, k_caps, k_a, k_s, k_d, k_f, k_g, k_h, k_j, k_k, k_l, k_semicolon, k_singlequote, k_nuhs,k_return, k_up, kp_4, kp_5, kp_6, kp_plus_hidden, \ +k_lb7, k_lb8, k_lshift,k_nubs,k_z, k_x, k_c, k_v, k_b, k_n, k_m, k_cm,k_period, k_fwslash, k_rshift, k_left, k_navmid, k_right, kp_1, kp_2, kp_3, kp_enter, \ +k_lb9, k_lb10, k_lctrl, k_lalt, k_space, k_ralt, k_rctrl, k_down, kp_0, kp_dot \ +) \ +{ \ + /* 0 1 2 3 4 5 6 7 8 9 A B C D E F */ \ + /* 0 */ { k_lb1, k_lb4, k_f3, k_f1, k_ins, k_3, k_4, k_6, k_f5, k_f7, k_f9, k_f11, k_lb3, k_right, k_lb2, k_lb6 }, \ + /* 1 */ { k_tab, k_f21, k_del, k_pgdn, k_f22, k_e, k_t, k_u, k_backspace, k_minus, k_down, k_end, k_home, k_f23, k_f14, k_caps }, \ + /* 2 */ { k_1, k_f19, kp_nl, k_pgup, k_f17, k_i, k_r, k_y, k_equals, k_9, k_0, kp_mult, kp_div, k_up, k_lb9, k_f16 }, \ + /* 3 */ { k_q, k_rshift, kp_9, k_2, KC_NO, k_k, k_f, k_h, k_squarebrcl, k_o, k_semicolon, kp_8, kp_7, k_f24, k_f13, k_lctrl }, \ + /* 4 */ { k_a, KC_NO, kp_6, k_w, k_lalt, k_d, k_g, k_j, k_backsl, k_squarebrop, k_singlequote, kp_5, kp_4, k_f20, k_f15, k_lb10 }, \ + /* 5 */ { k_z, k_lshift, kp_dot, k_x, KC_NO, k_cm, k_b, k_m, k_return, k_period, k_p, kp_0, kp_1, k_navmid, kp_plus_hidden, k_rctrl }, \ + /* 6 */ { k_nubs, KC_NO, kp_3, k_s, k_ralt, k_c, k_v, k_n, k_left, k_l, k_fwslash, kp_2, kp_plus, k_nuhs, k_lb7, KC_NO }, \ + /* 7 */ { k_tild, k_f18, kp_minus, k_f2, k_f4, k_8, k_5, k_7, k_f6, k_f8, k_f10, k_f12, k_lb8, k_space, kp_enter, k_lb5 } \ +} diff --git a/keyboards/unicomp/pc122/overnumpad_1xb/readme.md b/keyboards/unicomp/pc122/overnumpad_1xb/readme.md new file mode 100644 index 00000000000..3253a54531d --- /dev/null +++ b/keyboards/unicomp/pc122/overnumpad_1xb/readme.md @@ -0,0 +1,40 @@ +# unicomp/pc122/overnumpad_1xb + +![unicomp/pc122/overnumpad_1xb](https://sharktastica.co.uk/resources/images/model_ms/shark_UB40T56_unicomp.jpg) + +Will support the Unicomp PC122 keyboard + +* Keyboard Maintainer: [Purdea Andrei](https://github.com/purdeaandrei) +* Hardware Supported: OverNumpad controller v1.Xb +* Hardware Availability: + * [controller](https://github.com/purdeaandrei/overnumpad_controller_1xb) + * [keyboard](https://www.pckeyboard.com/) + +To place the keyboard into bootloader mode in order to flash it, hold the top-left key of the +left-side block of the keyboard, while plugging the board in. It's possible to accidentally +brick this feature, if the wrong firmware is flashed onto the keyboard. If that happens, +open up the keyboard, and press the RST&PROG button to enter bootloader mode. + +Note: LAYOUT_all is incomplete, because certain pairs of possible key positions are mapped to the same matrix position: +* The hidden key position under the numeric keypad 2-unit vertical enter key overlaps with the key in the 1st column, 4th row of the left-side block (the one that usually comes with "Record" or "Print/Ident" printed on it by default) +* The hidden key position under the numeric keypad 2-unit horizontal 0 key overlaps with the key position that is normally hidden by a 2u vertical keypad plus key. (This key position is usually exposed as a Field + key, or as a keypad - key) +* The hidden key position under the 2-unit backspace key overlaps with F19. +* The hidden key position under the right-shift key overlaps with F20. +As such it's not possible to make a LAYOUT_all macro that shows all key position. +The user may still make use of these normally hidden key positions, by hiding the other key they overlap to (or by leaving them accessible but the other key must have the same keycode): +* To make use of the hidden key under the 2-unit vertical enter key, a 2-unit horizontal key could be used on the 4th row of the left-side block. +* To make use of the hidden key under the 2-unit horizontal keypad 0 key, a 2-unit vertical + key could be used. +* To make use of the hidden key under the backspace key, a 2-unit horizontal key could be used over what is normally F19 and F20. +* To make use of the hidden key under the right-shift key, a 2-unit horizontal key could be used over what is normally F20 and F21. +As such, mathematically there are 2 * 2 * 3 = 12 possible LAYOUT_all combinations, and we have chosen to only provide the default LAYOUT_all layout. If the user chooses to implement one or more of the above mods, +they can still make this firmware work with the single default LAYOUT_all, using the above information, by assigning keycodes to their conventional key position. + +Make example for this keyboard (after setting up your build environment): + + make unicomp/pc122/overnumpad_1xb:default + +Flashing example for this keyboard: + + make unicomp/pc122/overnumpad_1xb:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/unicomp/pc122/overnumpad_1xb/rules.mk b/keyboards/unicomp/pc122/overnumpad_1xb/rules.mk new file mode 100644 index 00000000000..8acd50a10f2 --- /dev/null +++ b/keyboards/unicomp/pc122/overnumpad_1xb/rules.mk @@ -0,0 +1,23 @@ +# MCU name +MCU = STM32F446 # STM32F446RET6 + +# 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 = no # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +ENCODER_ENABLE = no # Enable rotary encoder support +AUDIO_ENABLE = no # Audio output +KEYBOARD_SHARED_EP = yes # Free up some extra endpoints - needed if console+mouse+extra + +HAPTIC_ENABLE = yes +HAPTIC_DRIVER = SOLENOID diff --git a/keyboards/w1_at/keymaps/zq/keymap.c b/keyboards/w1_at/keymaps/zq/keymap.c new file mode 100644 index 00000000000..eba9aedb8f2 --- /dev/null +++ b/keyboards/w1_at/keymaps/zq/keymap.c @@ -0,0 +1,119 @@ +/* Copyright 2021 Zhi Quan + * + * 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 custom_keycodes { + KC_P00 = SAFE_RANGE +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = LAYOUT_all( /* Base */ + KC_F1, KC_F2, 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, TG(2), KC_PSLS, KC_PAST, KC_PMNS, + KC_F3, KC_F4, 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_P7, KC_P8, KC_P9, KC_PPLS, + KC_F5, KC_F6, KC_ESC, 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_P4, KC_P5, KC_P6, KC_PPLS, + KC_F7, KC_F8, KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_P1, KC_P2, KC_P3, KC_PENT, + KC_F9, KC_F10, KC_LCTL, KC_LCMD, KC_SPC, KC_ROPT, MO(1), KC_P0, KC_P00, KC_PDOT, KC_PENT), + +[1] = LAYOUT_all( /* FN */ + KC_TRNS, KC_TRNS, KC_TRNS, 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_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_VOLD, + 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_PSCR, KC_TRNS, KC_TRNS, QK_BOOT, KC_HOME, KC_UP, KC_PGUP, KC_VOLU, + 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_LEFT, KC_MUTE, KC_RGHT, KC_VOLU, + 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_END, KC_DOWN, KC_PGDN, KC_MPLY, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY), + +[2] = LAYOUT_all( /* Numpad */ + 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_HOME, KC_UP, 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_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, XXXXXXX, KC_RGHT, 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_END, KC_DOWN, KC_PGDN, 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( /* Empty for dynamic keymaps */ + 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, 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 KC_P00: + if (record->event.pressed) { + tap_code(KC_P0); + tap_code(KC_P0); + } + return false; + break; + case KC_ESC: + if (record->event.pressed) { + // Turn on capslock indicator. + writePin(LED_CAPS_LOCK_PIN, LED_PIN_ON_STATE); + } else { + // Turn off capslock indicator. + writePin(LED_CAPS_LOCK_PIN, !LED_PIN_ON_STATE); + } + } + return true; +} + +// Customized function so that numlock and capslock indicator are no longer controlled by the host. +bool led_update_user(led_t led_state) { +#if defined(LED_NUM_LOCK_PIN) || defined(LED_CAPS_LOCK_PIN) || defined(LED_SCROLL_LOCK_PIN) || defined(LED_COMPOSE_PIN) || defined(LED_KANA_PIN) +# if LED_PIN_ON_STATE == 0 + // invert the whole thing to avoid having to conditionally !led_state.x later + led_state.raw = ~led_state.raw; +# endif + +// # ifdef LED_NUM_LOCK_PIN +// writePin(LED_NUM_LOCK_PIN, led_state.num_lock); +// # endif +// # ifdef LED_CAPS_LOCK_PIN +// writePin(LED_CAPS_LOCK_PIN, led_state.caps_lock); +// # endif +# ifdef LED_SCROLL_LOCK_PIN + writePin(LED_SCROLL_LOCK_PIN, led_state.scroll_lock); +# endif +# ifdef LED_COMPOSE_PIN + writePin(LED_COMPOSE_PIN, led_state.compose); +# endif +# ifdef LED_KANA_PIN + writePin(LED_KANA_PIN, led_state.kana); +# endif +#endif + + // Return false to let led_update_kb fall through. + return false; +} + +// Customized function to manage numlock indicator based on layer. +layer_state_t layer_state_set_user(layer_state_t state) { + switch (get_highest_layer(state)) { + // Base layer + case 0: + // Turn on numlock indicator. + writePin(LED_NUM_LOCK_PIN, LED_PIN_ON_STATE); + break; + + // Numpad navigation layer + case 2: + // Turn off numlock indicator. + writePin(LED_NUM_LOCK_PIN, !LED_PIN_ON_STATE); + break; + } + + return state; +} \ No newline at end of file diff --git a/keyboards/w1_at/keymaps/zq/readme.md b/keyboards/w1_at/keymaps/zq/readme.md new file mode 100644 index 00000000000..103130b161a --- /dev/null +++ b/keyboards/w1_at/keymaps/zq/readme.md @@ -0,0 +1,21 @@ +# Personal W1-AT keymap +The main highlights are as follows: +* VIA support enabled +* Enter bootloader mode using Fn + \ +* Grave key (` and ~) in place of Esc key +* Esc in place of CapsLock key +* Use NumLock LED indicator on layers: ON in layer 0, OFF in layer 2 (workaround for macOS since there is no NumLock key) +* Use CapsLock LED indicator on Esc key + + +## Layer 0 (Base) +--- +![Layer 0](https://i.imgur.com/l1OKSBB.png) + +## Layer 1 (Function) +--- +![Layer 1](https://i.imgur.com/RdzVyvb.png) + +## Layer 2 (Numpad Navigation) +--- +![Layer 2](https://i.imgur.com/xKVnQaK.png) \ No newline at end of file diff --git a/keyboards/w1_at/keymaps/zq/rules.mk b/keyboards/w1_at/keymaps/zq/rules.mk new file mode 100644 index 00000000000..036bd6d1c3e --- /dev/null +++ b/keyboards/w1_at/keymaps/zq/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/wilba_tech/rama_works_m60_a/keymaps/zyber/config.h b/keyboards/wilba_tech/rama_works_m60_a/keymaps/zyber/config.h new file mode 100644 index 00000000000..9ad052aab4d --- /dev/null +++ b/keyboards/wilba_tech/rama_works_m60_a/keymaps/zyber/config.h @@ -0,0 +1,8 @@ +// Copyright 2022 ZyBeR (@ZyberSE) +// SPDX-License-Identifier: GPL-2.0 + +#pragma once +#undef PRODUCT +#define PRODUCT RAMA WORKS M60-A Seq2 +#undef DESCRIPTION +#define DESCRIPTION RAMA WORKS M60-A Seq2 diff --git a/keyboards/wilba_tech/rama_works_m60_a/keymaps/zyber/keymap.c b/keyboards/wilba_tech/rama_works_m60_a/keymaps/zyber/keymap.c new file mode 100644 index 00000000000..36d2d6efcdd --- /dev/null +++ b/keyboards/wilba_tech/rama_works_m60_a/keymaps/zyber/keymap.c @@ -0,0 +1,42 @@ +// Copyright 2022 ZyBeR (@ZyberSE) +// SPDX-License-Identifier: GPL-2.0 + +#include "zyber.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +// Default layer +[0] = LAYOUT_60_hhkb( + KC_ESC, KC_1, KC_2, KC_3,TD(SSHT), KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, TD(LBRC), KC_RBRC, KC_BSPC, + CTRL_C_UP, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, TD(SCLN), TD(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, FN_MO13, + KC_LALT, KC_LGUI, KC_SPC, KC_RALT, FN_MO23), + +// Fn1 Layer +[1] = LAYOUT_60_hhkb( + 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_INS, KC_DEL, + KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, KC_TRNS, + KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_EJCT, KC_TRNS, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + +// Fn2 Layer +[2] = LAYOUT_60_hhkb( + 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), + +// Fn3 Layer (zeal60 Configuration) +[3] = LAYOUT_60_hhkb( + QK_BOOT, EF_DEC, EF_INC, H1_DEC, H1_INC, H2_DEC, H2_INC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BR_DEC, BR_INC, KC_TRNS, EEP_RST, + KC_TRNS, KC_TRNS, KC_TRNS, S1_DEC, S1_INC, S2_DEC, S2_INC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, ES_DEC, ES_INC, 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/wilba_tech/rama_works_m60_a/keymaps/zyber/rules.mk b/keyboards/wilba_tech/rama_works_m60_a/keymaps/zyber/rules.mk new file mode 100644 index 00000000000..961bb9bab8a --- /dev/null +++ b/keyboards/wilba_tech/rama_works_m60_a/keymaps/zyber/rules.mk @@ -0,0 +1 @@ +DYNAMIC_KEYMAP_ENABLE = no \ No newline at end of file diff --git a/keyboards/wilba_tech/zeal65/keymaps/zyber/config.h b/keyboards/wilba_tech/zeal65/keymaps/zyber/config.h new file mode 100644 index 00000000000..2d35bacc56a --- /dev/null +++ b/keyboards/wilba_tech/zeal65/keymaps/zyber/config.h @@ -0,0 +1,31 @@ +// Copyright 2022 ZyBeR (@ZyberSE) +// SPDX-License-Identifier: GPL-2.0 + +#pragma once + +/** + * Enable/disable LEDs based on layout + */ +#undef RGB_BACKLIGHT_USE_SPLIT_BACKSPACE +#define RGB_BACKLIGHT_USE_SPLIT_BACKSPACE 0 + + +/** + * Switch off Backlight when computer is suspended + */ +#undef RGB_BACKLIGHT_DISABLE_WHEN_USB_SUSPENDED +#define RGB_BACKLIGHT_DISABLE_WHEN_USB_SUSPENDED 1 + + +/** + * Use http://colorizer.org/ to get a 0-360 hue value + * then convert it into a 0-255 value with n = (hue / 360 * 255). + */ +#undef RGB_BACKLIGHT_CAPS_LOCK_INDICATOR +#define RGB_BACKLIGHT_CAPS_LOCK_INDICATOR { .color = { .h = 255, .s = 255 }, .index = 254 } +#undef RGB_BACKLIGHT_LAYER_1_INDICATOR +#define RGB_BACKLIGHT_LAYER_1_INDICATOR { .color = { .h = 87, .s = 255 }, .index = 254 } +#undef RGB_BACKLIGHT_LAYER_2_INDICATOR +#define RGB_BACKLIGHT_LAYER_2_INDICATOR { .color = { .h = 167, .s = 255 }, .index = 254 } +#undef RGB_BACKLIGHT_LAYER_3_INDICATOR +#define RGB_BACKLIGHT_LAYER_3_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 } diff --git a/keyboards/wilba_tech/zeal65/keymaps/zyber/keymap.c b/keyboards/wilba_tech/zeal65/keymaps/zyber/keymap.c new file mode 100644 index 00000000000..4129317289e --- /dev/null +++ b/keyboards/wilba_tech/zeal65/keymaps/zyber/keymap.c @@ -0,0 +1,39 @@ +// Copyright 2022 ZyBeR (@ZyberSE) +// SPDX-License-Identifier: GPL-2.0 + +#include "zyber.h" + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // Default layer + [0] = LAYOUT_65_normie( + QK_GESC, KC_1, KC_2, KC_3, TD(SSHT),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, TD(LBRC), KC_RBRC, KC_BSLS, TD(END_HOME), + CTRL_C_UP, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, TD(SCLN), TD(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_LALT, KC_LCMD, KC_SPC, FN_MO23, FN_MO13, KC_LEFT, KC_DOWN, KC_RGHT), + + // Fn1 Layer + [1] = LAYOUT_65_normie( + 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_PSCR, KC_SLCK, KC_PAUS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_CAPS, 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_LALT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + + // Fn2 Layer + [2] = LAYOUT_65_normie( + 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), + + // Fn3 Layer (zeal60 Configuration) + [3] = LAYOUT_65_normie( + QK_BOOT, EF_DEC, EF_INC, H1_DEC, H1_INC, H2_DEC, H2_INC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BR_DEC, BR_INC, EEP_RST, KC_TRNS, + C_BLK, KC_TRNS, KC_TRNS, S1_DEC, S1_INC, S2_DEC, S2_INC, 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/work_louder/work_board/keymaps/drashna/rules.mk b/keyboards/work_louder/work_board/keymaps/drashna/rules.mk index 6cccd5f8d2c..6a98d14daf6 100644 --- a/keyboards/work_louder/work_board/keymaps/drashna/rules.mk +++ b/keyboards/work_louder/work_board/keymaps/drashna/rules.mk @@ -6,5 +6,5 @@ NKRO_ENABLE = yes RGBLIGHT_STARTUP_ANIMATION = yes ENCODER_MAP_ENABLE = yes -AUTOCORRECTION_ENABLE = no +AUTOCORRECT_ENABLE = no CUSTOM_UNICODE_ENABLE = no diff --git a/keyboards/work_louder/work_board/work_board.c b/keyboards/work_louder/work_board/work_board.c index bd969f3009d..928a8abd895 100644 --- a/keyboards/work_louder/work_board/work_board.c +++ b/keyboards/work_louder/work_board/work_board.c @@ -106,7 +106,10 @@ bool via_layout_2u = false; void via_set_layout_options_kb(uint32_t value) { via_layout_2u = (bool)value; } # endif // VIA_ENABLE -__attribute__((weak)) void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_kb(void) { + if (!rgb_matrix_indicators_user()) { + return false; + } # ifdef VIA_ENABLE if (via_layout_2u) { rgb_matrix_set_color(5, 0, 0, 0); @@ -118,6 +121,7 @@ __attribute__((weak)) void rgb_matrix_indicators_user(void) { rgb_matrix_set_color(5, 0, 0, 0); rgb_matrix_set_color(7, 0, 0, 0); # endif + return true; } void keyboard_pre_init_kb(void) { diff --git a/keyboards/xbows/knight/config.h b/keyboards/xbows/knight/config.h index 1612f636bd1..f47695ea910 100644 --- a/keyboards/xbows/knight/config.h +++ b/keyboards/xbows/knight/config.h @@ -27,7 +27,6 @@ #ifdef RGB_MATRIX_ENABLE # define RGB_MATRIX_LED_PROCESS_LIMIT 18 # define RGB_MATRIX_LED_FLUSH_LIMIT 16 -# 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_KEYPRESSES # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 diff --git a/keyboards/xbows/knight/knight.c b/keyboards/xbows/knight/knight.c index 9b6628b63ee..377c79555d2 100644 --- a/keyboards/xbows/knight/knight.c +++ b/keyboards/xbows/knight/knight.c @@ -135,10 +135,15 @@ } }; - __attribute__ ((weak)) void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_kb(void) { + if (!rgb_matrix_indicators_user()) { + return false; + } + if (host_keyboard_led_state().caps_lock) { rgb_matrix_set_color(44, 0xFF, 0xFF, 0xFF); } + return true; } #endif diff --git a/keyboards/xbows/knight_plus/config.h b/keyboards/xbows/knight_plus/config.h index bc496ee3da7..6f999e0e07e 100644 --- a/keyboards/xbows/knight_plus/config.h +++ b/keyboards/xbows/knight_plus/config.h @@ -27,7 +27,6 @@ #ifdef RGB_MATRIX_ENABLE # define RGB_MATRIX_LED_PROCESS_LIMIT 18 # define RGB_MATRIX_LED_FLUSH_LIMIT 16 -# define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects # define RGB_MATRIX_KEYPRESSES # define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 diff --git a/keyboards/xbows/knight_plus/knight_plus.c b/keyboards/xbows/knight_plus/knight_plus.c index bdf862dbe47..2c377aaf51a 100644 --- a/keyboards/xbows/knight_plus/knight_plus.c +++ b/keyboards/xbows/knight_plus/knight_plus.c @@ -135,10 +135,14 @@ } }; - __attribute__ ((weak)) void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_kb(void) { + if (!rgb_matrix_indicators_user()) { + return false; + } if (host_keyboard_led_state().caps_lock) { rgb_matrix_set_color(44, 0xFF, 0xFF, 0xFF); } + return true; } #endif diff --git a/keyboards/xbows/nature/config.h b/keyboards/xbows/nature/config.h index 444133cd00d..e38f0b61e10 100644 --- a/keyboards/xbows/nature/config.h +++ b/keyboards/xbows/nature/config.h @@ -27,7 +27,6 @@ #ifdef RGB_MATRIX_ENABLE # define RGB_MATRIX_LED_PROCESS_LIMIT 18 # define RGB_MATRIX_LED_FLUSH_LIMIT 16 -# 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_KEYPRESSES # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 diff --git a/keyboards/xbows/nature/nature.c b/keyboards/xbows/nature/nature.c index 48534d87c40..faa84921237 100644 --- a/keyboards/xbows/nature/nature.c +++ b/keyboards/xbows/nature/nature.c @@ -136,20 +136,14 @@ } }; -void suspend_power_down_kb(void) { - rgb_matrix_set_suspend_state(true); - suspend_power_down_user(); -} - -void suspend_wakeup_init_kb(void) { - rgb_matrix_set_suspend_state(false); - suspend_wakeup_init_user(); -} - - __attribute__ ((weak)) void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_kb(void) { + if (!rgb_matrix_indicators_user()) { + return false; + } if (host_keyboard_led_state().caps_lock) { rgb_matrix_set_color(45, 0xFF, 0xFF, 0xFF); } + return true; } #endif diff --git a/keyboards/xbows/numpad/config.h b/keyboards/xbows/numpad/config.h index 5022f26339b..6c6a86c5d66 100644 --- a/keyboards/xbows/numpad/config.h +++ b/keyboards/xbows/numpad/config.h @@ -27,7 +27,6 @@ #ifdef RGB_MATRIX_ENABLE # define RGB_MATRIX_LED_PROCESS_LIMIT 18 # define RGB_MATRIX_LED_FLUSH_LIMIT 16 -# 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_KEYPRESSES # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 diff --git a/keyboards/xbows/numpad/numpad.c b/keyboards/xbows/numpad/numpad.c index f998e8122ed..4d6c2569815 100644 --- a/keyboards/xbows/numpad/numpad.c +++ b/keyboards/xbows/numpad/numpad.c @@ -71,10 +71,14 @@ } }; - __attribute__ ((weak)) void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_kb(void) { + if (!rgb_matrix_indicators_user()) { + return false; + } if (host_keyboard_led_state().num_lock) { rgb_matrix_set_color(4, 0xFF, 0xFF, 0xFF); } + return true; } #endif diff --git a/keyboards/xbows/ranger/config.h b/keyboards/xbows/ranger/config.h index 15846a8dc90..c8627fd2da2 100644 --- a/keyboards/xbows/ranger/config.h +++ b/keyboards/xbows/ranger/config.h @@ -27,7 +27,6 @@ #ifdef RGB_MATRIX_ENABLE # define RGB_MATRIX_LED_PROCESS_LIMIT 18 # define RGB_MATRIX_LED_FLUSH_LIMIT 16 -# 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_KEYPRESSES # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 diff --git a/keyboards/xbows/ranger/ranger.c b/keyboards/xbows/ranger/ranger.c index c4b0e545441..4c141cc5d3f 100644 --- a/keyboards/xbows/ranger/ranger.c +++ b/keyboards/xbows/ranger/ranger.c @@ -137,10 +137,14 @@ led_config_t g_led_config = { { }; // clang-format on -__attribute__((weak)) void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_kb(void) { + if (!rgb_matrix_indicators_user()) { + return false; + } if (host_keyboard_led_state().caps_lock) { rgb_matrix_set_color(48, 0xFF, 0xFF, 0xFF); } + return true; } #endif diff --git a/keyboards/xbows/woody/config.h b/keyboards/xbows/woody/config.h index ad2a7101cfa..c2945cadf68 100644 --- a/keyboards/xbows/woody/config.h +++ b/keyboards/xbows/woody/config.h @@ -10,7 +10,6 @@ #define RGB_MATRIX_LED_PROCESS_LIMIT 4 #define RGB_MATRIX_LED_FLUSH_LIMIT 26 #define DEBOUNCE 3 -#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_KEYPRESSES #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 diff --git a/keyboards/xbows/woody/woody.c b/keyboards/xbows/woody/woody.c index 9dd57d2fd30..1f85907f95d 100644 --- a/keyboards/xbows/woody/woody.c +++ b/keyboards/xbows/woody/woody.c @@ -1,30 +1,30 @@ #include "woody.h" #ifdef RGB_MATRIX_ENABLE 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 - {0, C9_7, C8_7, C6_6}, // LA15 + {0, C9_7, C8_7, C6_6}, // LA15 {0, C9_6, C8_6, C7_6}, // LA14 - {0, C9_5, C8_5, C7_5}, // LA13 - {0, C9_4, C8_4, C7_4}, // LA12 - {0, C9_3, C8_3, C7_3}, // LA11 - {0, C9_2, C8_2, C7_2}, // LA10 - {0, C9_1, C8_1, C7_1}, // LA9 + {0, C9_5, C8_5, C7_5}, // LA13 + {0, C9_4, C8_4, C7_4}, // LA12 + {0, C9_3, C8_3, C7_3}, // LA11 + {0, C9_2, C8_2, C7_2}, // LA10 + {0, C9_1, C8_1, C7_1}, // LA9 {0, C2_9, C3_9, C4_9}, // LB0 {0, C1_9, C3_10, C4_10}, // LB1 {0, C1_10, C2_10, C4_11}, // LB2 {0, C1_11, C2_11, C3_11}, // LB3 {0, C1_13, C2_13, C3_13}, // LB5 {0, C1_14, C2_14, C3_14}, // LB6 - + {0, C1_7, C2_7, C3_7}, // LA7 - {0, C1_6, C2_6, C3_6}, // LA6 - {0, C1_5, C2_5, C3_5}, // LA5 - {0, C1_4, C2_4, C3_4}, // LA4 - {0, C1_3, C2_3, C3_3}, // LA3 - {0, C1_2, C2_2, C4_3}, // LA2 - {0, C1_1, C3_2, C4_2}, // LA1 + {0, C1_6, C2_6, C3_6}, // LA6 + {0, C1_5, C2_5, C3_5}, // LA5 + {0, C1_4, C2_4, C3_4}, // LA4 + {0, C1_3, C2_3, C3_3}, // LA3 + {0, C1_2, C2_2, C4_3}, // LA2 + {0, C1_1, C3_2, C4_2}, // LA1 {0, C2_1, C3_1, C4_1}, // LA0 {0, C9_9, C8_9, C7_9}, // LB9 {0, C9_10, C8_10, C7_10}, // LB10 @@ -36,10 +36,10 @@ const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { {0, C1_8, C2_8, C3_8}, // LA8 {1, C9_6, C8_6, C7_6}, // LC14 - {1, C9_5, C8_5, C7_5}, // LC13 - {1, C9_4, C8_4, C7_4}, // LC12 - {1, C9_3, C8_3, C7_3}, // LC11 - {1, C9_2, C8_2, C7_2}, // LC10 + {1, C9_5, C8_5, C7_5}, // LC13 + {1, C9_4, C8_4, C7_4}, // LC12 + {1, C9_3, C8_3, C7_3}, // LC11 + {1, C9_2, C8_2, C7_2}, // LC10 {1, C9_1, C8_1, C7_1}, // LC9 {1, C2_9, C3_9, C4_9}, // LD0 {1, C1_9, C3_10, C4_10}, // LD1 @@ -52,8 +52,8 @@ const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { {1, C9_8, C7_7, C6_7}, // LC16 {1, C1_5, C2_5, C3_5}, // LC5 {1, C1_4, C2_4, C3_4}, // LC4 - {1, C1_3, C2_3, C3_3}, // LC3 - {1, C1_2, C2_2, C4_3}, // LC2 + {1, C1_3, C2_3, C3_3}, // LC3 + {1, C1_2, C2_2, C4_3}, // LC2 {1, C1_1, C3_2, C4_2}, // LC1 {1, C9_9, C8_9, C7_9}, // LD9 {1, C9_10, C8_10, C7_10}, // LD10 @@ -65,7 +65,7 @@ const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { {0, C9_15, C8_15, C6_14}, // LB15 {1, C8_8, C7_8, C6_8}, // LC17 - {1, C1_8, C2_8, C3_8}, // LC8 + {1, C1_8, C2_8, C3_8}, // LC8 {1, C1_7, C2_7, C3_7}, // LC7 {1, C2_1, C3_1, C4_1}, // LC0 {1, C9_14, C8_14, C7_14}, // LD14 @@ -91,29 +91,18 @@ led_config_t g_led_config = { { }, { 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1 } }; #endif -void suspend_power_down_kb(void) -{ - rgb_matrix_set_suspend_state(true); - suspend_power_down_user(); -} - -void suspend_wakeup_init_kb(void) -{ - rgb_matrix_set_suspend_state(false); - suspend_wakeup_init_user(); -} -__attribute__ ((weak)) - -void rgb_matrix_indicators_user(void) -{ - if (IS_LED_ON(host_keyboard_leds(), USB_LED_CAPS_LOCK)) - { +bool rgb_matrix_indicators_kb(void) { + if (!rgb_matrix_indicators_user()) { + return false; + } + if (IS_LED_ON(host_keyboard_leds(), USB_LED_CAPS_LOCK)) { rgb_matrix_set_color(30, 0xFF, 0x00, 0x00); } + return true; } diff --git a/keyboards/xelus/valor/rev2/keymaps/default/keymap.c b/keyboards/xelus/valor/rev2/keymaps/default/keymap.c index d98ffe8e951..20ac204777d 100644 --- a/keyboards/xelus/valor/rev2/keymaps/default/keymap.c +++ b/keyboards/xelus/valor/rev2/keymaps/default/keymap.c @@ -34,7 +34,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; #ifdef RGB_MATRIX_ENABLE -void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { +bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { // caps lock cyan if (host_keyboard_led_state().caps_lock) { RGB_MATRIX_INDICATOR_SET_COLOR(27, 0, 128, 128); @@ -75,5 +75,6 @@ void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { RGB_MATRIX_INDICATOR_SET_COLOR(24, 128, 128, 128); break; } + return false; } #endif diff --git a/keyboards/xelus/valor/rev2/keymaps/via/keymap.c b/keyboards/xelus/valor/rev2/keymaps/via/keymap.c index f8bed2dd490..c1ed227effe 100644 --- a/keyboards/xelus/valor/rev2/keymaps/via/keymap.c +++ b/keyboards/xelus/valor/rev2/keymaps/via/keymap.c @@ -82,7 +82,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; #ifdef RGB_MATRIX_ENABLE -void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { +bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { // caps lock cyan if (host_keyboard_led_state().caps_lock) { RGB_MATRIX_INDICATOR_SET_COLOR(27, 0, 128, 128); @@ -123,5 +123,6 @@ void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { RGB_MATRIX_INDICATOR_SET_COLOR(24, 128, 128, 128); break; } + return false; } #endif diff --git a/keyboards/xiudi/xd75/keymaps/raoeus/keymap.c b/keyboards/xiudi/xd75/keymaps/raoeus/keymap.c index 6d1c9d812ef..194eac9d892 100644 --- a/keyboards/xiudi/xd75/keymaps/raoeus/keymap.c +++ b/keyboards/xiudi/xd75/keymaps/raoeus/keymap.c @@ -111,7 +111,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * .--------------------------------------------------------------------------------------------------------------------------------------. * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | | | | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - * | | Reset | Debug | | | | | TermOf | TermOn | | | Del | | | | + * | | Reset | Debug | | | | | | | | | Del | | | | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| * | | | | | | AGNorm | AGSwap | QWERTY | STENO | | | PLAIN | | | | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| @@ -121,11 +121,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * '--------------------------------------------------------------------------------------------------------------------------------------' */ [_BOTH] = LAYOUT_ortho_5x15( - KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, - _______, QK_BOOT, DEBUG, _______, _______, _______, _______, TERM_ON, TERM_OFF, _______, _______, KC_DEL, _______, _______, _______, - _______, _______, _______, _______, _______, AG_NORM, AG_SWAP, QWERTY, STENO, _______, _______, RGB_M_P, _______, _______, _______, - RGB_MOD, _______, _______, _______, _______, _______, _______, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, _______, _______, _______, - RGB_RMOD, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, _______, _______, _______) + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, + _______, QK_BOOT, DEBUG, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, _______, _______, _______, + _______, _______, _______, _______, _______, AG_NORM, AG_SWAP, QWERTY, STENO, _______, _______, RGB_M_P, _______, _______, _______, + RGB_MOD, _______, _______, _______, _______, _______, _______, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, _______, _______, _______, + RGB_RMOD, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, _______, _______, _______) }; bool process_record_user(uint16_t keycode, keyrecord_t *record) { diff --git a/keyboards/xiudi/xd75/keymaps/raoeus/readme.md b/keyboards/xiudi/xd75/keymaps/raoeus/readme.md index 40da8596e59..fdb1095881b 100644 --- a/keyboards/xiudi/xd75/keymaps/raoeus/readme.md +++ b/keyboards/xiudi/xd75/keymaps/raoeus/readme.md @@ -66,7 +66,7 @@ To compile _and_ flash, please run `make xiudi/xd75:raoeus:flash` * .--------------------------------------------------------------------------------------------------------------------------------------. * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | | | | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| - * | | Reset | Debug | | | | | TermOf | TermOn | | | Del | | | | + * | | Reset | Debug | | | | | | | | | Del | | | | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| * | | | | | | AGNorm | AGSwap | QWERTY | STENO | | | PLAIN | | | | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| diff --git a/keyboards/yandrstudio/buff67v3/board.h b/keyboards/yandrstudio/buff67v3/board.h new file mode 100644 index 00000000000..d83804babdf --- /dev/null +++ b/keyboards/yandrstudio/buff67v3/board.h @@ -0,0 +1,21 @@ +/* Copyright 2022 JasonRen(biu) + * + * 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 "board.h" + +#undef STM32_HSECLK +#define STM32_HSECLK 16000000 diff --git a/keyboards/yandrstudio/buff67v3/buff67v3.c b/keyboards/yandrstudio/buff67v3/buff67v3.c new file mode 100644 index 00000000000..62a74c82bb5 --- /dev/null +++ b/keyboards/yandrstudio/buff67v3/buff67v3.c @@ -0,0 +1,58 @@ +/* Copyright 2022 JasonRen(biu) + * + * 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 "buff67v3.h" + + +#ifdef RGBLIGHT_ENABLE + +const rgblight_segment_t PROGMEM my_capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 1, HSV_RED} +); + +const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST( + my_capslock_layer +); + +bool led_update_kb(led_t led_state) { + if (led_update_user(led_state)) { + rgblight_set_layer_state(0, led_state.caps_lock); + } + return true; +} + +void keyboard_post_init_kb(void) { + rgblight_reload_from_eeprom(); + rgblight_layers = my_rgb_layers; + keyboard_post_init_user(); +} + +#endif + +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + if (!process_record_user(keycode, record)) { return false; } + switch(keycode) { + case LOCK_GUI: + process_magic(GUI_TOG, record); + return false; + default: + break; + } + return true; +} + +void board_init(void) { + AFIO->MAPR |= AFIO_MAPR_TIM3_REMAP_PARTIALREMAP; +} diff --git a/keyboards/yandrstudio/buff67v3/buff67v3.h b/keyboards/yandrstudio/buff67v3/buff67v3.h new file mode 100644 index 00000000000..dc6f334a585 --- /dev/null +++ b/keyboards/yandrstudio/buff67v3/buff67v3.h @@ -0,0 +1,42 @@ +/* Copyright 2022 JasonRen(biu) + * + * 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( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K213, K214, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K312, K313, K314, \ + K400, K401, K402, K405, K409, K410, K412, K413, K414 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, KC_NO, K213, K214 }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, KC_NO, K312, K313, K314 }, \ + { K400, K401, K402, KC_NO, KC_NO, K405, KC_NO, KC_NO, KC_NO, K409, K410, KC_NO, K412, K413, K414 } \ +} + +enum keyboard_keycodes { +#ifdef VIA_ENABLE + LOCK_GUI = USER00, + NEW_SAFE_RANGE = SAFE_RANGE // Important! +#else + LOCK_GUI = SAFE_RANGE, + NEW_SAFE_RANGE // Important! +#endif +}; diff --git a/keyboards/yandrstudio/buff67v3/config.h b/keyboards/yandrstudio/buff67v3/config.h new file mode 100644 index 00000000000..81d5654e57f --- /dev/null +++ b/keyboards/yandrstudio/buff67v3/config.h @@ -0,0 +1,60 @@ +/* Copyright 2022 JasonRen(biu) + * + * 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 5 +#define MATRIX_COLS 15 + +/* key matrix pins */ +#define MATRIX_COL_PINS { B5, B6, B7, B8, B9, C13, C14, B0, B1, B2, B10, B11, B12, A15, B3 } +#define MATRIX_ROW_PINS { A3, A4, A5, A7, C15 } + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +#ifdef RGBLIGHT_ENABLE + +# define RGB_DI_PIN B4 +# define RGBLED_NUM 1 +# define DRIVER_LED_TOTAL RGBLED_NUM +# 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 RGBLIGHT_LAYERS +# define RGBLIGHT_LAYERS_RETAIN_VAL +# define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF + +# define WS2812_PWM_DRIVER PWMD3 // default: PWMD2 +# define WS2812_PWM_CHANNEL 1 // default: 2 +# define WS2812_DMA_STREAM STM32_DMA1_STREAM3 // DMA Stream for TIMx_UP, see the respective reference manual for the appropriate values for your MCU. +# define WS2812_DMA_CHANNEL 3 // DMA Channel for TIMx_UP, see the respective reference manual for the appropriate values for your MCU. + +#endif + + diff --git a/keyboards/handwired/onekey/onekey.h b/keyboards/yandrstudio/buff67v3/halconf.h similarity index 86% rename from keyboards/handwired/onekey/onekey.h rename to keyboards/yandrstudio/buff67v3/halconf.h index 72cab45be50..fca9a1f5f2f 100644 --- a/keyboards/handwired/onekey/onekey.h +++ b/keyboards/yandrstudio/buff67v3/halconf.h @@ -1,4 +1,4 @@ -/* Copyright 2019 +/* Copyright 2022 JasonRen(biu) * * 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 @@ -14,12 +14,11 @@ * along with this program. If not, see . */ + #pragma once -#include "quantum.h" +#include_next + +#undef HAL_USE_PWM +#define HAL_USE_PWM TRUE -#define LAYOUT_ortho_1x1( \ - k00 \ -) { \ - { k00 } \ -} diff --git a/keyboards/yandrstudio/buff67v3/info.json b/keyboards/yandrstudio/buff67v3/info.json new file mode 100644 index 00000000000..07f7dbbe30c --- /dev/null +++ b/keyboards/yandrstudio/buff67v3/info.json @@ -0,0 +1,362 @@ +{ + "keyboard_name": "buff67v3", + "processor": "STM32F103", + "bootloader": "stm32duino", + "usb": { + "pid": "0xAA88", + "device_version": "1.0.0" + }, + "layouts": { + "LAYOUT": { + "layout": [ + { + "label": "~", + "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": "Insert", + "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": "PgUp", + "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": "PgDn", + "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": "Delete", + "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": "Alt", + "x": 10, + "y": 4, + "w": 1.25 + }, + { + "label": "Fn", + "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/yandrstudio/buff67v3/keymaps/default/keymap.c b/keyboards/yandrstudio/buff67v3/keymaps/default/keymap.c new file mode 100644 index 00000000000..3ca660e9e0d --- /dev/null +++ b/keyboards/yandrstudio/buff67v3/keymaps/default/keymap.c @@ -0,0 +1,31 @@ +/* Copyright 2022 JasonRen(biu) + * + * 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( + 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_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_BSLS, KC_END, + 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, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT), + [1] = LAYOUT( + 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_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, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, KC_TRNS, KC_TRNS, KC_TRNS, LOCK_GUI,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_RMOD,RGB_VAI, RGB_VAD, 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/yandrstudio/buff67v3/keymaps/via/keymap.c b/keyboards/yandrstudio/buff67v3/keymaps/via/keymap.c new file mode 100644 index 00000000000..d88884740e7 --- /dev/null +++ b/keyboards/yandrstudio/buff67v3/keymaps/via/keymap.c @@ -0,0 +1,43 @@ +/* Copyright 2022 JasonRen(biu) + * + * 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( + 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_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_BSLS, KC_END, + 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, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT), + [1] = LAYOUT( + 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_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, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_RMOD,RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, LOCK_GUI,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + [2] = 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, 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( + 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/yandrstudio/buff67v3/keymaps/via/rules.mk b/keyboards/yandrstudio/buff67v3/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/yandrstudio/buff67v3/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/yandrstudio/buff67v3/mcuconf.h b/keyboards/yandrstudio/buff67v3/mcuconf.h new file mode 100644 index 00000000000..3ec9c201288 --- /dev/null +++ b/keyboards/yandrstudio/buff67v3/mcuconf.h @@ -0,0 +1,25 @@ +/* Copyright 2022 JasonRen(biu) + * + * 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_PWM_USE_TIM3 +#define STM32_PWM_USE_TIM3 TRUE + +#undef STM32_PLLXTPRE +#define STM32_PLLXTPRE STM32_PLLXTPRE_DIV2 diff --git a/keyboards/yandrstudio/buff67v3/readme.md b/keyboards/yandrstudio/buff67v3/readme.md new file mode 100644 index 00000000000..5e4935c48ce --- /dev/null +++ b/keyboards/yandrstudio/buff67v3/readme.md @@ -0,0 +1,23 @@ +# buff67v3 + +![buff67v3](https://i.imgur.com/idPbNDLh.jpg) + +A 67 keys keyboard with rgb. +This keyboard use 16mhz HSE and APM32F103 as MCU. + +- Keyboard Maintainer: https://github.com/jiaxin96 +- Hardware Supported: buff67v3 +- Hardware Availability: https://github.com/Oh-My-Mechanical-Keyboard + +Make example for this keyboard (after setting up your build environment): + + make yandrstudio/buff67v3:default + +See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. + +## Bootloader + +Enter the bootloader in 2 ways: + +- **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key which is Escape in this keyboard) and plug in the keyboard +- **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. diff --git a/keyboards/yandrstudio/buff67v3/rules.mk b/keyboards/yandrstudio/buff67v3/rules.mk new file mode 100644 index 00000000000..35a243a65d7 --- /dev/null +++ b/keyboards/yandrstudio/buff67v3/rules.mk @@ -0,0 +1,17 @@ +# Wildcard to allow APM32 MCU +DFU_SUFFIX_ARGS = -p FFFF -v FFFF + +# 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 +RGBLIGHT_DRIVER = WS2812 # RGB driver support +WS2812_DRIVER = pwm # WS2812 RGB Driver +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/yandrstudio/eau87/board.h b/keyboards/yandrstudio/eau87/board.h new file mode 100644 index 00000000000..d83804babdf --- /dev/null +++ b/keyboards/yandrstudio/eau87/board.h @@ -0,0 +1,21 @@ +/* Copyright 2022 JasonRen(biu) + * + * 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 "board.h" + +#undef STM32_HSECLK +#define STM32_HSECLK 16000000 diff --git a/keyboards/durgod/k3x0/k310/config.h b/keyboards/yandrstudio/eau87/config.h similarity index 68% rename from keyboards/durgod/k3x0/k310/config.h rename to keyboards/yandrstudio/eau87/config.h index cb936a201f0..698b5ca141c 100644 --- a/keyboards/durgod/k3x0/k310/config.h +++ b/keyboards/yandrstudio/eau87/config.h @@ -1,5 +1,4 @@ -/* Copyright 2021 Don Kjer and Tyler Tidman - * Copyright 2021 Simon Arlott +/* Copyright 2022 JasonRen(biu) * * 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 @@ -14,15 +13,15 @@ * 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 (cols in generic keyboard config) */ -#define MATRIX_ROWS 8 +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 17 -#define MATRIX_ROW_PINS { A0, A1, A2, A3, A4, A5, A6, A7 } +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW -/* LED indicator pins */ -#define LED_NUM_LOCK_PIN C8 +#define MATRIX_COL_PINS { A10, A9, A8, B15, B14, B13, B11, B10, B2, B1, B0, A7, A6, A5, A3, A15, B3 } +#define MATRIX_ROW_PINS { B12, B5, B4, A4, B7, B6 } diff --git a/keyboards/saevus/cor_tkl/keymaps/via/config.h b/keyboards/yandrstudio/eau87/eau87.c similarity index 85% rename from keyboards/saevus/cor_tkl/keymaps/via/config.h rename to keyboards/yandrstudio/eau87/eau87.c index 52983591bf0..6ab9edb7888 100644 --- a/keyboards/saevus/cor_tkl/keymaps/via/config.h +++ b/keyboards/yandrstudio/eau87/eau87.c @@ -1,4 +1,4 @@ -/* Copyright 2022 Ramon Imbao +/* Copyright 2022 JasonRen(biu) * * 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,7 +13,4 @@ * 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 +#include "eau87.h" diff --git a/keyboards/yandrstudio/eau87/eau87.h b/keyboards/yandrstudio/eau87/eau87.h new file mode 100644 index 00000000000..68107978375 --- /dev/null +++ b/keyboards/yandrstudio/eau87/eau87.h @@ -0,0 +1,34 @@ +/* Copyright 2022 JasonRen(biu) + * + * 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( \ + K000, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, K116, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, K216, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K313, \ + K400, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K413, K415, \ + K500, K501, K502, K506, K510, K511, K512, K513, K514, K515, K516 \ + )\ + { \ + { K000, KC_NO, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, K116 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, K216 }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, KC_NO, K313, KC_NO, KC_NO, KC_NO }, \ + { K400, KC_NO, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, KC_NO, K413, KC_NO, K415, KC_NO }, \ + { K500, K501, K502, KC_NO, KC_NO, KC_NO, K506, KC_NO, KC_NO, KC_NO, K510, K511, K512, K513, K514, K515, K516 } \ +} diff --git a/keyboards/yandrstudio/eau87/info.json b/keyboards/yandrstudio/eau87/info.json new file mode 100644 index 00000000000..f09f55c76b2 --- /dev/null +++ b/keyboards/yandrstudio/eau87/info.json @@ -0,0 +1,464 @@ +{ + "keyboard_name": "eau87", + "processor": "STM32F103", + "bootloader": "stm32duino", + "usb": { + "pid": "0xAAEB", + "device_version": "1.0.0" + }, + "layouts": { + "LAYOUT": { + "layout": [ + { + "label": "Esc", + "x": 0, + "y": 0 + }, + { + "label": "F1", + "x": 2, + "y": 0 + }, + { + "label": "F2", + "x": 3, + "y": 0 + }, + { + "label": "F3", + "x": 4, + "y": 0 + }, + { + "label": "F4", + "x": 5, + "y": 0 + }, + { + "label": "F5", + "x": 6.5, + "y": 0 + }, + { + "label": "F6", + "x": 7.5, + "y": 0 + }, + { + "label": "F7", + "x": 8.5, + "y": 0 + }, + { + "label": "F8", + "x": 9.5, + "y": 0 + }, + { + "label": "F9", + "x": 11, + "y": 0 + }, + { + "label": "F10", + "x": 12, + "y": 0 + }, + { + "label": "F11", + "x": 13, + "y": 0 + }, + { + "label": "F12", + "x": 14, + "y": 0 + }, + { + "label": "PrtSc", + "x": 15.25, + "y": 0 + }, + { + "label": "Scroll Lock", + "x": 16.25, + "y": 0 + }, + { + "label": "Pause", + "x": 17.25, + "y": 0 + }, + { + "label": "~", + "x": 0, + "y": 1.5 + }, + { + "label": "!", + "x": 1, + "y": 1.5 + }, + { + "label": "@", + "x": 2, + "y": 1.5 + }, + { + "label": "#", + "x": 3, + "y": 1.5 + }, + { + "label": "$", + "x": 4, + "y": 1.5 + }, + { + "label": "%", + "x": 5, + "y": 1.5 + }, + { + "label": "^", + "x": 6, + "y": 1.5 + }, + { + "label": "&", + "x": 7, + "y": 1.5 + }, + { + "label": "*", + "x": 8, + "y": 1.5 + }, + { + "label": "(", + "x": 9, + "y": 1.5 + }, + { + "label": ")", + "x": 10, + "y": 1.5 + }, + { + "label": "_", + "x": 11, + "y": 1.5 + }, + { + "label": "+", + "x": 12, + "y": 1.5 + }, + { + "label": "Backspace", + "x": 13, + "y": 1.5, + "w": 2 + }, + { + "label": "Insert", + "x": 15.25, + "y": 1.5 + }, + { + "label": "Home", + "x": 16.25, + "y": 1.5 + }, + { + "label": "PgUp", + "x": 17.25, + "y": 1.5 + }, + { + "label": "Tab", + "x": 0, + "y": 2.5, + "w": 1.5 + }, + { + "label": "Q", + "x": 1.5, + "y": 2.5 + }, + { + "label": "W", + "x": 2.5, + "y": 2.5 + }, + { + "label": "E", + "x": 3.5, + "y": 2.5 + }, + { + "label": "R", + "x": 4.5, + "y": 2.5 + }, + { + "label": "T", + "x": 5.5, + "y": 2.5 + }, + { + "label": "Y", + "x": 6.5, + "y": 2.5 + }, + { + "label": "U", + "x": 7.5, + "y": 2.5 + }, + { + "label": "I", + "x": 8.5, + "y": 2.5 + }, + { + "label": "O", + "x": 9.5, + "y": 2.5 + }, + { + "label": "P", + "x": 10.5, + "y": 2.5 + }, + { + "label": "{", + "x": 11.5, + "y": 2.5 + }, + { + "label": "}", + "x": 12.5, + "y": 2.5 + }, + { + "label": "|", + "x": 13.5, + "y": 2.5, + "w": 1.5 + }, + { + "label": "Delete", + "x": 15.25, + "y": 2.5 + }, + { + "label": "End", + "x": 16.25, + "y": 2.5 + }, + { + "label": "PgDn", + "x": 17.25, + "y": 2.5 + }, + { + "label": "Caps Lock", + "x": 0, + "y": 3.5, + "w": 1.75 + }, + { + "label": "A", + "x": 1.75, + "y": 3.5 + }, + { + "label": "S", + "x": 2.75, + "y": 3.5 + }, + { + "label": "D", + "x": 3.75, + "y": 3.5 + }, + { + "label": "F", + "x": 4.75, + "y": 3.5 + }, + { + "label": "G", + "x": 5.75, + "y": 3.5 + }, + { + "label": "H", + "x": 6.75, + "y": 3.5 + }, + { + "label": "J", + "x": 7.75, + "y": 3.5 + }, + { + "label": "K", + "x": 8.75, + "y": 3.5 + }, + { + "label": "L", + "x": 9.75, + "y": 3.5 + }, + { + "label": ":", + "x": 10.75, + "y": 3.5 + }, + { + "label": "\"", + "x": 11.75, + "y": 3.5 + }, + { + "label": "Enter", + "x": 12.75, + "y": 3.5, + "w": 2.25 + }, + { + "label": "Shift", + "x": 0, + "y": 4.5, + "w": 2.25 + }, + { + "label": "Z", + "x": 2.25, + "y": 4.5 + }, + { + "label": "X", + "x": 3.25, + "y": 4.5 + }, + { + "label": "C", + "x": 4.25, + "y": 4.5 + }, + { + "label": "V", + "x": 5.25, + "y": 4.5 + }, + { + "label": "B", + "x": 6.25, + "y": 4.5 + }, + { + "label": "N", + "x": 7.25, + "y": 4.5 + }, + { + "label": "M", + "x": 8.25, + "y": 4.5 + }, + { + "label": "<", + "x": 9.25, + "y": 4.5 + }, + { + "label": ">", + "x": 10.25, + "y": 4.5 + }, + { + "label": "?", + "x": 11.25, + "y": 4.5 + }, + { + "label": "Shift", + "x": 12.25, + "y": 4.5, + "w": 2.75 + }, + { + "label": "\u2191", + "x": 16.25, + "y": 4.5 + }, + { + "label": "Ctrl", + "x": 0, + "y": 5.5, + "w": 1.25 + }, + { + "label": "Win", + "x": 1.25, + "y": 5.5, + "w": 1.25 + }, + { + "label": "Alt", + "x": 2.5, + "y": 5.5, + "w": 1.25 + }, + { + "x": 3.75, + "y": 5.5, + "w": 6.25 + }, + { + "label": "Alt", + "x": 10, + "y": 5.5, + "w": 1.25 + }, + { + "label": "Win", + "x": 11.25, + "y": 5.5, + "w": 1.25 + }, + { + "label": "Menu", + "x": 12.5, + "y": 5.5, + "w": 1.25 + }, + { + "label": "Ctrl", + "x": 13.75, + "y": 5.5, + "w": 1.25 + }, + { + "label": "\u2190", + "x": 15.25, + "y": 5.5 + }, + { + "label": "\u2193", + "x": 16.25, + "y": 5.5 + }, + { + "label": "\u2192", + "x": 17.25, + "y": 5.5 + } + ] + } + } +} diff --git a/keyboards/yandrstudio/eau87/keymaps/default/keymap.c b/keyboards/yandrstudio/eau87/keymaps/default/keymap.c new file mode 100644 index 00000000000..ce5c77baa4e --- /dev/null +++ b/keyboards/yandrstudio/eau87/keymaps/default/keymap.c @@ -0,0 +1,27 @@ +/* Copyright 2022 JasonRen(biu) + * + * 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( + 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_MUTE, KC_VOLU, KC_VOLD, + 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, MO(1), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT) +}; diff --git a/keyboards/yandrstudio/eau87/keymaps/via/keymap.c b/keyboards/yandrstudio/eau87/keymaps/via/keymap.c new file mode 100644 index 00000000000..4f592bd6649 --- /dev/null +++ b/keyboards/yandrstudio/eau87/keymaps/via/keymap.c @@ -0,0 +1,48 @@ +/* Copyright 2022 JasonRen(biu) + * + * 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( + 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_MUTE, KC_VOLU, KC_VOLD, + 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, MO(1), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), + [1] = 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, 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), + [2] = 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, 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( + 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, 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/yandrstudio/eau87/keymaps/via/rules.mk b/keyboards/yandrstudio/eau87/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/yandrstudio/eau87/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/yandrstudio/eau87/mcuconf.h b/keyboards/yandrstudio/eau87/mcuconf.h new file mode 100644 index 00000000000..bdfb4641ea8 --- /dev/null +++ b/keyboards/yandrstudio/eau87/mcuconf.h @@ -0,0 +1,21 @@ +/* Copyright 2022 JasonRen(biu) + * + * 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_PLLXTPRE +#define STM32_PLLXTPRE STM32_PLLXTPRE_DIV2 diff --git a/keyboards/yandrstudio/eau87/readme.md b/keyboards/yandrstudio/eau87/readme.md new file mode 100644 index 00000000000..da253638354 --- /dev/null +++ b/keyboards/yandrstudio/eau87/readme.md @@ -0,0 +1,22 @@ +# eau87 + +![eau87](https://i.imgur.com/1V2JmGlh.png) +A 80% keyboard. +This keyboard use 16mhz HSE and APM32F103 as MCU. + +- Keyboard Maintainer: https://github.com/jiaxin96 +- Hardware Supported: eau87 +- Hardware Availability: [CHAOSERA SELL](https://www.chaosera-sell.com) + +Make example for this keyboard (after setting up your build environment): + + make yandrstudio/eau87:default + +See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. + +## Bootloader + +Enter the bootloader in 2 ways: + +- **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key which is Escape in this keyboard) and plug in the keyboard +- **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. diff --git a/keyboards/yandrstudio/eau87/rules.mk b/keyboards/yandrstudio/eau87/rules.mk new file mode 100644 index 00000000000..4a92d0f891c --- /dev/null +++ b/keyboards/yandrstudio/eau87/rules.mk @@ -0,0 +1,15 @@ +# Wildcard to allow APM32 MCU +DFU_SUFFIX_ARGS = -p FFFF -v FFFF + +# 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 = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/handwired/onekey/stm32f405_feather/config.h b/keyboards/yandrstudio/eau_r2/board.h similarity index 86% rename from keyboards/handwired/onekey/stm32f405_feather/config.h rename to keyboards/yandrstudio/eau_r2/board.h index ea9f4096409..a667bee461b 100644 --- a/keyboards/handwired/onekey/stm32f405_feather/config.h +++ b/keyboards/yandrstudio/eau_r2/board.h @@ -1,4 +1,4 @@ -/* Copyright 2019 +/* Copyright 2022 JasonRen(biu) * * 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,7 +16,7 @@ #pragma once -#include "config_common.h" +#include_next "board.h" -#define MATRIX_COL_PINS { C2 } -#define MATRIX_ROW_PINS { C3 } +#undef STM32_HSECLK +#define STM32_HSECLK 16000000 diff --git a/keyboards/yandrstudio/eau_r2/config.h b/keyboards/yandrstudio/eau_r2/config.h new file mode 100644 index 00000000000..3fdb79256ec --- /dev/null +++ b/keyboards/yandrstudio/eau_r2/config.h @@ -0,0 +1,58 @@ +/* Copyright 2022 JasonRen(biu) + * + * 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 6 +#define MATRIX_COLS 17 + +#define MATRIX_COL_PINS { B7, A6, B6, B5, B4, B3, A5, A10, B1, B0, A7, A9, B11, B10, B2, A15, B15 } +#define MATRIX_ROW_PINS { A3, B9, B8, A4, C14, C13 } + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 8 + +#ifdef RGBLIGHT_ENABLE + +# define RGB_DI_PIN A8 +# define RGBLED_NUM 12 +# define DRIVER_LED_TOTAL RGBLED_NUM +# define RGBLIGHT_SLEEP +# define RGBLIGHT_VAL_STEP 5 +# define RGBLIGHT_LIMIT_VAL 200 + +# 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 RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_RAINBOW_MOOD + +# define WS2812_PWM_DRIVER PWMD1 +# define WS2812_PWM_CHANNEL 1 +# define WS2812_DMA_STREAM STM32_DMA1_STREAM5 +# define WS2812_DMA_CHANNEL 5 + +#endif diff --git a/keyboards/yandrstudio/eau_r2/eau_r2.c b/keyboards/yandrstudio/eau_r2/eau_r2.c new file mode 100644 index 00000000000..f9d5ec32db5 --- /dev/null +++ b/keyboards/yandrstudio/eau_r2/eau_r2.c @@ -0,0 +1,20 @@ +/* Copyright 2022 JasonRen(biu) + * + * 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 "eau_r2.h" + +void board_init(void) { + AFIO->MAPR |= AFIO_MAPR_TIM1_REMAP_PARTIALREMAP; +} diff --git a/keyboards/yandrstudio/eau_r2/eau_r2.h b/keyboards/yandrstudio/eau_r2/eau_r2.h new file mode 100644 index 00000000000..4dc9f59cbb8 --- /dev/null +++ b/keyboards/yandrstudio/eau_r2/eau_r2.h @@ -0,0 +1,35 @@ +/* Copyright 2022 JasonRen(biu) + * + * 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( \ + K000, K002, K003, K004, K005, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K115, K116, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K215, K216, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K313, \ + K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K413, K415, \ + K500, K501, K502, K505, K509, K510, K513, K514, K515, K516 \ + )\ + { \ + { K000, KC_NO, K002, K003, K004, K005, KC_NO, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, KC_NO, K115, K116 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, KC_NO, K215, K216 }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, KC_NO, K313, KC_NO, KC_NO, KC_NO }, \ + { K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, KC_NO, KC_NO, K413, KC_NO, K415, KC_NO }, \ + { K500, K501, K502, KC_NO, KC_NO, K505, KC_NO, KC_NO, KC_NO, K509, K510, KC_NO, KC_NO, K513, K514, K515, K516 } \ +} + diff --git a/keyboards/saevus/cor_tkl/keymaps/default/config.h b/keyboards/yandrstudio/eau_r2/halconf.h similarity index 86% rename from keyboards/saevus/cor_tkl/keymaps/default/config.h rename to keyboards/yandrstudio/eau_r2/halconf.h index 08636494e6d..d5d6543fc61 100644 --- a/keyboards/saevus/cor_tkl/keymaps/default/config.h +++ b/keyboards/yandrstudio/eau_r2/halconf.h @@ -1,4 +1,4 @@ -/* Copyright 2022 Ramon Imbao +/* Copyright 2022 JasonRen(biu) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -15,6 +15,7 @@ */ #pragma once +#include_next -#define RGBLIGHT_LAYERS -#define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF +#undef HAL_USE_PWM +#define HAL_USE_PWM TRUE diff --git a/keyboards/yandrstudio/eau_r2/info.json b/keyboards/yandrstudio/eau_r2/info.json new file mode 100644 index 00000000000..cf289b3b266 --- /dev/null +++ b/keyboards/yandrstudio/eau_r2/info.json @@ -0,0 +1,443 @@ +{ + "keyboard_name": "eau75", + "processor": "STM32F103", + "bootloader": "stm32duino", + "usb": { + "pid": "0xAACD", + "device_version": "1.0.0" + }, + "layouts": { + "LAYOUT": { + "layout": [ + { + "label": "Esc", + "x": 0, + "y": 0 + }, + { + "label": "F1", + "x": 2, + "y": 0 + }, + { + "label": "F2", + "x": 3, + "y": 0 + }, + { + "label": "F3", + "x": 4, + "y": 0 + }, + { + "label": "F4", + "x": 5, + "y": 0 + }, + { + "label": "F5", + "x": 6.5, + "y": 0 + }, + { + "label": "F6", + "x": 7.5, + "y": 0 + }, + { + "label": "F7", + "x": 8.5, + "y": 0 + }, + { + "label": "F8", + "x": 9.5, + "y": 0 + }, + { + "label": "F9", + "x": 11, + "y": 0 + }, + { + "label": "F10", + "x": 12, + "y": 0 + }, + { + "label": "F11", + "x": 13, + "y": 0 + }, + { + "label": "F12", + "x": 14, + "y": 0 + }, + { + "label": "PrtSc", + "x": 15.25, + "y": 0 + }, + { + "label": "Scroll Lock", + "x": 16.25, + "y": 0 + }, + { + "label": "\u00ac", + "x": 0, + "y": 1.25 + }, + { + "label": "!", + "x": 1, + "y": 1.25 + }, + { + "label": "\"", + "x": 2, + "y": 1.25 + }, + { + "label": "\u00a3", + "x": 3, + "y": 1.25 + }, + { + "label": "$", + "x": 4, + "y": 1.25 + }, + { + "label": "%", + "x": 5, + "y": 1.25 + }, + { + "label": "^", + "x": 6, + "y": 1.25 + }, + { + "label": "&", + "x": 7, + "y": 1.25 + }, + { + "label": "*", + "x": 8, + "y": 1.25 + }, + { + "label": "(", + "x": 9, + "y": 1.25 + }, + { + "label": ")", + "x": 10, + "y": 1.25 + }, + { + "label": "_", + "x": 11, + "y": 1.25 + }, + { + "label": "+", + "x": 12, + "y": 1.25 + }, + { + "label": "Backspace", + "x": 13, + "y": 1.25, + "w": 2 + }, + { + "label": "Insert", + "x": 15.25, + "y": 1.25 + }, + { + "label": "Home", + "x": 16.25, + "y": 1.25 + }, + { + "label": "Tab", + "x": 0, + "y": 2.25, + "w": 1.5 + }, + { + "label": "Q", + "x": 1.5, + "y": 2.25 + }, + { + "label": "W", + "x": 2.5, + "y": 2.25 + }, + { + "label": "E", + "x": 3.5, + "y": 2.25 + }, + { + "label": "R", + "x": 4.5, + "y": 2.25 + }, + { + "label": "T", + "x": 5.5, + "y": 2.25 + }, + { + "label": "Y", + "x": 6.5, + "y": 2.25 + }, + { + "label": "U", + "x": 7.5, + "y": 2.25 + }, + { + "label": "I", + "x": 8.5, + "y": 2.25 + }, + { + "label": "O", + "x": 9.5, + "y": 2.25 + }, + { + "label": "P", + "x": 10.5, + "y": 2.25 + }, + { + "label": "{", + "x": 11.5, + "y": 2.25 + }, + { + "label": "}", + "x": 12.5, + "y": 2.25 + }, + { + "label": "|", + "x": 13.5, + "y": 2.25, + "w": 1.5 + }, + { + "label": "Delete", + "x": 15.25, + "y": 2.25 + }, + { + "label": "End", + "x": 16.25, + "y": 2.25 + }, + { + "label": "Caps Lock", + "x": 0, + "y": 3.25, + "w": 1.75 + }, + { + "label": "A", + "x": 1.75, + "y": 3.25 + }, + { + "label": "S", + "x": 2.75, + "y": 3.25 + }, + { + "label": "D", + "x": 3.75, + "y": 3.25 + }, + { + "label": "F", + "x": 4.75, + "y": 3.25 + }, + { + "label": "G", + "x": 5.75, + "y": 3.25 + }, + { + "label": "H", + "x": 6.75, + "y": 3.25 + }, + { + "label": "J", + "x": 7.75, + "y": 3.25 + }, + { + "label": "K", + "x": 8.75, + "y": 3.25 + }, + { + "label": "L", + "x": 9.75, + "y": 3.25 + }, + { + "label": ":", + "x": 10.75, + "y": 3.25 + }, + { + "label": "@", + "x": 11.75, + "y": 3.25 + }, + { + "label": "Enter", + "x": 12.75, + "y": 3.25, + "w": 2.25 + }, + { + "label": "Shift", + "x": 0, + "y": 4.25, + "w": 2.25 + }, + { + "label": "Z", + "x": 2.25, + "y": 4.25 + }, + { + "label": "X", + "x": 3.25, + "y": 4.25 + }, + { + "label": "C", + "x": 4.25, + "y": 4.25 + }, + { + "label": "V", + "x": 5.25, + "y": 4.25 + }, + { + "label": "B", + "x": 6.25, + "y": 4.25 + }, + { + "label": "N", + "x": 7.25, + "y": 4.25 + }, + { + "label": "M", + "x": 8.25, + "y": 4.25 + }, + { + "label": "<", + "x": 9.25, + "y": 4.25 + }, + { + "label": ">", + "x": 10.25, + "y": 4.25 + }, + { + "label": "?", + "x": 11.25, + "y": 4.25 + }, + { + "label": "Shift", + "x": 12.25, + "y": 4.25, + "w": 2.75 + }, + { + "label": "\u2191", + "x": 15.25, + "y": 4.25 + }, + { + "label": "Ctrl", + "x": 0, + "y": 5.25, + "w": 1.25 + }, + { + "label": "Win", + "x": 1.25, + "y": 5.25, + "w": 1.25 + }, + { + "label": "Alt", + "x": 2.5, + "y": 5.25, + "w": 1.25 + }, + { + "x": 3.75, + "y": 5.25, + "w": 6.25 + }, + { + "label": "AltGr", + "x": 10, + "y": 5.25, + "w": 1.25 + }, + { + "label": "Win", + "x": 11.25, + "y": 5.25, + "w": 1.25 + }, + { + "label": "Menu", + "x": 12.5, + "y": 5.25, + "w": 1.25 + }, + { + "label": "\u2190", + "x": 14.25, + "y": 5.25 + }, + { + "label": "\u2193", + "x": 15.25, + "y": 5.25 + }, + { + "label": "\u2192", + "x": 16.25, + "y": 5.25 + } + ] + } + } +} diff --git a/keyboards/yandrstudio/eau_r2/keymaps/default/keymap.c b/keyboards/yandrstudio/eau_r2/keymaps/default/keymap.c new file mode 100644 index 00000000000..64eccc61324 --- /dev/null +++ b/keyboards/yandrstudio/eau_r2/keymaps/default/keymap.c @@ -0,0 +1,34 @@ +/* Copyright 2022 JasonRen(biu) + * + * 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( + 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_VOLU, KC_VOLD, + 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_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_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, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), + [1] = 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, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_RMOD,RGB_VAI, RGB_VAD, 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/yandrstudio/eau_r2/keymaps/via/keymap.c b/keyboards/yandrstudio/eau_r2/keymaps/via/keymap.c new file mode 100644 index 00000000000..cdde2ad9d62 --- /dev/null +++ b/keyboards/yandrstudio/eau_r2/keymaps/via/keymap.c @@ -0,0 +1,48 @@ +/* Copyright 2022 JasonRen(biu) + * + * 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( + 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_VOLU, KC_VOLD, + 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_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_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, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT), + [1] = 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, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_RMOD,RGB_VAI, RGB_VAD, 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] = 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, 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( + 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, 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/yandrstudio/eau_r2/keymaps/via/rules.mk b/keyboards/yandrstudio/eau_r2/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/yandrstudio/eau_r2/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/yandrstudio/eau_r2/mcuconf.h b/keyboards/yandrstudio/eau_r2/mcuconf.h new file mode 100644 index 00000000000..03e90c6a268 --- /dev/null +++ b/keyboards/yandrstudio/eau_r2/mcuconf.h @@ -0,0 +1,27 @@ +/* Copyright 2022 JasonRen(biu) + * + * 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_PWM_USE_TIM1 +#define STM32_PWM_USE_TIM1 TRUE + +#undef STM32_PLLXTPRE +#define STM32_PLLXTPRE STM32_PLLXTPRE_DIV2 + + diff --git a/keyboards/yandrstudio/eau_r2/readme.md b/keyboards/yandrstudio/eau_r2/readme.md new file mode 100644 index 00000000000..fa19d4c5adb --- /dev/null +++ b/keyboards/yandrstudio/eau_r2/readme.md @@ -0,0 +1,22 @@ +# eau_r2 + +![eau_r2](https://i.imgur.com/JkRIt6Kh.png) +A 75% keyboard with RGBs. +This keyboard use 16mhz HSE and APM32F103 as MCU. + +- Keyboard Maintainer: https://github.com/jiaxin96 +- Hardware Supported: eau_r2 +- Hardware Availability: [CHAOSERA SELL](https://www.chaosera-sell.com/CHAOSERA-Eau75-p18824645.html) + +Make example for this keyboard (after setting up your build environment): + + make yandrstudio/eau_r2:default + +See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. + +## Bootloader + +Enter the bootloader in 2 ways: + +- **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key which is Escape in this keyboard) and plug in the keyboard +- **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. diff --git a/keyboards/yandrstudio/eau_r2/rules.mk b/keyboards/yandrstudio/eau_r2/rules.mk new file mode 100644 index 00000000000..421ae9fce11 --- /dev/null +++ b/keyboards/yandrstudio/eau_r2/rules.mk @@ -0,0 +1,15 @@ +# Wildcard to allow APM32 MCU +DFU_SUFFIX_ARGS = -p FFFF -v FFFF + +# 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 diff --git a/keyboards/yandrstudio/nightstar75/board.h b/keyboards/yandrstudio/nightstar75/board.h new file mode 100644 index 00000000000..d83804babdf --- /dev/null +++ b/keyboards/yandrstudio/nightstar75/board.h @@ -0,0 +1,21 @@ +/* Copyright 2022 JasonRen(biu) + * + * 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 "board.h" + +#undef STM32_HSECLK +#define STM32_HSECLK 16000000 diff --git a/keyboards/yandrstudio/nightstar75/config.h b/keyboards/yandrstudio/nightstar75/config.h new file mode 100644 index 00000000000..767628fc3f4 --- /dev/null +++ b/keyboards/yandrstudio/nightstar75/config.h @@ -0,0 +1,58 @@ +/* Copyright 2022 JasonRen(biu) + * + * 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 6 +#define MATRIX_COLS 15 + +#define MATRIX_COL_PINS { C13, C14, C15, A3, A4, A5, A6, B12, B13, B14, B15, A8, A9, A10, B8 } +#define MATRIX_ROW_PINS { B0, B1, B2, B10, B11, B9 } + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION ROW2COL + +#ifdef RGBLIGHT_ENABLE + +# define RGB_DI_PIN A7 +# define RGBLED_NUM 4 +# define DRIVER_LED_TOTAL RGBLED_NUM +# define RGBLIGHT_LIMIT_VAL 180 + +# 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 RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_RAINBOW_MOOD + +# define RGBLIGHT_LAYERS +# define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF +# define RGBLIGHT_LAYERS_RETAIN_VAL + +# define WS2812_PWM_DRIVER PWMD3 // default: PWMD2 +# define WS2812_PWM_CHANNEL 2 // default: 2 +# define WS2812_PWM_PAL_MODE 2 +# define WS2812_DMA_STREAM STM32_DMA1_STREAM3 +# define WS2812_DMA_CHANNEL 3 + +#endif diff --git a/keyboards/yandrstudio/nightstar75/halconf.h b/keyboards/yandrstudio/nightstar75/halconf.h new file mode 100644 index 00000000000..ba0354cfb35 --- /dev/null +++ b/keyboards/yandrstudio/nightstar75/halconf.h @@ -0,0 +1,20 @@ +/* Copyright 2022 JasonRen(biu) + * + * 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 HAL_USE_PWM +#define HAL_USE_PWM TRUE diff --git a/keyboards/yandrstudio/nightstar75/info.json b/keyboards/yandrstudio/nightstar75/info.json new file mode 100644 index 00000000000..4f8105fae81 --- /dev/null +++ b/keyboards/yandrstudio/nightstar75/info.json @@ -0,0 +1,423 @@ +{ + "keyboard_name": "nightstar75", + "processor": "STM32F103", + "bootloader": "stm32duino", + "usb": { + "pid": "0xAA87", + "device_version": "1.0.0" + }, + "layouts": { + "LAYOUT": { + "layout": [ + { + "label": "0,0", + "x": 0, + "y": 0 + }, + { + "label": "0,1", + "x": 1.25, + "y": 0 + }, + { + "label": "0,2", + "x": 2.25, + "y": 0 + }, + { + "label": "0,3", + "x": 3.25, + "y": 0 + }, + { + "label": "0,4", + "x": 4.25, + "y": 0 + }, + { + "label": "0,5", + "x": 5.5, + "y": 0 + }, + { + "label": "0,6", + "x": 6.5, + "y": 0 + }, + { + "label": "0,7", + "x": 7.5, + "y": 0 + }, + { + "label": "0,8", + "x": 8.5, + "y": 0 + }, + { + "label": "0,9", + "x": 9.75, + "y": 0 + }, + { + "label": "0,10", + "x": 10.75, + "y": 0 + }, + { + "label": "0,11", + "x": 11.75, + "y": 0 + }, + { + "label": "0,12", + "x": 12.75, + "y": 0 + }, + { + "label": "1,0", + "x": 0, + "y": 1.5 + }, + { + "label": "1,1", + "x": 1, + "y": 1.5 + }, + { + "label": "1,2", + "x": 2, + "y": 1.5 + }, + { + "label": "1,3", + "x": 3, + "y": 1.5 + }, + { + "label": "1,4", + "x": 4, + "y": 1.5 + }, + { + "label": "1,5", + "x": 5, + "y": 1.5 + }, + { + "label": "1,6", + "x": 6, + "y": 1.5 + }, + { + "label": "1,7", + "x": 7, + "y": 1.5 + }, + { + "label": "1,8", + "x": 8, + "y": 1.5 + }, + { + "label": "1,9", + "x": 9, + "y": 1.5 + }, + { + "label": "1,10", + "x": 10, + "y": 1.5 + }, + { + "label": "1,11", + "x": 11, + "y": 1.5 + }, + { + "label": "1,12", + "x": 12, + "y": 1.5 + }, + { + "label": "1,13", + "x": 13, + "y": 1.5, + "w": 2 + }, + { + "label": "1,14", + "x": 15, + "y": 1.5 + }, + { + "label": "2,0", + "x": 0, + "y": 2.5, + "w": 1.5 + }, + { + "label": "2,1", + "x": 1.5, + "y": 2.5 + }, + { + "label": "2,2", + "x": 2.5, + "y": 2.5 + }, + { + "label": "2,3", + "x": 3.5, + "y": 2.5 + }, + { + "label": "2,4", + "x": 4.5, + "y": 2.5 + }, + { + "label": "2,5", + "x": 5.5, + "y": 2.5 + }, + { + "label": "2,6", + "x": 6.5, + "y": 2.5 + }, + { + "label": "2,7", + "x": 7.5, + "y": 2.5 + }, + { + "label": "2,8", + "x": 8.5, + "y": 2.5 + }, + { + "label": "2,9", + "x": 9.5, + "y": 2.5 + }, + { + "label": "2,10", + "x": 10.5, + "y": 2.5 + }, + { + "label": "2,11", + "x": 11.5, + "y": 2.5 + }, + { + "label": "2,12", + "x": 12.5, + "y": 2.5 + }, + { + "label": "2,13", + "x": 13.5, + "y": 2.5, + "w": 1.5 + }, + { + "label": "2,14", + "x": 15, + "y": 2.5 + }, + { + "label": "3,0", + "x": 0, + "y": 3.5, + "w": 1.75 + }, + { + "label": "3,1", + "x": 1.75, + "y": 3.5 + }, + { + "label": "3,2", + "x": 2.75, + "y": 3.5 + }, + { + "label": "3,3", + "x": 3.75, + "y": 3.5 + }, + { + "label": "3,4", + "x": 4.75, + "y": 3.5 + }, + { + "label": "3,5", + "x": 5.75, + "y": 3.5 + }, + { + "label": "3,6", + "x": 6.75, + "y": 3.5 + }, + { + "label": "3,7", + "x": 7.75, + "y": 3.5 + }, + { + "label": "3,8", + "x": 8.75, + "y": 3.5 + }, + { + "label": "3,9", + "x": 9.75, + "y": 3.5 + }, + { + "label": "3,10", + "x": 10.75, + "y": 3.5 + }, + { + "label": "3,11", + "x": 11.75, + "y": 3.5 + }, + { + "label": "3,13", + "x": 12.75, + "y": 3.5, + "w": 2.25 + }, + { + "label": "3,14", + "x": 15, + "y": 3.5 + }, + { + "label": "4,0", + "x": 0, + "y": 4.5, + "w": 2.25 + }, + { + "label": "4,2", + "x": 2.25, + "y": 4.5 + }, + { + "label": "4,3", + "x": 3.25, + "y": 4.5 + }, + { + "label": "4,4", + "x": 4.25, + "y": 4.5 + }, + { + "label": "4,5", + "x": 5.25, + "y": 4.5 + }, + { + "label": "4,6", + "x": 6.25, + "y": 4.5 + }, + { + "label": "4,7", + "x": 7.25, + "y": 4.5 + }, + { + "label": "4,8", + "x": 8.25, + "y": 4.5 + }, + { + "label": "4,9", + "x": 9.25, + "y": 4.5 + }, + { + "label": "4,10", + "x": 10.25, + "y": 4.5 + }, + { + "label": "4,11", + "x": 11.25, + "y": 4.5 + }, + { + "label": "4,12", + "x": 12.25, + "y": 4.5, + "w": 1.75 + }, + { + "label": "4,13", + "x": 14, + "y": 4.5 + }, + { + "label": "5,0", + "x": 0, + "y": 5.5, + "w": 1.25 + }, + { + "label": "5,1", + "x": 1.25, + "y": 5.5, + "w": 1.25 + }, + { + "label": "5,3", + "x": 2.5, + "y": 5.5, + "w": 1.25 + }, + { + "label": "5,6", + "x": 3.75, + "y": 5.5, + "w": 6.25 + }, + { + "label": "5,10", + "x": 10, + "y": 5.5, + "w": 1.25 + }, + { + "label": "5,11", + "x": 11.25, + "y": 5.5, + "w": 1.25 + }, + { + "label": "5,12", + "x": 13, + "y": 5.5 + }, + { + "label": "5,13", + "x": 14, + "y": 5.5 + }, + { + "label": "5,14", + "x": 15, + "y": 5.5 + } + ] + } + } +} diff --git a/keyboards/yandrstudio/nightstar75/keymaps/default/keymap.c b/keyboards/yandrstudio/nightstar75/keymaps/default/keymap.c new file mode 100644 index 00000000000..54d6b298aee --- /dev/null +++ b/keyboards/yandrstudio/nightstar75/keymaps/default/keymap.c @@ -0,0 +1,36 @@ +/* Copyright 2022 JasonRen(biu) + * + * 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( + 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_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_INS, + 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_HOME, + 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_LEFT, KC_DOWN, KC_RGHT), + + [1] = 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, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_RMOD,RGB_VAI, RGB_VAD, 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/yandrstudio/nightstar75/keymaps/via/keymap.c b/keyboards/yandrstudio/nightstar75/keymaps/via/keymap.c new file mode 100644 index 00000000000..a3bc2f6e2e3 --- /dev/null +++ b/keyboards/yandrstudio/nightstar75/keymaps/via/keymap.c @@ -0,0 +1,54 @@ +/* Copyright 2022 JasonRen(biu) + * + * 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( + 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_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_INS, + 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_HOME, + 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_LEFT, KC_DOWN, KC_RGHT), + + [1] = 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, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_RMOD,RGB_VAI, RGB_VAD, 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] = 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, 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( + 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, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) +}; diff --git a/keyboards/yandrstudio/nightstar75/keymaps/via/rules.mk b/keyboards/yandrstudio/nightstar75/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/yandrstudio/nightstar75/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/yandrstudio/nightstar75/mcuconf.h b/keyboards/yandrstudio/nightstar75/mcuconf.h new file mode 100644 index 00000000000..bb8892722e8 --- /dev/null +++ b/keyboards/yandrstudio/nightstar75/mcuconf.h @@ -0,0 +1,24 @@ +/* Copyright 2022 JasonRen(biu) + * + * 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_PWM_USE_TIM3 +#define STM32_PWM_USE_TIM3 TRUE + +#undef STM32_PLLXTPRE +#define STM32_PLLXTPRE STM32_PLLXTPRE_DIV2 diff --git a/keyboards/yandrstudio/nightstar75/nightstar75.c b/keyboards/yandrstudio/nightstar75/nightstar75.c new file mode 100644 index 00000000000..55fc6b9bcd2 --- /dev/null +++ b/keyboards/yandrstudio/nightstar75/nightstar75.c @@ -0,0 +1,39 @@ +/* Copyright 2022 JasonRen(biu) + * + * 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 "nightstar75.h" + +#ifdef RGBLIGHT_ENABLE +const rgblight_segment_t PROGMEM my_capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 4, HSV_RED} +); + +const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST( + my_capslock_layer +); + +void keyboard_post_init_kb(void) { + rgblight_layers = my_rgb_layers; + rgblight_reload_from_eeprom(); + keyboard_post_init_user(); +} + +bool led_update_kb(led_t led_state) { + if (led_update_user(led_state)) { + rgblight_set_layer_state(0, led_state.caps_lock); + } + return true; +} +#endif diff --git a/keyboards/yandrstudio/nightstar75/nightstar75.h b/keyboards/yandrstudio/nightstar75/nightstar75.h new file mode 100644 index 00000000000..8b914602972 --- /dev/null +++ b/keyboards/yandrstudio/nightstar75/nightstar75.h @@ -0,0 +1,33 @@ +/* Copyright 2022 JasonRen(biu) + * + * 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( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, \ + K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K413, K414, \ + K500, K502, K503, K504, K505, K506, K507, K508, K509, K510, K511, K512, K513, \ + K600, K601, K603, K606, K610, K611, K612, K613, K614 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, KC_NO, KC_NO }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214 }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314 }, \ + { K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, KC_NO, K413, K414 }, \ + { K500, KC_NO, K502, K503, K504, K505, K506, K507, K508, K509, K510, K511, K512, K513, KC_NO }, \ + { K600, K601, KC_NO, K603, KC_NO, KC_NO, K606, KC_NO, KC_NO, KC_NO, K610, K611, K612, K613, K614 } \ +} diff --git a/keyboards/yandrstudio/nightstar75/readme.md b/keyboards/yandrstudio/nightstar75/readme.md new file mode 100644 index 00000000000..cfa49ff9e47 --- /dev/null +++ b/keyboards/yandrstudio/nightstar75/readme.md @@ -0,0 +1,22 @@ +# nightstar75 + +![nightstar75](https://i.imgur.com/XupTUBXh.png) +A 75% keyboard with RGBs. +This keyboard use 16mhz HSE and APM32F103 as MCU. + +- Keyboard Maintainer: https://github.com/jiaxin96 +- Hardware Supported: nightstar75 +- Hardware Availability: [ZFrontier](https://www.zfrontier.com/app/flow/D6pZpAylmoqm) + +Make example for this keyboard (after setting up your build environment): + + make yandrstudio/nightstar75:default + +See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. + +## Bootloader + +Enter the bootloader in 2 ways: + +- **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key which is Escape in this keyboard) and plug in the keyboard +- **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. diff --git a/keyboards/yandrstudio/nightstar75/rules.mk b/keyboards/yandrstudio/nightstar75/rules.mk new file mode 100644 index 00000000000..54e3f61af57 --- /dev/null +++ b/keyboards/yandrstudio/nightstar75/rules.mk @@ -0,0 +1,16 @@ +# Wildcard to allow APM32 MCU +DFU_SUFFIX_ARGS = -p FFFF -v FFFF + +# 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 +WS2812_DRIVER = pwm # WS2812 RGB Driver +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/yandrstudio/nz64/nz64.c b/keyboards/yandrstudio/nz64/nz64.c index 9945dec04e4..8b64d36fd1d 100644 --- a/keyboards/yandrstudio/nz64/nz64.c +++ b/keyboards/yandrstudio/nz64/nz64.c @@ -57,7 +57,10 @@ led_config_t g_led_config = { } }; -void rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { +bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { + if (!rgb_matrix_indicators_advanced_kb(led_min, led_max)) { + return false; + } if (rgb_matrix_is_enabled()) { if (kb_cums.underground_rgb_sw == 1) { for (uint8_t i = led_min; i < led_max; ++i) { @@ -75,6 +78,7 @@ void rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { } else { rgb_matrix_set_color_all(0,0,0); } + return true; } void eeconfig_init_kb(void) { diff --git a/keyboards/yandrstudio/nz67v2/nz67v2.c b/keyboards/yandrstudio/nz67v2/nz67v2.c index b8caa96bc08..64e287b8682 100644 --- a/keyboards/yandrstudio/nz67v2/nz67v2.c +++ b/keyboards/yandrstudio/nz67v2/nz67v2.c @@ -54,7 +54,10 @@ led_config_t g_led_config = { } }; -void rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { +bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { + if (!rgb_matrix_indicators_advanced_user(led_min, led_max)) { + return false; + } if (rgb_matrix_is_enabled()) { if (kb_cums.underground_rgb_sw == 1) { for (uint8_t i = led_min; i < led_max; ++i) { @@ -75,6 +78,7 @@ 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(25, rgblight_get_val(), rgblight_get_val(), rgblight_get_val()); } + return true; } diff --git a/keyboards/yandrstudio/wave75/board.h b/keyboards/yandrstudio/wave75/board.h new file mode 100644 index 00000000000..d83804babdf --- /dev/null +++ b/keyboards/yandrstudio/wave75/board.h @@ -0,0 +1,21 @@ +/* Copyright 2022 JasonRen(biu) + * + * 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 "board.h" + +#undef STM32_HSECLK +#define STM32_HSECLK 16000000 diff --git a/keyboards/yandrstudio/wave75/info.json b/keyboards/yandrstudio/wave75/info.json new file mode 100644 index 00000000000..61bd8ab7f36 --- /dev/null +++ b/keyboards/yandrstudio/wave75/info.json @@ -0,0 +1,433 @@ +{ + "keyboard_name": "wave75", + "processor": "STM32F103", + "bootloader": "stm32duino", + "usb": { + "pid": "0xAA8E", + "device_version": "1.0.0" + }, + "diode_direction": "COL2ROW", + "matrix_pins": { + "cols": ["B0", "A7", "A6", "B15", "B14", "B13", "A5", "B7", "B6", "B5", "A4", "B12", "A3", "B2", "A2"], + "rows": ["A9", "A10", "C15", "A8", "B1", "A1"] + }, + "layouts": { + "LAYOUT": { + "layout": [ + { + "label": "0,0", + "x": 0, + "y": 0 + }, + { + "label": "0,1", + "x": 1.25, + "y": 0 + }, + { + "label": "0,2", + "x": 2.25, + "y": 0 + }, + { + "label": "0,3", + "x": 3.25, + "y": 0 + }, + { + "label": "0,4", + "x": 4.25, + "y": 0 + }, + { + "label": "0,5", + "x": 5.5, + "y": 0 + }, + { + "label": "0,6", + "x": 6.5, + "y": 0 + }, + { + "label": "0,7", + "x": 7.5, + "y": 0 + }, + { + "label": "0,8", + "x": 8.5, + "y": 0 + }, + { + "label": "0,9", + "x": 9.75, + "y": 0 + }, + { + "label": "0,10", + "x": 10.75, + "y": 0 + }, + { + "label": "0,11", + "x": 11.75, + "y": 0 + }, + { + "label": "0,12", + "x": 12.75, + "y": 0 + }, + { + "label": "0,13", + "x": 14, + "y": 0 + }, + { + "label": "0,14", + "x": 15.25, + "y": 0 + }, + { + "label": "1,0", + "x": 0, + "y": 1.25 + }, + { + "label": "1,1", + "x": 1, + "y": 1.25 + }, + { + "label": "1,2", + "x": 2, + "y": 1.25 + }, + { + "label": "1,3", + "x": 3, + "y": 1.25 + }, + { + "label": "1,4", + "x": 4, + "y": 1.25 + }, + { + "label": "1,5", + "x": 5, + "y": 1.25 + }, + { + "label": "1,6", + "x": 6, + "y": 1.25 + }, + { + "label": "1,7", + "x": 7, + "y": 1.25 + }, + { + "label": "1,8", + "x": 8, + "y": 1.25 + }, + { + "label": "1,9", + "x": 9, + "y": 1.25 + }, + { + "label": "1,10", + "x": 10, + "y": 1.25 + }, + { + "label": "1,11", + "x": 11, + "y": 1.25 + }, + { + "label": "1,12", + "x": 12, + "y": 1.25 + }, + { + "label": "1,13", + "x": 13, + "y": 1.25, + "w": 2 + }, + { + "label": "1,14", + "x": 15.25, + "y": 1.25 + }, + { + "label": "2,0", + "x": 0, + "y": 2.25, + "w": 1.5 + }, + { + "label": "2,1", + "x": 1.5, + "y": 2.25 + }, + { + "label": "2,2", + "x": 2.5, + "y": 2.25 + }, + { + "label": "2,3", + "x": 3.5, + "y": 2.25 + }, + { + "label": "2,4", + "x": 4.5, + "y": 2.25 + }, + { + "label": "2,5", + "x": 5.5, + "y": 2.25 + }, + { + "label": "2,6", + "x": 6.5, + "y": 2.25 + }, + { + "label": "2,7", + "x": 7.5, + "y": 2.25 + }, + { + "label": "2,8", + "x": 8.5, + "y": 2.25 + }, + { + "label": "2,9", + "x": 9.5, + "y": 2.25 + }, + { + "label": "2,10", + "x": 10.5, + "y": 2.25 + }, + { + "label": "2,11", + "x": 11.5, + "y": 2.25 + }, + { + "label": "2,12", + "x": 12.5, + "y": 2.25 + }, + { + "label": "2,13", + "x": 13.5, + "y": 2.25, + "w": 1.5 + }, + { + "label": "2,14", + "x": 15.25, + "y": 2.25 + }, + { + "label": "3,0", + "x": 0, + "y": 3.25, + "w": 1.75 + }, + { + "label": "3,1", + "x": 1.75, + "y": 3.25 + }, + { + "label": "3,2", + "x": 2.75, + "y": 3.25 + }, + { + "label": "3,3", + "x": 3.75, + "y": 3.25 + }, + { + "label": "3,4", + "x": 4.75, + "y": 3.25 + }, + { + "label": "3,5", + "x": 5.75, + "y": 3.25 + }, + { + "label": "3,6", + "x": 6.75, + "y": 3.25 + }, + { + "label": "3,7", + "x": 7.75, + "y": 3.25 + }, + { + "label": "3,8", + "x": 8.75, + "y": 3.25 + }, + { + "label": "3,9", + "x": 9.75, + "y": 3.25 + }, + { + "label": "3,10", + "x": 10.75, + "y": 3.25 + }, + { + "label": "3,11", + "x": 11.75, + "y": 3.25 + }, + { + "label": "3,12", + "x": 12.75, + "y": 3.25, + "w": 2.25 + }, + { + "label": "4,0", + "x": 0, + "y": 4.25, + "w": 2.25 + }, + { + "label": "4,1", + "x": 2.25, + "y": 4.25 + }, + { + "label": "4,2", + "x": 3.25, + "y": 4.25 + }, + { + "label": "4,3", + "x": 4.25, + "y": 4.25 + }, + { + "label": "4,4", + "x": 5.25, + "y": 4.25 + }, + { + "label": "4,5", + "x": 6.25, + "y": 4.25 + }, + { + "label": "4,6", + "x": 7.25, + "y": 4.25 + }, + { + "label": "4,7", + "x": 8.25, + "y": 4.25 + }, + { + "label": "4,8", + "x": 9.25, + "y": 4.25 + }, + { + "label": "4,9", + "x": 10.25, + "y": 4.25 + }, + { + "label": "4,10", + "x": 11.25, + "y": 4.25 + }, + { + "label": "4,11", + "x": 12.25, + "y": 4.25, + "w": 1.75 + }, + { + "label": "4,13", + "x": 14.25, + "y": 4.5 + }, + { + "label": "5,0", + "x": 0, + "y": 5.25, + "w": 1.25 + }, + { + "label": "5,1", + "x": 1.25, + "y": 5.25, + "w": 1.25 + }, + { + "label": "5,2", + "x": 2.5, + "y": 5.25, + "w": 1.25 + }, + { + "label": "5,6", + "x": 3.75, + "y": 5.25, + "w": 6.25 + }, + { + "label": "5,9", + "x": 10, + "y": 5.25, + "w": 1.5 + }, + { + "label": "5,10", + "x": 11.5, + "y": 5.25, + "w": 1.5 + }, + { + "label": "5,12", + "x": 13.25, + "y": 5.5 + }, + { + "label": "5,13", + "x": 14.25, + "y": 5.5 + }, + { + "label": "5,14", + "x": 15.25, + "y": 5.5 + } + ] + } + } +} diff --git a/keyboards/yandrstudio/wave75/keymaps/default/keymap.c b/keyboards/yandrstudio/wave75/keymaps/default/keymap.c new file mode 100644 index 00000000000..a4e4bc286d7 --- /dev/null +++ b/keyboards/yandrstudio/wave75/keymaps/default/keymap.c @@ -0,0 +1,34 @@ +/* Copyright 2022 JasonRen(biu) + * + * 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( + 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_MUTE, KC_VOLU, + 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_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_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_LEFT, KC_DOWN, KC_RIGHT), + [1] = 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, 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_MACOS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_LG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) +}; diff --git a/keyboards/yandrstudio/wave75/keymaps/via/keymap.c b/keyboards/yandrstudio/wave75/keymaps/via/keymap.c new file mode 100644 index 00000000000..38eb0515e09 --- /dev/null +++ b/keyboards/yandrstudio/wave75/keymaps/via/keymap.c @@ -0,0 +1,48 @@ +/* Copyright 2022 JasonRen(biu) + * + * 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( + 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_MUTE, KC_VOLU, + 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_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_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_LEFT, KC_DOWN, KC_RIGHT), + [1] = 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, 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_MACOS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_LG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + [2] = 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, 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( + 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, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) +}; diff --git a/keyboards/yandrstudio/wave75/keymaps/via/rules.mk b/keyboards/yandrstudio/wave75/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/yandrstudio/wave75/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/yandrstudio/wave75/mcuconf.h b/keyboards/yandrstudio/wave75/mcuconf.h new file mode 100644 index 00000000000..ae03a6e12f0 --- /dev/null +++ b/keyboards/yandrstudio/wave75/mcuconf.h @@ -0,0 +1,24 @@ +/* Copyright 2022 JasonRen(biu) + * + * 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_PLLXTPRE +#define STM32_PLLXTPRE STM32_PLLXTPRE_DIV2 + + diff --git a/keyboards/yandrstudio/wave75/readme.md b/keyboards/yandrstudio/wave75/readme.md new file mode 100644 index 00000000000..f88b900c3fe --- /dev/null +++ b/keyboards/yandrstudio/wave75/readme.md @@ -0,0 +1,22 @@ +# wave75 + +![wave75](https://i.imgur.com/Kh6VfN8h.png) +A 75% keyboard. +This keyboard use 16mhz HSE and APM32F103 as MCU. + +- Keyboard Maintainer: https://github.com/jiaxin96 +- Hardware Supported: wave75 +- Hardware Availability: https://github.com/Oh-My-Mechanical-Keyboard + +Make example for this keyboard (after setting up your build environment): + + make yandrstudio/wave75:default + +See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. + +## Bootloader + +Enter the bootloader in 2 ways: + +- **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key which is Escape in this keyboard) and plug in the keyboard +- **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. diff --git a/keyboards/yandrstudio/wave75/rules.mk b/keyboards/yandrstudio/wave75/rules.mk new file mode 100644 index 00000000000..4a92d0f891c --- /dev/null +++ b/keyboards/yandrstudio/wave75/rules.mk @@ -0,0 +1,15 @@ +# Wildcard to allow APM32 MCU +DFU_SUFFIX_ARGS = -p FFFF -v FFFF + +# 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 = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/yandrstudio/wave75/wave75.c b/keyboards/yandrstudio/wave75/wave75.c new file mode 100644 index 00000000000..cc58a1d43e8 --- /dev/null +++ b/keyboards/yandrstudio/wave75/wave75.c @@ -0,0 +1,49 @@ +/* Copyright 2022 JasonRen(biu) + * + * 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 "wave75.h" + +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + if (!process_record_user(keycode, record)) { return false; } + switch(keycode) { + case KC_LG: + if (record->event.pressed) { + process_magic(GUI_TOG, record); + } + return false; + case KC_MACOS: + if (record->event.pressed) { + process_magic(CG_TOGG, record); + } + return false; + case KC_MCTL: + if (record->event.pressed) { + host_consumer_send(0x29F); + } else { + host_consumer_send(0); + } + return false; + case KC_LPAD: + if (record->event.pressed) { + host_consumer_send(0x2A0); + } else { + host_consumer_send(0); + } + return false; + default: + return true; + } + return true; +} diff --git a/keyboards/yandrstudio/wave75/wave75.h b/keyboards/yandrstudio/wave75/wave75.h new file mode 100644 index 00000000000..f0d041241a8 --- /dev/null +++ b/keyboards/yandrstudio/wave75/wave75.h @@ -0,0 +1,55 @@ +/* Copyright 2022 JasonRen(biu) + * + * 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( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, \ + K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K413, \ + K500, K501, K502, K506, K509, K510, K512, K513, K514 \ + )\ + { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214 }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, KC_NO, KC_NO }, \ + { K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, KC_NO, K413, KC_NO }, \ + { K500, K501, K502, KC_NO, KC_NO, KC_NO, K506, KC_NO, KC_NO, K509, K510, KC_NO, K512, K513, K514 } \ +} + +enum keyboard_keycodes { +#ifdef VIA_ENABLE + LOCK_GUI = USER00, + TOG_MACOS_KEYMAP, + KC_MISSION_CONTROL, + KC_LAUNCHPAD, + NEW_SAFE_RANGE = SAFE_RANGE // Important! +#else + LOCK_GUI = SAFE_RANGE, + TOG_MACOS_KEYMAP, + KC_MISSION_CONTROL, + KC_LAUNCHPAD, + NEW_SAFE_RANGE // Important! +#endif +}; + +#define KC_LG LOCK_GUI +#define KC_MACOS TOG_MACOS_KEYMAP +#define KC_MCTL KC_MISSION_CONTROL +#define KC_LPAD KC_LAUNCHPAD diff --git a/keyboards/yandrstudio/yr6095/board.h b/keyboards/yandrstudio/yr6095/board.h new file mode 100644 index 00000000000..d83804babdf --- /dev/null +++ b/keyboards/yandrstudio/yr6095/board.h @@ -0,0 +1,21 @@ +/* Copyright 2022 JasonRen(biu) + * + * 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 "board.h" + +#undef STM32_HSECLK +#define STM32_HSECLK 16000000 diff --git a/keyboards/yandrstudio/yr6095/config.h b/keyboards/yandrstudio/yr6095/config.h new file mode 100644 index 00000000000..3905967b9e3 --- /dev/null +++ b/keyboards/yandrstudio/yr6095/config.h @@ -0,0 +1,57 @@ +/* Copyright 2022 JasonRen(biu) + * + * 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 5 +#define MATRIX_COLS 14 + +#define MATRIX_COL_PINS { B6, B15, B14, B13, B12, B11, B10, B2, B1, B0, A7, A6, A5, A4 } +#define MATRIX_ROW_PINS { A1, A3, A8, A9, A10 } + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +#ifdef RGBLIGHT_ENABLE + +# define RGB_DI_PIN B5 +# define RGBLED_NUM 1 +# define DRIVER_LED_TOTAL RGBLED_NUM + +# define RGBLIGHT_LAYERS +# define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF +# define RGBLIGHT_LAYERS_RETAIN_VAL + +# 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 RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_RAINBOW_MOOD + +# define WS2812_PWM_DRIVER PWMD3 +# define WS2812_PWM_CHANNEL 2 +# define WS2812_DMA_STREAM STM32_DMA1_STREAM3 +# define WS2812_DMA_CHANNEL 3 + +#endif diff --git a/keyboards/yandrstudio/yr6095/halconf.h b/keyboards/yandrstudio/yr6095/halconf.h new file mode 100644 index 00000000000..d5d6543fc61 --- /dev/null +++ b/keyboards/yandrstudio/yr6095/halconf.h @@ -0,0 +1,21 @@ +/* Copyright 2022 JasonRen(biu) + * + * 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 HAL_USE_PWM +#define HAL_USE_PWM TRUE diff --git a/keyboards/yandrstudio/yr6095/info.json b/keyboards/yandrstudio/yr6095/info.json new file mode 100644 index 00000000000..20a1e86cf44 --- /dev/null +++ b/keyboards/yandrstudio/yr6095/info.json @@ -0,0 +1,693 @@ +{ + "keyboard_name": "YR6095", + "processor": "STM32F103", + "bootloader": "stm32duino", + "usb": { + "pid": "0xAA0C", + "device_version": "1.0.0" + }, + "layouts": { + "LAYOUT_60_tsangan_split_rshift": { + "layout": [ + { + "label": "0,0", + "x": 0, + "y": 0 + }, + { + "label": "0,1", + "x": 1, + "y": 0 + }, + { + "label": "0,2", + "x": 2, + "y": 0 + }, + { + "label": "0,3", + "x": 3, + "y": 0 + }, + { + "label": "0,4", + "x": 4, + "y": 0 + }, + { + "label": "0,5", + "x": 5, + "y": 0 + }, + { + "label": "0,6", + "x": 6, + "y": 0 + }, + { + "label": "0,7", + "x": 7, + "y": 0 + }, + { + "label": "0,8", + "x": 8, + "y": 0 + }, + { + "label": "0,9", + "x": 9, + "y": 0 + }, + { + "label": "0,10", + "x": 10, + "y": 0 + }, + { + "label": "0,11", + "x": 11, + "y": 0 + }, + { + "label": "0,12", + "x": 12, + "y": 0 + }, + { + "label": "4,7", + "x": 13, + "y": 0, + "w": 2 + }, + { + "label": "1,0", + "x": 0, + "y": 1, + "w": 1.5 + }, + { + "label": "1,1", + "x": 1.5, + "y": 1 + }, + { + "label": "1,2", + "x": 2.5, + "y": 1 + }, + { + "label": "1,3", + "x": 3.5, + "y": 1 + }, + { + "label": "1,4", + "x": 4.5, + "y": 1 + }, + { + "label": "1,5", + "x": 5.5, + "y": 1 + }, + { + "label": "1,6", + "x": 6.5, + "y": 1 + }, + { + "label": "1,7", + "x": 7.5, + "y": 1 + }, + { + "label": "1,8", + "x": 8.5, + "y": 1 + }, + { + "label": "1,9", + "x": 9.5, + "y": 1 + }, + { + "label": "1,10", + "x": 10.5, + "y": 1 + }, + { + "label": "1,11", + "x": 11.5, + "y": 1 + }, + { + "label": "1,12", + "x": 12.5, + "y": 1 + }, + { + "label": "1,13", + "x": 13.5, + "y": 1, + "w": 1.5 + }, + { + "label": "2,0", + "x": 0, + "y": 2, + "w": 1.75 + }, + { + "label": "2,1", + "x": 1.75, + "y": 2 + }, + { + "label": "2,2", + "x": 2.75, + "y": 2 + }, + { + "label": "2,3", + "x": 3.75, + "y": 2 + }, + { + "label": "2,4", + "x": 4.75, + "y": 2 + }, + { + "label": "2,5", + "x": 5.75, + "y": 2 + }, + { + "label": "2,6", + "x": 6.75, + "y": 2 + }, + { + "label": "2,7", + "x": 7.75, + "y": 2 + }, + { + "label": "2,8", + "x": 8.75, + "y": 2 + }, + { + "label": "2,9", + "x": 9.75, + "y": 2 + }, + { + "label": "2,10", + "x": 10.75, + "y": 2 + }, + { + "label": "2,11", + "x": 11.75, + "y": 2 + }, + { + "label": "2,13", + "x": 12.75, + "y": 2, + "w": 2.25 + }, + { + "label": "3,0", + "x": 0, + "y": 3, + "w": 2.25 + }, + { + "label": "3,1", + "x": 2.25, + "y": 3 + }, + { + "label": "3,2", + "x": 3.25, + "y": 3 + }, + { + "label": "3,3", + "x": 4.25, + "y": 3 + }, + { + "label": "3,4", + "x": 5.25, + "y": 3 + }, + { + "label": "3,5", + "x": 6.25, + "y": 3 + }, + { + "label": "3,6", + "x": 7.25, + "y": 3 + }, + { + "label": "3,7", + "x": 8.25, + "y": 3 + }, + { + "label": "3,8", + "x": 9.25, + "y": 3 + }, + { + "label": "3,9", + "x": 10.25, + "y": 3 + }, + { + "label": "3,10", + "x": 11.25, + "y": 3 + }, + { + "label": "3,12", + "x": 12.25, + "y": 3, + "w": 1.75 + }, + { + "label": "3,13", + "x": 14, + "y": 3 + }, + { + "label": "4,0", + "x": 0, + "y": 4, + "w": 1.5 + }, + { + "label": "4,1", + "x": 1.5, + "y": 4 + }, + { + "label": "4,2", + "x": 2.5, + "y": 4, + "w": 1.5 + }, + { + "label": "4,5", + "x": 4, + "y": 4, + "w": 7 + }, + { + "label": "4,10", + "x": 11, + "y": 4, + "w": 1.5 + }, + { + "label": "4,12", + "x": 12.5, + "y": 4 + }, + { + "label": "4,13", + "x": 13.5, + "y": 4, + "w": 1.5 + } + ] + }, + "LAYOUT_all": { + "layout": [ + { + "label": "0,0", + "x": 0, + "y": 0 + }, + { + "label": "0,1", + "x": 1, + "y": 0 + }, + { + "label": "0,2", + "x": 2, + "y": 0 + }, + { + "label": "0,3", + "x": 3, + "y": 0 + }, + { + "label": "0,4", + "x": 4, + "y": 0 + }, + { + "label": "0,5", + "x": 5, + "y": 0 + }, + { + "label": "0,6", + "x": 6, + "y": 0 + }, + { + "label": "0,7", + "x": 7, + "y": 0 + }, + { + "label": "0,8", + "x": 8, + "y": 0 + }, + { + "label": "0,9", + "x": 9, + "y": 0 + }, + { + "label": "0,10", + "x": 10, + "y": 0 + }, + { + "label": "0,11", + "x": 11, + "y": 0 + }, + { + "label": "0,12", + "x": 12, + "y": 0 + }, + { + "label": "0,13", + "x": 13, + "y": 0 + }, + { + "label": "4,7", + "x": 14, + "y": 0 + }, + { + "label": "1,0", + "x": 0, + "y": 1, + "w": 1.5 + }, + { + "label": "1,1", + "x": 1.5, + "y": 1 + }, + { + "label": "1,2", + "x": 2.5, + "y": 1 + }, + { + "label": "1,3", + "x": 3.5, + "y": 1 + }, + { + "label": "1,4", + "x": 4.5, + "y": 1 + }, + { + "label": "1,5", + "x": 5.5, + "y": 1 + }, + { + "label": "1,6", + "x": 6.5, + "y": 1 + }, + { + "label": "1,7", + "x": 7.5, + "y": 1 + }, + { + "label": "1,8", + "x": 8.5, + "y": 1 + }, + { + "label": "1,9", + "x": 9.5, + "y": 1 + }, + { + "label": "1,10", + "x": 10.5, + "y": 1 + }, + { + "label": "1,11", + "x": 11.5, + "y": 1 + }, + { + "label": "1,12", + "x": 12.5, + "y": 1 + }, + { + "label": "1,13", + "x": 13.5, + "y": 1, + "w": 1.5 + }, + { + "label": "2,0", + "x": 0, + "y": 2, + "w": 1.75 + }, + { + "label": "2,1", + "x": 1.75, + "y": 2 + }, + { + "label": "2,2", + "x": 2.75, + "y": 2 + }, + { + "label": "2,3", + "x": 3.75, + "y": 2 + }, + { + "label": "2,4", + "x": 4.75, + "y": 2 + }, + { + "label": "2,5", + "x": 5.75, + "y": 2 + }, + { + "label": "2,6", + "x": 6.75, + "y": 2 + }, + { + "label": "2,7", + "x": 7.75, + "y": 2 + }, + { + "label": "2,8", + "x": 8.75, + "y": 2 + }, + { + "label": "2,9", + "x": 9.75, + "y": 2 + }, + { + "label": "2,10", + "x": 10.75, + "y": 2 + }, + { + "label": "2,11", + "x": 11.75, + "y": 2 + }, + { + "label": "2,12", + "x": 12.75, + "y": 2 + }, + { + "label": "2,13", + "x": 13.75, + "y": 2, + "w": 2.25 + }, + { + "label": "3,0", + "x": 0, + "y": 3, + "w": 2 + }, + { + "label": "3,1", + "x": 2, + "y": 3 + }, + { + "label": "3,2", + "x": 3, + "y": 3 + }, + { + "label": "3,3", + "x": 4, + "y": 3 + }, + { + "label": "3,4", + "x": 5, + "y": 3 + }, + { + "label": "3,5", + "x": 6, + "y": 3 + }, + { + "label": "3,6", + "x": 7, + "y": 3 + }, + { + "label": "3,7", + "x": 8, + "y": 3 + }, + { + "label": "3,8", + "x": 9, + "y": 3 + }, + { + "label": "3,9", + "x": 10, + "y": 3 + }, + { + "label": "3,10", + "x": 11, + "y": 3 + }, + { + "label": "3,11", + "x": 12, + "y": 3 + }, + { + "label": "3,12", + "x": 13, + "y": 3 + }, + { + "label": "3,13", + "x": 14, + "y": 3 + }, + { + "label": "4,0", + "x": 0, + "y": 4, + "w": 1.25 + }, + { + "label": "4,1", + "x": 1.25, + "y": 4, + "w": 1.25 + }, + { + "label": "4,2", + "x": 2.5, + "y": 4, + "w": 1.25 + }, + { + "label": "4,3", + "x": 3.75, + "y": 4, + "w": 2.25 + }, + { + "label": "4,4", + "x": 6, + "y": 4, + "w": 1.25 + }, + { + "label": "4,8", + "x": 7.25, + "y": 4, + "w": 2.75 + }, + { + "label": "4,9", + "x": 10, + "y": 4 + }, + { + "label": "4,10", + "x": 11, + "y": 4 + }, + { + "label": "4,11", + "x": 12, + "y": 4 + }, + { + "label": "4,12", + "x": 13, + "y": 4 + }, + { + "label": "4,13", + "x": 14, + "y": 4 + }, + { + "label": "4,5", + "x": 4, + "y": 5, + "w": 7 + } + ] + } + } +} diff --git a/keyboards/yandrstudio/yr6095/keymaps/default/keymap.c b/keyboards/yandrstudio/yr6095/keymaps/default/keymap.c new file mode 100644 index 00000000000..57d7c083df5 --- /dev/null +++ b/keyboards/yandrstudio/yr6095/keymaps/default/keymap.c @@ -0,0 +1,31 @@ +/* Copyright 2022 JasonRen(biu) + * + * 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_60_tsangan_split_rshift( + 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_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(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RALT), + [1] = LAYOUT_60_tsangan_split_rshift( + 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_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, RGB_TOG, RGB_MOD, RGB_RMOD, RGB_VAI, RGB_VAD, KC_TRNS, KC_MACOS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_LG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) +}; diff --git a/keyboards/yandrstudio/yr6095/keymaps/via/keymap.c b/keyboards/yandrstudio/yr6095/keymaps/via/keymap.c new file mode 100644 index 00000000000..0411f3b9244 --- /dev/null +++ b/keyboards/yandrstudio/yr6095/keymaps/via/keymap.c @@ -0,0 +1,43 @@ +/* Copyright 2022 JasonRen(biu) + * + * 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_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_BSLS, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, 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_DEL, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT), + [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_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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_RMOD, RGB_VAI, RGB_VAD, KC_TRNS, KC_MACOS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_LG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + [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), + [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) +}; diff --git a/keyboards/yandrstudio/yr6095/keymaps/via/rules.mk b/keyboards/yandrstudio/yr6095/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/yandrstudio/yr6095/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/yandrstudio/yr6095/mcuconf.h b/keyboards/yandrstudio/yr6095/mcuconf.h new file mode 100644 index 00000000000..3ec9c201288 --- /dev/null +++ b/keyboards/yandrstudio/yr6095/mcuconf.h @@ -0,0 +1,25 @@ +/* Copyright 2022 JasonRen(biu) + * + * 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_PWM_USE_TIM3 +#define STM32_PWM_USE_TIM3 TRUE + +#undef STM32_PLLXTPRE +#define STM32_PLLXTPRE STM32_PLLXTPRE_DIV2 diff --git a/keyboards/yandrstudio/yr6095/readme.md b/keyboards/yandrstudio/yr6095/readme.md new file mode 100644 index 00000000000..da034db8be5 --- /dev/null +++ b/keyboards/yandrstudio/yr6095/readme.md @@ -0,0 +1,22 @@ +# yr6095 + +![yr6095](https://i.imgur.com/k2SVb94h.png) +A 60% multi-layout keyboard (there are 95 keys in total) with 1 RGB in capslock key. +This keyboard use 16mhz HSE and APM32F103CBT6(STM32F103CBT6) as MCU. + +- Keyboard Maintainer: https://github.com/jiaxin96 +- Hardware Supported: yr6095 +- Hardware Availability: [TaoBao-5162](https://item.taobao.com/item.htm?id=678583896604) + +Make example for this keyboard (after setting up your build environment): + + make yandrstudio/yr6095:default + +See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. + +## Bootloader + +Enter the bootloader in 2 ways: + +- **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key which is Escape in this keyboard) and plug in the keyboard +- **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. diff --git a/keyboards/yandrstudio/yr6095/rules.mk b/keyboards/yandrstudio/yr6095/rules.mk new file mode 100644 index 00000000000..43a4366a1fa --- /dev/null +++ b/keyboards/yandrstudio/yr6095/rules.mk @@ -0,0 +1,16 @@ +# Wildcard to allow APM32 MCU +DFU_SUFFIX_ARGS = -p FFFF -v FFFF + +# 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 +WS2812_DRIVER = pwm # WS2812 RGB Driver diff --git a/keyboards/yandrstudio/yr6095/yr6095.c b/keyboards/yandrstudio/yr6095/yr6095.c new file mode 100644 index 00000000000..c0a2c94cc20 --- /dev/null +++ b/keyboards/yandrstudio/yr6095/yr6095.c @@ -0,0 +1,78 @@ +/* Copyright 2022 JasonRen(biu) + * + * 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 "yr6095.h" + +void board_init(void) { + AFIO->MAPR |= AFIO_MAPR_TIM3_REMAP_PARTIALREMAP; +} + +#ifdef RGBLIGHT_ENABLE + +const rgblight_segment_t PROGMEM my_capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {0, 1, HSV_RED} +); + +const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST( + my_capslock_layer +); + +bool led_update_kb(led_t led_state) { + if (led_update_user(led_state)) { + rgblight_set_layer_state(0, led_state.caps_lock); + } + return true; +} + +void keyboard_post_init_kb(void) { + rgblight_reload_from_eeprom(); + rgblight_layers = my_rgb_layers; + keyboard_post_init_user(); +} + +#endif + +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + if (!process_record_user(keycode, record)) { return false; } + switch(keycode) { + case KC_LG: + if (record->event.pressed) { + process_magic(GUI_TOG, record); + } + return false; + case KC_MACOS: + if (record->event.pressed) { + process_magic(CG_TOGG, record); + } + return false; + case KC_MCTL: + if (record->event.pressed) { + host_consumer_send(0x29F); + } else { + host_consumer_send(0); + } + return false; + case KC_LPAD: + if (record->event.pressed) { + host_consumer_send(0x2A0); + } else { + host_consumer_send(0); + } + return false; + default: + return true; + } + return true; +} diff --git a/keyboards/yandrstudio/yr6095/yr6095.h b/keyboards/yandrstudio/yr6095/yr6095.h new file mode 100644 index 00000000000..37b4412aaa3 --- /dev/null +++ b/keyboards/yandrstudio/yr6095/yr6095.h @@ -0,0 +1,80 @@ +/* Copyright 2022 JasonRen(biu) + * + * 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_60_tsangan_split_rshift( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K407, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K213, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K312, K313, \ + K400, K401, K402, K405, K410, K412, K413 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, KC_NO }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, KC_NO, K213 }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, KC_NO, K312, K313 }, \ + { K400, K401, K402, KC_NO, KC_NO, K405, KC_NO, K407, KC_NO, KC_NO, K410, KC_NO, K412, K413 } \ +} + +#define LAYOUT_all( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K407, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, \ + K400, K401, K402, K403, K404, K405, K408, K409, K410, K411, K412, K413 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213 }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313 }, \ + { K400, K401, K402, K403, K404, K405, KC_NO, K407, K408, K409, K410, K411, K412, K413 } \ +} + +enum keyboard_keycodes { +#ifdef VIA_ENABLE + LOCK_GUI = USER00, + TOG_MACOS_KEYMAP, + KC_MISSION_CONTROL, + KC_LAUNCHPAD, + NEW_SAFE_RANGE = SAFE_RANGE // Important! +#else + LOCK_GUI = SAFE_RANGE, + TOG_MACOS_KEYMAP, + KC_MISSION_CONTROL, + KC_LAUNCHPAD, + NEW_SAFE_RANGE // Important! +#endif +}; + +#define KC_LG LOCK_GUI +#define KC_MACOS TOG_MACOS_KEYMAP +#define KC_MCTL KC_MISSION_CONTROL +#define KC_LPAD KC_LAUNCHPAD diff --git a/keyboards/yncognito/batpad/config.h b/keyboards/yncognito/batpad/config.h index 4db1cdf5687..d1a40a4dcef 100644 --- a/keyboards/yncognito/batpad/config.h +++ b/keyboards/yncognito/batpad/config.h @@ -43,7 +43,6 @@ along with this program. If not, see . #define RGB_MATRIX_KEYPRESSES #define RGB_MATRIX_KEYRELEASES #define RGB_MATRIX_FRAMEBUFFER_EFFECTS -#define RGB_DISABLE_AFTER_TIMEOUT 0 // #define RGB_DISABLE_WHEN_USB_SUSPENDED #define RGB_MATRIX_LED_FLUSH_LIMIT 16 #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 255 diff --git a/keyboards/yushakobo/quick17/config.h b/keyboards/yushakobo/quick17/config.h index 36dc55747d7..2a74e9e9f57 100644 --- a/keyboards/yushakobo/quick17/config.h +++ b/keyboards/yushakobo/quick17/config.h @@ -55,7 +55,6 @@ along with this program. If not, see . # 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 (RGB_MATRIX_LED_COUNT + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) diff --git a/keyboards/zicodia/tklfrlnrlmlao/info.json b/keyboards/zicodia/tklfrlnrlmlao/info.json new file mode 100644 index 00000000000..dd01bef7834 --- /dev/null +++ b/keyboards/zicodia/tklfrlnrlmlao/info.json @@ -0,0 +1,36 @@ +{ + "manufacturer": "Zicodia", + "keyboard_name": "TKLFRLNRLMLAO", + "maintainer": "Zicodia", + "bootloader": "atmel-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["F1", "F4", "F0", "F5", "C7", "F6", "F7", "B6", "D6", "D4"], + "rows": ["D5", "B5", "B4", "D7"] + }, + "usb": { + "vid": "0x4A4C", + "pid": "0x0000", + "device_version": "1.0.0" + }, + "processor": "atmega32u4", + "url": "https://github.com/Zicodia", + "layouts": { + "LAYOUT_all": { + "layout": [ + { "matrix": [0, 0], "x": 0, "y": 0 }, { "matrix": [0, 1], "x": 1.25, "y": 0 }, { "matrix": [0, 2], "x": 2.25, "y": 0 }, { "matrix": [0, 3], "x": 3.25, "y": 0 }, { "matrix": [0, 4], "x": 4.5, "y": 0 }, { "matrix": [0, 5], "x": 5.5, "y": 0 }, { "matrix": [0, 6], "x": 6.5, "y": 0 }, { "matrix": [0, 7], "x": 7.75, "y": 0 }, { "matrix": [0, 8], "x": 8.75, "y": 0 }, { "matrix": [0, 9], "x": 9.75, "y": 0 }, + { "matrix": [1, 0], "x": 0, "y": 1.25 }, { "matrix": [1, 1], "x": 1, "y": 1.25 }, { "matrix": [1, 2], "x": 2, "y": 1.25 }, { "matrix": [1, 3], "x": 3, "y": 1.25 }, { "matrix": [1, 4], "x": 4, "y": 1.25 }, { "matrix": [1, 5], "x": 5, "y": 1.25 }, { "matrix": [1, 6], "x": 6, "y": 1.25, "w": 1.5 }, { "matrix": [1, 7], "x": 7.75, "y": 1 }, { "matrix": [1, 8], "x": 8.75, "y": 1 }, { "matrix": [1, 9], "x": 9.75, "y": 1 }, + { "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5 }, { "matrix": [2, 1], "x": 1.5, "y": 2.25 }, { "matrix": [2, 2], "x": 2.5, "y": 2.25 }, { "matrix": [2, 3], "x": 3.5, "y": 2.25 }, { "matrix": [2, 4], "x": 4.5, "y": 2.25 }, { "matrix": [2, 5], "x": 5.5, "y": 2.25 }, { "matrix": [2, 6], "x": 6.5, "y": 2.25 }, { "matrix": [2, 8], "x": 8.75, "y": 2.25 }, + { "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.25 }, { "matrix": [3, 1], "x": 1.25, "y": 3.25 }, { "matrix": [3, 3], "x": 2.25, "y": 3.25, "w": 3 }, { "matrix": [3, 5], "x": 5.25, "y": 3.25 }, { "matrix": [3, 6], "x": 6.25, "y": 3.25, "w": 1.25 }, { "matrix": [3, 7], "x": 7.75, "y": 3.25 }, { "matrix": [3, 8], "x": 8.75, "y": 3.25 }, { "matrix": [3, 9], "x": 9.75, "y": 3.25 } + ] + } + } +} \ No newline at end of file diff --git a/keyboards/zicodia/tklfrlnrlmlao/keymaps/default/keymap.c b/keyboards/zicodia/tklfrlnrlmlao/keymaps/default/keymap.c new file mode 100644 index 00000000000..0addb5711f8 --- /dev/null +++ b/keyboards/zicodia/tklfrlnrlmlao/keymaps/default/keymap.c @@ -0,0 +1,79 @@ +// Copyright 2022 Zicodia (@Zicodia) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┐┌───┬───┬───┐┌───┬───┬───┐ ┌───┬───┬───┐ + * │ Q │| W │ E │ R │| T │ Y │ U │ | I │ O │ P │ + * └───┘└───┴───┴───┘└───┴───┴───┘ ├───┼───┼───┤ + * ┌───┬───┬───┬───┬───┬───┬─────┐ | K │ L │ENT│ + * │ A │ S │ D │ F | G │ H │ J │ └───┴───┴───┘ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤ ┌───┐ + * │Z(SF)│ X │ C │ V │ B │ N │ M │ │UP │ + * ├────┬┴──┬┴───┴───┴──┬┴──┬┴───┤ ┌───┼───┼───┐ + * │CTRL│ALT│ SPACE │WIN│MO1 │ |LFT│DWN│RT │ + * └────┴───┴───────────┴───┴────┘ └───┴───┴───┘ + */ + [0] = LAYOUT_all( + 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_ENT, + SFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_UP, + KC_LCTL, KC_LALT, KC_SPC, KC_RGUI, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + /* + * ┌───┐┌───┬───┬───┐┌───┬───┬───┐ ┌───┬───┬───┐ + * │ 1 │| 2 │ 3 │ 4 │| 5 │ 6 │ 7 │ | 8 │ 9 │ 0 │ + * └───┘└───┴───┴───┘└───┴───┴───┘ ├───┼───┼───┤ + * ┌───┬───┬───┬───┬───┬───┬─────┐ | [ │ ] │ \ │ + * │TAB│ │ │ | - │ = │BSPC │ └───┴───┴───┘ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤ ┌───┐ + * │ │ │ │ │ │ ; │ ' │ │SFT│ + * ├────┬┴──┬┴───┴───┴──┬┴──┬┴───┤ ┌───┼───┼───┐ + * │ │ │ │MO2│ │ | , │ . │ / │ + * └────┴───┴───────────┴───┴────┘ └───┴───┴───┘ + */ + [1] = LAYOUT_all( + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_TAB, KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_BSPC, KC_LBRC, KC_RBRC, KC_BSLS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SCLN, KC_QUOT, KC_RSFT, + KC_TRNS, KC_TRNS, KC_TRNS, MO(2), KC_TRNS, KC_COMM, KC_DOT, KC_SLSH + ), + /* + * ┌───┐┌───┬───┬───┐┌───┬───┬───┐ ┌───┬───┬───┐ + * │ESC│|F1 │F2 │F3 │|F4 │F5 │F6 │ |F7 │F8 │F9 │ + * └───┘└───┴───┴───┘└───┴───┴───┘ ├───┼───┼───┤ + * ┌───┬───┬───┬───┬───┬───┬─────┐ |F10│F11│F12│ + * │ │ │ │ | │ │ │ └───┴───┴───┘ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤ ┌───┐ + * │ │ │ │ │ │ │ │ │ │ + * ├────┬┴──┬┴───┴───┴──┬┴──┬┴───┤ ┌───┼───┼───┐ + * │ │ │ │ │ │ | │ │ │ + * └────┴───┴───────────┴───┴────┘ └───┴───┴───┘ + */ + [2] = LAYOUT_all( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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 + ), + /* + * ┌───┐┌───┬───┬───┐┌───┬───┬───┐ ┌───┬───┬───┐ + * │ │| │ │ │| │ │ │ | │ │ │ + * └───┘└───┴───┴───┘└───┴───┴───┘ ├───┼───┼───┤ + * ┌───┬───┬───┬───┬───┬───┬─────┐ | │ │ │ + * │ │ │ │ | │ │ │ └───┴───┴───┘ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤ ┌───┐ + * │ │ │ │ │ │ │ │ │ │ + * ├────┬┴──┬┴───┴───┴──┬┴──┬┴───┤ ┌───┼───┼───┐ + * │ │ │ │ │ │ | │ │ │ + * └────┴───┴───────────┴───┴────┘ └───┴───┴───┘ + */ + [4] = 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 + ) +}; diff --git a/keyboards/zicodia/tklfrlnrlmlao/keymaps/via/keymap.c b/keyboards/zicodia/tklfrlnrlmlao/keymaps/via/keymap.c new file mode 100644 index 00000000000..a0e27e92081 --- /dev/null +++ b/keyboards/zicodia/tklfrlnrlmlao/keymaps/via/keymap.c @@ -0,0 +1,80 @@ +// Copyright 2022 Zicodia (@Zicodia) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* ANSI style + * ┌───┐┌───┬───┬───┐┌───┬───┬───┐ ┌───┬───┬───┐ + * │ Q │| W │ E │ R │| T │ Y │ U │ | I │ O │ P │ + * └───┘└───┴───┴───┘└───┴───┴───┘ ├───┼───┼───┤ + * ┌───┬───┬───┬───┬───┬───┬─────┐ | K │ L │ENT│ + * │ A │ S │ D │ F | G │ H │ J │ └───┴───┴───┘ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤ ┌───┐ + * │Z(SF)│ X │ C │ V │ B │ N │ M │ │UP │ + * ├────┬┴──┬┴───┴───┴──┬┴──┬┴───┤ ┌───┼───┼───┐ + * │CTRL│ALT│ SPACE │WIN│MO1 │ |LFT│DWN│RT │ + * └────┴───┴───────────┴───┴────┘ └───┴───┴───┘ + */ + [0] = LAYOUT_all( + 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_ENT, + SFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_UP, + KC_LCTL, KC_LALT, KC_SPC, KC_RGUI, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + /* + * ┌───┐┌───┬───┬───┐┌───┬───┬───┐ ┌───┬───┬───┐ + * │ 1 │| 2 │ 3 │ 4 │| 5 │ 6 │ 7 │ | 8 │ 9 │ 0 │ + * └───┘└───┴───┴───┘└───┴───┴───┘ ├───┼───┼───┤ + * ┌───┬───┬───┬───┬───┬───┬─────┐ | [ │ ] │ \ │ + * │TAB│ │ │ | - │ = │BSPC │ └───┴───┴───┘ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤ ┌───┐ + * │ │ │ │ │ │ ; │ ' │ │SFT│ + * ├────┬┴──┬┴───┴───┴──┬┴──┬┴───┤ ┌───┼───┼───┐ + * │ │ │ │MO2│ │ | , │ . │ / │ + * └────┴───┴───────────┴───┴────┘ └───┴───┴───┘ + */ + [1] = LAYOUT_all( + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_TAB, KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_BSPC, KC_LBRC, KC_RBRC, KC_BSLS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SCLN, KC_QUOT, KC_RSFT, + KC_TRNS, KC_TRNS, KC_TRNS, MO(2), KC_TRNS, KC_COMM, KC_DOT, KC_SLSH + ), + /* + * ┌───┐┌───┬───┬───┐┌───┬───┬───┐ ┌───┬───┬───┐ + * │ESC│|F1 │F2 │F3 │|F4 │F5 │F6 │ |F7 │F8 │F9 │ + * └───┘└───┴───┴───┘└───┴───┴───┘ ├───┼───┼───┤ + * ┌───┬───┬───┬───┬───┬───┬─────┐ |F10│F11│F12│ + * │ │ │ │ | │ │ │ └───┴───┴───┘ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤ ┌───┐ + * │ │ │ │ │ │ │ │ │ │ + * ├────┬┴──┬┴───┴───┴──┬┴──┬┴───┤ ┌───┼───┼───┐ + * │ │ │ │ │ │ | │ │ │ + * └────┴───┴───────────┴───┴────┘ └───┴───┴───┘ + */ + [2] = LAYOUT_all( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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 + ), + /* + * ┌───┐┌───┬───┬───┐┌───┬───┬───┐ ┌───┬───┬───┐ + * │ │| │ │ │| │ │ │ | │ │ │ + * └───┘└───┴───┴───┘└───┴───┴───┘ ├───┼───┼───┤ + * ┌───┬───┬───┬───┬───┬───┬─────┐ | │ │ │ + * │ │ │ │ | │ │ │ └───┴───┴───┘ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤ ┌───┐ + * │ │ │ │ │ │ │ │ │ │ + * ├────┬┴──┬┴───┴───┴──┬┴──┬┴───┤ ┌───┼───┼───┐ + * │ │ │ │ │ │ | │ │ │ + * └────┴───┴───────────┴───┴────┘ └───┴───┴───┘ + */ + [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 + ) +}; diff --git a/keyboards/zicodia/tklfrlnrlmlao/keymaps/via/rules.mk b/keyboards/zicodia/tklfrlnrlmlao/keymaps/via/rules.mk new file mode 100644 index 00000000000..036bd6d1c3e --- /dev/null +++ b/keyboards/zicodia/tklfrlnrlmlao/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/zicodia/tklfrlnrlmlao/readme.md b/keyboards/zicodia/tklfrlnrlmlao/readme.md new file mode 100644 index 00000000000..393503c550f --- /dev/null +++ b/keyboards/zicodia/tklfrlnrlmlao/readme.md @@ -0,0 +1,38 @@ +# TKLFRLNRLMLAO "LMAO" + +![TKLFRLNRLMLAO "LMAO"](https://i.imgur.com/rmHpYEyh.jpeg) + +A "totally normal" TKL. + +This keyboard is a unique 40% keyboard, designed with form in mind over function. Purely designed to immitate the TKL layout in a small form factor. + +What the name means: +- TKL = Ten-Key-Less +- FRL = Function-Row-Less +- NRL = Number-Row-Less +- ML = Modifier-less +- AO = Alpha-Only + +Additionally, a WKL (Windows-Key-Less) option is available, which results in the variation WKLTKLFRLNRLMLAO "WLMAO" + +* Keyboard Maintainer: [Zicodia](https://github.com/Zicodia) +* Hardware Supported: TKLFRLNRLMLAO PCB +* Hardware Availability: TBA + +Make example for this keyboard (after setting up your build environment): + + make zicodia/tklfrlnrlmlao:default + +Flashing example for this keyboard: + + make zicodia/tklfrlnrlmlao: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/zicodia/tklfrlnrlmlao/rules.mk b/keyboards/zicodia/tklfrlnrlmlao/rules.mk new file mode 100644 index 00000000000..6e7633bfe01 --- /dev/null +++ b/keyboards/zicodia/tklfrlnrlmlao/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/layouts/community/65_ansi_blocker/brandonschlack/keymap.c b/layouts/community/65_ansi_blocker/brandonschlack/keymap.c index ea39959d7ee..bd5431a5b8b 100644 --- a/layouts/community/65_ansi_blocker/brandonschlack/keymap.c +++ b/layouts/community/65_ansi_blocker/brandonschlack/keymap.c @@ -106,12 +106,12 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { } #ifdef RGB_MATRIX_ENABLE -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_user(void) { if (IS_HOST_LED_ON(USB_LED_CAPS_LOCK)) { rgb_matrix_set_color(USB_LED_CAPS_LOCK_SCANCODE, RGB_GREEN); } else if (!HAS_ANY_FLAGS(rgb_matrix_get_flags(), LED_FLAG_KEYS)){ rgb_matrix_set_color(USB_LED_CAPS_LOCK_SCANCODE, 0, 0, 0); } + return false; } #endif - diff --git a/layouts/community/65_ansi_blocker_split_bs/brandonschlack-split/keymap.c b/layouts/community/65_ansi_blocker_split_bs/brandonschlack-split/keymap.c index 2d76ce1d154..5a32962baa2 100644 --- a/layouts/community/65_ansi_blocker_split_bs/brandonschlack-split/keymap.c +++ b/layouts/community/65_ansi_blocker_split_bs/brandonschlack-split/keymap.c @@ -94,11 +94,12 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { } #ifdef RGB_MATRIX_ENABLE -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_user(void) { if (IS_HOST_LED_ON(USB_LED_CAPS_LOCK)) { rgb_matrix_set_color(USB_LED_CAPS_LOCK_SCANCODE, RGB_GREEN); } else if (!HAS_ANY_FLAGS(rgb_matrix_get_flags(), LED_FLAG_KEYS)){ rgb_matrix_set_color(USB_LED_CAPS_LOCK_SCANCODE, 0, 0, 0); } + return false; } #endif diff --git a/layouts/community/ergodox/osx_neo2/keymap.c b/layouts/community/ergodox/osx_neo2/keymap.c index 125cc43a8f3..22d6f35e087 100644 --- a/layouts/community/ergodox/osx_neo2/keymap.c +++ b/layouts/community/ergodox/osx_neo2/keymap.c @@ -687,9 +687,9 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { if ((capslock_state & MOD_MASK_SHIFT) == MOD_MASK_SHIFT) { // CAPSLOCK is currently active, disable it if (host_keyboard_leds() & (1 << USB_LED_CAPS_LOCK)) { - unregister_code(KC_LOCKING_CAPS); + unregister_code(KC_LOCKING_CAPS_LOCK); } else { - register_code(KC_LOCKING_CAPS); + register_code(KC_LOCKING_CAPS_LOCK); } return false; } diff --git a/layouts/community/ergodox/twentylives_dvorak_with_hebrew/keymap.c b/layouts/community/ergodox/twentylives_dvorak_with_hebrew/keymap.c index 12548ae0eaf..25ce96e068c 100644 --- a/layouts/community/ergodox/twentylives_dvorak_with_hebrew/keymap.c +++ b/layouts/community/ergodox/twentylives_dvorak_with_hebrew/keymap.c @@ -161,11 +161,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, // Right Hand - KC_TRNS, KC_TRNS, KC_LOCKING_NUM, KC_KP_SLASH, KC_KP_ASTERISK, KC_KP_MINUS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_PLUS, KC_TRNS, - KC_TRNS, KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_PLUS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_KP_1, KC_KP_2, KC_KP_3, KC_ENTER, KC_TRNS, - KC_KP_0, KC_KP_0, KC_KP_DOT, KC_ENTER, KC_TRNS, + KC_TRNS, KC_TRNS, KC_LNUM, KC_KP_SLASH, KC_KP_ASTERISK, KC_KP_MINUS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_PLUS, KC_TRNS, + KC_TRNS, KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_PLUS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_KP_1, KC_KP_2, KC_KP_3, KC_ENTER, KC_TRNS, + KC_KP_0, KC_KP_0, KC_KP_DOT, KC_ENTER, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS diff --git a/layouts/community/ortho_4x12/drashna/config.h b/layouts/community/ortho_4x12/drashna/config.h index 3f47a3dcbc5..e2154cbe2fd 100644 --- a/layouts/community/ortho_4x12/drashna/config.h +++ b/layouts/community/ortho_4x12/drashna/config.h @@ -35,7 +35,6 @@ # define RGB_MATRIX_KEYPRESSES // reacts to keypresses (will slow down matrix scan by a lot) // #define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (not recommened) # define RGB_MATRIX_FRAMEBUFFER_EFFECTS -// #define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects // #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_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended # undef RGB_MATRIX_LED_PROCESS_LIMIT diff --git a/layouts/community/ortho_4x12/jackhumbert/keymap.c b/layouts/community/ortho_4x12/jackhumbert/keymap.c index ed637b7c308..c297a63b374 100644 --- a/layouts/community/ortho_4x12/jackhumbert/keymap.c +++ b/layouts/community/ortho_4x12/jackhumbert/keymap.c @@ -112,16 +112,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------+------+------+------+------+------+------| * | | |MUSmod|Aud on|Audoff|AGnorm|AGswap| | | | | | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof|TermOn|TermOf| | | | + * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' */ [_ADJUST] = LAYOUT_ortho_4x12( - _______, QK_BOOT, DEBUG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, - _______, XXXXXXX, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, - _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, TERM_ON, TERM_OFF, XXXXXXX, XXXXXXX, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + _______, QK_BOOT, DEBUG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, + _______, XXXXXXX, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, + _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) }; diff --git a/layouts/community/ortho_4x12/jarred/keymap.c b/layouts/community/ortho_4x12/jarred/keymap.c index 4be5f9ed695..e419b3942c9 100644 --- a/layouts/community/ortho_4x12/jarred/keymap.c +++ b/layouts/community/ortho_4x12/jarred/keymap.c @@ -13,10 +13,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; #ifdef RGB_MATRIX_ENABLE -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_user(void) { #ifdef KEYBOARD_planck_light // Disable light in middle of 2U position of Planck Light rgb_matrix_set_color(42, 0, 0, 0); #endif + return false; } #endif diff --git a/layouts/community/ortho_4x12/jjerrell/keymap.c b/layouts/community/ortho_4x12/jjerrell/keymap.c index d873907e91a..90b7714ec4f 100644 --- a/layouts/community/ortho_4x12/jjerrell/keymap.c +++ b/layouts/community/ortho_4x12/jjerrell/keymap.c @@ -66,7 +66,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), /* Adjust (Lower + Raise) * ,-----------------------------------------------------------------------------------. - * | Make | Debug|Reset |TermOn|TrmOff| | |MusMod|Mus On|MusOff|MidiOn|MidOff| + * | Make | Debug|Reset | | | | |MusMod|Mus On|MusOff|MidiOn|MidOff| * |------+------+------+------+------+------+------+------+------+------+------+------| * | Mute | Vol- | Vol+ | Play | Skip | | |Voice-| HUE+ | HUE- | SAT+ | SAT- | * |------+------+------+------+------+------+------+------+------+------+------+------| diff --git a/layouts/community/ortho_4x12/juno/keymap.c b/layouts/community/ortho_4x12/juno/keymap.c index 1c9b4af8917..5961b62d280 100644 --- a/layouts/community/ortho_4x12/juno/keymap.c +++ b/layouts/community/ortho_4x12/juno/keymap.c @@ -157,7 +157,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_ADJUST] = LAYOUT_ortho_4x12( _______, 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/layouts/community/ortho_4x12/junonum/keymap.c b/layouts/community/ortho_4x12/junonum/keymap.c index b5ed159f6af..45de5a9b74a 100644 --- a/layouts/community/ortho_4x12/junonum/keymap.c +++ b/layouts/community/ortho_4x12/junonum/keymap.c @@ -89,10 +89,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [_ADJUST] = LAYOUT_ortho_4x12( - _______, QK_BOOT, DEBUG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL , - _______, AG_NORM, MU_MOD, AU_ON, AU_OFF, CG_NORM, CG_SWAP, QWERTY, COLEMAK, DVORAK, PLOVER, _______, - _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, TERM_ON, TERM_OFF, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + _______, QK_BOOT, DEBUG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL , + _______, AG_NORM, MU_MOD, AU_ON, AU_OFF, CG_NORM, CG_SWAP, QWERTY, COLEMAK, DVORAK, PLOVER, _______, + _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), [_FN1] = LAYOUT_ortho_4x12( diff --git a/layouts/community/ortho_4x12/mguterl/keymap.c b/layouts/community/ortho_4x12/mguterl/keymap.c index e57fb0c47fe..ed089d6e6de 100644 --- a/layouts/community/ortho_4x12/mguterl/keymap.c +++ b/layouts/community/ortho_4x12/mguterl/keymap.c @@ -158,16 +158,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------+------+------+------+------+------+------| * | | |MUSmod|Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak|Plover| | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof|TermOn|TermOf| | | | + * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' */ [_ADJUST] = LAYOUT_ortho_4x12( - TG_GAME, 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, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + TG_GAME, 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, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) }; diff --git a/layouts/community/planck_mit/guidoism/keys.json b/layouts/community/planck_mit/guidoism/keys.json index 791119b4f29..bcc9e0da627 100644 --- a/layouts/community/planck_mit/guidoism/keys.json +++ b/layouts/community/planck_mit/guidoism/keys.json @@ -118,11 +118,11 @@ "KC_RALT": "\u2325", "KC_RGUI": "\u2318", "KC_RCMD": "\u2318", - "KC_LOCKING_CAPS": "Locking Caps Lock", + "KC_LOCKING_CAPS_LOCK": "Locking Caps Lock", "KC_LCAP": "Locking Caps Lock", - "KC_LOCKING_NUM": "Locking Num Lock", + "KC_LOCKING_NUM_LOCK": "Locking Num Lock", "KC_LNUM": "Locking Num Lock", - "KC_LOCKING_SCROLL": "Locking Scroll Lock", + "KC_LOCKING_SCROLL_LOCK": "Locking Scroll Lock", "KC_LSCR": "Locking Scroll Lock", "KC_INT4": "JIS Henkan", "KC_HENK": "JIS Henkan", diff --git a/layouts/community/split_3x6_3/drashna/config.h b/layouts/community/split_3x6_3/drashna/config.h index cfe2d4436fd..0944e370779 100644 --- a/layouts/community/split_3x6_3/drashna/config.h +++ b/layouts/community/split_3x6_3/drashna/config.h @@ -46,7 +46,6 @@ # endif # 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 (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/lib/chibios-contrib b/lib/chibios-contrib index b51787777be..bb8356fb5a3 160000 --- a/lib/chibios-contrib +++ b/lib/chibios-contrib @@ -1 +1 @@ -Subproject commit b51787777beda4be659212503d5f3901ca91db08 +Subproject commit bb8356fb5a3a9bbc1561826f174a9a631c614546 diff --git a/lib/python/qmk/cli/generate/config_h.py b/lib/python/qmk/cli/generate/config_h.py index d6e87c8803f..3752174841c 100755 --- a/lib/python/qmk/cli/generate/config_h.py +++ b/lib/python/qmk/cli/generate/config_h.py @@ -156,6 +156,12 @@ def generate_split_config(kb_info_json, config_h_lines): generate_encoder_config(kb_info_json['split']['encoder']['right'], config_h_lines, '_RIGHT') +def generate_led_animations_config(led_feature_json, config_h_lines, prefix): + for animation in led_feature_json.get('animations', {}): + if led_feature_json['animations'][animation]: + config_h_lines.append(generate_define(f'{prefix}{animation.upper()}')) + + @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 config.h for.') @@ -186,5 +192,14 @@ def generate_config_h(cli): if 'split' in kb_info_json: generate_split_config(kb_info_json, config_h_lines) + if 'led_matrix' in kb_info_json: + generate_led_animations_config(kb_info_json['led_matrix'], config_h_lines, 'ENABLE_LED_MATRIX_') + + if 'rgb_matrix' in kb_info_json: + generate_led_animations_config(kb_info_json['rgb_matrix'], config_h_lines, 'ENABLE_RGB_MATRIX_') + + if 'rgblight' in kb_info_json: + generate_led_animations_config(kb_info_json['rgblight'], config_h_lines, 'RGBLIGHT_EFFECT_') + # Show the results dump_lines(cli.args.output, config_h_lines, cli.args.quiet) diff --git a/platforms/arm_atsam/flash.mk b/platforms/arm_atsam/flash.mk index 8152610ceb4..8068c08d579 100644 --- a/platforms/arm_atsam/flash.mk +++ b/platforms/arm_atsam/flash.mk @@ -13,6 +13,7 @@ mdloader: bin $(call EXEC_MDLOADER) flash: bin + $(SILENT) || printf "Flashing for bootloader: $(BLUE)$(BOOTLOADER)$(NO_COLOR)\n" ifneq ($(strip $(PROGRAM_CMD)),) $(UNSYNC_OUTPUT_CMD) && $(PROGRAM_CMD) else ifeq ($(strip $(ARM_ATSAM)),SAMD51J18A) diff --git a/platforms/avr/flash.mk b/platforms/avr/flash.mk index cd980b97337..4c4ac705129 100644 --- a/platforms/avr/flash.mk +++ b/platforms/avr/flash.mk @@ -168,7 +168,8 @@ endef hid_bootloader: $(BUILD_DIR)/$(TARGET).hex check-size cpfirmware $(call EXEC_HID_LUFA) -flash: $(BUILD_DIR)/$(TARGET).hex check-size cpfirmware +flash: $(BUILD_DIR)/$(TARGET).hex check-size cpfirmware + $(SILENT) || printf "Flashing for bootloader: $(BLUE)$(BOOTLOADER)$(NO_COLOR)\n" ifneq ($(strip $(PROGRAM_CMD)),) $(UNSYNC_OUTPUT_CMD) && $(PROGRAM_CMD) else ifeq ($(strip $(BOOTLOADER)), caterina) diff --git a/platforms/chibios/boards/GENERIC_PROMICRO_RP2040/configs/mcuconf.h b/platforms/chibios/boards/GENERIC_PROMICRO_RP2040/configs/mcuconf.h index 8348e5312f5..5c0859901ec 100644 --- a/platforms/chibios/boards/GENERIC_PROMICRO_RP2040/configs/mcuconf.h +++ b/platforms/chibios/boards/GENERIC_PROMICRO_RP2040/configs/mcuconf.h @@ -78,6 +78,19 @@ #define RP_SPI_SPI1_DMA_PRIORITY 1 #define RP_SPI_DMA_ERROR_HOOK(spip) +/* + * PWM driver system settings. + */ +#define RP_PWM_USE_PWM0 FALSE +#define RP_PWM_USE_PWM1 FALSE +#define RP_PWM_USE_PWM2 FALSE +#define RP_PWM_USE_PWM3 FALSE +#define RP_PWM_USE_PWM4 FALSE +#define RP_PWM_USE_PWM5 FALSE +#define RP_PWM_USE_PWM6 FALSE +#define RP_PWM_USE_PWM7 FALSE +#define RP_PWM_IRQ_WRAP_NUMBER_PRIORITY 3 + /* * I2C driver system settings. */ diff --git a/platforms/chibios/boards/GENERIC_RP_RP2040/configs/mcuconf.h b/platforms/chibios/boards/GENERIC_RP_RP2040/configs/mcuconf.h index 9d8dc61aace..f7a66c6ab9f 100644 --- a/platforms/chibios/boards/GENERIC_RP_RP2040/configs/mcuconf.h +++ b/platforms/chibios/boards/GENERIC_RP_RP2040/configs/mcuconf.h @@ -78,6 +78,19 @@ #define RP_SPI_SPI1_DMA_PRIORITY 1 #define RP_SPI_DMA_ERROR_HOOK(spip) +/* + * PWM driver system settings. + */ +#define RP_PWM_USE_PWM0 FALSE +#define RP_PWM_USE_PWM1 FALSE +#define RP_PWM_USE_PWM2 FALSE +#define RP_PWM_USE_PWM3 FALSE +#define RP_PWM_USE_PWM4 FALSE +#define RP_PWM_USE_PWM5 FALSE +#define RP_PWM_USE_PWM6 FALSE +#define RP_PWM_USE_PWM7 FALSE +#define RP_PWM_IRQ_WRAP_NUMBER_PRIORITY 3 + /* * I2C driver system settings. */ diff --git a/platforms/chibios/boards/GENERIC_STM32_F072XB/configs/mcuconf.h b/platforms/chibios/boards/GENERIC_STM32_F072XB/configs/mcuconf.h index 32b2777a810..9d26849dffb 100644 --- a/platforms/chibios/boards/GENERIC_STM32_F072XB/configs/mcuconf.h +++ b/platforms/chibios/boards/GENERIC_STM32_F072XB/configs/mcuconf.h @@ -80,6 +80,7 @@ #define STM32_ADC_ADC1_DMA_PRIORITY 2 #define STM32_ADC_IRQ_PRIORITY 2 #define STM32_ADC_ADC1_DMA_IRQ_PRIORITY 2 +#define STM32_ADC_ADC1_DMA_STREAM STM32_DMA_STREAM_ID(1, 1) /* * GPT driver system settings. diff --git a/platforms/chibios/boards/QMK_PM2040/configs/mcuconf.h b/platforms/chibios/boards/QMK_PM2040/configs/mcuconf.h index a737b36c1c1..e33d6d785fe 100644 --- a/platforms/chibios/boards/QMK_PM2040/configs/mcuconf.h +++ b/platforms/chibios/boards/QMK_PM2040/configs/mcuconf.h @@ -78,6 +78,19 @@ #define RP_SPI_SPI1_DMA_PRIORITY 1 #define RP_SPI_DMA_ERROR_HOOK(spip) +/* + * PWM driver system settings. + */ +#define RP_PWM_USE_PWM0 FALSE +#define RP_PWM_USE_PWM1 FALSE +#define RP_PWM_USE_PWM2 FALSE +#define RP_PWM_USE_PWM3 FALSE +#define RP_PWM_USE_PWM4 FALSE +#define RP_PWM_USE_PWM5 FALSE +#define RP_PWM_USE_PWM6 FALSE +#define RP_PWM_USE_PWM7 FALSE +#define RP_PWM_IRQ_WRAP_NUMBER_PRIORITY 3 + /* * I2C driver system settings. */ diff --git a/platforms/chibios/chibios_config.h b/platforms/chibios/chibios_config.h index 8dcc23727fe..38d3a40f6b2 100644 --- a/platforms/chibios/chibios_config.h +++ b/platforms/chibios/chibios_config.h @@ -28,6 +28,10 @@ # define USE_GPIOV1 # define PAL_OUTPUT_TYPE_OPENDRAIN _Static_assert(0, "RP2040 has no Open Drain GPIO configuration, setting this is not possible"); +# define BACKLIGHT_PAL_MODE (PAL_MODE_ALTERNATE_PWM | PAL_RP_PAD_DRIVE12 | PAL_RP_GPIO_OE) +# define BACKLIGHT_PWM_COUNTER_FREQUENCY 1000000 +# define BACKLIGHT_PWM_PERIOD BACKLIGHT_PWM_COUNTER_FREQUENCY / 2048 + # define usb_lld_endpoint_fields # define I2C1_SCL_PAL_MODE (PAL_MODE_ALTERNATE_I2C | PAL_RP_PAD_SLEWFAST | PAL_RP_PAD_PUE | PAL_RP_PAD_DRIVE4) diff --git a/platforms/chibios/drivers/serial_protocol.c b/platforms/chibios/drivers/serial_protocol.c index c95aed98855..ccaf73282dd 100644 --- a/platforms/chibios/drivers/serial_protocol.c +++ b/platforms/chibios/drivers/serial_protocol.c @@ -102,15 +102,11 @@ static inline bool react_to_transaction(void) { * @return bool Indicates success of transaction. */ bool soft_serial_transaction(int index) { - bool result = initiate_transaction((uint8_t)index); + /* Clear the receive queue, to start with a clean slate. + * Parts of failed transactions or spurious bytes could still be in it. */ + serial_transport_driver_clear(); - if (unlikely(!result)) { - /* Clear the receive queue, to start with a clean slate. - * Parts of failed transactions or spurious bytes could still be in it. */ - serial_transport_driver_clear(); - } - - return result; + return initiate_transaction((uint8_t)index); } /** diff --git a/platforms/chibios/drivers/vendor/RP/RP2040/serial_vendor.c b/platforms/chibios/drivers/vendor/RP/RP2040/serial_vendor.c index afd7e65ad81..dd4723a086d 100644 --- a/platforms/chibios/drivers/vendor/RP/RP2040/serial_vendor.c +++ b/platforms/chibios/drivers/vendor/RP/RP2040/serial_vendor.c @@ -181,12 +181,13 @@ static inline void leave_rx_state(void) {} #endif /** - * @brief Clear the RX and TX hardware FIFOs of the state machines. + * @brief Clear the FIFO of the RX state machine. */ inline void serial_transport_driver_clear(void) { osalSysLock(); - pio_sm_clear_fifos(pio, rx_state_machine); - pio_sm_clear_fifos(pio, tx_state_machine); + while (!pio_sm_is_rx_fifo_empty(pio, rx_state_machine)) { + pio_sm_clear_fifos(pio, rx_state_machine); + } osalSysUnlock(); } diff --git a/platforms/chibios/flash.mk b/platforms/chibios/flash.mk index 2802368b5d7..6e23d96e1cb 100644 --- a/platforms/chibios/flash.mk +++ b/platforms/chibios/flash.mk @@ -101,8 +101,8 @@ endef teensy: $(BUILD_DIR)/$(TARGET).hex cpfirmware sizeafter $(call EXEC_TEENSY) - flash: $(BUILD_DIR)/$(TARGET).bin cpfirmware sizeafter + $(SILENT) || printf "Flashing for bootloader: $(BLUE)$(BOOTLOADER)$(NO_COLOR)\n" ifneq ($(strip $(PROGRAM_CMD)),) $(UNSYNC_OUTPUT_CMD) && $(PROGRAM_CMD) else ifeq ($(strip $(BOOTLOADER)),kiibohd) diff --git a/platforms/chibios/hardware_id.c b/platforms/chibios/hardware_id.c index 888a2754657..1097db5966e 100644 --- a/platforms/chibios/hardware_id.c +++ b/platforms/chibios/hardware_id.c @@ -6,10 +6,15 @@ hardware_id_t get_hardware_id(void) { hardware_id_t id = {0}; -#ifdef UID_BASE +#if defined(RP2040) + // Forward declare as including "hardware/flash.h" here causes more issues... + void flash_get_unique_id(uint8_t *); + + flash_get_unique_id((uint8_t *)&id); +#elif defined(UID_BASE) id.data[0] = (uint32_t)(*((uint32_t *)UID_BASE)); id.data[1] = (uint32_t)(*((uint32_t *)(UID_BASE + 4))); - id.data[1] = (uint32_t)(*((uint32_t *)(UID_BASE + 8))); + id.data[2] = (uint32_t)(*((uint32_t *)(UID_BASE + 8))); #endif return id; } diff --git a/platforms/chibios/vendors/RP/RP2040.mk b/platforms/chibios/vendors/RP/RP2040.mk index efa3fef13f6..4360512c050 100644 --- a/platforms/chibios/vendors/RP/RP2040.mk +++ b/platforms/chibios/vendors/RP/RP2040.mk @@ -66,223 +66,34 @@ EXTRAINCDIRS += $(PLATFORM_RP2040_PATH) # RP2040 optimized compiler intrinsics ############################################################################## -# Enables optimized Compiler intrinsics which are located in the RP2040 -# bootrom. This needs startup code and linker script support from ChibiOS, -# which is WIP. Therefore disabled by default for now. -RP2040_INTRINSICS_ENABLED ?= no -ifeq ($(strip $(RP2040_INTRINSICS_ENABLED)), yes) - PICOSDKINTRINSICSSRC = $(PICOSDKROOT)/src/rp2_common/pico_float/float_aeabi.S \ - $(PICOSDKROOT)/src/rp2_common/pico_float/float_math.c \ - $(PICOSDKROOT)/src/rp2_common/pico_float/float_init_rom.c \ - $(PICOSDKROOT)/src/rp2_common/pico_float/float_v1_rom_shim.S \ - $(PICOSDKROOT)/src/rp2_common/pico_double/double_aeabi.S \ - $(PICOSDKROOT)/src/rp2_common/pico_double/double_math.c \ - $(PICOSDKROOT)/src/rp2_common/pico_double/double_init_rom.c \ - $(PICOSDKROOT)/src/rp2_common/pico_double/double_v1_rom_shim.S \ - $(PICOSDKROOT)/src/rp2_common/pico_divider/divider.S \ - $(PICOSDKROOT)/src/rp2_common/pico_int64_ops/pico_int64_ops_aeabi.S \ - $(PICOSDKROOT)/src/rp2_common/pico_mem_ops/mem_ops_aeabi.S \ - $(PICOSDKROOT)/src/rp2_common/pico_malloc/pico_malloc.c \ - $(PICOSDKROOT)/src/rp2_common/pico_bit_ops/bit_ops_aeabi.S +# The RP2040 sdk provides optimized compiler intrinsics which override the GCC +# built-ins. Some of these functions are located in the bootrom of the RP2040. +# Execution of these functions is realized via a vtable that is populated on +# bootup. This mechanism needs startup code and linker script support from +# ChibiOS, which is currently not implemented thus these functions are disabled +# ATM. +PICOSDKINTRINSICSSRC = $(PICOSDKROOT)/src/rp2_common/pico_divider/divider.S \ + $(PICOSDKROOT)/src/rp2_common/pico_int64_ops/pico_int64_ops_aeabi.S - PICOSDKINTRINSICSINC = $(PICOSDKROOT)/src/common/pico_base/include \ - $(PICOSDKROOT)/src/rp2_common/pico_platfrom/include \ - $(PICOSDKROOT)/src/rp2_common/pico_bootrom/include \ - $(PICOSDKROOT)/src/rp2_common/hardware_divider/include \ - $(PICOSDKROOT)/src/rp2_common/pico_float/include \ - $(PICOSDKROOT)/src/rp2_common/pico_double/include \ - $(PICOSDKROOT)/src/rp2_common/pico_malloc/include +PICOSDKINTRINSICSINC = $(PICOSDKROOT)/src/common/pico_base/include \ + $(PICOSDKROOT)/src/rp2_common/pico_platfrom/include \ + $(PICOSDKROOT)/src/rp2_common/hardware_divider/include - OPT_DEFS += -DPICO_FLOAT_SUPPORT_ROM_V1=0 -DPICO_DOUBLE_SUPPORT_ROM_V1=0 +# integer division intrinsics utilizing the RP2040 hardware divider +OPT_DEFS += -DPICO_DIVIDER_IN_RAM=1 +OPT_DEFS += -DPICO_DIVIDER_DISABLE_INTERRUPTS=1 - CFLAGS += -Wl,--defsym=__StackLimit=__heap_end__ - CFLAGS += -Wl,--defsym=__unhandled_user_irq=_unhandled_exception - CFLAGS += -Wl,--build-id=none +CFLAGS += -Wl,--wrap=__aeabi_idiv +CFLAGS += -Wl,--wrap=__aeabi_idivmod +CFLAGS += -Wl,--wrap=__aeabi_ldivmod +CFLAGS += -Wl,--wrap=__aeabi_uidiv +CFLAGS += -Wl,--wrap=__aeabi_uidivmod +CFLAGS += -Wl,--wrap=__aeabi_uldivmod - # single precision floating point intrinsics - OPT_DEFS += -DPICO_FLOAT_IN_RAM=1 - OPT_DEFS += -DPICO_FLOAT_PROPAGATE_NANS=0 +# 64bit integer intrinsics +OPT_DEFS += -DPICO_INT64_OPS_IN_RAM=1 - CFLAGS += -Wl,--wrap=__aeabi_fdiv - CFLAGS += -Wl,--wrap=__aeabi_fmul - CFLAGS += -Wl,--wrap=__aeabi_frsub - CFLAGS += -Wl,--wrap=__aeabi_fsub - CFLAGS += -Wl,--wrap=__aeabi_cfcmpeq - CFLAGS += -Wl,--wrap=__aeabi_cfrcmple - CFLAGS += -Wl,--wrap=__aeabi_cfcmple - CFLAGS += -Wl,--wrap=__aeabi_fcmpeq - CFLAGS += -Wl,--wrap=__aeabi_fcmplt - CFLAGS += -Wl,--wrap=__aeabi_fcmple - CFLAGS += -Wl,--wrap=__aeabi_fcmpge - CFLAGS += -Wl,--wrap=__aeabi_fcmpgt - CFLAGS += -Wl,--wrap=__aeabi_fcmpun - CFLAGS += -Wl,--wrap=__aeabi_i2f - CFLAGS += -Wl,--wrap=__aeabi_l2f - CFLAGS += -Wl,--wrap=__aeabi_ui2f - CFLAGS += -Wl,--wrap=__aeabi_ul2f - CFLAGS += -Wl,--wrap=__aeabi_i2f - CFLAGS += -Wl,--wrap=__aeabi_f2iz - CFLAGS += -Wl,--wrap=__aeabi_f2lz - CFLAGS += -Wl,--wrap=__aeabi_f2uiz - CFLAGS += -Wl,--wrap=__aeabi_f2ulz - CFLAGS += -Wl,--wrap=__aeabi_f2d - CFLAGS += -Wl,--wrap=sqrtf - CFLAGS += -Wl,--wrap=cosf - CFLAGS += -Wl,--wrap=sinf - CFLAGS += -Wl,--wrap=tanf - CFLAGS += -Wl,--wrap=atan2f - CFLAGS += -Wl,--wrap=expf - CFLAGS += -Wl,--wrap=logf - CFLAGS += -Wl,--wrap=ldexpf - CFLAGS += -Wl,--wrap=copysignf - CFLAGS += -Wl,--wrap=truncf - CFLAGS += -Wl,--wrap=floorf - CFLAGS += -Wl,--wrap=ceilf - CFLAGS += -Wl,--wrap=roundf - CFLAGS += -Wl,--wrap=sincosf - CFLAGS += -Wl,--wrap=asinf - CFLAGS += -Wl,--wrap=acosf - CFLAGS += -Wl,--wrap=atanf - CFLAGS += -Wl,--wrap=sinhf - CFLAGS += -Wl,--wrap=coshf - CFLAGS += -Wl,--wrap=tanhf - CFLAGS += -Wl,--wrap=asinhf - CFLAGS += -Wl,--wrap=acoshf - CFLAGS += -Wl,--wrap=atanhf - CFLAGS += -Wl,--wrap=exp2f - CFLAGS += -Wl,--wrap=log2f - CFLAGS += -Wl,--wrap=exp10f - CFLAGS += -Wl,--wrap=log10f - CFLAGS += -Wl,--wrap=powf - CFLAGS += -Wl,--wrap=powintf - CFLAGS += -Wl,--wrap=hypotf - CFLAGS += -Wl,--wrap=cbrtf - CFLAGS += -Wl,--wrap=fmodf - CFLAGS += -Wl,--wrap=dremf - CFLAGS += -Wl,--wrap=remainderf - CFLAGS += -Wl,--wrap=remquof - CFLAGS += -Wl,--wrap=expm1f - CFLAGS += -Wl,--wrap=log1pf - CFLAGS += -Wl,--wrap=fmaf +CFLAGS += -Wl,--wrap=__aeabi_lmul - # double precision floating point intrinsics - OPT_DEFS += -DPICO_DOUBLE_IN_RAM=1 - OPT_DEFS += -DPICO_DOUBLE_PROPAGATE_NANS=0 - - CFLAGS += -Wl,--wrap=__aeabi_dadd - CFLAGS += -Wl,--wrap=__aeabi_ddiv - CFLAGS += -Wl,--wrap=__aeabi_dmul - CFLAGS += -Wl,--wrap=__aeabi_drsub - CFLAGS += -Wl,--wrap=__aeabi_dsub - CFLAGS += -Wl,--wrap=__aeabi_cdcmpeq - CFLAGS += -Wl,--wrap=__aeabi_cdrcmple - CFLAGS += -Wl,--wrap=__aeabi_cdcmple - CFLAGS += -Wl,--wrap=__aeabi_dcmpeq - CFLAGS += -Wl,--wrap=__aeabi_dcmplt - CFLAGS += -Wl,--wrap=__aeabi_dcmple - CFLAGS += -Wl,--wrap=__aeabi_dcmpge - CFLAGS += -Wl,--wrap=__aeabi_dcmpgt - CFLAGS += -Wl,--wrap=__aeabi_dcmpun - CFLAGS += -Wl,--wrap=__aeabi_i2d - CFLAGS += -Wl,--wrap=__aeabi_l2d - CFLAGS += -Wl,--wrap=__aeabi_ui2d - CFLAGS += -Wl,--wrap=__aeabi_ul2d - CFLAGS += -Wl,--wrap=__aeabi_d2iz - CFLAGS += -Wl,--wrap=__aeabi_d2lz - CFLAGS += -Wl,--wrap=__aeabi_d2uiz - CFLAGS += -Wl,--wrap=__aeabi_d2ulz - CFLAGS += -Wl,--wrap=__aeabi_d2f - CFLAGS += -Wl,--wrap=sqrt - CFLAGS += -Wl,--wrap=cos - CFLAGS += -Wl,--wrap=sin - CFLAGS += -Wl,--wrap=tan - CFLAGS += -Wl,--wrap=atan2 - CFLAGS += -Wl,--wrap=exp - CFLAGS += -Wl,--wrap=log - CFLAGS += -Wl,--wrap=ldexp - CFLAGS += -Wl,--wrap=copysign - CFLAGS += -Wl,--wrap=trunc - CFLAGS += -Wl,--wrap=floor - CFLAGS += -Wl,--wrap=ceil - CFLAGS += -Wl,--wrap=round - CFLAGS += -Wl,--wrap=sincos - CFLAGS += -Wl,--wrap=asin - CFLAGS += -Wl,--wrap=acos - CFLAGS += -Wl,--wrap=atan - CFLAGS += -Wl,--wrap=sinh - CFLAGS += -Wl,--wrap=cosh - CFLAGS += -Wl,--wrap=tanh - CFLAGS += -Wl,--wrap=asinh - CFLAGS += -Wl,--wrap=acosh - CFLAGS += -Wl,--wrap=atanh - CFLAGS += -Wl,--wrap=exp2 - CFLAGS += -Wl,--wrap=log2 - CFLAGS += -Wl,--wrap=exp10 - CFLAGS += -Wl,--wrap=log10 - CFLAGS += -Wl,--wrap=pow - CFLAGS += -Wl,--wrap=powint - CFLAGS += -Wl,--wrap=hypot - CFLAGS += -Wl,--wrap=cbrt - CFLAGS += -Wl,--wrap=fmod - CFLAGS += -Wl,--wrap=drem - CFLAGS += -Wl,--wrap=remainder - CFLAGS += -Wl,--wrap=remquo - CFLAGS += -Wl,--wrap=expm1 - CFLAGS += -Wl,--wrap=log1p - CFLAGS += -Wl,--wrap=fma - - # bit operation intrinsics - OPT_DEFS += -DPICO_BITS_IN_RAM=1 - - CFLAGS += -Wl,--wrap=__clzsi2 - CFLAGS += -Wl,--wrap=__clzsi2 - CFLAGS += -Wl,--wrap=__clzdi2 - CFLAGS += -Wl,--wrap=__ctzsi2 - CFLAGS += -Wl,--wrap=__ctzdi2 - CFLAGS += -Wl,--wrap=__popcountsi2 - CFLAGS += -Wl,--wrap=__popcountdi2 - CFLAGS += -Wl,--wrap=__clz - CFLAGS += -Wl,--wrap=__clzl - CFLAGS += -Wl,--wrap=__clzsi2 - CFLAGS += -Wl,--wrap=__clzll - - # integer division intrinsics - OPT_DEFS += -DPICO_DIVIDER_IN_RAM=1 - OPT_DEFS += -DPICO_DIVIDER_DISABLE_INTERRUPTS=1 - - CFLAGS += -Wl,--wrap=__aeabi_idiv - CFLAGS += -Wl,--wrap=__aeabi_idivmod - CFLAGS += -Wl,--wrap=__aeabi_ldivmod - CFLAGS += -Wl,--wrap=__aeabi_uidiv - CFLAGS += -Wl,--wrap=__aeabi_uidivmod - CFLAGS += -Wl,--wrap=__aeabi_uldivmod - - # 64bit integer intrinsics - OPT_DEFS += -DPICO_INT64_OPS_IN_RAM=1 - - CFLAGS += -Wl,--wrap=__aeabi_lmul - - # malloc and friends functions - OPT_DEFS += -DPICO_USE_MALLOC_MUTEX=0 - OPT_DEFS += -DPICO_DEBUG_MALLOC=0 - OPT_DEFS ?= -DPICO_MALLOC_PANIC=0 - - CFLAGS += -Wl,--wrap=malloc - CFLAGS += -Wl,--wrap=calloc - CFLAGS += -Wl,--wrap=free - - # memory operation intrinsics - OPT_DEFS += -DPICO_MEM_IN_RAM=1 - - CFLAGS += -Wl,--wrap=memcpy - CFLAGS += -Wl,--wrap=memset - CFLAGS += -Wl,--wrap=__aeabi_memcpy - CFLAGS += -Wl,--wrap=__aeabi_memset - CFLAGS += -Wl,--wrap=__aeabi_memcpy4 - CFLAGS += -Wl,--wrap=__aeabi_memset4 - CFLAGS += -Wl,--wrap=__aeabi_memcpy8 - CFLAGS += -Wl,--wrap=__aeabi_memset8 - - PLATFORM_SRC += $(PICOSDKINTRINSICSSRC) - EXTRAINCDIRS += $(PICOSDKINTRINSICSINC) -endif +PLATFORM_SRC += $(PICOSDKINTRINSICSSRC) +EXTRAINCDIRS += $(PICOSDKINTRINSICSINC) diff --git a/platforms/chibios/vendors/RP/_pin_defs.h b/platforms/chibios/vendors/RP/_pin_defs.h index 42418453698..b56ab314068 100644 --- a/platforms/chibios/vendors/RP/_pin_defs.h +++ b/platforms/chibios/vendors/RP/_pin_defs.h @@ -35,3 +35,8 @@ #define GP28 28U #define GP29 29U #define GP30 30U + +/* Aliases for GPIO PWM channels - every pin has at least one PWM channel + * assigned */ +#define RP2040_PWM_CHANNEL_A 1U +#define RP2040_PWM_CHANNEL_B 2U diff --git a/quantum/action.c b/quantum/action.c index 6b2e9104e03..78322e4a83a 100644 --- a/quantum/action.c +++ b/quantum/action.c @@ -293,19 +293,56 @@ void process_record_handler(keyrecord_t *record) { process_action(record, action); } -#if defined(PS2_MOUSE_ENABLE) || defined(POINTING_DEVICE_ENABLE) -void register_button(bool pressed, enum mouse_buttons button) { -# ifdef PS2_MOUSE_ENABLE - tp_buttons = pressed ? tp_buttons | button : tp_buttons & ~button; +/** + * @brief handles all the messy mouse stuff + * + * Handles all the edgecases and special stuff that is needed for coexistense + * of the multiple mouse subsystems. + * + * @param mouse_keycode[in] uint8_t mouse keycode + * @param pressed[in] bool + */ + +void register_mouse(uint8_t mouse_keycode, bool pressed) { +#ifdef MOUSEKEY_ENABLE + // if mousekeys is enabled, let it do the brunt of the work + if (pressed) { + mousekey_on(mouse_keycode); + } else { + mousekey_off(mouse_keycode); + } + // should mousekeys send report, or does something else handle this? + switch (mouse_keycode) { +# if defined(PS2_MOUSE_ENABLE) || defined(POINTING_DEVICE_ENABLE) + case KC_MS_BTN1 ... KC_MS_BTN8: + // let pointing device handle the buttons + // expand if/when it handles more of the code +# if defined(POINTING_DEVICE_ENABLE) + pointing_device_keycode_handler(mouse_keycode, pressed); +# endif + break; # endif -# ifdef POINTING_DEVICE_ENABLE - report_mouse_t currentReport = pointing_device_get_report(); - currentReport.buttons = pressed ? currentReport.buttons | button : currentReport.buttons & ~button; - pointing_device_set_report(currentReport); -# endif -} + default: + mousekey_send(); + break; + } +#elif defined(POINTING_DEVICE_ENABLE) + // if mousekeys isn't enabled, and pointing device is enabled, then + // let pointing device do all the heavy lifting, then + if IS_MOUSEKEY (mouse_keycode) { + pointing_device_keycode_handler(mouse_keycode, pressed); + } #endif +#ifdef PS2_MOUSE_ENABLE + // make sure that ps2 mouse has button report synced + if (KC_MS_BTN1 <= mouse_keycode && mouse_keycode <= KC_MS_BTN3) { + uint8_t tmp_button_msk = MOUSE_BTN_MASK(mouse_keycode - KC_MS_BTN1); + tp_buttons = pressed ? tp_buttons | tmp_button_msk : tp_buttons & ~tmp_button_msk; + } +#endif +} + /** \brief Take an action and processes it. * * FIXME: Needs documentation. @@ -403,9 +440,9 @@ void process_action(keyrecord_t *record, action_t action) { # if defined(ONESHOT_TAP_TOGGLE) && ONESHOT_TAP_TOGGLE > 1 } else if (tap_count == ONESHOT_TAP_TOGGLE) { dprint("MODS_TAP: Toggling oneshot"); + register_mods(mods); clear_oneshot_mods(); set_oneshot_locked_mods(mods | get_oneshot_locked_mods()); - register_mods(mods); # endif } else { register_mods(mods | get_oneshot_mods()); @@ -418,16 +455,16 @@ void process_action(keyrecord_t *record, action_t action) { // Retain Oneshot mods # if defined(ONESHOT_TAP_TOGGLE) && ONESHOT_TAP_TOGGLE > 1 if (mods & get_mods()) { + unregister_mods(mods); clear_oneshot_mods(); set_oneshot_locked_mods(~mods & get_oneshot_locked_mods()); - unregister_mods(mods); } } else if (tap_count == ONESHOT_TAP_TOGGLE) { // Toggle Oneshot Layer # endif } else { - clear_oneshot_mods(); unregister_mods(mods); + clear_oneshot_mods(); } } } @@ -490,46 +527,18 @@ void process_action(keyrecord_t *record, action_t action) { case ACT_USAGE: switch (action.usage.page) { case PAGE_SYSTEM: - if (event.pressed) { - host_system_send(action.usage.code); - } else { - host_system_send(0); - } + host_system_send(event.pressed ? action.usage.code : 0); break; case PAGE_CONSUMER: - if (event.pressed) { - host_consumer_send(action.usage.code); - } else { - host_consumer_send(0); - } + host_consumer_send(event.pressed ? action.usage.code : 0); break; } break; #endif -#ifdef MOUSEKEY_ENABLE /* Mouse key */ case ACT_MOUSEKEY: - if (event.pressed) { - mousekey_on(action.key.code); - } else { - mousekey_off(action.key.code); - } - switch (action.key.code) { -# if defined(PS2_MOUSE_ENABLE) || defined(POINTING_DEVICE_ENABLE) -# ifdef POINTING_DEVICE_ENABLE - case KC_MS_BTN1 ... KC_MS_BTN8: -# else - case KC_MS_BTN1 ... KC_MS_BTN3: -# endif - register_button(event.pressed, MOUSE_BTN_MASK(action.key.code - KC_MS_BTN1)); - break; -# endif - default: - mousekey_send(); - break; - } + register_mouse(action.key.code, event.pressed); break; -#endif #ifndef NO_ACTION_LAYER case ACT_LAYER: if (action.layer_bitop.on == 0) { @@ -835,9 +844,9 @@ void process_action(keyrecord_t *record, action_t action) { __attribute__((weak)) void register_code(uint8_t code) { if (code == KC_NO) { return; - } + #ifdef LOCKING_SUPPORT_ENABLE - else if (KC_LOCKING_CAPS_LOCK == code) { + } else if (KC_LOCKING_CAPS_LOCK == code) { # ifdef LOCKING_RESYNC_ENABLE // Resync: ignore if caps lock already is on if (host_keyboard_leds() & (1 << USB_LED_CAPS_LOCK)) return; @@ -847,9 +856,8 @@ __attribute__((weak)) void register_code(uint8_t code) { wait_ms(TAP_HOLD_CAPS_DELAY); del_key(KC_CAPS_LOCK); send_keyboard_report(); - } - else if (KC_LOCKING_NUM_LOCK == code) { + } else if (KC_LOCKING_NUM_LOCK == code) { # ifdef LOCKING_RESYNC_ENABLE if (host_keyboard_leds() & (1 << USB_LED_NUM_LOCK)) return; # endif @@ -858,9 +866,8 @@ __attribute__((weak)) void register_code(uint8_t code) { wait_ms(100); del_key(KC_NUM_LOCK); send_keyboard_report(); - } - else if (KC_LOCKING_SCROLL_LOCK == code) { + } else if (KC_LOCKING_SCROLL_LOCK == code) { # ifdef LOCKING_RESYNC_ENABLE if (host_keyboard_leds() & (1 << USB_LED_SCROLL_LOCK)) return; # endif @@ -869,10 +876,9 @@ __attribute__((weak)) void register_code(uint8_t code) { wait_ms(100); del_key(KC_SCROLL_LOCK); send_keyboard_report(); - } #endif - else if IS_KEY (code) { + } else if IS_KEY (code) { // TODO: should push command_proc out of this block? if (command_proc(code)) return; @@ -905,20 +911,17 @@ __attribute__((weak)) void register_code(uint8_t code) { } else if IS_MOD (code) { add_mods(MOD_BIT(code)); send_keyboard_report(); - } + #ifdef EXTRAKEY_ENABLE - else if IS_SYSTEM (code) { + } else if IS_SYSTEM (code) { host_system_send(KEYCODE2SYSTEM(code)); } else if IS_CONSUMER (code) { host_consumer_send(KEYCODE2CONSUMER(code)); - } #endif -#ifdef MOUSEKEY_ENABLE - else if IS_MOUSEKEY (code) { - mousekey_on(code); - mousekey_send(); + + } else if IS_MOUSEKEY (code) { + register_mouse(code, true); } -#endif } /** \brief Utilities for actions. (FIXME: Needs better description) @@ -928,9 +931,9 @@ __attribute__((weak)) void register_code(uint8_t code) { __attribute__((weak)) void unregister_code(uint8_t code) { if (code == KC_NO) { return; - } + #ifdef LOCKING_SUPPORT_ENABLE - else if (KC_LOCKING_CAPS_LOCK == code) { + } else if (KC_LOCKING_CAPS_LOCK == code) { # ifdef LOCKING_RESYNC_ENABLE // Resync: ignore if caps lock already is off if (!(host_keyboard_leds() & (1 << USB_LED_CAPS_LOCK))) return; @@ -939,9 +942,8 @@ __attribute__((weak)) void unregister_code(uint8_t code) { send_keyboard_report(); del_key(KC_CAPS_LOCK); send_keyboard_report(); - } - else if (KC_LOCKING_NUM_LOCK == code) { + } else if (KC_LOCKING_NUM_LOCK == code) { # ifdef LOCKING_RESYNC_ENABLE if (!(host_keyboard_leds() & (1 << USB_LED_NUM_LOCK))) return; # endif @@ -949,9 +951,8 @@ __attribute__((weak)) void unregister_code(uint8_t code) { send_keyboard_report(); del_key(KC_NUM_LOCK); send_keyboard_report(); - } - else if (KC_LOCKING_SCROLL_LOCK == code) { + } else if (KC_LOCKING_SCROLL_LOCK == code) { # ifdef LOCKING_RESYNC_ENABLE if (!(host_keyboard_leds() & (1 << USB_LED_SCROLL_LOCK))) return; # endif @@ -959,26 +960,25 @@ __attribute__((weak)) void unregister_code(uint8_t code) { send_keyboard_report(); del_key(KC_SCROLL_LOCK); send_keyboard_report(); - } #endif - else if IS_KEY (code) { + } else if IS_KEY (code) { del_key(code); send_keyboard_report(); } else if IS_MOD (code) { del_mods(MOD_BIT(code)); send_keyboard_report(); + +#ifdef EXTRAKEY_ENABLE } else if IS_SYSTEM (code) { host_system_send(0); } else if IS_CONSUMER (code) { host_consumer_send(0); - } -#ifdef MOUSEKEY_ENABLE - else if IS_MOUSEKEY (code) { - mousekey_off(code); - mousekey_send(); - } #endif + + } else if IS_MOUSEKEY (code) { + register_mouse(code, false); + } } /** \brief Tap a keycode with a delay. diff --git a/quantum/action_code.h b/quantum/action_code.h index e107f0a740f..14cfd025f1e 100644 --- a/quantum/action_code.h +++ b/quantum/action_code.h @@ -192,7 +192,11 @@ enum mods_codes { /** \brief Other Keys */ -enum usage_pages { PAGE_SYSTEM, PAGE_CONSUMER }; +enum usage_pages { + PAGE_SYSTEM, + PAGE_CONSUMER, +}; + #define ACTION_USAGE_SYSTEM(id) ACTION(ACT_USAGE, PAGE_SYSTEM << 10 | (id)) #define ACTION_USAGE_CONSUMER(id) ACTION(ACT_USAGE, PAGE_CONSUMER << 10 | (id)) #define ACTION_MOUSEKEY(key) ACTION(ACT_MOUSEKEY, key) diff --git a/quantum/action_layer.c b/quantum/action_layer.c index 473e0e948d6..8ef337a6902 100644 --- a/quantum/action_layer.c +++ b/quantum/action_layer.c @@ -71,21 +71,21 @@ void default_layer_set(layer_state_t state) { #ifndef NO_ACTION_LAYER /** \brief Default Layer Or * - * Turns on the default layer based on matching bits between specifed layer and existing layer state + * Turns on the default layer based on matching bits between specified layer and existing layer state */ void default_layer_or(layer_state_t state) { default_layer_state_set(default_layer_state | state); } /** \brief Default Layer And * - * Turns on default layer based on matching enabled bits between specifed layer and existing layer state + * Turns on default layer based on matching enabled bits between specified layer and existing layer state */ void default_layer_and(layer_state_t state) { default_layer_state_set(default_layer_state & state); } /** \brief Default Layer Xor * - * Turns on default layer based on non-matching bits between specifed layer and existing layer state + * Turns on default layer based on non-matching bits between specified layer and existing layer state */ void default_layer_xor(layer_state_t state) { default_layer_state_set(default_layer_state ^ state); @@ -115,7 +115,7 @@ __attribute__((weak)) layer_state_t layer_state_set_kb(layer_state_t state) { /** \brief Layer state set * - * Sets the layer to match the specifed state (a bitmask) + * Sets the layer to match the specified state (a bitmask) */ void layer_state_set(layer_state_t state) { state = layer_state_set_kb(state); @@ -193,21 +193,21 @@ void layer_invert(uint8_t layer) { /** \brief Layer or * - * Turns on layers based on matching bits between specifed layer and existing layer state + * Turns on layers based on matching bits between specified layer and existing layer state */ void layer_or(layer_state_t state) { layer_state_set(layer_state | state); } /** \brief Layer and * - * Turns on layers based on matching enabled bits between specifed layer and existing layer state + * Turns on layers based on matching enabled bits between specified layer and existing layer state */ void layer_and(layer_state_t state) { layer_state_set(layer_state & state); } /** \brief Layer xor * - * Turns on layers based on non-matching bits between specifed layer and existing layer state + * Turns on layers based on non-matching bits between specified layer and existing layer state */ void layer_xor(layer_state_t state) { layer_state_set(layer_state ^ state); diff --git a/quantum/backlight/backlight_chibios.c b/quantum/backlight/backlight_chibios.c index e8f9e70f782..30e95bd5c80 100644 --- a/quantum/backlight/backlight_chibios.c +++ b/quantum/backlight/backlight_chibios.c @@ -40,16 +40,22 @@ # endif #endif -static PWMConfig pwmCFG = {0xFFFF, /* PWM clock frequency */ - 256, /* PWM period (in ticks) 1S (1/10kHz=0.1mS 0.1ms*10000 ticks=1S) */ - NULL, /* Breathing Callback */ - { /* Default all channels to disabled - Channels will be configured durring init */ - {PWM_OUTPUT_DISABLED, NULL}, - {PWM_OUTPUT_DISABLED, NULL}, - {PWM_OUTPUT_DISABLED, NULL}, - {PWM_OUTPUT_DISABLED, NULL}}, - 0, /* HW dependent part.*/ - 0}; +#ifndef BACKLIGHT_PWM_COUNTER_FREQUENCY +# define BACKLIGHT_PWM_COUNTER_FREQUENCY 0xFFFF +#endif + +#ifndef BACKLIGHT_PWM_PERIOD +# define BACKLIGHT_PWM_PERIOD 256 +#endif + +static PWMConfig pwmCFG = { + .frequency = BACKLIGHT_PWM_COUNTER_FREQUENCY, /* PWM clock frequency */ + .period = BACKLIGHT_PWM_PERIOD, /* PWM period in counter ticks. e.g. clock frequency is 10KHz, period is 256 ticks then t_period is 25.6ms */ +}; + +#ifdef BACKLIGHT_BREATHING +static virtual_timer_t breathing_vt; +#endif // See http://jared.geek.nz/2013/feb/linear-led-pwm static uint16_t cie_lightness(uint16_t v) { @@ -60,10 +66,11 @@ static uint16_t cie_lightness(uint16_t v) { // to get a useful result with integer division, we shift left in the expression above // and revert what we've done again after squaring. y = y * y * y >> 8; - if (y > 0xFFFFUL) // prevent overflow + if (y > 0xFFFFUL) { // prevent overflow return 0xFFFFU; - else + } else { return (uint16_t)y; + } } } @@ -85,6 +92,7 @@ void backlight_init_ports(void) { backlight_set(get_backlight_level()); #ifdef BACKLIGHT_BREATHING + chVTObjectInit(&breathing_vt); if (is_backlight_breathing()) { breathing_enable(); } @@ -92,7 +100,9 @@ void backlight_init_ports(void) { } void backlight_set(uint8_t level) { - if (level > BACKLIGHT_LEVELS) level = BACKLIGHT_LEVELS; + if (level > BACKLIGHT_LEVELS) { + level = BACKLIGHT_LEVELS; + } if (level == 0) { // Turn backlight off @@ -115,20 +125,19 @@ void backlight_task(void) {} */ static const uint8_t breathing_table[BREATHING_STEPS] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 3, 4, 5, 6, 8, 10, 12, 15, 17, 20, 24, 28, 32, 36, 41, 46, 51, 57, 63, 70, 76, 83, 91, 98, 106, 113, 121, 129, 138, 146, 154, 162, 170, 178, 185, 193, 200, 207, 213, 220, 225, 231, 235, 240, 244, 247, 250, 252, 253, 254, 255, 254, 253, 252, 250, 247, 244, 240, 235, 231, 225, 220, 213, 207, 200, 193, 185, 178, 170, 162, 154, 146, 138, 129, 121, 113, 106, 98, 91, 83, 76, 70, 63, 57, 51, 46, 41, 36, 32, 28, 24, 20, 17, 15, 12, 10, 8, 6, 5, 4, 3, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; -void breathing_callback(PWMDriver *pwmp); +static void breathing_callback(virtual_timer_t *vtp, void *p); bool is_breathing(void) { - return pwmCFG.callback != NULL; + return chVTIsArmed(&breathing_vt); } void breathing_enable(void) { - pwmCFG.callback = breathing_callback; - pwmEnablePeriodicNotification(&BACKLIGHT_PWM_DRIVER); + /* Update frequency is 256Hz -> 3906us intervals */ + chVTSetContinuous(&breathing_vt, TIME_US2I(3906), breathing_callback, NULL); } void breathing_disable(void) { - pwmCFG.callback = NULL; - pwmDisablePeriodicNotification(&BACKLIGHT_PWM_DRIVER); + chVTReset(&breathing_vt); // Restore backlight level backlight_set(get_backlight_level()); @@ -139,7 +148,7 @@ static inline uint16_t scale_backlight(uint16_t v) { return v / BACKLIGHT_LEVELS * get_backlight_level(); } -void breathing_callback(PWMDriver *pwmp) { +static void breathing_callback(virtual_timer_t *vtp, void *p) { uint8_t breathing_period = get_breathing_period(); uint16_t interval = (uint16_t)breathing_period * 256 / BREATHING_STEPS; @@ -150,7 +159,7 @@ void breathing_callback(PWMDriver *pwmp) { uint32_t duty = cie_lightness(rescale_limit_val(scale_backlight(breathing_table[index] * 256))); chSysLockFromISR(); - pwmEnableChannelI(pwmp, BACKLIGHT_PWM_CHANNEL - 1, PWM_FRACTION_TO_WIDTH(&BACKLIGHT_PWM_DRIVER, 0xFFFF, duty)); + pwmEnableChannelI(&BACKLIGHT_PWM_DRIVER, BACKLIGHT_PWM_CHANNEL - 1, PWM_FRACTION_TO_WIDTH(&BACKLIGHT_PWM_DRIVER, 0xFFFF, duty)); chSysUnlockFromISR(); } diff --git a/quantum/dynamic_keymap.c b/quantum/dynamic_keymap.c index 01be9806e47..e9529ed14ef 100644 --- a/quantum/dynamic_keymap.c +++ b/quantum/dynamic_keymap.c @@ -153,7 +153,7 @@ void dynamic_keymap_reset(void) { for (int row = 0; row < MATRIX_ROWS; row++) { for (int column = 0; column < MATRIX_COLS; column++) { if (layer < keymap_layer_count()) { - dynamic_keymap_set_keycode(layer, row, column, pgm_read_word(&keymaps[layer][row][column])); + dynamic_keymap_set_keycode(layer, row, column, keycode_at_keymap_location_raw(layer, row, column)); } else { dynamic_keymap_set_keycode(layer, row, column, KC_TRANSPARENT); } @@ -162,8 +162,8 @@ void dynamic_keymap_reset(void) { #ifdef ENCODER_MAP_ENABLE for (int encoder = 0; encoder < NUM_ENCODERS; encoder++) { if (layer < encodermap_layer_count()) { - dynamic_keymap_set_encoder(layer, encoder, true, pgm_read_word(&encoder_map[layer][encoder][0])); - dynamic_keymap_set_encoder(layer, encoder, false, pgm_read_word(&encoder_map[layer][encoder][1])); + dynamic_keymap_set_encoder(layer, encoder, true, keycode_at_encodermap_location_raw(layer, encoder, true)); + dynamic_keymap_set_encoder(layer, encoder, false, keycode_at_encodermap_location_raw(layer, encoder, false)); } else { dynamic_keymap_set_encoder(layer, encoder, true, KC_TRANSPARENT); dynamic_keymap_set_encoder(layer, encoder, false, KC_TRANSPARENT); @@ -201,21 +201,22 @@ void dynamic_keymap_set_buffer(uint16_t offset, uint16_t size, uint8_t *data) { } } -// This overrides the one in quantum/keymap_common.c -uint16_t keymap_key_to_keycode(uint8_t layer, keypos_t key) { - if (layer < DYNAMIC_KEYMAP_LAYER_COUNT && key.row < MATRIX_ROWS && key.col < MATRIX_COLS) { - return dynamic_keymap_get_keycode(layer, key.row, key.col); +uint16_t keycode_at_keymap_location(uint8_t layer_num, uint8_t row, uint8_t column) { + if (layer_num < DYNAMIC_KEYMAP_LAYER_COUNT && row < MATRIX_ROWS && column < MATRIX_COLS) { + return dynamic_keymap_get_keycode(layer_num, row, column); } -#ifdef ENCODER_MAP_ENABLE - else if (layer < DYNAMIC_KEYMAP_LAYER_COUNT && key.row == KEYLOC_ENCODER_CW && key.col < NUM_ENCODERS) { - return dynamic_keymap_get_encoder(layer, key.col, true); - } else if (layer < DYNAMIC_KEYMAP_LAYER_COUNT && key.row == KEYLOC_ENCODER_CCW && key.col < NUM_ENCODERS) { - return dynamic_keymap_get_encoder(layer, key.col, false); - } -#endif // ENCODER_MAP_ENABLE return KC_NO; } +#ifdef ENCODER_MAP_ENABLE +uint16_t keycode_at_encodermap_location(uint8_t layer_num, uint8_t encoder_idx, bool clockwise) { + if (layer_num < DYNAMIC_KEYMAP_LAYER_COUNT && encoder_idx < NUM_ENCODERS) { + return dynamic_keymap_get_encoder(layer_num, encoder_idx, clockwise); + } + return KC_NO; +} +#endif // ENCODER_MAP_ENABLE + uint8_t dynamic_keymap_macro_get_count(void) { return DYNAMIC_KEYMAP_MACRO_COUNT; } diff --git a/quantum/joystick.c b/quantum/joystick.c index 86b2c64036b..d285dcdb5e7 100644 --- a/quantum/joystick.c +++ b/quantum/joystick.c @@ -1,5 +1,24 @@ +/* Copyright 2022 + * + * 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 "joystick.h" +#include "analog.h" +#include "wait.h" + // clang-format off joystick_t joystick_status = { .buttons = {0}, @@ -15,12 +34,13 @@ joystick_t joystick_status = { // array defining the reading of analog values for each axis __attribute__((weak)) joystick_config_t joystick_axes[JOYSTICK_AXES_COUNT] = {}; -// to be implemented in the hid protocol library -void send_joystick_packet(joystick_t *joystick); +__attribute__((weak)) void joystick_task(void) { + joystick_read_axes(); +} void joystick_flush(void) { if ((joystick_status.status & JS_UPDATED) > 0) { - send_joystick_packet(&joystick_status); + host_joystick_send(&joystick_status); joystick_status.status &= ~JS_UPDATED; } } @@ -36,3 +56,75 @@ void unregister_joystick_button(uint8_t button) { joystick_status.status |= JS_UPDATED; joystick_flush(); } + +int16_t joystick_read_axis(uint8_t axis) { + // disable pull-up resistor + writePinLow(joystick_axes[axis].input_pin); + + // if pin was a pull-up input, we need to uncharge it by turning it low + // before making it a low input + setPinOutput(joystick_axes[axis].input_pin); + + wait_us(10); + + if (joystick_axes[axis].output_pin != JS_VIRTUAL_AXIS) { + setPinOutput(joystick_axes[axis].output_pin); + writePinHigh(joystick_axes[axis].output_pin); + } + + if (joystick_axes[axis].ground_pin != JS_VIRTUAL_AXIS) { + setPinOutput(joystick_axes[axis].ground_pin); + writePinLow(joystick_axes[axis].ground_pin); + } + + wait_us(10); + + setPinInput(joystick_axes[axis].input_pin); + + wait_us(10); + +#if defined(ANALOG_JOYSTICK_ENABLE) && (defined(__AVR__) || defined(PROTOCOL_CHIBIOS)) + int16_t axis_val = analogReadPin(joystick_axes[axis].input_pin); +#else + // default to resting position + int16_t axis_val = joystick_axes[axis].mid_digit; +#endif + + // test the converted value against the lower range + int32_t ref = joystick_axes[axis].mid_digit; + int32_t range = joystick_axes[axis].min_digit; + int32_t ranged_val = ((axis_val - ref) * -JOYSTICK_RESOLUTION) / (range - ref); + + if (ranged_val > 0) { + // the value is in the higher range + range = joystick_axes[axis].max_digit; + ranged_val = ((axis_val - ref) * JOYSTICK_RESOLUTION) / (range - ref); + } + + // clamp the result in the valid range + ranged_val = ranged_val < -JOYSTICK_RESOLUTION ? -JOYSTICK_RESOLUTION : ranged_val; + ranged_val = ranged_val > JOYSTICK_RESOLUTION ? JOYSTICK_RESOLUTION : ranged_val; + + return ranged_val; +} + +void joystick_read_axes() { +#if JOYSTICK_AXES_COUNT > 0 + for (int i = 0; i < JOYSTICK_AXES_COUNT; ++i) { + if (joystick_axes[i].input_pin == JS_VIRTUAL_AXIS) { + continue; + } + + joystick_set_axis(i, joystick_read_axis(i)); + } + + joystick_flush(); +#endif +} + +void joystick_set_axis(uint8_t axis, int16_t value) { + if (value != joystick_status.axes[axis]) { + joystick_status.axes[axis] = value; + joystick_status.status |= JS_UPDATED; + } +} diff --git a/quantum/joystick.h b/quantum/joystick.h index 5d81b14ef2f..ee966fdb1af 100644 --- a/quantum/joystick.h +++ b/quantum/joystick.h @@ -1,3 +1,19 @@ +/* Copyright 2022 + * + * 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 @@ -54,7 +70,10 @@ typedef struct { extern joystick_config_t joystick_axes[JOYSTICK_AXES_COUNT]; -enum joystick_status { JS_INITIALIZED = 1, JS_UPDATED = 2 }; +enum joystick_status { + JS_INITIALIZED = 1, + JS_UPDATED, +}; typedef struct { uint8_t buttons[(JOYSTICK_BUTTON_COUNT - 1) / 8 + 1]; @@ -65,7 +84,14 @@ typedef struct { extern joystick_t joystick_status; +void joystick_task(void); void joystick_flush(void); void register_joystick_button(uint8_t button); void unregister_joystick_button(uint8_t button); + +int16_t joystick_read_axis(uint8_t axis); +void joystick_read_axes(void); +void joystick_set_axis(uint8_t axis, int16_t value); + +void host_joystick_send(joystick_t *joystick); diff --git a/quantum/keyboard.c b/quantum/keyboard.c index 3b5e9b02005..280532a5fdb 100644 --- a/quantum/keyboard.c +++ b/quantum/keyboard.c @@ -106,12 +106,7 @@ along with this program. If not, see . # include "split_util.h" #endif #ifdef BLUETOOTH_ENABLE -# include "outputselect.h" -# ifdef BLUETOOTH_BLUEFRUIT_LE -# include "bluefruit_le.h" -# elif BLUETOOTH_RN42 -# include "rn42.h" -# endif +# include "bluetooth.h" #endif #ifdef CAPS_WORD_ENABLE # include "caps_word.h" @@ -175,12 +170,11 @@ uint32_t get_matrix_scan_rate(void) { #endif #ifdef MATRIX_HAS_GHOST -extern const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS]; -static matrix_row_t get_real_keys(uint8_t row, matrix_row_t rowdata) { +static matrix_row_t get_real_keys(uint8_t row, matrix_row_t rowdata) { matrix_row_t out = 0; for (uint8_t col = 0; col < MATRIX_COLS; col++) { // read each key in the row data and check if the keymap defines it as a real key - if (pgm_read_byte(&keymaps[0][row][col]) && (rowdata & (1 << col))) { + if (keycode_at_keymap_location(0, row, col) && (rowdata & (1 << col))) { // this creates new row data, if a key is defined in the keymap, it will be set here out |= 1 << col; } @@ -412,8 +406,8 @@ void keyboard_init(void) { // init after split init pointing_device_init(); #endif -#if defined(BLUETOOTH_RN42) - rn42_init(); +#ifdef BLUETOOTH_ENABLE + bluetooth_init(); #endif #if defined(DEBUG_MATRIX_SCAN_RATE) && defined(CONSOLE_ENABLE) @@ -592,6 +586,10 @@ void keyboard_task(void) { quantum_task(); +#if defined(SPLIT_WATCHDOG_ENABLE) + split_watchdog_task(); +#endif + #if defined(RGBLIGHT_ENABLE) rgblight_task(); #endif @@ -675,8 +673,8 @@ void keyboard_task(void) { programmable_button_send(); #endif -#ifdef BLUETOOTH_BLUEFRUIT_LE - bluefruit_le_task(); +#ifdef BLUETOOTH_ENABLE + bluetooth_task(); #endif led_task(); diff --git a/quantum/keycode_legacy.h b/quantum/keycode_legacy.h index 0317a05534d..9169f3cb893 100644 --- a/quantum/keycode_legacy.h +++ b/quantum/keycode_legacy.h @@ -19,9 +19,6 @@ #define KC__MUTE KC_KB_MUTE #define KC__VOLUP KC_KB_VOLUME_UP #define KC__VOLDOWN KC_KB_VOLUME_DOWN -#define KC_LOCKING_CAPS KC_LOCKING_CAPS_LOCK -#define KC_LOCKING_NUM KC_LOCKING_NUM_LOCK -#define KC_LOCKING_SCROLL KC_LOCKING_SCROLL_LOCK #define KC_LANG1 KC_LANGUAGE_1 #define KC_LANG2 KC_LANGUAGE_2 #define KC_LANG3 KC_LANGUAGE_3 diff --git a/quantum/keymap.h b/quantum/keymap.h index 67e35c4e2f0..0225f533626 100644 --- a/quantum/keymap.h +++ b/quantum/keymap.h @@ -33,8 +33,6 @@ along with this program. If not, see . // translates key to keycode uint16_t keymap_key_to_keycode(uint8_t layer, keypos_t key); -extern const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS]; - #ifdef ENCODER_MAP_ENABLE // Ensure we have a forward declaration for the encoder map # include "encoder.h" diff --git a/quantum/keymap_common.c b/quantum/keymap_common.c index 1d5ef9b403e..50e581cd87e 100644 --- a/quantum/keymap_common.c +++ b/quantum/keymap_common.c @@ -65,11 +65,9 @@ action_t action_for_keycode(uint16_t keycode) { action.code = ACTION_USAGE_CONSUMER(KEYCODE2CONSUMER(keycode)); break; #endif -#ifdef MOUSEKEY_ENABLE case KC_MS_UP ... KC_MS_ACCEL2: action.code = ACTION_MOUSEKEY(keycode); break; -#endif case KC_TRANSPARENT: action.code = ACTION_TRANSPARENT; break; @@ -147,13 +145,13 @@ action_t action_for_keycode(uint16_t keycode) { // translates key to keycode __attribute__((weak)) uint16_t keymap_key_to_keycode(uint8_t layer, keypos_t key) { if (key.row < MATRIX_ROWS && key.col < MATRIX_COLS) { - return pgm_read_word(&keymaps[layer][key.row][key.col]); + return keycode_at_keymap_location(layer, key.row, key.col); } #ifdef ENCODER_MAP_ENABLE else if (key.row == KEYLOC_ENCODER_CW && key.col < NUM_ENCODERS) { - return pgm_read_word(&encoder_map[layer][key.col][0]); + return keycode_at_encodermap_location(layer, key.col, true); } else if (key.row == KEYLOC_ENCODER_CCW && key.col < NUM_ENCODERS) { - return pgm_read_word(&encoder_map[layer][key.col][1]); + return keycode_at_encodermap_location(layer, key.col, false); } #endif // ENCODER_MAP_ENABLE return KC_NO; diff --git a/quantum/keymap_extras/keymap_colemak.h b/quantum/keymap_extras/keymap_colemak.h index 6658cc1301c..e7b5c97ccb4 100644 --- a/quantum/keymap_extras/keymap_colemak.h +++ b/quantum/keymap_extras/keymap_colemak.h @@ -122,4 +122,4 @@ // Row 4 #define CM_LABK S(CM_COMM) // < #define CM_RABK S(CM_DOT) // > -#define CM_QUES S(CM_SLSH) // / +#define CM_QUES S(CM_SLSH) // ? diff --git a/quantum/keymap_introspection.c b/quantum/keymap_introspection.c index 179b5eb0376..93aab82fccc 100644 --- a/quantum/keymap_introspection.c +++ b/quantum/keymap_introspection.c @@ -19,6 +19,17 @@ uint8_t keymap_layer_count(void) { _Static_assert(NUM_KEYMAP_LAYERS <= MAX_LAYER, "Number of keymap layers exceeds maximum set by LAYER_STATE_(8|16|32)BIT"); +uint16_t keycode_at_keymap_location_raw(uint8_t layer_num, uint8_t row, uint8_t column) { + if (layer_num < NUM_KEYMAP_LAYERS && row < MATRIX_ROWS && column < MATRIX_COLS) { + return pgm_read_word(&keymaps[layer_num][row][column]); + } + return KC_NO; +} + +__attribute__((weak)) uint16_t keycode_at_keymap_location(uint8_t layer_num, uint8_t row, uint8_t column) { + return keycode_at_keymap_location_raw(layer_num, row, column); +} + #if defined(ENCODER_ENABLE) && defined(ENCODER_MAP_ENABLE) # define NUM_ENCODERMAP_LAYERS ((uint8_t)(sizeof(encoder_map) / ((NUM_ENCODERS) * (2) * sizeof(uint16_t)))) @@ -29,4 +40,15 @@ uint8_t encodermap_layer_count(void) { _Static_assert(NUM_KEYMAP_LAYERS == NUM_ENCODERMAP_LAYERS, "Number of encoder_map layers doesn't match the number of keymap layers"); +uint16_t keycode_at_encodermap_location_raw(uint8_t layer_num, uint8_t encoder_idx, bool clockwise) { + if (layer_num < NUM_ENCODERMAP_LAYERS && encoder_idx < NUM_ENCODERS) { + return pgm_read_word(&encoder_map[layer_num][encoder_idx][clockwise ? 0 : 1]); + } + return KC_NO; +} + +__attribute__((weak)) uint16_t keycode_at_encodermap_location(uint8_t layer_num, uint8_t encoder_idx, bool clockwise) { + return keycode_at_encodermap_location_raw(layer_num, encoder_idx, clockwise); +} + #endif // defined(ENCODER_ENABLE) && defined(ENCODER_MAP_ENABLE) diff --git a/quantum/keymap_introspection.h b/quantum/keymap_introspection.h index 23f6f2016fa..9de706a0219 100644 --- a/quantum/keymap_introspection.h +++ b/quantum/keymap_introspection.h @@ -7,9 +7,19 @@ // Get the number of layers defined in the keymap uint8_t keymap_layer_count(void); +// Get the keycode for the keymap location, stored in firmware rather than any other persistent storage +uint16_t keycode_at_keymap_location_raw(uint8_t layer_num, uint8_t row, uint8_t column); +// Get the keycode for the keymap location, potentially stored dynamically +uint16_t keycode_at_keymap_location(uint8_t layer_num, uint8_t row, uint8_t column); + #if defined(ENCODER_ENABLE) && defined(ENCODER_MAP_ENABLE) // Get the number of layers defined in the encoder map uint8_t encodermap_layer_count(void); +// Get the keycode for the encoder mapping location, stored in firmware rather than any other persistent storage +uint16_t keycode_at_encodermap_location_raw(uint8_t layer_num, uint8_t encoder_idx, bool clockwise); +// Get the keycode for the encoder mapping location, potentially stored dynamically +uint16_t keycode_at_encodermap_location(uint8_t layer_num, uint8_t encoder_idx, bool clockwise); + #endif // defined(ENCODER_ENABLE) && defined(ENCODER_MAP_ENABLE) diff --git a/quantum/led.c b/quantum/led.c index 444d38f7513..7db38bb88c9 100644 --- a/quantum/led.c +++ b/quantum/led.c @@ -92,32 +92,36 @@ __attribute__((weak)) bool led_update_user(led_t led_state) { __attribute__((weak)) bool led_update_kb(led_t led_state) { bool res = led_update_user(led_state); if (res) { -#if defined(LED_NUM_LOCK_PIN) || defined(LED_CAPS_LOCK_PIN) || defined(LED_SCROLL_LOCK_PIN) || defined(LED_COMPOSE_PIN) || defined(LED_KANA_PIN) -# if LED_PIN_ON_STATE == 0 - // invert the whole thing to avoid having to conditionally !led_state.x later - led_state.raw = ~led_state.raw; -# endif - -# ifdef LED_NUM_LOCK_PIN - writePin(LED_NUM_LOCK_PIN, led_state.num_lock); -# endif -# ifdef LED_CAPS_LOCK_PIN - writePin(LED_CAPS_LOCK_PIN, led_state.caps_lock); -# endif -# ifdef LED_SCROLL_LOCK_PIN - writePin(LED_SCROLL_LOCK_PIN, led_state.scroll_lock); -# endif -# ifdef LED_COMPOSE_PIN - writePin(LED_COMPOSE_PIN, led_state.compose); -# endif -# ifdef LED_KANA_PIN - writePin(LED_KANA_PIN, led_state.kana); -# endif -#endif + led_update_ports(led_state); } return res; } +/** \brief Write LED state to hardware + */ +__attribute__((weak)) void led_update_ports(led_t led_state) { +#if LED_PIN_ON_STATE == 0 + // invert the whole thing to avoid having to conditionally !led_state.x later + led_state.raw = ~led_state.raw; +#endif + +#ifdef LED_NUM_LOCK_PIN + writePin(LED_NUM_LOCK_PIN, led_state.num_lock); +#endif +#ifdef LED_CAPS_LOCK_PIN + writePin(LED_CAPS_LOCK_PIN, led_state.caps_lock); +#endif +#ifdef LED_SCROLL_LOCK_PIN + writePin(LED_SCROLL_LOCK_PIN, led_state.scroll_lock); +#endif +#ifdef LED_COMPOSE_PIN + writePin(LED_COMPOSE_PIN, led_state.compose); +#endif +#ifdef LED_KANA_PIN + writePin(LED_KANA_PIN, led_state.kana); +#endif +} + /** \brief Initialise any LED related hardware and/or state */ __attribute__((weak)) void led_init_ports(void) { diff --git a/quantum/led.h b/quantum/led.h index b8262cbd8e3..d12e519ea26 100644 --- a/quantum/led.h +++ b/quantum/led.h @@ -60,6 +60,7 @@ void led_set_user(uint8_t usb_led); void led_set_kb(uint8_t usb_led); bool led_update_user(led_t led_state); bool led_update_kb(led_t led_state); +void led_update_ports(led_t led_state); uint32_t last_led_activity_time(void); // Timestamp of the LED activity uint32_t last_led_activity_elapsed(void); // Number of milliseconds since the last LED activity diff --git a/quantum/led_matrix/led_matrix.c b/quantum/led_matrix/led_matrix.c index 5bff1544804..e215c2c2c37 100644 --- a/quantum/led_matrix/led_matrix.c +++ b/quantum/led_matrix/led_matrix.c @@ -54,12 +54,8 @@ const led_point_t k_led_matrix_center = LED_MATRIX_CENTER; // -----End led effect includes macros------- // ------------------------------------------ -#if defined(LED_DISABLE_AFTER_TIMEOUT) && !defined(LED_DISABLE_TIMEOUT) -# define LED_DISABLE_TIMEOUT (LED_DISABLE_AFTER_TIMEOUT * 1200UL) -#endif - -#ifndef LED_DISABLE_TIMEOUT -# define LED_DISABLE_TIMEOUT 0 +#ifndef LED_MATRIX_TIMEOUT +# define LED_MATRIX_TIMEOUT 0 #endif #if !defined(LED_MATRIX_MAXIMUM_BRIGHTNESS) || LED_MATRIX_MAXIMUM_BRIGHTNESS > UINT8_MAX @@ -103,9 +99,9 @@ static uint8_t led_last_enable = UINT8_MAX; static uint8_t led_last_effect = UINT8_MAX; static effect_params_t led_effect_params = {0, LED_FLAG_ALL, false}; static led_task_states led_task_state = SYNCING; -#if LED_DISABLE_TIMEOUT > 0 +#if LED_MATRIX_TIMEOUT > 0 static uint32_t led_anykey_timer; -#endif // LED_DISABLE_TIMEOUT > 0 +#endif // LED_MATRIX_TIMEOUT > 0 // double buffers static uint32_t led_timer_buffer; @@ -185,9 +181,9 @@ void process_led_matrix(uint8_t row, uint8_t col, bool pressed) { #ifndef LED_MATRIX_SPLIT if (!is_keyboard_master()) return; #endif -#if LED_DISABLE_TIMEOUT > 0 +#if LED_MATRIX_TIMEOUT > 0 led_anykey_timer = 0; -#endif // LED_DISABLE_TIMEOUT > 0 +#endif // LED_MATRIX_TIMEOUT > 0 #ifdef LED_MATRIX_KEYREACTIVE_ENABLED uint8_t led[LED_HITS_TO_REMEMBER]; @@ -237,13 +233,13 @@ static bool led_matrix_none(effect_params_t *params) { } static void led_task_timers(void) { -#if defined(LED_MATRIX_KEYREACTIVE_ENABLED) || LED_DISABLE_TIMEOUT > 0 +#if defined(LED_MATRIX_KEYREACTIVE_ENABLED) || LED_MATRIX_TIMEOUT > 0 uint32_t deltaTime = sync_timer_elapsed32(led_timer_buffer); -#endif // defined(LED_MATRIX_KEYREACTIVE_ENABLED) || LED_DISABLE_TIMEOUT > 0 +#endif // defined(LED_MATRIX_KEYREACTIVE_ENABLED) || LED_MATRIX_TIMEOUT > 0 led_timer_buffer = sync_timer_read32(); // Update double buffer timers -#if LED_DISABLE_TIMEOUT > 0 +#if LED_MATRIX_TIMEOUT > 0 if (led_anykey_timer < UINT32_MAX) { if (UINT32_MAX - deltaTime < led_anykey_timer) { led_anykey_timer = UINT32_MAX; @@ -251,7 +247,7 @@ static void led_task_timers(void) { led_anykey_timer += deltaTime; } } -#endif // LED_DISABLE_TIMEOUT > 0 +#endif // LED_MATRIX_TIMEOUT > 0 // Update double buffer last hit timers #ifdef LED_MATRIX_KEYREACTIVE_ENABLED @@ -357,9 +353,9 @@ void led_matrix_task(void) { // Ideally we would also stop sending zeros to the LED driver PWM buffers // while suspended and just do a software shutdown. This is a cheap hack for now. bool suspend_backlight = suspend_state || -#if LED_DISABLE_TIMEOUT > 0 - (led_anykey_timer > (uint32_t)LED_DISABLE_TIMEOUT) || -#endif // LED_DISABLE_TIMEOUT > 0 +#if LED_MATRIX_TIMEOUT > 0 + (led_anykey_timer > (uint32_t)LED_MATRIX_TIMEOUT) || +#endif // LED_MATRIX_TIMEOUT > 0 false; uint8_t effect = suspend_backlight || !led_matrix_eeconfig.enable ? 0 : led_matrix_eeconfig.mode; @@ -389,9 +385,13 @@ void led_matrix_indicators(void) { led_matrix_indicators_user(); } -__attribute__((weak)) void led_matrix_indicators_kb(void) {} +__attribute__((weak)) bool led_matrix_indicators_kb(void) { + return led_matrix_indicators_user(); +} -__attribute__((weak)) void led_matrix_indicators_user(void) {} +__attribute__((weak)) bool led_matrix_indicators_user(void) { + return true; +} void led_matrix_indicators_advanced(effect_params_t *params) { /* special handling is needed for "params->iter", since it's already been incremented. @@ -411,9 +411,13 @@ void led_matrix_indicators_advanced(effect_params_t *params) { led_matrix_indicators_advanced_user(min, max); } -__attribute__((weak)) void led_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) {} +__attribute__((weak)) bool led_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { + return led_matrix_indicators_advanced_user(led_min, led_max); +} -__attribute__((weak)) void led_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {} +__attribute__((weak)) bool led_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { + return true; +} void led_matrix_init(void) { led_matrix_driver.init(); diff --git a/quantum/led_matrix/led_matrix.h b/quantum/led_matrix/led_matrix.h index db4f223d5b7..c7d360f366d 100644 --- a/quantum/led_matrix/led_matrix.h +++ b/quantum/led_matrix/led_matrix.h @@ -120,12 +120,12 @@ void led_matrix_task(void); // This runs after another backlight effect and replaces // values already set void led_matrix_indicators(void); -void led_matrix_indicators_kb(void); -void led_matrix_indicators_user(void); +bool led_matrix_indicators_kb(void); +bool led_matrix_indicators_user(void); void led_matrix_indicators_advanced(effect_params_t *params); -void led_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max); -void led_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max); +bool led_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max); +bool led_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max); void led_matrix_init(void); diff --git a/quantum/pointing_device/pointing_device.c b/quantum/pointing_device/pointing_device.c index 6981f850d09..75bb5f81fc3 100644 --- a/quantum/pointing_device/pointing_device.c +++ b/quantum/pointing_device/pointing_device.c @@ -22,6 +22,7 @@ #ifdef MOUSEKEY_ENABLE # include "mousekey.h" #endif + #if (defined(POINTING_DEVICE_ROTATION_90) + defined(POINTING_DEVICE_ROTATION_180) + defined(POINTING_DEVICE_ROTATION_270)) > 1 # error More than one rotation selected. This is not supported. #endif @@ -479,3 +480,10 @@ __attribute__((weak)) report_mouse_t pointing_device_task_combined_user(report_m return pointing_device_combine_reports(left_report, right_report); } #endif + +__attribute__((weak)) void pointing_device_keycode_handler(uint16_t keycode, bool pressed) { + if IS_MOUSEKEY_BUTTON (keycode) { + local_mouse_report.buttons = pointing_device_handle_buttons(local_mouse_report.buttons, pressed, keycode - KC_MS_BTN1); + pointing_device_send(); + } +} diff --git a/quantum/pointing_device/pointing_device.h b/quantum/pointing_device/pointing_device.h index 27a3f95e32a..d430e6cfa4b 100644 --- a/quantum/pointing_device/pointing_device.h +++ b/quantum/pointing_device/pointing_device.h @@ -110,6 +110,7 @@ report_mouse_t pointing_device_task_kb(report_mouse_t mouse_report); report_mouse_t pointing_device_task_user(report_mouse_t mouse_report); uint8_t pointing_device_handle_buttons(uint8_t buttons, bool pressed, pointing_device_buttons_t button); report_mouse_t pointing_device_adjust_by_defines(report_mouse_t mouse_report); +void pointing_device_keycode_handler(uint16_t keycode, bool pressed); #if defined(SPLIT_POINTING_ENABLE) void pointing_device_set_shared_report(report_mouse_t report); diff --git a/quantum/process_keycode/process_auto_shift.c b/quantum/process_keycode/process_auto_shift.c index 3ff188ba7eb..644ad2cbafe 100644 --- a/quantum/process_keycode/process_auto_shift.c +++ b/quantum/process_keycode/process_auto_shift.c @@ -17,7 +17,6 @@ #ifdef AUTO_SHIFT_ENABLE # include -# include # include "process_auto_shift.h" # ifndef AUTO_SHIFT_DISABLED_AT_STARTUP @@ -331,11 +330,12 @@ void autoshift_disable(void) { # ifndef AUTO_SHIFT_NO_SETUP void autoshift_timer_report(void) { # ifdef SEND_STRING_ENABLE - char display[8]; - - snprintf(display, 8, "\n%d\n", autoshift_timeout); - - send_string((const char *)display); + const char *autoshift_timeout_str = get_u16_str(autoshift_timeout, ' '); + // Skip padding spaces + while (*autoshift_timeout_str == ' ') { + autoshift_timeout_str++; + } + send_string(autoshift_timeout_str); # endif } # endif diff --git a/quantum/process_keycode/process_dynamic_macro.c b/quantum/process_keycode/process_dynamic_macro.c index a7555fdd404..41207092a99 100644 --- a/quantum/process_keycode/process_dynamic_macro.c +++ b/quantum/process_keycode/process_dynamic_macro.c @@ -45,6 +45,10 @@ __attribute__((weak)) void dynamic_macro_record_end_user(int8_t direction) { dynamic_macro_led_blink(); } +__attribute__((weak)) bool dynamic_macro_valid_key_user(uint16_t keycode, keyrecord_t *record) { + return true; +} + /* Convenience macros used for retrieving the debug info. All of them * need a `direction` variable accessible at the call site. */ @@ -252,14 +256,16 @@ bool process_dynamic_macro(uint16_t keycode, keyrecord_t *record) { return false; #endif default: - /* Store the key in the macro buffer and process it normally. */ - switch (macro_id) { - case 1: - dynamic_macro_record_key(macro_buffer, ¯o_pointer, r_macro_end, +1, record); - break; - case 2: - dynamic_macro_record_key(r_macro_buffer, ¯o_pointer, macro_end, -1, record); - break; + if (dynamic_macro_valid_key_user(keycode, record)) { + /* Store the key in the macro buffer and process it normally. */ + switch (macro_id) { + case 1: + dynamic_macro_record_key(macro_buffer, ¯o_pointer, r_macro_end, +1, record); + break; + case 2: + dynamic_macro_record_key(r_macro_buffer, ¯o_pointer, macro_end, -1, record); + break; + } } return true; break; diff --git a/quantum/process_keycode/process_joystick.c b/quantum/process_keycode/process_joystick.c index e867606074f..af69d3aa05b 100644 --- a/quantum/process_keycode/process_joystick.c +++ b/quantum/process_keycode/process_joystick.c @@ -1,10 +1,21 @@ -#include "joystick.h" +/* Copyright 2022 + * + * 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 "process_joystick.h" - -#include "analog.h" - -#include -#include +#include "joystick.h" bool process_joystick(uint16_t keycode, keyrecord_t *record) { switch (keycode) { @@ -18,132 +29,3 @@ bool process_joystick(uint16_t keycode, keyrecord_t *record) { } return true; } - -__attribute__((weak)) void joystick_task(void) { - if (process_joystick_analogread()) { - joystick_flush(); - } -} - -uint16_t savePinState(pin_t pin) { -#ifdef __AVR__ - uint8_t pinNumber = pin & 0xF; - return ((PORTx_ADDRESS(pin) >> pinNumber) & 0x1) << 1 | ((DDRx_ADDRESS(pin) >> pinNumber) & 0x1); -#elif defined(PROTOCOL_CHIBIOS) - /* - The pin configuration is backed up in the following format : - bit 15 9 8 7 6 5 4 3 2 1 0 - |unused|ODR|IDR|PUPDR|OSPEEDR|OTYPER|MODER| - */ - return ((PAL_PORT(pin)->MODER >> (2 * PAL_PAD(pin))) & 0x3) | (((PAL_PORT(pin)->OTYPER >> (1 * PAL_PAD(pin))) & 0x1) << 2) | (((PAL_PORT(pin)->OSPEEDR >> (2 * PAL_PAD(pin))) & 0x3) << 3) | (((PAL_PORT(pin)->PUPDR >> (2 * PAL_PAD(pin))) & 0x3) << 5) | (((PAL_PORT(pin)->IDR >> (1 * PAL_PAD(pin))) & 0x1) << 7) | (((PAL_PORT(pin)->ODR >> (1 * PAL_PAD(pin))) & 0x1) << 8); -#else - return 0; -#endif -} - -void restorePinState(pin_t pin, uint16_t restoreState) { -#if defined(PROTOCOL_LUFA) - uint8_t pinNumber = pin & 0xF; - PORTx_ADDRESS(pin) = (PORTx_ADDRESS(pin) & ~_BV(pinNumber)) | (((restoreState >> 1) & 0x1) << pinNumber); - DDRx_ADDRESS(pin) = (DDRx_ADDRESS(pin) & ~_BV(pinNumber)) | ((restoreState & 0x1) << pinNumber); -#elif defined(PROTOCOL_CHIBIOS) - PAL_PORT(pin)->MODER = (PAL_PORT(pin)->MODER & ~(0x3 << (2 * PAL_PAD(pin)))) | (restoreState & 0x3) << (2 * PAL_PAD(pin)); - PAL_PORT(pin)->OTYPER = (PAL_PORT(pin)->OTYPER & ~(0x1 << (1 * PAL_PAD(pin)))) | ((restoreState >> 2) & 0x1) << (1 * PAL_PAD(pin)); - PAL_PORT(pin)->OSPEEDR = (PAL_PORT(pin)->OSPEEDR & ~(0x3 << (2 * PAL_PAD(pin)))) | ((restoreState >> 3) & 0x3) << (2 * PAL_PAD(pin)); - PAL_PORT(pin)->PUPDR = (PAL_PORT(pin)->PUPDR & ~(0x3 << (2 * PAL_PAD(pin)))) | ((restoreState >> 5) & 0x3) << (2 * PAL_PAD(pin)); - PAL_PORT(pin)->IDR = (PAL_PORT(pin)->IDR & ~(0x1 << (1 * PAL_PAD(pin)))) | ((restoreState >> 7) & 0x1) << (1 * PAL_PAD(pin)); - PAL_PORT(pin)->ODR = (PAL_PORT(pin)->ODR & ~(0x1 << (1 * PAL_PAD(pin)))) | ((restoreState >> 8) & 0x1) << (1 * PAL_PAD(pin)); -#else - return; -#endif -} - -__attribute__((weak)) bool process_joystick_analogread() { - return process_joystick_analogread_quantum(); -} - -bool process_joystick_analogread_quantum() { -#if JOYSTICK_AXES_COUNT > 0 - for (int axis_index = 0; axis_index < JOYSTICK_AXES_COUNT; ++axis_index) { - if (joystick_axes[axis_index].input_pin == JS_VIRTUAL_AXIS) { - continue; - } - - // save previous input pin status as well - uint16_t inputSavedState = savePinState(joystick_axes[axis_index].input_pin); - - // disable pull-up resistor - writePinLow(joystick_axes[axis_index].input_pin); - - // if pin was a pull-up input, we need to uncharge it by turning it low - // before making it a low input - setPinOutput(joystick_axes[axis_index].input_pin); - - wait_us(10); - - // save and apply output pin status - uint16_t outputSavedState = 0; - if (joystick_axes[axis_index].output_pin != JS_VIRTUAL_AXIS) { - // save previous output pin status - outputSavedState = savePinState(joystick_axes[axis_index].output_pin); - - setPinOutput(joystick_axes[axis_index].output_pin); - writePinHigh(joystick_axes[axis_index].output_pin); - } - - uint16_t groundSavedState = 0; - if (joystick_axes[axis_index].ground_pin != JS_VIRTUAL_AXIS) { - // save previous output pin status - groundSavedState = savePinState(joystick_axes[axis_index].ground_pin); - - setPinOutput(joystick_axes[axis_index].ground_pin); - writePinLow(joystick_axes[axis_index].ground_pin); - } - - wait_us(10); - - setPinInput(joystick_axes[axis_index].input_pin); - - wait_us(10); - -# if defined(ANALOG_JOYSTICK_ENABLE) && (defined(__AVR__) || defined(PROTOCOL_CHIBIOS)) - int16_t axis_val = analogReadPin(joystick_axes[axis_index].input_pin); -# else - // default to resting position - int16_t axis_val = joystick_axes[axis_index].mid_digit; -# endif - - // test the converted value against the lower range - int32_t ref = joystick_axes[axis_index].mid_digit; - int32_t range = joystick_axes[axis_index].min_digit; - int32_t ranged_val = ((axis_val - ref) * -JOYSTICK_RESOLUTION) / (range - ref); - - if (ranged_val > 0) { - // the value is in the higher range - range = joystick_axes[axis_index].max_digit; - ranged_val = ((axis_val - ref) * JOYSTICK_RESOLUTION) / (range - ref); - } - - // clamp the result in the valid range - ranged_val = ranged_val < -JOYSTICK_RESOLUTION ? -JOYSTICK_RESOLUTION : ranged_val; - ranged_val = ranged_val > JOYSTICK_RESOLUTION ? JOYSTICK_RESOLUTION : ranged_val; - - if (ranged_val != joystick_status.axes[axis_index]) { - joystick_status.axes[axis_index] = ranged_val; - joystick_status.status |= JS_UPDATED; - } - - // restore output, ground and input status - if (joystick_axes[axis_index].output_pin != JS_VIRTUAL_AXIS) { - restorePinState(joystick_axes[axis_index].output_pin, outputSavedState); - } - if (joystick_axes[axis_index].ground_pin != JS_VIRTUAL_AXIS) { - restorePinState(joystick_axes[axis_index].ground_pin, groundSavedState); - } - - restorePinState(joystick_axes[axis_index].input_pin, inputSavedState); - } - -#endif - return true; -} diff --git a/quantum/process_keycode/process_joystick.h b/quantum/process_keycode/process_joystick.h index 7a8b82913aa..1fb8757708d 100644 --- a/quantum/process_keycode/process_joystick.h +++ b/quantum/process_keycode/process_joystick.h @@ -1,11 +1,22 @@ +/* Copyright 2022 + * + * 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" bool process_joystick(uint16_t keycode, keyrecord_t *record); - -void joystick_task(void); - -bool process_joystick_analogread(void); -bool process_joystick_analogread_quantum(void); diff --git a/quantum/process_keycode/process_tap_dance.c b/quantum/process_keycode/process_tap_dance.c index 3270a1b0008..6e8e596673b 100644 --- a/quantum/process_keycode/process_tap_dance.c +++ b/quantum/process_keycode/process_tap_dance.c @@ -115,12 +115,12 @@ static inline void process_tap_dance_action_on_dance_finished(qk_tap_dance_actio } } -void preprocess_tap_dance(uint16_t keycode, keyrecord_t *record) { +bool preprocess_tap_dance(uint16_t keycode, keyrecord_t *record) { qk_tap_dance_action_t *action; - if (!record->event.pressed) return; + if (!record->event.pressed) return false; - if (!active_td || keycode == active_td) return; + if (!active_td || keycode == active_td) return false; action = &tap_dance_actions[TD_INDEX(active_td)]; action->state.interrupted = true; @@ -130,6 +130,12 @@ void preprocess_tap_dance(uint16_t keycode, keyrecord_t *record) { // Tap dance actions can leave some weak mods active (e.g., if the tap dance is mapped to a keycode with // modifiers), but these weak mods should not affect the keypress which interrupted the tap dance. clear_weak_mods(); + + // Signal that a tap dance has been finished due to being interrupted, + // therefore the keymap lookup for the currently processed event needs to + // be repeated with the current layer state that might have been updated by + // the finished tap dance. + return true; } bool process_tap_dance(uint16_t keycode, keyrecord_t *record) { diff --git a/quantum/process_keycode/process_tap_dance.h b/quantum/process_keycode/process_tap_dance.h index d97900d96b3..d6d6c136dc8 100644 --- a/quantum/process_keycode/process_tap_dance.h +++ b/quantum/process_keycode/process_tap_dance.h @@ -81,7 +81,7 @@ void reset_tap_dance(qk_tap_dance_state_t *state); /* To be used internally */ -void preprocess_tap_dance(uint16_t keycode, keyrecord_t *record); +bool preprocess_tap_dance(uint16_t keycode, keyrecord_t *record); bool process_tap_dance(uint16_t keycode, keyrecord_t *record); void tap_dance_task(void); diff --git a/quantum/quantum.c b/quantum/quantum.c index ff36e14775c..5b5364c8f11 100644 --- a/quantum/quantum.c +++ b/quantum/quantum.c @@ -251,7 +251,11 @@ bool process_record_quantum(keyrecord_t *record) { #endif #ifdef TAP_DANCE_ENABLE - preprocess_tap_dance(keycode, record); + if (preprocess_tap_dance(keycode, record)) { + // The tap dance might have updated the layer state, therefore the + // result of the keycode lookup might change. + keycode = get_record_keycode(record, true); + } #endif if (!( diff --git a/quantum/rgb_matrix/rgb_matrix.c b/quantum/rgb_matrix/rgb_matrix.c index ae61e755352..539ca0e1001 100644 --- a/quantum/rgb_matrix/rgb_matrix.c +++ b/quantum/rgb_matrix/rgb_matrix.c @@ -56,12 +56,8 @@ __attribute__((weak)) RGB rgb_matrix_hsv_to_rgb(HSV hsv) { // -----End rgb effect includes macros------- // ------------------------------------------ -#if defined(RGB_DISABLE_AFTER_TIMEOUT) && !defined(RGB_DISABLE_TIMEOUT) -# define RGB_DISABLE_TIMEOUT (RGB_DISABLE_AFTER_TIMEOUT * 1200UL) -#endif - -#ifndef RGB_DISABLE_TIMEOUT -# define RGB_DISABLE_TIMEOUT 0 +#ifndef RGB_MATRIX_TIMEOUT +# define RGB_MATRIX_TIMEOUT 0 #endif #if !defined(RGB_MATRIX_MAXIMUM_BRIGHTNESS) || RGB_MATRIX_MAXIMUM_BRIGHTNESS > UINT8_MAX @@ -126,9 +122,9 @@ static uint8_t rgb_last_enable = UINT8_MAX; static uint8_t rgb_last_effect = UINT8_MAX; static effect_params_t rgb_effect_params = {0, LED_FLAG_ALL, false}; static rgb_task_states rgb_task_state = SYNCING; -#if RGB_DISABLE_TIMEOUT > 0 +#if RGB_MATRIX_TIMEOUT > 0 static uint32_t rgb_anykey_timer; -#endif // RGB_DISABLE_TIMEOUT > 0 +#endif // RGB_MATRIX_TIMEOUT > 0 // double buffers static uint32_t rgb_timer_buffer; @@ -213,9 +209,9 @@ void process_rgb_matrix(uint8_t row, uint8_t col, bool pressed) { #ifndef RGB_MATRIX_SPLIT if (!is_keyboard_master()) return; #endif -#if RGB_DISABLE_TIMEOUT > 0 +#if RGB_MATRIX_TIMEOUT > 0 rgb_anykey_timer = 0; -#endif // RGB_DISABLE_TIMEOUT > 0 +#endif // RGB_MATRIX_TIMEOUT > 0 #ifdef RGB_MATRIX_KEYREACTIVE_ENABLED uint8_t led[LED_HITS_TO_REMEMBER]; @@ -296,17 +292,17 @@ static bool rgb_matrix_none(effect_params_t *params) { } static void rgb_task_timers(void) { -#if defined(RGB_MATRIX_KEYREACTIVE_ENABLED) || RGB_DISABLE_TIMEOUT > 0 +#if defined(RGB_MATRIX_KEYREACTIVE_ENABLED) || RGB_MATRIX_TIMEOUT > 0 uint32_t deltaTime = sync_timer_elapsed32(rgb_timer_buffer); -#endif // defined(RGB_MATRIX_KEYREACTIVE_ENABLED) || RGB_DISABLE_TIMEOUT > 0 +#endif // defined(RGB_MATRIX_KEYREACTIVE_ENABLED) || RGB_MATRIX_TIMEOUT > 0 rgb_timer_buffer = sync_timer_read32(); // Update double buffer timers -#if RGB_DISABLE_TIMEOUT > 0 +#if RGB_MATRIX_TIMEOUT > 0 if (rgb_anykey_timer + deltaTime <= UINT32_MAX) { rgb_anykey_timer += deltaTime; } -#endif // RGB_DISABLE_TIMEOUT > 0 +#endif // RGB_MATRIX_TIMEOUT > 0 // Update double buffer last hit timers #ifdef RGB_MATRIX_KEYREACTIVE_ENABLED @@ -419,9 +415,9 @@ void rgb_matrix_task(void) { // Ideally we would also stop sending zeros to the LED driver PWM buffers // while suspended and just do a software shutdown. This is a cheap hack for now. bool suspend_backlight = suspend_state || -#if RGB_DISABLE_TIMEOUT > 0 - (rgb_anykey_timer > (uint32_t)RGB_DISABLE_TIMEOUT) || -#endif // RGB_DISABLE_TIMEOUT > 0 +#if RGB_MATRIX_TIMEOUT > 0 + (rgb_anykey_timer > (uint32_t)RGB_MATRIX_TIMEOUT) || +#endif // RGB_MATRIX_TIMEOUT > 0 false; uint8_t effect = suspend_backlight || !rgb_matrix_config.enable ? 0 : rgb_matrix_config.mode; @@ -448,12 +444,15 @@ void rgb_matrix_task(void) { void rgb_matrix_indicators(void) { rgb_matrix_indicators_kb(); - rgb_matrix_indicators_user(); } -__attribute__((weak)) void rgb_matrix_indicators_kb(void) {} +__attribute__((weak)) bool rgb_matrix_indicators_kb(void) { + return rgb_matrix_indicators_user(); +} -__attribute__((weak)) void rgb_matrix_indicators_user(void) {} +__attribute__((weak)) bool rgb_matrix_indicators_user(void) { + return true; +} void rgb_matrix_indicators_advanced(effect_params_t *params) { /* special handling is needed for "params->iter", since it's already been incremented. @@ -470,12 +469,15 @@ void rgb_matrix_indicators_advanced(effect_params_t *params) { uint8_t max = RGB_MATRIX_LED_COUNT; #endif rgb_matrix_indicators_advanced_kb(min, max); - rgb_matrix_indicators_advanced_user(min, max); } -__attribute__((weak)) void rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) {} +__attribute__((weak)) bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { + return rgb_matrix_indicators_advanced_user(led_min, led_max); +} -__attribute__((weak)) void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {} +__attribute__((weak)) bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { + return true; +} void rgb_matrix_init(void) { rgb_matrix_driver.init(); diff --git a/quantum/rgb_matrix/rgb_matrix.h b/quantum/rgb_matrix/rgb_matrix.h index 0b35e98f45a..1cd054abc4e 100644 --- a/quantum/rgb_matrix/rgb_matrix.h +++ b/quantum/rgb_matrix/rgb_matrix.h @@ -129,12 +129,12 @@ void rgb_matrix_task(void); // This runs after another backlight effect and replaces // colors already set void rgb_matrix_indicators(void); -void rgb_matrix_indicators_kb(void); -void rgb_matrix_indicators_user(void); +bool rgb_matrix_indicators_kb(void); +bool rgb_matrix_indicators_user(void); void rgb_matrix_indicators_advanced(effect_params_t *params); -void rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max); -void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max); +bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max); +bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max); void rgb_matrix_init(void); diff --git a/quantum/rgblight/rgblight.c b/quantum/rgblight/rgblight.c index 73b352cea8d..37cd7a66ab1 100644 --- a/quantum/rgblight/rgblight.c +++ b/quantum/rgblight/rgblight.c @@ -523,10 +523,19 @@ void rgblight_sethsv_noeeprom_old(uint8_t hue, uint8_t sat, uint8_t val) { void rgblight_sethsv_eeprom_helper(uint8_t hue, uint8_t sat, uint8_t val, bool write_to_eeprom) { if (rgblight_config.enable) { +#ifdef RGBLIGHT_SPLIT + if (rgblight_config.hue != hue || rgblight_config.sat != sat || rgblight_config.val != val) { + RGBLIGHT_SPLIT_SET_CHANGE_HSVS; + } +#endif rgblight_status.base_mode = mode_base_table[rgblight_config.mode]; if (rgblight_config.mode == RGBLIGHT_MODE_STATIC_LIGHT) { // same static color LED_TYPE tmp_led; +#ifdef RGBLIGHT_LAYERS_RETAIN_VAL + // needed for rgblight_layers_write() to get the new val, since it reads rgblight_config.val + rgblight_config.val = val; +#endif sethsv(hue, sat, val, &tmp_led); rgblight_setrgb(tmp_led.r, tmp_led.g, tmp_led.b); } else { @@ -568,15 +577,14 @@ void rgblight_sethsv_eeprom_helper(uint8_t hue, uint8_t sat, uint8_t val, bool w dprintf("rgblight rainbow set hsv: %d,%d,%d,%u\n", i, _hue, direction, range); sethsv(_hue, sat, val, (LED_TYPE *)&led[i + rgblight_ranges.effect_start_pos]); } +# ifdef RGBLIGHT_LAYERS_RETAIN_VAL + // needed for rgblight_layers_write() to get the new val, since it reads rgblight_config.val + rgblight_config.val = val; +# endif rgblight_set(); } #endif } -#ifdef RGBLIGHT_SPLIT - if (rgblight_config.hue != hue || rgblight_config.sat != sat || rgblight_config.val != val) { - RGBLIGHT_SPLIT_SET_CHANGE_HSVS; - } -#endif rgblight_config.hue = hue; rgblight_config.sat = sat; rgblight_config.val = val; diff --git a/quantum/split_common/split_util.c b/quantum/split_common/split_util.c index 0b3338ed6fb..9f57c7b9fc8 100644 --- a/quantum/split_common/split_util.c +++ b/quantum/split_common/split_util.c @@ -74,6 +74,46 @@ static inline bool usbIsActive(void) { } #endif +#if defined(SPLIT_WATCHDOG_ENABLE) +# if !defined(SPLIT_WATCHDOG_TIMEOUT) +# if defined(SPLIT_USB_TIMEOUT) +# define SPLIT_WATCHDOG_TIMEOUT (SPLIT_USB_TIMEOUT + 100) +# else +# define SPLIT_WATCHDOG_TIMEOUT 3000 +# endif +# endif +# if defined(SPLIT_USB_DETECT) +_Static_assert(SPLIT_USB_TIMEOUT < SPLIT_WATCHDOG_TIMEOUT, "SPLIT_WATCHDOG_TIMEOUT should not be below SPLIT_USB_TIMEOUT."); +# endif +_Static_assert(SPLIT_MAX_CONNECTION_ERRORS > 0, "SPLIT_WATCHDOG_ENABLE requires SPLIT_MAX_CONNECTION_ERRORS be above 0 for a functioning disconnection check."); + +static uint32_t split_watchdog_started = 0; +static bool split_watchdog_done = false; + +void split_watchdog_init(void) { + split_watchdog_started = timer_read32(); +} + +void split_watchdog_update(bool done) { + split_watchdog_done = done; +} + +bool split_watchdog_check(void) { + if (!is_transport_connected()) { + split_watchdog_done = false; + } + return split_watchdog_done; +} + +void split_watchdog_task(void) { + if (!split_watchdog_done && !is_keyboard_master()) { + if (timer_elapsed32(split_watchdog_started) > SPLIT_WATCHDOG_TIMEOUT) { + mcu_reset(); + } + } +} +#endif // defined(SPLIT_WATCHDOG_ENABLE) + #ifdef SPLIT_HAND_MATRIX_GRID void matrix_io_delay(void); @@ -179,6 +219,9 @@ void split_pre_init(void) { void split_post_init(void) { if (!is_keyboard_master()) { transport_slave_init(); +#if defined(SPLIT_WATCHDOG_ENABLE) + split_watchdog_init(); +#endif } } diff --git a/quantum/split_common/split_util.h b/quantum/split_common/split_util.h index c7eabea2332..5c9a260a14a 100644 --- a/quantum/split_common/split_util.h +++ b/quantum/split_common/split_util.h @@ -14,3 +14,7 @@ void split_post_init(void); bool transport_master_if_connected(matrix_row_t master_matrix[], matrix_row_t slave_matrix[]); bool is_transport_connected(void); + +void split_watchdog_update(bool done); +void split_watchdog_task(void); +bool split_watchdog_check(void); \ No newline at end of file diff --git a/quantum/split_common/transaction_id_define.h b/quantum/split_common/transaction_id_define.h index 761a8884f4e..8c199481075 100644 --- a/quantum/split_common/transaction_id_define.h +++ b/quantum/split_common/transaction_id_define.h @@ -84,6 +84,10 @@ enum serial_transaction_id { PUT_POINTING_CPI, #endif // defined(POINTING_DEVICE_ENABLE) && defined(SPLIT_POINTING_ENABLE) +#if defined(SPLIT_WATCHDOG_ENABLE) + PUT_WATCHDOG, +#endif // defined(SPLIT_WATCHDOG_ENABLE) + #if defined(SPLIT_TRANSACTION_IDS_KB) || defined(SPLIT_TRANSACTION_IDS_USER) PUT_RPC_INFO, PUT_RPC_REQ_DATA, diff --git a/quantum/split_common/transactions.c b/quantum/split_common/transactions.c index 719068908f7..527b2f4caf6 100644 --- a/quantum/split_common/transactions.c +++ b/quantum/split_common/transactions.c @@ -76,7 +76,26 @@ static bool transaction_handler_master(matrix_row_t master_matrix[], matrix_row_ if (!transaction_handler_master(master_matrix, slave_matrix, #prefix, &prefix##_handlers_master)) return false; \ } while (0) +/** + * @brief Constructs a transaction handler that doesn't acquire a lock to the + * split shared memory. Therefore the locking and unlocking has to be done + * manually inside the handler. Use this macro only if the handler is + * non-deterministic in runtime and thus needs a manual lock unlock + * implementation to hold the lock for the shortest possible time. + */ #define TRANSACTION_HANDLER_SLAVE(prefix) \ + do { \ + prefix##_handlers_slave(master_matrix, slave_matrix); \ + } while (0) + +/** + * @brief Constructs a transaction handler that automatically acquires a lock to + * safely access the split shared memory and releases the lock again after + * processing the handler. Use this macro if the handler is fast and + * deterministic in runtime and thus holds the lock only for a very short time. + * If not fallback to manually locking and unlocking inside the handler. + */ +#define TRANSACTION_HANDLER_SLAVE_AUTOLOCK(prefix) \ do { \ split_shared_memory_lock(); \ prefix##_handlers_slave(master_matrix, slave_matrix); \ @@ -139,7 +158,7 @@ static void slave_matrix_handlers_slave(matrix_row_t master_matrix[], matrix_row // clang-format off #define TRANSACTIONS_SLAVE_MATRIX_MASTER() TRANSACTION_HANDLER_MASTER(slave_matrix) -#define TRANSACTIONS_SLAVE_MATRIX_SLAVE() TRANSACTION_HANDLER_SLAVE(slave_matrix) +#define TRANSACTIONS_SLAVE_MATRIX_SLAVE() TRANSACTION_HANDLER_SLAVE_AUTOLOCK(slave_matrix) #define TRANSACTIONS_SLAVE_MATRIX_REGISTRATIONS \ [GET_SLAVE_MATRIX_CHECKSUM] = trans_target2initiator_initializer(smatrix.checksum), \ [GET_SLAVE_MATRIX_DATA] = trans_target2initiator_initializer(smatrix.matrix), @@ -161,7 +180,7 @@ static void master_matrix_handlers_slave(matrix_row_t master_matrix[], matrix_ro } # define TRANSACTIONS_MASTER_MATRIX_MASTER() TRANSACTION_HANDLER_MASTER(master_matrix) -# define TRANSACTIONS_MASTER_MATRIX_SLAVE() TRANSACTION_HANDLER_SLAVE(master_matrix) +# define TRANSACTIONS_MASTER_MATRIX_SLAVE() TRANSACTION_HANDLER_SLAVE_AUTOLOCK(master_matrix) # define TRANSACTIONS_MASTER_MATRIX_REGISTRATIONS [PUT_MASTER_MATRIX] = trans_initiator2target_initializer(mmatrix.matrix), #else // SPLIT_TRANSPORT_MIRROR @@ -197,7 +216,7 @@ static void encoder_handlers_slave(matrix_row_t master_matrix[], matrix_row_t sl // clang-format off # define TRANSACTIONS_ENCODERS_MASTER() TRANSACTION_HANDLER_MASTER(encoder) -# define TRANSACTIONS_ENCODERS_SLAVE() TRANSACTION_HANDLER_SLAVE(encoder) +# define TRANSACTIONS_ENCODERS_SLAVE() TRANSACTION_HANDLER_SLAVE_AUTOLOCK(encoder) # define TRANSACTIONS_ENCODERS_REGISTRATIONS \ [GET_ENCODERS_CHECKSUM] = trans_target2initiator_initializer(encoders.checksum), \ [GET_ENCODERS_DATA] = trans_target2initiator_initializer(encoders.state), @@ -239,7 +258,7 @@ static void sync_timer_handlers_slave(matrix_row_t master_matrix[], matrix_row_t } # define TRANSACTIONS_SYNC_TIMER_MASTER() TRANSACTION_HANDLER_MASTER(sync_timer) -# define TRANSACTIONS_SYNC_TIMER_SLAVE() TRANSACTION_HANDLER_SLAVE(sync_timer) +# define TRANSACTIONS_SYNC_TIMER_SLAVE() TRANSACTION_HANDLER_SLAVE_AUTOLOCK(sync_timer) # define TRANSACTIONS_SYNC_TIMER_REGISTRATIONS [PUT_SYNC_TIMER] = trans_initiator2target_initializer(sync_timer), #else // DISABLE_SYNC_TIMER @@ -273,7 +292,7 @@ static void layer_state_handlers_slave(matrix_row_t master_matrix[], matrix_row_ // clang-format off # define TRANSACTIONS_LAYER_STATE_MASTER() TRANSACTION_HANDLER_MASTER(layer_state) -# define TRANSACTIONS_LAYER_STATE_SLAVE() TRANSACTION_HANDLER_SLAVE(layer_state) +# define TRANSACTIONS_LAYER_STATE_SLAVE() TRANSACTION_HANDLER_SLAVE_AUTOLOCK(layer_state) # define TRANSACTIONS_LAYER_STATE_REGISTRATIONS \ [PUT_LAYER_STATE] = trans_initiator2target_initializer(layers.layer_state), \ [PUT_DEFAULT_LAYER_STATE] = trans_initiator2target_initializer(layers.default_layer_state), @@ -304,7 +323,7 @@ static void led_state_handlers_slave(matrix_row_t master_matrix[], matrix_row_t } # define TRANSACTIONS_LED_STATE_MASTER() TRANSACTION_HANDLER_MASTER(led_state) -# define TRANSACTIONS_LED_STATE_SLAVE() TRANSACTION_HANDLER_SLAVE(led_state) +# define TRANSACTIONS_LED_STATE_SLAVE() TRANSACTION_HANDLER_SLAVE_AUTOLOCK(led_state) # define TRANSACTIONS_LED_STATE_REGISTRATIONS [PUT_LED_STATE] = trans_initiator2target_initializer(led_state), #else // SPLIT_LED_STATE_ENABLE @@ -353,10 +372,15 @@ static bool mods_handlers_master(matrix_row_t master_matrix[], matrix_row_t slav } static void mods_handlers_slave(matrix_row_t master_matrix[], matrix_row_t slave_matrix[]) { - set_mods(split_shmem->mods.real_mods); - set_weak_mods(split_shmem->mods.weak_mods); + split_shared_memory_lock(); + split_mods_sync_t mods; + memcpy(&mods, &split_shmem->mods, sizeof(split_mods_sync_t)); + split_shared_memory_unlock(); + + set_mods(mods.real_mods); + set_weak_mods(mods.weak_mods); # ifndef NO_ACTION_ONESHOT - set_oneshot_mods(split_shmem->mods.oneshot_mods); + set_oneshot_mods(mods.oneshot_mods); # endif } @@ -384,7 +408,11 @@ static bool backlight_handlers_master(matrix_row_t master_matrix[], matrix_row_t } static void backlight_handlers_slave(matrix_row_t master_matrix[], matrix_row_t slave_matrix[]) { - backlight_set(split_shmem->backlight_level); + split_shared_memory_lock(); + uint8_t backlight_level = split_shmem->backlight_level; + split_shared_memory_unlock(); + + backlight_set(backlight_level); } # define TRANSACTIONS_BACKLIGHT_MASTER() TRANSACTION_HANDLER_MASTER(backlight) @@ -417,10 +445,15 @@ static bool rgblight_handlers_master(matrix_row_t master_matrix[], matrix_row_t } static void rgblight_handlers_slave(matrix_row_t master_matrix[], matrix_row_t slave_matrix[]) { + split_shared_memory_lock(); // Update the RGB with the new data - if (split_shmem->rgblight_sync.status.change_flags != 0) { - rgblight_update_sync(&split_shmem->rgblight_sync, false); - split_shmem->rgblight_sync.status.change_flags = 0; + rgblight_syncinfo_t rgblight_sync; + memcpy(&rgblight_sync, &split_shmem->rgblight_sync, sizeof(rgblight_syncinfo_t)); + split_shmem->rgblight_sync.status.change_flags = 0; + split_shared_memory_unlock(); + + if (rgblight_sync.status.change_flags != 0) { + rgblight_update_sync(&rgblight_sync, false); } } @@ -450,8 +483,12 @@ static bool led_matrix_handlers_master(matrix_row_t master_matrix[], matrix_row_ } static void led_matrix_handlers_slave(matrix_row_t master_matrix[], matrix_row_t slave_matrix[]) { + split_shared_memory_lock(); memcpy(&led_matrix_eeconfig, &split_shmem->led_matrix_sync.led_matrix, sizeof(led_eeconfig_t)); - led_matrix_set_suspend_state(split_shmem->led_matrix_sync.led_suspend_state); + bool led_suspend_state = split_shmem->led_matrix_sync.led_suspend_state; + split_shared_memory_unlock(); + + led_matrix_set_suspend_state(led_suspend_state); } # define TRANSACTIONS_LED_MATRIX_MASTER() TRANSACTION_HANDLER_MASTER(led_matrix) @@ -480,8 +517,12 @@ static bool rgb_matrix_handlers_master(matrix_row_t master_matrix[], matrix_row_ } static void rgb_matrix_handlers_slave(matrix_row_t master_matrix[], matrix_row_t slave_matrix[]) { + split_shared_memory_lock(); memcpy(&rgb_matrix_config, &split_shmem->rgb_matrix_sync.rgb_matrix, sizeof(rgb_config_t)); - rgb_matrix_set_suspend_state(split_shmem->rgb_matrix_sync.rgb_suspend_state); + bool rgb_suspend_state = split_shmem->rgb_matrix_sync.rgb_suspend_state; + split_shared_memory_unlock(); + + rgb_matrix_set_suspend_state(rgb_suspend_state); } # define TRANSACTIONS_RGB_MATRIX_MASTER() TRANSACTION_HANDLER_MASTER(rgb_matrix) @@ -512,7 +553,7 @@ static void wpm_handlers_slave(matrix_row_t master_matrix[], matrix_row_t slave_ } # define TRANSACTIONS_WPM_MASTER() TRANSACTION_HANDLER_MASTER(wpm) -# define TRANSACTIONS_WPM_SLAVE() TRANSACTION_HANDLER_SLAVE(wpm) +# define TRANSACTIONS_WPM_SLAVE() TRANSACTION_HANDLER_SLAVE_AUTOLOCK(wpm) # define TRANSACTIONS_WPM_REGISTRATIONS [PUT_WPM] = trans_initiator2target_initializer(current_wpm), #else // defined(WPM_ENABLE) && defined(SPLIT_WPM_ENABLE) @@ -535,7 +576,11 @@ static bool oled_handlers_master(matrix_row_t master_matrix[], matrix_row_t slav } static void oled_handlers_slave(matrix_row_t master_matrix[], matrix_row_t slave_matrix[]) { - if (split_shmem->current_oled_state) { + split_shared_memory_lock(); + uint8_t current_oled_state = split_shmem->current_oled_state; + split_shared_memory_unlock(); + + if (current_oled_state) { oled_on(); } else { oled_off(); @@ -566,7 +611,11 @@ static bool st7565_handlers_master(matrix_row_t master_matrix[], matrix_row_t sl } static void st7565_handlers_slave(matrix_row_t master_matrix[], matrix_row_t slave_matrix[]) { - if (split_shmem->current_st7565_state) { + split_shared_memory_lock(); + uint8_t current_st7565_state = split_shmem->current_st7565_state; + split_shared_memory_unlock(); + + if (current_st7565_state) { st7565_on(); } else { st7565_off(); @@ -607,9 +656,9 @@ static bool pointing_handlers_master(matrix_row_t master_matrix[], matrix_row_t bool okay = read_if_checksum_mismatch(GET_POINTING_CHECKSUM, GET_POINTING_DATA, &last_update, &temp_state, &split_shmem->pointing.report, sizeof(temp_state)); if (okay) pointing_device_set_shared_report(temp_state); temp_cpi = pointing_device_get_shared_cpi(); - if (temp_cpi && memcmp(&last_cpi, &temp_cpi, sizeof(temp_cpi)) != 0) { - memcpy(&split_shmem->pointing.cpi, &temp_cpi, sizeof(temp_cpi)); - okay = transport_write(PUT_POINTING_CPI, &split_shmem->pointing.cpi, sizeof(split_shmem->pointing.cpi)); + if (temp_cpi && last_cpi != temp_cpi) { + split_shmem->pointing.cpi = temp_cpi; + okay = transport_write(PUT_POINTING_CPI, &split_shmem->pointing.cpi, sizeof(split_shmem->pointing.cpi)); if (okay) { last_cpi = temp_cpi; } @@ -629,8 +678,6 @@ static void pointing_handlers_slave(matrix_row_t master_matrix[], matrix_row_t s return; } # endif - report_mouse_t temp_report; - uint16_t temp_cpi; # if (POINTING_DEVICE_TASK_THROTTLE_MS > 0) static uint32_t last_exec = 0; if (timer_elapsed32(last_exec) < POINTING_DEVICE_TASK_THROTTLE_MS) { @@ -638,17 +685,25 @@ static void pointing_handlers_slave(matrix_row_t master_matrix[], matrix_row_t s } last_exec = timer_read32(); # endif - temp_cpi = !pointing_device_driver.get_cpi ? 0 : pointing_device_driver.get_cpi(); // check for NULL - if (split_shmem->pointing.cpi && memcmp(&split_shmem->pointing.cpi, &temp_cpi, sizeof(temp_cpi)) != 0) { - if (pointing_device_driver.set_cpi) { - pointing_device_driver.set_cpi(split_shmem->pointing.cpi); - } + + uint16_t temp_cpi = !pointing_device_driver.get_cpi ? 0 : pointing_device_driver.get_cpi(); // check for NULL + + split_shared_memory_lock(); + split_slave_pointing_sync_t pointing; + memcpy(&pointing, &split_shmem->pointing, sizeof(split_slave_pointing_sync_t)); + split_shared_memory_unlock(); + + if (pointing.cpi && pointing.cpi != temp_cpi && pointing_device_driver.set_cpi) { + pointing_device_driver.set_cpi(pointing.cpi); } - memset(&temp_report, 0, sizeof(temp_report)); - temp_report = pointing_device_driver.get_report(temp_report); - memcpy(&split_shmem->pointing.report, &temp_report, sizeof(temp_report)); + + pointing.report = pointing_device_driver.get_report((report_mouse_t){0}); // Now update the checksum given that the pointing has been written to - split_shmem->pointing.checksum = crc8(&temp_report, sizeof(temp_report)); + pointing.checksum = crc8(&pointing.report, sizeof(report_mouse_t)); + + split_shared_memory_lock(); + memcpy(&split_shmem->pointing, &pointing, sizeof(split_slave_pointing_sync_t)); + split_shared_memory_unlock(); } # define TRANSACTIONS_POINTING_MASTER() TRANSACTION_HANDLER_MASTER(pointing) @@ -663,6 +718,36 @@ static void pointing_handlers_slave(matrix_row_t master_matrix[], matrix_row_t s #endif // defined(POINTING_DEVICE_ENABLE) && defined(SPLIT_POINTING_ENABLE) +//////////////////////////////////////////////////// +// WATCHDOG + +#if defined(SPLIT_WATCHDOG_ENABLE) + +static bool watchdog_handlers_master(matrix_row_t master_matrix[], matrix_row_t slave_matrix[]) { + bool okay = true; + if (!split_watchdog_check()) { + okay = transport_write(PUT_WATCHDOG, &okay, sizeof(okay)); + split_watchdog_update(okay); + } + return okay; +} + +static void watchdog_handlers_slave(matrix_row_t master_matrix[], matrix_row_t slave_matrix[]) { + split_watchdog_update(split_shmem->watchdog_pinged); +} + +# define TRANSACTIONS_WATCHDOG_MASTER() TRANSACTION_HANDLER_MASTER(watchdog) +# define TRANSACTIONS_WATCHDOG_SLAVE() TRANSACTION_HANDLER_SLAVE_AUTOLOCK(watchdog) +# define TRANSACTIONS_WATCHDOG_REGISTRATIONS [PUT_WATCHDOG] = trans_initiator2target_initializer(watchdog_pinged), + +#else // defined(SPLIT_WATCHDOG_ENABLE) + +# define TRANSACTIONS_WATCHDOG_MASTER() +# define TRANSACTIONS_WATCHDOG_SLAVE() +# define TRANSACTIONS_WATCHDOG_REGISTRATIONS + +#endif // defined(SPLIT_WATCHDOG_ENABLE) + //////////////////////////////////////////////////// split_transaction_desc_t split_transaction_table[NUM_TOTAL_TRANSACTIONS] = { @@ -689,6 +774,7 @@ split_transaction_desc_t split_transaction_table[NUM_TOTAL_TRANSACTIONS] = { TRANSACTIONS_OLED_REGISTRATIONS TRANSACTIONS_ST7565_REGISTRATIONS TRANSACTIONS_POINTING_REGISTRATIONS + TRANSACTIONS_WATCHDOG_REGISTRATIONS // clang-format on #if defined(SPLIT_TRANSACTION_IDS_KB) || defined(SPLIT_TRANSACTION_IDS_USER) @@ -715,6 +801,7 @@ bool transactions_master(matrix_row_t master_matrix[], matrix_row_t slave_matrix TRANSACTIONS_OLED_MASTER(); TRANSACTIONS_ST7565_MASTER(); TRANSACTIONS_POINTING_MASTER(); + TRANSACTIONS_WATCHDOG_MASTER(); return true; } @@ -734,6 +821,7 @@ void transactions_slave(matrix_row_t master_matrix[], matrix_row_t slave_matrix[ TRANSACTIONS_OLED_SLAVE(); TRANSACTIONS_ST7565_SLAVE(); TRANSACTIONS_POINTING_SLAVE(); + TRANSACTIONS_WATCHDOG_SLAVE(); } #if defined(SPLIT_TRANSACTION_IDS_KB) || defined(SPLIT_TRANSACTION_IDS_USER) diff --git a/quantum/split_common/transport.h b/quantum/split_common/transport.h index 06778ad14a4..833633edc2f 100644 --- a/quantum/split_common/transport.h +++ b/quantum/split_common/transport.h @@ -188,6 +188,10 @@ typedef struct _split_shared_memory_t { split_slave_pointing_sync_t pointing; #endif // defined(POINTING_DEVICE_ENABLE) && defined(SPLIT_POINTING_ENABLE) +#if defined(SPLIT_WATCHDOG_ENABLE) + bool watchdog_pinged; +#endif // defined(SPLIT_WATCHDOG_ENABLE) + #if defined(SPLIT_TRANSACTION_IDS_KB) || defined(SPLIT_TRANSACTION_IDS_USER) rpc_sync_info_t rpc_info; uint8_t rpc_m2s_buffer[RPC_M2S_BUFFER_SIZE]; diff --git a/tests/tap_dance/tap_dance_layers/config.h b/tests/tap_dance/tap_dance_layers/config.h new file mode 100644 index 00000000000..32a19a8c685 --- /dev/null +++ b/tests/tap_dance/tap_dance_layers/config.h @@ -0,0 +1,6 @@ +// Copyright 2022 Sergey Vlasov (@sigprof) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "test_common.h" diff --git a/tests/tap_dance/tap_dance_layers/tap_dance_defs.c b/tests/tap_dance/tap_dance_layers/tap_dance_defs.c new file mode 100644 index 00000000000..5ec900c0412 --- /dev/null +++ b/tests/tap_dance/tap_dance_layers/tap_dance_defs.c @@ -0,0 +1,97 @@ +// Copyright 2022 Sergey Vlasov (@sigprof) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "quantum.h" +#include "tap_dance_defs.h" + +// Implement custom keycodes which are used to check that the layer switching +// behaves properly. +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case FAST_AB: + case SLOW_AB: + if (record->event.pressed) { + tap_code(KC_A); + } else { + tap_code(KC_B); + } + return keycode == SLOW_AB; + case FAST_CD: + case SLOW_CD: + if (record->event.pressed) { + tap_code(KC_C); + } else { + tap_code(KC_D); + } + return keycode == SLOW_CD; + } + return true; +} + +// Implement a custom tap dance with the following behavior: +// - single tap: KC_APP +// - single hold: MO(1) +// - double tap/hold: KC_RCTL +// (The single tap and hold actions are mostly equivalent to LT(1, KC_APP).) + +enum lt_app_state { + LTA_NONE, + LTA_SINGLE_TAP, + LTA_SINGLE_HOLD, + LTA_DOUBLE_HOLD, +}; + +static enum lt_app_state saved_lt_app_state; + +static enum lt_app_state get_lt_app_state(qk_tap_dance_state_t *state) { + if (state->count == 1) { + if (!state->pressed) { + return LTA_SINGLE_TAP; + } else { + return LTA_SINGLE_HOLD; + } + } else if (state->count == 2) { + return LTA_DOUBLE_HOLD; + } else { + return LTA_NONE; + } +} + +static void lt_app_finished(qk_tap_dance_state_t *state, void *user_data) { + saved_lt_app_state = get_lt_app_state(state); + switch (saved_lt_app_state) { + case LTA_NONE: + break; + case LTA_SINGLE_TAP: + register_code(KC_APP); + break; + case LTA_SINGLE_HOLD: + layer_on(1); + break; + case LTA_DOUBLE_HOLD: + register_code(KC_RCTL); + break; + } +} + +static void lt_app_reset(qk_tap_dance_state_t *state, void *user_data) { + switch (saved_lt_app_state) { + case LTA_NONE: + break; + case LTA_SINGLE_TAP: + unregister_code(KC_APP); + break; + case LTA_SINGLE_HOLD: + layer_off(1); + break; + case LTA_DOUBLE_HOLD: + unregister_code(KC_RCTL); + break; + } +} + +qk_tap_dance_action_t tap_dance_actions[] = { + [TD_L_MOVE] = ACTION_TAP_DANCE_LAYER_MOVE(KC_APP, 1), + [TD_L_TOGG] = ACTION_TAP_DANCE_LAYER_TOGGLE(KC_APP, 1), + [TD_LT_APP] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, lt_app_finished, lt_app_reset), +}; diff --git a/tests/tap_dance/tap_dance_layers/tap_dance_defs.h b/tests/tap_dance/tap_dance_layers/tap_dance_defs.h new file mode 100644 index 00000000000..37cab0c2cbf --- /dev/null +++ b/tests/tap_dance/tap_dance_layers/tap_dance_defs.h @@ -0,0 +1,29 @@ +// Copyright 2022 Sergey Vlasov (@sigprof) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#ifdef __cplusplus +extern "C" { +#endif + +enum custom_keycodes { + // (FAST|SLOW)_xy = tap KC_x on press, tap KC_y on release. For FAST_xy + // process_record_user() returns false to stop processing early; for + // SLOW_xy process_record_user() returns true, therefore all other key + // handlers are invoked. + FAST_AB = SAFE_RANGE, + FAST_CD, + SLOW_AB, + SLOW_CD, +}; + +enum tap_dance_ids { + TD_L_MOVE, // ACTION_TAP_DANCE_LAYER_MOVE(KC_APP, 1) + TD_L_TOGG, // ACTION_TAP_DANCE_LAYER_TOGGLE(KC_APP, 1) + TD_LT_APP, // similar to LT(1, KC_APP) with KC_RCTL on tap+hold or double tap +}; + +#ifdef __cplusplus +} +#endif diff --git a/tests/tap_dance/tap_dance_layers/test.mk b/tests/tap_dance/tap_dance_layers/test.mk new file mode 100644 index 00000000000..b4cdc9b0880 --- /dev/null +++ b/tests/tap_dance/tap_dance_layers/test.mk @@ -0,0 +1,10 @@ +# Copyright 2022 Sergey Vlasov (@sigprof) +# SPDX-License-Identifier: GPL-2.0-or-later + +# -------------------------------------------------------------------------------- +# Keep this file, even if it is empty, as a marker that this folder contains tests +# -------------------------------------------------------------------------------- + +TAP_DANCE_ENABLE = yes + +SRC += tap_dance_defs.c diff --git a/tests/tap_dance/tap_dance_layers/test_tap_dance_layers.cpp b/tests/tap_dance/tap_dance_layers/test_tap_dance_layers.cpp new file mode 100644 index 00000000000..8b736b19c63 --- /dev/null +++ b/tests/tap_dance/tap_dance_layers/test_tap_dance_layers.cpp @@ -0,0 +1,717 @@ +// Copyright 2022 Sergey Vlasov (@sigprof) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "keyboard_report_util.hpp" +#include "keycode.h" +#include "test_common.hpp" +#include "action_tapping.h" +#include "test_keymap_key.hpp" +#include "tap_dance_defs.h" + +using testing::_; +using testing::InSequence; + +struct TapDanceKeyParams { + std::string name; // Tap dance name (part of test name) + uint16_t keycode; // Tap dance keycode (TD(n)) + uint16_t expect_on_tap; // Keycode for single tap + uint16_t expect_on_hold; // Keycode for single hold (may be MO(1)) + uint16_t expect_on_double_tap; // Keycode for double tap (may be MO(1)) + uint16_t expect_on_double_hold; // Keycode for double hold (may be MO(1)) +}; + +struct OtherKeyLayerParams { + uint16_t keycode; // Keycode in the keymap + uint16_t expect_on_press; // Keycode to expect on press + uint16_t expect_on_release; // Keycode to expect on release (may be KC_NO if none) +}; + +struct OtherKeyParams { + std::string name; // Other key name (part of test name) + OtherKeyLayerParams l0; // Keycodes for layer 0 + OtherKeyLayerParams l1; // Keycodes for layer 1 +}; + +typedef std::tuple TapDanceLayersParams; + +class TapDanceLayers : public ::testing::WithParamInterface, public TestFixture { + protected: + TapDanceKeyParams tap_dance; + OtherKeyParams other_key; + + std::unique_ptr key_td, key_td_l1, key_other, key_other_l1; + + void SetUp() override { + std::tie(tap_dance, other_key) = GetParam(); + + key_td = std::make_unique(0, 1, 0, tap_dance.keycode); + key_td_l1 = std::make_unique(1, 1, 0, KC_TRNS); + key_other = std::make_unique(0, 2, 0, other_key.l0.keycode); + key_other_l1 = std::make_unique(1, 2, 0, other_key.l1.keycode); + + set_keymap({*key_td, *key_td_l1, *key_other, *key_other_l1}); + } +}; + +static const TapDanceKeyParams tap_dance_keys[] = { + TapDanceKeyParams{ + "LayerMove", + TD(TD_L_MOVE), + KC_APP, + KC_APP, + MO(1), + MO(1), + }, + TapDanceKeyParams{ + "LayerToggle", + TD(TD_L_TOGG), + KC_APP, + KC_APP, + MO(1), + MO(1), + }, + TapDanceKeyParams{ + "CustomLT", + TD(TD_LT_APP), + KC_APP, + MO(1), + KC_RCTL, + KC_RCTL, + }, +}; + +static const OtherKeyParams other_keys[] = { + OtherKeyParams{ + "Builtin", + OtherKeyLayerParams{KC_A, KC_A, KC_NO}, + OtherKeyLayerParams{KC_B, KC_B, KC_NO}, + }, + OtherKeyParams{ + "CustomFast", + OtherKeyLayerParams{FAST_AB, KC_A, KC_B}, + OtherKeyLayerParams{FAST_CD, KC_C, KC_D}, + }, + OtherKeyParams{ + "CustomSlow", + OtherKeyLayerParams{SLOW_AB, KC_A, KC_B}, + OtherKeyLayerParams{SLOW_CD, KC_C, KC_D}, + }, +}; + +// clang-format off +INSTANTIATE_TEST_CASE_P( + Layers, + TapDanceLayers, + ::testing::Combine( + ::testing::ValuesIn(tap_dance_keys), + ::testing::ValuesIn(other_keys) + ), + [](const ::testing::TestParamInfo& info) { + return std::get<0>(info.param).name + std::get<1>(info.param).name; + } +); +// clang-format on + +// Test single tap of the tap dance key with tapping term delay after the tap. +TEST_P(TapDanceLayers, SingleTap) { + TestDriver driver; + InSequence s; + + // The tap of the tap dance key does not result in sending a report + // immediately. + EXPECT_NO_REPORT(driver); + tap_key(*key_td); + + // After the tapping term expires, a tap event for the single tap keycode + // is generated. + idle_for(TAPPING_TERM - 1); + EXPECT_REPORT(driver, (tap_dance.expect_on_tap)); + EXPECT_EMPTY_REPORT(driver); + run_one_scan_loop(); + + // Pressing the other key produces the reports for the layer 0 mapping of + // that key. + EXPECT_REPORT(driver, (other_key.l0.expect_on_press)); + if (other_key.l0.expect_on_release != KC_NO) { + EXPECT_EMPTY_REPORT(driver); + } + key_other->press(); + run_one_scan_loop(); + + // Releasing the other key produces the reports for the layer 0 mapping of + // that key. + if (other_key.l0.expect_on_release != KC_NO) { + EXPECT_REPORT(driver, (other_key.l0.expect_on_release)); + } + EXPECT_EMPTY_REPORT(driver); + key_other->release(); + run_one_scan_loop(); +} + +// Test single tap of the tap dance key without a delay between the tap dance +// key and the other key. +TEST_P(TapDanceLayers, SingleTapFast) { + TestDriver driver; + InSequence s; + + // The tap of the tap dance key does not result in sending a report + // immediately. + EXPECT_NO_REPORT(driver); + tap_key(*key_td); + + // A quick press of the other key causes the tap event for the tap dance to + // be sent before the press event for the other key, and the layer 0 + // mapping is used for the other key. + EXPECT_REPORT(driver, (tap_dance.expect_on_tap)); + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (other_key.l0.expect_on_press)); + if (other_key.l0.expect_on_release != KC_NO) { + EXPECT_EMPTY_REPORT(driver); + } + key_other->press(); + run_one_scan_loop(); + + // Releasing the other key produces the reports for the layer 0 mapping of + // that key. + if (other_key.l0.expect_on_release != KC_NO) { + EXPECT_REPORT(driver, (other_key.l0.expect_on_release)); + } + EXPECT_EMPTY_REPORT(driver); + key_other->release(); + run_one_scan_loop(); +} + +// Test single hold of the tap dance key with tapping term delay after the hold +// (test variant for tap dances which switch the layer on hold). +TEST_P(TapDanceLayers, SingleHoldLayer) { + if (tap_dance.expect_on_hold != MO(1)) { + // Do nothing - the SingleHoldKeycode test would run instead. + return; + } + + TestDriver driver; + InSequence s; + + // No report gets sent immediately after the hold of the tap dance key. + EXPECT_NO_REPORT(driver); + key_td->press(); + run_one_scan_loop(); + + // After the tapping term expires, the tap dance finishes and switches the + // layer, but does not send a report. + EXPECT_NO_REPORT(driver); + idle_for(TAPPING_TERM); + run_one_scan_loop(); + + // Pressing the other key produces the reports for the layer 1 mapping of + // that key. + EXPECT_REPORT(driver, (other_key.l1.expect_on_press)); + if (other_key.l1.expect_on_release != KC_NO) { + EXPECT_EMPTY_REPORT(driver); + } + key_other->press(); + run_one_scan_loop(); + + // Releasing the tap dance key does not produce a report. + EXPECT_NO_REPORT(driver); + key_td->release(); + run_one_scan_loop(); + + // Releasing the other key produces the report for the layer 1 mapping of + // that key. + if (other_key.l1.expect_on_release != KC_NO) { + EXPECT_REPORT(driver, (other_key.l1.expect_on_release)); + } + EXPECT_EMPTY_REPORT(driver); + key_other->release(); + run_one_scan_loop(); +} + +// Test single hold of the tap dance key with tapping term delay after the hold +// (test variant for tap dances which send a keycode on single hold). +TEST_P(TapDanceLayers, SingleHoldKeycode) { + if (tap_dance.expect_on_hold == MO(1)) { + // Do nothing - the SingleHoldLayer test would run instead. + return; + } + + TestDriver driver; + InSequence s; + + // No report gets sent immediately after the hold of the tap dance key. + EXPECT_NO_REPORT(driver); + key_td->press(); + run_one_scan_loop(); + + // After the tapping term expires, the tap dance sends the report with the + // hold keycode. + EXPECT_NO_REPORT(driver); + idle_for(TAPPING_TERM); + EXPECT_REPORT(driver, (tap_dance.expect_on_hold)); + run_one_scan_loop(); + + // Pressing the other key produces the reports for the layer 0 mapping of + // that key. + EXPECT_REPORT(driver, (tap_dance.expect_on_hold, other_key.l0.expect_on_press)); + if (other_key.l0.expect_on_release != KC_NO) { + EXPECT_REPORT(driver, (tap_dance.expect_on_hold)); + } + key_other->press(); + run_one_scan_loop(); + + // Releasing the tap dance key sends the release report for the + // corresponding hold keycode. + if (other_key.l0.expect_on_release != KC_NO) { + EXPECT_EMPTY_REPORT(driver); + } else { + EXPECT_REPORT(driver, (other_key.l0.expect_on_press)); + } + key_td->release(); + run_one_scan_loop(); + + // Releasing the other key produces the reports for the layer 0 mapping of + // that key. + if (other_key.l0.expect_on_release != KC_NO) { + EXPECT_REPORT(driver, (other_key.l0.expect_on_release)); + } + EXPECT_EMPTY_REPORT(driver); + key_other->release(); + run_one_scan_loop(); +} + +// Test single hold of the tap dance key without tapping term delay after the +// hold (test variant for tap dances which switch the layer on hold). +TEST_P(TapDanceLayers, SingleHoldFastLayer) { + if (tap_dance.expect_on_hold != MO(1)) { + // Do nothing - the SingleHoldFastKeycode test would run instead. + return; + } + + TestDriver driver; + InSequence s; + + // No report gets sent immediately after the hold of the tap dance key. + EXPECT_NO_REPORT(driver); + key_td->press(); + run_one_scan_loop(); + + // Pressing the other key produces the reports for the layer 1 mapping of + // that key. + EXPECT_REPORT(driver, (other_key.l1.expect_on_press)); + if (other_key.l1.expect_on_release != KC_NO) { + EXPECT_EMPTY_REPORT(driver); + } + key_other->press(); + run_one_scan_loop(); + + // Releasing the tap dance key does not produce a report. + EXPECT_NO_REPORT(driver); + key_td->release(); + run_one_scan_loop(); + + // Releasing the other key produces the reports for the layer 1 mapping of + // that key. + if (other_key.l1.expect_on_release != KC_NO) { + EXPECT_REPORT(driver, (other_key.l1.expect_on_release)); + } + EXPECT_EMPTY_REPORT(driver); + key_other->release(); + run_one_scan_loop(); +} + +// Test single hold of the tap dance key without tapping term delay after the hold +// (test variant for tap dances which send a keycode on single hold). +TEST_P(TapDanceLayers, SingleHoldFastKeycode) { + if (tap_dance.expect_on_hold == MO(1)) { + // Do nothing - the SingleHoldFastLayer test would run instead. + return; + } + + TestDriver driver; + InSequence s; + + // No report gets sent immediately after the hold of the tap dance key. + EXPECT_NO_REPORT(driver); + key_td->press(); + run_one_scan_loop(); + + // Pressing the other key produces first the report for the tap dance hold + // keycode, and then the reports for the layer 0 mapping of the other key. + EXPECT_REPORT(driver, (tap_dance.expect_on_hold)); + EXPECT_REPORT(driver, (tap_dance.expect_on_hold, other_key.l0.expect_on_press)); + if (other_key.l0.expect_on_release != KC_NO) { + EXPECT_REPORT(driver, (tap_dance.expect_on_hold)); + } + key_other->press(); + run_one_scan_loop(); + + // Releasing the tap dance key sends a release report for the corresponding + // hold keycode. + if (other_key.l0.expect_on_release != KC_NO) { + EXPECT_EMPTY_REPORT(driver); + } else { + EXPECT_REPORT(driver, (other_key.l0.expect_on_press)); + } + key_td->release(); + run_one_scan_loop(); + + // Releasing the other key produces the report for the layer 0 mapping of + // that key. + if (other_key.l0.expect_on_release != KC_NO) { + EXPECT_REPORT(driver, (other_key.l0.expect_on_release)); + } + EXPECT_EMPTY_REPORT(driver); + key_other->release(); + run_one_scan_loop(); +} + +// Test double tap of the tap dance key with tapping term delay after the hold +// (test variant for tap dances which switch the layer on double tap). +TEST_P(TapDanceLayers, DoubleTapLayer) { + if (tap_dance.expect_on_double_tap != MO(1)) { + // Do nothing - the DoubleTapKeycode test would run instead. + return; + } + + TestDriver driver; + InSequence s; + + // No report gets sent immediately after the double tap of the tap dance + // key. + EXPECT_NO_REPORT(driver); + tap_key(*key_td); + tap_key(*key_td); + + // After the tapping term this tap dance does not send a report too. + EXPECT_NO_REPORT(driver); + idle_for(TAPPING_TERM); + run_one_scan_loop(); + + // Pressing the other key produces the reports for the layer 1 mapping of + // that key. + EXPECT_REPORT(driver, (other_key.l1.expect_on_press)); + if (other_key.l1.expect_on_release != KC_NO) { + EXPECT_EMPTY_REPORT(driver); + } + key_other->press(); + run_one_scan_loop(); + + // Releasing the other key produces the report for the layer 1 mapping of + // that key. + if (other_key.l1.expect_on_release != KC_NO) { + EXPECT_REPORT(driver, (other_key.l1.expect_on_release)); + } + EXPECT_EMPTY_REPORT(driver); + key_other->release(); + run_one_scan_loop(); +} + +// Test double tap of the tap dance key with tapping term delay after the hold +// (test variant for tap dances which send a keycode on double tap). +TEST_P(TapDanceLayers, DoubleTapKeycode) { + if (tap_dance.expect_on_double_tap == MO(1)) { + // Do nothing - the DoubleTapLayer test would run instead. + return; + } + + TestDriver driver; + InSequence s; + + // No report gets sent immediately after the double tap of the tap dance + // key. + EXPECT_NO_REPORT(driver); + tap_key(*key_td); + tap_key(*key_td); + + // After the tapping term this tap dance sends the double tap keycode. + idle_for(TAPPING_TERM - 1); + EXPECT_REPORT(driver, (tap_dance.expect_on_double_tap)); + EXPECT_EMPTY_REPORT(driver); + run_one_scan_loop(); + + // Pressing the other key produces the reports for the layer 0 mapping of + // that key. + EXPECT_REPORT(driver, (other_key.l0.expect_on_press)); + if (other_key.l0.expect_on_release != KC_NO) { + EXPECT_EMPTY_REPORT(driver); + } + key_other->press(); + run_one_scan_loop(); + + // Releasing the other key produces the report for the layer 0 mapping of + // that key. + if (other_key.l0.expect_on_release != KC_NO) { + EXPECT_REPORT(driver, (other_key.l0.expect_on_release)); + } + EXPECT_EMPTY_REPORT(driver); + key_other->release(); + run_one_scan_loop(); +} + +// Test double tap of the tap dance key without tapping term delay after the +// hold (test variant for tap dances which switch the layer on double tap). +TEST_P(TapDanceLayers, DoubleTapFastLayer) { + if (tap_dance.expect_on_double_tap != MO(1)) { + // Do nothing - the DoubleTapFastKeycode test would run instead. + return; + } + + TestDriver driver; + InSequence s; + + // No report gets sent immediately after the double tap of the tap dance + // key. + EXPECT_NO_REPORT(driver); + tap_key(*key_td); + tap_key(*key_td); + + // Pressing the other key produces the reports for the layer 1 mapping of + // that key. + EXPECT_REPORT(driver, (other_key.l1.expect_on_press)); + if (other_key.l1.expect_on_release != KC_NO) { + EXPECT_EMPTY_REPORT(driver); + } + key_other->press(); + run_one_scan_loop(); + + // Releasing the other key produces the report for the layer 1 mapping of + // that key. + if (other_key.l1.expect_on_release != KC_NO) { + EXPECT_REPORT(driver, (other_key.l1.expect_on_release)); + } + EXPECT_EMPTY_REPORT(driver); + key_other->release(); + run_one_scan_loop(); +} + +// Test double tap of the tap dance key without tapping term delay after the +// hold (test variant for tap dances which send a keycode on double tap). +TEST_P(TapDanceLayers, DoubleTapFastKeycode) { + if (tap_dance.expect_on_double_tap == MO(1)) { + // Do nothing - the DoubleTapFastLayer test would run instead. + return; + } + + TestDriver driver; + InSequence s; + + // No report gets sent immediately after the double tap of the tap dance + // key. + EXPECT_NO_REPORT(driver); + tap_key(*key_td); + tap_key(*key_td); + + // Pressing the other key produces first the report for the tap dance + // double tap keycode, and then the reports for the layer 0 mapping of the + // other key. + EXPECT_REPORT(driver, (tap_dance.expect_on_double_tap)); + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (other_key.l0.expect_on_press)); + if (other_key.l0.expect_on_release != KC_NO) { + EXPECT_EMPTY_REPORT(driver); + } + key_other->press(); + run_one_scan_loop(); + + // Releasing the other key produces the report for the layer 0 mapping of + // that key. + if (other_key.l0.expect_on_release != KC_NO) { + EXPECT_REPORT(driver, (other_key.l0.expect_on_release)); + } + EXPECT_EMPTY_REPORT(driver); + key_other->release(); + run_one_scan_loop(); +} + +// Test double hold of the tap dance key with tapping term delay after the hold +// (test variant for tap dances which switch the layer on double hold). +TEST_P(TapDanceLayers, DoubleHoldLayer) { + if (tap_dance.expect_on_double_hold != MO(1)) { + // Do nothing - the DoubleHoldKeycode test would run instead. + return; + } + + TestDriver driver; + InSequence s; + + // No report gets sent immediately after the double hold of the tap dance + // key. + EXPECT_NO_REPORT(driver); + tap_key(*key_td); + key_td->press(); + run_one_scan_loop(); + + // After the tapping term expires, the tap dance finishes and switches the + // layer, but does not send a report. + EXPECT_NO_REPORT(driver); + idle_for(TAPPING_TERM); + run_one_scan_loop(); + + // Pressing the other key produces the reports for the layer 1 mapping of + // that key. + EXPECT_REPORT(driver, (other_key.l1.expect_on_press)); + if (other_key.l1.expect_on_release != KC_NO) { + EXPECT_EMPTY_REPORT(driver); + } + key_other->press(); + run_one_scan_loop(); + + // Releasing the tap dance key does not produce a report. + EXPECT_NO_REPORT(driver); + key_td->release(); + run_one_scan_loop(); + + // Releasing the other key produces the report for the layer 1 mapping of + // that key. + if (other_key.l1.expect_on_release != KC_NO) { + EXPECT_REPORT(driver, (other_key.l1.expect_on_release)); + } + EXPECT_EMPTY_REPORT(driver); + key_other->release(); + run_one_scan_loop(); +} + +// Test double hold of the tap dance key with tapping term delay after the hold +// (test variant for tap dances which send a keycode on double hold). +TEST_P(TapDanceLayers, DoubleHoldKeycode) { + if (tap_dance.expect_on_double_hold == MO(1)) { + // Do nothing - the DoubleHoldLayer test would run instead. + return; + } + + TestDriver driver; + InSequence s; + + // No report gets sent immediately after the double hold of the tap dance + // key. + EXPECT_NO_REPORT(driver); + tap_key(*key_td); + key_td->press(); + run_one_scan_loop(); + + // After the tapping term expires, the tap dance sends the report with the + // double hold keycode. + EXPECT_NO_REPORT(driver); + idle_for(TAPPING_TERM); + EXPECT_REPORT(driver, (tap_dance.expect_on_double_hold)); + run_one_scan_loop(); + + // Pressing the other key produces the reports for the layer 0 mapping of + // that key. + EXPECT_REPORT(driver, (tap_dance.expect_on_double_hold, other_key.l0.expect_on_press)); + if (other_key.l0.expect_on_release != KC_NO) { + EXPECT_REPORT(driver, (tap_dance.expect_on_double_hold)); + } + key_other->press(); + run_one_scan_loop(); + + // Releasing the tap dance key sends the release report for the + // corresponding double hold keycode. + if (other_key.l0.expect_on_release != KC_NO) { + EXPECT_EMPTY_REPORT(driver); + } else { + EXPECT_REPORT(driver, (other_key.l0.expect_on_press)); + } + key_td->release(); + run_one_scan_loop(); + + // Releasing the other key produces the reports for the layer 0 mapping of + // that key. + if (other_key.l0.expect_on_release != KC_NO) { + EXPECT_REPORT(driver, (other_key.l0.expect_on_release)); + } + EXPECT_EMPTY_REPORT(driver); + key_other->release(); + run_one_scan_loop(); +} + +// Test double hold of the tap dance key without tapping term delay after the +// hold (test variant for tap dances which switch the layer on double hold). +TEST_P(TapDanceLayers, DoubleHoldFastLayer) { + if (tap_dance.expect_on_double_hold != MO(1)) { + // Do nothing - the DoubleHoldFastKeycode test would run instead. + return; + } + + TestDriver driver; + InSequence s; + + // No report gets sent immediately after the double hold of the tap dance + // key. + EXPECT_NO_REPORT(driver); + tap_key(*key_td); + key_td->press(); + run_one_scan_loop(); + + // Pressing the other key produces the reports for the layer 1 mapping of + // that key. + EXPECT_REPORT(driver, (other_key.l1.expect_on_press)); + if (other_key.l1.expect_on_release != KC_NO) { + EXPECT_EMPTY_REPORT(driver); + } + key_other->press(); + run_one_scan_loop(); + + // Releasing the tap dance key does not produce a report. + EXPECT_NO_REPORT(driver); + key_td->release(); + run_one_scan_loop(); + + // Releasing the other key produces the reports for the layer 1 mapping of + // that key. + if (other_key.l1.expect_on_release != KC_NO) { + EXPECT_REPORT(driver, (other_key.l1.expect_on_release)); + } + EXPECT_EMPTY_REPORT(driver); + key_other->release(); + run_one_scan_loop(); +} + +// Test double hold of the tap dance key without tapping term delay after the hold +// (test variant for tap dances which send a keycode on double hold). +TEST_P(TapDanceLayers, DoubleHoldFastKeycode) { + if (tap_dance.expect_on_double_hold == MO(1)) { + // Do nothing - the DoubleHoldFastLayer test would run instead. + return; + } + + TestDriver driver; + InSequence s; + + // No report gets sent immediately after the double hold of the tap dance + // key. + EXPECT_NO_REPORT(driver); + tap_key(*key_td); + key_td->press(); + run_one_scan_loop(); + + // Pressing the other key produces first the report for the tap dance + // double hold keycode, and then the reports for the layer 0 mapping of the + // other key. + EXPECT_REPORT(driver, (tap_dance.expect_on_double_hold)); + EXPECT_REPORT(driver, (tap_dance.expect_on_double_hold, other_key.l0.expect_on_press)); + if (other_key.l0.expect_on_release != KC_NO) { + EXPECT_REPORT(driver, (tap_dance.expect_on_double_hold)); + } + key_other->press(); + run_one_scan_loop(); + + // Releasing the tap dance key sends a release report for the corresponding + // double hold keycode. + if (other_key.l0.expect_on_release != KC_NO) { + EXPECT_EMPTY_REPORT(driver); + } else { + EXPECT_REPORT(driver, (other_key.l0.expect_on_press)); + } + key_td->release(); + run_one_scan_loop(); + + // Releasing the other key produces the report for the layer 0 mapping of + // that key. + if (other_key.l0.expect_on_release != KC_NO) { + EXPECT_REPORT(driver, (other_key.l0.expect_on_release)); + } + EXPECT_EMPTY_REPORT(driver); + key_other->release(); + run_one_scan_loop(); +} diff --git a/tmk_core/protocol/chibios/chibios.c b/tmk_core/protocol/chibios/chibios.c index 024160a9257..82ade4259b0 100644 --- a/tmk_core/protocol/chibios/chibios.c +++ b/tmk_core/protocol/chibios/chibios.c @@ -59,11 +59,9 @@ uint8_t keyboard_leds(void); void send_keyboard(report_keyboard_t *report); void send_mouse(report_mouse_t *report); void send_extra(uint8_t report_id, uint16_t data); -void send_programmable_button(uint32_t data); -void send_digitizer(report_digitizer_t *report); /* host struct */ -host_driver_t chibios_driver = {keyboard_leds, send_keyboard, send_mouse, send_extra, send_programmable_button}; +host_driver_t chibios_driver = {keyboard_leds, send_keyboard, send_mouse, send_extra}; #ifdef VIRTSER_ENABLE void virtser_task(void); diff --git a/tmk_core/protocol/chibios/usb_main.c b/tmk_core/protocol/chibios/usb_main.c index 222a867e3c7..3fd34a604e5 100644 --- a/tmk_core/protocol/chibios/usb_main.c +++ b/tmk_core/protocol/chibios/usb_main.c @@ -50,10 +50,6 @@ extern keymap_config_t keymap_config; #endif -#ifdef JOYSTICK_ENABLE -# include "joystick.h" -#endif - /* --------------------------------------------------------- * Global interface variables and declarations * --------------------------------------------------------- @@ -738,6 +734,7 @@ void init_usb_driver(USBDriver *usbp) { * after a reset. */ usbDisconnectBus(usbp); + usbStop(usbp); wait_ms(50); usbStart(usbp, &usbcfg); usbConnectBus(usbp); @@ -746,8 +743,8 @@ void init_usb_driver(USBDriver *usbp) { } __attribute__((weak)) void restart_usb_driver(USBDriver *usbp) { - usbStop(usbp); usbDisconnectBus(usbp); + usbStop(usbp); #if USB_SUSPEND_WAKEUP_DELAY > 0 // Some hubs, kvm switches, and monitors do @@ -973,7 +970,7 @@ void send_extra(uint8_t report_id, uint16_t data) { #endif } -void send_programmable_button(uint32_t data) { +void send_programmable_button(report_programmable_button_t *report) { #ifdef PROGRAMMABLE_BUTTON_ENABLE osalSysLock(); if (usbGetDriverStateI(&USB_DRIVER) != USB_ACTIVE) { @@ -991,13 +988,8 @@ void send_programmable_button(uint32_t data) { return; } } - static report_programmable_button_t report = { - .report_id = REPORT_ID_PROGRAMMABLE_BUTTON, - }; - report.usage = data; - - usbStartTransmitI(&USB_DRIVER, SHARED_IN_EPNUM, (uint8_t *)&report, sizeof(report)); + usbStartTransmitI(&USB_DRIVER, SHARED_IN_EPNUM, (uint8_t *)report, sizeof(report_programmable_button_t)); osalSysUnlock(); #endif } @@ -1151,59 +1143,15 @@ void virtser_task(void) { #endif +void send_joystick(report_joystick_t *report) { #ifdef JOYSTICK_ENABLE - -void send_joystick_packet(joystick_t *joystick) { - static joystick_report_t rep; - rep = (joystick_report_t) { -# if JOYSTICK_AXES_COUNT > 0 - .axes = - { joystick->axes[0], - -# if JOYSTICK_AXES_COUNT >= 2 - joystick->axes[1], -# endif -# if JOYSTICK_AXES_COUNT >= 3 - joystick->axes[2], -# endif -# if JOYSTICK_AXES_COUNT >= 4 - joystick->axes[3], -# endif -# if JOYSTICK_AXES_COUNT >= 5 - joystick->axes[4], -# endif -# if JOYSTICK_AXES_COUNT >= 6 - joystick->axes[5], -# endif - }, -# endif // JOYSTICK_AXES_COUNT>0 - -# if JOYSTICK_BUTTON_COUNT > 0 - .buttons = { - joystick->buttons[0], - -# if JOYSTICK_BUTTON_COUNT > 8 - joystick->buttons[1], -# endif -# if JOYSTICK_BUTTON_COUNT > 16 - joystick->buttons[2], -# endif -# if JOYSTICK_BUTTON_COUNT > 24 - joystick->buttons[3], -# endif - } -# endif // JOYSTICK_BUTTON_COUNT>0 - }; - - // chnWrite(&drivers.joystick_driver.driver, (uint8_t *)&rep, sizeof(rep)); osalSysLock(); if (usbGetDriverStateI(&USB_DRIVER) != USB_ACTIVE) { osalSysUnlock(); return; } - usbStartTransmitI(&USB_DRIVER, JOYSTICK_IN_EPNUM, (uint8_t *)&rep, sizeof(joystick_report_t)); + usbStartTransmitI(&USB_DRIVER, JOYSTICK_IN_EPNUM, (uint8_t *)report, sizeof(report_joystick_t)); osalSysUnlock(); -} - #endif +} diff --git a/tmk_core/protocol/chibios/usb_util.c b/tmk_core/protocol/chibios/usb_util.c index c8b435db0c6..a8c7d9a2286 100644 --- a/tmk_core/protocol/chibios/usb_util.c +++ b/tmk_core/protocol/chibios/usb_util.c @@ -17,6 +17,7 @@ #include "usb_util.h" void usb_disconnect(void) { + usbDisconnectBus(&USBD1); usbStop(&USBD1); } diff --git a/tmk_core/protocol/host.c b/tmk_core/protocol/host.c index 53854b94fb0..e6c12d8a36f 100644 --- a/tmk_core/protocol/host.c +++ b/tmk_core/protocol/host.c @@ -16,21 +16,23 @@ along with this program. If not, see . */ #include -//#include #include "keyboard.h" #include "keycode.h" #include "host.h" #include "util.h" #include "debug.h" -#include "digitizer.h" + +#ifdef DIGITIZER_ENABLE +# include "digitizer.h" +#endif + +#ifdef JOYSTICK_ENABLE +# include "joystick.h" +#endif #ifdef BLUETOOTH_ENABLE +# include "bluetooth.h" # include "outputselect.h" -# ifdef BLUETOOTH_BLUEFRUIT_LE -# include "bluefruit_le.h" -# elif BLUETOOTH_RN42 -# include "rn42.h" -# endif #endif #ifdef NKRO_ENABLE @@ -39,9 +41,8 @@ extern keymap_config_t keymap_config; #endif static host_driver_t *driver; -static uint16_t last_system_report = 0; -static uint16_t last_consumer_report = 0; -static uint32_t last_programmable_button_report = 0; +static uint16_t last_system_report = 0; +static uint16_t last_consumer_report = 0; void host_set_driver(host_driver_t *d) { driver = d; @@ -74,11 +75,7 @@ led_t host_keyboard_led_state(void) { void host_keyboard_send(report_keyboard_t *report) { #ifdef BLUETOOTH_ENABLE if (where_to_send() == OUTPUT_BLUETOOTH) { -# ifdef BLUETOOTH_BLUEFRUIT_LE - bluefruit_le_send_keys(report->mods, report->keys, sizeof(report->keys)); -# elif BLUETOOTH_RN42 - rn42_send_keyboard(report); -# endif + bluetooth_send_keyboard(report); return; } #endif @@ -112,12 +109,7 @@ void host_keyboard_send(report_keyboard_t *report) { void host_mouse_send(report_mouse_t *report) { #ifdef BLUETOOTH_ENABLE if (where_to_send() == OUTPUT_BLUETOOTH) { -# ifdef BLUETOOTH_BLUEFRUIT_LE - // FIXME: mouse buttons - bluefruit_le_send_mouse_move(report->x, report->y, report->v, report->h, report->buttons); -# elif BLUETOOTH_RN42 - rn42_send_mouse(report); -# endif + bluetooth_send_mouse(report); return; } #endif @@ -148,11 +140,7 @@ void host_consumer_send(uint16_t report) { #ifdef BLUETOOTH_ENABLE if (where_to_send() == OUTPUT_BLUETOOTH) { -# ifdef BLUETOOTH_BLUEFRUIT_LE - bluefruit_le_send_consumer_key(report); -# elif BLUETOOTH_RN42 - rn42_send_consumer(report); -# endif + bluetooth_send_consumer(report); return; } #endif @@ -161,13 +149,64 @@ void host_consumer_send(uint16_t report) { (*driver->send_extra)(REPORT_ID_CONSUMER, report); } -void host_digitizer_send(digitizer_t *digitizer) { +#ifdef JOYSTICK_ENABLE +void host_joystick_send(joystick_t *joystick) { if (!driver) return; - report_digitizer_t report = { -#ifdef DIGITIZER_SHARED_EP - .report_id = REPORT_ID_DIGITIZER, + report_joystick_t report = { +# if JOYSTICK_AXES_COUNT > 0 + .axes = + { + joystick->axes[0], + +# if JOYSTICK_AXES_COUNT >= 2 + joystick->axes[1], +# endif +# if JOYSTICK_AXES_COUNT >= 3 + joystick->axes[2], +# endif +# if JOYSTICK_AXES_COUNT >= 4 + joystick->axes[3], +# endif +# if JOYSTICK_AXES_COUNT >= 5 + joystick->axes[4], +# endif +# if JOYSTICK_AXES_COUNT >= 6 + joystick->axes[5], +# endif + }, +# endif + +# if JOYSTICK_BUTTON_COUNT > 0 + .buttons = + { + joystick->buttons[0], + +# if JOYSTICK_BUTTON_COUNT > 8 + joystick->buttons[1], +# endif +# if JOYSTICK_BUTTON_COUNT > 16 + joystick->buttons[2], +# endif +# if JOYSTICK_BUTTON_COUNT > 24 + joystick->buttons[3], +# endif + }, +# endif + }; + + send_joystick(&report); +} #endif + +__attribute__((weak)) void send_joystick(report_joystick_t *report) {} + +#ifdef DIGITIZER_ENABLE +void host_digitizer_send(digitizer_t *digitizer) { + report_digitizer_t report = { +# ifdef DIGITIZER_SHARED_EP + .report_id = REPORT_ID_DIGITIZER, +# endif .tip = digitizer->tipswitch & 0x1, .inrange = digitizer->inrange & 0x1, .x = (uint16_t)(digitizer->x * 0x7FFF), @@ -176,16 +215,22 @@ void host_digitizer_send(digitizer_t *digitizer) { send_digitizer(&report); } +#endif __attribute__((weak)) void send_digitizer(report_digitizer_t *report) {} -void host_programmable_button_send(uint32_t report) { - if (report == last_programmable_button_report) return; - last_programmable_button_report = report; +#ifdef PROGRAMMABLE_BUTTON_ENABLE +void host_programmable_button_send(uint32_t data) { + report_programmable_button_t report = { + .report_id = REPORT_ID_PROGRAMMABLE_BUTTON, + .usage = data, + }; - if (!driver) return; - (*driver->send_programmable_button)(report); + send_programmable_button(&report); } +#endif + +__attribute__((weak)) void send_programmable_button(report_programmable_button_t *report) {} uint16_t host_last_system_report(void) { return last_system_report; @@ -194,7 +239,3 @@ uint16_t host_last_system_report(void) { uint16_t host_last_consumer_report(void) { return last_consumer_report; } - -uint32_t host_last_programmable_button_report(void) { - return last_programmable_button_report; -} diff --git a/tmk_core/protocol/host.h b/tmk_core/protocol/host.h index 6b15f0d0c10..08bd498d389 100644 --- a/tmk_core/protocol/host.h +++ b/tmk_core/protocol/host.h @@ -51,7 +51,6 @@ void host_programmable_button_send(uint32_t data); uint16_t host_last_system_report(void); uint16_t host_last_consumer_report(void); -uint32_t host_last_programmable_button_report(void); #ifdef __cplusplus } diff --git a/tmk_core/protocol/host_driver.h b/tmk_core/protocol/host_driver.h index 680d9727d37..bb4dcdd8774 100644 --- a/tmk_core/protocol/host_driver.h +++ b/tmk_core/protocol/host_driver.h @@ -28,7 +28,8 @@ typedef struct { void (*send_keyboard)(report_keyboard_t *); void (*send_mouse)(report_mouse_t *); void (*send_extra)(uint8_t, uint16_t); - void (*send_programmable_button)(uint32_t); } host_driver_t; +void send_joystick(report_joystick_t *report); void send_digitizer(report_digitizer_t *report); +void send_programmable_button(report_programmable_button_t *report); diff --git a/tmk_core/protocol/lufa/lufa.c b/tmk_core/protocol/lufa/lufa.c index 2a3f5fd8839..869ed71d769 100644 --- a/tmk_core/protocol/lufa/lufa.c +++ b/tmk_core/protocol/lufa/lufa.c @@ -61,10 +61,6 @@ extern keymap_config_t keymap_config; #endif -#ifdef AUDIO_ENABLE -# include "audio.h" -#endif - #ifdef VIRTSER_ENABLE # include "virtser.h" #endif @@ -77,10 +73,6 @@ extern keymap_config_t keymap_config; # include "raw_hid.h" #endif -#ifdef JOYSTICK_ENABLE -# include "joystick.h" -#endif - uint8_t keyboard_idle = 0; /* 0: Boot Protocol, 1: Report Protocol(default) */ uint8_t keyboard_protocol = 1; @@ -93,8 +85,7 @@ static uint8_t keyboard_leds(void); static void send_keyboard(report_keyboard_t *report); static void send_mouse(report_mouse_t *report); static void send_extra(uint8_t report_id, uint16_t data); -static void send_programmable_button(uint32_t data); -host_driver_t lufa_driver = {keyboard_leds, send_keyboard, send_mouse, send_extra, send_programmable_button}; +host_driver_t lufa_driver = {keyboard_leds, send_keyboard, send_mouse, send_extra}; #ifdef VIRTSER_ENABLE // clang-format off @@ -261,51 +252,10 @@ static void Console_Task(void) { /******************************************************************************* * Joystick ******************************************************************************/ +void send_joystick(report_joystick_t *report) { #ifdef JOYSTICK_ENABLE -void send_joystick_packet(joystick_t *joystick) { uint8_t timeout = 255; - static joystick_report_t r; - r = (joystick_report_t) { -# if JOYSTICK_AXES_COUNT > 0 - .axes = - { joystick->axes[0], - -# if JOYSTICK_AXES_COUNT >= 2 - joystick->axes[1], -# endif -# if JOYSTICK_AXES_COUNT >= 3 - joystick->axes[2], -# endif -# if JOYSTICK_AXES_COUNT >= 4 - joystick->axes[3], -# endif -# if JOYSTICK_AXES_COUNT >= 5 - joystick->axes[4], -# endif -# if JOYSTICK_AXES_COUNT >= 6 - joystick->axes[5], -# endif - }, -# endif // JOYSTICK_AXES_COUNT>0 - -# if JOYSTICK_BUTTON_COUNT > 0 - .buttons = { - joystick->buttons[0], - -# if JOYSTICK_BUTTON_COUNT > 8 - joystick->buttons[1], -# endif -# if JOYSTICK_BUTTON_COUNT > 16 - joystick->buttons[2], -# endif -# if JOYSTICK_BUTTON_COUNT > 24 - joystick->buttons[3], -# endif - } -# endif // JOYSTICK_BUTTON_COUNT>0 - }; - /* Select the Joystick Report Endpoint */ Endpoint_SelectEndpoint(JOYSTICK_IN_EPNUM); @@ -315,12 +265,12 @@ void send_joystick_packet(joystick_t *joystick) { if (!Endpoint_IsReadWriteAllowed()) return; /* Write Joystick Report Data */ - Endpoint_Write_Stream_LE(&r, sizeof(joystick_report_t), NULL); + Endpoint_Write_Stream_LE(report, sizeof(report_joystick_t), NULL); /* Finalize the stream transfer to send the last packet */ Endpoint_ClearIN(); -} #endif +} /******************************************************************************* * USB Events @@ -721,11 +671,9 @@ static void send_extra(uint8_t report_id, uint16_t data) { #endif } -static void send_programmable_button(uint32_t data) { +void send_programmable_button(report_programmable_button_t *report) { #ifdef PROGRAMMABLE_BUTTON_ENABLE - static report_programmable_button_t r; - r = (report_programmable_button_t){.report_id = REPORT_ID_PROGRAMMABLE_BUTTON, .usage = data}; - send_report(&r, sizeof(r)); + send_report(report, sizeof(report_programmable_button_t)); #endif } diff --git a/tmk_core/protocol/report.h b/tmk_core/protocol/report.h index b4dbf92a8fb..8bc4a57c0c7 100644 --- a/tmk_core/protocol/report.h +++ b/tmk_core/protocol/report.h @@ -245,7 +245,7 @@ typedef struct { #if JOYSTICK_BUTTON_COUNT > 0 uint8_t buttons[(JOYSTICK_BUTTON_COUNT - 1) / 8 + 1]; #endif -} __attribute__((packed)) joystick_report_t; +} __attribute__((packed)) report_joystick_t; /* keycode to system usage */ static inline uint16_t KEYCODE2SYSTEM(uint8_t key) { diff --git a/tmk_core/protocol/vusb/vusb.c b/tmk_core/protocol/vusb/vusb.c index 013d637b6fc..8456d2c5ab8 100644 --- a/tmk_core/protocol/vusb/vusb.c +++ b/tmk_core/protocol/vusb/vusb.c @@ -225,9 +225,8 @@ static uint8_t keyboard_leds(void); static void send_keyboard(report_keyboard_t *report); static void send_mouse(report_mouse_t *report); static void send_extra(uint8_t report_id, uint16_t data); -static void send_programmable_button(uint32_t data); -static host_driver_t driver = {keyboard_leds, send_keyboard, send_mouse, send_extra, send_programmable_button}; +static host_driver_t driver = {keyboard_leds, send_keyboard, send_mouse, send_extra}; host_driver_t *vusb_driver(void) { return &driver; @@ -292,16 +291,10 @@ void send_digitizer(report_digitizer_t *report) { #endif } -static void send_programmable_button(uint32_t data) { +void send_programmable_button(report_programmable_button_t *report) { #ifdef PROGRAMMABLE_BUTTON_ENABLE - static report_programmable_button_t report = { - .report_id = REPORT_ID_PROGRAMMABLE_BUTTON, - }; - - report.usage = data; - if (usbInterruptIsReadyShared()) { - usbSetInterruptShared((void *)&report, sizeof(report)); + usbSetInterruptShared((void *)report, sizeof(report_programmable_button_t)); } #endif } diff --git a/users/bbaserdem/bb-rgb.c b/users/bbaserdem/bb-rgb.c index bdb7f12bbd1..49b91129bae 100644 --- a/users/bbaserdem/bb-rgb.c +++ b/users/bbaserdem/bb-rgb.c @@ -23,7 +23,7 @@ // Allow hooking into the RGB matrix indications using keymap code -// Modulates the brightness of indicator +// Modulates the brightness of indicator RGB helper_dimmer(uint8_t r, uint8_t g, uint8_t b) { RGB output; output.r = r / 2; @@ -63,12 +63,12 @@ __attribute__ ((weak)) bool rgb_matrix_indicators_advanced_keymap(uint8_t led_mi return false; } // Set RGB state depending on layer -void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { +bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { uint8_t thisInd = 3; RGB thisCol; // Load keymap hooks if(rgb_matrix_indicators_advanced_keymap(led_min, led_max)) { - return; + return false; } // Grab color info switch (get_highest_layer(layer_state)) { @@ -110,6 +110,7 @@ void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { break; } helper_painter(led_min, led_max, thisCol, thisInd); + return false; } // Hook into shutdown code to make all perkey LED's red on hitting reset @@ -120,11 +121,3 @@ void shutdown_rgb(void) { // Delay until this registers while(timer_elapsed(timer_start) < 250) {wait_ms(1);} } - -// Hook into suspend code -void suspend_power_down_rgb(void) { - rgb_matrix_set_suspend_state(true); -} -void suspend_wakeup_init_rgb(void) { - rgb_matrix_set_suspend_state(false); -} diff --git a/users/bbaserdem/bb-rgb.h b/users/bbaserdem/bb-rgb.h index 62b6da9f2f2..3e96b997fef 100644 --- a/users/bbaserdem/bb-rgb.h +++ b/users/bbaserdem/bb-rgb.h @@ -21,7 +21,7 @@ */ // For custom indicators -void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max); +bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max); // Hook into shutdown code void shutdown_rgb(void); void suspend_wakeup_init_rgb(void); diff --git a/users/bbaserdem/config.h b/users/bbaserdem/config.h index 477378102b3..3c467d5e7d6 100644 --- a/users/bbaserdem/config.h +++ b/users/bbaserdem/config.h @@ -121,7 +121,7 @@ // For perkey leds #ifdef RGB_MATRIX_ENABLE // This is not working -//# define RGB_DISABLE_TIMEOUT 1800000 +//# define RGB_MATRIX_TIMEOUT 1800000 # define RGB_DISABLE_WHEN_USB_SUSPENDED true // Start using this mode # define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_RAINBOW_BEACON diff --git a/users/curry/rgb_matrix_user.c b/users/curry/rgb_matrix_user.c index 053226ab609..3c2008aa011 100644 --- a/users/curry/rgb_matrix_user.c +++ b/users/curry/rgb_matrix_user.c @@ -36,7 +36,7 @@ void check_default_layer(uint8_t mode, uint8_t type) { } } -void rgb_matrix_indicators_user(void) { +bool rgb_matrix_indicators_user(void) { if (userspace_config.rgb_layer_change && rgb_matrix_config.enable) { switch (get_highest_layer(layer_state)) { case _RAISE: @@ -55,6 +55,7 @@ void rgb_matrix_indicators_user(void) { } check_default_layer(0, LED_FLAG_MODIFIER); } + return false; } bool process_record_user_rgb(uint16_t keycode, keyrecord_t *record) { diff --git a/users/drashna/callbacks.c b/users/drashna/callbacks.c index 111b5f79d77..40383f124f6 100644 --- a/users/drashna/callbacks.c +++ b/users/drashna/callbacks.c @@ -49,7 +49,7 @@ void keyboard_post_init_user(void) { keyboard_post_init_transport_sync(); #endif #ifdef I2C_SCANNER_ENABLE - matrix_scan_i2c(); + keyboard_post_init_i2c(); #endif keyboard_post_init_keymap(); diff --git a/users/drashna/drashna.c b/users/drashna/drashna.c index 91f3a06b7cf..d63f05b5903 100644 --- a/users/drashna/drashna.c +++ b/users/drashna/drashna.c @@ -129,3 +129,15 @@ void keyboard_post_init_i2c(void) { scan_timer = timer_read(); } #endif + +#if defined(AUTOCORRECT_ENABLE) && defined(AUDIO_ENABLE) +# ifdef USER_SONG_LIST +float autocorrect_song[][2] = SONG(MARIO_GAMEOVER); +# else +float autocorrect_song[][2] = SONG(PLOVER_GOODBYE_SOUND); +# endif +bool apply_autocorrect(uint8_t backspaces, const char *str) { + PLAY_SONG(autocorrect_song); + return true; +} +#endif diff --git a/users/drashna/keyrecords/autocorrection/autocorrection.c b/users/drashna/keyrecords/autocorrection/autocorrection.c deleted file mode 100644 index 90fdba8f5eb..00000000000 --- a/users/drashna/keyrecords/autocorrection/autocorrection.c +++ /dev/null @@ -1,304 +0,0 @@ -// Copyright 2021 Google LLC -// Copyright 2021 @filterpaper -// SPDX-License-Identifier: Apache-2.0 -// Original source: https://getreuer.info/posts/keyboards/autocorrection - -#include "autocorrection.h" -#include - -#if __has_include("autocorrection_data.h") -# pragma GCC push_options -# pragma GCC optimize("O0") -# include "autocorrection_data.h" -# ifndef AUTOCORRECTION_MIN_LENGTH -# define AUTOCORRECTION_MIN_LENGTH AUTOCORRECT_MIN_LENGTH -# endif -# ifndef AUTOCORRECTION_MAX_LENGTH -# define AUTOCORRECTION_MAX_LENGTH AUTOCORRECT_MAX_LENGTH -# endif -# define autocorrection_data autocorrect_data -# if AUTOCORRECTION_MIN_LENGTH < 4 -# error Minimum Length is too short and may cause overflows -# endif -# if DICTIONARY_SIZE > SIZE_MAX -# error Dictionary size excees maximum size permitted -# endif - -static uint8_t typo_buffer[AUTOCORRECT_MAX_LENGTH] = {KC_SPC}; -static uint8_t typo_buffer_size = 1; - -/** - * @brief function for querying the enabled state of autocorrect - * - * @return true if enabled - * @return false if disabled - */ -bool autocorrect_is_enabled(void) { - return userspace_config.autocorrection; -} - -/** - * @brief Enables autocorrect and saves state to eeprom - * - */ -void autocorrect_enable(void) { - userspace_config.autocorrection = true; - eeconfig_update_user(userspace_config.raw); -} - -/** - * @brief Disables autocorrect and saves state to eeprom - * - */ -void autocorrect_disable(void) { - userspace_config.autocorrection = false; - typo_buffer_size = 0; - eeconfig_update_user(userspace_config.raw); -} - -/** - * @brief Toggles autocorrect's status and save state to eeprom - * - */ -void autocorrect_toggle(void) { - userspace_config.autocorrection = !userspace_config.autocorrection; - typo_buffer_size = 0; - eeconfig_update_user(userspace_config.raw); -} - -/** - * @brief handler for determining if autocorrect should process keypress - * - * @param keycode Keycode registered by matrix press, per keymap - * @param record keyrecord_t structure - * @param typo_buffer_size passed along to allow resetting of autocorrect buffer - * @param mods allow processing of mod status - * @return true Allow autocorection - * @return false Stop processing and escape from autocorrect. - */ -__attribute__((weak)) bool process_autocorrect_user(uint16_t *keycode, keyrecord_t *record, uint8_t *typo_buffer_size, uint8_t *mods) { - // See quantum_keycodes.h for reference on these matched ranges. - switch (*keycode) { - // Exclude these keycodes from processing. - case KC_LSFT: - case KC_RSFT: - case KC_CAPS: - case QK_TO ... QK_ONE_SHOT_LAYER_MAX: - case QK_LAYER_TAP_TOGGLE ... QK_LAYER_MOD_MAX: - case QK_ONE_SHOT_MOD ... QK_ONE_SHOT_MOD_MAX: - return false; - - // Mask for base keycode from shifted keys. - case QK_LSFT ... QK_LSFT + 255: - case QK_RSFT ... QK_RSFT + 255: - if (*keycode >= QK_LSFT && *keycode <= (QK_LSFT + 255)) { - *mods |= MOD_LSFT; - } else { - *mods |= MOD_RSFT; - } - *keycode &= 0xFF; // Get the basic keycode. - return true; -# ifndef NO_ACTION_TAPPING - // Exclude tap-hold keys when they are held down - // and mask for base keycode when they are tapped. - case QK_LAYER_TAP ... QK_LAYER_TAP_MAX: -# ifdef NO_ACTION_LAYER - // Exclude Layer Tap, if layers are disabled - // but action tapping is still enabled. - return false; -# endif - case QK_MOD_TAP ... QK_MOD_TAP_MAX: - // Exclude hold keycode - if (!record->tap.count) { - return false; - } - *keycode &= 0xFF; - break; -# else - case QK_MOD_TAP ... QK_MOD_TAP_MAX: - case QK_LAYER_TAP ... QK_LAYER_TAP_MAX: - // Exclude if disabled - return false; -# endif - // Exclude swap hands keys when they are held down - // and mask for base keycode when they are tapped. - case QK_SWAP_HANDS ... QK_SWAP_HANDS_MAX: -# ifdef SWAP_HANDS_ENABLE - if (*keycode >= 0x56F0 || !record->tap.count) { - return false; - } - *keycode &= 0xFF; - break; -# else - // Exclude if disabled - return false; -# endif - } - - // Disable autocorrect while a mod other than shift is active. - if ((*mods & ~MOD_MASK_SHIFT) != 0) { - *typo_buffer_size = 0; - return false; - } - - return true; -} - -/** - * @brief handling for when autocorrection has been triggered - * - * @param backspaces number of characters to remove - * @param str pointer to PROGMEM string to replace mistyped seletion with - * @return true apply correction - * @return false user handled replacement - */ -__attribute__((weak)) bool apply_autocorrect(uint8_t backspaces, const char *str) { - return true; -} - -/** - * @brief Process handler for autocorrect feature - * - * @param keycode Keycode registered by matrix press, per keymap - * @param record keyrecord_t structure - * @return true Continue processing keycodes, and send to host - * @return false Stop processing keycodes, and don't send to host - */ -bool process_autocorrection(uint16_t keycode, keyrecord_t *record) { - uint8_t mods = get_mods(); -# ifndef NO_ACTION_ONESHOT - mods |= get_oneshot_mods(); -# endif - - if ((keycode >= AUTOCORRECT_ON && keycode <= AUTOCORRECT_TOGGLE) && record->event.pressed) { - if (keycode == AUTOCORRECT_ON) { - autocorrect_enable(); - } else if (keycode == AUTOCORRECT_OFF) { - autocorrect_disable(); - } else if (keycode == AUTOCORRECT_TOGGLE) { - autocorrect_toggle(); - } else { - return true; - } - - return false; - } - - if (!autocorrect_is_enabled()) { - typo_buffer_size = 0; - return true; - } - - if (!record->event.pressed) { - return true; - } - - // autocorrect keycode verification and extraction - if (!process_autocorrect_user(&keycode, record, &typo_buffer_size, &mods)) { - return true; - } - - // keycode buffer check - switch (keycode) { - case KC_A ... KC_Z: - // process normally - break; - case KC_1 ... KC_0: - case KC_TAB ... KC_SEMICOLON: - case KC_GRAVE ... KC_SLASH: - // Set a word boundary if space, period, digit, etc. is pressed. - keycode = KC_SPC; - break; - case KC_ENTER: - // Behave more conservatively for the enter key. Reset, so that enter - // can't be used on a word ending. - typo_buffer_size = 0; - keycode = KC_SPC; - break; - case KC_BSPC: - // Remove last character from the buffer. - if (typo_buffer_size > 0) { - --typo_buffer_size; - } - return true; - case KC_QUOTE: - // Treat " (shifted ') as a word boundary. - if ((mods & MOD_MASK_SHIFT) != 0) { - keycode = KC_SPC; - } - break; - default: - // Clear state if some other non-alpha key is pressed. - typo_buffer_size = 0; - return true; - } - - // Rotate oldest character if buffer is full. - if (typo_buffer_size >= AUTOCORRECT_MAX_LENGTH) { - memmove(typo_buffer, typo_buffer + 1, AUTOCORRECT_MAX_LENGTH - 1); - typo_buffer_size = AUTOCORRECT_MAX_LENGTH - 1; - } - - // Append `keycode` to buffer. - typo_buffer[typo_buffer_size++] = keycode; - // Return if buffer is smaller than the shortest word. - if (typo_buffer_size < AUTOCORRECT_MIN_LENGTH) { - return true; - } - - // Check for typo in buffer using a trie stored in `autocorrect_data`. - uint16_t state = 0; - uint8_t code = pgm_read_byte(autocorrect_data + state); - for (int8_t i = typo_buffer_size - 1; i >= 0; --i) { - uint8_t const key_i = typo_buffer[i]; - - if (code & 64) { // Check for match in node with multiple children. - code &= 63; - for (; code != key_i; code = pgm_read_byte(autocorrect_data + (state += 3))) { - if (!code) return true; - } - // Follow link to child node. - state = (pgm_read_byte(autocorrect_data + state + 1) | pgm_read_byte(autocorrect_data + state + 2) << 8); - // Check for match in node with single child. - } else if (code != key_i) { - return true; - } else if (!(code = pgm_read_byte(autocorrect_data + (++state)))) { - ++state; - } - - // Stop if `state` becomes an invalid index. This should not normally - // happen, it is a safeguard in case of a bug, data corruption, etc. - if (state >= DICTIONARY_SIZE) { - return true; - } - - code = pgm_read_byte(autocorrect_data + state); - - if (code & 128) { // A typo was found! Apply autocorrect. - const uint8_t backspaces = (code & 63) + !record->event.pressed; - if (apply_autocorrect(backspaces, (char const *)(autocorrect_data + state + 1))) { - for (uint8_t i = 0; i < backspaces; ++i) { - tap_code(KC_BSPC); - } - send_string_P((char const *)(autocorrect_data + state + 1)); - } - - if (keycode == KC_SPC) { - typo_buffer[0] = KC_SPC; - typo_buffer_size = 1; - return true; - } else { - typo_buffer_size = 0; - return false; - } - } - } - return true; -} -# pragma GCC pop_options -#else -# pragma message "Warning!!! Autocorrect is not corretly setup!" -bool process_autocorrection(uint16_t keycode, keyrecord_t* record) { - return true; -} -#endif diff --git a/users/drashna/keyrecords/autocorrection/autocorrection.h b/users/drashna/keyrecords/autocorrection/autocorrection.h deleted file mode 100644 index 8946b91f1fa..00000000000 --- a/users/drashna/keyrecords/autocorrection/autocorrection.h +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright 2021 Google LLC -// Copyright 2021 @filterpaper -// SPDX-License-Identifier: Apache-2.0 -// Original source: https://getreuer.info/posts/keyboards/autocorrection - -#pragma once - -#include "drashna.h" - -bool process_autocorrection(uint16_t keycode, keyrecord_t *record); -bool process_autocorrect_user(uint16_t *keycode, keyrecord_t *record, uint8_t *typo_buffer_size, uint8_t *mods); -bool apply_autocorrect(uint8_t backspaces, const char *str); - -bool autocorrect_is_enabled(void); -void autocorrect_enable(void); -void autocorrect_disable(void); -void autocorrect_toggle(void); diff --git a/users/drashna/keyrecords/autocorrection/autocorrection_data.h b/users/drashna/keyrecords/autocorrection/autocorrection_data.h deleted file mode 100644 index 90484d3b12c..00000000000 --- a/users/drashna/keyrecords/autocorrection/autocorrection_data.h +++ /dev/null @@ -1 +0,0 @@ -#include "autocorrect_data.h" diff --git a/users/drashna/keyrecords/autocorrection/make_autocorrection_data.py b/users/drashna/keyrecords/autocorrection/make_autocorrection_data.py deleted file mode 100755 index 0dd9b78b9cc..00000000000 --- a/users/drashna/keyrecords/autocorrection/make_autocorrection_data.py +++ /dev/null @@ -1,298 +0,0 @@ -# Copyright 2021-2022 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -"""Python program to make autocorrection_data.h. - -This program reads "autocorrection_dict.txt" and generates a C source file -"autocorrection_data.h" with a serialized trie embedded as an array. Run this -program without arguments like - -$ python3 make_autocorrection_data.py - -Or to read from a different typo dict file, pass it as the first argument like - -$ python3 make_autocorrection_data.py dict.txt - -Each line of the dict file defines one typo and its correction with the syntax -"typo -> correction". Blank lines or lines starting with '#' are ignored. -Example: - - :thier -> their - dosen't -> doesn't - fitler -> filter - lenght -> length - ouput -> output - widht -> width - -See autocorrection_dict_extra.txt for a larger example. - -For full documentation, see -https://getreuer.info/posts/keyboards/autocorrection -""" - -import sys -import textwrap -from typing import Any, Dict, Iterator, List, Tuple - -try: - from english_words import english_words_lower_alpha_set as CORRECT_WORDS -except ImportError: - print('Autocorrection will falsely trigger when a typo is a substring of a ' - 'correctly spelled word. To check for this, install the english_words ' - 'package and rerun this script:\n\n pip install english_words\n') - # Use a minimal word list as a fallback. - CORRECT_WORDS = ('apparent', 'association', 'available', 'classification', - 'effect', 'entertainment', 'fantastic', 'information', - 'integrate', 'international', 'language', 'loosest', - 'manual', 'nothing', 'provides', 'reference', 'statehood', - 'technology', 'virtually', 'wealthier', 'wonderful') - -KC_A = 4 -KC_SPC = 0x2c -KC_QUOT = 0x34 - -TYPO_CHARS = dict( - [ - ("'", KC_QUOT), - (':', KC_SPC), # "Word break" character. - ] + - # Characters a-z. - [(chr(c), c + KC_A - ord('a')) for c in range(ord('a'), ord('z') + 1)] -) - - -def parse_file(file_name: str) -> List[Tuple[str, str]]: - """Parses autocorrections dictionary file. - - Each line of the file defines one typo and its correction with the syntax - "typo -> correction". Blank lines or lines starting with '#' are ignored. The - function validates that typos only have characters in TYPO_CHARS, that - typos are not substrings of other typos, and checking that typos don't trigger - on CORRECT_WORDS. - - Args: - file_name: String, path of the autocorrections dictionary. - Returns: - List of (typo, correction) tuples. - """ - correct_words = ('information', 'available', 'international', 'language', 'loosest', 'reference', 'wealthier', 'entertainment', 'association', 'provides', 'technology', 'statehood') - autocorrections = [] - typos = set() - for line_number, typo, correction in parse_file_lines(file_name): - if typo in typos: - print(f'Warning:{line_number}: Ignoring duplicate typo: "{typo}"') - continue - - # Check that `typo` is valid. - if not(all([c in TYPO_CHARS for c in typo])): - print(f'Error:{line_number}: Typo "{typo}" has ' - 'characters other than ' + ''.join(TYPO_CHARS.keys())) - sys.exit(1) - for other_typo in typos: - if typo in other_typo or other_typo in typo: - print(f'Error:{line_number}: Typos may not be substrings of one ' - f'another, otherwise the longer typo would never trigger: ' - f'"{typo}" vs. "{other_typo}".') - sys.exit(1) - if len(typo) < 5: - print(f'Warning:{line_number}: It is suggested that typos are at ' - f'least 5 characters long to avoid false triggers: "{typo}"') - - check_typo_against_dictionary(typo, line_number, correct_words) - - autocorrections.append((typo, correction)) - typos.add(typo) - - return autocorrections - - -def make_trie(autocorrections: List[Tuple[str, str]]) -> Dict[str, Any]: - """Makes a trie from the the typos, writing in reverse. - - Args: - autocorrections: List of (typo, correction) tuples. - Returns: - Dict of dict, representing the trie. - """ - trie = {} - for typo, correction in autocorrections: - node = trie - for letter in typo[::-1]: - node = node.setdefault(letter, {}) - node['LEAF'] = (typo, correction) - - return trie - - -def parse_file_lines(file_name: str) -> Iterator[Tuple[int, str, str]]: - """Parses lines read from `file_name` into typo-correction pairs.""" - - line_number = 0 - for line in open(file_name, 'rt'): - line_number += 1 - line = line.strip() - if line and line[0] != '#': - # Parse syntax "typo -> correction", using strip to ignore indenting. - tokens = [token.strip() for token in line.split('->', 1)] - if len(tokens) != 2 or not tokens[0]: - print(f'Error:{line_number}: Invalid syntax: "{line}"') - sys.exit(1) - - typo, correction = tokens - typo = typo.lower() # Force typos to lowercase. - typo = typo.replace(' ', ':') - - yield line_number, typo, correction - - -def check_typo_against_dictionary(typo: str, line_number: int, correct_words) -> None: - """Checks `typo` against English dictionary words.""" - - if typo.startswith(':') and typo.endswith(':'): - if typo[1:-1] in correct_words: - print(f'Warning:{line_number}: Typo "{typo}" is a correctly spelled dictionary word.') - elif typo.startswith(':') and not typo.endswith(':'): - for word in correct_words: - if word.startswith(typo[1:]): - print(f'Warning:{line_number}: Typo "{typo}" would falsely trigger on correctly spelled word "{word}".') - elif not typo.startswith(':') and typo.endswith(':'): - for word in correct_words: - if word.endswith(typo[:-1]): - print(f'Warning:{line_number}: Typo "{typo}" would falsely trigger on correctly spelled word "{word}".') - elif not typo.startswith(':') and not typo.endswith(':'): - for word in correct_words: - if typo in word: - print(f'Warning:{line_number}: Typo "{typo}" would falsely trigger on correctly spelled word "{word}".') - - -def serialize_trie(autocorrections: List[Tuple[str, str]], - trie: Dict[str, Any]) -> List[int]: - """Serializes trie and correction data in a form readable by the C code. - - Args: - autocorrections: List of (typo, correction) tuples. - trie: Dict of dicts. - Returns: - List of ints in the range 0-255. - """ - table = [] - - # Traverse trie in depth first order. - def traverse(trie_node: Dict[str, Any]) -> Dict[str, Any]: - if 'LEAF' in trie_node: # Handle a leaf trie node. - typo, correction = trie_node['LEAF'] - word_boundary_ending = typo[-1] == ':' - typo = typo.strip(':') - i = 0 # Make the autocorrection data for this entry and serialize it. - while i < min(len(typo), len(correction)) and typo[i] == correction[i]: - i += 1 - backspaces = len(typo) - i - 1 + word_boundary_ending - assert 0 <= backspaces <= 63 - correction = correction[i:] - data = [backspaces + 128] + list(bytes(correction, 'ascii')) + [0] - - entry = {'data': data, 'links': [], 'byte_offset': 0} - table.append(entry) - elif len(trie_node) == 1: # Handle trie node with a single child. - c, trie_node = next(iter(trie_node.items())) - entry = {'chars': c, 'byte_offset': 0} - - # It's common for a trie to have long chains of single-child nodes. We - # find the whole chain so that we can serialize it more efficiently. - while len(trie_node) == 1 and 'LEAF' not in trie_node: - c, trie_node = next(iter(trie_node.items())) - entry['chars'] += c - - table.append(entry) - entry['links'] = [traverse(trie_node)] - else: # Handle trie node with multiple children. - entry = {'chars': ''.join(sorted(trie_node.keys())), 'byte_offset': 0} - table.append(entry) - entry['links'] = [traverse(trie_node[c]) for c in entry['chars']] - return entry - - traverse(trie) - - def serialize(e: Dict[str, Any]) -> List[int]: - if not e['links']: # Handle a leaf table entry. - return e['data'] - elif len(e['links']) == 1: # Handle a chain table entry. - return [TYPO_CHARS[c] for c in e['chars']] + [0] - else: # Handle a branch table entry. - data = [] - for c, link in zip(e['chars'], e['links']): - data += [TYPO_CHARS[c] | (0 if data else 64)] + encode_link(link) - return data + [0] - - byte_offset = 0 - for e in table: # To encode links, first compute byte offset of each entry. - e['byte_offset'] = byte_offset - byte_offset += len(serialize(e)) - - return [b for e in table for b in serialize(e)] # Serialize final table. - - -def encode_link(link: Dict[str, Any]) -> List[int]: - """Encodes a node link as two bytes.""" - byte_offset = link['byte_offset'] - if not (0 <= byte_offset <= 0xffff): - print('Error: The autocorrection table is too large, a node link exceeds ' - '64KB limit. Try reducing the autocorrection dict to fewer entries.') - sys.exit(1) - return [byte_offset & 255, byte_offset >> 8] - - -def write_generated_code(autocorrections: List[Tuple[str, str]], - data: List[int], - file_name: str) -> None: - """Writes autocorrection data as generated C code to `file_name`. - - Args: - autocorrections: List of (typo, correction) tuples. - data: List of ints in 0-255, the serialized trie. - file_name: String, path of the output C file. - """ - assert all(0 <= b <= 255 for b in data) - - def typo_len(e: Tuple[str, str]) -> int: - return len(e[0]) - - min_typo = min(autocorrections, key=typo_len)[0] - max_typo = max(autocorrections, key=typo_len)[0] - generated_code = ''.join([ - '// Generated code.\n\n', - f'// Autocorrection dictionary ({len(autocorrections)} entries):\n', - ''.join(sorted(f'// {typo:<{len(max_typo)}} -> {correction}\n' - for typo, correction in autocorrections)), - f'\n#define AUTOCORRECTION_MIN_LENGTH {len(min_typo)} // "{min_typo}"\n', - f'#define AUTOCORRECTION_MAX_LENGTH {len(max_typo)} // "{max_typo}"\n\n', - textwrap.fill('static const uint8_t autocorrection_data[%d] PROGMEM = {%s};' % ( - len(data), ', '.join(map(str, data))), width=80, subsequent_indent=' '), - '\n\n']) - - with open(file_name, 'wt') as f: - f.write(generated_code) - - -def main(argv): - dict_file = argv[1] if len(argv) > 1 else 'autocorrection_dict.txt' - autocorrections = parse_file(dict_file) - trie = make_trie(autocorrections) - data = serialize_trie(autocorrections, trie) - print(f'Processed %d autocorrection entries to table with %d bytes.' - % (len(autocorrections), len(data))) - write_generated_code(autocorrections, data, 'autocorrection_data.h') - -if __name__ == '__main__': - main(sys.argv) diff --git a/users/drashna/keyrecords/autocorrection/readme.md b/users/drashna/keyrecords/autocorrection/readme.md deleted file mode 100644 index d9205087931..00000000000 --- a/users/drashna/keyrecords/autocorrection/readme.md +++ /dev/null @@ -1,301 +0,0 @@ -# Autocorrection - -This is taken from [Pascal Getreuer's implemenation](https://getreuer.info/posts/keyboards/autocorrection/index.html), with a number of modifications. - -To enabled Autocorrection, add `AUTOCORRECTION_ENABLE = yes` to your `rules.mk` file. - -This is mostly a reproduction of Pascal's docs: - -## Overview -Some words are more prone to typos than others. I have a habit of typo-ing *ouput* and *fitler*. This post describes a rudimentary autocorrection implementation that runs on your keyboard with QMK. - -The animation below shows the effect as I type *aparent*. As I press the final t, the autocorrection feature detects the typo and automatically sends keys to correct it: - -Example: Autocorrecting *aparent* → apparent. - -**Features**: -* It runs on your keyboard, so it is always active no matter what software. -* Low resource cost: for an autocorrection dictionary of 70 entries, firmware size cost is 1620 bytes and average CPU cost per key press is about 20 µs. -* It is case insensitive. It corrects Fitler to Filter and FITLER to FILTER. -* It works within words. It corrects fitlered, fitlering, and useful for programming, within longer identifiers like DesignButterworthFitle*r. - -**Limitations**: Running autocorrection on the keyboard comes with some constraints. It is rudimentary like I said: -* It is limited to alphabet characters a–z. No accented or Unicode letters; I’m sorry this probably isn’t useful for languages besides English. -* It does not follow mouse or hotkey driven cursor movement. - -## Taking autocorrection for a test drive -With the above flashed to your keyboard, try for instance typing the misspelled word ouput. The instant you type the final t, the word should be speedily autocorrected to output. As further tests, try becuase and invliad. - -Here is the full list of typos corrected using the provided autocorrection_data.h file. : is a special character denoting a word break. See below for how to change the autocorrection dictionary. - -``` -:guage -> gauge -:the:the: -> the -:thier -> their -:ture -> true -accomodate -> accommodate -acommodate -> accommodate -aparent -> apparent -aparrent -> apparent -apparant -> apparent -apparrent -> apparent -aquire -> acquire -becuase -> because -cauhgt -> caught -cheif -> chief -choosen -> chosen -cieling -> ceiling -collegue -> colleague -concensus -> consensus -contians -> contains -cosnt -> const -dervied -> derived -fales -> false -fasle -> false -fitler -> filter -flase -> false -foward -> forward -frequecy -> frequency -gaurantee -> guarantee -guaratee -> guarantee -heigth -> height -heirarchy -> hierarchy -inclued -> include -interator -> iterator -intput -> input -invliad -> invalid -lenght -> length -liasion -> liaison -libary -> library -listner -> listener -looses: -> loses -looup -> lookup -manefist -> manifest -namesapce -> namespace -namespcae -> namespace -occassion -> occasion -occured -> occurred -ouptut -> output -ouput -> output -overide -> override -postion -> position -priviledge -> privilege -psuedo -> pseudo -recieve -> receive -refered -> referred -relevent -> relevant -repitition -> repetition -reuslt -> result -retrun -> return -retun -> return -reutrn -> return -saftey -> safety -seperate -> separate -singed -> signed -stirng -> string -strign -> string -swithc -> switch -swtich -> switch -thresold -> threshold -udpate -> update -widht -> width -``` - -## Firmware size and CPU costs -I am anxiously aware that a keyboard microcontroller has limited resources. So I was sure to measure how much memory and CPU time autocorrection consumes during development. These measurements are for the example autocorrection dictionary as used above, which has 70 entries: -* **Firmware size**: Autocorrection increases my firmware size by a total of 1620 bytes. Breaking that down, 1104 bytes are for the autocorrection_data array and 516 bytes for the autocorrection code. -* **CPU time**: On my Elite-C microcontrollers, the average CPU time for process_autocorrection to process an alpha key press is around 20 µs. Consider this a rough order-of-magnitude cost. Processing cost increases (more trie nodes are visited) when recent input is close to a known typo, with the max being when a long typo is matched. - -The costs are not free but reasonable. For reference, the firmware size cost for mouse keys is 2124 bytes and the CPU time to process a layer switch is about 70 µs, so autocorrection is cheaper than those things. Of course, the cost scales with the size of the autocorrection dictionary, so keep that in mind if you add a lot more entries. - -## How does it work? -The function process_autocorrection maintains a small buffer of recent key presses. On each key press, it checks whether the buffer ends in a recognized typo, and if so, automatically sends keystrokes to correct it. - -The tricky part is how to efficiently check the buffer for typos. We don’t want to spend too much memory or time on storing or searching the typos. A good solution is to represent the typos with a trie data structure. A trie is a tree data structure where each node is a letter, and words are formed by following a path to one of the leaves. - - -An example trie. -Since we search whether the buffer ends in a typo, we store the trie writing in reverse. The trie is queried starting from the last letter, then second to last letter, and so on, until either a letter doesn’t match or we reach a leaf, meaning a typo was found. - -## Changing the autocorrection dictionary -The file autocorrection_data.h encodes the typos to correct. While you could simply use the version of this file provided above for a practical configuration, you can make your own to personalize the autocorrection to your most troublesome typos: - -1. First, create an autocorrection dictionary autocorrection_dict.txt, like - - ``` -:thier -> their -fitler -> filter -lenght -> length -ouput -> output -widht -> width -``` - For a practical 70-entry example, see autocorrection_dict.txt. And for a yet larger 400-entry example, see autocorrection_dict_extra.txt. - - The syntax is `typo -> correction`. Typos and corrections are case insensitive, and any whitespace before or after the typo and correction is ignored. The typo must be only the letters a–z, or the special character : representing a word break. The correction may have any characters. - -2. Use the make_autocorrection_data.py Python script to process the dictionary - -``` -$ python3 make_autocorrection_data.py -Processed 70 autocorrection entries to table with 1104 bytes. -``` -The script arranges the entries in autocorrection_dict.txt into a trie and generates autocorrection_data.h with the serialized trie embedded as an array. - -3. Finally, recompile and flash your keymap. - -The generated C header looks like this: - -autocorrection_data.h -```c -// Generated code. - -#define AUTOCORRECTION_MIN_LENGTH 5 // "cheif" -#define AUTOCORRECTION_MAX_LENGTH 10 // "accomodate" - -static const uint8_t autocorrection_data[1104] PROGMEM = {108, 43, 0, 6, - 71, 0, 7, 81, 0, 8, 199, 0, 9, 240, 1, 10, 250, 1, 11, 26, 2, 17, 53, 2, - 18, 190, 2, 19, 202, 2, 21, 212, 2, 22, 20, 3, 23, 67, 3, 28, 16, 4, 0, - 72, 50, 0, 22, 60, 0, 0, 11, 23, 44, 8, 11, 23, 44, 0, 132, 0, 8, 22, 18, - 18, 15, 0, 132, 115, 101, 115, 0, 11, 23, 12, 26, 22, 0, 129, 99, 104, 0, - 68, 94, 0, 8, 106, 0, 15, 174, 0, 21, 187, 0, 0, 12, 15, 25, 17, 12, 0, - 131, 97, 108, 105, 100, 0, 74, 119, 0, 12, 129, 0, 21, 140, 0, 24, 165, - 0, 0, 17, 12, 22, 0, 131, 103, 110, 101, 100, 0, 25, 21, 8, 7, 0, 131, - 105, 118, 101, 100, 0, 72, 147, 0, 24, 156, 0, 0, 9, 8, 21, 0, 129, 114, - 101, 100, 0, 6, 6, 18, 0, 129, 114, 101, 100, 0, 15, 6, 17, 12, 0, 129, - 100, 101, 0, 18, 22, 8, 21, 11, 23, 0, 130, 104, 111, 108, 100, 0, 4, 26, - 18, 9, 0, 131, 114, 119, 97, 114, 100, 0, 68, 233, 0, 6, 246, 0, 7, 4, 1, - 8, 16, 1, 10, 52, 1, 15, 81, 1, 21, 90, 1, 22, 117, 1, 23, 144, 1, 24, - 215, 1, 25, 228, 1, 0, 6, 19, 22, 8, 16, 4, 17, 0, 130, 97, 99, 101, 0, - 19, 4, 22, 8, 16, 4, 17, 0, 131, 112, 97, 99, 101, 0, 12, 21, 8, 25, 18, - 0, 130, 114, 105, 100, 101, 0, 23, 0, 68, 25, 1, 17, 36, 1, 0, 21, 4, 24, - 10, 0, 130, 110, 116, 101, 101, 0, 4, 21, 24, 4, 10, 0, 135, 117, 97, - 114, 97, 110, 116, 101, 101, 0, 68, 59, 1, 7, 69, 1, 0, 24, 10, 44, 0, - 131, 97, 117, 103, 101, 0, 8, 15, 12, 25, 12, 21, 19, 0, 130, 103, 101, - 0, 22, 4, 9, 0, 130, 108, 115, 101, 0, 76, 97, 1, 24, 109, 1, 0, 24, 20, - 4, 0, 132, 99, 113, 117, 105, 114, 101, 0, 23, 44, 0, 130, 114, 117, 101, - 0, 4, 0, 79, 126, 1, 24, 134, 1, 0, 9, 0, 131, 97, 108, 115, 101, 0, 6, - 8, 5, 0, 131, 97, 117, 115, 101, 0, 4, 0, 71, 156, 1, 19, 193, 1, 21, - 203, 1, 0, 18, 16, 0, 80, 166, 1, 18, 181, 1, 0, 18, 6, 4, 0, 135, 99, - 111, 109, 109, 111, 100, 97, 116, 101, 0, 6, 6, 4, 0, 132, 109, 111, 100, - 97, 116, 101, 0, 7, 24, 0, 132, 112, 100, 97, 116, 101, 0, 8, 19, 8, 22, - 0, 132, 97, 114, 97, 116, 101, 0, 10, 8, 15, 15, 18, 6, 0, 130, 97, 103, - 117, 101, 0, 8, 12, 6, 8, 21, 0, 131, 101, 105, 118, 101, 0, 12, 8, 11, - 6, 0, 130, 105, 101, 102, 0, 17, 0, 76, 3, 2, 21, 16, 2, 0, 15, 8, 12, 6, - 0, 133, 101, 105, 108, 105, 110, 103, 0, 12, 23, 22, 0, 131, 114, 105, - 110, 103, 0, 70, 33, 2, 23, 44, 2, 0, 12, 23, 26, 22, 0, 131, 105, 116, - 99, 104, 0, 10, 12, 8, 11, 0, 129, 104, 116, 0, 72, 69, 2, 10, 80, 2, 18, - 89, 2, 21, 156, 2, 24, 167, 2, 0, 22, 18, 18, 11, 6, 0, 131, 115, 101, - 110, 0, 12, 21, 23, 22, 0, 129, 110, 103, 0, 12, 0, 86, 98, 2, 23, 124, - 2, 0, 68, 105, 2, 22, 114, 2, 0, 12, 15, 0, 131, 105, 115, 111, 110, 0, - 4, 6, 6, 18, 0, 131, 105, 111, 110, 0, 76, 131, 2, 22, 146, 2, 0, 23, 12, - 19, 8, 21, 0, 134, 101, 116, 105, 116, 105, 111, 110, 0, 18, 19, 0, 131, - 105, 116, 105, 111, 110, 0, 23, 24, 8, 21, 0, 131, 116, 117, 114, 110, 0, - 85, 174, 2, 23, 183, 2, 0, 23, 8, 21, 0, 130, 117, 114, 110, 0, 8, 21, 0, - 128, 114, 110, 0, 7, 8, 24, 22, 19, 0, 131, 101, 117, 100, 111, 0, 24, - 18, 18, 15, 0, 129, 107, 117, 112, 0, 72, 219, 2, 18, 3, 3, 0, 76, 229, - 2, 15, 238, 2, 17, 248, 2, 0, 11, 23, 44, 0, 130, 101, 105, 114, 0, 23, - 12, 9, 0, 131, 108, 116, 101, 114, 0, 23, 22, 12, 15, 0, 130, 101, 110, - 101, 114, 0, 23, 4, 21, 8, 23, 17, 12, 0, 135, 116, 101, 114, 97, 116, - 111, 114, 0, 72, 30, 3, 17, 38, 3, 24, 51, 3, 0, 15, 4, 9, 0, 129, 115, - 101, 0, 4, 12, 23, 17, 18, 6, 0, 131, 97, 105, 110, 115, 0, 22, 17, 8, 6, - 17, 18, 6, 0, 133, 115, 101, 110, 115, 117, 115, 0, 74, 86, 3, 11, 96, 3, - 15, 118, 3, 17, 129, 3, 22, 218, 3, 24, 232, 3, 0, 11, 24, 4, 6, 0, 130, - 103, 104, 116, 0, 71, 103, 3, 10, 110, 3, 0, 12, 26, 0, 129, 116, 104, 0, - 17, 8, 15, 0, 129, 116, 104, 0, 22, 24, 8, 21, 0, 131, 115, 117, 108, - 116, 0, 68, 139, 3, 8, 150, 3, 22, 210, 3, 0, 21, 4, 19, 19, 4, 0, 130, - 101, 110, 116, 0, 85, 157, 3, 25, 200, 3, 0, 68, 164, 3, 21, 175, 3, 0, - 19, 4, 0, 132, 112, 97, 114, 101, 110, 116, 0, 4, 19, 0, 68, 185, 3, 19, - 193, 3, 0, 133, 112, 97, 114, 101, 110, 116, 0, 4, 0, 131, 101, 110, 116, - 0, 8, 15, 8, 21, 0, 130, 97, 110, 116, 0, 18, 6, 0, 130, 110, 115, 116, - 0, 12, 9, 8, 17, 4, 16, 0, 132, 105, 102, 101, 115, 116, 0, 83, 239, 3, - 23, 6, 4, 0, 87, 246, 3, 24, 254, 3, 0, 17, 12, 0, 131, 112, 117, 116, 0, - 18, 0, 130, 116, 112, 117, 116, 0, 19, 24, 18, 0, 131, 116, 112, 117, - 116, 0, 70, 29, 4, 8, 41, 4, 11, 51, 4, 21, 69, 4, 0, 8, 24, 20, 8, 21, - 9, 0, 129, 110, 99, 121, 0, 23, 9, 4, 22, 0, 130, 101, 116, 121, 0, 6, - 21, 4, 21, 12, 8, 11, 0, 135, 105, 101, 114, 97, 114, 99, 104, 121, 0, 4, - 5, 12, 15, 0, 130, 114, 97, 114, 121, 0}; -``` - -## Troubleshooting -### Avoiding false triggers -By default, typos are searched within words, to find typos within longer identifiers like maxFitlerOuput. While this is useful, a consequence is that autocorrection will falsely trigger when a typo happens to be a substring of a correctly-spelled word. For instance, if we had thier -> their as an entry, it would falsely trigger on (correct, though relatively uncommon) words like “wealthier” and “filthier.” - -The solution is to set a word break : before and/or after the typo to constrain matching. : matches space, period, comma, underscore, digits, and most other non-alpha characters. - -| Text | thier | :thier | thier: | :thier: | -|------|-------|--------|--------|---------| -|see thier typo|matches|matches|matches|matches| -it’s thiers |matches|matches|no|no| -wealthier words|matches|no|matches|no| - -:thier: is most restrictive, matching only when thier is a whole word. - -The make_autocorrection_data.py script makes an effort to check for entries that would false trigger as substrings of correct words. It searches each typo against a dictionary of 25K English words from the english_words Python package, provided it’s installed. - -### Overriding autocorrection -Occasionally you might actually want to type a typo (for instance, while editing autocorrection_dict.txt) without being autocorrected. Here is a way to do that: - -1. Begin typing the typo. -2. Before typing the last letter, press and release the Ctrl or Alt key. -3. Type the remaining letters. - -This works because the autocorrection implementation doesn’t understand hotkeys, so it resets itself whenever a modifier other than shift is held. - -Alternatively, the `AUTO_CTN` keycode will toggle autocorrection on and off. - -## Closing thoughts -Based on my own use, an autocorrection dictionary of a few dozen entries is enough to help in day-to-day writing. On the other hand, it is of course far from comprehensively checking that every word is spelled correctly. Keyboard microcontrollers might not have the resources check against a full English dictionary any time soon, but a lot of editors and other software have good integrated spell check features. - -I suggest to enable and use spell check in combination with autocorrection: -* Sublime: Open the View menu and enable “Spell Check.” -* Eclipse: Open the Window menu, click Preferences, and search for “Spelling.” -* Vim: Type :set spell, and misspellings will be highlighted. Use ]s to jump to the next misspelled word and z= to get suggested corrections for the word under the cursor. See the :help spell documentation. Vim also has an abbreviations feature that can autocorrect misspellings (see :help abbreviations). -* Emacs: Use M-x flyspell-mode to enable Flyspell mode in the current buffer. Or for programming, use M-x flyspell-prog-mode to check comments and strings only. See the spelling documentation. There is also an abbreviations feature that can do autocorrection. - -Some useful resources: - -* Wikipedia has a [large list of common typos](https://en.wikipedia.org/wiki/Wikipedia:Lists_of_common_misspellings/For_machines). -* EmacsWiki has another [list of typos](https://www.emacswiki.org/emacs/autocorrection_abbrev_defs). -* You can find data on English word frequencies at https://www.wordfrequency.info/samples.asp. - -# Appendix: Trie binary data format -This section details how the trie is serialized to byte data in autocorrection_data. You don’t need to care about this to use this autocorrection implementation. But I document it for the record in case anyone is interested in modifying the implementation, or just curious how it works. - -What I did here is fairly arbitrary, but it is simple to decode and gets the job done. - -## Encoding -All autocorrection data is stored in a single flat array autocorrection_data. Each trie node is associated with a byte offset into this array, where data for that node is encoded, beginning with root at offset 0. There are three kinds of nodes. The highest two bits of the first byte of the node indicate what kind: - -* 00 ⇒ chain node: a trie node with a single child. -* 01 ⇒ branching node: a trie node with multiple children. -* 10 ⇒ leaf node: a leaf, corresponding to a typo and storing its correction. - -An example trie. -Branching node. Each branch is encoded with one byte for the keycode (KC_A–KC_Z) followed by a link to the child node. Links between nodes are 16-bit byte offsets relative to the beginning of the array, serialized in little endian order. - -All branches are serialized this way, one after another, and terminated with a zero byte. As described above, the node is identified as a branch by setting the two high bits of the first byte to 01, done by bitwise ORing the first keycode with 64. keycode. The root node for the above figure would be serialized like: - - +-------+-------+-------+-------+-------+-------+-------+ - | R|64 | node 2 | T | node 3 | 0 | - +-------+-------+-------+-------+-------+-------+-------+ - -Chain node. Tries tend to have long chains of single-child nodes, as seen in the example above with f-i-t-l in fitler. So to save space, we use a different format to encode chains than branching nodes. A chain is encoded as a string of keycodes, beginning with the node closest to the root, and terminated with a zero byte. The child of the last node in the chain is encoded immediately after. That child could be either a branching node or a leaf. - -In the figure above, the f-i-t-l chain is encoded as - - +-------+-------+-------+-------+-------+ - | L | T | I | F | 0 | - +-------+-------+-------+-------+-------+ -If we were to encode this chain using the same format used for branching nodes, we would encode a 16-bit node link with every node, costing 8 more bytes in this example. Across the whole trie, this adds up. Conveniently, we can point to intermediate points in the chain and interpret the bytes in the same way as before. E.g. starting at the i instead of the l, and the subchain has the same format. - -Leaf node. A leaf node corresponds to a particular typo and stores data to correct the typo. The leaf begins with a byte for the number of backspaces to type, and is followed by a null-terminated ASCII string of the replacement text. The idea is, after tapping backspace the indicated number of times, we can simply pass this string to QMK’s send_string_P function. For fitler, we need to tap backspace 3 times (not 4, because we catch the typo as the final ‘r’ is pressed) and replace it with lter. To identify the node as a leaf, the two high bits are set to 10 by ORing the backspace count with 128: - - +-------+-------+-------+-------+-------+-------+ - | 3|128 | 'l' | 't' | 'e' | 'r' | 0 | - +-------+-------+-------+-------+-------+-------+ -## Decoding -This format is by design decodable with fairly simple logic. A 16-bit variable state represents our current position in the trie, initialized with 0 to start at the root node. Then, for each keycode, test the highest two bits in the byte at state to identify the kind of node. - -* 00 ⇒ chain node: If the node’s byte matches the keycode, increment state by one to go to the next byte. If the next byte is zero, increment again to go to the following node. -* 01 ⇒ branching node: Search the branches for one that matches the keycode, and follow its node link. -* 10 ⇒ leaf node: a typo has been found! We read its first byte for the number of backspaces to type, then pass its following bytes to send_string_P to type the correction. diff --git a/users/drashna/keyrecords/process_records.c b/users/drashna/keyrecords/process_records.c index 197fd941717..89d1c80b8f9 100644 --- a/users/drashna/keyrecords/process_records.c +++ b/users/drashna/keyrecords/process_records.c @@ -3,9 +3,6 @@ #include "drashna.h" #include "version.h" -#ifdef AUTOCORRECTION_ENABLE -# include "autocorrection/autocorrection.h" -#endif uint16_t copy_paste_timer; bool host_driver_disabled = false; @@ -64,9 +61,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { #endif #if defined(CUSTOM_POINTING_DEVICE) && process_record_pointing(keycode, record) -#endif -#ifdef AUTOCORRECTION_ENABLE - && process_autocorrection(keycode, record) #endif && true)) { return false; diff --git a/users/drashna/keyrecords/process_records.h b/users/drashna/keyrecords/process_records.h index be31f992cba..cae3620fe49 100644 --- a/users/drashna/keyrecords/process_records.h +++ b/users/drashna/keyrecords/process_records.h @@ -46,9 +46,6 @@ enum userspace_custom_keycodes { KC_ZALGO, KC_SUPER, KC_ACCEL, - AUTOCORRECT_ON, - AUTOCORRECT_OFF, - AUTOCORRECT_TOGGLE, NEW_SAFE_RANGE // use "NEWPLACEHOLDER for keymap specific codes }; diff --git a/users/drashna/oled/oled_stuff.c b/users/drashna/oled/oled_stuff.c index 68801b80a4c..7aee350baf9 100644 --- a/users/drashna/oled/oled_stuff.c +++ b/users/drashna/oled/oled_stuff.c @@ -23,9 +23,6 @@ #ifdef AUDIO_CLICKY # include "process_clicky.h" #endif -#if defined(AUTOCORRECTION_ENABLE) -# include "keyrecords/autocorrection/autocorrection.h" -#endif #include bool is_oled_enabled = true; @@ -458,10 +455,6 @@ void render_bootmagic_status(uint8_t col, uint8_t line) { #endif } -#if defined(CUSTOM_POINTING_DEVICE) -extern bool tap_toggling; -#endif - void render_user_status(uint8_t col, uint8_t line) { #ifdef AUDIO_ENABLE bool is_audio_on = false, l_is_clicky_on = false; @@ -490,9 +483,9 @@ void render_user_status(uint8_t col, uint8_t line) { # if !defined(OLED_DISPLAY_VERBOSE) oled_write_P(PSTR(" "), false); # endif -#elif defined(CUSTOM_POINTING_DEVICE) +#elif defined(POINTING_DEVICE_ENABLE) && defined(POINTING_DEVICE_AUTO_MOUSE_ENABLE) static const char PROGMEM mouse_lock[3] = {0xF2, 0xF3, 0}; - oled_write_P(mouse_lock, tap_toggling); + oled_write_P(mouse_lock, get_auto_mouse_toggle()); #endif #ifdef AUDIO_ENABLE static const char PROGMEM audio_status[2][3] = {{0xE0, 0xE1, 0}, {0xE2, 0xE3, 0}}; @@ -771,8 +764,8 @@ void render_unicode_mode(uint8_t col, uint8_t line) { uint32_t kitty_animation_phases(uint32_t triger_time, void *cb_arg) { static uint32_t anim_frame_duration = 500; -#ifdef CUSTOM_POINTING_DEVICE - if (tap_toggling) { +#if defined(POINTING_DEVICE_ENABLE) && defined(POINTING_DEVICE_AUTO_MOUSE_ENABLE) + if (get_auto_mouse_toggle()) { animation_frame = (animation_frame + 1) % OLED_RTOGI_FRAMES; animation_type = 3; anim_frame_duration = 300; diff --git a/users/drashna/pointing/pointing.c b/users/drashna/pointing/pointing.c index c9a7945a846..1b64502ed37 100644 --- a/users/drashna/pointing/pointing.c +++ b/users/drashna/pointing/pointing.c @@ -3,10 +3,8 @@ #include "pointing.h" -static uint16_t mouse_timer = 0; -static uint16_t mouse_debounce_timer = 0; -static uint8_t mouse_keycode_tracker = 0; -bool tap_toggling = false, enable_acceleration = false; +static uint16_t mouse_debounce_timer = 0; +bool enable_acceleration = false; #ifdef TAPPING_TERM_PER_KEY # define TAP_CHECK get_tapping_term(KC_BTN1, NULL) @@ -17,6 +15,15 @@ bool tap_toggling = false, enable_acceleration = false; # define TAP_CHECK TAPPING_TERM #endif +__attribute__((weak)) void pointing_device_init_keymap(void) {} + +void pointing_device_init_user(void) { + set_auto_mouse_layer(_MOUSE); + set_auto_mouse_enable(true); + + pointing_device_init_keymap(); +} + __attribute__((weak)) report_mouse_t pointing_device_task_keymap(report_mouse_t mouse_report) { return mouse_report; } @@ -26,28 +33,16 @@ report_mouse_t pointing_device_task_user(report_mouse_t mouse_report) { mouse_report.x = 0; mouse_report.y = 0; - if (x != 0 && y != 0) { - mouse_timer = timer_read(); + if (x != 0 && y != 0 && (timer_elapsed(mouse_debounce_timer) > TAP_CHECK)) { #ifdef OLED_ENABLE oled_timer_reset(); #endif - if (timer_elapsed(mouse_debounce_timer) > TAP_CHECK) { - if (enable_acceleration) { - x = (mouse_xy_report_t)(x > 0 ? x * x / 16 + x : -x * x / 16 + x); - y = (mouse_xy_report_t)(y > 0 ? y * y / 16 + y : -y * y / 16 + y); - } - mouse_report.x = x; - mouse_report.y = y; - if (!layer_state_is(_MOUSE)) { - layer_on(_MOUSE); - } - } - } else if (timer_elapsed(mouse_timer) > 650 && layer_state_is(_MOUSE) && !mouse_keycode_tracker && !tap_toggling) { - layer_off(_MOUSE); - } else if (tap_toggling) { - if (!layer_state_is(_MOUSE)) { - layer_on(_MOUSE); + if (enable_acceleration) { + x = (mouse_xy_report_t)(x > 0 ? x * x / 16 + x : -x * x / 16 + x); + y = (mouse_xy_report_t)(y > 0 ? y * y / 16 + y : -y * y / 16 + y); } + mouse_report.x = x; + mouse_report.y = y; } return pointing_device_task_keymap(mouse_report); @@ -55,64 +50,10 @@ report_mouse_t pointing_device_task_user(report_mouse_t mouse_report) { bool process_record_pointing(uint16_t keycode, keyrecord_t* record) { switch (keycode) { - case TT(_MOUSE): - if (record->event.pressed) { - mouse_keycode_tracker++; - } else { -#if TAPPING_TOGGLE != 0 - if (record->tap.count == TAPPING_TOGGLE) { - tap_toggling ^= 1; -# if TAPPING_TOGGLE == 1 - if (!tap_toggling) mouse_keycode_tracker -= record->tap.count + 1; -# else - if (!tap_toggling) mouse_keycode_tracker -= record->tap.count; -# endif - } else { - mouse_keycode_tracker--; - } -#endif - } - mouse_timer = timer_read(); - break; - case TG(_MOUSE): - if (record->event.pressed) { - tap_toggling ^= 1; - } - break; - case MO(_MOUSE): -#if defined(KEYBOARD_ploopy) - case DPI_CONFIG: -#elif (defined(KEYBOARD_bastardkb_charybdis) || defined(KEYBOARD_handwired_tractyl_manuform)) && !defined(NO_CHARYBDIS_KEYCODES) - case SAFE_RANGE ... (CHARYBDIS_SAFE_RANGE-1): -#endif - case KC_MS_UP ... KC_MS_WH_RIGHT: - record->event.pressed ? mouse_keycode_tracker++ : mouse_keycode_tracker--; - mouse_timer = timer_read(); - break; case KC_ACCEL: enable_acceleration = record->event.pressed; - record->event.pressed ? mouse_keycode_tracker++ : mouse_keycode_tracker--; - mouse_timer = timer_read(); break; -#if 0 - case QK_ONE_SHOT_MOD ... QK_ONE_SHOT_MOD_MAX: - break; -#endif - case QK_MOD_TAP ... QK_MOD_TAP_MAX: - if (record->event.pressed || !record->tap.count) { - break; - } default: - if (IS_NOEVENT(record->event)) break; - if ((keycode >= QK_LAYER_TAP && keycode <= QK_LAYER_TAP_MAX) && (((keycode >> 0x8) & 0xF) == _MOUSE)) { - record->event.pressed ? mouse_keycode_tracker++ : mouse_keycode_tracker--; - mouse_timer = timer_read(); - break; - } - if (layer_state_is(_MOUSE) && !mouse_keycode_tracker && !tap_toggling) { - layer_off(_MOUSE); - } - mouse_keycode_tracker = 0; mouse_debounce_timer = timer_read(); break; } @@ -122,6 +63,32 @@ bool process_record_pointing(uint16_t keycode, keyrecord_t* record) { layer_state_t layer_state_set_pointing(layer_state_t state) { if (layer_state_cmp(state, _GAMEPAD) || layer_state_cmp(state, _DIABLO) || layer_state_cmp(state, _DIABLOII)) { state |= ((layer_state_t)1 << _MOUSE); + set_auto_mouse_enable(false); // auto mouse can be disabled any time during run time + } else { + set_auto_mouse_enable(true); } return state; } + + +#if defined(POINTING_DEVICE_AUTO_MOUSE_ENABLE) +__attribute__((weak)) bool is_mouse_record_keymap(uint16_t keycode, keyrecord_t *record) { return false; } + +bool is_mouse_record_user(uint16_t keycode, keyrecord_t* record) { + if (is_mouse_record_keymap(keycode, record)) { + return true; + } + switch (keycode) { +# if defined(KEYBOARD_ploopy) + case DPI_CONFIG: +# elif (defined(KEYBOARD_bastardkb_charybdis) || defined(KEYBOARD_handwired_tractyl_manuform)) && !defined(NO_CHARYBDIS_KEYCODES) + case SAFE_RANGE ...(CHARYBDIS_SAFE_RANGE - 1): +# elif (defined(KEYBOARD_bastardkb_dilemma) && !defined(NO_DILEMMA_KEYCODES)) + case SAFE_RANGE ...(DILEMMA_SAFE_RANGE - 1): +# endif + case KC_ACCEL: + return true; + } + return false; +} +#endif diff --git a/users/drashna/pointing/pointing.h b/users/drashna/pointing/pointing.h index 8b00ffc0ec0..28d8610148f 100644 --- a/users/drashna/pointing/pointing.h +++ b/users/drashna/pointing/pointing.h @@ -3,8 +3,8 @@ #include "drashna.h" +void pointing_device_init_keymap(void); report_mouse_t pointing_device_task_keymap(report_mouse_t mouse_report); void matrix_scan_pointing(void); bool process_record_pointing(uint16_t keycode, keyrecord_t* record); layer_state_t layer_state_set_pointing(layer_state_t state); -extern bool tap_toggling, enable_acceleration; diff --git a/users/drashna/post_config.h b/users/drashna/post_config.h index ec9aa49462a..ed801748197 100644 --- a/users/drashna/post_config.h +++ b/users/drashna/post_config.h @@ -127,3 +127,7 @@ } \ } #endif + +#if defined(SPLIT_KEYBOARD) && defined(PROTOCOL_CHIBIOS) && !defined(USB_SUSPEND_WAKEUP_DELAY) +# define USB_SUSPEND_WAKEUP_DELAY 200 +#endif diff --git a/users/drashna/rgb/rgb_matrix_config.h b/users/drashna/rgb/rgb_matrix_config.h index 33979a198e7..86f238f3923 100644 --- a/users/drashna/rgb/rgb_matrix_config.h +++ b/users/drashna/rgb/rgb_matrix_config.h @@ -6,7 +6,6 @@ #define RGB_MATRIX_KEYPRESSES // reacts to keypresses (will slow down matrix scan by a lot) // # define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (not recommened) #define RGB_MATRIX_FRAMEBUFFER_EFFECTS -// # 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 #undef ENABLE_RGB_MATRIX_ALPHAS_MODS diff --git a/users/drashna/rgb/rgb_matrix_stuff.c b/users/drashna/rgb/rgb_matrix_stuff.c index 64549d8fae5..2867641a3e9 100644 --- a/users/drashna/rgb/rgb_matrix_stuff.c +++ b/users/drashna/rgb/rgb_matrix_stuff.c @@ -91,9 +91,9 @@ bool process_record_user_rgb_matrix(uint16_t keycode, keyrecord_t *record) { __attribute__((weak)) bool rgb_matrix_indicators_advanced_keymap(uint8_t led_min, uint8_t led_max) { return true; } -void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { +bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { if (!rgb_matrix_indicators_advanced_keymap(led_min, led_max)) { - return; + return false; } #if defined(RGBLIGHT_ENABLE) @@ -140,11 +140,12 @@ void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { break; } } + return false; } __attribute__((weak)) bool rgb_matrix_indicators_keymap(void) { return true; } -void rgb_matrix_indicators_user(void) { - rgb_matrix_indicators_keymap(); +bool rgb_matrix_indicators_user(void) { + return rgb_matrix_indicators_keymap(); } diff --git a/users/drashna/rules.mk b/users/drashna/rules.mk index 5644aad2c40..76bb5debe11 100644 --- a/users/drashna/rules.mk +++ b/users/drashna/rules.mk @@ -9,9 +9,9 @@ ifneq ($(PLATFORM),CHIBIOS) ifneq ($(strip $(LTO_SUPPORTED)), no) LTO_ENABLE = yes endif + SPACE_CADET_ENABLE = no + GRAVE_ESC_ENABLE = no endif -SPACE_CADET_ENABLE = no -GRAVE_ESC_ENABLE = no # DEBUG_MATRIX_SCAN_RATE_ENABLE = api ifneq ($(strip $(NO_SECRETS)), yes) @@ -115,6 +115,7 @@ ifeq ($(strip $(POINTING_DEVICE_ENABLE)), yes) ifeq ($(strip $(CUSTOM_POINTING_DEVICE)), yes) SRC += $(USER_PATH)/pointing/pointing.c OPT_DEFS += -DCUSTOM_POINTING_DEVICE + OPT_DEFS += -DPOINTING_DEVICE_AUTO_MOUSE_ENABLE endif endif @@ -127,11 +128,8 @@ ifeq ($(strip $(CUSTOM_SPLIT_TRANSPORT_SYNC)), yes) endif -AUTOCORRECTION_ENABLE ?= no ifeq ($(strip $(AUTOCORRECTION_ENABLE)), yes) - SRC += $(USER_PATH)/keyrecords/autocorrection/autocorrection.c - $(shell touch $(USER_PATH)/keyrecords/autocorrection/autocorrection.c) - OPT_DEFS += -DAUTOCORRECTION_ENABLE + AUTOCORRECT_ENABLE = yes endif ifeq ($(strip $(BOOTMAGIC_ENABLE)), yes) diff --git a/users/drashna/split/transport_sync.c b/users/drashna/split/transport_sync.c index 6b5c3844801..11c56849ebe 100644 --- a/users/drashna/split/transport_sync.c +++ b/users/drashna/split/transport_sync.c @@ -98,8 +98,8 @@ void user_transport_update(void) { #if defined(OLED_ENABLE) && !defined(SPLIT_OLED_ENABLE) && defined(CUSTOM_OLED_DRIVER) user_state.is_oled_enabled = is_oled_enabled; #endif -#if defined(CUSTOM_POINTING_DEVICE) - user_state.tap_toggling = tap_toggling; +#if defined(POINTING_DEVICE_ENABLE) && defined(POINTING_DEVICE_AUTO_MOUSE_ENABLE) + user_state.tap_toggling = get_auto_mouse_toggle(); #endif #ifdef UNICODE_COMMON_ENABLE user_state.unicode_mode = unicode_config.input_mode; @@ -122,8 +122,10 @@ void user_transport_update(void) { #if defined(OLED_ENABLE) && !defined(SPLIT_OLED_ENABLE) && defined(CUSTOM_OLED_DRIVER) is_oled_enabled = user_state.is_oled_enabled; #endif -#if defined(CUSTOM_POINTING_DEVICE) - tap_toggling = user_state.tap_toggling; +#if defined(POINTING_DEVICE_ENABLE) && defined(POINTING_DEVICE_AUTO_MOUSE_ENABLE) + if (get_auto_mouse_toggle() != user_state.tap_toggling) { + auto_mouse_toggle(); + } #endif #ifdef SWAP_HANDS_ENABLE swap_hands = user_state.swap_hands; diff --git a/users/dshields/config.h b/users/dshields/config.h index 9a722b89e66..21a5c3500d6 100644 --- a/users/dshields/config.h +++ b/users/dshields/config.h @@ -4,7 +4,10 @@ #define USB_MAX_POWER_CONSUMPTION 100 #define ONESHOT_TAP_TOGGLE 2 #define ONESHOT_TIMEOUT 3000 -#define RETRO_TAPPING +#define IGNORE_MOD_TAP_INTERRUPT +#define PERMISSIVE_HOLD_PER_KEY +#define TAPPING_FORCE_HOLD_PER_KEY +#define TAPPING_TERM 200 #define BACKLIGHT_BREATHING #define DYNAMIC_MACRO_NO_NESTING diff --git a/users/dshields/dshields.c b/users/dshields/dshields.c index 13eab12d4a9..46f0b33cd3f 100644 --- a/users/dshields/dshields.c +++ b/users/dshields/dshields.c @@ -29,3 +29,30 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return true; } +bool get_tapping_force_hold(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case MT_A: + case MT_S: + case MT_D: + case MT_F: + case MT_J: + case MT_K: + case MT_L: + case MT_SCLN: + return true; + default: + return false; + } +} + +bool get_permissive_hold(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case MT_SPC: + case MT_BSPC: + case MT_ESC: + return true; + default: + return false; + } +} + diff --git a/users/jjerrell/wrappers.h b/users/jjerrell/wrappers.h index cc0f963e8dc..322dbd12f6f 100644 --- a/users/jjerrell/wrappers.h +++ b/users/jjerrell/wrappers.h @@ -319,9 +319,9 @@ #define __________________RAISE_R3___________________ KC_AT, KC_QUOT, KC_DQUO, KC_PLUS, KC_CIRC // Adjust -#define __________________ADJUST_L1__________________ KC_MAKE, DEBUG, RESET, TERM_ON, TERM_OFF -#define __________________ADJUST_L2__________________ KC__MUTE, KC__VOLDOWN, KC__VOLUP, KC_MPLY, KC_MNXT -#define __________________ADJUST_L3__________________ KC_VRSN, AU_ON, AU_OFF, CG_SWAP, CG_NORM +#define __________________ADJUST_L1__________________ KC_MAKE, DEBUG, RESET, XXXXXXX, XXXXXXX +#define __________________ADJUST_L2__________________ KC__MUTE, KC__VOLDOWN, KC__VOLUP, KC_MPLY, KC_MNXT +#define __________________ADJUST_L3__________________ KC_VRSN, AU_ON, AU_OFF, CG_SWAP, CG_NORM #define __________________ADJUST_R1__________________ MU_MOD, MU_ON, MU_OFF, MI_ON, MI_OFF #define __________________ADJUST_R2__________________ MUV_IN, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD diff --git a/users/muppetjones/wrappers.h b/users/muppetjones/wrappers.h index 301554f5d5a..ba94d0eda49 100644 --- a/users/muppetjones/wrappers.h +++ b/users/muppetjones/wrappers.h @@ -65,7 +65,7 @@ * `----------------------------------' `----------------------------------' */ // NOTE: The "BACKLIT" keycode is planck specific -#define __ADJUST_L1________________________________ RESET, DEBUG, XXXXXXX, TERM_ON, TERM_OFF +#define __ADJUST_L1________________________________ RESET, DEBUG, XXXXXXX, XXXXXXX, XXXXXXX #define __ADJUST_L2________________________________ RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, RGB_MOD #define __ADJUST_L3________________________________ XXXXXXX, RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX diff --git a/users/vitoni/rgb_matrix_effects.h b/users/vitoni/rgb_matrix_effects.h index ed74500b182..c3234b159b1 100644 --- a/users/vitoni/rgb_matrix_effects.h +++ b/users/vitoni/rgb_matrix_effects.h @@ -22,7 +22,7 @@ enum states { #if defined(RGB_DISABLE_WITH_FADE_OUT) ,FADE_OUT //!< before supending #endif - ,SUSPENDED //!< expecting to be suspended by RGB_DISABLE_TIMEOUT any time + ,SUSPENDED //!< expecting to be suspended by RGB_MATRIX_TIMEOUT any time }; /** @@ -99,8 +99,8 @@ bool fade_in(const uint8_t time); #endif #if defined(RGB_DISABLE_WITH_FADE_OUT) -# if !defined(RGB_DISABLE_TIMEOUT) -# warning "RGB_DISABLE_WITH_FADE_OUT expects RGB_DISABLE_TIMEOUT to be defined" +# if !defined(RGB_MATRIX_TIMEOUT) +# warning "RGB_DISABLE_WITH_FADE_OUT expects RGB_MATRIX_TIMEOUT to be defined" # endif #endif diff --git a/users/vitoni/vitoni.c b/users/vitoni/vitoni.c index 2a0ff5c46f5..f8cb50ea78a 100644 --- a/users/vitoni/vitoni.c +++ b/users/vitoni/vitoni.c @@ -31,17 +31,17 @@ void matrix_scan_user_rgb(void) { #endif #if defined(RGB_DISABLE_WITH_FADE_OUT) const uint32_t fade_out_duration = scale_2_rgb_time(128); - const uint32_t start_fade_out_after_millis = (RGB_DISABLE_TIMEOUT) > fade_out_duration - ? (RGB_DISABLE_TIMEOUT) - fade_out_duration + const uint32_t start_fade_out_after_millis = (RGB_MATRIX_TIMEOUT) > fade_out_duration + ? (RGB_MATRIX_TIMEOUT) - fade_out_duration : 0; if (start_fade_out_after_millis <= inactivity_millis) { update_value(&state, FADE_OUT, &calc_offset); } -#elif defined(RGB_DISABLE_TIMEOUT) +#elif defined(RGB_MATRIX_TIMEOUT) // having to set brightness "manually" to black as starting point for fade in // for the time when returning from suspended state - if (RGB_DISABLE_TIMEOUT <= inactivity_millis + 15) { + if (RGB_MATRIX_TIMEOUT <= inactivity_millis + 15) { rgb_matrix_config.hsv.v = 0; state = SUSPENDED; } diff --git a/users/xulkal/config.h b/users/xulkal/config.h index 88e3efbe72d..7f7782807ef 100644 --- a/users/xulkal/config.h +++ b/users/xulkal/config.h @@ -31,5 +31,5 @@ #undef ENABLE_RGB_MATRIX_SOLID_SPLASH // 20m timeout (20m * 60s * 1000mil) -#define RGB_DISABLE_TIMEOUT 1200000 +#define RGB_MATRIX_TIMEOUT 1200000 #define OLED_SCROLL_TIMEOUT 20000 diff --git a/users/xulkal/layouts.h b/users/xulkal/layouts.h index 63e73c32e61..e30427b3cd6 100644 --- a/users/xulkal/layouts.h +++ b/users/xulkal/layouts.h @@ -96,7 +96,7 @@ * ,-----------------------------------------. ,-----------------------------------------. * | | | | | | | | | | | | | | * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | | RESET| DEBUG| | | | | |TERM_ON|TERM_OFF| | | | + * | | RESET| DEBUG| | | | | | | | | | | * |------+------+------+------+------+------| |------+------+------+------+------+------| * | | |MusMod|Aud on|AudOff|AGnorm| |AGswap|ClkUp |ClkDwn| | | | * |------+------+------+------+------+------| |------+------+------+------+------+------| @@ -113,7 +113,7 @@ #define _________________ADJUST_L5_________________ _______, _______, _______, _______, _______, _______ #define _________________ADJUST_R1_________________ _______, _______, _______, _______, _______, _______ -#define _________________ADJUST_R2_________________ _______, TERM_ON, TERM_OFF, _______, _______, _______ +#define _________________ADJUST_R2_________________ _______, _______, _______, _______, _______, _______ #define _________________ADJUST_R3_________________ AG_SWAP, CK_UP, CK_DOWN, _______, _______, _______ #define _________________ADJUST_R4_________________ MI_OFF, CK_ON, CK_OFF, _______, _______, _______ #define _________________ADJUST_R5_________________ _______, _______, _______, _______, _______, _______ diff --git a/users/zyber/config.h b/users/zyber/config.h new file mode 100644 index 00000000000..be005d80086 --- /dev/null +++ b/users/zyber/config.h @@ -0,0 +1,9 @@ +// Copyright 2022 ZyBeR (@ZyberSE) +// SPDX-License-Identifier: GPL-2.0 + +#pragma once + +#undef TAPPING_TERM +#define TAPPING_TERM 152 +#define GRAVE_ESC_GUI_OVERRIDE +#define BOTH_SHIFTS_TURNS_ON_CAPS_WORD diff --git a/users/zyber/rules.mk b/users/zyber/rules.mk new file mode 100644 index 00000000000..83559df6092 --- /dev/null +++ b/users/zyber/rules.mk @@ -0,0 +1,8 @@ +SRC += zyber.c + +CAPS_WORD_ENABLE = yes +TAP_DANCE_ENABLE = yes +COMMAND_ENABLE = no + +# DISABLE VIA CONFIGURATOR (otherwise QMK won't work properly) +DYNAMIC_KEYMAP_ENABLE = no diff --git a/users/zyber/zyber.c b/users/zyber/zyber.c new file mode 100644 index 00000000000..63915ddbd4d --- /dev/null +++ b/users/zyber/zyber.c @@ -0,0 +1,137 @@ +// Copyright 2022 ZyBeR (@ZyberSE) +// SPDX-License-Identifier: GPL-2.0 + +#include "zyber.h" + + +__attribute__((weak)) bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { return true; } + +uint16_t key_timer; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (record->event.pressed) { + key_timer = timer_read(); + } + + if (!process_caps_word(keycode, record)) { + return false; + } + + switch(keycode) { + case C_BLK: + if (record->event.pressed) { + send_string("```" SS_DELAY(80) SS_LCMD("v") SS_DELAY(80) "```"); + } + break; + + case CTRL_C_UP: + if (record->event.pressed) { + register_mods(MOD_BIT(KC_LEFT_CTRL)); + } else { + unregister_mods(MOD_BIT(KC_LEFT_CTRL)); + if (timer_elapsed(key_timer) < TAPPING_TERM) { + tap_code16(C(KC_UP)); + } + } + return false; + break; + + case L1_EXPL: + if (record->event.pressed) { + layer_on(1); + } else { + layer_off(1); + if (timer_elapsed(key_timer) < TAPPING_TERM) { + tap_code16(C(KC_UP)); + } + } + return false; + break; + + case ROPT_SRH: + if (record->event.pressed) { + register_mods(MOD_BIT(KC_ROPT)); + } else { + unregister_mods(MOD_BIT(KC_ROPT)); + if (timer_elapsed(key_timer) < TAPPING_TERM) { + tap_code16(G(KC_SPC)); + } + } + return false; + break; + } + + return process_record_keymap(keycode, record); +} + +/* Screenshoot */ +void dance_SSHT_finished(qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 2) { + tap_code16(C(S(G(KC_4)))); + } else { + tap_code(KC_4); + } +} +void dance_SSHT_reset(qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 2) { + unregister_code16(C(S(G(KC_4)))); + } else { + unregister_code(KC_4); + } +} + +/* Å */ +void dance_LBRC_finished(qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 2) { + tap_code16(A(KC_LBRC)); + } else { + tap_code(KC_LBRC); + } +} +void dance_LBRC_reset(qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 2) { + unregister_code16(A(KC_LBRC)); + } else { + unregister_code(KC_LBRC); + } +} + +/* Ö */ +void dance_SCLN_finished(qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 2) { + tap_code16(A(KC_SCLN)); + } else { + tap_code(KC_SCLN); + } +} +void dance_SCLN_reset(qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 2) { + unregister_code16(A(KC_SCLN)); + } else { + unregister_code(KC_SCLN); + } +} + +/* Ä */ +void dance_QUOT_finished(qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 2) { + tap_code16(A(KC_QUOT)); + } else { + tap_code(KC_QUOT); + } +} +void dance_QUOT_reset(qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 2) { + unregister_code16(A(KC_QUOT)); + } else { + unregister_code(KC_QUOT); + } +} + +qk_tap_dance_action_t tap_dance_actions[] = { + [SSHT] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_SSHT_finished, dance_SSHT_reset), + [LBRC] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_LBRC_finished, dance_LBRC_reset), + [SCLN] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_SCLN_finished, dance_SCLN_reset), + [QUOT] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_QUOT_finished, dance_QUOT_reset), + [END_HOME] = ACTION_TAP_DANCE_DOUBLE(LGUI(KC_LEFT), LGUI(KC_RIGHT)) +}; diff --git a/users/zyber/zyber.h b/users/zyber/zyber.h new file mode 100644 index 00000000000..d5f114e8529 --- /dev/null +++ b/users/zyber/zyber.h @@ -0,0 +1,33 @@ +// Copyright 2022 ZyBeR (@ZyberSE) +// SPDX-License-Identifier: GPL-2.0 + +#pragma once + +#include QMK_KEYBOARD_H +#include "quantum.h" + +enum custom_keycodes { + CTRL_C_UP = SAFE_RANGE, + L1_EXPL, + ROPT_SRH, + C_BLK +}; + +enum tap_dances { + SSHT = 0, + LBRC, + SCLN, + QUOT, + END_HOME +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record); + +void dance_SSHT_finished(qk_tap_dance_state_t *state, void *user_data); +void dance_SSHT_reset(qk_tap_dance_state_t *state, void *user_data); +void dance_LBRC_finished(qk_tap_dance_state_t *state, void *user_data); +void dance_LBRC_reset(qk_tap_dance_state_t *state, void *user_data); +void dance_SCLN_finished(qk_tap_dance_state_t *state, void *user_data); +void dance_SCLN_reset(qk_tap_dance_state_t *state, void *user_data); +void dance_QUOT_finished(qk_tap_dance_state_t *state, void *user_data); +void dance_QUOT_reset(qk_tap_dance_state_t *state, void *user_data); diff --git a/util/docker_build.sh b/util/docker_build.sh index 8a6b2d0565f..7e10a4f76ba 100755 --- a/util/docker_build.sh +++ b/util/docker_build.sh @@ -19,7 +19,7 @@ if [ $# -gt 1 ]; then exit 1 fi -# Allow $RUNTIME to be overriden by the user as an environment variable +# Allow $RUNTIME to be overridden by the user as an environment variable # Else check if either docker or podman exit and set them as runtime # if none are found error out if [ -z "$RUNTIME" ]; then @@ -36,7 +36,7 @@ if [ -z "$RUNTIME" ]; then exit 2 fi fi - + # Determine arguments if [ $# -eq 0 ]; then diff --git a/util/docker_cmd.sh b/util/docker_cmd.sh index 2ea113d24a6..f3c4c7804f8 100755 --- a/util/docker_cmd.sh +++ b/util/docker_cmd.sh @@ -15,7 +15,7 @@ for arg; do fi done -# Allow $RUNTIME to be overriden by the user as an environment variable +# Allow $RUNTIME to be overridden by the user as an environment variable # Else check if either docker or podman exit and set them as runtime # if none are found error out if [ -z "$RUNTIME" ]; then diff --git a/util/install/fedora.sh b/util/install/fedora.sh index 4227906ad9f..6380f6d33f9 100755 --- a/util/install/fedora.sh +++ b/util/install/fedora.sh @@ -6,9 +6,9 @@ _qmk_install() { # TODO: Check whether devel/headers packages are really needed sudo dnf $SKIP_PROMPT install \ clang diffutils git gcc glibc-headers kernel-devel kernel-headers \ - make unzip wget zip python3 avr-binutils avr-gcc avr-libc \ - arm-none-eabi-binutils-cs arm-none-eabi-gcc-cs arm-none-eabi-newlib \ - avrdude dfu-programmer dfu-util hidapi libusb-devel + make unzip wget zip python3 avr-binutils avr-gcc avr-gcc-c++ avr-libc \ + arm-none-eabi-binutils-cs arm-none-eabi-gcc-cs arm-none-eabi-gcc-cs-c++ \ + arm-none-eabi-newlib avrdude dfu-programmer dfu-util hidapi libusb-devel python3 -m pip install --user -r $QMK_FIRMWARE_DIR/requirements.txt } diff --git a/util/install/gentoo.sh b/util/install/gentoo.sh index b031fc7629e..49e80490bec 100755 --- a/util/install/gentoo.sh +++ b/util/install/gentoo.sh @@ -19,7 +19,7 @@ _qmk_install() { sudo touch /etc/portage/package.use/qmkfirmware # tee is used here since sudo doesn't apply to >> - echo "sys-devel/gcc multilib" | sudo tee --append /etc/portage/package.use/qmkfirmware >/dev/null + echo "sys-devel/gcc multilib\ncross-arm-none-eabi/newlib nano" | sudo tee --append /etc/portage/package.use/qmkfirmware >/dev/null sudo emerge -auN sys-devel/gcc sudo emerge -au --noreplace \ app-arch/unzip app-arch/zip net-misc/wget sys-devel/clang \